summaryrefslogtreecommitdiff
path: root/cmake/modules
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2023-01-28 16:54:36 +0100
committerAki <please@ignore.pl>2023-01-28 17:05:40 +0100
commite3fbcfc085411475cb07da84308f03dbd3405e5e (patch)
tree1fd0cdc7e8b8f90b032973dca983200b4d273998 /cmake/modules
parent161f92d0cf6982e605a7ec1be6eb19dc60951c45 (diff)
downloadkurator-e3fbcfc085411475cb07da84308f03dbd3405e5e.zip
kurator-e3fbcfc085411475cb07da84308f03dbd3405e5e.tar.gz
kurator-e3fbcfc085411475cb07da84308f03dbd3405e5e.tar.bz2
Commits will now trigger version-files regeneration during build
Diffstat (limited to 'cmake/modules')
-rw-r--r--cmake/modules/AddVersionFile.cmake15
-rw-r--r--cmake/modules/GitRevParse.cmake14
-rw-r--r--cmake/modules/generate_version_file.cmake12
3 files changed, 27 insertions, 14 deletions
diff --git a/cmake/modules/AddVersionFile.cmake b/cmake/modules/AddVersionFile.cmake
new file mode 100644
index 0000000..1cce0b9
--- /dev/null
+++ b/cmake/modules/AddVersionFile.cmake
@@ -0,0 +1,15 @@
+set(ADD_VERSION_FILE_DIR "${CMAKE_CURRENT_LIST_DIR}")
+
+function(add_version_file OUTPUT TEMPLATE)
+ add_custom_target(
+ ${OUTPUT}
+ BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT}"
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE}"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ COMMAND
+ cmake
+ -DOUTPUT='${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT}'
+ -DTEMPLATE='${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE}'
+ -P "${ADD_VERSION_FILE_DIR}/generate_version_file.cmake"
+ )
+endfunction()
diff --git a/cmake/modules/GitRevParse.cmake b/cmake/modules/GitRevParse.cmake
deleted file mode 100644
index 9005d65..0000000
--- a/cmake/modules/GitRevParse.cmake
+++ /dev/null
@@ -1,14 +0,0 @@
-function(git_rev_parse VAR)
- execute_process(
- COMMAND git rev-parse --short HEAD
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- RESULT_VARIABLE PARSE_RESULT
- OUTPUT_VARIABLE PARSE_OUTPUT
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- if(NOT PARSE_RESULT)
- set(${VAR} ${PARSE_OUTPUT} PARENT_SCOPE)
- else()
- set(${VAR} "Unknown" PARENT_SCOPE)
- endif()
-endfunction()
diff --git a/cmake/modules/generate_version_file.cmake b/cmake/modules/generate_version_file.cmake
new file mode 100644
index 0000000..4479855
--- /dev/null
+++ b/cmake/modules/generate_version_file.cmake
@@ -0,0 +1,12 @@
+execute_process(
+ COMMAND git rev-parse --short HEAD
+ RESULT_VARIABLE PARSE_RESULT
+ OUTPUT_VARIABLE PARSE_OUTPUT
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+if(NOT PARSE_RESULT)
+ set(HASH "${PARSE_OUTPUT}")
+else()
+ set(HASH "NOTFOUND")
+endif()
+configure_file("${TEMPLATE}" "${OUTPUT}" @ONLY)