Changed GitBuildID.cmake to work as function
This commit is contained in:
parent
7633785567
commit
a2f62eab04
2 changed files with 32 additions and 28 deletions
|
|
@ -6,25 +6,29 @@
|
||||||
# OUTPUT_FILE The file which gets written
|
# OUTPUT_FILE The file which gets written
|
||||||
# PREFIX An optional prefix for the constant name
|
# PREFIX An optional prefix for the constant name
|
||||||
|
|
||||||
get_filename_component(OUTPUT_NAME "${OUTPUT_FILE}" NAME)
|
|
||||||
get_filename_component(OUTPUT_DIR "${OUTPUT_FILE}" DIRECTORY)
|
|
||||||
|
|
||||||
message("(Git Build ID) Generating ${OUTPUT_NAME}")
|
|
||||||
|
|
||||||
find_package(Git QUIET)
|
find_package(Git QUIET)
|
||||||
|
|
||||||
file(MAKE_DIRECTORY "${OUTPUT_DIR}")
|
function(make_git_build_id)
|
||||||
|
set(oneValueArgs SOURCE_DIR OUTPUT_FILE PREFIX)
|
||||||
|
cmake_parse_arguments(GBI "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
|
|
||||||
if(GIT_FOUND)
|
get_filename_component(OUTPUT_NAME "${GBI_OUTPUT_FILE}" NAME)
|
||||||
|
get_filename_component(OUTPUT_DIR "${GBI_OUTPUT_FILE}" DIRECTORY)
|
||||||
|
message("(Git Build ID) Generating ${OUTPUT_NAME}")
|
||||||
|
|
||||||
|
file(MAKE_DIRECTORY "${OUTPUT_DIR}")
|
||||||
|
|
||||||
|
if(GIT_FOUND)
|
||||||
execute_process(COMMAND "${GIT_EXECUTABLE}" "rev-parse" "--short" "HEAD"
|
execute_process(COMMAND "${GIT_EXECUTABLE}" "rev-parse" "--short" "HEAD"
|
||||||
WORKING_DIRECTORY "${SOURCE_DIR}"
|
WORKING_DIRECTORY "${GBI_SOURCE_DIR}"
|
||||||
OUTPUT_VARIABLE GIT_COMMIT_ID
|
OUTPUT_VARIABLE GIT_COMMIT_ID
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
else()
|
else()
|
||||||
set(GIT_COMMIT_ID "")
|
set(GIT_COMMIT_ID "")
|
||||||
message("(Git Build ID) Error: could not find Git")
|
message("(Git Build ID) Error: could not find Git")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
file(WRITE "${OUTPUT_FILE}.temp" "const char* ${PREFIX}GitBuildId = \"${GIT_COMMIT_ID}\";\n")
|
file(WRITE "${GBI_OUTPUT_FILE}.temp" "const char* ${GBI_PREFIX}GitBuildId = \"${GIT_COMMIT_ID}\";\n")
|
||||||
execute_process(COMMAND "${CMAKE_COMMAND}" "-E" "copy_if_different" "${OUTPUT_FILE}.temp" "${OUTPUT_FILE}")
|
execute_process(COMMAND "${CMAKE_COMMAND}" "-E" "copy_if_different" "${GBI_OUTPUT_FILE}.temp" "${GBI_OUTPUT_FILE}")
|
||||||
file(REMOVE "${OUTPUT_FILE}.temp")
|
file(REMOVE "${GBI_OUTPUT_FILE}.temp")
|
||||||
|
endfunction()
|
||||||
|
|
|
||||||
|
|
@ -358,17 +358,17 @@ endif()
|
||||||
add_library(sfizz::sfizz ALIAS sfizz_static)
|
add_library(sfizz::sfizz ALIAS sfizz_static)
|
||||||
|
|
||||||
# Git build identifier
|
# Git build identifier
|
||||||
add_custom_target(sfizz-generate-git-build-id
|
include(GitBuildID)
|
||||||
COMMAND "${CMAKE_COMMAND}"
|
make_git_build_id(
|
||||||
"-DSOURCE_DIR=${PROJECT_SOURCE_DIR}"
|
SOURCE_DIR "${PROJECT_SOURCE_DIR}"
|
||||||
"-DOUTPUT_FILE=${PROJECT_BINARY_DIR}/git-build-id/GitBuildId.c"
|
OUTPUT_FILE "${PROJECT_BINARY_DIR}/git-build-id/GitBuildId.c"
|
||||||
"-P" "${PROJECT_SOURCE_DIR}/cmake/GitBuildID.cmake"
|
)
|
||||||
BYPRODUCTS "${PROJECT_BINARY_DIR}/git-build-id/GitBuildId.c")
|
add_library(sfizz_git_build_id STATIC EXCLUDE_FROM_ALL
|
||||||
add_library(sfizz-git-build-id STATIC EXCLUDE_FROM_ALL
|
|
||||||
"sfizz/git-build-id/GitBuildId.h"
|
"sfizz/git-build-id/GitBuildId.h"
|
||||||
"${PROJECT_BINARY_DIR}/git-build-id/GitBuildId.c")
|
"${PROJECT_BINARY_DIR}/git-build-id/GitBuildId.c"
|
||||||
target_include_directories(sfizz-git-build-id PUBLIC "sfizz/git-build-id")
|
)
|
||||||
add_dependencies(sfizz-git-build-id sfizz-generate-git-build-id)
|
target_include_directories(sfizz_git_build_id PUBLIC "sfizz/git-build-id")
|
||||||
|
target_link_libraries(sfizz_static PRIVATE sfizz_git_build_id)
|
||||||
|
|
||||||
# Preserve generated files (Faust)
|
# Preserve generated files (Faust)
|
||||||
set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM TRUE)
|
set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM TRUE)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue