File tree 7 files changed +27
-10
lines changed
7 files changed +27
-10
lines changed Original file line number Diff line number Diff line change @@ -4,12 +4,13 @@ cmake_minimum_required(VERSION 3.25)
4
4
# from git describe
5
5
list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR} /cmake" )
6
6
include (GitVersion)
7
- get_git_version(SLANG_VERSION "${CMAKE_CURRENT_LIST_DIR} " )
7
+ get_git_version(SLANG_VERSION_NUMERIC SLANG_VERSION_FULL "${CMAKE_CURRENT_LIST_DIR} " )
8
8
9
9
#
10
10
# Our project
11
11
#
12
- project (slang VERSION "${SLANG_VERSION} " LANGUAGES)
12
+ project (slang VERSION "${SLANG_VERSION_NUMERIC} " LANGUAGES)
13
+ set (PROJECT_VERSION "${SLANG_VERSION_FULL} " )
13
14
14
15
#
15
16
# Global CMake options
Original file line number Diff line number Diff line change 1
1
find_package (Git)
2
2
3
3
# Extract a version from the latest tag matching something like v1.2.3.4
4
- function (get_git_version var dir)
4
+ function (get_git_version var_numeric var dir)
5
5
if (NOT DEFINED ${var} )
6
- set (version "0.0" )
6
+ set (version_numeric "0.0.0" )
7
+ set (version "0.0.0-unknown" )
7
8
if (GIT_EXECUTABLE)
8
9
set (command
9
10
"${GIT_EXECUTABLE} "
10
11
-C
11
12
"${dir} "
12
13
describe
13
- --abbrev=0
14
14
--tags
15
15
--match
16
16
v*
@@ -19,19 +19,20 @@ function(get_git_version var dir)
19
19
COMMAND ${command}
20
20
RESULT_VARIABLE result
21
21
OUTPUT_STRIP_TRAILING_WHITESPACE
22
- OUTPUT_VARIABLE version
22
+ OUTPUT_VARIABLE version_out
23
23
)
24
24
if (NOT result EQUAL 0)
25
25
message (
26
26
WARNING
27
27
"Getting ${var} failed: ${command} returned ${result} "
28
28
)
29
- elseif ("${version } " MATCHES "^v([0-9]+(\. [0-9]+)*).*" )
29
+ elseif ("${version_out } " MATCHES "^v(( [0-9]+(\\ .[0-9]+)*).*) " )
30
30
set (version "${CMAKE_MATCH_1} " )
31
+ set (version_numeric "${CMAKE_MATCH_2} " )
31
32
else ()
32
33
message (
33
34
WARNING
34
- "Couldn't parse numeric version (like v1.2.3) from ${version } "
35
+ "Couldn't parse version (like v1.2.3 or v1.2.3-foo ) from ${version_out } "
35
36
)
36
37
endif ()
37
38
else ()
@@ -42,6 +43,11 @@ function(get_git_version var dir)
42
43
endif ()
43
44
endif ()
44
45
46
+ set (${var_numeric}
47
+ ${version_numeric}
48
+ CACHE STRING
49
+ "The project version numeric part, detected using git if available"
50
+ )
45
51
set (${var}
46
52
${version}
47
53
CACHE STRING
Original file line number Diff line number Diff line change @@ -60,6 +60,7 @@ function(slang_add_target dir type)
60
60
INCLUDE_FROM_PRIVATE
61
61
# Any include directories other targets need to use this target
62
62
INCLUDE_DIRECTORIES_PUBLIC
63
+ INCLUDE_DIRECTORIES_PRIVATE
63
64
# Add a dependency on the new target to the specified targets
64
65
REQUIRED_BY
65
66
# Add a dependency to the new target on the specified targets
@@ -234,6 +235,13 @@ function(slang_add_target dir type)
234
235
PUBLIC "$<BUILD_INTERFACE:${inc_abs} >"
235
236
)
236
237
endforeach ()
238
+ foreach (inc ${ARG_INCLUDE_DIRECTORIES_PRIVATE} )
239
+ get_filename_component (inc_abs ${inc} ABSOLUTE )
240
+ target_include_directories (
241
+ ${target}
242
+ PRIVATE "$<BUILD_INTERFACE:${inc_abs} >"
243
+ )
244
+ endforeach ()
237
245
238
246
#
239
247
# Set up export macros
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ #define SLANG_TAG_VERSION "@SLANG_VERSION_FULL@"
Original file line number Diff line number Diff line change @@ -249,6 +249,7 @@ target_include_directories(
249
249
#
250
250
# Slang itself
251
251
#
252
+ configure_file (${slang_SOURCE_DIR} /slang-tag-version .h.in slang-tag-version .h)
252
253
slang_add_target(
253
254
.
254
255
${SLANG_LIB_TYPE}
@@ -266,6 +267,7 @@ slang_add_target(
266
267
# slang.h is in the project root, so include that directory in the interface
267
268
# for slang
268
269
INCLUDE_DIRECTORIES_PUBLIC ${slang_SOURCE_DIR}
270
+ INCLUDE_DIRECTORIES_PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
269
271
EXPORT_MACRO_PREFIX SLANG
270
272
INSTALL
271
273
PUBLIC_HEADERS ${slang_SOURCE_DIR} /slang*.h
Original file line number Diff line number Diff line change 47
47
48
48
#include " slang-check-impl.h"
49
49
50
- #include " ../../ slang-tag-version.h"
50
+ #include " slang-tag-version.h"
51
51
52
52
#include < sys/stat.h>
53
53
You can’t perform that action at this time.
0 commit comments