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 2017-12-10 18:55:03 -05:00
parent 9699194b54
commit ab021d163e
14 changed files with 735 additions and 767 deletions

View file

@ -3,107 +3,112 @@ set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
set(SRCS
configuration/config.cpp
configuration/configure_audio.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
configuration/configure_web.cpp
debugger/graphics/graphics.cpp
debugger/graphics/graphics_breakpoint_observer.cpp
debugger/graphics/graphics_breakpoints.cpp
debugger/graphics/graphics_cmdlists.cpp
debugger/graphics/graphics_surface.cpp
debugger/graphics/graphics_tracing.cpp
debugger/graphics/graphics_vertex_shader.cpp
debugger/profiler.cpp
debugger/registers.cpp
debugger/wait_tree.cpp
updater/updater.cpp
util/spinbox.cpp
util/util.cpp
aboutdialog.cpp
bootmanager.cpp
game_list.cpp
hotkeys.cpp
main.cpp
ui_settings.cpp
citra-qt.rc
Info.plist
)
set(HEADERS
configuration/config.h
configuration/configure_audio.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
configuration/configure_web.h
debugger/graphics/graphics.h
debugger/graphics/graphics_breakpoint_observer.h
debugger/graphics/graphics_breakpoints.h
debugger/graphics/graphics_breakpoints_p.h
debugger/graphics/graphics_cmdlists.h
debugger/graphics/graphics_surface.h
debugger/graphics/graphics_tracing.h
debugger/graphics/graphics_vertex_shader.h
debugger/profiler.h
debugger/registers.h
debugger/wait_tree.h
updater/updater.h
updater/updater_p.h
util/spinbox.h
util/util.h
aboutdialog.h
bootmanager.h
game_list.h
game_list_p.h
hotkeys.h
main.h
ui_settings.h
)
add_executable(citra-qt
Info.plist
aboutdialog.cpp
aboutdialog.h
bootmanager.cpp
bootmanager.h
citra-qt.rc
configuration/config.cpp
configuration/config.h
configuration/configure_audio.cpp
configuration/configure_audio.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
configuration/configure_web.cpp
configuration/configure_web.h
debugger/graphics/graphics.cpp
debugger/graphics/graphics.h
debugger/graphics/graphics_breakpoint_observer.cpp
debugger/graphics/graphics_breakpoint_observer.h
debugger/graphics/graphics_breakpoints.cpp
debugger/graphics/graphics_breakpoints.h
debugger/graphics/graphics_breakpoints_p.h
debugger/graphics/graphics_cmdlists.cpp
debugger/graphics/graphics_cmdlists.h
debugger/graphics/graphics_surface.cpp
debugger/graphics/graphics_surface.h
debugger/graphics/graphics_tracing.cpp
debugger/graphics/graphics_tracing.h
debugger/graphics/graphics_vertex_shader.cpp
debugger/graphics/graphics_vertex_shader.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
updater/updater.cpp
updater/updater.h
updater/updater_p.h
util/spinbox.cpp
util/spinbox.h
util/util.cpp
util/util.h
)
set(UIS
configuration/configure.ui
configuration/configure_audio.ui
configuration/configure_debug.ui
configuration/configure_general.ui
configuration/configure_graphics.ui
configuration/configure_input.ui
configuration/configure_system.ui
configuration/configure_web.ui
debugger/registers.ui
aboutdialog.ui
hotkeys.ui
main.ui
)
configuration/configure.ui
configuration/configure_audio.ui
configuration/configure_debug.ui
configuration/configure_general.ui
configuration/configure_graphics.ui
configuration/configure_input.ui
configuration/configure_system.ui
configuration/configure_web.ui
debugger/registers.ui
aboutdialog.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})
if (Qt5_FOUND)
qt5_wrap_ui(UI_HDRS ${UIS})
else()
qt4_wrap_ui(UI_HDRS ${UIS})
endif()
target_sources(citra-qt
PRIVATE
${ICONS}
${THEMES}
${UI_HDRS}
${UIS}
)
if (APPLE)
set(MACOSX_ICON "../../dist/citra.icns")
set_source_files_properties(${MACOSX_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
add_executable(citra-qt MACOSX_BUNDLE ${SRCS} ${HEADERS} ${UI_HDRS} ${ICONS} ${THEMES} ${MACOSX_ICON})
target_sources(citra-qt PRIVATE ${MACOSX_ICON})
set_target_properties(citra-qt PROPERTIES MACOSX_BUNDLE TRUE)
set_target_properties(citra-qt PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
else()
add_executable(citra-qt ${SRCS} ${HEADERS} ${UI_HDRS} ${ICONS} ${THEMES})
endif()
create_target_directory_groups(citra-qt)
target_link_libraries(citra-qt PRIVATE audio_core common core input_common network video_core)
target_link_libraries(citra-qt PRIVATE Boost::boost glad nihstro-headers Qt5::OpenGL Qt5::Widgets)
target_link_libraries(citra-qt PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)