mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-08-20 09:57:09 +00:00
Add BuildVer.h generation
This commit is contained in:
parent
01f87d7553
commit
a0c4e2783a
|
|
@ -111,6 +111,28 @@ target_link_libraries(MinecraftClient PRIVATE
|
|||
>
|
||||
)
|
||||
|
||||
# ---
|
||||
# Build versioning
|
||||
# ---
|
||||
set(BUILDVER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GenerateBuildVer.cmake")
|
||||
|
||||
add_custom_target(GenerateBuildVer
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
"-DOUTPUT_FILE=${CLIENT_DIR}/Common/BuildVer.h"
|
||||
-P "${BUILDVER_SCRIPT}"
|
||||
COMMENT "Generating BuildVer.h..."
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_dependencies(MinecraftClient GenerateBuildVer)
|
||||
|
||||
add_custom_command(TARGET MinecraftClient POST_BUILD
|
||||
COMMAND git restore "**/BuildVer.h"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
COMMENT "Restoring BuildVer.h..."
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
# ---
|
||||
# Asset / redist copy
|
||||
# ---
|
||||
|
|
@ -137,4 +159,4 @@ set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT MinecraftClient)
|
|||
|
||||
# Setup folders for Visual Studio, just hides the build targets under a sub folder
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
set_property(TARGET CopyRedist PROPERTY FOLDER "Build")
|
||||
set_property(TARGET CopyRedist GenerateBuildVer PROPERTY FOLDER "Build")
|
||||
52
cmake/GenerateBuildVer.cmake
Normal file
52
cmake/GenerateBuildVer.cmake
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
# Generates BuildVer.h with git version info.
|
||||
#
|
||||
# Required:
|
||||
# OUTPUT_FILE - path to write BuildVer.h
|
||||
|
||||
if(NOT OUTPUT_FILE)
|
||||
message(FATAL_ERROR "OUTPUT_FILE must be set.")
|
||||
endif()
|
||||
|
||||
set(BUILD_NUMBER 560) # Note: Build/network has to stay static for now, as without it builds wont be able to play together. We can change it later when we have a better versioning scheme in place.
|
||||
set(SUFFIX "")
|
||||
|
||||
# Get short SHA
|
||||
execute_process(
|
||||
COMMAND git rev-parse --short HEAD
|
||||
OUTPUT_VARIABLE GIT_SHA
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
RESULT_VARIABLE rc
|
||||
)
|
||||
if(NOT rc EQUAL 0)
|
||||
set(GIT_SHA "unknown")
|
||||
endif()
|
||||
|
||||
# Get branch name
|
||||
execute_process(
|
||||
COMMAND git symbolic-ref --short HEAD
|
||||
OUTPUT_VARIABLE GIT_REF
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
RESULT_VARIABLE rc
|
||||
)
|
||||
if(NOT rc EQUAL 0)
|
||||
set(GIT_REF "unknown")
|
||||
endif()
|
||||
|
||||
# If we have uncommitted changes, add a suffix to the version string
|
||||
execute_process(
|
||||
COMMAND git status --porcelain
|
||||
OUTPUT_VARIABLE GIT_STATUS
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
if(GIT_STATUS)
|
||||
set(SUFFIX "-dev")
|
||||
endif()
|
||||
|
||||
file(WRITE "${OUTPUT_FILE}"
|
||||
"#pragma once\n"
|
||||
"\n"
|
||||
"#define VER_PRODUCTBUILD ${BUILD_NUMBER}\n"
|
||||
"#define VER_PRODUCTVERSION_STR_W L\"${GIT_SHA}${SUFFIX} (${GIT_REF})\"\n"
|
||||
"#define VER_FILEVERSION_STR_W VER_PRODUCTVERSION_STR_W\n"
|
||||
"#define VER_NETWORK VER_PRODUCTBUILD\n"
|
||||
)
|
||||
Loading…
Reference in a new issue