From 20389043ac7153009c10bf2beb0cae9f494af463 Mon Sep 17 00:00:00 2001 From: 2fort sink <87287937+OEMunlag@users.noreply.github.com> Date: Mon, 2 Feb 2026 20:37:56 -0300 Subject: [PATCH] Enhance build.yml with ccache shims for compilers very hacky I know but we also fix exosphere hopefully with this --- .github/workflows/build.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2ff341a6..ca08638c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -141,16 +141,46 @@ jobs: make -j$(($(nproc) * 4)) CXX="ccache aarch64-none-elf-g++" CC="ccache aarch64-none-elf-gcc" hactool -t kip1 out/nintendo_nx_arm64_armv8a/release/loader.kip --uncompress=hoc.kip cp hoc.kip ../../../dist/atmosphere/kips/hoc.kip + + - name: Make ccache shims + run: | # yes it's as bad as it sounds and it doesn't make sense but exosphere uses both aarch64 and arm32 gcc and g++ + cat > .dkp-wrappers/aarch64-none-elf-gcc <<'EOF' + #!/bin/sh + exec ccache /opt/devkitpro/devkitA64/bin/aarch64-none-elf-gcc "$@" + EOF + chmod +x .dkp-wrappers/aarch64-none-elf-gcc + + cat > .dkp-wrappers/aarch64-none-elf-g++ <<'EOF' + + #!/bin/sh + exec ccache /opt/devkitpro/devkitA64/bin/aarch64-none-elf-g++ "$@" + EOF + chmod +x .dkp-wrappers/aarch64-none-elf-g++ + + cat > .dkp-wrappers/arm-none-eabi-gcc <<'EOF' + #!/bin/sh + exec ccache /opt/devkitpro/devkitARM/bin/arm-none-eabi-gcc "$@" + EOF + chmod +x .dkp-wrappers/arm-none-eabi-gcc + + cat > .dkp-wrappers/arm-none-eabi-g++ <<'EOF' + #!/bin/sh + exec ccache /opt/devkitpro/devkitARM/bin/arm-none-eabi-g++ "$@" + EOF + chmod +x .dkp-wrappers/arm-none-eabi-g++ - name: Build exosphere working-directory: build/exosphere run: | + export PATH="$PWD/.dkp-wrappers:$PATH" export PATCHES="../../Source/Atmosphere-Patches" export ROOT=".." cp "$PATCHES/secmon_memory_layout.hpp" "$ROOT/libraries/libexosphere/include/exosphere/secmon/" cp "$PATCHES/secmon_emc_access_table_data.inc" "$ROOT/exosphere/program/source/smc/" cp "$PATCHES/secmon_define_emc_access_table.inc" "$ROOT/exosphere/program/source/smc/" cp "$PATCHES/secmon_smc_register_access.cpp" "$ROOT/exosphere/program/source/smc/" + cp "$PATCHES/secmon_define_soctherm_access_table.inc" "$ROOT/exosphere/program/source/smc/" + # build without ams for now make -j$(($(nproc) * 4)) cp ./out/nintendo_nx_arm64_armv8a/release/exosphere.bin ../../dist/