diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,14 +27,6 @@
 # Make contrib script accessible.
 set(CONTRIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/contrib)
 
-# If ccache is available, then use it.
-find_program(CCACHE ccache)
-if(CCACHE)
-	message(STATUS "Using ccache: ${CCACHE}")
-	set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE})
-	set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE})
-endif(CCACHE)
-
 # Default to RelWithDebInfo configuration
 if(NOT CMAKE_BUILD_TYPE)
 	set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -27,6 +27,14 @@
 option(START_WITH_UPNP "Make UPnP the default to map ports" OFF)
 option(ENABLE_CLANG_TIDY "Enable clang-tidy checks for Bitcoin ABC" ON)
 
+# If ccache is available, then use it.
+find_program(CCACHE ccache)
+if(CCACHE)
+	message(STATUS "Using ccache: ${CCACHE}")
+	set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE})
+	set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE})
+endif(CCACHE)
+
 # Disable what we do not need for the native build.
 include(NativeExecutable)
 native_add_cmake_flags(