Skip to content

Commit

Permalink
Disable ccache by default and allow custom ccache executable.
Browse files Browse the repository at this point in the history
  • Loading branch information
arobenko committed Jun 25, 2024
1 parent 31e52c0 commit 8a69277
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
11 changes: 10 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ cmake_minimum_required (VERSION 3.10)
project ("cc.mqttsn.commsdsl")

option (MQTTSN_WARN_AS_ERR "Treat compilation warnings as errors." ON)
option (MQTTSN_USE_CCACHE "Use ccache on UNIX." ON)
option (MQTTSN_USE_CCACHE "Use ccache." OFF)
option (MQTTSN_GEN_PROTOCOL "Use commsdsl2comms to generate protocol definition" ON)
option (MQTTSN_BUILD_PROTOCOL "Build and install protocol definition generated by the commsdsl2comms" ${MQTTSN_GEN_PROTOCOL})
option (MQTTSN_BUILD_PROT_DOC "Build documentation for generated protocol" OFF)
Expand All @@ -25,6 +25,7 @@ option (MQTTSN_BUILD_EMSCRIPTEN "Build and install project generated by the comm
# MQTTSN_SWIG_SRC_DIR - Path to the commsdsl2swig sources. If not provided local "src/swig" dir is used.
# MQTTSN_SWIG_LANGUAGES - Languages list to support by swig. If not provided "python java csharp" are chosen
# MQTTSN_EMSCRIPTEN_OUTPUT_DIR - Path to emscripten output directory. If not provided <build_dir>/output_emscripten one is used.
# MQTTSN_CCACHE_EXECUTABLE - Custom ccache executable
# COMMSDSL2COMMS_EXTRA_ARGS - Extra arguments to pass to "commsdsl2comms"
# COMMSDSL2TEST_EXTRA_ARGS - Extra arguments to pass to "commsdsl2test"
# COMMSDSL2TOOLS_QT_EXTRA_ARGS - Extra arguments to pass to "commsdsl2tools_qt"
Expand Down Expand Up @@ -208,6 +209,8 @@ if (MQTTSN_GEN_TEST)
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DCMAKE_PREFIX_PATH=${combined_prefix_path_str}
-DOPT_USE_CCACHE=${MQTTSN_USE_CCACHE}
-DOPT_CCACHE_EXECUTABLE=${MQTTSN_CCACHE_EXECUTABLE}
)
endif ()
endif ()
Expand Down Expand Up @@ -267,6 +270,8 @@ if (MQTTSN_GEN_TOOLS)
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_PREFIX_PATH=${combined_prefix_path_str}
-DOPT_QT_MAJOR_VERSION=${MQTTSN_TOOLS_QT_VER}
-DOPT_USE_CCACHE=${MQTTSN_USE_CCACHE}
-DOPT_CCACHE_EXECUTABLE=${MQTTSN_CCACHE_EXECUTABLE}
)
endif ()
endif ()
Expand Down Expand Up @@ -328,6 +333,8 @@ if (MQTTSN_GEN_SWIG)
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DCMAKE_PREFIX_PATH=${combined_prefix_path_str}
-DOPT_SWIG_LANGUAGES=${combined_languages_str}
-DOPT_USE_CCACHE=${MQTTSN_USE_CCACHE}
-DOPT_CCACHE_EXECUTABLE=${MQTTSN_CCACHE_EXECUTABLE}
INSTALL_COMMAND
${CMAKE_COMMAND} -E echo "Skipping install"
)
Expand Down Expand Up @@ -396,6 +403,8 @@ if (MQTTSN_GEN_EMSCRIPTEN)
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DOPT_MODULARIZE=ON
-DOPT_EXTRA_INCLUDE_DIRS=${extra_includes_path_str}
-DOPT_USE_CCACHE=${MQTTSN_USE_CCACHE}
-DOPT_CCACHE_EXECUTABLE=${MQTTSN_CCACHE_EXECUTABLE}
)
endif ()
endif ()
Expand Down
4 changes: 3 additions & 1 deletion script/full_debug_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,16 @@ export BUILD_DIR="${ROOT_DIR}/build.full.${CC}"
export COMMON_INSTALL_DIR=${BUILD_DIR}/install
export COMMON_BUILD_TYPE=Debug
export EXTERNALS_DIR=${ROOT_DIR}/externals
export COMMON_USE_CCACHE=ON
mkdir -p ${BUILD_DIR}

