CMakeLists: Derive the source directory grouping from targets themselves

Removes the need to store to separate SRC and HEADER variables, and then
construct the target in most cases.
This commit is contained in:
Lioncash 2018-01-17 19:37:34 -05:00
parent ee08c39b72
commit e710a1b989
11 changed files with 361 additions and 389 deletions

View file

@ -323,12 +323,14 @@ endif()
# This function should be passed a list of all files in a target. It will automatically generate # 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 # file groups following the directory hierarchy, so that the layout of the files in IDEs matches the
# one in the filesystem. # 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 # Place any files that aren't in the source list in a separate group so that they don't get in
# the way. # the way.
source_group("Other Files" REGULAR_EXPRESSION ".") 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) get_filename_component(dir_name "${file_name}" PATH)
# Group names use '\' as a separator even though the entire rest of CMake uses '/'... # Group names use '\' as a separator even though the entire rest of CMake uses '/'...
string(REPLACE "/" "\\" group_name "${dir_name}") string(REPLACE "/" "\\" group_name "${dir_name}")

View file

@ -1,11 +1,9 @@
set(SRCS add_library(getopt
getopt.c getopt.c
) getopt.h
set(HEADERS )
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_compile_definitions(getopt PUBLIC STATIC_GETOPT)
target_include_directories(getopt INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(getopt INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})

View file

@ -1,13 +1,10 @@
set(SRCS add_library(glad STATIC
src/glad.c src/glad.c
) include/KHR/khrplatform.h
set(HEADERS include/glad/glad.h
include/KHR/khrplatform.h )
include/glad/glad.h
)
create_directory_groups(${SRCS} ${HEADERS}) create_target_directory_groups(glad)
add_library(glad STATIC ${SRCS} ${HEADERS})
target_include_directories(glad PUBLIC "include/") target_include_directories(glad PUBLIC "include/")
if ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") if ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")

View file

@ -1,12 +1,9 @@
set(SRCS add_library(inih
inih/ini.c inih/ini.c
inih/cpp/INIReader.cpp inih/ini.h
) inih/cpp/INIReader.cpp
set(HEADERS inih/cpp/INIReader.h
inih/ini.h )
inih/cpp/INIReader.h
)
create_directory_groups(${SRCS} ${HEADERS}) create_target_directory_groups(inih)
add_library(inih ${SRCS} ${HEADERS})
target_include_directories(inih INTERFACE .) target_include_directories(inih INTERFACE .)

View file

