yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Ellie HermaszewskaMake slang-llvm fetching and failure more robust (#5346)b2386f36e

master
1.8 KiB56 linesraw
1find_package(Git)
2
3# Extract a version from the latest tag matching something like v1.2.3.4
4function(get_git_version var_numeric var dir)
5    if(NOT DEFINED ${var})
6        set(version_numeric "0.0.0")
7        set(version "0.0.0-unknown")
8        if(GIT_EXECUTABLE)
9            set(command
10                "${GIT_EXECUTABLE}"
11                -C
12                "${dir}"
13                describe
14                --tags
15                --match
16                v*
17            )
18            execute_process(
19                COMMAND ${command}
20                RESULT_VARIABLE result
21                OUTPUT_STRIP_TRAILING_WHITESPACE
22                OUTPUT_VARIABLE version_out
23            )
24            if(NOT result EQUAL 0)
25                message(
26                    WARNING
27                    "Getting ${var} failed: ${command} returned ${result}\nIs this a Git repo with tags?\nConsider settings -D${var} to specify a version manually"
28                )
29            elseif("${version_out}" MATCHES "^v(([0-9]+(\\.[0-9]+)*).*)")
30                set(version "${CMAKE_MATCH_1}")
31                set(version_numeric "${CMAKE_MATCH_2}")
32            else()
33                message(
34                    WARNING
35                    "Couldn't parse version (like v1.2.3 or v1.2.3-foo) from ${version_out}, using ${version} for now"
36                )
37            endif()
38        else()
39            message(
40                WARNING
41                "Couldn't find git executable to get ${var}, please use -D${var}, using ${version} for now"
42            )
43        endif()
44    endif()
45
46    set(${var_numeric}
47        ${version_numeric}
48        CACHE STRING
49        "The project version numeric part, detected using git if available"
50    )
51    set(${var}
52        ${version}
53        CACHE STRING
54        "The project version, detected using git if available"
55    )
56endfunction()