${SCRIPT_DIR}/prepare_externals.sh

cd ${BUILD_DIR}
cmake .. -DCMAKE_INSTALL_PREFIX=${COMMON_INSTALL_DIR} \
-DCMAKE_BUILD_TYPE=Debug -DMQTTSN_GEN_TEST=ON -DMQTTSN_BUILD_PROT_DOC=ON \
-DMQTTSN_GEN_TOOLS=ON -DMQTTSN_GEN_SWIG=ON -DMQTTSN_GEN_EMSCRIPTEN=ON "$@"
-DMQTTSN_GEN_TOOLS=ON -DMQTTSN_GEN_SWIG=ON -DMQTTSN_GEN_EMSCRIPTEN=ON \
-DMQTTSN_USE_CCACHE=ON "$@"

procs=$(nproc)
if [ -n "${procs}" ]; then
Expand Down
6 changes: 6 additions & 0 deletions script/prepare_externals.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
# COMMON_CXX_STANDARD - (Optional) CMake C++ standard
# COMMON_CMAKE_GENERATOR - (Optional) CMake generator
# COMMON_CMAKE_PLATFORM - (Optional) CMake platform
# COMMON_USE_CCACHE - (Optional) Common "use ccache" parameter
# COMMON_CCACHE_EXECUTABLE - (Optional) Common ccache executable

#####################################

Expand Down Expand Up @@ -141,6 +143,8 @@ function build_commsdsl() {
CC=${CC_COMMSDSL} CXX=${CXX_COMMSDSL} cmake \
-S ${COMMSDSL_SRC_DIR} -B ${COMMSDSL_BUILD_DIR} \
-DCMAKE_INSTALL_PREFIX=${COMMSDSL_INSTALL_DIR} -DCMAKE_BUILD_TYPE=${COMMON_BUILD_TYPE} \
${COMMON_USE_CCACHE:+"-DCOMMSDSL_USE_CCACHE=${COMMON_USE_CCACHE}"} \
${COMMON_CCACHE_EXECUTABLE:+"-DCOMMSDSL_CCACHE_EXECUTABLE=${COMMON_CCACHE_EXECUTABLE}"} \
-DCOMMSDSL_INSTALL_LIBRARY=OFF -DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON \
-DCOMMSDSL_BUILD_COMMSDSL2SWIG=ON -DCOMMSDSL_BUILD_COMMSDSL2EMSCRIPTEN=ON
cmake --build ${COMMSDSL_BUILD_DIR} --config ${COMMON_BUILD_TYPE} --target install ${procs_param}
Expand Down Expand Up @@ -172,6 +176,8 @@ function build_cc_tools_qt() {
cmake \
${COMMON_CMAKE_GENERATOR:+"-G ${COMMON_CMAKE_GENERATOR}"} ${COMMON_CMAKE_PLATFORM:+"-A ${COMMON_CMAKE_PLATFORM}"} \
-S ${CC_TOOLS_QT_SRC_DIR} -B ${CC_TOOLS_QT_BUILD_DIR} -DCMAKE_INSTALL_PREFIX=${CC_TOOLS_QT_INSTALL_DIR} \
${COMMON_USE_CCACHE:+"-DCC_TOOLS_QT_USE_CCACHE=${COMMON_USE_CCACHE}"} \
${COMMON_CCACHE_EXECUTABLE:+"-DCC_TOOLS_QT_CCACHE_EXECUTABLE=${COMMON_CCACHE_EXECUTABLE}"} \
-DCMAKE_BUILD_TYPE=${COMMON_BUILD_TYPE} -DCC_TOOLS_QT_BUILD_APPS=OFF -DCMAKE_PREFIX_PATH=${COMMS_INSTALL_DIR} \
-DCMAKE_CXX_STANDARD=${COMMON_CXX_STANDARD} ${CC_TOOLS_QT_VERSION_OPT}
cmake --build ${CC_TOOLS_QT_BUILD_DIR} --config ${COMMON_BUILD_TYPE} --target install ${procs_param}
Expand Down

0 comments on commit 8a69277

Please sign in to comment.