Skip to content

Commit a81c887

Browse files
committed
Disable ccache by default and allow custom ccache executable.
1 parent 55663f6 commit a81c887

File tree

4 files changed

+27
-7
lines changed

4 files changed

+27
-7
lines changed

CMakeLists.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cmake_minimum_required (VERSION 3.10)
22
project ("cc.demo3.commsdsl")
33

44
option (DEMO3_WARN_AS_ERR "Treat compilation warnings as errors." ON)
5-
option (DEMO3_USE_CCACHE "Use ccache on UNIX." ON)
5+
option (DEMO3_USE_CCACHE "Use ccache." OFF)
66
option (DEMO3_GEN_PROTOCOL "Use commsdsl2comms to generate protocol definition" ON)
77
option (DEMO3_BUILD_PROTOCOL "Build and install protocol definition generated by the commsdsl2comms" ${DEMO3_GEN_PROTOCOL})
88
option (DEMO3_BUILD_PROT_DOC "Build documentation for generated protocol" OFF)
@@ -26,6 +26,7 @@ option (DEMO3_BUILD_EXAMPLES "Build examples." ON)
2626
# DEMO3_SWIG_SRC_DIR - Path to the commsdsl2swig sources. If not provided local "src/swig" dir is used.
2727
# DEMO3_SWIG_LANGUAGES - Languages list to support by swig. If not provided "python java csharp" are chosen
2828
# DEMO3_EMSCRIPTEN_OUTPUT_DIR - Path to emscripten output directory. If not provided <build_dir>/output_emscripten one is used.
29+
# DEMO3_CCACHE_EXECUTABLE - Custom ccache executable
2930
# COMMSDSL2COMMS_EXTRA_ARGS - Extra arguments to pass to "commsdsl2comms"
3031
# COMMSDSL2TEST_EXTRA_ARGS - Extra arguments to pass to "commsdsl2test"
3132
# COMMSDSL2TOOLS_QT_EXTRA_ARGS - Extra arguments to pass to "commsdsl2tools_qt"
@@ -202,6 +203,8 @@ if (DEMO3_GEN_TEST)
202203
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS}
203204
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
204205
-DCMAKE_PREFIX_PATH=${combined_prefix_path_str}
206+
-DOPT_USE_CCACHE=${DEMO3_USE_CCACHE}
207+
-DOPT_CCACHE_EXECUTABLE=${DEMO3_CCACHE_EXECUTABLE}
205208
)
206209
endif ()
207210
endif ()
@@ -261,6 +264,8 @@ if (DEMO3_GEN_TOOLS)
261264
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS}
262265
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_PREFIX_PATH=${combined_prefix_path_str}
263266
-DOPT_QT_MAJOR_VERSION=${DEMO3_TOOLS_QT_VER}
267+
-DOPT_USE_CCACHE=${DEMO3_USE_CCACHE}
268+
-DOPT_CCACHE_EXECUTABLE=${DEMO3_CCACHE_EXECUTABLE}
264269
)
265270
endif ()
266271
endif ()
@@ -322,6 +327,8 @@ if (DEMO3_GEN_SWIG)
322327
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
323328
-DCMAKE_PREFIX_PATH=${combined_prefix_path_str}
324329
-DOPT_SWIG_LANGUAGES=${combined_languages_str}
330+
-DOPT_USE_CCACHE=${DEMO3_USE_CCACHE}
331+
-DOPT_CCACHE_EXECUTABLE=${DEMO3_CCACHE_EXECUTABLE}
325332
INSTALL_COMMAND
326333
${CMAKE_COMMAND} -E echo "Skipping install"
327334
)
@@ -390,6 +397,8 @@ if (DEMO3_GEN_EMSCRIPTEN)
390397
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
391398
-DOPT_MODULARIZE=ON
392399
-DOPT_EXTRA_INCLUDE_DIRS=${extra_includes_path_str}
400+
-DOPT_USE_CCACHE=${DEMO3_USE_CCACHE}
401+
-DOPT_CCACHE_EXECUTABLE=${DEMO3_CCACHE_EXECUTABLE}
393402
)
394403
endif ()
395404
endif ()

examples/CMakeLists.txt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,20 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/common/include)
2323
set (cc_compile_file "${LibComms_DIR}/CC_Compile.cmake")
2424
include (${cc_compile_file})
2525

26-
set (warn_as_err_opt)
26+
set (extra_opts)
2727
if (DEMO3_WARN_AS_ERR)
28-
set (warn_as_err_opt WARN_AS_ERR)
28+
list (APPEND extra_opts WARN_AS_ERR)
2929
endif()
3030

31-
set (ccache_opt)
3231
if (DEMO3_USE_CCACHE)
33-
set (ccache_opt USE_CCACHE)
32+
list (APPEND extra_opts USE_CCACHE)
33+
34+
if (NOT "${DEMO3_CCACHE_EXECUTABLE}" STREQUAL "")
35+
list (APPEND extra_opts CCACHE_EXECTUABLE "${DEMO3_CCACHE_EXECUTABLE}")
36+
endif ()
3437
endif()
3538

