Просмотр исходного кода

Add ccache option to CMakeLists.txt and build.sh

Ben Bader 8 лет назад
Родитель
Сommit
22d8a8e0e9
2 измененных файлов с 23 добавлено и 1 удалено
  1. 9 0
      CMakeLists.txt
  2. 14 1
      build.sh

+ 9 - 0
CMakeLists.txt

@@ -51,6 +51,15 @@ unset(CC_TARGETS_ARM_SH CACHE)
 unset(CC_TARGETS_X86_SH CACHE)
 unset(CC_TARGETS_AMD64_SH CACHE)
 
+if(CCACHE_PROGRAM_NAME_SH)
+  find_program(CCACHE_PROGRAM ${CCACHE_PROGRAM_NAME_SH})
+  if (CCACHE_PROGRAM)
+    set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
+    set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
+  endif()
+  unset(CCACHE_PROGRAM_NAME_SH CACHE)
+endif()
+
 if(ENABLE_VALGRIND_SH)
     unset(ENABLE_VALGRIND_SH CACHE)
     if(NOT CC_TARGETS_X86)

+ 14 - 1
build.sh

@@ -71,6 +71,8 @@ PRINT_USAGE() {
     echo "                       Disable FEATUREs from JSRT experimental features."
     echo "     --valgrind        Enable Valgrind support"
     echo "                       !!! Disables Concurrent GC (lower performance)"
+    echo "     --ccache[=NAME]   Enable ccache, optionally with a custom binary name."
+    echo "                       Default: ccache"
     echo " -v, --verbose         Display verbose output including all options"
     echo "     --wb-check CPPFILE"
     echo "                       Write-barrier check given CPPFILE (git path)"
@@ -124,6 +126,7 @@ VALGRIND=0
 CMAKE_EXPORT_COMPILE_COMMANDS="-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
 LIBS_ONLY_BUILD=
 ALWAYS_YES=
+CCACHE_NAME=
 PYTHON2_BINARY=$(which python2.7 || which python2 || which python 2> /dev/null)
 
 UNAME_S=`uname -s`
@@ -336,6 +339,16 @@ while [[ $# -gt 0 ]]; do
         TARGET_PATH=${TARGET_PATH:14}
         ;;
 
+    --ccache=*)
+        CCACHE_NAME="$1"
+        CCACHE_NAME=${CCACHE_NAME:9}
+        CCACHE_NAME="-DCCACHE_PROGRAM_NAME_SH=${CCACHE_NAME}"
+        ;;
+
+    --ccache)
+        CCACHE_NAME="-DCCACHE_PROGRAM_NAME_SH=ccache"
+        ;;
+
     --without=*)
         FEATURES=$1
         FEATURES=${FEATURES:10}    # value after --without=
@@ -655,7 +668,7 @@ echo $EXTRA_DEFINES
 cmake $CMAKE_GEN $CC_PREFIX $CMAKE_ICU $LTO $LTTNG $STATIC_LIBRARY $ARCH $TARGET_OS \
     $ENABLE_CC_XPLAT_TRACE $EXTRA_DEFINES -DCMAKE_BUILD_TYPE=$BUILD_TYPE $SANITIZE $NO_JIT $CMAKE_INTL \
     $WITHOUT_FEATURES $WB_FLAG $WB_ARGS $CMAKE_EXPORT_COMPILE_COMMANDS $LIBS_ONLY_BUILD\
-    $VALGRIND $BUILD_RELATIVE_DIRECTORY
+    $VALGRIND $BUILD_RELATIVE_DIRECTORY $CCACHE_NAME
 
 _RET=$?
 if [[ $? == 0 ]]; then