mirror of https://github.com/microsoft/vcpkg.git
104 lines
3.8 KiB
Diff
104 lines
3.8 KiB
Diff
diff --git a/cmake/modules/Versioning.cmake b/cmake/modules/Versioning.cmake
|
|
index e492370..380d97e 100644
|
|
--- a/cmake/modules/Versioning.cmake
|
|
+++ b/cmake/modules/Versioning.cmake
|
|
@@ -10,51 +10,54 @@ set(_VERSIONING_MODULE_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE INTERNAL "Versionin
|
|
# ------------------------------------------------------------
|
|
# Extract version information from Git
|
|
# ------------------------------------------------------------
|
|
+if(NOT ADS_VERSION)
|
|
+ # Get tag (expected: v1.2.3 or 1.2.3 or 1.2.3-12-gHASH)
|
|
+ execute_process(
|
|
+ COMMAND git describe --tags --dirty
|
|
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
+ OUTPUT_VARIABLE GIT_DESC_RAW
|
|
+ OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
+ )
|
|
+
|
|
+ # Remove leading "v" if present
|
|
+ string(REGEX REPLACE "^v" "" GIT_DESC "${GIT_DESC_RAW}")
|
|
+
|
|
+ # Extract major.minor.patch
|
|
+ string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" _ "${GIT_DESC}")
|
|
+ set(PROJECT_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
|
+ set(PROJECT_VERSION_MINOR "${CMAKE_MATCH_2}")
|
|
+ set(PROJECT_VERSION_PATCH "${CMAKE_MATCH_3}")
|
|
+
|
|
+ set(PROJECT_VERSION_STRING
|
|
+ "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
|
|
+ )
|
|
+
|
|
+ # Commit hash (full + short)
|
|
+ execute_process(
|
|
+ COMMAND git rev-parse HEAD
|
|
+ OUTPUT_VARIABLE PROJECT_GIT_HASH
|
|
+ OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
+ )
|
|
+
|
|
+ execute_process(
|
|
+ COMMAND git rev-parse --short HEAD
|
|
+ OUTPUT_VARIABLE PROJECT_GIT_HASH_SHORT
|
|
+ OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
+ )
|
|
|
|
-# Get tag (expected: v1.2.3 or 1.2.3 or 1.2.3-12-gHASH)
|
|
-execute_process(
|
|
- COMMAND git describe --tags --dirty
|
|
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
- OUTPUT_VARIABLE GIT_DESC_RAW
|
|
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
-)
|
|
-
|
|
-# Remove leading "v" if present
|
|
-string(REGEX REPLACE "^v" "" GIT_DESC "${GIT_DESC_RAW}")
|
|
-
|
|
-# Extract major.minor.patch
|
|
-string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" _ "${GIT_DESC}")
|
|
-set(PROJECT_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
|
-set(PROJECT_VERSION_MINOR "${CMAKE_MATCH_2}")
|
|
-set(PROJECT_VERSION_PATCH "${CMAKE_MATCH_3}")
|
|
-
|
|
-set(PROJECT_VERSION_STRING
|
|
- "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
|
|
-)
|
|
-
|
|
-# Commit hash (full + short)
|
|
-execute_process(
|
|
- COMMAND git rev-parse HEAD
|
|
- OUTPUT_VARIABLE PROJECT_GIT_HASH
|
|
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
-)
|
|
-
|
|
-execute_process(
|
|
- COMMAND git rev-parse --short HEAD
|
|
- OUTPUT_VARIABLE PROJECT_GIT_HASH_SHORT
|
|
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
-)
|
|
-
|
|
-# Export variables to parent scope
|
|
-set(PROJECT_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}" PARENT_SCOPE)
|
|
-set(PROJECT_VERSION_MINOR "${PROJECT_VERSION_MINOR}" PARENT_SCOPE)
|
|
-set(PROJECT_VERSION_PATCH "${PROJECT_VERSION_PATCH}" PARENT_SCOPE)
|
|
-set(PROJECT_VERSION_STRING "${PROJECT_VERSION_STRING}" PARENT_SCOPE)
|
|
-set(PROJECT_GIT_HASH "${PROJECT_GIT_HASH}" PARENT_SCOPE)
|
|
-set(PROJECT_GIT_HASH_SHORT "${PROJECT_GIT_HASH_SHORT}" PARENT_SCOPE)
|
|
-
|
|
-# Public variable for users
|
|
-set(PROJECT_AUTO_VERSION "${PROJECT_VERSION_STRING}" PARENT_SCOPE)
|
|
+ # Export variables to parent scope
|
|
+ set(PROJECT_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}" PARENT_SCOPE)
|
|
+ set(PROJECT_VERSION_MINOR "${PROJECT_VERSION_MINOR}" PARENT_SCOPE)
|
|
+ set(PROJECT_VERSION_PATCH "${PROJECT_VERSION_PATCH}" PARENT_SCOPE)
|
|
+ set(PROJECT_VERSION_STRING "${PROJECT_VERSION_STRING}" PARENT_SCOPE)
|
|
+ set(PROJECT_GIT_HASH "${PROJECT_GIT_HASH}" PARENT_SCOPE)
|
|
+ set(PROJECT_GIT_HASH_SHORT "${PROJECT_GIT_HASH_SHORT}" PARENT_SCOPE)
|
|
+
|
|
+ # Public variable for users
|
|
+ set(PROJECT_AUTO_VERSION "${PROJECT_VERSION_STRING}" PARENT_SCOPE)
|
|
+else()
|
|
+ set(PROJECT_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
|
+endif()
|
|
|
|
# ------------------------------------------------------------
|
|
# Reusable function: Attach Windows version resources to target
|