diff options
| author | rtm516 <rtm516@users.noreply.github.com> | 2026-03-02 08:14:14 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-02 15:14:14 +0700 |
| commit | e15bd26917cca606800c025371e61129109af004 (patch) | |
| tree | d8ead40563c82fc44e937618536bc4ec09de2254 /Minecraft.Client | |
| parent | 09e0c04f7b9d2d357715dc908ff0094dcf3e4fcc (diff) | |
Move to a postbuild.ps1 script and set the working dir at runtime as output dir (#113)
* Move to a postbuild.ps1 script and Set the working dir at runtime as output dir
* Update for 2f711d4
* Only copy newer files and remove needed files from gitignore
Diffstat (limited to 'Minecraft.Client')
| -rw-r--r-- | Minecraft.Client/Minecraft.Client.vcxproj | 31 | ||||
| -rw-r--r-- | Minecraft.Client/Minecraft.Client.vcxproj.user | 8 | ||||
| -rw-r--r-- | Minecraft.Client/postbuild.ps1 | 42 |
3 files changed, 54 insertions, 27 deletions
diff --git a/Minecraft.Client/Minecraft.Client.vcxproj b/Minecraft.Client/Minecraft.Client.vcxproj index 5e448ab6..4e8d46be 100644 --- a/Minecraft.Client/Minecraft.Client.vcxproj +++ b/Minecraft.Client/Minecraft.Client.vcxproj @@ -1302,14 +1302,8 @@ if not exist "$(TargetDir)\savedata" mkdir "$(TargetDir)\savedata"</Command> <ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput> </Link> <PostBuildEvent> - <Message>Copying sound assets to output directory</Message> - <Command>xcopy /q /y /i /s /e "$(ProjectDir)Durango\Sound" "$(OutDir)Durango\Sound" -xcopy /q /y /i /s /e "$(ProjectDir)music" "$(OutDir)music" -xcopy /q /y /i /s /e "$(ProjectDir)Windows64\GameHDD" "$(OutDir)Windows64\GameHDD" -xcopy /q /y /i /s /e "$(ProjectDir)Common\Media" "$(OutDir)Common\Media" -xcopy /q /y /i /s /e "$(ProjectDir)Common\res" "$(OutDir)Common\res" -xcopy /q /y /i /s /e "$(ProjectDir)Common\Trial" "$(OutDir)Common\Trial" -xcopy /q /y /i /s /e "$(ProjectDir)Common\Tutorial" "$(OutDir)Common\Tutorial"</Command> + <Message>Run postbuild script</Message> + <Command>powershell -ExecutionPolicy Bypass -File "$(ProjectDir)postbuild.ps1" -OutDir "$(OutDir)/" -ProjectDir "$(ProjectDir)/"</Command> </PostBuildEvent> <ImageXex> <ConfigurationFile>$(ProjectDir)xbox\xex-dev.xml</ConfigurationFile> @@ -1440,25 +1434,8 @@ xcopy /q /y /i /s /e $(ProjectDir)Durango\CU $(LayoutDir)Image\Loose\CU</Comman <SuppressStartupBanner>false</SuppressStartupBanner> </Link> <PostBuildEvent> - <Message>Copying game assets to output directory</Message> - <Command>mkdir "$(OutDir)music" 2>nul -mkdir "$(OutDir)Windows64\GameHDD" 2>nul -mkdir "$(OutDir)Common\Media" 2>nul -mkdir "$(OutDir)Common\res" 2>nul -mkdir "$(OutDir)Common\Trial" 2>nul -mkdir "$(OutDir)Common\Tutorial" 2>nul -mkdir "$(OutDir)Windows64Media" 2>nul - -xcopy /q /y /i /s /e "$(ProjectDir)music" "$(OutDir)music" || exit /b 0 -xcopy /q /y /i /s /e "$(ProjectDir)Windows64\GameHDD" "$(OutDir)Windows64\GameHDD" || exit /b 0 -xcopy /q /y /i /s /e "$(ProjectDir)Common\Media" "$(OutDir)Common\Media" || exit /b 0 -xcopy /q /y /i /s /e "$(ProjectDir)Common\res" "$(OutDir)Common\res" || exit /b 0 -xcopy /q /y /i /s /e "$(ProjectDir)Common\Trial" "$(OutDir)Common\Trial" || exit /b 0 -xcopy /q /y /i /s /e "$(ProjectDir)Common\Tutorial" "$(OutDir)Common\Tutorial" || exit /b 0 -xcopy /q /y /i /s /e "$(ProjectDir)DurangoMedia" "$(OutDir)Windows64Media" || exit /b 0 -xcopy /q /y /i /s /e "$(ProjectDir)Windows64Media" "$(OutDir)Windows64Media" || exit /b 0 - -exit /b 0</Command> + <Message>Run postbuild script</Message> + <Command>powershell -ExecutionPolicy Bypass -File "$(ProjectDir)postbuild.ps1" -OutDir "$(OutDir)/" -ProjectDir "$(ProjectDir)/"</Command> </PostBuildEvent> <ImageXex> <ConfigurationFile>$(ProjectDir)xbox\xex-dev.xml</ConfigurationFile> diff --git a/Minecraft.Client/Minecraft.Client.vcxproj.user b/Minecraft.Client/Minecraft.Client.vcxproj.user index cf9782cd..10dbfa33 100644 --- a/Minecraft.Client/Minecraft.Client.vcxproj.user +++ b/Minecraft.Client/Minecraft.Client.vcxproj.user @@ -3,4 +3,12 @@ <PropertyGroup> <LastConfigDeployed>Debug</LastConfigDeployed> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LocalDebuggerWorkingDirectory>$(SolutionDir)$(Platform)\$(Configuration)\</LocalDebuggerWorkingDirectory> + <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LocalDebuggerWorkingDirectory>$(SolutionDir)$(Platform)\$(Configuration)\</LocalDebuggerWorkingDirectory> + <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor> + </PropertyGroup> </Project>
\ No newline at end of file diff --git a/Minecraft.Client/postbuild.ps1 b/Minecraft.Client/postbuild.ps1 new file mode 100644 index 00000000..1c965758 --- /dev/null +++ b/Minecraft.Client/postbuild.ps1 @@ -0,0 +1,42 @@ +param( + [string]$OutDir, + [string]$ProjectDir +) + +Write-Host "Post-build script started. Output Directory: $OutDir, Project Directory: $ProjectDir" + +$directories = @( + "music", + "Windows64\GameHDD", + "Common\Media", + "Common\res", + "Common\Trial", + "Common\Tutorial", + "Windows64Media" +) + +foreach ($dir in $directories) { + New-Item -ItemType Directory -Path (Join-Path $OutDir $dir) -Force | Out-Null +} + +$copies = @( + @{ Source = "music"; Dest = "music" }, + @{ Source = "Common\Media"; Dest = "Common\Media" }, + @{ Source = "Common\res"; Dest = "Common\res" }, + @{ Source = "Common\Trial"; Dest = "Common\Trial" }, + @{ Source = "Common\Tutorial"; Dest = "Common\Tutorial" }, + @{ Source = "Windows64\GameHDD"; Dest = "Windows64\GameHDD" }, + @{ Source = "Windows64\Sound"; Dest = "Windows64\Sound" }, + @{ Source = "DurangoMedia"; Dest = "Windows64Media" }, + @{ Source = "Windows64Media"; Dest = "Windows64Media" } +) + +foreach ($copy in $copies) { + $src = Join-Path $ProjectDir $copy.Source + $dst = Join-Path $OutDir $copy.Dest + + if (Test-Path $src) { + # Copy the files using xcopy, forcing overwrite and suppressing errors, and only copying if the source is newer than the destination + xcopy /q /y /i /s /e /d "$src" "$dst" 2>$null + } +} |
