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
|
||||
# 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)
|
||||
|
||||
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"
|
||||
WORKING_DIRECTORY "${SOURCE_DIR}"
|
||||
WORKING_DIRECTORY "${GBI_SOURCE_DIR}"
|
||||
OUTPUT_VARIABLE GIT_COMMIT_ID
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
else()
|
||||
else()
|
||||
set(GIT_COMMIT_ID "")
|
||||
message("(Git Build ID) Error: could not find Git")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
file(WRITE "${OUTPUT_FILE}.temp" "const char* ${PREFIX}GitBuildId = \"${GIT_COMMIT_ID}\";\n")
|
||||
execute_process(COMMAND "${CMAKE_COMMAND}" "-E" "copy_if_different" "${OUTPUT_FILE}.temp" "${OUTPUT_FILE}")
|
||||
file(REMOVE "${OUTPUT_FILE}.temp")
|
||||
file(WRITE "${GBI_OUTPUT_FILE}.temp" "const char* ${GBI_PREFIX}GitBuildId = \"${GIT_COMMIT_ID}\";\n")
|
||||
execute_process(COMMAND "${CMAKE_COMMAND}" "-E" "copy_if_different" "${GBI_OUTPUT_FILE}.temp" "${GBI_OUTPUT_FILE}")
|
||||
file(REMOVE "${GBI_OUTPUT_FILE}.temp")
|
||||
endfunction()
|
||||
|
|
|
|||
|
|
@ -358,17 +358,17 @@ endif()
|
|||
add_library(sfizz::sfizz ALIAS sfizz_static)
|
||||
|
||||
# Git build identifier
|
||||
add_custom_target(sfizz-generate-git-build-id
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
"-DSOURCE_DIR=${PROJECT_SOURCE_DIR}"
|
||||
"-DOUTPUT_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
|
||||
include(GitBuildID)
|
||||
make_git_build_id(
|
||||
SOURCE_DIR "${PROJECT_SOURCE_DIR}"
|
||||
OUTPUT_FILE "${PROJECT_BINARY_DIR}/git-build-id/GitBuildId.c"
|
||||
)
|
||||
add_library(sfizz_git_build_id STATIC EXCLUDE_FROM_ALL
|
||||
"sfizz/git-build-id/GitBuildId.h"
|
||||
"${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)
|
||||
"${PROJECT_BINARY_DIR}/git-build-id/GitBuildId.c"
|
||||
)
|
||||
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)
|
||||
set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM TRUE)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue