diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh
index a7a0eb0b00fbea290554cd16964616ba3b6403ea..82432bd83574120bed62455d24079652fa57a42c 100755
--- a/.ci/scripts/linux/docker.sh
+++ b/.ci/scripts/linux/docker.sh
@@ -6,7 +6,7 @@
 # Exit on error, rather than continuing with the rest of the script.
 set -e
 
-ccache -s
+ccache -sv
 
 mkdir build || true && cd build
 cmake .. \
@@ -15,8 +15,8 @@ cmake .. \
 			-DSUYU_USE_PRECOMPILED_HEADERS=OFF \
 			-DDYNARMIC_USE_PRECOMPILED_HEADERS=OFF \
       -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
-      -DCMAKE_CXX_COMPILER=/usr/bin/g++ \
-      -DCMAKE_C_COMPILER=/usr/bin/gcc \
+      -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ \
+      -DCMAKE_C_COMPILER=/usr/local/bin/gcc \
       -DCMAKE_INSTALL_PREFIX="/usr" \
       -DDISPLAY_VERSION=$1 \
       -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF \
@@ -31,7 +31,7 @@ cmake .. \
 
 ninja
 
-ccache -s
+ccache -sv
 
 ctest -VV -C Release
 
diff --git a/.forgejo/workflows/verify.yml b/.forgejo/workflows/verify.yml
index d250c136b7af9a6bb82a2ea738ad5d5cf4071260..1d17c43a2b46aaf9efa1d3375d761160b184592d 100644
--- a/.forgejo/workflows/verify.yml
+++ b/.forgejo/workflows/verify.yml
@@ -33,7 +33,6 @@ on:
 
 env:
   PR_NUMBER: pr${{ github.event.number }}
-  CCACHE_DIR: '.ccache'
 
 jobs:
   format:
@@ -77,13 +76,13 @@ jobs:
         uses: https://code.forgejo.org/actions/cache@v3
         id: ccache-restore
         with:
-          path: .ccache
+          path: ~/.ccache
           key: ${{ runner.os }}-${{ matrix.type }}-${{ github.sha }}
           restore-keys: |
             ${{ runner.os }}-${{ matrix.type }}-
       - name: Create ccache directory
         if: steps.ccache-restore.outputs.cache-hit != 'true'
-        run: mkdir -p .ccache
+        run: mkdir -p ~/.ccache
       - name: Build
         run: ./.ci/scripts/${{ matrix.type }}/docker.sh
         env:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 84132e47d15571aff3fb90be82ecb95819edd4ec..42e8615e573520db46b900d18584e47d1f9cdf80 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -374,8 +374,6 @@ if(ENABLE_QT6 AND Qt6_LOCATION)
     list(APPEND CMAKE_PREFIX_PATH "${Qt6_LOCATION}")
 endif()
 
-# QT6 searches for Vulkan::Headers, too, so we have to define it before QT6 has a chance to do it.
-add_subdirectory(externals)
 
 function(set_suyu_qt_components)
     # Best practice is to ask for all components at once, so they are from the same version
@@ -712,6 +710,7 @@ if (SUYU_USE_FASTER_LD AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
     endif()
 endif()
 
+add_subdirectory(externals)
 add_subdirectory(src)
 
 # Set suyu project or suyu-cmd project as default StartUp Project in Visual Studio depending on whether QT is enabled or not