Duckstation/src/core/CMakeLists.txt

206 lines
4.7 KiB
CMake
Raw Normal View History

2019-10-04 03:54:09 +00:00
add_library(core
achievements.h
analog_controller.cpp
analog_controller.h
analog_joystick.cpp
analog_joystick.h
bios.cpp
bios.h
2019-10-15 08:02:48 +00:00
bus.cpp
bus.h
cdrom.cpp
cdrom.h
cdrom_async_reader.cpp
cdrom_async_reader.h
cheats.cpp
cheats.h
controller.cpp
controller.h
2023-08-13 06:28:28 +00:00
common_host.cpp
common_host.h
cpu_code_cache.cpp
cpu_code_cache.h
2019-10-04 03:54:09 +00:00
cpu_core.cpp
cpu_core.h
cpu_core_private.h
2019-10-15 08:02:48 +00:00
cpu_disasm.cpp
cpu_disasm.h
cpu_types.cpp
2019-10-15 08:02:48 +00:00
cpu_types.h
digital_controller.cpp
digital_controller.h
dma.cpp
dma.h
2023-08-13 06:28:28 +00:00
fullscreen_ui.cpp
fullscreen_ui.h
game_database.cpp
game_database.h
2023-08-13 06:28:28 +00:00
game_list.cpp
game_list.h
2020-12-17 17:29:10 +00:00
gdb_protocol.cpp
gdb_protocol.h
2019-10-15 08:02:48 +00:00
gpu.cpp
gpu.h
gpu_backend.cpp
gpu_backend.h
2019-10-20 12:31:45 +00:00
gpu_commands.cpp
2019-10-15 08:02:48 +00:00
gpu_hw.cpp
gpu_hw.h
gpu_hw_shadergen.cpp
gpu_hw_shadergen.h
2019-10-26 02:57:35 +00:00
gpu_sw.cpp
gpu_sw.h
gpu_sw_backend.cpp
gpu_sw_backend.h
gpu_types.h
guncon.cpp
guncon.h
2019-10-15 08:02:48 +00:00
gte.cpp
gte.h
gte_types.h
host.cpp
2022-07-08 14:25:16 +00:00
host.h
host_interface_progress_callback.cpp
host_interface_progress_callback.h
2023-08-13 06:28:28 +00:00
host_settings.cpp
2022-07-08 14:25:16 +00:00
host_settings.h
input_types.h
2023-08-13 06:28:28 +00:00
imgui_overlays.cpp
imgui_overlays.h
2019-10-15 08:02:48 +00:00
interrupt_controller.cpp
interrupt_controller.h
2022-10-05 08:29:08 +00:00
libcrypt_serials.cpp
libcrypt_serials.h
2019-10-15 08:02:48 +00:00
mdec.cpp
mdec.h
memory_card.cpp
memory_card.h
memory_card_image.cpp
memory_card_image.h
2021-01-21 07:59:40 +00:00
multitap.cpp
multitap.h
2020-05-30 04:33:55 +00:00
negcon.cpp
negcon.h
2019-10-15 08:02:48 +00:00
pad.cpp
pad.h
pcdrv.cpp
pcdrv.h
2020-08-01 14:25:07 +00:00
pgxp.cpp
pgxp.h
playstation_mouse.cpp
playstation_mouse.h
psf_loader.cpp
psf_loader.h
resources.cpp
resources.h
2019-10-15 08:02:48 +00:00
save_state_version.h
settings.cpp
settings.h
shader_cache_version.h
sio.cpp
sio.h
2019-10-15 08:02:48 +00:00
spu.cpp
spu.h
2019-10-04 03:54:09 +00:00
system.cpp
system.h
texture_replacements.cpp
texture_replacements.h
2019-10-15 08:02:48 +00:00
timers.cpp
timers.h
timing_event.cpp
timing_event.h
2019-10-04 03:54:09 +00:00
types.h
)
2019-11-27 15:55:33 +00:00
set(RECOMPILER_SRCS
cpu_recompiler_code_generator.cpp
cpu_recompiler_code_generator.h
cpu_recompiler_code_generator_generic.cpp
cpu_recompiler_register_cache.cpp
cpu_recompiler_register_cache.h
cpu_recompiler_thunks.h
cpu_recompiler_types.h
)
2019-10-04 03:54:09 +00:00
target_include_directories(core PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/..")
target_include_directories(core PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..")
target_link_libraries(core PUBLIC Threads::Threads common util zlib)
target_link_libraries(core PRIVATE stb xxhash imgui rapidjson tinyxml2)
if(WIN32)
target_sources(core PRIVATE
2021-07-10 11:37:08 +00:00
gpu_hw_d3d12.cpp
gpu_hw_d3d12.h
gpu_hw_d3d11.cpp
gpu_hw_d3d11.h
)
target_link_libraries(core PRIVATE winmm.lib)
endif()
2022-08-04 11:34:16 +00:00
if(ENABLE_CUBEB)
target_compile_definitions(core PUBLIC "WITH_CUBEB=1")
endif()
if(ENABLE_OPENGL)
target_sources(core PRIVATE
gpu_hw_opengl.cpp
gpu_hw_opengl.h
)
target_link_libraries(core PRIVATE glad)
endif()
if(ENABLE_VULKAN)
target_sources(core PRIVATE
gpu_hw_vulkan.cpp
gpu_hw_vulkan.h
)
endif()
if(${CPU_ARCH} STREQUAL "x64")
target_include_directories(core PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../../dep/xbyak/xbyak")
target_compile_definitions(core PUBLIC "WITH_RECOMPILER=1" "WITH_MMAP_FASTMEM=1")
2019-11-27 15:55:33 +00:00
target_sources(core PRIVATE ${RECOMPILER_SRCS}
cpu_recompiler_code_generator_x64.cpp
)
message("Building x64 recompiler")
2020-11-20 16:06:44 +00:00
elseif(${CPU_ARCH} STREQUAL "aarch32")
target_compile_definitions(core PUBLIC "WITH_RECOMPILER=1")
2020-11-20 16:06:44 +00:00
target_sources(core PRIVATE ${RECOMPILER_SRCS}
cpu_recompiler_code_generator_aarch32.cpp
)
target_link_libraries(core PUBLIC vixl)
2020-11-20 16:06:44 +00:00
message("Building AArch32 recompiler")
elseif(${CPU_ARCH} STREQUAL "aarch64")
target_compile_definitions(core PUBLIC "WITH_RECOMPILER=1")
if (NOT APPLE)
# Disabled until we support 16K pages.
target_compile_definitions(core PUBLIC "WITH_MMAP_FASTMEM=1")
endif()
target_sources(core PRIVATE ${RECOMPILER_SRCS}
cpu_recompiler_code_generator_aarch64.cpp
)
target_link_libraries(core PUBLIC vixl)
message("Building AArch64 recompiler")
else()
message("Not building recompiler")
endif()
2022-03-26 13:51:37 +00:00
if(ENABLE_CHEEVOS)
2023-08-13 06:28:28 +00:00
target_sources(core PRIVATE
achievements.cpp
achievements_private.h
)
target_compile_definitions(core PUBLIC -DWITH_CHEEVOS=1)
target_link_libraries(core PRIVATE rcheevos rapidjson)
endif()
if(ENABLE_DISCORD_PRESENCE)
target_compile_definitions(core PUBLIC -DWITH_DISCORD_PRESENCE=1)
target_link_libraries(core PRIVATE discord-rpc)
2022-03-26 13:51:37 +00:00
endif()
2023-08-13 06:28:28 +00:00
# Copy the provided data directory to the output directory.
add_custom_command(TARGET core POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/data" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
)