Browse Source

CMake: Move more platform config to platforms/

Moves platform libraries, compile definitions, and compile options to
the platform CMake files.
pull/3820/head
Gleb Mazovetskiy 4 years ago
parent
commit
0a0baf0c64
  1. 4
      CMake/Platforms.cmake
  2. 5
      CMake/platforms/amiga.cmake
  3. 2
      CMake/platforms/haiku.cmake
  4. 12
      CMake/platforms/n3ds.cmake
  5. 11
      CMake/platforms/vita.cmake
  6. 18
      CMake/platforms/windows.cmake
  7. 44
      Source/CMakeLists.txt

4
CMake/Platforms.cmake

@ -1,7 +1,5 @@
if(WIN32) if(WIN32)
set(ASAN OFF) include(platforms/windows)
set(UBSAN OFF)
set(DIST ON)
endif() endif()
if(HAIKU) if(HAIKU)

5
CMake/platforms/amiga.cmake

@ -17,4 +17,9 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes")
# `fseeko` fails to link on Amiga. # `fseeko` fails to link on Amiga.
add_definitions(-Dfseeko=fseek) add_definitions(-Dfseeko=fseek)
list(APPEND DEVILUTIONX_PLATFORM_LINK_LIBRARIES ${ZLIB_LIBRARY})
if(NOT WARPOS)
list(APPEND DEVILUTIONX_PLATFORM_LINK_LIBRARIES -ldebug)
endif()
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/amiga/devilutionx.info" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/amiga/devilutionx.info" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")

2
CMake/platforms/haiku.cmake

@ -1,3 +1,5 @@
set(ASAN OFF) set(ASAN OFF)
set(UBSAN OFF) set(UBSAN OFF)
set(DEVILUTIONX_STATIC_CXX_STDLIB OFF) set(DEVILUTIONX_STATIC_CXX_STDLIB OFF)
list(APPEND DEVILUTIONX_PLATFORM_LINK_LIBRARIES network)

12
CMake/platforms/n3ds.cmake

@ -11,14 +11,18 @@ set(LIBMPQ_FILE_BUFFER_SIZE 32768)
set(USE_SDL1 ON) set(USE_SDL1 ON)
set(PREFILL_PLAYER_NAME ON) set(PREFILL_PLAYER_NAME ON)
#3DS libraries # 3DS libraries and compile definitions
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/ctr") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/ctr")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/ctr/modules") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/ctr/modules")
find_package(CITRO3D REQUIRED) find_package(CITRO3D REQUIRED)
#additional compilation definitions list(APPEND DEVILUTIONX_PLATFORM_LINK_LIBRARIES
add_definitions(-D__3DS__) 3ds::citro3d
set(MO_LANG_DIR \"romfs:/\") 3ds::ctrulib
)
list(APPEND DEVILUTIONX_PLATFORM_COMPILE_DEFINITIONS
__3DS__
)
#SDL video mode parameters #SDL video mode parameters
set(SDL1_VIDEO_MODE_FLAGS SDL_DOUBLEBUF|SDL_HWSURFACE) set(SDL1_VIDEO_MODE_FLAGS SDL_DOUBLEBUF|SDL_HWSURFACE)

11
CMake/platforms/vita.cmake

@ -4,4 +4,13 @@ set(DEVILUTIONX_STATIC_CXX_STDLIB OFF)
set(BUILD_TESTING OFF) set(BUILD_TESTING OFF)
set(DISABLE_ZERO_TIER ON) set(DISABLE_ZERO_TIER ON)
set(PREFILL_PLAYER_NAME ON) set(PREFILL_PLAYER_NAME ON)
add_definitions("-DMO_LANG_DIR=\"app0:/\"")
list(APPEND DEVILUTIONX_PLATFORM_LINK_LIBRARIES
ScePower_stub
SceAppUtil_stub
SceNet_stub
SceNetCtl_stub
)
list(APPEND DEVILUTIONX_PLATFORM_COMPILE_DEFINITIONS
VITA
)

18
CMake/platforms/windows.cmake

@ -0,0 +1,18 @@
set(ASAN OFF)
set(UBSAN OFF)
set(DIST ON)
list(APPEND DEVILUTIONX_PLATFORM_LINK_LIBRARIES
find_steam_game
shlwapi
wsock32
ws2_32
wininet
)
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
list(APPEND DEVILUTIONX_PLATFORM_COMPILE_OPTIONS "/W3" "/Zc:__cplusplus" "/utf-8")
list(APPEND DEVILUTIONX_PLATFORM_COMPILE_DEFINITIONS _CRT_SECURE_NO_WARNINGS)
else()
list(APPEND DEVILUTIONX_PLATFORM_COMPILE_OPTIONS $<$<CONFIG:Debug>:-gstabs>)
endif()

