diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2024-07-11 12:47:03 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-11 12:47:03 +0800 |
| commit | 6ed7e7f60b3e60be2589b2aa7e812f7315493db5 (patch) | |
| tree | 3ae231f8a750dd9502673385f85bbb9d629fac46 /cmake | |
| parent | 49c56d742be12a8477eb7d6e2ffb637a6a153482 (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.cmake | 18 | ||||
| -rw-r--r-- | cmake/SlangTarget.cmake | 8 |
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 |
