From e6da5750cf2cf1ad5ad417ab93121337a03a03df Mon Sep 17 00:00:00 2001
From: Shenghang Tsai <jackalcooper@gmail.com>
Date: Sun, 18 Jul 2021 20:46:57 +0800
Subject: [PATCH] Support sccache (#5528)

* edit cmake cache and protobuf

* edit more cmakes

Co-authored-by: oneflow-ci-bot <69100618+oneflow-ci-bot@users.noreply.github.com>
---
 cmake/caches/cn/fast/cpu.cmake        | 2 ++
 cmake/third_party/absl.cmake          | 2 ++
 cmake/third_party/eigen.cmake         | 2 ++
 cmake/third_party/gflags.cmake        | 2 ++
 cmake/third_party/glog.cmake          | 2 ++
 cmake/third_party/googletest.cmake    | 2 ++
 cmake/third_party/grpc.cmake          | 2 ++
 cmake/third_party/libjpeg-turbo.cmake | 2 ++
 cmake/third_party/opencv.cmake        | 2 ++
 cmake/third_party/protobuf.cmake      | 2 ++
 cmake/third_party/re2.cmake           | 2 ++
 cmake/third_party/zlib.cmake          | 2 ++
 12 files changed, 24 insertions(+)

diff --git a/cmake/caches/cn/fast/cpu.cmake b/cmake/caches/cn/fast/cpu.cmake
index 40d786b45..00d7706c2 100644
--- a/cmake/caches/cn/fast/cpu.cmake
+++ b/cmake/caches/cn/fast/cpu.cmake
@@ -5,3 +5,5 @@ set(THIRD_PARTY_MIRROR aliyun CACHE STRING "")
 set(PIP_INDEX_MIRROR "https://pypi.tuna.tsinghua.edu.cn/simple" CACHE STRING "")
 set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "")
 set(CMAKE_GENERATOR Ninja CACHE STRING "")
+set(CMAKE_C_COMPILER_LAUNCHER sccache CACHE STRING "")
+set(CMAKE_CXX_COMPILER_LAUNCHER sccache CACHE STRING "")
diff --git a/cmake/third_party/absl.cmake b/cmake/third_party/absl.cmake
index e11b79751..6bd3a1966 100644
--- a/cmake/third_party/absl.cmake
+++ b/cmake/third_party/absl.cmake
@@ -41,6 +41,8 @@ if(THIRD_PARTY)
         -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
         -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
     CMAKE_CACHE_ARGS
+        -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
+        -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
         -DCMAKE_INSTALL_PREFIX:PATH=${ABSL_INSTALL}
         -DCMAKE_INSTALL_LIBDIR:PATH=${ABSL_INSTALL}/${CMAKE_INSTALL_LIBDIR}
         -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
