Преглед изворни кода

disable ccache by default when building llvm libraries (#4885)

* feat: add --use-ccache CLI argument to build_llvm.py

Add a new --use-ccache flag that will allow developers to opt-in to using
ccache for LLVM builds. This is part of a larger effort to disable ccache
by default to reduce CI storage consumption while still allowing local
developers to benefit from faster incremental builds.

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
liang.he пре 4 недеља
родитељ
комит
bc4d6834cd
3 измењених фајлова са 17 додато и 4 уклоњено
  1. 9 4
      build-scripts/build_llvm.py
  2. 6 0
      product-mini/README.md
  3. 2 0
      tests/benchmarks/README.md

+ 9 - 4
build-scripts/build_llvm.py

@@ -48,7 +48,7 @@ def query_llvm_version(llvm_info):
     return response['sha']
 
 
-def build_llvm(llvm_dir, platform, backends, projects, use_clang=False, extra_flags=''):
+def build_llvm(llvm_dir, platform, backends, projects, use_clang=False, extra_flags='', use_ccache=False):
     LLVM_COMPILE_OPTIONS = [
         '-DCMAKE_BUILD_TYPE:STRING="Release"',
         "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON",
@@ -68,8 +68,8 @@ def build_llvm(llvm_dir, platform, backends, projects, use_clang=False, extra_fl
         "-DLLVM_OPTIMIZED_TABLEGEN:BOOL=ON",
     ]
 
-    # ccache is not available on Windows
-    if not "windows" == platform:
+    # ccache is opt-in via --use-ccache flag
+    if not "windows" == platform and use_ccache:
         LLVM_COMPILE_OPTIONS.append("-DLLVM_CCACHE_BUILD:BOOL=ON")
     # perf support is available on Linux only
     if "linux" == platform:
@@ -270,6 +270,11 @@ def main():
         action="store_true",
         help="use clang instead of gcc",
     )
+    parser.add_argument(
+        "--use-ccache",
+        action="store_true",
+        help="enable ccache for faster incremental LLVM builds (disabled by default to reduce CI storage consumption, recommended for local development)",
+    )
     parser.add_argument(
         "--extra-cmake-flags",
         type=str,
@@ -334,7 +339,7 @@ def main():
         if (
             build_llvm(
                 llvm_dir, platform, options.arch, options.project, options.use_clang,
-                options.extra_cmake_flags
+                options.extra_cmake_flags, options.use_ccache
             )
             is not None
         ):

+ 6 - 0
product-mini/README.md

@@ -79,6 +79,12 @@ cd product-mini/platforms/linux/
 ./build_llvm.sh     (The llvm source code is cloned under <wamr_root_dir>/core/deps/llvm and auto built)
 ```
 
+Note: By default, ccache is disabled to reduce CI storage consumption. For local development with frequent LLVM rebuilds, you can enable ccache for faster incremental builds by using the `--use-ccache` flag:
+``` Bash
+cd <wamr_root_dir>/build-scripts
+python3 build_llvm.py --arch X86 --use-ccache
+```
+
 Then pass argument `-DWAMR_BUILD_JIT=1` to cmake to enable LLVM JIT:
 ``` Bash
 mkdir build && cd build

+ 2 - 0
tests/benchmarks/README.md

@@ -65,3 +65,5 @@ cmake ../llvm \
 ninja -j 8
 # tool `llvm-profdata` is generated under this folder.
 ```
+
+> **Note**: The example above shows `-DLLVM_CCACHE_BUILD:BOOL=ON` for enabling ccache in the cmake configuration. When using the `build_llvm.py` script, ccache is disabled by default to reduce CI storage consumption. To enable it with the script, use: `python3 build_llvm.py --use-ccache --arch X86`