diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b4b3458..eaee9923 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,16 @@ set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_EXTENSIONS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +# Opt-in ccache launcher. The game sources are frozen (1:1 with the decomp), +# so ccache makes branch-switch / worktree rebuilds nearly free. No-op when +# ccache is not installed. +find_program(CCACHE_PROGRAM ccache) +if(CCACHE_PROGRAM) + set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") + set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") + message(STATUS "ccache enabled: ${CCACHE_PROGRAM}") +endif() + # Default build type if(NOT CMAKE_BUILD_TYPE AND NOT EXISTS ${CMAKE_BINARY_DIR}/CMakeCache.txt) set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "" FORCE) diff --git a/build-pc.sh b/build-pc.sh index 8f71030f..34a6388c 100644 --- a/build-pc.sh +++ b/build-pc.sh @@ -22,7 +22,7 @@ set -euo pipefail ROMID="${1:-ntsc-final}" -BUILD_DIR="build-pc" +BUILD_DIR="${BUILD_DIR:-build-pc}" echo "==> Configuring PC port (ROMID=${ROMID})" cmake -S . -B "${BUILD_DIR}" -DROMID="${ROMID}"