fix: builds on linux and incorrect map colors

This commit is contained in:
Fireblade
2026-07-14 01:57:47 -04:00
parent f5b395b4f0
commit a44ea00a54
5 changed files with 50 additions and 92 deletions

View File

@@ -1,5 +1,4 @@
cmake_minimum_required(VERSION 3.24)
cmake_policy(SET CMP0057 NEW)
project(LCE-Revelations LANGUAGES C CXX RC ASM_MASM)
set(CMAKE_CXX_STANDARD 17)
@@ -14,11 +13,6 @@ if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
message(FATAL_ERROR "Use a 64-bit generator/toolchain (x64).")
endif()
set(LCE_XWIN_CROSS_DEBUG_COMPAT OFF)
if(CMAKE_CROSSCOMPILING AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(LCE_XWIN_CROSS_DEBUG_COMPAT ON)
endif()
set(CMAKE_CONFIGURATION_TYPES
"Debug"
"Release"
@@ -26,11 +20,7 @@ set(CMAKE_CONFIGURATION_TYPES
)
if(NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
if(CMAKE_CROSSCOMPILING AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded")
else()
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
function(configure_compiler_target target)
@@ -82,9 +72,7 @@ endfunction()
set(MINECRAFT_SHARED_DEFINES
_LARGE_WORLDS
_DEBUG_MENUS_ENABLED
$<$<AND:$<CONFIG:Debug>,$<NOT:$<BOOL:${LCE_XWIN_CROSS_DEBUG_COMPAT}>>>:_DEBUG>
$<$<AND:$<CONFIG:Debug>,$<BOOL:${LCE_XWIN_CROSS_DEBUG_COMPAT}>>:_ITERATOR_DEBUG_LEVEL=0>
$<$<AND:$<CONFIG:Debug>,$<BOOL:${LCE_XWIN_CROSS_DEBUG_COMPAT}>>:_HAS_ITERATOR_DEBUGGING=0>
$<$<CONFIG:Debug>:_DEBUG>
_CRT_NON_CONFORMING_SWPRINTFS
_CRT_SECURE_NO_WARNINGS
_HAS_STD_BYTE=0

View File

@@ -75,46 +75,25 @@ if(PLATFORM_NAME STREQUAL "Windows64")
target_link_options(Minecraft.Client PRIVATE $<$<CONFIG:Release>:/DEBUG /OPT:REF /OPT:ICF>)
endif()
set(MINECRAFT_CLIENT_USE_4J_DEBUG_LIBS TRUE)
if(CMAKE_CROSSCOMPILING AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(MINECRAFT_CLIENT_USE_4J_DEBUG_LIBS FALSE)
endif()
set_target_properties(Minecraft.Client PROPERTIES
OUTPUT_NAME "Minecraft.Client"
VS_DEBUGGER_WORKING_DIRECTORY "$<TARGET_FILE_DIR:Minecraft.Client>"
)
if(MINECRAFT_CLIENT_USE_4J_DEBUG_LIBS)
target_link_libraries(Minecraft.Client PRIVATE
Minecraft.World
d3d11
dxgi
d3dcompiler
XInput9_1_0
wsock32
dbghelp
legacy_stdio_definitions
4JLibs.${PLATFORM_NAME}.Input
4JLibs.${PLATFORM_NAME}.Profile
4JLibs.${PLATFORM_NAME}.Storage
4JLibs.${PLATFORM_NAME}.Render
)
else()
target_link_libraries(Minecraft.Client PRIVATE
Minecraft.World
d3d11
dxgi
d3dcompiler
XInput9_1_0
wsock32
dbghelp
legacy_stdio_definitions
"${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_NAME}/4JLibs/libs/4J_Input.lib"
"${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_NAME}/4JLibs/libs/4J_Storage.lib"
"${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_NAME}/4JLibs/libs/4J_Render_PC.lib"
)
endif()
target_link_libraries(Minecraft.Client PRIVATE
Minecraft.World
d3d11
dxgi
d3dcompiler
XInput9_1_0
wsock32
dbghelp
legacy_stdio_definitions
4JLibs.${PLATFORM_NAME}.Input
4JLibs.${PLATFORM_NAME}.Profile
4JLibs.${PLATFORM_NAME}.Storage
4JLibs.${PLATFORM_NAME}.Render
)
# Iggy libs
foreach(lib IN LISTS IGGY_LIBS)
@@ -172,4 +151,3 @@ add_copyredist_target(Minecraft.Client)
if(PLATFORM_NAME STREQUAL "Windows64")
add_gamehdd_target(Minecraft.Client)
endif()

View File

@@ -309,7 +309,7 @@ if __name__=="__main__": notecolors()
<colour name="End_Fog_Colour" value="a080a0"/>
<colour name="Sign_Text" value="000000"/>
<colour name="Map_Text" value="ff000000"/>
<colour name="Map_Text" value="000000"/>
<colour name="Leash_Light_Colour" value="80664d"/>
<colour name="Leash_Dark_Colour" value="5a4736"/>

View File

@@ -31,14 +31,20 @@ check_deps() {
fetch_winsdk() {
local splat_dir="$XWIN_CACHE/splat"
if [[ -d "$splat_dir" ]]; then
info "Using cached Windows SDK at $splat_dir"
return
if [[ -f "$splat_dir/sdk/lib/ucrt/x86_64/libucrtd.lib" ]]; then
info "Using cached Windows SDK at $splat_dir"
return
else
warn "Cached Windows SDK at $splat_dir is missing debug CRT libs, re-fetching..."
rm -rf "$splat_dir"
fi
fi
info "Downloading Windows SDK and CRT via xwin..."
mkdir -p "$XWIN_CACHE"
xwin --accept-license splat --output "$splat_dir"
xwin --accept-license splat --include-debug-libs --output "$splat_dir"
success "Windows SDK downloaded"
}
@@ -78,7 +84,14 @@ do_cmake_configure() {
local winsdk="$XWIN_CACHE/splat"
local toolchain
toolchain="$(write_toolchain)"
local c_flags="/MT -w -Wno-non-pod-varargs -fms-compatibility -fms-extensions --target=x86_64-pc-windows-msvc \
local crt_flag="/MT"
local msvc_runtime="MultiThreaded"
if [[ "$BUILD_TYPE" == "Debug" ]]; then
crt_flag="/MTd"
msvc_runtime="MultiThreadedDebug"
fi
local c_flags="$crt_flag -Wno-non-pod-varargs -fms-compatibility -fms-extensions --target=x86_64-pc-windows-msvc \
-imsvc $winsdk/crt/include \
-imsvc $winsdk/sdk/include/ucrt \
-imsvc $winsdk/sdk/include/um \
@@ -107,7 +120,7 @@ do_cmake_configure() {
-DPLATFORM_NAME="Windows64" \
-DIGGY_LIBS="iggy_w64.lib;iggyperfmon_w64.lib;iggyexpruntime_w64.lib" \
-DCMAKE_SYSTEM_NAME=Windows \
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded \
-DCMAKE_MSVC_RUNTIME_LIBRARY="$msvc_runtime" \
-DCMAKE_C_FLAGS="$c_flags" \
-DCMAKE_CXX_FLAGS="$c_flags" \
-DCMAKE_ASM_MASM_FLAGS="-m64" \
@@ -264,7 +277,7 @@ LAUNCHER
}
main() {
BUILD_DIR="$SOURCE_DIR/build/windows64-clang"
BUILD_DIR="$SOURCE_DIR/build/windows64-clang-${BUILD_TYPE,,}"
mkdir -p "$BUILD_DIR"
info "LegacyEvolved LCE v$VERSION build script"
info "Source: $SOURCE_DIR | Type: $BUILD_TYPE"

View File

@@ -39,11 +39,6 @@ function(configure_lce_server_target target)
# "${CMAKE_SOURCE_DIR}/Minecraft.Client/Common/Media/MediaWindows64.arc" "Common/Media/"
# )
set(_use_debug_4j_libs TRUE)
if(CMAKE_CROSSCOMPILING AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(_use_debug_4j_libs FALSE)
endif()
target_include_directories(${target} PRIVATE
"${CMAKE_BINARY_DIR}/generated/" # Generated BuildVer.h
"${CMAKE_SOURCE_DIR}/Minecraft.Client/"
@@ -75,36 +70,20 @@ function(configure_lce_server_target target)
VS_DEBUGGER_COMMAND_ARGUMENTS "-port 25565 -bind 0.0.0.0 -name DedicatedServer"
)
if(_use_debug_4j_libs)
target_link_libraries(${target} PRIVATE
Minecraft.World
d3d11
dxgi
d3dcompiler
XInput9_1_0
wsock32
dbghelp
legacy_stdio_definitions
4JLibs.${PLATFORM_NAME}.Input
4JLibs.${PLATFORM_NAME}.Profile
4JLibs.${PLATFORM_NAME}.Storage
4JLibs.${PLATFORM_NAME}.Render
)
else()
target_link_libraries(${target} PRIVATE
Minecraft.World
d3d11
dxgi
d3dcompiler
XInput9_1_0
wsock32
dbghelp
legacy_stdio_definitions
"${CMAKE_SOURCE_DIR}/Minecraft.Client/${PLATFORM_NAME}/4JLibs/libs/4J_Input.lib"
"${CMAKE_SOURCE_DIR}/Minecraft.Client/${PLATFORM_NAME}/4JLibs/libs/4J_Storage.lib"
"${CMAKE_SOURCE_DIR}/Minecraft.Client/${PLATFORM_NAME}/4JLibs/libs/4J_Render_PC.lib"
)
endif()
target_link_libraries(${target} PRIVATE
Minecraft.World
d3d11
dxgi
d3dcompiler
XInput9_1_0
wsock32
dbghelp
legacy_stdio_definitions
4JLibs.${PLATFORM_NAME}.Input
4JLibs.${PLATFORM_NAME}.Profile
4JLibs.${PLATFORM_NAME}.Storage
4JLibs.${PLATFORM_NAME}.Render
)
foreach(lib IN LISTS IGGY_LIBS)
target_link_libraries(${target} PRIVATE "${CMAKE_SOURCE_DIR}/Minecraft.Client/${PLATFORM_NAME}/Iggy/lib/${lib}")