diff --git a/cmake/third_party/eigen.cmake b/cmake/third_party/eigen.cmake
index 792d60b55..3dc32e933 100644
--- a/cmake/third_party/eigen.cmake
+++ b/cmake/third_party/eigen.cmake
@@ -31,6 +31,8 @@ ExternalProject_Add(eigen
     UPDATE_COMMAND ""
     INSTALL_DIR "${EIGEN_INSTALL_DIR}"
     CMAKE_CACHE_ARGS
+        -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
+        -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
         -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
         -DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF
         -DCMAKE_INSTALL_PREFIX:STRING=${EIGEN_INSTALL_DIR}
diff --git a/cmake/third_party/gflags.cmake b/cmake/third_party/gflags.cmake
index c2f94a679..f32cca673 100644
--- a/cmake/third_party/gflags.cmake
+++ b/cmake/third_party/gflags.cmake
@@ -38,6 +38,8 @@ ExternalProject_Add(gflags
     BUILD_IN_SOURCE 1
     BUILD_BYPRODUCTS ${GFLAGS_STATIC_LIBRARIES}
     CMAKE_CACHE_ARGS
+        -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
+        -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
         -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
         -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
         -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
diff --git a/cmake/third_party/glog.cmake b/cmake/third_party/glog.cmake
index c487bdadc..6361f03d8 100644
--- a/cmake/third_party/glog.cmake
+++ b/cmake/third_party/glog.cmake
@@ -47,6 +47,8 @@ ExternalProject_Add(glog
     BUILD_IN_SOURCE 1
     BUILD_BYPRODUCTS ${GLOG_STATIC_LIBRARIES}
     CMAKE_CACHE_ARGS
+        -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
+        -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
         -DCMAKE_POLICY_DEFAULT_CMP0074:STRING=NEW
         -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
         -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
diff --git a/cmake/third_party/googletest.cmake b/cmake/third_party/googletest.cmake
index 71021de06..5b8c2bcc5 100644
--- a/cmake/third_party/googletest.cmake
+++ b/cmake/third_party/googletest.cmake
@@ -50,6 +50,8 @@ ExternalProject_Add(googletest
     INSTALL_COMMAND ""
     BUILD_BYPRODUCTS ${GOOGLETEST_STATIC_LIBRARIES} ${GOOGLEMOCK_STATIC_LIBRARIES}
     CMAKE_CACHE_ARGS
+        -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
+        -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
         -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
         -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
         -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
diff --git a/cmake/third_party/grpc.cmake b/cmake/third_party/grpc.cmake
index 878da486a..11942d6ec 100644
--- a/cmake/third_party/grpc.cmake
+++ b/cmake/third_party/grpc.cmake
@@ -45,6 +45,8 @@ ExternalProject_Add(grpc
     BUILD_BYPRODUCTS ${GRPC_STATIC_LIBRARIES}
     BUILD_COMMAND ${CMAKE_COMMAND} --build . -j ${PROC_NUM} --target grpc && ${CMAKE_COMMAND} --build . -j ${PROC_NUM} --target grpc_unsecure && ${CMAKE_COMMAND} --build . -j ${PROC_NUM} --target grpc++_unsecure
     CMAKE_CACHE_ARGS
+        -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
+        -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
         -DCMAKE_POLICY_DEFAULT_CMP0074:STRING=NEW
         -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
         -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
diff --git a/cmake/third_party/libjpeg-turbo.cmake b/cmake/third_party/libjpeg-turbo.cmake
index f5abcae6f..47a5f1ca1 100644
--- a/cmake/third_party/libjpeg-turbo.cmake
+++ b/cmake/third_party/libjpeg-turbo.cmake
@@ -61,6 +61,8 @@ ExternalProject_Add(libjpeg-turbo
     BUILD_IN_SOURCE 1
     BUILD_BYPRODUCTS ${LIBJPEG_STATIC_LIBRARIES}
     CMAKE_CACHE_ARGS
+        -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
+        -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
         -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
         -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
 	-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
diff --git a/cmake/third_party/opencv.cmake b/cmake/third_party/opencv.cmake
index cd850e62d..4c52f8f8f 100644
--- a/cmake/third_party/opencv.cmake
+++ b/cmake/third_party/opencv.cmake
@@ -45,6 +45,8 @@ ExternalProject_Add(opencv
     BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/opencv/src/opencv/build
     BUILD_BYPRODUCTS ${OPENCV_STATIC_LIBRARIES}
     CMAKE_CACHE_ARGS
+        -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
+        -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
         -DCMAKE_POLICY_DEFAULT_CMP0074:STRING=NEW
         -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
         -DCMAKE_INSTALL_PREFIX:STRING=${OPENCV_INSTALL_DIR}
diff --git a/cmake/third_party/protobuf.cmake b/cmake/third_party/protobuf.cmake
index df76cfdcd..2278a8422 100644
--- a/cmake/third_party/protobuf.cmake
+++ b/cmake/third_party/protobuf.cmake
@@ -54,6 +54,8 @@ ExternalProject_Add(protobuf
     SOURCE_SUBDIR cmake
     BUILD_BYPRODUCTS ${PROTOBUF_STATIC_LIBRARIES}
     CMAKE_CACHE_ARGS
+        -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
+        -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
         -DCMAKE_POLICY_DEFAULT_CMP0074:STRING=NEW
         -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
         -DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF
diff --git a/cmake/third_party/re2.cmake b/cmake/third_party/re2.cmake
index ee0e41e02..773045863 100644
--- a/cmake/third_party/re2.cmake
+++ b/cmake/third_party/re2.cmake
@@ -24,6 +24,8 @@ if (THIRD_PARTY)
           -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
           -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
         CMAKE_CACHE_ARGS
+          -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
+          -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
           -DCMAKE_INSTALL_PREFIX:PATH=${RE2_INSTALL_DIR}
           -DCMAKE_INSTALL_LIBDIR:PATH=${RE2_LIBRARY_DIR}
           -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
diff --git a/cmake/third_party/zlib.cmake b/cmake/third_party/zlib.cmake
index 0542dc31a..596c36a4c 100644
--- a/cmake/third_party/zlib.cmake
+++ b/cmake/third_party/zlib.cmake
@@ -41,6 +41,8 @@ ExternalProject_Add(zlib
     BUILD_IN_SOURCE 1
     BUILD_BYPRODUCTS ${ZLIB_STATIC_LIBRARIES}
     CMAKE_CACHE_ARGS
+      -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
+      -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
       -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
       -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
       -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
-- 
GitLab