summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-01-18 07:37:17 +0100
committerGitHub <noreply@github.com>2018-01-18 07:37:17 +0100
commitbe0e14ab3e7b07b5d7879347114428f0beef595f (patch)
tree34521653cd5172d2af45214c3cce1f010842210a
parentMerge pull request #91 from lioncash/svc (diff)
parentCMakeLists: Derive the source directory grouping from targets themselves (diff)
downloadyuzu-be0e14ab3e7b07b5d7879347114428f0beef595f.tar
yuzu-be0e14ab3e7b07b5d7879347114428f0beef595f.tar.gz
yuzu-be0e14ab3e7b07b5d7879347114428f0beef595f.tar.bz2
yuzu-be0e14ab3e7b07b5d7879347114428f0beef595f.tar.lz
yuzu-be0e14ab3e7b07b5d7879347114428f0beef595f.tar.xz
yuzu-be0e14ab3e7b07b5d7879347114428f0beef595f.tar.zst
yuzu-be0e14ab3e7b07b5d7879347114428f0beef595f.zip
-rw-r--r--CMakeLists.txt6
-rw-r--r--externals/getopt/CMakeLists.txt14
-rw-r--r--externals/glad/CMakeLists.txt15
-rw-r--r--externals/inih/CMakeLists.txt17
-rw-r--r--src/common/CMakeLists.txt120
-rw-r--r--src/core/CMakeLists.txt337
-rw-r--r--src/input_common/CMakeLists.txt31
-rw-r--r--src/tests/CMakeLists.txt26
-rw-r--r--src/video_core/CMakeLists.txt34
-rw-r--r--src/yuzu/CMakeLists.txt125
-rw-r--r--src/yuzu_cmd/CMakeLists.txt25
11 files changed, 361 insertions, 389 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d814bb74f..aa2154cb1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -323,12 +323,14 @@ endif()
# This function should be passed a list of all files in a target. It will automatically generate
# file groups following the directory hierarchy, so that the layout of the files in IDEs matches the
# one in the filesystem.
-function(create_directory_groups)
+function(create_target_directory_groups target_name)
# Place any files that aren't in the source list in a separate group so that they don't get in
# the way.
source_group("Other Files" REGULAR_EXPRESSION ".")
- foreach(file_name ${ARGV})
+ get_target_property(target_sources "${target_name}" SOURCES)
+
+ foreach(file_name IN LISTS target_sources)
get_filename_component(dir_name "${file_name}" PATH)
# Group names use '\' as a separator even though the entire rest of CMake uses '/'...
string(REPLACE "/" "\\" group_name "${dir_name}")
diff --git a/externals/getopt/CMakeLists.txt b/externals/getopt/CMakeLists.txt
index c8b745d55..ad7a2b363 100644
--- a/externals/getopt/CMakeLists.txt
+++ b/externals/getopt/CMakeLists.txt
@@ -1,11 +1,9 @@
-set(SRCS
- getopt.c
- )
-set(HEADERS
- getopt.h
- )
+add_library(getopt
+ getopt.c
+ getopt.h
+)
+
+create_target_directory_groups(getopt)
-create_directory_groups(${SRCS} ${HEADERS})
-add_library(getopt ${SRCS} ${HEADERS})
target_compile_definitions(getopt PUBLIC STATIC_GETOPT)
target_include_directories(getopt INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/externals/glad/CMakeLists.txt b/externals/glad/CMakeLists.txt
index 6d35a844b..c43ae475a 100644
--- a/externals/glad/CMakeLists.txt
+++ b/externals/glad/CMakeLists.txt
@@ -1,13 +1,10 @@
-set(SRCS
- src/glad.c
- )
-set(HEADERS
- include/KHR/khrplatform.h
- include/glad/glad.h
- )
+add_library(glad STATIC
+ src/glad.c
+ include/KHR/khrplatform.h
+ include/glad/glad.h
+)
-create_directory_groups(${SRCS} ${HEADERS})
-add_library(glad STATIC ${SRCS} ${HEADERS})
+create_target_directory_groups(glad)
target_include_directories(glad PUBLIC "include/")
if ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
diff --git a/externals/inih/CMakeLists.txt b/externals/inih/CMakeLists.txt
index cff36a581..2a75852c2 100644
--- a/externals/inih/CMakeLists.txt
+++ b/externals/inih/CMakeLists.txt
@@ -1,12 +1,9 @@
-set(SRCS
- inih/ini.c
- inih/cpp/INIReader.cpp
- )
-set(HEADERS
- inih/ini.h
- inih/cpp/INIReader.h
- )
+add_library(inih
+ inih/ini.c
+ inih/ini.h
+ inih/cpp/INIReader.cpp
+ inih/cpp/INIReader.h
+)
-create_directory_groups(${SRCS} ${HEADERS})
-add_library(inih ${SRCS} ${HEADERS})
+create_target_directory_groups(inih)
target_include_directories(inih INTERFACE .)
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index 26cf9480b..1af80769a 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -24,78 +24,72 @@ if ($ENV{CI})
endif()
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp.in" "${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp" @ONLY)
-set(SRCS
- break_points.cpp
- file_util.cpp
- hash.cpp
- logging/filter.cpp
- logging/text_formatter.cpp
- logging/backend.cpp
- memory_util.cpp
- microprofile.cpp
- misc.cpp
- param_package.cpp
- scm_rev.cpp
- string_util.cpp
- telemetry.cpp
- thread.cpp
- timer.cpp
- )
-
-set(HEADERS
- alignment.h
- assert.h
- bit_field.h
- bit_set.h
- break_points.h
- chunk_file.h
- code_block.h
- color.h
- common_funcs.h
- common_paths.h
- common_types.h
- file_util.h
- hash.h
- linear_disk_cache.h
- logging/text_formatter.h
- logging/filter.h
- logging/log.h
- logging/backend.h
- math_util.h
- memory_util.h
- microprofile.h
- microprofileui.h
- param_package.h
- platform.h
- quaternion.h
- scm_rev.h
- scope_exit.h
- string_util.h
- swap.h
- synchronized_wrapper.h
- telemetry.h
- thread.h
- thread_queue_list.h
- threadsafe_queue.h
- timer.h
- vector_math.h
- )
+add_library(common STATIC
+ alignment.h
+ assert.h
+ bit_field.h
+ bit_set.h
+ break_points.cpp
+ break_points.h
+ chunk_file.h
+ code_block.h
+ color.h
+ common_funcs.h
+ common_paths.h
+ common_types.h
+ file_util.cpp
+ file_util.h
+ hash.cpp
+ hash.h
+ linear_disk_cache.h
+ logging/backend.cpp
+ logging/backend.h
+ logging/filter.cpp
+ logging/filter.h
+ logging/log.h
+ logging/text_formatter.cpp
+ logging/text_formatter.h
+ math_util.h
+ memory_util.cpp
+ memory_util.h
+ microprofile.cpp
+ microprofile.h
+ microprofileui.h
+ misc.cpp
+ param_package.cpp
+ param_package.h
+ platform.h
+ quaternion.h
+ scm_rev.cpp
+ scm_rev.h
+ scope_exit.h
+ string_util.cpp
+ string_util.h
+ swap.h
+ synchronized_wrapper.h
+ telemetry.cpp
+ telemetry.h
+ thread.cpp
+ thread.h
+ thread_queue_list.h
+ threadsafe_queue.h
+ timer.cpp
+ timer.h
+ vector_math.h
+)
if(ARCHITECTURE_x86_64)
- set(SRCS ${SRCS}
+ target_sources(common
+ PRIVATE
x64/cpu_detect.cpp
- )
-
- set(HEADERS ${HEADERS}
x64/cpu_detect.h
x64/xbyak_abi.h
x64/xbyak_util.h
- )
+ )
endif()
-create_directory_groups(${SRCS} ${HEADERS})
+create_target_directory_groups(common)
-add_library(common STATIC ${SRCS} ${HEADERS})
target_link_libraries(common PUBLIC Boost::boost microprofile)
if (ARCHITECTURE_x86_64)
target_link_libraries(common PRIVATE xbyak)
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index e77261dc4..c05244b7e 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -1,174 +1,171 @@
-set(SRCS
- arm/dynarmic/arm_dynarmic.cpp
- arm/unicorn/arm_unicorn.cpp
- core.cpp
- core_timing.cpp
- file_sys/archive_backend.cpp
- file_sys/disk_archive.cpp
- file_sys/ivfc_archive.cpp
- file_sys/path_parser.cpp
- file_sys/savedata_archive.cpp
- file_sys/title_metadata.cpp
- frontend/emu_window.cpp
- frontend/framebuffer_layout.cpp
- gdbstub/gdbstub.cpp
- hle/config_mem.cpp
- hle/kernel/address_arbiter.cpp
- hle/kernel/client_port.cpp
- hle/kernel/client_session.cpp
- hle/kernel/condition_variable.cpp
- hle/kernel/domain.cpp
- hle/kernel/event.cpp
- hle/kernel/handle_table.cpp
- hle/kernel/hle_ipc.cpp
- hle/kernel/kernel.cpp
- hle/kernel/memory.cpp
- hle/kernel/mutex.cpp
- hle/kernel/object_address_table.cpp
- hle/kernel/process.cpp
- hle/kernel/resource_limit.cpp
- hle/kernel/server_port.cpp
- hle/kernel/server_session.cpp
- hle/kernel/shared_memory.cpp
- hle/kernel/svc.cpp
- hle/kernel/thread.cpp
- hle/kernel/timer.cpp
- hle/kernel/vm_manager.cpp
- hle/kernel/wait_object.cpp
- hle/lock.cpp
- hle/romfs.cpp
- hle/service/acc/acc.cpp
- hle/service/acc/acc_u0.cpp
- hle/service/am/am.cpp
- hle/service/am/applet_oe.cpp
- hle/service/aoc/aoc_u.cpp
- hle/service/apm/apm.cpp
- hle/service/audio/audio.cpp
- hle/service/audio/audout_u.cpp
- hle/service/hid/hid.cpp
- hle/service/lm/lm.cpp
- hle/service/nvdrv/devices/nvdisp_disp0.cpp
- hle/service/nvdrv/devices/nvhost_as_gpu.cpp
- hle/service/nvdrv/devices/nvmap.cpp
- hle/service/nvdrv/interface.cpp
- hle/service/nvdrv/nvdrv.cpp
- hle/service/pctl/pctl.cpp
- hle/service/pctl/pctl_a.cpp
- hle/service/service.cpp
- hle/service/sm/controller.cpp
- hle/service/sm/sm.cpp
- hle/service/time/time.cpp
- hle/service/vi/vi.cpp
- hle/service/vi/vi_m.cpp
- hle/shared_page.cpp
- hw/hw.cpp
- hw/lcd.cpp
- loader/elf.cpp
- loader/linker.cpp
- loader/loader.cpp
- loader/nro.cpp
- loader/nso.cpp
- tracer/recorder.cpp
- memory.cpp
- perf_stats.cpp
- settings.cpp
- telemetry_session.cpp
- )
+add_library(core STATIC
+ arm/arm_interface.h
+ arm/dynarmic/arm_dynarmic.cpp
+ arm/dynarmic/arm_dynarmic.h
+ arm/unicorn/arm_unicorn.cpp
+ arm/unicorn/arm_unicorn.h
+ core.cpp
+ core.h
+ core_timing.cpp
+ core_timing.h
+ file_sys/archive_backend.cpp
+ file_sys/archive_backend.h
+ file_sys/directory_backend.h
+ file_sys/disk_archive.cpp
+ file_sys/disk_archive.h
+ file_sys/errors.h
+ file_sys/file_backend.h
+ file_sys/ivfc_archive.cpp
+ file_sys/ivfc_archive.h
+ file_sys/path_parser.cpp
+ file_sys/path_parser.h
+ file_sys/savedata_archive.cpp
+ file_sys/savedata_archive.h
+ file_sys/title_metadata.cpp
+ file_sys/title_metadata.h
+ frontend/emu_window.cpp
+ frontend/emu_window.h
+ frontend/framebuffer_layout.cpp
+ frontend/framebuffer_layout.h
+ frontend/input.h
+ gdbstub/gdbstub.cpp
+ gdbstub/gdbstub.h
+ hle/config_mem.cpp
+ hle/config_mem.h
+ hle/ipc.h
+ hle/ipc_helpers.h
+ hle/kernel/address_arbiter.cpp
+ hle/kernel/address_arbiter.h
+ hle/kernel/client_port.cpp
+ hle/kernel/client_port.h
+ hle/kernel/client_session.cpp
+ hle/kernel/client_session.h
+ hle/kernel/condition_variable.cpp
+ hle/kernel/condition_variable.h
+ hle/kernel/domain.cpp
+ hle/kernel/domain.h
+ hle/kernel/errors.h
+ hle/kernel/event.cpp
+ hle/kernel/event.h
+ hle/kernel/handle_table.cpp
+ hle/kernel/handle_table.h
+ hle/kernel/hle_ipc.cpp
+ hle/kernel/hle_ipc.h
+ hle/kernel/kernel.cpp
+ hle/kernel/kernel.h
+ hle/kernel/memory.cpp
+ hle/kernel/memory.h
+ hle/kernel/mutex.cpp
+ hle/kernel/mutex.h
+ hle/kernel/object_address_table.cpp
+ hle/kernel/object_address_table.h
+ hle/kernel/process.cpp
+ hle/kernel/process.h
+ hle/kernel/resource_limit.cpp
+ hle/kernel/resource_limit.h
+ hle/kernel/server_port.cpp
+ hle/kernel/server_port.h
+ hle/kernel/server_session.cpp
+ hle/kernel/server_session.h
+ hle/kernel/session.h
+ hle/kernel/shared_memory.cpp
+ hle/kernel/shared_memory.h
+ hle/kernel/svc.cpp
+ hle/kernel/svc.h
+ hle/kernel/svc_wrap.h
+ hle/kernel/sync_object.h
+ hle/kernel/thread.cpp
+ hle/kernel/thread.h
+ hle/kernel/timer.cpp
+ hle/kernel/timer.h
+ hle/kernel/vm_manager.cpp
+ hle/kernel/vm_manager.h
+ hle/kernel/wait_object.cpp
+ hle/kernel/wait_object.h
+ hle/lock.cpp
+ hle/lock.h
+ hle/result.h
+ hle/romfs.cpp
+ hle/romfs.h
+ hle/service/acc/acc.cpp
+ hle/service/acc/acc.h
+ hle/service/acc/acc_u0.cpp
+ hle/service/acc/acc_u0.h
+ hle/service/am/am.cpp
+ hle/service/am/am.h
+ hle/service/am/applet_oe.cpp
+ hle/service/am/applet_oe.h
+ hle/service/aoc/aoc_u.cpp
+ hle/service/aoc/aoc_u.h
+ hle/service/apm/apm.cpp
+ hle/service/apm/apm.h
+ hle/service/audio/audio.cpp
+ hle/service/audio/audio.h
+ hle/service/audio/audout_u.cpp
+ hle/service/audio/audout_u.h
+ hle/service/hid/hid.cpp
+ hle/service/hid/hid.h
+ hle/service/lm/lm.cpp
+ hle/service/lm/lm.h
+ hle/service/nvdrv/devices/nvdevice.h
+ hle/service/nvdrv/devices/nvdisp_disp0.cpp
+ hle/service/nvdrv/devices/nvdisp_disp0.h
+ hle/service/nvdrv/devices/nvhost_as_gpu.cpp
+ hle/service/nvdrv/devices/nvhost_as_gpu.h
+ hle/service/nvdrv/devices/nvmap.cpp
+ hle/service/nvdrv/devices/nvmap.h
+ hle/service/nvdrv/interface.cpp
+ hle/service/nvdrv/interface.h
+ hle/service/nvdrv/nvdrv.cpp
+ hle/service/nvdrv/nvdrv.h
+ hle/service/pctl/pctl.cpp
+ hle/service/pctl/pctl.h
+ hle/service/pctl/pctl_a.cpp
+ hle/service/pctl/pctl_a.h
+ hle/service/service.cpp
+ hle/service/service.h
+ hle/service/sm/controller.cpp
+ hle/service/sm/controller.h
+ hle/service/sm/sm.cpp
+ hle/service/sm/sm.h
+ hle/service/time/time.cpp
+ hle/service/time/time.h
+ hle/service/vi/vi.cpp
+ hle/service/vi/vi.h
+ hle/service/vi/vi_m.cpp
+ hle/service/vi/vi_m.h
+ hle/shared_page.cpp
+ hle/shared_page.h
+ hw/hw.cpp
+ hw/hw.h
+ hw/lcd.cpp
+ hw/lcd.h
+ loader/elf.cpp
+ loader/elf.h
+ loader/linker.cpp
+ loader/linker.h
+ loader/loader.cpp
+ loader/loader.h
+ loader/nro.cpp
+ loader/nro.h
+ loader/nso.cpp
+ loader/nso.h
+ memory.cpp
+ memory.h
+ memory_setup.h
+ mmio.h
+ perf_stats.cpp
+ perf_stats.h
+ settings.cpp
+ settings.h
+ telemetry_session.cpp
+ telemetry_session.h
+ tracer/citrace.h
+ tracer/recorder.cpp
+ tracer/recorder.h
+)
-set(HEADERS
- arm/arm_interface.h
- arm/dynarmic/arm_dynarmic.h
- arm/unicorn/arm_unicorn.h
- core.h
- core_timing.h
- file_sys/archive_backend.h
- file_sys/directory_backend.h
- file_sys/disk_archive.h
- file_sys/errors.h
- file_sys/file_backend.h
- file_sys/ivfc_archive.h
- file_sys/path_parser.h
- file_sys/savedata_archive.h
- file_sys/title_metadata.h
- frontend/emu_window.h
- frontend/framebuffer_layout.h
- frontend/input.h
- gdbstub/gdbstub.h
- hle/config_mem.h
- hle/ipc.h
- hle/ipc_helpers.h
- hle/kernel/address_arbiter.h
- hle/kernel/client_port.h
- hle/kernel/client_session.h
- hle/kernel/condition_variable.h
- hle/kernel/domain.h
- hle/kernel/errors.h
- hle/kernel/event.h
- hle/kernel/handle_table.h
- hle/kernel/hle_ipc.h
- hle/kernel/kernel.h
- hle/kernel/memory.h
- hle/kernel/mutex.h
- hle/kernel/object_address_table.h
- hle/kernel/process.h
- hle/kernel/resource_limit.h
- hle/kernel/server_port.h
- hle/kernel/server_session.h
- hle/kernel/session.h
- hle/kernel/shared_memory.h
- hle/kernel/sync_object.h
- hle/kernel/svc.h
- hle/kernel/svc_wrap.h
- hle/kernel/thread.h
- hle/kernel/timer.h
- hle/kernel/vm_manager.h
- hle/kernel/wait_object.h
- hle/lock.h
- hle/result.h
- hle/romfs.h
- hle/service/acc/acc.h
- hle/service/acc/acc_u0.h
- hle/service/am/am.h
- hle/service/am/applet_oe.h
- hle/service/aoc/aoc_u.h
- hle/service/apm/apm.h
- hle/service/audio/audio.h
- hle/service/audio/audout_u.h
- hle/service/hid/hid.h
- hle/service/lm/lm.h
- hle/service/nvdrv/devices/nvdevice.h
- hle/service/nvdrv/devices/nvdisp_disp0.h
- hle/service/nvdrv/devices/nvhost_as_gpu.h
- hle/service/nvdrv/devices/nvmap.h
- hle/service/nvdrv/interface.h
- hle/service/nvdrv/nvdrv.h
- hle/service/pctl/pctl.h
- hle/service/pctl/pctl_a.h
- hle/service/service.h
- hle/service/sm/controller.h
- hle/service/sm/sm.h
- hle/service/time/time.h
- hle/service/vi/vi.h
- hle/service/vi/vi_m.h
- hle/shared_page.h
- hw/hw.h
- hw/lcd.h
- loader/elf.h
- loader/linker.h
- loader/loader.h
- loader/nro.h
- loader/nso.h
- tracer/recorder.h
- tracer/citrace.h
- memory.h
- memory_setup.h
- mmio.h
- perf_stats.h
- settings.h
- telemetry_session.h
- )
+create_target_directory_groups(core)
-create_directory_groups(${SRCS} ${HEADERS})
-add_library(core STATIC ${SRCS} ${HEADERS})
target_link_libraries(core PUBLIC common PRIVATE dynarmic video_core)
target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt lz4_static unicorn)
diff --git a/src/input_common/CMakeLists.txt b/src/input_common/CMakeLists.txt
index 92792a702..1c7db28c0 100644
--- a/src/input_common/CMakeLists.txt
+++ b/src/input_common/CMakeLists.txt
@@ -1,25 +1,18 @@
-set(SRCS
- analog_from_button.cpp
- keyboard.cpp
- main.cpp
- motion_emu.cpp
- )
+add_library(input_common STATIC
+ analog_from_button.cpp
+ analog_from_button.h
+ keyboard.cpp
+ keyboard.h
+ main.cpp
+ main.h
+ motion_emu.cpp
+ motion_emu.h
-set(HEADERS
- analog_from_button.h
- keyboard.h
- main.h
- motion_emu.h
- )
+ $<$<BOOL:${SDL2_FOUND}>:sdl/sdl.cpp sdl/sdl.h>
+)
-if(SDL2_FOUND)
- set(SRCS ${SRCS} sdl/sdl.cpp)
- set(HEADERS ${HEADERS} sdl/sdl.h)
-endif()
-
-create_directory_groups(${SRCS} ${HEADERS})
+create_target_directory_groups(input_common)
-add_library(input_common STATIC ${SRCS} ${HEADERS})
target_link_libraries(input_common PUBLIC core PRIVATE common)
if(SDL2_FOUND)
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 1b8fb2a9f..12f1b93e0 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -1,20 +1,16 @@
-set(SRCS
- common/param_package.cpp
- core/arm/arm_test_common.cpp
- core/core_timing.cpp
- core/file_sys/path_parser.cpp
- core/memory/memory.cpp
- glad.cpp
- tests.cpp
- )
+add_executable(tests
+ common/param_package.cpp
+ core/arm/arm_test_common.cpp
+ core/arm/arm_test_common.h
+ core/core_timing.cpp
+ core/file_sys/path_parser.cpp
+ core/memory/memory.cpp
+ glad.cpp
+ tests.cpp
+)
-set(HEADERS
- core/arm/arm_test_common.h
- )
+create_target_directory_groups(tests)
-create_directory_groups(${SRCS} ${HEADERS})
-
-add_executable(tests ${SRCS} ${HEADERS})
target_link_libraries(tests PRIVATE common core)
target_link_libraries(tests PRIVATE glad) # To support linker work-around
target_link_libraries(tests PRIVATE ${PLATFORM_LIBRARIES} catch-single-include Threads::Threads)
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt
index 3fd177c46..69f2b4afd 100644
--- a/src/video_core/CMakeLists.txt
+++ b/src/video_core/CMakeLists.txt
@@ -1,23 +1,19 @@
-set(SRCS
- renderer_base.cpp
- renderer_opengl/gl_shader_util.cpp
- renderer_opengl/gl_state.cpp
- renderer_opengl/renderer_opengl.cpp
- video_core.cpp
- )
+add_library(video_core STATIC
+ renderer_base.cpp
+ renderer_base.h
+ renderer_opengl/gl_resource_manager.h
+ renderer_opengl/gl_shader_util.cpp
+ renderer_opengl/gl_shader_util.h
+ renderer_opengl/gl_state.cpp
+ renderer_opengl/gl_state.h
+ renderer_opengl/renderer_opengl.cpp
+ renderer_opengl/renderer_opengl.h
+ utils.h
+ video_core.cpp
+ video_core.h
+)
-set(HEADERS
- renderer_base.h
- renderer_opengl/gl_resource_manager.h
- renderer_opengl/gl_shader_util.h
- renderer_opengl/gl_state.h
- renderer_opengl/renderer_opengl.h
- utils.h
- video_core.h
- )
+create_target_directory_groups(video_core)
-create_directory_groups(${SRCS} ${HEADERS})
-
-add_library(video_core STATIC ${SRCS} ${HEADERS})
target_link_libraries(video_core PUBLIC common core)
target_link_libraries(video_core PRIVATE glad)
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt
index f5c46f1e9..0c4056c49 100644
--- a/src/yuzu/CMakeLists.txt
+++ b/src/yuzu/CMakeLists.txt
@@ -3,79 +3,84 @@ set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
-set(SRCS
- about_dialog.cpp
- configuration/config.cpp
- configuration/configure_debug.cpp
- configuration/configure_dialog.cpp
- configuration/configure_general.cpp
- configuration/configure_graphics.cpp
- configuration/configure_input.cpp
- configuration/configure_system.cpp
- debugger/profiler.cpp
- debugger/registers.cpp
- debugger/wait_tree.cpp
- util/spinbox.cpp
- util/util.cpp
- bootmanager.cpp
- game_list.cpp
- hotkeys.cpp
- main.cpp
- ui_settings.cpp
- yuzu.rc
- Info.plist
- )
-
-set(HEADERS
- about_dialog.h
- configuration/config.h
- configuration/configure_debug.h
- configuration/configure_dialog.h
- configuration/configure_general.h
- configuration/configure_graphics.h
- configuration/configure_input.h
- configuration/configure_system.h
- debugger/profiler.h
- debugger/registers.h
- debugger/wait_tree.h
- util/spinbox.h
- util/util.h
- bootmanager.h
- game_list.h
- game_list_p.h
- hotkeys.h
- main.h
- ui_settings.h
- )
+add_executable(yuzu
+ Info.plist
+ about_dialog.cpp
+ about_dialog.h
+ bootmanager.cpp
+ bootmanager.h
+ configuration/config.cpp
+ configuration/config.h
+ configuration/configure_debug.cpp
+ configuration/configure_debug.h
+ configuration/configure_dialog.cpp
+ configuration/configure_dialog.h
+ configuration/configure_general.cpp
+ configuration/configure_general.h
+ configuration/configure_graphics.cpp
+ configuration/configure_graphics.h
+ configuration/configure_input.cpp
+ configuration/configure_input.h
+ configuration/configure_system.cpp
+ configuration/configure_system.h
+ debugger/profiler.cpp
+ debugger/profiler.h
+ debugger/registers.cpp
+ debugger/registers.h
+ debugger/wait_tree.cpp
+ debugger/wait_tree.h
+ game_list.cpp
+ game_list.h
+ game_list_p.h
+ hotkeys.cpp
+ hotkeys.h
+ main.cpp
+ main.h
+ ui_settings.cpp
+ ui_settings.h
+ util/spinbox.cpp
+ util/spinbox.h
+ util/util.cpp
+ util/util.h
+ yuzu.rc
+)
set(UIS
- aboutdialog.ui
- configuration/configure.ui
- configuration/configure_debug.ui
- configuration/configure_general.ui
- configuration/configure_graphics.ui
- configuration/configure_input.ui
- configuration/configure_system.ui
- debugger/registers.ui
- hotkeys.ui
- main.ui
- )
+ aboutdialog.ui
+ configuration/configure.ui
+ configuration/configure_debug.ui
+ configuration/configure_general.ui
+ configuration/configure_graphics.ui
+ configuration/configure_input.ui
+ configuration/configure_system.ui
+ debugger/registers.ui
+ hotkeys.ui
+ main.ui
+)
file(GLOB_RECURSE ICONS ${CMAKE_SOURCE_DIR}/dist/icons/*)
file(GLOB_RECURSE THEMES ${CMAKE_SOURCE_DIR}/dist/qt_themes/*)
-create_directory_groups(${SRCS} ${HEADERS} ${UIS})
-
qt5_wrap_ui(UI_HDRS ${UIS})
+target_sources(yuzu
+ PRIVATE
+ ${ICONS}
+ ${THEMES}
+ ${UI_HDRS}
+ ${UIS}
+)
+
if (APPLE)
set(MACOSX_ICON "../../dist/yuzu.icns")
set_source_files_properties(${MACOSX_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
- add_executable(yuzu MACOSX_BUNDLE ${SRCS} ${HEADERS} ${UI_HDRS} ${MACOSX_ICON} ${ICONS})
+ target_sources(yuzu PRIVATE ${MACOSX_ICON})
+ set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE TRUE)
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
-else()
- add_executable(yuzu ${SRCS} ${HEADERS} ${UI_HDRS} ${ICONS})
endif()
+
+create_target_directory_groups(yuzu)
+
target_link_libraries(yuzu PRIVATE common core input_common video_core)
target_link_libraries(yuzu PRIVATE Boost::boost glad Qt5::OpenGL Qt5::Widgets)
target_link_libraries(yuzu PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)
diff --git a/src/yuzu_cmd/CMakeLists.txt b/src/yuzu_cmd/CMakeLists.txt
index 433e210b0..297dab653 100644
--- a/src/yuzu_cmd/CMakeLists.txt
+++ b/src/yuzu_cmd/CMakeLists.txt
@@ -1,21 +1,18 @@
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
-set(SRCS
- emu_window/emu_window_sdl2.cpp
- config.cpp
- yuzu.cpp
- yuzu.rc
- )
-set(HEADERS
- emu_window/emu_window_sdl2.h
- config.h
- default_ini.h
- resource.h
- )
+add_executable(yuzu-cmd
+ config.cpp
+ config.h
+ default_ini.h
+ emu_window/emu_window_sdl2.cpp
+ emu_window/emu_window_sdl2.h
+ resource.h
+ yuzu.cpp
+ yuzu.rc
+)
-create_directory_groups(${SRCS} ${HEADERS})
+create_target_directory_groups(yuzu-cmd)
-add_executable(yuzu-cmd ${SRCS} ${HEADERS})
target_link_libraries(yuzu-cmd PRIVATE common core input_common)
target_link_libraries(yuzu-cmd PRIVATE inih glad)
if (MSVC)