@ -24,78 +24,72 @@ if ($ENV{CI})
endif() endif()
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp.in" "${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp.in" "${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp" @ONLY)
set(SRCS add_library(common STATIC
break_points.cpp alignment.h
file_util.cpp assert.h
hash.cpp bit_field.h
logging/filter.cpp bit_set.h
logging/text_formatter.cpp break_points.cpp
logging/backend.cpp break_points.h
memory_util.cpp chunk_file.h
microprofile.cpp code_block.h
misc.cpp color.h
param_package.cpp common_funcs.h
scm_rev.cpp common_paths.h
string_util.cpp common_types.h
telemetry.cpp file_util.cpp
thread.cpp file_util.h
timer.cpp hash.cpp
) hash.h
linear_disk_cache.h
set(HEADERS logging/backend.cpp
alignment.h logging/backend.h
assert.h logging/filter.cpp
bit_field.h logging/filter.h
bit_set.h logging/log.h
break_points.h logging/text_formatter.cpp
chunk_file.h logging/text_formatter.h
code_block.h math_util.h
color.h memory_util.cpp
common_funcs.h memory_util.h
common_paths.h microprofile.cpp
common_types.h microprofile.h
file_util.h microprofileui.h
hash.h misc.cpp
linear_disk_cache.h param_package.cpp
logging/text_formatter.h param_package.h
logging/filter.h platform.h
logging/log.h quaternion.h
logging/backend.h scm_rev.cpp
math_util.h scm_rev.h
memory_util.h scope_exit.h
microprofile.h string_util.cpp
microprofileui.h string_util.h
param_package.h swap.h
platform.h synchronized_wrapper.h
quaternion.h telemetry.cpp
scm_rev.h telemetry.h
scope_exit.h thread.cpp
string_util.h thread.h
swap.h thread_queue_list.h
synchronized_wrapper.h threadsafe_queue.h
telemetry.h timer.cpp
thread.h timer.h
thread_queue_list.h vector_math.h
threadsafe_queue.h )
timer.h
vector_math.h
)
if(ARCHITECTURE_x86_64) if(ARCHITECTURE_x86_64)
set(SRCS ${SRCS} target_sources(common
PRIVATE
x64/cpu_detect.cpp x64/cpu_detect.cpp
)
set(HEADERS ${HEADERS}
x64/cpu_detect.h x64/cpu_detect.h
x64/xbyak_abi.h x64/xbyak_abi.h
x64/xbyak_util.h x64/xbyak_util.h
) )
endif() 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) target_link_libraries(common PUBLIC Boost::boost microprofile)
if (ARCHITECTURE_x86_64) if (ARCHITECTURE_x86_64)
target_link_libraries(common PRIVATE xbyak) target_link_libraries(common PRIVATE xbyak)

View file

@ -1,174 +1,171 @@
set(SRCS add_library(core STATIC
arm/dynarmic/arm_dynarmic.cpp arm/arm_interface.h
arm/unicorn/arm_unicorn.cpp arm/dynarmic/arm_dynarmic.cpp
core.cpp arm/dynarmic/arm_dynarmic.h
core_timing.cpp arm/unicorn/arm_unicorn.cpp
file_sys/archive_backend.cpp arm/unicorn/arm_unicorn.h
file_sys/disk_archive.cpp core.cpp
file_sys/ivfc_archive.cpp core.h
file_sys/path_parser.cpp core_timing.cpp
file_sys/savedata_archive.cpp core_timing.h
file_sys/title_metadata.cpp file_sys/archive_backend.cpp
frontend/emu_window.cpp file_sys/archive_backend.h
frontend/framebuffer_layout.cpp file_sys/directory_backend.h
gdbstub/gdbstub.cpp file_sys/disk_archive.cpp
hle/config_mem.cpp file_sys/disk_archive.h
hle/kernel/address_arbiter.cpp file_sys/errors.h
hle/kernel/client_port.cpp file_sys/file_backend.h
hle/kernel/client_session.cpp file_sys/ivfc_archive.cpp
hle/kernel/condition_variable.cpp file_sys/ivfc_archive.h
hle/kernel/domain.cpp file_sys/path_parser.cpp
hle/kernel/event.cpp file_sys/path_parser.h
hle/kernel/handle_table.cpp file_sys/savedata_archive.cpp
hle/kernel/hle_ipc.cpp file_sys/savedata_archive.h
hle/kernel/kernel.cpp file_sys/title_metadata.cpp
hle/kernel/memory.cpp file_sys/title_metadata.h
hle/kernel/mutex.cpp frontend/emu_window.cpp
hle/kernel/object_address_table.cpp frontend/emu_window.h
hle/kernel/process.cpp frontend/framebuffer_layout.cpp
hle/kernel/resource_limit.cpp frontend/framebuffer_layout.h
hle/kernel/server_port.cpp frontend/input.h
hle/kernel/server_session.cpp gdbstub/gdbstub.cpp
hle/kernel/shared_memory.cpp gdbstub/gdbstub.h
hle/kernel/svc.cpp hle/config_mem.cpp
hle/kernel/thread.cpp hle/config_mem.h
hle/kernel/timer.cpp hle/ipc.h
hle/kernel/vm_manager.cpp hle/ipc_helpers.h
hle/kernel/wait_object.cpp hle/kernel/address_arbiter.cpp
hle/lock.cpp hle/kernel/address_arbiter.h
hle/romfs.cpp hle/kernel/client_port.cpp
hle/service/acc/acc.cpp hle/kernel/client_port.h
hle/service/acc/acc_u0.cpp hle/kernel/client_session.cpp
hle/service/am/am.cpp hle/kernel/client_session.h
hle/service/am/applet_oe.cpp hle/kernel/condition_variable.cpp
hle/service/aoc/aoc_u.cpp hle/kernel/condition_variable.h
hle/service/apm/apm.cpp hle/kernel/domain.cpp
hle/service/audio/audio.cpp hle/kernel/domain.h
hle/service/audio/audout_u.cpp hle/kernel/errors.h
hle/service/hid/hid.cpp hle/kernel/event.cpp
hle/service/lm/lm.cpp hle/kernel/event.h
hle/service/nvdrv/devices/nvdisp_disp0.cpp hle/kernel/handle_table.cpp
hle/service/nvdrv/devices/nvhost_as_gpu.cpp hle/kernel/handle_table.h
hle/service/nvdrv/devices/nvmap.cpp hle/kernel/hle_ipc.cpp
hle/service/nvdrv/interface.cpp hle/kernel/hle_ipc.h
hle/service/nvdrv/nvdrv.cpp hle/kernel/kernel.cpp
hle/service/pctl/pctl.cpp hle/kernel/kernel.h
hle/service/pctl/pctl_a.cpp hle/kernel/memory.cpp
hle/service/service.cpp hle/kernel/memory.h
hle/service/sm/controller.cpp hle/kernel/mutex.cpp
hle/service/sm/sm.cpp hle/kernel/mutex.h
hle/service/time/time.cpp hle/kernel/object_address_table.cpp
hle/service/vi/vi.cpp hle/kernel/object_address_table.h
hle/service/vi/vi_m.cpp hle/kernel/process.cpp
hle/shared_page.cpp hle/kernel/process.h
hw/hw.cpp hle/kernel/resource_limit.cpp
hw/lcd.cpp hle/kernel/resource_limit.h
loader/elf.cpp hle/kernel/server_port.cpp
loader/linker.cpp hle/kernel/server_port.h
loader/loader.cpp hle/kernel/server_session.cpp
loader/nro.cpp hle/kernel/server_session.h
loader/nso.cpp hle/kernel/session.h
tracer/recorder.cpp hle/kernel/shared_memory.cpp
memory.cpp hle/kernel/shared_memory.h
perf_stats.cpp hle/kernel/svc.cpp
settings.cpp hle/kernel/svc.h
telemetry_session.cpp 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 create_target_directory_groups(core)
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_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 common PRIVATE dynarmic video_core)
target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt lz4_static unicorn) target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt lz4_static unicorn)

