Files
@ r28356:5479dee3539c
Branch filter:
Location: cpp/openttd-patchpack/source/cmake/scripts/FindVersion.cmake - annotation
r28356:5479dee3539c
5.2 KiB
text/x-cmake
Fix: [CI] patch in SHF_COMPRESSED symbol for our Linux Generic binaries (#11651)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | r24244:556df3f1e087 r24244:556df3f1e087 r25204:16fd5c9120b0 r25204:16fd5c9120b0 r25204:16fd5c9120b0 r25204:16fd5c9120b0 r25204:16fd5c9120b0 r25204:16fd5c9120b0 r25204:16fd5c9120b0 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24349:3fa910f6f5ee r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24349:3fa910f6f5ee r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24249:3ee64a728789 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24349:3fa910f6f5ee r24244:556df3f1e087 r24349:3fa910f6f5ee r24244:556df3f1e087 r24349:3fa910f6f5ee r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24349:3fa910f6f5ee r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24306:2dbcc7aa8f34 r25098:5066c68ec98f r24244:556df3f1e087 r24349:3fa910f6f5ee r24244:556df3f1e087 r24349:3fa910f6f5ee r24349:3fa910f6f5ee r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24349:3fa910f6f5ee r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24349:3fa910f6f5ee r24244:556df3f1e087 r24249:3ee64a728789 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24349:3fa910f6f5ee r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24349:3fa910f6f5ee r24244:556df3f1e087 r24244:556df3f1e087 r24244:556df3f1e087 r24349:3fa910f6f5ee r24246:d76075baa37e r24246:d76075baa37e r24349:3fa910f6f5ee r24246:d76075baa37e r24246:d76075baa37e r24246:d76075baa37e r24244:556df3f1e087 r25624:c1d8d2ba6a32 r24246:d76075baa37e r24246:d76075baa37e r24246:d76075baa37e r24349:3fa910f6f5ee r24244:556df3f1e087 r24246:d76075baa37e r24246:d76075baa37e r24246:d76075baa37e r24418:fffd5a9fcaae r24418:fffd5a9fcaae r24418:fffd5a9fcaae r24418:fffd5a9fcaae r24418:fffd5a9fcaae r24418:fffd5a9fcaae r24418:fffd5a9fcaae r24418:fffd5a9fcaae r24418:fffd5a9fcaae r24418:fffd5a9fcaae r24418:fffd5a9fcaae r24418:fffd5a9fcaae r24349:3fa910f6f5ee | cmake_minimum_required(VERSION 3.5)
if(NOT REV_MAJOR)
set(REV_MAJOR 0)
endif()
if(NOT REV_MINOR)
set(REV_MINOR 0)
endif()
#
# Finds the current version of the current folder.
#
find_package(Git QUIET)
# ${CMAKE_SOURCE_DIR}/.git may be a directory or a regular file
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
# Make sure LC_ALL is set to something desirable
set(SAVED_LC_ALL "$ENV{LC_ALL}")
set(ENV{LC_ALL} C)
# Assume the dir is not modified
set(REV_MODIFIED 0)
# Refresh the index to make sure file stat info is in sync, then look for modifications
execute_process(COMMAND ${GIT_EXECUTABLE} update-index --refresh
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_QUIET
)
# See if git tree is modified
execute_process(COMMAND ${GIT_EXECUTABLE} diff-index HEAD
OUTPUT_VARIABLE IS_MODIFIED
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
if(NOT IS_MODIFIED STREQUAL "")
set(REV_MODIFIED 2)
endif()
# Get last commit hash
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --verify HEAD
OUTPUT_VARIABLE FULLHASH
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
ERROR_QUIET
)
set(REV_HASH "${FULLHASH}")
string(SUBSTRING "${FULLHASH}" 0 10 SHORTHASH)
# Get the last commit date
execute_process(COMMAND ${GIT_EXECUTABLE} show -s --pretty=format:%ci HEAD
OUTPUT_VARIABLE COMMITDATE
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
string(REGEX REPLACE "([0-9]+)-([0-9]+)-([0-9]+).*" "\\1\\2\\3" COMMITDATE "${COMMITDATE}")
set(REV_ISODATE "${COMMITDATE}")
string(SUBSTRING "${REV_ISODATE}" 0 4 REV_YEAR)
# Get the branch
execute_process(COMMAND ${GIT_EXECUTABLE} symbolic-ref -q HEAD
OUTPUT_VARIABLE BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
ERROR_QUIET
)
string(REGEX REPLACE ".*/" "" BRANCH "${BRANCH}")
# Get the tag
execute_process(COMMAND ${GIT_EXECUTABLE} name-rev --name-only --tags --no-undefined HEAD
OUTPUT_VARIABLE TAG
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
ERROR_QUIET
)
string(REGEX REPLACE "\^0$" "" TAG "${TAG}")
if(REV_MODIFIED EQUAL 0)
set(HASHPREFIX "-g")
elseif(REV_MODIFIED EQUAL 2)
set(HASHPREFIX "-m")
else()
set(HASHPREFIX "-u")
endif()
# Set the version string
if(NOT TAG STREQUAL "")
set(REV_VERSION "${TAG}")
set(REV_ISTAG 1)
string(REGEX REPLACE "^[0-9.]+$" "" STABLETAG "${TAG}")
if(STABLETAG STREQUAL "")
set(REV_ISSTABLETAG 1)
else()
set(REV_ISSTABLETAG 0)
endif()
else()
set(REV_VERSION "${REV_ISODATE}-${BRANCH}${HASHPREFIX}${SHORTHASH}")
set(REV_ISTAG 0)
set(REV_ISSTABLETAG 0)
endif()
# Restore LC_ALL
set(ENV{LC_ALL} "${SAVED_LC_ALL}")
elseif(EXISTS "${CMAKE_SOURCE_DIR}/.ottdrev")
file(READ "${CMAKE_SOURCE_DIR}/.ottdrev" OTTDREV)
string(REPLACE "\n" "" OTTDREV "${OTTDREV}")
string(REPLACE "\t" ";" OTTDREV "${OTTDREV}")
list(GET OTTDREV 0 REV_VERSION)
list(GET OTTDREV 1 REV_ISODATE)
list(GET OTTDREV 2 REV_MODIFIED)
list(GET OTTDREV 3 REV_HASH)
list(GET OTTDREV 4 REV_ISTAG)
list(GET OTTDREV 5 REV_ISSTABLETAG)
list(GET OTTDREV 6 REV_YEAR)
else()
message(WARNING "No version detected; this build will NOT be network compatible")
set(REV_VERSION "norev0000")
set(REV_ISODATE "19700101")
set(REV_MODIFIED 1)
set(REV_HASH "unknown")
set(REV_ISTAG 0)
set(REV_ISSTABLETAG 0)
set(REV_YEAR "1970")
endif()
message(STATUS "Version string: ${REV_VERSION}")
if(GENERATE_OTTDREV)
message(STATUS "Generating .ottdrev")
file(WRITE ${CMAKE_SOURCE_DIR}/.ottdrev "${REV_VERSION}\t${REV_ISODATE}\t${REV_MODIFIED}\t${REV_HASH}\t${REV_ISTAG}\t${REV_ISSTABLETAG}\t${REV_YEAR}\n")
else()
message(STATUS "Generating rev.cpp")
configure_file("${CMAKE_SOURCE_DIR}/src/rev.cpp.in"
"${FIND_VERSION_BINARY_DIR}/rev.cpp")
if(WINDOWS)
message(STATUS "Generating ottdres.rc")
configure_file("${CMAKE_SOURCE_DIR}/src/os/windows/ottdres.rc.in"
"${FIND_VERSION_BINARY_DIR}/ottdres.rc")
endif()
message(STATUS "Generating CPackProperties.cmake")
configure_file("${CMAKE_SOURCE_DIR}/CPackProperties.cmake.in"
"${CPACK_BINARY_DIR}/CPackProperties.cmake" @ONLY)
message(STATUS "Generating Doxyfile")
configure_file("${CMAKE_SOURCE_DIR}/Doxyfile.in"
"${CPACK_BINARY_DIR}/Doxyfile")
message(STATUS "Generating Doxyfile_AI")
configure_file("${CMAKE_SOURCE_DIR}/src/script/api/Doxyfile_AI.in"
"${CPACK_BINARY_DIR}/Doxyfile_AI")
message(STATUS "Generating Doxyfile_GS")
configure_file("${CMAKE_SOURCE_DIR}/src/script/api/Doxyfile_GS.in"
"${CPACK_BINARY_DIR}/Doxyfile_GS")
endif()
|