Browse Source

CMake: Make -static-libstdc++ configurable

pull/3817/merge
Gleb Mazovetskiy 4 years ago
parent
commit
6dd4c08d4b
  1. 3
      CMake/Platforms.cmake
  2. 3
      CMake/platforms/haiku.cmake
  3. 1
      CMake/platforms/vita.cmake
  4. 3
      CMakeLists.txt
  5. 5
      Source/CMakeLists.txt

3
CMake/Platforms.cmake

@ -5,8 +5,7 @@ if(WIN32)
endif()
if(HAIKU)
set(ASAN OFF)
set(UBSAN OFF)
include(platforms/haiku)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD|OpenBSD|DragonFly|NetBSD")

3
CMake/platforms/haiku.cmake

@ -0,0 +1,3 @@
set(ASAN OFF)
set(UBSAN OFF)
set(DEVILUTIONX_STATIC_CXX_STDLIB OFF)

1
CMake/platforms/vita.cmake

@ -1,5 +1,6 @@
set(ASAN OFF)
set(UBSAN OFF)
set(DEVILUTIONX_STATIC_CXX_STDLIB OFF)
set(BUILD_TESTING OFF)
set(DISABLE_ZERO_TIER ON)
set(PREFILL_PLAYER_NAME ON)

3
CMakeLists.txt

@ -44,6 +44,7 @@ cmake_dependent_option(PIE "Generate position-independent code" OFF "BUILD_TESTI
option(MACOSX_STANDALONE_APP_BUNDLE "Generate a portable app bundle to use on other devices (requires sudo)" OFF)
option(USE_SDL1 "Use SDL1.2 instead of SDL2" OFF)
option(NONET "Disable network support" OFF)
RELEASE_OPTION(DEVILUTIONX_STATIC_CXX_STDLIB "Link C++ standard library statically (if available)")
cmake_dependent_option(DISABLE_TCP "Disable TCP multiplayer option" OFF "NOT NONET" ON)
cmake_dependent_option(DISABLE_ZERO_TIER "Disable ZeroTier multiplayer option" OFF "NOT NONET" ON)
cmake_dependent_option(PACKET_ENCRYPTION "Encrypt network packets" ON "NOT NONET" OFF)
@ -169,6 +170,8 @@ if(NOT DISABLE_LTO)
endif()
if(GPERF)
set(DEVILUTIONX_STATIC_CXX_STDLIB OFF)
if(GPERF_HEAP_FIRST_GAME_ITERATION)
set(GPERF_HEAP_MAIN ON)
endif()

5
Source/CMakeLists.txt

@ -363,8 +363,9 @@ if(GPERF)
target_link_libraries(libdevilutionx PUBLIC ${GPERFTOOLS_LIBRARIES})
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND NOT GPERF AND NOT HAIKU AND NOT VITA)
target_link_libraries(libdevilutionx PUBLIC "$<$<NOT:$<CONFIG:Debug>>:-static-libgcc;-static-libstdc++>")
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
genex_for_option(DEVILUTIONX_STATIC_CXX_STDLIB)
target_link_libraries(libdevilutionx PUBLIC $<${DEVILUTIONX_STATIC_CXX_STDLIB_GENEX}:-static-libgcc;-static-libstdc++>)
endif()
if(WIN32)

Loading…
Cancel
Save