This is an automated email from the ASF dual-hosted git repository.

bcall pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new fba8223780 Add automatic detection of ccache for cmake (#9720)
fba8223780 is described below

commit fba8223780043fdc53dbbcd6c9e75c18ed82e0bd
Author: Bryan Call <[email protected]>
AuthorDate: Mon May 22 08:58:32 2023 -0700

    Add automatic detection of ccache for cmake (#9720)
---
 CMakeLists.txt          |  3 +++
 cmake/find_ccache.cmake | 24 ++++++++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0efbb62b03..896ebacf3e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -99,6 +99,9 @@ find_package(PCRE)
 include(FindOpenSSL)
 find_package(OpenSSL)
 
+# Find ccache
+include(find_ccache)
+
 # Check for IO faculties
 check_symbol_exists(epoll_create "sys/epoll.h" TS_USE_EPOLL)
 check_symbol_exists(kqueue "sys/event.h" TS_USE_KQUEUE)
diff --git a/cmake/find_ccache.cmake b/cmake/find_ccache.cmake
new file mode 100644
index 0000000000..7748fe4ef4
--- /dev/null
+++ b/cmake/find_ccache.cmake
@@ -0,0 +1,24 @@
+#######################
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+#  agreements.  See the NOTICE file distributed with this work for additional 
information regarding
+#  copyright ownership.  The ASF licenses this file to you under the Apache 
License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with the 
License.  You may obtain
+#  a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software 
distributed under the License
+#  is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+#  or implied. See the License for the specific language governing permissions 
and limitations under
+#  the License.
+#
+#######################
+
+option(ENABLE_CCACHE "Use ccache to speed up rebuilds" ON)
+find_program(CCACHE_PROGRAM ccache)
+if(CCACHE_PROGRAM AND ${ENABLE_CCACHE})
+  message(STATUS "Using ${CCACHE_PROGRAM} as compiler launcher")
+  set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}")
+  set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PROGRAM}")
+endif()

Reply via email to