2014-08-18 05:35:44 +01:00
|
|
|
set(CMAKE_AUTOMOC ON)
|
2017-06-24 01:39:42 +01:00
|
|
|
set(CMAKE_AUTORCC ON)
|
2019-07-29 21:06:33 +01:00
|
|
|
set(CMAKE_AUTOUIC ON)
|
2014-08-18 05:35:44 +01:00
|
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
2016-12-11 14:36:34 +00:00
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
|
2014-08-18 05:35:44 +01:00
|
|
|
|
2018-01-18 00:37:34 +00:00
|
|
|
add_executable(yuzu
|
|
|
|
Info.plist
|
|
|
|
about_dialog.cpp
|
|
|
|
about_dialog.h
|
2019-07-29 21:06:33 +01:00
|
|
|
aboutdialog.ui
|
2019-03-11 23:39:20 +00:00
|
|
|
applets/error.cpp
|
|
|
|
applets/error.h
|
2018-11-23 02:03:33 +00:00
|
|
|
applets/profile_select.cpp
|
|
|
|
applets/profile_select.h
|
2018-11-10 01:13:15 +00:00
|
|
|
applets/software_keyboard.cpp
|
|
|
|
applets/software_keyboard.h
|
2018-12-24 21:23:31 +00:00
|
|
|
applets/web_browser.cpp
|
|
|
|
applets/web_browser.h
|
2018-01-18 00:37:34 +00:00
|
|
|
bootmanager.cpp
|
|
|
|
bootmanager.h
|
2019-07-29 21:06:33 +01:00
|
|
|
compatdb.ui
|
2018-09-10 00:09:37 +01:00
|
|
|
compatibility_list.cpp
|
|
|
|
compatibility_list.h
|
2018-01-18 00:37:34 +00:00
|
|
|
configuration/config.cpp
|
|
|
|
configuration/config.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure.ui
|
2018-07-31 04:57:53 +01:00
|
|
|
configuration/configure_audio.cpp
|
|
|
|
configuration/configure_audio.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_audio.ui
|
2018-01-18 00:37:34 +00:00
|
|
|
configuration/configure_debug.cpp
|
|
|
|
configuration/configure_debug.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_debug.ui
|
2018-01-18 00:37:34 +00:00
|
|
|
configuration/configure_dialog.cpp
|
|
|
|
configuration/configure_dialog.h
|
2019-04-23 13:36:35 +01:00
|
|
|
configuration/configure_filesystem.cpp
|
|
|
|
configuration/configure_filesystem.h
|
2019-09-21 23:43:11 +01:00
|
|
|
configuration/configure_filesystem.ui
|
2018-01-18 00:37:34 +00:00
|
|
|
configuration/configure_general.cpp
|
|
|
|
configuration/configure_general.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_general.ui
|
2018-01-18 00:37:34 +00:00
|
|
|
configuration/configure_graphics.cpp
|
|
|
|
configuration/configure_graphics.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_graphics.ui
|
2020-02-24 00:01:17 +00:00
|
|
|
configuration/configure_graphics_advanced.cpp
|
|
|
|
configuration/configure_graphics_advanced.h
|
|
|
|
configuration/configure_graphics_advanced.ui
|
2019-02-16 15:19:29 +00:00
|
|
|
configuration/configure_hotkeys.cpp
|
|
|
|
configuration/configure_hotkeys.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_hotkeys.ui
|
2018-01-18 00:37:34 +00:00
|
|
|
configuration/configure_input.cpp
|
|
|
|
configuration/configure_input.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_input.ui
|
2018-11-02 02:11:44 +00:00
|
|
|
configuration/configure_input_player.cpp
|
|
|
|
configuration/configure_input_player.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_input_player.ui
|
2018-12-01 16:11:11 +00:00
|
|
|
configuration/configure_input_simple.cpp
|
|
|
|
configuration/configure_input_simple.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_input_simple.ui
|
2018-11-02 02:07:46 +00:00
|
|
|
configuration/configure_mouse_advanced.cpp
|
|
|
|
configuration/configure_mouse_advanced.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_mouse_advanced.ui
|
|
|
|
configuration/configure_per_general.cpp
|
|
|
|
configuration/configure_per_general.h
|
|
|
|
configuration/configure_per_general.ui
|
2019-01-04 22:32:13 +00:00
|
|
|
configuration/configure_profile_manager.cpp
|
|
|
|
configuration/configure_profile_manager.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_profile_manager.ui
|
2019-04-29 00:01:23 +01:00
|
|
|
configuration/configure_service.cpp
|
|
|
|
configuration/configure_service.h
|
2019-10-02 13:35:39 +01:00
|
|
|
configuration/configure_service.ui
|
2018-01-18 00:37:34 +00:00
|
|
|
configuration/configure_system.cpp
|
|
|
|
configuration/configure_system.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_system.ui
|
2018-11-02 02:10:51 +00:00
|
|
|
configuration/configure_touchscreen_advanced.cpp
|
|
|
|
configuration/configure_touchscreen_advanced.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_touchscreen_advanced.ui
|
2020-01-23 23:15:51 +00:00
|
|
|
configuration/configure_ui.cpp
|
|
|
|
configuration/configure_ui.h
|
|
|
|
configuration/configure_ui.ui
|
2018-09-16 19:05:51 +01:00
|
|
|
configuration/configure_web.cpp
|
|
|
|
configuration/configure_web.h
|
2019-07-29 21:06:33 +01:00
|
|
|
configuration/configure_web.ui
|
2018-07-02 18:10:41 +01:00
|
|
|
debugger/console.cpp
|
|
|
|
debugger/console.h
|
2018-01-18 00:37:34 +00:00
|
|
|
debugger/profiler.cpp
|
|
|
|
debugger/profiler.h
|
|
|
|
debugger/wait_tree.cpp
|
|
|
|
debugger/wait_tree.h
|
2018-09-16 19:05:51 +01:00
|
|
|
discord.h
|
2018-01-18 00:37:34 +00:00
|
|
|
game_list.cpp
|
|
|
|
game_list.h
|
|
|
|
game_list_p.h
|
2018-09-07 21:08:08 +01:00
|
|
|
game_list_worker.cpp
|
|
|
|
game_list_worker.h
|
2019-01-17 07:01:00 +00:00
|
|
|
loading_screen.cpp
|
|
|
|
loading_screen.h
|
2019-07-29 21:06:33 +01:00
|
|
|
loading_screen.ui
|
2018-01-18 00:37:34 +00:00
|
|
|
hotkeys.cpp
|
|
|
|
hotkeys.h
|
|
|
|
main.cpp
|
|
|
|
main.h
|
2019-07-29 21:06:33 +01:00
|
|
|
main.ui
|
|
|
|
uisettings.cpp
|
|
|
|
uisettings.h
|
2018-10-28 22:11:17 +00:00
|
|
|
util/limitable_input_dialog.cpp
|
|
|
|
util/limitable_input_dialog.h
|
2019-02-16 15:19:29 +00:00
|
|
|
util/sequence_dialog/sequence_dialog.cpp
|
|
|
|
util/sequence_dialog/sequence_dialog.h
|
2018-01-18 00:37:34 +00:00
|
|
|
util/util.cpp
|
|
|
|
util/util.h
|
2018-09-16 19:05:51 +01:00
|
|
|
compatdb.cpp
|
|
|
|
compatdb.h
|
2018-01-18 00:37:34 +00:00
|
|
|
yuzu.rc
|
|
|
|
)
|
2014-04-01 03:26:50 +01:00
|
|
|
|
2018-08-29 14:42:53 +01:00
|
|
|
file(GLOB COMPAT_LIST
|
2018-10-20 22:08:26 +01:00
|
|
|
${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
|
|
|
|
${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json)
|
|
|
|
file(GLOB_RECURSE ICONS ${PROJECT_SOURCE_DIR}/dist/icons/*)
|
|
|
|
file(GLOB_RECURSE THEMES ${PROJECT_SOURCE_DIR}/dist/qt_themes/*)
|
2017-06-24 01:39:42 +01:00
|
|
|
|
2014-04-01 03:26:50 +01:00
|
|
|
|
2018-01-18 00:37:34 +00:00
|
|
|
target_sources(yuzu
|
|
|
|
PRIVATE
|
2018-08-29 14:42:53 +01:00
|
|
|
${COMPAT_LIST}
|
2018-01-18 00:37:34 +00:00
|
|
|
${ICONS}
|
|
|
|
${THEMES}
|
|
|
|
)
|
|
|
|
|
2015-03-08 00:07:49 +00:00
|
|
|
if (APPLE)
|
2018-01-13 22:39:31 +00:00
|
|
|
set(MACOSX_ICON "../../dist/yuzu.icns")
|
2015-09-11 21:08:42 +01:00
|
|
|
set_source_files_properties(${MACOSX_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
2018-01-18 00:37:34 +00:00
|
|
|
target_sources(yuzu PRIVATE ${MACOSX_ICON})
|
|
|
|
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE TRUE)
|
2018-01-12 02:21:20 +00:00
|
|
|
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
|
2018-07-02 18:10:41 +01:00
|
|
|
elseif(WIN32)
|
|
|
|
# compile as a win32 gui application instead of a console application
|
|
|
|
target_link_libraries(yuzu PRIVATE Qt5::WinMain)
|
|
|
|
if(MSVC)
|
|
|
|
set_target_properties(yuzu PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS")
|
|
|
|
elseif(MINGW)
|
|
|
|
set_target_properties(yuzu PROPERTIES LINK_FLAGS_RELEASE "-mwindows")
|
|
|
|
endif()
|
2015-03-08 00:07:49 +00:00
|
|
|
endif()
|
2018-01-18 00:37:34 +00:00
|
|
|
|
|
|
|
create_target_directory_groups(yuzu)
|
|
|
|
|
2018-01-12 02:21:20 +00:00
|
|
|
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)
|
2014-04-01 03:26:50 +01:00
|
|
|
|
2020-04-02 06:32:58 +01:00
|
|
|
if (ENABLE_VULKAN AND NOT WIN32)
|
|
|
|
target_include_directories(yuzu PRIVATE ${Qt5Gui_PRIVATE_INCLUDE_DIRS})
|
|
|
|
endif()
|
|
|
|
|
2019-04-15 22:50:27 +01:00
|
|
|
target_compile_definitions(yuzu PRIVATE
|
|
|
|
# Use QStringBuilder for string concatenation to reduce
|
|
|
|
# the overall number of temporary strings created.
|
|
|
|
-DQT_USE_QSTRINGBUILDER
|
2019-05-25 02:08:27 +01:00
|
|
|
|
|
|
|
# Disable implicit conversions from/to C strings
|
|
|
|
-DQT_NO_CAST_FROM_ASCII
|
|
|
|
-DQT_NO_CAST_TO_ASCII
|
2019-06-05 20:43:55 +01:00
|
|
|
|
|
|
|
# Disable implicit type narrowing in signal/slot connect() calls.
|
|
|
|
-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT
|
2019-06-05 20:47:42 +01:00
|
|
|
|
|
|
|
# Disable unsafe overloads of QProcess' start() function.
|
|
|
|
-DQT_NO_PROCESS_COMBINED_ARGUMENT_START
|
2019-06-05 21:05:34 +01:00
|
|
|
|
|
|
|
# Disable implicit QString->QUrl conversions to enforce use of proper resolving functions.
|
|
|
|
-DQT_NO_URL_CAST_FROM_STRING
|
2019-04-15 22:50:27 +01:00
|
|
|
)
|
|
|
|
|
2018-09-29 01:51:28 +01:00
|
|
|
if (YUZU_ENABLE_COMPATIBILITY_REPORTING)
|
2018-10-20 22:28:27 +01:00
|
|
|
target_compile_definitions(yuzu PRIVATE -DYUZU_ENABLE_COMPATIBILITY_REPORTING)
|
2018-09-29 01:51:28 +01:00
|
|
|
endif()
|
|
|
|
|
2018-09-16 19:05:51 +01:00
|
|
|
if (USE_DISCORD_PRESENCE)
|
|
|
|
target_sources(yuzu PUBLIC
|
|
|
|
discord_impl.cpp
|
|
|
|
discord_impl.h
|
|
|
|
)
|
|
|
|
target_link_libraries(yuzu PRIVATE discord-rpc)
|
|
|
|
target_compile_definitions(yuzu PRIVATE -DUSE_DISCORD_PRESENCE)
|
|
|
|
endif()
|
|
|
|
|
2018-12-24 21:23:31 +00:00
|
|
|
if (YUZU_USE_QT_WEB_ENGINE)
|
|
|
|
target_link_libraries(yuzu PRIVATE Qt5::WebEngineCore Qt5::WebEngineWidgets)
|
|
|
|
target_compile_definitions(yuzu PRIVATE -DYUZU_USE_QT_WEB_ENGINE)
|
|
|
|
endif ()
|
|
|
|
|
2019-04-29 00:01:23 +01:00
|
|
|
if (YUZU_ENABLE_BOXCAT)
|
|
|
|
target_compile_definitions(yuzu PRIVATE -DYUZU_ENABLE_BOXCAT)
|
|
|
|
endif ()
|
|
|
|
|
2016-10-10 06:58:05 +01:00
|
|
|
if(UNIX AND NOT APPLE)
|
2018-01-12 02:21:20 +00:00
|
|
|
install(TARGETS yuzu RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
|
2015-07-09 20:19:02 +01:00
|
|
|
endif()
|
2015-02-26 04:36:02 +00:00
|
|
|
|
2016-12-11 14:10:21 +00:00
|
|
|
if (MSVC)
|
2018-01-14 04:17:42 +00:00
|
|
|
include(CopyYuzuQt5Deps)
|
|
|
|
include(CopyYuzuSDLDeps)
|
2018-01-04 18:15:29 +00:00
|
|
|
include(CopyYuzuUnicornDeps)
|
2018-01-13 22:14:04 +00:00
|
|
|
copy_yuzu_Qt5_deps(yuzu)
|
|
|
|
copy_yuzu_SDL_deps(yuzu)
|
2018-01-12 02:21:20 +00:00
|
|
|
copy_yuzu_unicorn_deps(yuzu)
|
2015-02-26 04:36:02 +00:00
|
|
|
endif()
|
2020-01-21 19:40:53 +00:00
|
|
|
|
|
|
|
if (ENABLE_VULKAN)
|
|
|
|
target_include_directories(yuzu PRIVATE ../../externals/Vulkan-Headers/include)
|
|
|
|
target_compile_definitions(yuzu PRIVATE HAS_VULKAN)
|
|
|
|
endif()
|