@@ -3,6 +3,7 @@ include_guard()
33# Change these defaults to point to your infrastructure if desired
44set (CMKR_REPO "https://github.com/build-cpp/cmkr" CACHE STRING "cmkr git repository" FORCE)
55set (CMKR_TAG "v0.2.10" CACHE STRING "cmkr git tag (this needs to be available forever)" FORCE)
6+ set (CMKR_COMMIT_HASH "" CACHE STRING "cmkr git commit hash (optional)" FORCE)
67
78# To bootstrap/generate a cmkr project: cmake -P cmkr.cmake
89if (CMAKE_SCRIPT_MODE_FILE )
@@ -15,7 +16,7 @@ endif()
1516set (CMKR_EXECUTABLE "" CACHE FILEPATH "cmkr executable" )
1617set (CMKR_SKIP_GENERATION OFF CACHE BOOL "skip automatic cmkr generation" )
1718set (CMKR_BUILD_TYPE "Debug" CACHE STRING "cmkr build configuration" )
18- mark_as_advanced (CMKR_REPO CMKR_TAG CMKR_EXECUTABLE CMKR_SKIP_GENERATION CMKR_BUILD_TYPE)
19+ mark_as_advanced (CMKR_REPO CMKR_TAG CMKR_COMMIT_HASH CMKR_EXECUTABLE CMKR_SKIP_GENERATION CMKR_BUILD_TYPE)
1920
2021# Disable cmkr if generation is disabled
2122if (DEFINED ENV{CI} OR CMKR_SKIP_GENERATION OR CMKR_BUILD_SKIP_GENERATION)
@@ -115,6 +116,16 @@ else()
115116 ${CMKR_REPO}
116117 "${CMKR_DIRECTORY} "
117118 )
119+ if (CMKR_COMMIT_HASH)
120+ execute_process (
121+ COMMAND "${GIT_EXECUTABLE} " checkout -q "${CMKR_COMMIT_HASH} "
122+ RESULT_VARIABLE CMKR_EXEC_RESULT
123+ WORKING_DIRECTORY "${CMKR_DIRECTORY} "
124+ )
125+ if (NOT CMKR_EXEC_RESULT EQUAL 0)
126+ message (FATAL_ERROR "Tag '${CMKR_TAG} ' hash is not '${CMKR_COMMIT_HASH} '" )
127+ endif ()
128+ endif ()
118129 message (STATUS "[cmkr] Building cmkr (using system compiler)..." )
119130 cmkr_exec("${CMAKE_COMMAND} "
120131 --no -warn-unused-cli
0 commit comments