mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-13 19:54:17 +02:00
lib: replace SDL usage to Boost one
It is safer and header-only, and can be removed after C++23 is accepted. There is no need for SDL in non-GUI.
This commit is contained in:
@@ -173,6 +173,18 @@ set(CMAKE_XCODE_ATTRIBUTE_MARKETING_VERSION ${APP_SHORT_VERSION})
|
|||||||
set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH NO)
|
set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH NO)
|
||||||
set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH[variant=Debug] YES)
|
set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH[variant=Debug] YES)
|
||||||
|
|
||||||
|
#Check for endian
|
||||||
|
if(${CMAKE_VERSION} VERSION_LESS "3.20.0")
|
||||||
|
include(TestBigEndian)
|
||||||
|
test_big_endian(VCMI_ENDIAN_BIG)
|
||||||
|
if(VCMI_ENDIAN_BIG)
|
||||||
|
add_definitions(-DVCMI_ENDIAN_BIG)
|
||||||
|
endif()
|
||||||
|
elseif(${CMAKE_CXX_BYTE_ORDER} EQUAL "BIG_ENDIAN")
|
||||||
|
add_definitions(-DVCMI_ENDIAN_BIG)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(ENABLE_LAUNCHER)
|
if(ENABLE_LAUNCHER)
|
||||||
add_definitions(-DENABLE_LAUNCHER)
|
add_definitions(-DENABLE_LAUNCHER)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -475,7 +475,6 @@ macro(add_main_lib TARGET_NAME LIBRARY_TYPE)
|
|||||||
PUBLIC ${MAIN_LIB_DIR}/..
|
PUBLIC ${MAIN_LIB_DIR}/..
|
||||||
PUBLIC ${MAIN_LIB_DIR}/../include
|
PUBLIC ${MAIN_LIB_DIR}/../include
|
||||||
PUBLIC ${MAIN_LIB_DIR}
|
PUBLIC ${MAIN_LIB_DIR}
|
||||||
PRIVATE ${SDL2_INCLUDE_DIR}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
@@ -10,14 +10,12 @@
|
|||||||
#include "StdInc.h"
|
#include "StdInc.h"
|
||||||
#include "CBinaryReader.h"
|
#include "CBinaryReader.h"
|
||||||
|
|
||||||
//FIXME:library file depends on SDL - make cause troubles
|
|
||||||
#include <SDL_endian.h>
|
|
||||||
#include "CInputStream.h"
|
#include "CInputStream.h"
|
||||||
#include "../CGeneralTextHandler.h"
|
#include "../CGeneralTextHandler.h"
|
||||||
|
|
||||||
VCMI_LIB_NAMESPACE_BEGIN
|
VCMI_LIB_NAMESPACE_BEGIN
|
||||||
|
|
||||||
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
|
#ifdef VCMI_ENDIAN_BIG
|
||||||
template <typename CData>
|
template <typename CData>
|
||||||
CData readLE(CData data)
|
CData readLE(CData data)
|
||||||
{
|
{
|
||||||
|
@@ -9,8 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
//FIXME:library file depends on SDL - may cause troubles
|
#include <boost/endian/conversion.hpp> //FIXME: use std::byteswap in C++23
|
||||||
#include <SDL_endian.h>
|
|
||||||
|
|
||||||
VCMI_LIB_NAMESPACE_BEGIN
|
VCMI_LIB_NAMESPACE_BEGIN
|
||||||
|
|
||||||
@@ -45,15 +44,15 @@ static inline ui32 read_unaligned_u32(const void *p)
|
|||||||
return v->val;
|
return v->val;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define read_le_u16(p) (SDL_SwapLE16(read_unaligned_u16(p)))
|
#define read_le_u16(p) (boost::endian::native_to_little(read_unaligned_u16(p)))
|
||||||
#define read_le_u32(p) (SDL_SwapLE32(read_unaligned_u32(p)))
|
#define read_le_u32(p) (boost::endian::native_to_little(read_unaligned_u32(p)))
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#warning UB: unaligned memory access
|
#warning UB: unaligned memory access
|
||||||
|
|
||||||
#define read_le_u16(p) (SDL_SwapLE16(* reinterpret_cast<const ui16 *>(p)))
|
#define read_le_u16(p) (boost::endian::native_to_little(* reinterpret_cast<const ui16 *>(p)))
|
||||||
#define read_le_u32(p) (SDL_SwapLE32(* reinterpret_cast<const ui32 *>(p)))
|
#define read_le_u32(p) (boost::endian::native_to_little(* reinterpret_cast<const ui32 *>(p)))
|
||||||
|
|
||||||
#define PACKED_STRUCT_BEGIN
|
#define PACKED_STRUCT_BEGIN
|
||||||
#define PACKED_STRUCT_END
|
#define PACKED_STRUCT_END
|
||||||
|
Reference in New Issue
Block a user