mirror of
https://github.com/ScrelliCopter/tmx2gba.git
synced 2025-02-21 03:29:25 +11:00
use ext miniz in tmxlite, prune files
This commit is contained in:
@@ -1,15 +1,13 @@
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
project(tmxlite VERSION 1.3.1)
|
||||
SET(PROJECT_NAME tmxlite)
|
||||
set(PROJECT_NAME tmxlite)
|
||||
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/")
|
||||
|
||||
if(NOT TMXLITE_STATIC_LIB)
|
||||
SET(TMXLITE_STATIC_LIB FALSE CACHE BOOL "Should tmxlite be built as a static or shared lib?")
|
||||
endif()
|
||||
|
||||
SET(PROJECT_STATIC_RUNTIME FALSE CACHE BOOL "Use statically linked standard/runtime libraries?")
|
||||
#option(BUILD_DOC "Build documentation" OFF)
|
||||
|
||||
SET(USE_RTTI TRUE CACHE BOOL "Use run time type information?")
|
||||
|
||||
@@ -34,9 +32,6 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
if(TMXLITE_STATIC_LIB)
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -D_DEBUG_ -DTMXLITE_STATIC")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG -DTMXLITE_STATIC")
|
||||
@@ -48,84 +43,58 @@ else()
|
||||
SET(CMAKE_DEBUG_POSTFIX -d)
|
||||
endif()
|
||||
|
||||
#disable msvc warning
|
||||
if(MSVC)
|
||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
||||
endif()
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
|
||||
|
||||
#includes the list of source files in the src directory
|
||||
SET(PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
# includes the list of source files in the src directory
|
||||
set(PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
include(${PROJECT_DIR}/CMakeLists.txt)
|
||||
|
||||
#if we want external zip and xml libs find them and tell the compiler
|
||||
if(TMXLITE_STATIC_LIB)
|
||||
add_library(${PROJECT_NAME} STATIC ${PROJECT_SRC})
|
||||
else()
|
||||
add_library(${PROJECT_NAME} SHARED ${PROJECT_SRC})
|
||||
endif()
|
||||
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
CXX_STANDARD 14
|
||||
CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# disable msvc warning
|
||||
if(MSVC)
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS)
|
||||
endif()
|
||||
|
||||
# if we want external zip and xml libs find them and tell the compiler
|
||||
if(USE_EXTLIBS)
|
||||
add_definitions(-DUSE_EXTLIBS)
|
||||
add_definitions(-DUSE_ZSTD)
|
||||
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
|
||||
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_EXTLIBS)
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_ZSTD)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/")
|
||||
|
||||
find_package(ZLIB REQUIRED)
|
||||
find_package(PUGIXML REQUIRED)
|
||||
find_package(Zstd REQUIRED)
|
||||
|
||||
include_directories(${ZLIB_INCLUDE_DIRS} ${PUGIXML_INCLUDE_DIR} ${ZSTD_INCLUDE_DIR})
|
||||
|
||||
else()
|
||||
#add miniz and pugixml from source
|
||||
SET(PROJECT_SRC ${PROJECT_SRC} ${LIB_SRC})
|
||||
|
||||
if(USE_ZSTD)
|
||||
add_definitions(-DUSE_ZSTD)
|
||||
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
|
||||
find_package(Zstd REQUIRED)
|
||||
include_directories(${ZSTD_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
if(TMXLITE_STATIC_LIB)
|
||||
add_library(${PROJECT_NAME} STATIC ${PROJECT_SRC})
|
||||
else()
|
||||
add_library(${PROJECT_NAME} SHARED ${PROJECT_SRC})
|
||||
endif()
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${ZLIB_INCLUDE_DIRS} ${PUGIXML_INCLUDE_DIR} ${ZSTD_INCLUDE_DIR})
|
||||
|
||||
else()
|
||||
if(TMXLITE_STATIC_LIB)
|
||||
add_library(${PROJECT_NAME} STATIC ${PROJECT_SRC})
|
||||
else()
|
||||
add_library(${PROJECT_NAME} SHARED ${PROJECT_SRC})
|
||||
endif()
|
||||
# add miniz and pugixml from source
|
||||
target_sources(${PROJECT_NAME} PRIVATE ${PROJECT_DIR}/detail/pugixml.cpp)
|
||||
target_link_libraries(${PROJECT_NAME} External::miniz)
|
||||
|
||||
if(USE_ZSTD)
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_ZSTD)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/")
|
||||
find_package(Zstd REQUIRED)
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${ZSTD_INCLUDE_DIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(USE_EXTLIBS)
|
||||
target_link_libraries(${PROJECT_NAME} ${ZLIB_LIBRARIES} ${PUGIXML_LIBRARY} ${ZSTD_LIBRARY})
|
||||
else()
|
||||
if(USE_ZSTD)
|
||||
target_link_libraries(${PROJECT_NAME} ${ZSTD_LIBRARY})
|
||||
endif()
|
||||
target_link_libraries(${PROJECT_NAME} ${ZSTD_LIBRARY})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tmxlite.pc.in ${CMAKE_CURRENT_BINARY_DIR}/tmxlite.pc
|
||||
@ONLY)
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/tmxlite DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
if(TMXLITE_STATIC_LIB)
|
||||
install(TARGETS ${PROJECT_NAME} EXPORT tmxlite-targets DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
else()
|
||||
install(TARGETS ${PROJECT_NAME} EXPORT tmxlite-targets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif()
|
||||
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/tmxlite.pc
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||
COMPONENT libraries)
|
||||
|
||||
Reference in New Issue
Block a user