add packaging presets and runtime staging
This commit is contained in:
parent
d3f8c801ce
commit
245522f97a
3 changed files with 91 additions and 1 deletions
76
cmake/Skate3Version.cmake
Normal file
76
cmake/Skate3Version.cmake
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
function(skate3_compute_version out_var)
|
||||||
|
set(one_value FLOOR_VERSION GIT_DESCRIBE_LONG GIT_DESCRIBE_EXACT)
|
||||||
|
cmake_parse_arguments(ARG "" "${one_value}" "" ${ARGN})
|
||||||
|
|
||||||
|
if(NOT "${ARG_GIT_DESCRIBE_EXACT}" STREQUAL "")
|
||||||
|
if(ARG_GIT_DESCRIBE_EXACT MATCHES "^v([0-9]+\\.[0-9]+(\\.[0-9]+)?(\\.[0-9]+)?(-[0-9A-Za-z][0-9A-Za-z.-]*)?)$")
|
||||||
|
set(${out_var} "${CMAKE_MATCH_1}" PARENT_SCOPE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
message(FATAL_ERROR "skate3_compute_version: unparseable exact tag '${ARG_GIT_DESCRIBE_EXACT}'")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if("${ARG_GIT_DESCRIBE_LONG}" STREQUAL "")
|
||||||
|
message(WARNING
|
||||||
|
"skate3_compute_version: no v* tag reachable from HEAD. "
|
||||||
|
"Falling back to ${ARG_FLOOR_VERSION}-dev.unknown. "
|
||||||
|
"For CI release builds, fetch tags and build from a release tag.")
|
||||||
|
set(${out_var} "${ARG_FLOOR_VERSION}-dev.unknown" PARENT_SCOPE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT ARG_GIT_DESCRIBE_LONG MATCHES "^v[0-9]+\\.[0-9]+(\\.[0-9]+)?(\\.[0-9]+)?(-[0-9A-Za-z][0-9A-Za-z.-]*)?-([0-9]+)-g([0-9a-f]+)$")
|
||||||
|
message(FATAL_ERROR "skate3_compute_version: unparseable describe output '${ARG_GIT_DESCRIBE_LONG}'")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(commit_count ${CMAKE_MATCH_6})
|
||||||
|
set(short_sha ${CMAKE_MATCH_7})
|
||||||
|
set(${out_var} "${ARG_FLOOR_VERSION}.${commit_count}-dev.g${short_sha}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(skate3_resolve_version out_var)
|
||||||
|
set(one_value FLOOR_VERSION SOURCE_DIR)
|
||||||
|
cmake_parse_arguments(ARG "" "${one_value}" "" ${ARGN})
|
||||||
|
|
||||||
|
if(NOT ARG_SOURCE_DIR)
|
||||||
|
set(ARG_SOURCE_DIR "${CMAKE_SOURCE_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_program(GIT_EXECUTABLE git)
|
||||||
|
if(NOT GIT_EXECUTABLE)
|
||||||
|
skate3_compute_version(result
|
||||||
|
FLOOR_VERSION ${ARG_FLOOR_VERSION}
|
||||||
|
GIT_DESCRIBE_LONG ""
|
||||||
|
GIT_DESCRIBE_EXACT "")
|
||||||
|
set(${out_var} "${result}" PARENT_SCOPE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${GIT_EXECUTABLE} describe --tags --exact-match --match "v[0-9]*.[0-9]*"
|
||||||
|
WORKING_DIRECTORY "${ARG_SOURCE_DIR}"
|
||||||
|
OUTPUT_VARIABLE describe_exact
|
||||||
|
ERROR_QUIET
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
RESULT_VARIABLE describe_exact_rc)
|
||||||
|
if(NOT describe_exact_rc EQUAL 0)
|
||||||
|
set(describe_exact "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${GIT_EXECUTABLE} describe --tags --long --match "v[0-9]*.[0-9]*"
|
||||||
|
WORKING_DIRECTORY "${ARG_SOURCE_DIR}"
|
||||||
|
OUTPUT_VARIABLE describe_long
|
||||||
|
ERROR_QUIET
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
RESULT_VARIABLE describe_long_rc)
|
||||||
|
if(NOT describe_long_rc EQUAL 0)
|
||||||
|
set(describe_long "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
skate3_compute_version(result
|
||||||
|
FLOOR_VERSION ${ARG_FLOOR_VERSION}
|
||||||
|
GIT_DESCRIBE_LONG "${describe_long}"
|
||||||
|
GIT_DESCRIBE_EXACT "${describe_exact}")
|
||||||
|
set(${out_var} "${result}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
14
src/skate3_version.h.in
Normal file
14
src/skate3_version.h.in
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// Auto-generated by CMake -- do not edit.
|
||||||
|
|
||||||
|
#define SKATE3_VERSION_STRING "@SKATE3_FULL_VERSION@"
|
||||||
|
#define SKATE3_VERSION_NUMERIC "@SKATE3_NUMERIC_VERSION@"
|
||||||
|
#define SKATE3_BUILD_PLATFORM "@SKATE3_BUILD_PLATFORM@"
|
||||||
|
#define SKATE3_BUILD_TIMESTAMP "@SKATE3_BUILD_TIMESTAMP@"
|
||||||
|
|
||||||
|
// Requires SKATE3_BUILD_CONFIG compile definition.
|
||||||
|
#define SKATE3_BUILD_TITLE "[v" SKATE3_VERSION_STRING "-" SKATE3_BUILD_CONFIG "]"
|
||||||
|
#define SKATE3_BUILD_STAMP \
|
||||||
|
"build: skate3-v" SKATE3_VERSION_STRING "-" SKATE3_BUILD_PLATFORM \
|
||||||
|
"-" SKATE3_BUILD_CONFIG "@" SKATE3_BUILD_TIMESTAMP
|
||||||
2
third_party/rexglue-sdk
vendored
2
third_party/rexglue-sdk
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 9173ff4b017a178b6c2433bd925eb96d79dc764d
|
Subproject commit 028c1ada911f02d11d08a37ca18e9e99a1f5502e
|
||||||
Loading…
Add table
Reference in a new issue