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[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)
|
||||
add_definitions(-DENABLE_LAUNCHER)
|
||||
endif()
|
||||
|
@@ -475,7 +475,6 @@ macro(add_main_lib TARGET_NAME LIBRARY_TYPE)
|
||||
PUBLIC ${MAIN_LIB_DIR}/..
|
||||
PUBLIC ${MAIN_LIB_DIR}/../include
|
||||
PUBLIC ${MAIN_LIB_DIR}
|
||||
PRIVATE ${SDL2_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
|
@@ -10,14 +10,12 @@
|
||||
#include "StdInc.h"
|
||||
#include "CBinaryReader.h"
|
||||
|
||||
//FIXME:library file depends on SDL - make cause troubles
|
||||
#include <SDL_endian.h>
|
||||
#include "CInputStream.h"
|
||||
#include "../CGeneralTextHandler.h"
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
|
||||
#ifdef VCMI_ENDIAN_BIG
|
||||
template <typename CData>
|
||||
CData readLE(CData data)
|
||||
{
|
||||
|
@@ -9,8 +9,7 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
//FIXME:library file depends on SDL - may cause troubles
|
||||
#include <SDL_endian.h>
|
||||
#include <boost/endian/conversion.hpp> //FIXME: use std::byteswap in C++23
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
@@ -45,15 +44,15 @@ static inline ui32 read_unaligned_u32(const void *p)
|
||||
return v->val;
|
||||
}
|
||||
|
||||
#define read_le_u16(p) (SDL_SwapLE16(read_unaligned_u16(p)))
|
||||
#define read_le_u32(p) (SDL_SwapLE32(read_unaligned_u32(p)))
|
||||
#define read_le_u16(p) (boost::endian::native_to_little(read_unaligned_u16(p)))
|
||||
#define read_le_u32(p) (boost::endian::native_to_little(read_unaligned_u32(p)))
|
||||
|
||||
#else
|
||||
|
||||
#warning UB: unaligned memory access
|
||||
|
||||
#define read_le_u16(p) (SDL_SwapLE16(* reinterpret_cast<const ui16 *>(p)))
|
||||
#define read_le_u32(p) (SDL_SwapLE32(* reinterpret_cast<const ui32 *>(p)))
|
||||
#define read_le_u16(p) (boost::endian::native_to_little(* reinterpret_cast<const ui16 *>(p)))
|
||||
#define read_le_u32(p) (boost::endian::native_to_little(* reinterpret_cast<const ui32 *>(p)))
|
||||
|
||||
#define PACKED_STRUCT_BEGIN
|
||||
#define PACKED_STRUCT_END
|
||||
|
Reference in New Issue
Block a user