add ccache

This commit is contained in:
Lightos1
2026-07-27 20:57:48 +02:00
parent 02bbdcdb57
commit b7d0e3c9fa
2 changed files with 39 additions and 0 deletions

View File

@@ -5,3 +5,4 @@ Horizon OC Compilation Instructions
3. Clone the Horizon OC develop branch (``git clone https://github.com/Horizon-OC/Horizon-OC.git --recurse-submodules``)
4. Run ``./build.sh`` in the root directory
- If you want to compile with extensions, append ``--ext``
- Installing ``ccache`` is optional; if it is on your PATH it is used automatically to speed up rebuilds

View File

@@ -64,6 +64,16 @@ echo "CORES: $CORES"
JOBS="${JOBS:-$CORES}"
echo "JOBS: $JOBS"
if command -v ccache >/dev/null 2>&1; then
export ATMOSPHERE_CCACHE="ccache"
export CCACHE_BASEDIR="$ROOT_DIR"
export CCACHE_SLOPPINESS="time_macros,include_file_mtime,include_file_ctime,pch_defines,locale"
export CCACHE_MAXSIZE="10G"
echo "CCACHE: enabled ($(ccache --version | head -n1))"
else
echo "CCACHE: not found, building without it"
fi
SRC="Source/Atmosphere/stratosphere/loader/"
mkdir -p "build"
@@ -109,6 +119,28 @@ if [ "$NO_EXO" -eq 0 ]; then
cp -v "$EXO_SRC/secmon_memory_layout.hpp" "$LIBEXO_DEST/"
fi
CCACHE_MKS="build/atmosphere/libraries/config/common.mk
build/atmosphere/libraries/config/templates/stratosphere.mk
build/atmosphere/libraries/libstratosphere/libstratosphere.mk"
for CCACHE_MK in $CCACHE_MKS; do
if ! grep -q "ATMOSPHERE_CCACHE" "$CCACHE_MK"; then
echo
echo "*** Patching $CCACHE_MK for ccache ***"
cat >> "$CCACHE_MK" <<'EOF'
ifneq ($(strip $(ATMOSPHERE_CCACHE)),)
ifneq ($(firstword $(CC)),$(ATMOSPHERE_CCACHE))
export CC := $(ATMOSPHERE_CCACHE) $(CC)
endif
ifneq ($(firstword $(CXX)),$(ATMOSPHERE_CCACHE))
export CXX := $(ATMOSPHERE_CCACHE) $(CXX)
endif
endif
EOF
fi
done
echo
echo "*** Compiling loader ***"
cd build/atmosphere/stratosphere/loader || exit 1
@@ -126,6 +158,12 @@ if [ "$NO_EXO" -eq 0 ]; then
cp -v build/atmosphere/exosphere/out/nintendo_nx_arm64_armv8a/release/exosphere.bin dist/atmosphere/exosphere.bin
fi
if [ -n "$ATMOSPHERE_CCACHE" ]; then
echo
echo "*** ccache stats ***"
ccache --show-stats
fi
cd Source/hoc-clk/
./build.sh
cp -r dist/ ../../