Move BuildVer.h to common include and fix rebuild issue

This commit is contained in:
rtm516 2026-03-11 02:08:46 +00:00
parent b286f33251
commit 76bd513e84
No known key found for this signature in database
GPG key ID: 331715B8B007C67A
6 changed files with 37 additions and 20 deletions

View file

@ -62,8 +62,12 @@ add_subdirectory(Minecraft.Client)
# ---
add_library(MinecraftWorld STATIC ${MINECRAFT_WORLD_SOURCES})
target_include_directories(MinecraftWorld
PRIVATE "${WORLD_DIR}"
PUBLIC "${WORLD_DIR}/x64headers"
PRIVATE
"${CMAKE_CURRENT_BINARY_DIR}/generated/"
"${WORLD_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/include/"
PUBLIC
"${WORLD_DIR}/x64headers"
)
target_compile_definitions(MinecraftWorld PRIVATE
${MINECRAFT_SHARED_DEFINES}
@ -122,10 +126,11 @@ target_link_libraries(MinecraftClient PRIVATE
# Build versioning
# ---
set(BUILDVER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GenerateBuildVer.cmake")
set(BUILDVER_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/generated/Common/BuildVer.h")
add_custom_target(GenerateBuildVer
COMMAND ${CMAKE_COMMAND}
"-DOUTPUT_FILE=${CLIENT_DIR}/Common/BuildVer.h"
"-DOUTPUT_FILE=${BUILDVER_OUTPUT}"
-P "${BUILDVER_SCRIPT}"
COMMENT "Generating BuildVer.h..."
VERBATIM
@ -133,13 +138,6 @@ add_custom_target(GenerateBuildVer
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
# ---

View file

@ -36,11 +36,6 @@ set(_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_AUDIO
)
source_group("Common/Source Files/Audio" FILES ${_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_AUDIO})
set(_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_BUILDVER
"${BASE_DIR}/BuildVer.h"
)
source_group("Common/Source Files/BuildVer" FILES ${_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_BUILDVER})
set(_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_COLOURS
"${BASE_DIR}/Colours/ColourTable.cpp"
"${BASE_DIR}/Colours/ColourTable.h"
@ -1053,10 +1048,8 @@ set(MINECRAFT_CLIENT_COMMON
${_MINECRAFT_CLIENT_COMMON_COMMON}
${_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES}
${_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_AUDIO}
${_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_BUILDVER}
${_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_COLOURS}
${_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_DLC}
${_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_FILESYSTEM}
${_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_GAMERULES}
${_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_GAMERULES_LEVELGENERATION}
${_MINECRAFT_CLIENT_COMMON_COMMON_SOURCE_FILES_GAMERULES_LEVELGENERATION_STRUCTUREACTIONS}

View file

@ -192,7 +192,7 @@ void MemSect(int sect);
#include "..\Minecraft.Client\Common\Minecraft_Macros.h"
#include "..\Minecraft.Client\Common\Colours\ColourTable.h"
#include "..\Minecraft.Client\Common\BuildVer.h"
#include "Common\BuildVer.h"
#ifdef _XBOX
#include "..\Minecraft.Client\Xbox\Xbox_App.h"

View file

@ -4,6 +4,12 @@ set(_INCLUDE_LCE_FILESYSTEM
)
source_group("include/lce_filesystem" FILES ${_INCLUDE_LCE_FILESYSTEM})
set(_INCLUDE_BUILDVER
"${CMAKE_SOURCE_DIR}/include/Common/BuildVer.h"
)
source_group("Common" FILES ${_INCLUDE_BUILDVER})
set(SOURCES_COMMON
${_INCLUDE_LCE_FILESYSTEM}
${_INCLUDE_BUILDVER}
)

View file

@ -60,7 +60,9 @@ if(GIT_STATUS)
set(SUFFIX "-dev")
endif()
file(WRITE "${OUTPUT_FILE}"
# Write to a temp file first, only overwrite if content changed.
# This prevents unnecessary rebuilds when the version info hasn't changed.
set(_content
"#pragma once\n"
"\n"
"#define VER_PRODUCTBUILD ${BUILD_NUMBER}\n"
@ -68,4 +70,22 @@ file(WRITE "${OUTPUT_FILE}"
"#define VER_FILEVERSION_STR_W VER_PRODUCTVERSION_STR_W\n"
"#define VER_BRANCHVERSION_STR_W L\"${GIT_REF}\"\n"
"#define VER_NETWORK VER_PRODUCTBUILD\n"
)
)
set(_tmp "${OUTPUT_FILE}.tmp")
file(WRITE "${_tmp}" ${_content})
if(EXISTS "${OUTPUT_FILE}")
execute_process(
COMMAND ${CMAKE_COMMAND} -E compare_files "${OUTPUT_FILE}" "${_tmp}"
RESULT_VARIABLE _changed
)
else()
set(_changed 1)
endif()
if(_changed)
file(RENAME "${_tmp}" "${OUTPUT_FILE}")
else()
file(REMOVE "${_tmp}")
endif()