From 326a6e391fa3e3ce25ec16e86bccab47658d6664 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Tue, 21 Oct 2025 23:17:43 +1000 Subject: [PATCH] CMake: Fix scmversion.cpp always updating on Mac --- src/scmversion/CMakeLists.txt | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/scmversion/CMakeLists.txt b/src/scmversion/CMakeLists.txt index 8ab2e34f2..dca122d21 100644 --- a/src/scmversion/CMakeLists.txt +++ b/src/scmversion/CMakeLists.txt @@ -1,15 +1,19 @@ -# _scmversion.cpp is a dummy file that will never be created, so the command will always be run if(CMAKE_HOST_SYSTEM MATCHES "Windows") - add_custom_command(OUTPUT scmversion.cpp _scmversion.cpp - COMMAND cmd /k "${CMAKE_CURRENT_SOURCE_DIR}/gen_scmversion.bat" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + add_custom_target(generate_scmversion + COMMAND cmd /k "${CMAKE_CURRENT_SOURCE_DIR}/gen_scmversion.bat" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/scmversion.cpp" + COMMENT "Checking if scmversion.cpp needs to be updated") else() - add_custom_command(OUTPUT scmversion.cpp _scmversion.cpp - COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/gen_scmversion.sh") + add_custom_target(generate_scmversion + COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/gen_scmversion.sh" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/scmversion.cpp" + COMMENT "Checking if scmversion.cpp needs to be updated") endif() add_library(scmversion - scmversion.cpp + "${CMAKE_CURRENT_BINARY_DIR}/scmversion.cpp" scmversion.h ) - +add_dependencies(scmversion generate_scmversion)