From b3feddfef372618c8a9d7a0abcaf18cfad866c18 Mon Sep 17 00:00:00 2001 From: daoge <3523206925@qq.com> Date: Tue, 3 Mar 2026 03:04:10 +0800 Subject: feat: TU19 (Dec 2014) Features & Content (#155) * try to resolve merge conflict * feat: TU19 (Dec 2014) Features & Content (#32) * December 2014 files * Working release build * Fix compilation issues * Add sound to Windows64Media * Add DLC content and force Tutorial DLC * Revert "Add DLC content and force Tutorial DLC" This reverts commit 97a43994725008e35fceb984d5549df9c8cea470. * Disable broken light packing * Disable breakpoint during DLC texture map load Allows DLC loading but the DLC textures are still broken * Fix post build not working * ... * fix vs2022 build * fix cmake build --------- Co-authored-by: Loki --- cmake/ClientSources.cmake | 161 +++++++++++++++++++++++++++++----------------- 1 file changed, 101 insertions(+), 60 deletions(-) (limited to 'cmake/ClientSources.cmake') diff --git a/cmake/ClientSources.cmake b/cmake/ClientSources.cmake index dae96fd4..f56b7ef0 100644 --- a/cmake/ClientSources.cmake +++ b/cmake/ClientSources.cmake @@ -1,21 +1,25 @@ set(MINECRAFT_CLIENT_SOURCES "AbstractTexturePack.cpp" - "crt_compat.cpp" "AchievementPopup.cpp" "AchievementScreen.cpp" "AllowAllCuller.cpp" "ArchiveFile.cpp" "ArrowRenderer.cpp" + "BatModel.cpp" + "BatRenderer.cpp" + "BeaconRenderer.cpp" "BlazeModel.cpp" "BlazeRenderer.cpp" "BoatModel.cpp" "BoatRenderer.cpp" "BookModel.cpp" + "BossMobGuiInfo.cpp" "BreakingItemParticle.cpp" "BubbleParticle.cpp" "BufferedImage.cpp" "Button.cpp" "Camera.cpp" + "CaveSpiderRenderer.cpp" "ChatScreen.cpp" "ChestModel.cpp" "ChestRenderer.cpp" @@ -29,6 +33,8 @@ set(MINECRAFT_CLIENT_SOURCES "Common/Audio/SoundEngine.cpp" "Common/Audio/SoundNames.cpp" "Common/Colours/ColourTable.cpp" + "Common/ConsoleGameMode.cpp" + "Common/Console_Utils.cpp" "Common/Consoles_App.cpp" "Common/DLC/DLCAudioFile.cpp" "Common/DLC/DLCCapeFile.cpp" @@ -49,6 +55,8 @@ set(MINECRAFT_CLIENT_SOURCES "Common/GameRules/CollectItemRuleDefinition.cpp" "Common/GameRules/CompleteAllRuleDefinition.cpp" "Common/GameRules/CompoundGameRuleDefinition.cpp" + "Common/GameRules/ConsoleGenerateStructure.cpp" + "Common/GameRules/ConsoleSchematicFile.cpp" "Common/GameRules/GameRule.cpp" "Common/GameRules/GameRuleDefinition.cpp" "Common/GameRules/GameRuleManager.cpp" @@ -60,12 +68,11 @@ set(MINECRAFT_CLIENT_SOURCES "Common/GameRules/StartFeature.cpp" "Common/GameRules/UpdatePlayerRuleDefinition.cpp" "Common/GameRules/UseTileRuleDefinition.cpp" - "Common/GameRules/ConsoleGenerateStructure.cpp" - "Common/GameRules/ConsoleSchematicFile.cpp" "Common/GameRules/XboxStructureActionGenerateBox.cpp" "Common/GameRules/XboxStructureActionPlaceBlock.cpp" "Common/GameRules/XboxStructureActionPlaceContainer.cpp" "Common/GameRules/XboxStructureActionPlaceSpawner.cpp" + "Common/Leaderboards/LeaderboardInterface.cpp" "Common/Leaderboards/LeaderboardManager.cpp" "Common/Network/GameNetworkManager.cpp" "Common/Network/PlatformNetworkManagerStub.cpp" @@ -84,6 +91,7 @@ set(MINECRAFT_CLIENT_SOURCES "Common/Tutorial/FullTutorial.cpp" "Common/Tutorial/FullTutorialActiveTask.cpp" "Common/Tutorial/FullTutorialMode.cpp" + "Common/Tutorial/HorseChoiceTask.cpp" "Common/Tutorial/InfoTask.cpp" "Common/Tutorial/InputConstraint.cpp" "Common/Tutorial/LookAtEntityHint.cpp" @@ -91,6 +99,7 @@ set(MINECRAFT_CLIENT_SOURCES "Common/Tutorial/PickupTask.cpp" "Common/Tutorial/ProcedureCompoundTask.cpp" "Common/Tutorial/ProgressFlagTask.cpp" + "Common/Tutorial/RideEntityTask.cpp" "Common/Tutorial/StatTask.cpp" "Common/Tutorial/TakeItemHint.cpp" "Common/Tutorial/Tutorial.cpp" @@ -101,100 +110,112 @@ set(MINECRAFT_CLIENT_SOURCES "Common/Tutorial/UseItemTask.cpp" "Common/Tutorial/UseTileTask.cpp" "Common/Tutorial/XuiCraftingTask.cpp" - "Common/ConsoleGameMode.cpp" - "Common/Console_Utils.cpp" "Common/UI/IUIScene_AbstractContainerMenu.cpp" "Common/UI/IUIScene_AnvilMenu.cpp" + "Common/UI/IUIScene_BeaconMenu.cpp" "Common/UI/IUIScene_BrewingMenu.cpp" + "Common/UI/IUIScene_CommandBlockMenu.cpp" "Common/UI/IUIScene_ContainerMenu.cpp" "Common/UI/IUIScene_CraftingMenu.cpp" "Common/UI/IUIScene_CreativeMenu.cpp" "Common/UI/IUIScene_DispenserMenu.cpp" "Common/UI/IUIScene_EnchantingMenu.cpp" + "Common/UI/IUIScene_FireworksMenu.cpp" "Common/UI/IUIScene_FurnaceMenu.cpp" + "Common/UI/IUIScene_HUD.cpp" + "Common/UI/IUIScene_HopperMenu.cpp" + "Common/UI/IUIScene_HorseInventoryMenu.cpp" "Common/UI/IUIScene_InventoryMenu.cpp" "Common/UI/IUIScene_PauseMenu.cpp" "Common/UI/IUIScene_StartGame.cpp" "Common/UI/IUIScene_TradingMenu.cpp" + "Common/UI/UIBitmapFont.cpp" + "Common/UI/UIComponent_Chat.cpp" + "Common/UI/UIComponent_DebugUIConsole.cpp" "Common/UI/UIComponent_DebugUIMarketingGuide.cpp" - "Common/UI/UIScene_Keyboard.cpp" + "Common/UI/UIComponent_Logo.cpp" "Common/UI/UIComponent_MenuBackground.cpp" + "Common/UI/UIComponent_Panorama.cpp" "Common/UI/UIComponent_PressStartToPlay.cpp" + "Common/UI/UIComponent_Tooltips.cpp" + "Common/UI/UIComponent_TutorialPopup.cpp" + "Common/UI/UIControl.cpp" "Common/UI/UIControl_Base.cpp" + "Common/UI/UIControl_BeaconEffectButton.cpp" "Common/UI/UIControl_BitmapIcon.cpp" + "Common/UI/UIControl_Button.cpp" + "Common/UI/UIControl_ButtonList.cpp" + "Common/UI/UIControl_CheckBox.cpp" + "Common/UI/UIControl_Cursor.cpp" "Common/UI/UIControl_DLCList.cpp" "Common/UI/UIControl_DynamicLabel.cpp" "Common/UI/UIControl_EnchantmentBook.cpp" "Common/UI/UIControl_EnchantmentButton.cpp" "Common/UI/UIControl_HTMLLabel.cpp" + "Common/UI/UIControl_Label.cpp" "Common/UI/UIControl_LeaderboardList.cpp" + "Common/UI/UIControl_MinecraftHorse.cpp" "Common/UI/UIControl_MinecraftPlayer.cpp" "Common/UI/UIControl_PlayerList.cpp" - "Common/UI/UIControl_SaveList.cpp" - "Common/UI/UIControl_SpaceIndicatorBar.cpp" - "Common/UI/UIControl_TexturePackList.cpp" - "Common/UI/UIFontData.cpp" - "Common/UI/UIScene_AnvilMenu.cpp" - "Common/UI/UIScene_ControlsMenu.cpp" - "Common/UI/UIScene_Credits.cpp" - "Common/UI/UIScene_DebugCreateSchematic.cpp" - "Common/UI/UIScene_DebugSetCamera.cpp" - "Common/UI/UIScene_DLCMainMenu.cpp" - "Common/UI/UIScene_DLCOffersMenu.cpp" - "Common/UI/UIScene_EndPoem.cpp" - "Common/UI/UIScene_EULA.cpp" - "Common/UI/UIScene_HowToPlay.cpp" - "Common/UI/UIScene_InGameHostOptionsMenu.cpp" - "Common/UI/UIScene_InGameInfoMenu.cpp" - "Common/UI/UIScene_InGamePlayerOptionsMenu.cpp" - "Common/UI/UIScene_LeaderboardsMenu.cpp" - "Common/UI/UIScene_MessageBox.cpp" - "Common/UI/UIBitmapFont.cpp" - "Common/UI/UIComponent_Chat.cpp" - "Common/UI/UIComponent_DebugUIConsole.cpp" - "Common/UI/UIComponent_Logo.cpp" - "Common/UI/UIComponent_Panorama.cpp" - "Common/UI/UIComponent_Tooltips.cpp" - "Common/UI/UIComponent_TutorialPopup.cpp" - "Common/UI/UIControl.cpp" - "Common/UI/UIController.cpp" - "Common/UI/UIControl_Button.cpp" - "Common/UI/UIControl_CheckBox.cpp" - "Common/UI/UIControl_Cursor.cpp" - "Common/UI/UIControl_Label.cpp" "Common/UI/UIControl_PlayerSkinPreview.cpp" "Common/UI/UIControl_Progress.cpp" - "Common/UI/UIControl_ButtonList.cpp" + "Common/UI/UIControl_SaveList.cpp" "Common/UI/UIControl_Slider.cpp" "Common/UI/UIControl_SlotList.cpp" + "Common/UI/UIControl_SpaceIndicatorBar.cpp" "Common/UI/UIControl_TextInput.cpp" + "Common/UI/UIControl_TexturePackList.cpp" + "Common/UI/UIController.cpp" + "Common/UI/UIFontData.cpp" "Common/UI/UIGroup.cpp" "Common/UI/UILayer.cpp" "Common/UI/UIScene.cpp" "Common/UI/UIScene_AbstractContainerMenu.cpp" + "Common/UI/UIScene_AnvilMenu.cpp" + "Common/UI/UIScene_BeaconMenu.cpp" "Common/UI/UIScene_BrewingStandMenu.cpp" "Common/UI/UIScene_ConnectingProgress.cpp" "Common/UI/UIScene_ContainerMenu.cpp" + "Common/UI/UIScene_ControlsMenu.cpp" "Common/UI/UIScene_CraftingMenu.cpp" "Common/UI/UIScene_CreateWorldMenu.cpp" "Common/UI/UIScene_CreativeMenu.cpp" + "Common/UI/UIScene_Credits.cpp" + "Common/UI/UIScene_DLCMainMenu.cpp" + "Common/UI/UIScene_DLCOffersMenu.cpp" "Common/UI/UIScene_DeathMenu.cpp" + "Common/UI/UIScene_DebugCreateSchematic.cpp" "Common/UI/UIScene_DebugOptions.cpp" "Common/UI/UIScene_DebugOverlay.cpp" + "Common/UI/UIScene_DebugSetCamera.cpp" "Common/UI/UIScene_DispenserMenu.cpp" + "Common/UI/UIScene_EULA.cpp" "Common/UI/UIScene_EnchantingMenu.cpp" + "Common/UI/UIScene_EndPoem.cpp" + "Common/UI/UIScene_FireworksMenu.cpp" "Common/UI/UIScene_FullscreenProgress.cpp" "Common/UI/UIScene_FurnaceMenu.cpp" + "Common/UI/UIScene_HUD.cpp" "Common/UI/UIScene_HelpAndOptionsMenu.cpp" + "Common/UI/UIScene_HopperMenu.cpp" + "Common/UI/UIScene_HorseInventoryMenu.cpp" + "Common/UI/UIScene_HowToPlay.cpp" "Common/UI/UIScene_HowToPlayMenu.cpp" - "Common/UI/UIScene_HUD.cpp" + "Common/UI/UIScene_InGameHostOptionsMenu.cpp" + "Common/UI/UIScene_InGameInfoMenu.cpp" + "Common/UI/UIScene_InGamePlayerOptionsMenu.cpp" "Common/UI/UIScene_Intro.cpp" + "Common/UI/UIScene_InventoryMenu.cpp" "Common/UI/UIScene_JoinMenu.cpp" + "Common/UI/UIScene_Keyboard.cpp" + "Common/UI/UIScene_LanguageSelector.cpp" "Common/UI/UIScene_LaunchMoreOptionsMenu.cpp" + "Common/UI/UIScene_LeaderboardsMenu.cpp" "Common/UI/UIScene_LoadMenu.cpp" "Common/UI/UIScene_LoadOrJoinMenu.cpp" "Common/UI/UIScene_MainMenu.cpp" - "Common/UI/UIScene_InventoryMenu.cpp" + "Common/UI/UIScene_MessageBox.cpp" + "Common/UI/UIScene_NewUpdateMessage.cpp" "Common/UI/UIScene_PauseMenu.cpp" "Common/UI/UIScene_QuadrantSignin.cpp" "Common/UI/UIScene_ReinstallMenu.cpp" @@ -211,6 +232,7 @@ set(MINECRAFT_CLIENT_SOURCES "Common/UI/UIScene_Timer.cpp" "Common/UI/UIScene_TradingMenu.cpp" "Common/UI/UIScene_TrialExitUpsell.cpp" + "Common/UI/UIString.cpp" "Common/UI/UITTFFont.cpp" "Common/zlib/adler32.c" "Common/zlib/compress.c" @@ -239,15 +261,15 @@ set(MINECRAFT_CLIENT_SOURCES "CritParticle.cpp" "CritParticle2.cpp" "Cube.cpp" + "DLCTexturePack.cpp" "DeathScreen.cpp" "DefaultRenderer.cpp" "DefaultTexturePack.cpp" - "DemoLevel.cpp" "DemoUser.cpp" "DerivedServerLevel.cpp" "DirtyChunkSorter.cpp" + "DispenserBootstrap.cpp" "DistanceChunkSorter.cpp" - "DLCTexturePack.cpp" "DragonBreathParticle.cpp" "DragonModel.cpp" "DripParticle.cpp" @@ -258,9 +280,9 @@ set(MINECRAFT_CLIENT_SOURCES "EnderCrystalModel.cpp" "EnderCrystalRenderer.cpp" "EnderDragonRenderer.cpp" + "EnderParticle.cpp" "EndermanModel.cpp" "EndermanRenderer.cpp" - "EnderParticle.cpp" "EntityRenderDispatcher.cpp" "EntityRenderer.cpp" "EntityTileRenderer.cpp" @@ -272,6 +294,7 @@ set(MINECRAFT_CLIENT_SOURCES "FallingTileRenderer.cpp" "FileTexturePack.cpp" "FireballRenderer.cpp" + "FireworksParticles.cpp" "FishingHookRenderer.cpp" "FlameParticle.cpp" "FolderTexturePack.cpp" @@ -284,13 +307,13 @@ set(MINECRAFT_CLIENT_SOURCES "GhastModel.cpp" "GhastRenderer.cpp" "GiantMobRenderer.cpp" - "glWrapper.cpp" "Gui.cpp" "GuiComponent.cpp" "GuiMessage.cpp" "GuiParticle.cpp" "GuiParticles.cpp" "HeartParticle.cpp" + "HorseRenderer.cpp" "HttpTexture.cpp" "HugeExplosionParticle.cpp" "HugeExplosionSeedParticle.cpp" @@ -298,6 +321,7 @@ set(MINECRAFT_CLIENT_SOURCES "HumanoidModel.cpp" "InBedChatScreen.cpp" "Input.cpp" + "iob_shim.asm" "ItemFrameRenderer.cpp" "ItemInHandRenderer.cpp" "ItemRenderer.cpp" @@ -308,13 +332,18 @@ set(MINECRAFT_CLIENT_SOURCES "LavaParticle.cpp" "LavaSlimeModel.cpp" "LavaSlimeRenderer.cpp" + "LeashKnotModel.cpp" + "LeashKnotRenderer.cpp" "LevelRenderer.cpp" "Lighting.cpp" "LightningBoltRenderer.cpp" - "MemoryTracker.cpp" + "LivingEntityRenderer.cpp" + "LocalPlayer.cpp" "MemTexture.cpp" + "MemoryTracker.cpp" "MinecartModel.cpp" "MinecartRenderer.cpp" + "MinecartSpawnerRenderer.cpp" "Minecraft.cpp" "MinecraftServer.cpp" "Minimap.cpp" @@ -323,6 +352,7 @@ set(MINECRAFT_CLIENT_SOURCES "MobSkinTextureProcessor.cpp" "MobSpawnerRenderer.cpp" "Model.cpp" + "ModelHorse.cpp" "ModelPart.cpp" "MultiPlayerChunkCache.cpp" "MultiPlayerGameMode.cpp" @@ -330,12 +360,14 @@ set(MINECRAFT_CLIENT_SOURCES "MultiPlayerLocalPlayer.cpp" "MushroomCowRenderer.cpp" "NameEntryScreen.cpp" + "NetherPortalParticle.cpp" "NoteParticle.cpp" + "OcelotModel.cpp" + "OcelotRenderer.cpp" "OffsettedRenderList.cpp" "Options.cpp" "OptionsScreen.cpp" - "OzelotModel.cpp" - "OzelotRenderer.cpp" + "PS3/PS3Extras/ShutdownManager.cpp" "PaintingRenderer.cpp" "Particle.cpp" "ParticleEngine.cpp" @@ -343,22 +375,19 @@ set(MINECRAFT_CLIENT_SOURCES "PendingConnection.cpp" "PigModel.cpp" "PigRenderer.cpp" - "LocalPlayer.cpp" "PistonPieceRenderer.cpp" "PlayerChunkMap.cpp" "PlayerCloudParticle.cpp" "PlayerConnection.cpp" "PlayerList.cpp" - "PreStitchedTextureMap.cpp" - "ProgressRenderer.cpp" - "PS3/PS3Extras/ShutdownManager.cpp" - "Rect2i.cpp" - "RemotePlayer.cpp" "PlayerRenderer.cpp" "Polygon.cpp" - "NetherPortalParticle.cpp" + "PreStitchedTextureMap.cpp" + "ProgressRenderer.cpp" "QuadrupedModel.cpp" + "Rect2i.cpp" "RedDustParticle.cpp" + "RemotePlayer.cpp" "RenameWorldScreen.cpp" "Screen.cpp" "ScreenSizeCalculator.cpp" @@ -367,10 +396,11 @@ set(MINECRAFT_CLIENT_SOURCES "ServerChunkCache.cpp" "ServerCommandDispatcher.cpp" "ServerConnection.cpp" - "ServerPlayerGameMode.cpp" "ServerLevel.cpp" "ServerLevelListener.cpp" "ServerPlayer.cpp" + "ServerPlayerGameMode.cpp" + "ServerScoreboard.cpp" "Settings.cpp" "SheepFurModel.cpp" "SheepModel.cpp" @@ -382,6 +412,8 @@ set(MINECRAFT_CLIENT_SOURCES "SimpleIcon.cpp" "SkeletonHeadModel.cpp" "SkeletonModel.cpp" + "SkeletonRenderer.cpp" + "SkiModel.cpp" "SkullTileRenderer.cpp" "SlideButton.cpp" "SlimeModel.cpp" @@ -400,12 +432,10 @@ set(MINECRAFT_CLIENT_SOURCES "StatsCounter.cpp" "StatsScreen.cpp" "StatsSyncher.cpp" - "stdafx.cpp" + "StitchSlot.cpp" "StitchedTexture.cpp" "Stitcher.cpp" - "StitchSlot.cpp" "StringTable.cpp" - "stubs.cpp" "SuspendedParticle.cpp" "SuspendedTownParticle.cpp" "TakeAnimationParticle.cpp" @@ -414,6 +444,7 @@ set(MINECRAFT_CLIENT_SOURCES "Tesselator.cpp" "TexOffs.cpp" "Texture.cpp" + "TextureAtlas.cpp" "TextureHolder.cpp" "TextureManager.cpp" "TextureMap.cpp" @@ -426,6 +457,7 @@ set(MINECRAFT_CLIENT_SOURCES "TileRenderer.cpp" "Timer.cpp" "TitleScreen.cpp" + "TntMinecartRenderer.cpp" "TntRenderer.cpp" "TrackedEntity.cpp" "User.cpp" @@ -439,15 +471,24 @@ set(MINECRAFT_CLIENT_SOURCES "VillagerZombieModel.cpp" "WaterDropParticle.cpp" "Windows64/Iggy/gdraw/gdraw_d3d11.cpp" + "Windows64/KeyboardMouseInput.cpp" "Windows64/Leaderboards/WindowsLeaderboardManager.cpp" "Windows64/Windows64_App.cpp" "Windows64/Windows64_Minecraft.cpp" - "Windows64/KeyboardMouseInput.cpp" "Windows64/Windows64_UIController.cpp" + "WitchModel.cpp" + "WitchRenderer.cpp" + "WitherBossModel.cpp" + "WitherBossRenderer.cpp" + "WitherSkullRenderer.cpp" "WolfModel.cpp" "WolfRenderer.cpp" "WstringLookup.cpp" "Xbox/Network/NetworkPlayerXbox.cpp" "ZombieModel.cpp" "ZombieRenderer.cpp" + "compat_shims.cpp" + "glWrapper.cpp" + "stdafx.cpp" + "stubs.cpp" ) -- cgit v1.2.3 From 3dce71ef321499bf63be98111ab04e7f0773f6a1 Mon Sep 17 00:00:00 2001 From: GuglioIsStupid Date: Mon, 2 Mar 2026 19:04:36 -0500 Subject: Copy assets fix (#207) * Update CopyAssets to ignore source files and only copy used files. * Forgot the debug copy assets * Remove leftovers from testing * Fix ClientSources.cmake to include WinsockNetLayer.cpp * Ignore xml and lang files in output, also remove Layout directory as it only includes a useless binary * Debug & Release use the same file structure --- cmake/ClientSources.cmake | 1 + cmake/CopyAssets.cmake | 68 ++++++++++++++++++++++++++++++++--------------- 2 files changed, 47 insertions(+), 22 deletions(-) (limited to 'cmake/ClientSources.cmake') diff --git a/cmake/ClientSources.cmake b/cmake/ClientSources.cmake index f56b7ef0..c75b3bf3 100644 --- a/cmake/ClientSources.cmake +++ b/cmake/ClientSources.cmake @@ -476,6 +476,7 @@ set(MINECRAFT_CLIENT_SOURCES "Windows64/Windows64_App.cpp" "Windows64/Windows64_Minecraft.cpp" "Windows64/Windows64_UIController.cpp" + "Windows64/Network/WinsockNetLayer.cpp" "WitchModel.cpp" "WitchRenderer.cpp" "WitherBossModel.cpp" diff --git a/cmake/CopyAssets.cmake b/cmake/CopyAssets.cmake index 47b19ca7..a0252f73 100644 --- a/cmake/CopyAssets.cmake +++ b/cmake/CopyAssets.cmake @@ -12,9 +12,28 @@ set(_project_dir "${PROJECT_SOURCE_DIR}/Minecraft.Client") function(copy_tree_if_exists src_rel dst_rel) set(_src "${_project_dir}/${src_rel}") set(_dst "${OUTPUT_DIR}/${dst_rel}") + if(EXISTS "${_src}") file(MAKE_DIRECTORY "${_dst}") - execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${_src}" "${_dst}") + file(GLOB_RECURSE _files RELATIVE "${_src}" "${_src}/*") + + foreach(_file IN LISTS _files) # if not a source file + if(NOT _file MATCHES "\\.(cpp|c|h|hpp|xml|lang)$") + set(_full_src "${_src}/${_file}") + set(_full_dst "${_dst}/${_file}") + + if(IS_DIRECTORY "${_full_src}") + file(MAKE_DIRECTORY "${_full_dst}") + else() + get_filename_component(_dst_dir "${_full_dst}" DIRECTORY) + file(MAKE_DIRECTORY "${_dst_dir}") + execute_process( + COMMAND "${CMAKE_COMMAND}" -E copy_if_different + "${_full_src}" "${_full_dst}" + ) + endif() + endif() + endforeach() endif() endfunction() @@ -25,10 +44,15 @@ endfunction() function(copy_file_if_exists src_rel dst_rel) set(_src "${PROJECT_SOURCE_DIR}/${src_rel}") set(_dst "${OUTPUT_DIR}/${dst_rel}") + + get_filename_component(_dst_dir "${_dst}" DIRECTORY) + file(MAKE_DIRECTORY "${_dst_dir}") + if(EXISTS "${_src}") - get_filename_component(_dst_dir "${_dst}" DIRECTORY) - file(MAKE_DIRECTORY "${_dst_dir}") - execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${_src}" "${_dst}") + execute_process( + COMMAND "${CMAKE_COMMAND}" -E copy_if_different + "${_src}" "${_dst}" + ) endif() endfunction() @@ -46,24 +70,24 @@ function(copy_first_existing dst_rel) endif() endfunction() -if(CONFIGURATION STREQUAL "Debug") - copy_tree_if_exists("Durango/Sound" "Durango/Sound") - copy_tree_if_exists("music" "music") - copy_tree_if_exists("Windows64/GameHDD" "Windows64/GameHDD") - copy_tree_if_exists("Common/Media" "Common/Media") - copy_tree_if_exists("Common/res" "Common/res") - copy_tree_if_exists("Common/Trial" "Common/Trial") - copy_tree_if_exists("Common/Tutorial" "Common/Tutorial") -else() - copy_tree_if_exists("music" "music") - copy_tree_if_exists("Windows64/GameHDD" "Windows64/GameHDD") - copy_tree_if_exists("Common/Media" "Common/Media") - copy_tree_if_exists("Common/res" "Common/res") - copy_tree_if_exists("Common/Trial" "Common/Trial") - copy_tree_if_exists("Common/Tutorial" "Common/Tutorial") - copy_tree_if_exists("DurangoMedia" "Windows64Media") - copy_tree_if_exists("Windows64Media" "Windows64Media") -endif() +function(remove_directory_if_exists rel_path) + set(_dir "${OUTPUT_DIR}/${rel_path}") + if(EXISTS "${_dir}") + file(REMOVE_RECURSE "${_dir}") + endif() +endfunction() + +copy_tree_if_exists("Durango/Sound" "Windows64/Sound") +copy_tree_if_exists("music" "music") +copy_tree_if_exists("Windows64/GameHDD" "Windows64/GameHDD") +copy_file_if_exists("Minecraft.Client/Common/Media/MediaWindows64.arc" "Common/Media/MediaWindows64.arc") +copy_tree_if_exists("Common/res" "Common/res") +copy_tree_if_exists("Common/Trial" "Common/Trial") +copy_tree_if_exists("Common/Tutorial" "Common/Tutorial") +copy_tree_if_exists("DurangoMedia" "Windows64Media") +copy_tree_if_exists("Windows64Media" "Windows64Media") + +remove_directory_if_exists("Windows64Media/Layout") # Some runtime code asserts if this directory tree is missing. ensure_dir("Windows64/GameHDD") -- cgit v1.2.3