Explorar o código

Merge branch 'bugfix/restore_ccache_use' into 'release/v3.3'

CMake : Restore ccache use (backport v3.3)

See merge request idf/esp-idf!4985
Angus Gratton %!s(int64=6) %!d(string=hai) anos
pai
achega
871e95087e
Modificáronse 2 ficheiros con 16 adicións e 0 borrados
  1. 7 0
      tools/ci/test_build_system_cmake.sh
  2. 9 0
      tools/cmake/project.cmake

+ 7 - 0
tools/ci/test_build_system_cmake.sh

@@ -372,6 +372,13 @@ EOF
     grep "$PWD/components/bootloader/subproject/main/bootloader_start.c" build/bootloader/compile_commands.json \
         || failure "Custom bootloader source files should be built instead of the original's"
     rm -rf components
+    
+    print_status "Check ccache is used to build when present"
+    touch ccache && chmod +x ccache  # make sure that ccache is present for this test
+    (export PATH=$PWD:$PATH && idf.py reconfigure | grep "ccache will be used for faster builds") || failure "ccache should be used when present"
+    (export PATH=$PWD:$PATH && idf.py reconfigure --no-ccache | grep -c "ccache will be used for faster builds" | grep -wq 0) \
+        || failure "ccache should not be used even when present if --no-ccache is specified"
+    rm -f ccache
 
     print_status "All tests completed"
     if [ -n "${FAILURES}" ]; then

+ 9 - 0
tools/cmake/project.cmake

@@ -83,6 +83,15 @@ macro(project name)
     # Now the configuration is loaded, set the toolchain appropriately
     idf_set_toolchain()
 
+    # Enable ccache if it's on the path
+    if(NOT CCACHE_DISABLE)
+        find_program(CCACHE_FOUND ccache)
+        if(CCACHE_FOUND)
+            message(STATUS "ccache will be used for faster builds")
+            set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
+        endif()
+    endif()
+
     __project(${name} C CXX ASM)
 
     set(IDF_BUILD_ARTIFACTS ON)