44
Source/CMakeLists.txt

@ -275,10 +275,6 @@ target_link_libraries(libdevilutionx PUBLIC
simpleini simpleini
hoehrmann_utf8) hoehrmann_utf8)
if(WIN32)
target_link_libraries(libdevilutionx PUBLIC find_steam_game)
endif()
if(NOT NONET) if(NOT NONET)
if(NOT DISABLE_TCP) if(NOT DISABLE_TCP)
target_link_libraries(libdevilutionx PUBLIC asio) target_link_libraries(libdevilutionx PUBLIC asio)
@ -334,27 +330,9 @@ if(NOT NONET AND NOT DISABLE_ZERO_TIER)
endif() endif()
endif() endif()
if(AMIGA) target_link_libraries(libdevilutionx PUBLIC ${DEVILUTIONX_PLATFORM_LINK_LIBRARIES})
target_link_libraries(libdevilutionx PUBLIC target_compile_definitions(libdevilutionx PUBLIC ${DEVILUTIONX_PLATFORM_COMPILE_DEFINITIONS})
${ZLIB_LIBRARY}) target_compile_options(libdevilutionx PUBLIC ${DEVILUTIONX_PLATFORM_COMPILE_OPTIONS})
if(NOT WARPOS)
target_link_libraries(libdevilutionx PUBLIC -ldebug)
endif()
endif()
if(VITA)
target_link_libraries(libdevilutionx PUBLIC
ScePower_stub
SceAppUtil_stub
SceNet_stub
SceNetCtl_stub
)
target_compile_definitions(libdevilutionx PUBLIC VITA)
endif()
if(NINTENDO_3DS)
target_link_libraries(libdevilutionx PUBLIC 3ds::citro3d 3ds::ctrulib)
endif()
if(GPERF) if(GPERF)
target_link_libraries(libdevilutionx PUBLIC ${GPERFTOOLS_LIBRARIES}) target_link_libraries(libdevilutionx PUBLIC ${GPERFTOOLS_LIBRARIES})
@ -365,17 +343,6 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
target_link_libraries(libdevilutionx PUBLIC $<${DEVILUTIONX_STATIC_CXX_STDLIB_GENEX}:-static-libgcc;-static-libstdc++>) target_link_libraries(libdevilutionx PUBLIC $<${DEVILUTIONX_STATIC_CXX_STDLIB_GENEX}:-static-libgcc;-static-libstdc++>)
endif() endif()
if(WIN32)
target_link_libraries(libdevilutionx PUBLIC shlwapi wsock32 ws2_32 wininet)
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_compile_options(libdevilutionx PUBLIC "/W3" "/Zc:__cplusplus" "/utf-8")
target_compile_definitions(libdevilutionx PUBLIC _CRT_SECURE_NO_WARNINGS)
else()
target_compile_options(libdevilutionx PUBLIC $<$<CONFIG:Debug>:-gstabs>)
endif()
endif()
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
# Note: For Valgrind support. # Note: For Valgrind support.
genex_for_option(DEBUG) genex_for_option(DEBUG)
@ -393,10 +360,6 @@ if(NOT WIN32 AND NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD)
add_definitions(-D_POSIX_C_SOURCE=200809L) add_definitions(-D_POSIX_C_SOURCE=200809L)
endif() endif()
if(HAIKU)
target_link_libraries(libdevilutionx PUBLIC network)
endif()
if(BUILD_TESTING) if(BUILD_TESTING)
if(ENABLE_CODECOVERAGE) if(ENABLE_CODECOVERAGE)
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
@ -442,7 +405,6 @@ foreach(
DEFAULT_AUDIO_CHANNELS DEFAULT_AUDIO_CHANNELS
DEFAULT_AUDIO_BUFFER_SIZE DEFAULT_AUDIO_BUFFER_SIZE
DEFAULT_AUDIO_RESAMPLING_QUALITY DEFAULT_AUDIO_RESAMPLING_QUALITY
MO_LANG_DIR
SDL1_VIDEO_MODE_BPP SDL1_VIDEO_MODE_BPP
SDL1_VIDEO_MODE_FLAGS SDL1_VIDEO_MODE_FLAGS
SDL1_VIDEO_MODE_SVID_FLAGS SDL1_VIDEO_MODE_SVID_FLAGS

Loading…
Cancel
Save