summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2024-07-11 12:47:03 +0800
committerGitHub <noreply@github.com>2024-07-11 12:47:03 +0800
commit6ed7e7f60b3e60be2589b2aa7e812f7315493db5 (patch)
tree3ae231f8a750dd9502673385f85bbb9d629fac46 /cmake
parent49c56d742be12a8477eb7d6e2ffb637a6a153482 (diff)
Cope with failed version parsing (#4609)
* Cope with failed version parsing * Better version parsing * populate slang-tag-version with cmake * Neaten cmake
Diffstat (limited to 'cmake')
-rw-r--r--cmake/GitVersion.cmake18
-rw-r--r--cmake/SlangTarget.cmake8
2 files changed, 20 insertions, 6 deletions
diff --git a/cmake/GitVersion.cmake b/cmake/GitVersion.cmake
index 7044aaffc..386ca309c 100644
--- a/cmake/GitVersion.cmake
+++ b/cmake/GitVersion.cmake
@@ -1,16 +1,16 @@
find_package(Git)
# Extract a version from the latest tag matching something like v1.2.3.4
-function(get_git_version var dir)
+function(get_git_version var_numeric var dir)
if(NOT DEFINED ${var})
- set(version "0.0")
+ set(version_numeric "0.0.0")
+ set(version "0.0.0-unknown")
if(GIT_EXECUTABLE)
set(command
"${GIT_EXECUTABLE}"
-C
"${dir}"
describe
- --abbrev=0
--tags
--match
v*
@@ -19,19 +19,20 @@ function(get_git_version var dir)
COMMAND ${command}
RESULT_VARIABLE result
OUTPUT_STRIP_TRAILING_WHITESPACE
- OUTPUT_VARIABLE version
+ OUTPUT_VARIABLE version_out
)
if(NOT result EQUAL 0)
message(
WARNING
"Getting ${var} failed: ${command} returned ${result}"
)
- elseif("${version}" MATCHES "^v([0-9]+(\.[0-9]+)*).*")
+ elseif("${version_out}" MATCHES "^v(([0-9]+(\\.[0-9]+)*).*)")
set(version "${CMAKE_MATCH_1}")
+ set(version_numeric "${CMAKE_MATCH_2}")
else()
message(
WARNING
- "Couldn't parse numeric version (like v1.2.3) from ${version}"
+ "Couldn't parse version (like v1.2.3 or v1.2.3-foo) from ${version_out}"
)
endif()
else()
@@ -42,6 +43,11 @@ function(get_git_version var dir)
endif()
endif()
+ set(${var_numeric}
+ ${version_numeric}
+ CACHE STRING
+ "The project version numeric part, detected using git if available"
+ )
set(${var}
${version}
CACHE STRING
diff --git a/cmake/SlangTarget.cmake b/cmake/SlangTarget.cmake
index fdf3458cf..07409a960 100644
--- a/cmake/SlangTarget.cmake
+++ b/cmake/SlangTarget.cmake
@@ -60,6 +60,7 @@ function(slang_add_target dir type)
INCLUDE_FROM_PRIVATE
# Any include directories other targets need to use this target
INCLUDE_DIRECTORIES_PUBLIC
+ INCLUDE_DIRECTORIES_PRIVATE
# Add a dependency on the new target to the specified targets
REQUIRED_BY
# Add a dependency to the new target on the specified targets
@@ -234,6 +235,13 @@ function(slang_add_target dir type)
PUBLIC "$<BUILD_INTERFACE:${inc_abs}>"
)
endforeach()
+ foreach(inc ${ARG_INCLUDE_DIRECTORIES_PRIVATE})
+ get_filename_component(inc_abs ${inc} ABSOLUTE)
+ target_include_directories(
+ ${target}
+ PRIVATE "$<BUILD_INTERFACE:${inc_abs}>"
+ )
+ endforeach()
#
# Set up export macros