36-
cc_compile(${warn_as_err_opt} ${ccache_opt})
39+
cc_compile(${extra_opts})
3740
cc_msvc_force_warn_opt("/W4")
3841

3942
add_subdirectory (server)

script/full_debug_build.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ export BUILD_DIR="${ROOT_DIR}/build.full.${CC}"
1111
export COMMON_INSTALL_DIR=${BUILD_DIR}/install
1212
export COMMON_BUILD_TYPE=Debug
1313
export EXTERNALS_DIR=${ROOT_DIR}/externals
14+
export COMMON_USE_CCACHE=ON
1415
mkdir -p ${BUILD_DIR}
1516

1617
${SCRIPT_DIR}/prepare_externals.sh
1718

1819
cd ${BUILD_DIR}
1920
cmake .. -DCMAKE_INSTALL_PREFIX=${COMMON_INSTALL_DIR} \
2021
-DCMAKE_BUILD_TYPE=Debug -DDEMO3_BUILD_PROT_DOC=ON -DDEMO3_GEN_TEST=ON \
21-
-DDEMO3_GEN_TOOLS=ON -DDEMO3_GEN_SWIG=ON -DDEMO3_GEN_EMSCRIPTEN=ON "$@"
22+
-DDEMO3_GEN_TOOLS=ON -DDEMO3_GEN_SWIG=ON -DDEMO3_GEN_EMSCRIPTEN=ON \
23+
-DDEMO3_USE_CCACHE=ON "$@"
2224

2325
procs=$(nproc)
2426
if [ -n "${procs}" ]; then

script/prepare_externals.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
# COMMON_CXX_STANDARD - (Optional) CMake C++ standard
2020
# COMMON_CMAKE_GENERATOR - (Optional) CMake generator
2121
# COMMON_CMAKE_PLATFORM - (Optional) CMake platform
22+
# COMMON_USE_CCACHE - (Optional) Common "use ccache" parameter
23+
# COMMON_CCACHE_EXECUTABLE - (Optional) Common ccache executable
2224

2325
#####################################
2426

@@ -141,6 +143,8 @@ function build_commsdsl() {
141143
CC=${CC_COMMSDSL} CXX=${CXX_COMMSDSL} cmake \
142144
-S ${COMMSDSL_SRC_DIR} -B ${COMMSDSL_BUILD_DIR} \
143145
-DCMAKE_INSTALL_PREFIX=${COMMSDSL_INSTALL_DIR} -DCMAKE_BUILD_TYPE=${COMMON_BUILD_TYPE} \
146+
${COMMON_USE_CCACHE:+"-DCOMMSDSL_USE_CCACHE=${COMMON_USE_CCACHE}"} \
147+
${COMMON_CCACHE_EXECUTABLE:+"-DCOMMSDSL_CCACHE_EXECUTABLE=${COMMON_CCACHE_EXECUTABLE}"} \
144148
-DCOMMSDSL_INSTALL_LIBRARY=OFF -DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON \
145149
-DCOMMSDSL_BUILD_COMMSDSL2SWIG=ON -DCOMMSDSL_BUILD_COMMSDSL2EMSCRIPTEN=ON
146150
cmake --build ${COMMSDSL_BUILD_DIR} --config ${COMMON_BUILD_TYPE} --target install ${procs_param}
@@ -172,6 +176,8 @@ function build_cc_tools_qt() {
172176
cmake \
173177
${COMMON_CMAKE_GENERATOR:+"-G ${COMMON_CMAKE_GENERATOR}"} ${COMMON_CMAKE_PLATFORM:+"-A ${COMMON_CMAKE_PLATFORM}"} \
174178
-S ${CC_TOOLS_QT_SRC_DIR} -B ${CC_TOOLS_QT_BUILD_DIR} -DCMAKE_INSTALL_PREFIX=${CC_TOOLS_QT_INSTALL_DIR} \
179+
${COMMON_USE_CCACHE:+"-DCC_TOOLS_QT_USE_CCACHE=${COMMON_USE_CCACHE}"} \
180+
${COMMON_CCACHE_EXECUTABLE:+"-DCC_TOOLS_QT_CCACHE_EXECUTABLE=${COMMON_CCACHE_EXECUTABLE}"} \
175181
-DCMAKE_BUILD_TYPE=${COMMON_BUILD_TYPE} -DCC_TOOLS_QT_BUILD_APPS=OFF -DCMAKE_PREFIX_PATH=${COMMS_INSTALL_DIR} \
176182
-DCMAKE_CXX_STANDARD=${COMMON_CXX_STANDARD} ${CC_TOOLS_QT_VERSION_OPT}
177183
cmake --build ${CC_TOOLS_QT_BUILD_DIR} --config ${COMMON_BUILD_TYPE} --target install ${procs_param}

0 commit comments

Comments
 (0)