From e29b7b630e6332c75e22e6875f80a03829724843 Mon Sep 17 00:00:00 2001 From: rtm516 Date: Thu, 12 Mar 2026 14:37:36 +0000 Subject: [PATCH] Copy only current platform media --- CMakePresets.json | 12 +++---- Minecraft.Client/CMakeLists.txt | 32 +++++++++---------- Minecraft.Client/cmake/AssetCopyTargets.cmake | 22 +++++++++++-- Minecraft.World/CMakeLists.txt | 2 +- 4 files changed, 43 insertions(+), 25 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index 75ba6b4f5..1674a67dd 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -13,7 +13,7 @@ "inherits": "base", "cacheVariables": { "PLATFORM_DEFINES": "_WINDOWS64", - "PLATFORM_FOLDER": "Windows64" + "PLATFORM_NAME": "Windows64" } }, { @@ -23,7 +23,7 @@ "toolchainFile": "${sourceDir}/cmake/toolchains/durango.cmake", "cacheVariables": { "PLATFORM_DEFINES": "_DURANGO;_XBOX_ONE", - "PLATFORM_FOLDER": "Durango" + "PLATFORM_NAME": "Durango" } }, { @@ -33,7 +33,7 @@ "toolchainFile": "${sourceDir}/cmake/toolchains/orbis.cmake", "cacheVariables": { "PLATFORM_DEFINES": "__ORBIS__", - "PLATFORM_FOLDER": "Orbis" + "PLATFORM_NAME": "Orbis" } }, { @@ -43,7 +43,7 @@ "toolchainFile": "${sourceDir}/cmake/toolchains/ps3.cmake", "cacheVariables": { "PLATFORM_DEFINES": "__PS3__", - "PLATFORM_FOLDER": "PS3" + "PLATFORM_NAME": "PS3" } }, { @@ -53,7 +53,7 @@ "toolchainFile": "${sourceDir}/cmake/toolchains/psvita.cmake", "cacheVariables": { "PLATFORM_DEFINES": "__PSVITA__", - "PLATFORM_FOLDER": "PSVita" + "PLATFORM_NAME": "PSVita" } }, { @@ -63,7 +63,7 @@ "toolchainFile": "${sourceDir}/cmake/toolchains/xbox360.cmake", "cacheVariables": { "PLATFORM_DEFINES": "_XBOX", - "PLATFORM_FOLDER": "Xbox" + "PLATFORM_NAME": "Xbox" } } ], diff --git a/Minecraft.Client/CMakeLists.txt b/Minecraft.Client/CMakeLists.txt index b21538da3..d98389c28 100644 --- a/Minecraft.Client/CMakeLists.txt +++ b/Minecraft.Client/CMakeLists.txt @@ -12,12 +12,12 @@ include("${CMAKE_SOURCE_DIR}/cmake/CommonSources.cmake") # We cant use CMAKE_CONFIGURE_PRESET here as VS doesn't set it, so just rely on the folder set(MINECRAFT_CLIENT_SOURCES ${MINECRAFT_CLIENT_COMMON} - $<$:${MINECRAFT_CLIENT_DURANGO}> - $<$:${MINECRAFT_CLIENT_ORBIS}> - $<$:${MINECRAFT_CLIENT_PS3}> - $<$:${MINECRAFT_CLIENT_PSVITA}> - $<$:${MINECRAFT_CLIENT_WINDOWS}> - $<$:${MINECRAFT_CLIENT_XBOX360}> + $<$:${MINECRAFT_CLIENT_DURANGO}> + $<$:${MINECRAFT_CLIENT_ORBIS}> + $<$:${MINECRAFT_CLIENT_PS3}> + $<$:${MINECRAFT_CLIENT_PSVITA}> + $<$:${MINECRAFT_CLIENT_WINDOWS}> + $<$:${MINECRAFT_CLIENT_XBOX360}> ${SOURCES_COMMON} ) @@ -26,7 +26,7 @@ add_executable(Minecraft.Client WIN32 ${MINECRAFT_CLIENT_SOURCES}) target_include_directories(Minecraft.Client PRIVATE "${CMAKE_BINARY_DIR}/generated/" # This is for the generated BuildVer.h "${CMAKE_CURRENT_SOURCE_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_FOLDER}/Iggy/include" + "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_NAME}/Iggy/include" "${CMAKE_SOURCE_DIR}/include/" ) target_compile_definitions(Minecraft.Client PRIVATE @@ -52,18 +52,18 @@ target_link_libraries(Minecraft.Client PRIVATE XInput9_1_0 wsock32 legacy_stdio_definitions - "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_FOLDER}/Iggy/lib/iggy_w64.lib" - "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_FOLDER}/Iggy/lib/iggyperfmon_w64.lib" - "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_FOLDER}/Iggy/lib/iggyexpruntime_w64.lib" + "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_NAME}/Iggy/lib/iggy_w64.lib" + "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_NAME}/Iggy/lib/iggyperfmon_w64.lib" + "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_NAME}/Iggy/lib/iggyexpruntime_w64.lib" $<$: # Debug 4J libraries - "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_FOLDER}/4JLibs/libs/4J_Input_d.lib" - "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_FOLDER}/4JLibs/libs/4J_Storage_d.lib" - "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_FOLDER}/4JLibs/libs/4J_Render_PC_d.lib" + "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_NAME}/4JLibs/libs/4J_Input_d.lib" + "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_NAME}/4JLibs/libs/4J_Storage_d.lib" + "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_NAME}/4JLibs/libs/4J_Render_PC_d.lib" > $<$>: # Release 4J libraries - "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_FOLDER}/4JLibs/libs/4J_Input.lib" - "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_FOLDER}/4JLibs/libs/4J_Storage.lib" - "${CMAKE_CURRENT_SOURCE_DIR}/${PLATFORM_FOLDER}/4JLibs/libs/4J_Render_PC.lib" + "${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" > ) diff --git a/Minecraft.Client/cmake/AssetCopyTargets.cmake b/Minecraft.Client/cmake/AssetCopyTargets.cmake index b47c264dd..261f9fd00 100644 --- a/Minecraft.Client/cmake/AssetCopyTargets.cmake +++ b/Minecraft.Client/cmake/AssetCopyTargets.cmake @@ -10,7 +10,7 @@ set(ASSET_FOLDER_PAIRS "Common/res" "Common/res" "Common/Trial" "Common/Trial" "Common/Tutorial" "Common/Tutorial" - "Windows64Media" "Windows64Media" + "${PLATFORM_NAME}Media" "${PLATFORM_NAME}Media" ) # Global exclusions applied to every folder copy @@ -23,7 +23,6 @@ set(ASSET_EXCLUDE_FILES "*.resx" "*.loc" "*.wav" # Unsupported audio format "*.xui" - "MediaPS*.arc" "MediaOrbis.arc" "MediaDurango.arc" # Console media ) # Global folder exclusions applied to every folder copy @@ -31,6 +30,25 @@ set(ASSET_EXCLUDE_FOLDERS "Graphics" ) + +# Exclude platform-specific arc media files +set(PLATFORM_MEDIA_FILES + "MediaWindows64.arc" + "MediaDurango.arc" + "MediaOrbis.arc" + "MediaPS3.arc" + "MediaPSVita.arc" + "MediaXbox.arc" # Seems to be missing? +) + +# Exclude all platform media files except the one for the current platform +foreach(media_file IN LISTS PLATFORM_MEDIA_FILES) + if(NOT media_file MATCHES "Media${PLATFORM_NAME}\\.arc") + list(APPEND ASSET_EXCLUDE_FILES "${media_file}") + endif() +endforeach() + + # Join the exclusion patterns into a single string for passing to the copy script list(JOIN ASSET_EXCLUDE_FILES "|" ASSET_EXCLUDE_FILES_STR) list(JOIN ASSET_EXCLUDE_FOLDERS "|" ASSET_EXCLUDE_FOLDERS_STR) diff --git a/Minecraft.World/CMakeLists.txt b/Minecraft.World/CMakeLists.txt index 0686f2fc8..caf6d0bf2 100644 --- a/Minecraft.World/CMakeLists.txt +++ b/Minecraft.World/CMakeLists.txt @@ -7,7 +7,7 @@ include("${CMAKE_SOURCE_DIR}/cmake/CommonSources.cmake") # We cant use CMAKE_CONFIGURE_PRESET here as VS doesn't set it, so just rely on the folder set(MINECRAFT_WORLD_SOURCES ${MINECRAFT_WORLD_COMMON} - $<$:${MINECRAFT_WORLD_DURANGO}> + $<$:${MINECRAFT_WORLD_DURANGO}> ${SOURCES_COMMON} )