From 1cb6ce6057f751d927e64e191072da0a96c8cb5b Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sun, 21 Apr 2024 13:24:58 -0400 Subject: [PATCH 1/3] ScmRevGen: Refactor file configuration into a function --- CMake/ScmRevGen.cmake | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/CMake/ScmRevGen.cmake b/CMake/ScmRevGen.cmake index 5ec3041134..928e9ac4e0 100644 --- a/CMake/ScmRevGen.cmake +++ b/CMake/ScmRevGen.cmake @@ -42,11 +42,15 @@ if(NOT DOLPHIN_WC_REVISION) set(DOLPHIN_WC_COMMITS_AHEAD_MASTER 0) endif() -configure_file( - "${PROJECT_SOURCE_DIR}/Source/Core/Common/scmrev.h.in" - "${PROJECT_BINARY_DIR}/Source/Core/Common/scmrev.h.tmp" -) +function(configure_source_file path) + configure_file( + "${PROJECT_SOURCE_DIR}/${path}.in" + "${PROJECT_BINARY_DIR}/${path}.tmp" + ) -execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_BINARY_DIR}/Source/Core/Common/scmrev.h.tmp" "${PROJECT_BINARY_DIR}/Source/Core/Common/scmrev.h") + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_BINARY_DIR}/${path}.tmp" "${PROJECT_BINARY_DIR}/${path}") -file(REMOVE "${PROJECT_BINARY_DIR}/Source/Core/Common/scmrev.h.tmp") + file(REMOVE "${PROJECT_BINARY_DIR}/${path}.tmp") +endfunction() + +configure_source_file("Source/Core/Common/scmrev.h") From 3ad1037d7f72bd26884e84f0306a365a4f5b7c1b Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sun, 10 Dec 2023 14:16:33 -0500 Subject: [PATCH 2/3] ScmRevGen: Generate Info.plist for DolphinQt --- CMake/ScmRevGen.cmake | 4 ++++ CMakeLists.txt | 11 +++++++++-- Source/Core/DolphinQt/CMakeLists.txt | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/CMake/ScmRevGen.cmake b/CMake/ScmRevGen.cmake index 928e9ac4e0..712aa97387 100644 --- a/CMake/ScmRevGen.cmake +++ b/CMake/ScmRevGen.cmake @@ -54,3 +54,7 @@ function(configure_source_file path) endfunction() configure_source_file("Source/Core/Common/scmrev.h") + +if(APPLE) + configure_source_file("Source/Core/DolphinQt/Info.plist") +endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 869862eb75..00d7bbc4fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -782,14 +782,21 @@ if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/Common/scmrev.h) file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/Common/scmrev.h) endif() +if(APPLE) + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt) + if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt/Info.plist) + file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt/Info.plist) + endif() +endif() + find_package(Git) if(NOT GIT_FOUND) set(GIT_EXECUTABLE "") endif() add_custom_target( dolphin_scmrev - ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DPROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} -DDISTRIBUTOR=${DISTRIBUTOR} -DDOLPHIN_DEFAULT_UPDATE_TRACK=${DOLPHIN_DEFAULT_UPDATE_TRACK} -DGIT_FOUND=${GIT_FOUND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -DDOLPHIN_WC_REVISION=${DOLPHIN_WC_REVISION} -DDOLPHIN_WC_DESCRIBE=${DOLPHIN_WC_DESCRIBE} -DDOLPHIN_WC_BRANCH=${DOLPHIN_WC_BRANCH} -P ${CMAKE_CURRENT_SOURCE_DIR}/CMake/ScmRevGen.cmake - BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/Common/scmrev.h + ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DPROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} -DDISTRIBUTOR=${DISTRIBUTOR} -DDOLPHIN_DEFAULT_UPDATE_TRACK=${DOLPHIN_DEFAULT_UPDATE_TRACK} -DGIT_FOUND=${GIT_FOUND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -DDOLPHIN_WC_REVISION=${DOLPHIN_WC_REVISION} -DDOLPHIN_WC_DESCRIBE=${DOLPHIN_WC_DESCRIBE} -DDOLPHIN_WC_BRANCH=${DOLPHIN_WC_BRANCH} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -P ${CMAKE_CURRENT_SOURCE_DIR}/CMake/ScmRevGen.cmake + BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/Common/scmrev.h" "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt/Info.plist" VERBATIM ) diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 87bd9883d5..329998a99a 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -569,7 +569,7 @@ if(APPLE) # Ask for an application bundle. set_target_properties(dolphin-emu PROPERTIES MACOSX_BUNDLE true - MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist" XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/DolphinEmu.entitlements" XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS "--deep --options=runtime" OUTPUT_NAME Dolphin From c154134e28e334fc83ae267d92d69f9d74732bf4 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sun, 10 Dec 2023 18:31:22 -0500 Subject: [PATCH 3/3] ScmRevGen: Generate Info.plist for MacUpdater --- CMake/ScmRevGen.cmake | 1 + CMakeLists.txt | 7 ++++++- Source/Core/MacUpdater/CMakeLists.txt | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CMake/ScmRevGen.cmake b/CMake/ScmRevGen.cmake index 712aa97387..65aa8c78c5 100644 --- a/CMake/ScmRevGen.cmake +++ b/CMake/ScmRevGen.cmake @@ -57,4 +57,5 @@ configure_source_file("Source/Core/Common/scmrev.h") if(APPLE) configure_source_file("Source/Core/DolphinQt/Info.plist") + configure_source_file("Source/Core/MacUpdater/Info.plist") endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 00d7bbc4fb..518f89aea1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -787,6 +787,11 @@ if(APPLE) if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt/Info.plist) file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt/Info.plist) endif() + + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/MacUpdater) + if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/MacUpdater/Info.plist) + file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/MacUpdater/Info.plist) + endif() endif() find_package(Git) @@ -796,7 +801,7 @@ endif() add_custom_target( dolphin_scmrev ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DPROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} -DDISTRIBUTOR=${DISTRIBUTOR} -DDOLPHIN_DEFAULT_UPDATE_TRACK=${DOLPHIN_DEFAULT_UPDATE_TRACK} -DGIT_FOUND=${GIT_FOUND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -DDOLPHIN_WC_REVISION=${DOLPHIN_WC_REVISION} -DDOLPHIN_WC_DESCRIBE=${DOLPHIN_WC_DESCRIBE} -DDOLPHIN_WC_BRANCH=${DOLPHIN_WC_BRANCH} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -P ${CMAKE_CURRENT_SOURCE_DIR}/CMake/ScmRevGen.cmake - BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/Common/scmrev.h" "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt/Info.plist" + BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/Common/scmrev.h" "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt/Info.plist" "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/MacUpdater/Info.plist" VERBATIM ) diff --git a/Source/Core/MacUpdater/CMakeLists.txt b/Source/Core/MacUpdater/CMakeLists.txt index 3a9a9b8d0e..7ce5a58a5f 100644 --- a/Source/Core/MacUpdater/CMakeLists.txt +++ b/Source/Core/MacUpdater/CMakeLists.txt @@ -16,9 +16,11 @@ set(MacUpdater_NAME "Dolphin Updater") set(MacUpdater_BIN_DIR ${CMAKE_BINARY_DIR}/Binaries) set(MacUpdater_BUNDLE_PATH ${MacUpdater_BIN_DIR}/${MacUpdater_NAME}.app) +add_dependencies(MacUpdater dolphin_scmrev) + set_target_properties(MacUpdater PROPERTIES MACOSX_BUNDLE true - MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist" OUTPUT_NAME ${MacUpdater_NAME}) target_compile_options(MacUpdater PRIVATE -x objective-c++)