View file

@ -1,25 +1,18 @@
set(SRCS add_library(input_common STATIC
analog_from_button.cpp analog_from_button.cpp
keyboard.cpp analog_from_button.h
main.cpp keyboard.cpp
motion_emu.cpp keyboard.h
) main.cpp
main.h
motion_emu.cpp
motion_emu.h
set(HEADERS $<$<BOOL:${SDL2_FOUND}>:sdl/sdl.cpp sdl/sdl.h>
analog_from_button.h )
keyboard.h
main.h
motion_emu.h
)
if(SDL2_FOUND) create_target_directory_groups(input_common)
set(SRCS ${SRCS} sdl/sdl.cpp)
set(HEADERS ${HEADERS} sdl/sdl.h)
endif()
create_directory_groups(${SRCS} ${HEADERS})
add_library(input_common STATIC ${SRCS} ${HEADERS})
target_link_libraries(input_common PUBLIC core PRIVATE common) target_link_libraries(input_common PUBLIC core PRIVATE common)
if(SDL2_FOUND) if(SDL2_FOUND)

View file

@ -1,20 +1,16 @@
set(SRCS add_executable(tests
common/param_package.cpp common/param_package.cpp
core/arm/arm_test_common.cpp core/arm/arm_test_common.cpp
core/core_timing.cpp core/arm/arm_test_common.h
core/file_sys/path_parser.cpp core/core_timing.cpp
core/memory/memory.cpp core/file_sys/path_parser.cpp
glad.cpp core/memory/memory.cpp
tests.cpp glad.cpp
) tests.cpp
)
set(HEADERS create_target_directory_groups(tests)
core/arm/arm_test_common.h
)
create_directory_groups(${SRCS} ${HEADERS})
add_executable(tests ${SRCS} ${HEADERS})
target_link_libraries(tests PRIVATE common core) target_link_libraries(tests PRIVATE common core)
target_link_libraries(tests PRIVATE glad) # To support linker work-around target_link_libraries(tests PRIVATE glad) # To support linker work-around
target_link_libraries(tests PRIVATE ${PLATFORM_LIBRARIES} catch-single-include Threads::Threads) target_link_libraries(tests PRIVATE ${PLATFORM_LIBRARIES} catch-single-include Threads::Threads)

View file

