diff --git a/ext/tmxlite/CMakeLists.txt b/ext/tmxlite/CMakeLists.txt index b648a74..4db2f36 100644 --- a/ext/tmxlite/CMakeLists.txt +++ b/ext/tmxlite/CMakeLists.txt @@ -1,40 +1,28 @@ project(tmxlite VERSION 1.3.1) -set(USE_RTTI TRUE CACHE BOOL "Use run time type information?") - # includes the list of source files in the src directory set(PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src) file(GLOB PROJECT_SRC ${PROJECT_DIR}/*.cpp) -file(GLOB PROJECT_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp) -file(GLOB PROJECT_HEADERS_INL ${CMAKE_CURRENT_SOURCE_DIR}/include/*.inl) -file(GLOB PROJECT_HEADERS_DETAIL ${CMAKE_CURRENT_SOURCE_DIR}/include/detail/*.hpp) -set(PROJECT_SRC ${PROJECT_SRC} ${PROJECT_HEADERS} ${PROJECT_HEADERS_INL} ${PROJECT_HEADERS_DETAIL}) +file(GLOB PROJECT_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/tmxlite/*.hpp) +file(GLOB PROJECT_HEADERS_INL ${CMAKE_CURRENT_SOURCE_DIR}/include/tmxlite/*.inl) +file(GLOB PROJECT_HEADERS_DETAIL ${CMAKE_CURRENT_SOURCE_DIR}/include/tmxlite/detail/*.hpp) +list(APPEND PROJECT_SRC ${PROJECT_HEADERS} ${PROJECT_HEADERS_INL} ${PROJECT_HEADERS_DETAIL}) -add_library(tmxlite STATIC ${PROJECT_SRC}) +add_library(${PROJECT_NAME} STATIC ${PROJECT_SRC}) -set_target_properties(tmxlite PROPERTIES +set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 14 CXX_STANDARD_REQUIRED ON) -target_compile_definitions(tmxlite PRIVATE $<$:_DEBUG_> TMXLITE_STATIC) -target_compile_options(tmxlite PRIVATE -Wall) -if (NOT USE_RTTI AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang") - target_compile_options(tmxlite PRIVATE -fno-rtti) -endif() +target_include_directories(${PROJECT_NAME} PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/include) -# disable msvc warning -if (MSVC) - target_compile_definitions(tmxlite PRIVATE _CRT_SECURE_NO_WARNINGS) -endif() +target_compile_options(${PROJECT_NAME} PRIVATE -Wall) -target_compile_definitions(tmxlite PRIVATE USE_ZSTD) -target_link_libraries(tmxlite base64::base64 pugixml Zstd::Zstd) +target_compile_definitions(${PROJECT_NAME} PRIVATE + $<$:_CRT_SECURE_NO_WARNINGS> # disable msvc warning + $<$:USE_ZLIB>) -if (USE_ZLIB) - target_compile_definitions(tmxlite PRIVATE USE_ZLIB) - target_link_libraries(tmxlite ZLIB::ZLIB) -else() - target_link_libraries(tmxlite miniz::miniz) -endif() - -target_include_directories(tmxlite PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) +target_link_libraries(${PROJECT_NAME} base64::base64 pugixml Zstd::Zstd + $<$:ZLIB::ZLIB> + $<$:miniz::miniz>) diff --git a/ext/tmxlite/include/tmxlite/Config.hpp b/ext/tmxlite/include/tmxlite/Config.hpp index 84c4945..fe05dec 100644 --- a/ext/tmxlite/include/tmxlite/Config.hpp +++ b/ext/tmxlite/include/tmxlite/Config.hpp @@ -27,38 +27,5 @@ source distribution. #pragma once -//check which platform we're on and create export macros as necessary -#if !defined(TMXLITE_STATIC) - -#if defined(_WIN32) - -//windows compilers need specific (and different) keywords for export -#define TMXLITE_EXPORT_API __declspec(dllexport) - -//for vc compilers we also need to turn off this annoying C4251 warning -#ifdef _MSC_VER -#pragma warning(disable: 4251) -#endif //_MSC_VER - -#else //linux, FreeBSD, Mac OS X - -#if __GNUC__ >= 4 - -//gcc 4 has special keywords for showing/hiding symbols, -//the same keyword is used for both importing and exporting -#define TMXLITE_EXPORT_API __attribute__ ((__visibility__ ("default"))) - -#else - -//gcc < 4 has no mechanism to explicitly hide symbols, everything's exported -#define TMXLITE_EXPORT_API -#endif //__GNUC__ - -#endif //_WIN32 - -#else - //static build doesn't need import/export macros #define TMXLITE_EXPORT_API - -#endif //TMXLITE_STATIC \ No newline at end of file diff --git a/ext/tmxlite/include/tmxlite/detail/Log.hpp b/ext/tmxlite/include/tmxlite/detail/Log.hpp index c2b1586..c094cf2 100644 --- a/ext/tmxlite/include/tmxlite/detail/Log.hpp +++ b/ext/tmxlite/include/tmxlite/detail/Log.hpp @@ -178,13 +178,13 @@ namespace tmx } }; } -#ifndef _DEBUG_ +#ifdef NDEBUG #define LOG(message, type) #else #define LOG(message, type) {\ std::stringstream ss; \ ss << message << " (" << __FILE__ << ", " << __LINE__ << ")"; \ tmx::Logger::log(ss.str(), type);} -#endif //_DEBUG_ +#endif //NDEBUG -#endif //TMXLITE_LOGGER_HPP_ \ No newline at end of file +#endif //TMXLITE_LOGGER_HPP_ diff --git a/ext/tmxlite/src/TileLayer.cpp b/ext/tmxlite/src/TileLayer.cpp index 52487a6..cf7c8e7 100644 --- a/ext/tmxlite/src/TileLayer.cpp +++ b/ext/tmxlite/src/TileLayer.cpp @@ -26,9 +26,7 @@ source distribution. *********************************************************************/ #include -#ifdef USE_ZSTD -# include -#endif +#include #include "base64.h" #include "tmxlite/FreeFuncs.hpp" #include "tmxlite/TileLayer.hpp" @@ -128,7 +126,6 @@ void TileLayer::parseBase64(const pugi::xml_node& node) byteData.insert(byteData.end(), dataString.begin(), dataString.end()); break; case CompressionType::Zstd: -#if defined USE_ZSTD { std::size_t dataSize = dataString.length() * sizeof(unsigned char); std::size_t result = ZSTD_decompress(byteData.data(), expectedSize, &dataString[0], dataSize); @@ -140,10 +137,6 @@ void TileLayer::parseBase64(const pugi::xml_node& node) } } break; -#else - Logger::log("Library must be built with USE_ZSTD for Zstd compression", Logger::Type::Error); - return {}; -#endif case CompressionType::GZip: #ifndef USE_ZLIB Logger::log("Library must be built with USE_ZLIB for GZip compression", Logger::Type::Error);