diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index f74070714..8a92734fc 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -25,17 +25,20 @@ jobs: - name: Set platform lowercase run: echo "PLATFORM=$('${{ matrix.platform }}'.ToLower())" >> $env:GITHUB_ENV - - name: Setup MSBuild - uses: microsoft/setup-msbuild@v2 + - name: Setup MSVC + uses: ilammy/msvc-dev-cmd@v1 - - name: Configure - run: cmake -B out/build/${{ env.PLATFORM }} --preset ${{ env.PLATFORM }} - - - name: Build - run: cmake --build out/build/${{ env.PLATFORM }} --preset ${{ env.PLATFORM }}-release --target Minecraft.Client + - name: Setup CMake + uses: lukka/get-cmake@latest + + - name: Run CMake + uses: lukka/run-cmake@v10 + with: + configurePreset: ${{ env.PLATFORM }} + buildPreset: ${{ env.PLATFORM }}-release - name: Zip Build - run: 7z a -r LCE${{ matrix.platform }}.zip ./out/build/${{ env.PLATFORM }}/Minecraft.Client/Release/* + run: 7z a -r LCE${{ matrix.platform }}.zip ./build/${{ env.PLATFORM }}/Minecraft.Client/Release/* - name: Stage artifacts run: | @@ -45,8 +48,8 @@ jobs: - name: Stage exe and pdb if: matrix.platform == 'Windows64' run: | - Copy-Item ./out/build/${{ env.PLATFORM }}/Minecraft.Client/Release/Minecraft.Client.exe staging/ - Copy-Item ./out/build/${{ env.PLATFORM }}/Minecraft.Client/Release/Minecraft.Client.pdb staging/ + Copy-Item ./build/${{ env.PLATFORM }}/Minecraft.Client/Release/Minecraft.Client.exe staging/ + Copy-Item ./build/${{ env.PLATFORM }}/Minecraft.Client/Release/Minecraft.Client.pdb staging/ - name: Upload artifacts uses: actions/upload-artifact@v6 diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 962023284..757fb4aea 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -17,13 +17,14 @@ jobs: - name: Checkout uses: actions/checkout@v6 - - name: Setup MSBuild - uses: microsoft/setup-msbuild@v2 + - name: Setup MSVC + uses: ilammy/msvc-dev-cmd@v1 + + - name: Setup CMake + uses: lukka/get-cmake@latest - - name: Configure - run: cmake -B out/build/windows64 --preset windows64 - - - name: Build - run: cmake --build out/build/windows64 --preset windows64-debug --target Minecraft.Client - - + - name: Run CMake + uses: lukka/run-cmake@v10 + with: + configurePreset: windows64 + buildPreset: windows64-debug diff --git a/.gitignore b/.gitignore index 0c5dfff85..8f403feb1 100644 --- a/.gitignore +++ b/.gitignore @@ -410,22 +410,8 @@ enc_temp_folder/ Minecraft.Client/Schematics/ Minecraft.Client/Windows64/GameHDD/ -# Intermediate build files (per-project) -Minecraft.Client/x64/ -Minecraft.Client/Debug/ -Minecraft.Client/x64_Debug/ -Minecraft.Client/Release/ -Minecraft.Client/x64_Release/ - -Minecraft.World/x64/ -Minecraft.World/Debug/ -Minecraft.World/x64_Debug/ -Minecraft.World/Release/ -Minecraft.World/x64_Release/ - # CMake build output build/ -out/ # Existing build output files !x64/**/Effects.msscmp @@ -435,6 +421,3 @@ out/ # Local saves Minecraft.Client/Saves/ - -# Visual Studio Per-User Config -*.user diff --git a/CMakePresets.json b/CMakePresets.json index 692817295..6aab713f9 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -1,10 +1,16 @@ { "version": 6, "configurePresets": [ + { + "name": "base", + "generator": "Ninja Multi-Config", + "binaryDir": "${sourceDir}/build/${presetName}", + "hidden": true + }, { "name": "windows64", "displayName": "Windows64", - "generator": "Ninja Multi-Config", + "inherits": "base", "cacheVariables": { "PLATFORM_DEFINES": "_WINDOWS64" } @@ -12,7 +18,7 @@ { "name": "durango", "displayName": "Durango", - "generator": "Ninja Multi-Config", + "inherits": "base", "toolchainFile": "${sourceDir}/cmake/toolchains/durango.cmake", "cacheVariables": { "PLATFORM_DEFINES": "_DURANGO;_XBOX_ONE" @@ -21,7 +27,7 @@ { "name": "orbis", "displayName": "ORBIS", - "generator": "Ninja Multi-Config", + "inherits": "base", "toolchainFile": "${sourceDir}/cmake/toolchains/orbis.cmake", "cacheVariables": { "PLATFORM_DEFINES": "__ORBIS__" @@ -30,7 +36,7 @@ { "name": "ps3", "displayName": "PS3", - "generator": "Ninja Multi-Config", + "inherits": "base", "toolchainFile": "${sourceDir}/cmake/toolchains/ps3.cmake", "cacheVariables": { "PLATFORM_DEFINES": "__PS3__" @@ -39,7 +45,7 @@ { "name": "psvita", "displayName": "PSVita", - "generator": "Ninja Multi-Config", + "inherits": "base", "toolchainFile": "${sourceDir}/cmake/toolchains/psvita.cmake", "cacheVariables": { "PLATFORM_DEFINES": "__PSVITA__" @@ -48,7 +54,7 @@ { "name": "xbox360", "displayName": "Xbox 360", - "generator": "Ninja Multi-Config", + "inherits": "base", "toolchainFile": "${sourceDir}/cmake/toolchains/xbox360.cmake", "cacheVariables": { "PLATFORM_DEFINES": "_XBOX" diff --git a/Minecraft.Client/cmake/AssetCopyTargets.cmake b/Minecraft.Client/cmake/AssetCopyTargets.cmake index 0b29220f0..b47c264dd 100644 --- a/Minecraft.Client/cmake/AssetCopyTargets.cmake +++ b/Minecraft.Client/cmake/AssetCopyTargets.cmake @@ -23,7 +23,7 @@ set(ASSET_EXCLUDE_FILES "*.resx" "*.loc" "*.wav" # Unsupported audio format "*.xui" - "MediaPS*" "MediaOrbis.arc" "MediaDurango.arc" # Console media + "MediaPS*.arc" "MediaOrbis.arc" "MediaDurango.arc" # Console media ) # Global folder exclusions applied to every folder copy