mirror of
https://git.neolegacy.dev/neoStudiosLCE/neoLegacy.git
synced 2026-07-15 18:42:34 +00:00
fix: builds on linux and incorrect map colors (#50)
Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/50
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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}")
|
||||
|
||||
Reference in New Issue
Block a user