mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-25 23:29:44 -06:00
Merge pull request #8101 from spycrab/cmake_qol
[Windows] CMake Quality of Life improvements
This commit is contained in:
@ -107,12 +107,12 @@ endif()
|
|||||||
# as defined above.
|
# as defined above.
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Binaries)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Binaries)
|
||||||
|
|
||||||
if (MSVC)
|
if (WIN32)
|
||||||
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Binary)
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# setup CCache
|
# setup CCache
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
{
|
{
|
||||||
"name": "Release",
|
"name": "Release",
|
||||||
"configurationType": "Release",
|
"configurationType": "Release",
|
||||||
"generator": "Visual Studio 16 2019 Win64",
|
"generator": "Ninja",
|
||||||
"inheritEnvironments": [ "msvc_x64_x64" ],
|
"inheritEnvironments": [ "msvc_x64_x64" ],
|
||||||
"buildCommandArgs": "-m -p:PreferredToolArchitecture=x64",
|
"buildCommandArgs": "",
|
||||||
"buildRoot": "${workspaceRoot}\\build",
|
"buildRoot": "${workspaceRoot}\\Build\\${name}",
|
||||||
"cmakeCommandArgs": "",
|
"cmakeCommandArgs": "",
|
||||||
"variables": [
|
"variables": [
|
||||||
{
|
{
|
||||||
@ -17,11 +17,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Debug",
|
"name": "Debug",
|
||||||
"generator": "Visual Studio 16 2019 Win64",
|
|
||||||
"configurationType": "Debug",
|
"configurationType": "Debug",
|
||||||
|
"generator": "Ninja",
|
||||||
"inheritEnvironments": [ "msvc_x64_x64" ],
|
"inheritEnvironments": [ "msvc_x64_x64" ],
|
||||||
"buildCommandArgs": "-m -p:PreferredToolArchitecture=x64",
|
"buildCommandArgs": "",
|
||||||
"buildRoot": "${workspaceRoot}\\build",
|
"buildRoot": "${workspaceRoot}\\Build\\${name}",
|
||||||
"cmakeCommandArgs": "",
|
"cmakeCommandArgs": "",
|
||||||
"variables": [
|
"variables": [
|
||||||
{
|
{
|
||||||
|
@ -46,6 +46,10 @@ if (MSVC)
|
|||||||
# All files are encoded as UTF-8
|
# All files are encoded as UTF-8
|
||||||
add_compile_options(/utf-8)
|
add_compile_options(/utf-8)
|
||||||
|
|
||||||
|
# Use PCH
|
||||||
|
add_subdirectory(PCH)
|
||||||
|
add_definitions(/I${PCH_DIRECTORY})
|
||||||
|
add_definitions(/Yu${PCH_PATH})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# These aren't actually needed for C11/C++11
|
# These aren't actually needed for C11/C++11
|
||||||
|
@ -175,15 +175,19 @@ if(WIN32)
|
|||||||
target_compile_options(dolphin-emu PRIVATE "-D_SILENCE_CXX17_RESULT_OF_DEPRECATION_WARNING")
|
target_compile_options(dolphin-emu PRIVATE "-D_SILENCE_CXX17_RESULT_OF_DEPRECATION_WARNING")
|
||||||
|
|
||||||
# Copy Sys dir
|
# Copy Sys dir
|
||||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/Data/Sys")
|
add_custom_command(TARGET dolphin-emu POST_BUILD
|
||||||
file(GLOB_RECURSE resources RELATIVE "${CMAKE_SOURCE_DIR}/Data" "${CMAKE_SOURCE_DIR}/Data/Sys/*")
|
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/Data/Sys" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Sys"
|
||||||
|
)
|
||||||
foreach(res ${resources})
|
|
||||||
configure_file("${CMAKE_SOURCE_DIR}/Data/${res}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${res}" COPYONLY)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# Copy qt.conf
|
# Copy qt.conf
|
||||||
configure_file(qt.conf.win "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/qt.conf" COPYONLY)
|
add_custom_command(TARGET dolphin-emu POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/qt.conf.win" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/qt.conf"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create QtPlugins directory
|
||||||
|
add_custom_command(TARGET dolphin-emu POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/QtPlugins"
|
||||||
|
)
|
||||||
|
|
||||||
# Copy plugins
|
# Copy plugins
|
||||||
set (Qt5_PLUGINS_DIR "${Qt5_DIR}/../../../plugins")
|
set (Qt5_PLUGINS_DIR "${Qt5_DIR}/../../../plugins")
|
||||||
@ -196,7 +200,9 @@ if(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
foreach(plugin ${plugins})
|
foreach(plugin ${plugins})
|
||||||
configure_file("${Qt5_PLUGINS_DIR}/${plugin}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/QtPlugins/${plugin}" COPYONLY)
|
add_custom_command(TARGET dolphin-emu POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${Qt5_PLUGINS_DIR}/${plugin}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/QtPlugins/${plugin}"
|
||||||
|
)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Copy DLLs
|
# Copy DLLs
|
||||||
@ -211,7 +217,9 @@ if(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
foreach(dll ${dlls})
|
foreach(dll ${dlls})
|
||||||
configure_file("${Qt5_DLL_DIR}/${dll}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${dll}" COPYONLY)
|
add_custom_command(TARGET dolphin-emu POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${Qt5_DLL_DIR}/${dll}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
|
||||||
|
)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
@ -224,7 +232,7 @@ if(WIN32 AND NOT Gettext_FOUND)
|
|||||||
set(GETTEXT_MSGFMT_EXECUTABLE "${CMAKE_SOURCE_DIR}/Externals/gettext/msgfmt.exe")
|
set(GETTEXT_MSGFMT_EXECUTABLE "${CMAKE_SOURCE_DIR}/Externals/gettext/msgfmt.exe")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE)
|
if(GETTEXT_MSGFMT_EXECUTABLE)
|
||||||
set(pot_file "${CMAKE_SOURCE_DIR}/Languages/po/dolphin-emu.pot")
|
set(pot_file "${CMAKE_SOURCE_DIR}/Languages/po/dolphin-emu.pot")
|
||||||
file(GLOB LINGUAS ${CMAKE_SOURCE_DIR}/Languages/po/*.po)
|
file(GLOB LINGUAS ${CMAKE_SOURCE_DIR}/Languages/po/*.po)
|
||||||
|
|
||||||
|
4
Source/PCH/CMakeLists.txt
Normal file
4
Source/PCH/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
add_library(pch pch.h pch.cpp)
|
||||||
|
set(PCH_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
set(PCH_NAME ${PCH.pch})
|
||||||
|
target_compile_options(pch PUBLIC /Ycpch.h /Fp${PCH_DIRECTORY}/${PCH_NAME})
|
Reference in New Issue
Block a user