diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a90c06f68..b313320f39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,17 +42,6 @@ execute_process( OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) -add_definitions(-DOPENRCT2_BRANCH="${OPENRCT2_BRANCH}") - -# Define commit hash -execute_process( - COMMAND git rev-parse HEAD - WORKING_DIRECTORY ${ROOT_DIR} - OUTPUT_VARIABLE OPENRCT2_COMMIT_SHA1 - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET -) -add_definitions(-DOPENRCT2_COMMIT_SHA1="${OPENRCT2_COMMIT_SHA1}") # Define short commit hash execute_process( @@ -63,11 +52,6 @@ execute_process( ERROR_QUIET ) -# Tagged builds are not meant to display commit info -if (NOT OPENRCT2_COMMIT_SHA1_SHORT STREQUAL "HEAD") - add_definitions(-DOPENRCT2_COMMIT_SHA1_SHORT="${OPENRCT2_COMMIT_SHA1_SHORT}") -endif() - function (ADD_CHECK_C_COMPILER_FLAG _CFLAGS _CACHE_VAR _FLAG) CHECK_C_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}") if (${_CACHE_VAR}) diff --git a/src/openrct2/CMakeLists.txt b/src/openrct2/CMakeLists.txt index ee048631b3..9894a9d617 100644 --- a/src/openrct2/CMakeLists.txt +++ b/src/openrct2/CMakeLists.txt @@ -280,3 +280,15 @@ if (CXX_WARN_SUGGEST_FINAL_METHODS) # Disable -Wsuggest-final-methods via pragmas where due. add_definitions(-D__WARN_SUGGEST_FINAL_METHODS__) endif () + +# To avoid unnecessary rebuilds set the current branch and +# short sha1 only for the two files that use these +# definitions: Version.cpp and Crash/Platform.cpp +set_property(SOURCE ${CMAKE_CURRENT_LIST_DIR}/Version.cpp + ${CMAKE_CURRENT_LIST_DIR}/Crash/Platform.cpp PROPERTY + COMPILE_DEFINITIONS OPENRCT2_BRANCH="${OPENRCT2_BRANCH}") +if (NOT OPENRCT2_COMMIT_SHA1_SHORT STREQUAL "HEAD") + set_property(SOURCE ${CMAKE_CURRENT_LIST_DIR}/Version.cpp + ${CMAKE_CURRENT_LIST_DIR}/Crash/Platform.cpp PROPERTY + COMPILE_DEFINITIONS OPENRCT2_COMMIT_SHA1_SHORT="${OPENRCT2_COMMIT_SHA1_SHORT}") +endif()