Browse Source

Add BINARY_RELEASE option to CMakeLists.txt

pull/25/head
Xadhoom 7 years ago committed by Anders Jenbo
parent
commit
ccc941b1ce
  1. 19
      CMakeLists.txt

19
CMakeLists.txt

@ -13,9 +13,10 @@ endif()
option(ASAN "Enable address sanitizer" ON) option(ASAN "Enable address sanitizer" ON)
option(DEBUG "Enable debug mode in engine" ON) option(DEBUG "Enable debug mode in engine" ON)
option(COTIRE "Enable cotire" OFF) option(COTIRE "Enable cotire" OFF)
option(BINARY_RELEASE "Dynamically link only glibc and SDL2" OFF)
if(COTIRE) if(BINARY_RELEASE)
include(CMake/cotire.cmake) set(sodium_USE_STATIC_LIBS ON)
endif() endif()
list(APPEND CMAKE_MODULE_PATH "${devilutionX_SOURCE_DIR}/CMake") list(APPEND CMAKE_MODULE_PATH "${devilutionX_SOURCE_DIR}/CMake")
@ -23,12 +24,19 @@ list(APPEND CMAKE_MODULE_PATH "${devilutionX_SOURCE_DIR}/CMake")
set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE) set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 4) if(NOT CMAKE_SIZEOF_VOID_P EQUAL 4)
message(WARNING "sizeof(void*) == ${CMAKE_SIZEOF_VOID_P}.") message(WARNING "sizeof(void*) == ${CMAKE_SIZEOF_VOID_P}.")
message(WARNING [[Not 32-bit, highly experimental!]]) message(WARNING [[Not 32-bit, highly experimental!]])
endif() endif()
if(COTIRE)
include(CMake/cotire.cmake)
endif()
find_package(Threads REQUIRED)
find_package(SDL2 REQUIRED) find_package(SDL2 REQUIRED)
find_package(SDL2_ttf REQUIRED) find_package(SDL2_ttf REQUIRED)
find_package(SDL2_mixer REQUIRED) find_package(SDL2_mixer REQUIRED)
@ -168,13 +176,14 @@ add_executable(devilutionx
target_include_directories(devilutionx PRIVATE SourceS SourceX 3rdParty/asio/include .) target_include_directories(devilutionx PRIVATE SourceS SourceX 3rdParty/asio/include .)
target_link_libraries(devilution PUBLIC PKWare) target_link_libraries(devilution PUBLIC PKWare Threads::Threads)
target_link_libraries(devilutionx PRIVATE target_link_libraries(devilutionx PRIVATE
devilution devilution
StormLib StormLib
smacker smacker
Radon Radon
Threads::Threads
SDL2::SDL2main SDL2::SDL2main
SDL2::SDL2_ttf SDL2::SDL2_ttf
SDL2::SDL2_mixer SDL2::SDL2_mixer
@ -194,6 +203,10 @@ if(ASAN)
target_link_libraries(devilution PUBLIC "$<$<CONFIG:Debug>:-fsanitize=address;-fsanitize-recover=address>") target_link_libraries(devilution PUBLIC "$<$<CONFIG:Debug>:-fsanitize=address;-fsanitize-recover=address>")
endif() endif()
if(BINARY_RELEASE)
target_link_libraries(devilution PUBLIC "-static-libgcc -static-libstdc++")
endif()
# Note: In Debug mode, GCC generates spurious memory references that upset Valgrind, # Note: In Debug mode, GCC generates spurious memory references that upset Valgrind,
# these options fix that. # these options fix that.
target_compile_options(devilution PUBLIC $<$<CONFIG:Debug>:-fno-omit-frame-pointer>) target_compile_options(devilution PUBLIC $<$<CONFIG:Debug>:-fno-omit-frame-pointer>)

Loading…
Cancel
Save