diff --git a/CMake/Definitions.cmake b/CMake/Definitions.cmake new file mode 100644 index 000000000..4cc7f15c9 --- /dev/null +++ b/CMake/Definitions.cmake @@ -0,0 +1,89 @@ +# Defines without value +foreach( + def_name + NOSOUND + NONET + PREFILL_PLAYER_NAME + DISABLE_TCP + DISABLE_ZERO_TIER + DISABLE_STREAMING_MUSIC + DISABLE_STREAMING_SOUNDS + BUILD_TESTING + GPERF + GPERF_HEAP_MAIN + GPERF_HEAP_FIRST_GAME_ITERATION + STREAM_ALL_AUDIO + PACKET_ENCRYPTION + VIRTUAL_GAMEPAD +) + if(${def_name}) + list(APPEND DEVILUTIONX_DEFINITIONS ${def_name}) + endif() +endforeach(def_name) + +# Defines with value +foreach( + def_name + DEFAULT_WIDTH + DEFAULT_HEIGHT + DEFAULT_AUDIO_SAMPLE_RATE + DEFAULT_AUDIO_CHANNELS + DEFAULT_AUDIO_BUFFER_SIZE + DEFAULT_AUDIO_RESAMPLING_QUALITY + SDL1_VIDEO_MODE_BPP + SDL1_VIDEO_MODE_FLAGS + SDL1_VIDEO_MODE_SVID_FLAGS + SDL1_FORCE_SVID_VIDEO_MODE + SDL1_FORCE_DIRECT_RENDER + HAS_KBCTRL + KBCTRL_BUTTON_DPAD_LEFT + KBCTRL_BUTTON_DPAD_RIGHT + KBCTRL_BUTTON_DPAD_UP + KBCTRL_BUTTON_DPAD_DOWN + KBCTRL_BUTTON_B + KBCTRL_BUTTON_A + KBCTRL_BUTTON_Y + KBCTRL_BUTTON_X + KBCTRL_BUTTON_LEFTSTICK + KBCTRL_BUTTON_RIGHTSTICK + KBCTRL_BUTTON_RIGHTSHOULDER + KBCTRL_BUTTON_LEFTSHOULDER + KBCTRL_BUTTON_TRIGGERLEFT + KBCTRL_BUTTON_TRIGGERRIGHT + KBCTRL_BUTTON_START + KBCTRL_BUTTON_BACK + KBCTRL_IGNORE_1 + JOY_AXIS_LEFTX + JOY_AXIS_LEFTY + JOY_AXIS_RIGHTX + JOY_AXIS_RIGHTY + JOY_HAT_DPAD_UP_HAT + JOY_HAT_DPAD_UP + JOY_HAT_DPAD_DOWN_HAT + JOY_HAT_DPAD_DOWN + JOY_HAT_DPAD_LEFT_HAT + JOY_HAT_DPAD_LEFT + JOY_HAT_DPAD_RIGHT_HAT + JOY_HAT_DPAD_RIGHT + JOY_BUTTON_DPAD_LEFT + JOY_BUTTON_DPAD_RIGHT + JOY_BUTTON_DPAD_UP + JOY_BUTTON_DPAD_DOWN + JOY_BUTTON_B + JOY_BUTTON_A + JOY_BUTTON_Y + JOY_BUTTON_X + JOY_BUTTON_LEFTSTICK + JOY_BUTTON_RIGHTSTICK + JOY_BUTTON_RIGHTSHOULDER + JOY_BUTTON_LEFTSHOULDER + JOY_BUTTON_TRIGGERLEFT + JOY_BUTTON_TRIGGERRIGHT + JOY_BUTTON_START + JOY_BUTTON_BACK + REMAP_KEYBOARD_KEYS +) + if(DEFINED ${def_name}) + list(APPEND DEVILUTIONX_DEFINITIONS ${def_name}=${${def_name}}) + endif() +endforeach(def_name) diff --git a/CMake/Dependencies.cmake b/CMake/Dependencies.cmake index f75741aec..6426d1338 100644 --- a/CMake/Dependencies.cmake +++ b/CMake/Dependencies.cmake @@ -41,6 +41,14 @@ else() endif() endif() +add_library(DevilutionX::SDL INTERFACE IMPORTED GLOBAL) +if(USE_SDL1) + target_link_libraries(DevilutionX::SDL INTERFACE ${SDL_LIBRARY}) + target_compile_definitions(DevilutionX::SDL INTERFACE USE_SDL1) +else() + target_link_libraries(DevilutionX::SDL INTERFACE ${SDL2_MAIN} SDL2::SDL2) +endif() + macro(_find_SDL_image QUIET_OR_REQUIRED) if(USE_SDL1) find_package(SDL_image ${QUIET_OR_REQUIRED}) @@ -77,6 +85,13 @@ else() endif() endif() +add_library(DevilutionX::SDL_image INTERFACE IMPORTED GLOBAL) +if(USE_SDL1) + target_link_libraries(DevilutionX::SDL_image INTERFACE SDL_image) +else() + target_link_libraries(DevilutionX::SDL_image INTERFACE SDL2::SDL2_image) +endif() + if(NOT NOSOUND) dependency_options("SDL_audiolib" DEVILUTIONX_SYSTEM_SDL_AUDIOLIB OFF DEVILUTIONX_STATIC_SDL_AUDIOLIB) if(DEVILUTIONX_SYSTEM_SDL_AUDIOLIB) diff --git a/CMake/functions/devilutionx_library.cmake b/CMake/functions/devilutionx_library.cmake new file mode 100644 index 000000000..d19019d57 --- /dev/null +++ b/CMake/functions/devilutionx_library.cmake @@ -0,0 +1,83 @@ +include(functions/genex) + +# This function is equivalent to `add_library` but applies DevilutionX-specific +# compilation flags to it. +function(add_devilutionx_library NAME) + add_library(${NAME} ${ARGN}) + + target_include_directories(${NAME} PUBLIC ${DevilutionX_SOURCE_DIR}/Source) + + target_compile_definitions(${NAME} PUBLIC ${DEVILUTIONX_PLATFORM_COMPILE_DEFINITIONS}) + target_compile_options(${NAME} PUBLIC ${DEVILUTIONX_PLATFORM_COMPILE_OPTIONS}) + + genex_for_option(DEBUG) + target_compile_definitions(${NAME} PUBLIC "$<${DEBUG_GENEX}:_DEBUG>") + + if(NOT NONET AND NOT DISABLE_TCP) + target_compile_definitions(${NAME} PUBLIC ASIO_STANDALONE) + endif() + + genex_for_option(UBSAN) + target_compile_options(${NAME} PUBLIC $<${UBSAN_GENEX}:-fsanitize=undefined>) + target_link_libraries(${NAME} PUBLIC $<${UBSAN_GENEX}:-fsanitize=undefined>) + + if(TSAN) + target_compile_options(${NAME} PUBLIC -fsanitize=thread) + target_link_libraries(${NAME} PUBLIC -fsanitize=thread) + else() + genex_for_option(ASAN) + target_compile_options(${NAME} PUBLIC "$<${ASAN_GENEX}:-fsanitize=address;-fsanitize-recover=address>") + target_link_libraries(${NAME} PUBLIC "$<${ASAN_GENEX}:-fsanitize=address;-fsanitize-recover=address>") + endif() + + if(GPERF) + target_link_libraries(${NAME} PUBLIC ${GPERFTOOLS_LIBRARIES}) + endif() + + if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") + genex_for_option(DEVILUTIONX_STATIC_CXX_STDLIB) + target_link_libraries(${NAME} PUBLIC $<${DEVILUTIONX_STATIC_CXX_STDLIB_GENEX}:-static-libgcc;-static-libstdc++>) + endif() + + if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + # Note: For Valgrind support. + genex_for_option(DEBUG) + target_compile_options(${NAME} PUBLIC $<${DEBUG_GENEX}:-fno-omit-frame-pointer>) + + # Warnings for devilutionX + target_compile_options(${NAME} PUBLIC -Wall -Wextra -Wno-unused-parameter) + + # For ARM and other default unsigned char platforms + target_compile_options(${NAME} PUBLIC -fsigned-char) + endif() + + if(NOT WIN32 AND NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD) + # Enable POSIX extensions such as `readlink` and `ftruncate`. + add_definitions(-D_POSIX_C_SOURCE=200809L) + endif() + + if(BUILD_TESTING) + if(ENABLE_CODECOVERAGE) + if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + message(WARNING "Codecoverage not supported with MSVC") + else() + target_compile_options(${NAME} PUBLIC --coverage) + target_link_options(${NAME} PUBLIC --coverage) + endif() + endif() + + target_compile_definitions(${NAME} PRIVATE _DVL_EXPORTING) + endif() + + target_compile_definitions(${NAME} PUBLIC ${DEVILUTIONX_DEFINITIONS}) +endfunction() + +# Same as add_devilutionx_library(${NAME} OBJECT) with an additional +# workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/18090, +# allowing this object library to be "linked" to other object libraries. +function(add_devilutionx_object_library NAME) + add_devilutionx_library(${NAME} OBJECT ${ARGN}) + + # See https://gitlab.kitware.com/cmake/cmake/-/issues/18090 + target_sources(${NAME} INTERFACE $) +endfunction() diff --git a/CMake/platforms/n3ds.cmake b/CMake/platforms/n3ds.cmake index 705e4ebfd..05c8d384e 100644 --- a/CMake/platforms/n3ds.cmake +++ b/CMake/platforms/n3ds.cmake @@ -16,13 +16,9 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/ctr") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/ctr/modules") find_package(CITRO3D REQUIRED) -list(APPEND DEVILUTIONX_PLATFORM_LINK_LIBRARIES - 3ds::citro3d - 3ds::ctrulib -) -list(APPEND DEVILUTIONX_PLATFORM_COMPILE_DEFINITIONS - __3DS__ -) +list(APPEND DEVILUTIONX_PLATFORM_SUBDIRECTORIES platform/ctr) +list(APPEND DEVILUTIONX_PLATFORM_LINK_LIBRARIES libdevilutionx_ctr) +list(APPEND DEVILUTIONX_PLATFORM_COMPILE_DEFINITIONS __3DS__) #SDL video mode parameters set(SDL1_VIDEO_MODE_FLAGS SDL_DOUBLEBUF|SDL_HWSURFACE) diff --git a/CMake/platforms/switch.cmake b/CMake/platforms/switch.cmake index 6919f3734..733baf82e 100644 --- a/CMake/platforms/switch.cmake +++ b/CMake/platforms/switch.cmake @@ -12,3 +12,6 @@ set(JOY_BUTTON_DPAD_LEFT 16) set(JOY_BUTTON_DPAD_UP 17) set(JOY_BUTTON_DPAD_RIGHT 18) set(JOY_BUTTON_DPAD_DOWN 19) + +list(APPEND DEVILUTIONX_PLATFORM_SUBDIRECTORIES platform/switch) +list(APPEND DEVILUTIONX_PLATFORM_LINK_LIBRARIES libdevilutionx_switch) diff --git a/CMake/platforms/vita.cmake b/CMake/platforms/vita.cmake index 7ed0cfdaf..278ae8056 100644 --- a/CMake/platforms/vita.cmake +++ b/CMake/platforms/vita.cmake @@ -5,12 +5,6 @@ set(BUILD_TESTING OFF) set(DISABLE_ZERO_TIER ON) set(PREFILL_PLAYER_NAME ON) -list(APPEND DEVILUTIONX_PLATFORM_LINK_LIBRARIES - ScePower_stub - SceAppUtil_stub - SceNet_stub - SceNetCtl_stub -) -list(APPEND DEVILUTIONX_PLATFORM_COMPILE_DEFINITIONS - VITA -) +list(APPEND DEVILUTIONX_PLATFORM_SUBDIRECTORIES platform/vita) +list(APPEND DEVILUTIONX_PLATFORM_LINK_LIBRARIES libdevilutionx_vita) +list(APPEND DEVILUTIONX_PLATFORM_COMPILE_DEFINITIONS VITA) diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 74b73420b..32239e8fd 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -1,3 +1,5 @@ +include(Definitions) +include(functions/devilutionx_library) include(functions/genex) set(libdevilutionx_SRCS @@ -183,61 +185,14 @@ if(VIRTUAL_GAMEPAD) controls/touch/renderers.cpp) endif() - -if(NINTENDO_SWITCH) - list(APPEND libdevilutionx_SRCS - platform/switch/network.cpp - platform/switch/keyboard.cpp - platform/switch/docking.cpp - platform/switch/asio/pause.c - platform/switch/asio/net/if.c - platform/switch/asio/sys/signal.c) - - if(PACKET_ENCRYPTION) - list(APPEND libdevilutionx_SRCS - platform/switch/random.cpp) - endif() -endif() - -if(VITA) - list(APPEND libdevilutionx_SRCS - platform/vita/network.cpp - platform/vita/keyboard.cpp - platform/vita/touch.cpp) - - if(PACKET_ENCRYPTION) - list(APPEND libdevilutionx_SRCS - platform/vita/random.cpp) - endif() -endif() - -if(NINTENDO_3DS) - list(APPEND libdevilutionx_SRCS - platform/ctr/system.cpp - platform/ctr/keyboard.cpp - platform/ctr/display.cpp - platform/ctr/messagebox.cpp - platform/ctr/sockets.cpp - platform/ctr/locale.cpp - platform/ctr/asio/net/if.c - platform/ctr/asio/sys/socket.c - platform/ctr/asio/sys/uio.c) - - - if(PACKET_ENCRYPTION) - list(APPEND libdevilutionx_SRCS - platform/ctr/random.cpp) - endif() -endif() - if(DISCORD_INTEGRATION) list(APPEND libdevilutionx_SRCS discord/discord.cpp ) endif() -add_library(libdevilutionx OBJECT ${libdevilutionx_SRCS}) -target_include_directories(libdevilutionx PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) +add_devilutionx_library(libdevilutionx OBJECT ${libdevilutionx_SRCS}) +target_include_directories(libdevilutionx PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) # Use file GENERATE instead of configure_file because configure_file # does not support generator expressions. @@ -266,14 +221,17 @@ if(GPERF) find_package(Gperftools REQUIRED) endif() -target_link_libraries(libdevilutionx PUBLIC Threads::Threads) - target_link_libraries(libdevilutionx PUBLIC + Threads::Threads + DevilutionX::SDL + DevilutionX::SDL_image + fmt::fmt PKWare libmpq libsmackerdec simpleini - hoehrmann_utf8) + hoehrmann_utf8 +) if(NOT NONET) if(NOT DISABLE_TCP) @@ -284,40 +242,6 @@ if(NOT NONET) endif() endif() -target_link_libraries(libdevilutionx PUBLIC fmt::fmt) - -genex_for_option(DEBUG) -target_compile_definitions(libdevilutionx PUBLIC "$<${DEBUG_GENEX}:_DEBUG>") - -if(NOT NONET AND NOT DISABLE_TCP) - target_compile_definitions(libdevilutionx PUBLIC ASIO_STANDALONE) -endif() - -genex_for_option(UBSAN) -target_compile_options(libdevilutionx PUBLIC $<${UBSAN_GENEX}:-fsanitize=undefined>) -target_link_libraries(libdevilutionx PUBLIC $<${UBSAN_GENEX}:-fsanitize=undefined>) - -if(TSAN) - target_compile_options(libdevilutionx PUBLIC -fsanitize=thread) - target_link_libraries(libdevilutionx PUBLIC -fsanitize=thread) -else() - genex_for_option(ASAN) - target_compile_options(libdevilutionx PUBLIC "$<${ASAN_GENEX}:-fsanitize=address;-fsanitize-recover=address>") - target_link_libraries(libdevilutionx PUBLIC "$<${ASAN_GENEX}:-fsanitize=address;-fsanitize-recover=address>") -endif() - -if(USE_SDL1) - target_link_libraries(libdevilutionx PUBLIC - ${SDL_LIBRARY} - SDL_image) - target_compile_definitions(libdevilutionx PUBLIC USE_SDL1) -else() - target_link_libraries(libdevilutionx PUBLIC - ${SDL2_MAIN} - SDL2::SDL2 - SDL2::SDL2_image) -endif() - if(NOT NOSOUND) target_link_libraries(libdevilutionx PUBLIC SDL_audiolib) endif() @@ -330,137 +254,8 @@ if(NOT NONET AND NOT DISABLE_ZERO_TIER) endif() endif() -target_link_libraries(libdevilutionx PUBLIC ${DEVILUTIONX_PLATFORM_LINK_LIBRARIES}) -target_compile_definitions(libdevilutionx PUBLIC ${DEVILUTIONX_PLATFORM_COMPILE_DEFINITIONS}) -target_compile_options(libdevilutionx PUBLIC ${DEVILUTIONX_PLATFORM_COMPILE_OPTIONS}) - -if(GPERF) - target_link_libraries(libdevilutionx PUBLIC ${GPERFTOOLS_LIBRARIES}) -endif() - -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(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - # Note: For Valgrind support. - genex_for_option(DEBUG) - target_compile_options(libdevilutionx PUBLIC $<${DEBUG_GENEX}:-fno-omit-frame-pointer>) - - # Warnings for devilutionX - target_compile_options(libdevilutionx PUBLIC -Wall -Wextra -Wno-unused-parameter) - - # For ARM and other default unsigned char platforms - target_compile_options(libdevilutionx PUBLIC -fsigned-char) -endif() - -if(NOT WIN32 AND NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD) - # Enable POSIX extensions such as `readlink` and `ftruncate`. - add_definitions(-D_POSIX_C_SOURCE=200809L) -endif() - -if(BUILD_TESTING) - if(ENABLE_CODECOVERAGE) - if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - message(WARNING "Codecoverage not supported with MSVC") - else() - target_compile_options(libdevilutionx PUBLIC --coverage) - target_link_options(libdevilutionx PUBLIC --coverage) - endif() - endif() - - target_compile_definitions(libdevilutionx PRIVATE _DVL_EXPORTING) -endif() - -# Defines without value -foreach( - def_name - NOSOUND - NONET - PREFILL_PLAYER_NAME - DISABLE_TCP - DISABLE_ZERO_TIER - DISABLE_STREAMING_MUSIC - DISABLE_STREAMING_SOUNDS - BUILD_TESTING - GPERF - GPERF_HEAP_MAIN - GPERF_HEAP_FIRST_GAME_ITERATION - STREAM_ALL_AUDIO - PACKET_ENCRYPTION - VIRTUAL_GAMEPAD -) -if(${def_name}) - list(APPEND def_list ${def_name}) -endif() -endforeach(def_name) +foreach(path ${DEVILUTIONX_PLATFORM_SUBDIRECTORIES}) + add_subdirectory(${path}) +endforeach() -# Defines with value -foreach( - def_name - DEFAULT_WIDTH - DEFAULT_HEIGHT - DEFAULT_AUDIO_SAMPLE_RATE - DEFAULT_AUDIO_CHANNELS - DEFAULT_AUDIO_BUFFER_SIZE - DEFAULT_AUDIO_RESAMPLING_QUALITY - SDL1_VIDEO_MODE_BPP - SDL1_VIDEO_MODE_FLAGS - SDL1_VIDEO_MODE_SVID_FLAGS - SDL1_FORCE_SVID_VIDEO_MODE - SDL1_FORCE_DIRECT_RENDER - HAS_KBCTRL - KBCTRL_BUTTON_DPAD_LEFT - KBCTRL_BUTTON_DPAD_RIGHT - KBCTRL_BUTTON_DPAD_UP - KBCTRL_BUTTON_DPAD_DOWN - KBCTRL_BUTTON_B - KBCTRL_BUTTON_A - KBCTRL_BUTTON_Y - KBCTRL_BUTTON_X - KBCTRL_BUTTON_LEFTSTICK - KBCTRL_BUTTON_RIGHTSTICK - KBCTRL_BUTTON_RIGHTSHOULDER - KBCTRL_BUTTON_LEFTSHOULDER - KBCTRL_BUTTON_TRIGGERLEFT - KBCTRL_BUTTON_TRIGGERRIGHT - KBCTRL_BUTTON_START - KBCTRL_BUTTON_BACK - KBCTRL_IGNORE_1 - JOY_AXIS_LEFTX - JOY_AXIS_LEFTY - JOY_AXIS_RIGHTX - JOY_AXIS_RIGHTY - JOY_HAT_DPAD_UP_HAT - JOY_HAT_DPAD_UP - JOY_HAT_DPAD_DOWN_HAT - JOY_HAT_DPAD_DOWN - JOY_HAT_DPAD_LEFT_HAT - JOY_HAT_DPAD_LEFT - JOY_HAT_DPAD_RIGHT_HAT - JOY_HAT_DPAD_RIGHT - JOY_BUTTON_DPAD_LEFT - JOY_BUTTON_DPAD_RIGHT - JOY_BUTTON_DPAD_UP - JOY_BUTTON_DPAD_DOWN - JOY_BUTTON_B - JOY_BUTTON_A - JOY_BUTTON_Y - JOY_BUTTON_X - JOY_BUTTON_LEFTSTICK - JOY_BUTTON_RIGHTSTICK - JOY_BUTTON_RIGHTSHOULDER - JOY_BUTTON_LEFTSHOULDER - JOY_BUTTON_TRIGGERLEFT - JOY_BUTTON_TRIGGERRIGHT - JOY_BUTTON_START - JOY_BUTTON_BACK - REMAP_KEYBOARD_KEYS -) - if(DEFINED ${def_name}) - list(APPEND def_list ${def_name}=${${def_name}}) - endif() -endforeach(def_name) - -target_compile_definitions(libdevilutionx PUBLIC ${def_list}) +target_link_libraries(libdevilutionx PUBLIC ${DEVILUTIONX_PLATFORM_LINK_LIBRARIES}) diff --git a/Source/platform/ctr/CMakeLists.txt b/Source/platform/ctr/CMakeLists.txt new file mode 100644 index 000000000..00afae35b --- /dev/null +++ b/Source/platform/ctr/CMakeLists.txt @@ -0,0 +1,30 @@ +include(functions/devilutionx_library) + +add_devilutionx_object_library(libdevilutionx_ctr + system.cpp + keyboard.cpp + display.cpp + messagebox.cpp + sockets.cpp + locale.cpp + asio/net/if.c + asio/sys/socket.c + asio/sys/uio.c +) + +if(NOT NONET) + if(NOT DISABLE_TCP) + target_link_libraries(libdevilutionx_ctr PUBLIC asio) + endif() + if(PACKET_ENCRYPTION) + target_sources(libdevilutionx_ctr PRIVATE random.cpp) + target_link_libraries(libdevilutionx_ctr PUBLIC sodium) + endif() +endif() + +target_link_libraries(libdevilutionx_ctr PUBLIC + DevilutionX::SDL + fmt::fmt + 3ds::citro3d + 3ds::ctrulib +) diff --git a/Source/platform/switch/CMakeLists.txt b/Source/platform/switch/CMakeLists.txt new file mode 100644 index 000000000..e46849fd9 --- /dev/null +++ b/Source/platform/switch/CMakeLists.txt @@ -0,0 +1,24 @@ +include(functions/devilutionx_library) + +add_devilutionx_object_library(libdevilutionx_switch + network.cpp + keyboard.cpp + docking.cpp + asio/pause.c + asio/net/if.c + asio/sys/signal.c +) + +if(NOT NONET) + if(NOT DISABLE_TCP) + target_link_libraries(libdevilutionx_switch PUBLIC asio) + endif() + if(PACKET_ENCRYPTION) + target_sources(libdevilutionx_switch PRIVATE random.cpp) + target_link_libraries(libdevilutionx_switch PUBLIC sodium) + endif() +endif() + +target_link_libraries(libdevilutionx_switch PUBLIC + DevilutionX::SDL +) diff --git a/Source/platform/vita/CMakeLists.txt b/Source/platform/vita/CMakeLists.txt new file mode 100644 index 000000000..eda3bebfd --- /dev/null +++ b/Source/platform/vita/CMakeLists.txt @@ -0,0 +1,26 @@ +include(functions/devilutionx_library) + +add_devilutionx_object_library(libdevilutionx_vita + network.cpp + keyboard.cpp + touch.cpp +) + +if(NOT NONET) + if(NOT DISABLE_TCP) + target_link_libraries(libdevilutionx_vita PUBLIC asio) + endif() + if(PACKET_ENCRYPTION) + target_sources(libdevilutionx_vita PRIVATE random.cpp) + target_link_libraries(libdevilutionx_vita PUBLIC sodium) + endif() +endif() + +target_link_libraries(libdevilutionx_vita PUBLIC + DevilutionX::SDL + SDL_audiolib + ScePower_stub + SceAppUtil_stub + SceNet_stub + SceNetCtl_stub +)