diff --git a/CMakeLists.txt b/CMakeLists.txt index 0efbb62b038..896ebacf3ea 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 00000000000..7748fe4ef48 --- /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()