@ -1,23 +1,19 @@
set(SRCS add_library(video_core STATIC
renderer_base.cpp renderer_base.cpp
renderer_opengl/gl_shader_util.cpp renderer_base.h
renderer_opengl/gl_state.cpp renderer_opengl/gl_resource_manager.h
renderer_opengl/renderer_opengl.cpp renderer_opengl/gl_shader_util.cpp
video_core.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 create_target_directory_groups(video_core)
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_directory_groups(${SRCS} ${HEADERS})
add_library(video_core STATIC ${SRCS} ${HEADERS})
target_link_libraries(video_core PUBLIC common core) target_link_libraries(video_core PUBLIC common core)
target_link_libraries(video_core PRIVATE glad) target_link_libraries(video_core PRIVATE glad)

View file

@ -3,79 +3,84 @@ set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
set(SRCS add_executable(yuzu
about_dialog.cpp Info.plist
configuration/config.cpp about_dialog.cpp
configuration/configure_debug.cpp about_dialog.h
configuration/configure_dialog.cpp bootmanager.cpp
configuration/configure_general.cpp bootmanager.h
configuration/configure_graphics.cpp configuration/config.cpp
configuration/configure_input.cpp configuration/config.h
configuration/configure_system.cpp configuration/configure_debug.cpp
debugger/profiler.cpp configuration/configure_debug.h
debugger/registers.cpp configuration/configure_dialog.cpp
debugger/wait_tree.cpp configuration/configure_dialog.h
util/spinbox.cpp configuration/configure_general.cpp
util/util.cpp configuration/configure_general.h
bootmanager.cpp configuration/configure_graphics.cpp
game_list.cpp configuration/configure_graphics.h
hotkeys.cpp configuration/configure_input.cpp
main.cpp configuration/configure_input.h
ui_settings.cpp configuration/configure_system.cpp
yuzu.rc configuration/configure_system.h
Info.plist debugger/profiler.cpp
) debugger/profiler.h
debugger/registers.cpp
set(HEADERS debugger/registers.h
about_dialog.h debugger/wait_tree.cpp
configuration/config.h debugger/wait_tree.h
configuration/configure_debug.h game_list.cpp
configuration/configure_dialog.h game_list.h
configuration/configure_general.h game_list_p.h
configuration/configure_graphics.h hotkeys.cpp
configuration/configure_input.h hotkeys.h
configuration/configure_system.h main.cpp
debugger/profiler.h main.h
debugger/registers.h ui_settings.cpp
debugger/wait_tree.h ui_settings.h
util/spinbox.h util/spinbox.cpp
util/util.h util/spinbox.h
bootmanager.h util/util.cpp
game_list.h util/util.h
game_list_p.h yuzu.rc
hotkeys.h )
main.h
ui_settings.h
)
set(UIS set(UIS
aboutdialog.ui aboutdialog.ui
configuration/configure.ui configuration/configure.ui
configuration/configure_debug.ui configuration/configure_debug.ui
configuration/configure_general.ui configuration/configure_general.ui
configuration/configure_graphics.ui configuration/configure_graphics.ui
configuration/configure_input.ui configuration/configure_input.ui
configuration/configure_system.ui configuration/configure_system.ui
debugger/registers.ui debugger/registers.ui
hotkeys.ui hotkeys.ui
main.ui main.ui
) )
file(GLOB_RECURSE ICONS ${CMAKE_SOURCE_DIR}/dist/icons/*) file(GLOB_RECURSE ICONS ${CMAKE_SOURCE_DIR}/dist/icons/*)
file(GLOB_RECURSE THEMES ${CMAKE_SOURCE_DIR}/dist/qt_themes/*) file(GLOB_RECURSE THEMES ${CMAKE_SOURCE_DIR}/dist/qt_themes/*)
create_directory_groups(${SRCS} ${HEADERS} ${UIS})
qt5_wrap_ui(UI_HDRS ${UIS}) qt5_wrap_ui(UI_HDRS ${UIS})
target_sources(yuzu
PRIVATE
${ICONS}
${THEMES}
${UI_HDRS}
${UIS}
)
if (APPLE) if (APPLE)
set(MACOSX_ICON "../../dist/yuzu.icns") set(MACOSX_ICON "../../dist/yuzu.icns")
set_source_files_properties(${MACOSX_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) 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) 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() endif()
create_target_directory_groups(yuzu)
target_link_libraries(yuzu PRIVATE common core input_common video_core) 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 Boost::boost glad Qt5::OpenGL Qt5::Widgets)
target_link_libraries(yuzu PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads) target_link_libraries(yuzu PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)

View file

@ -1,21 +1,18 @@
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
set(SRCS add_executable(yuzu-cmd
emu_window/emu_window_sdl2.cpp config.cpp
config.cpp config.h
yuzu.cpp default_ini.h
yuzu.rc emu_window/emu_window_sdl2.cpp
) emu_window/emu_window_sdl2.h
set(HEADERS resource.h
emu_window/emu_window_sdl2.h yuzu.cpp
config.h yuzu.rc
default_ini.h )
resource.h
)
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 common core input_common)
target_link_libraries(yuzu-cmd PRIVATE inih glad) target_link_libraries(yuzu-cmd PRIVATE inih glad)
if (MSVC) if (MSVC)