私は次のことをやりたいです: CCacheがPATHに存在する場合はコンパイルに「ccache g++」を使用し、そうでない場合はg++を使用します。私は小さなmy-cmakeスクリプトを書いてみました。
CC="ccache gcc" CXX="ccache g++" cmake $*
しかし、動作していないようです (make を実行しても ccache は使用されません。CMAKE_VERBOSE_MAKEFILE をオンにしてこれを確認しました)。
アップデート:
に従ってこのリンクスクリプトを次のように変更してみました
cmake -D CMAKE_CXX_COMPILER="ccache" -D CMAKE_CXX_COMPILER_ARG1="g++" -D CMAKE_C_COMPILER="ccache" -D CMAKE_C_COMPILER_ARG1="gcc" $*
しかし、cmake は、コンパイラの ccache の使用時にテストが失敗したというエラーを出して終了します (これは予想どおりです)。
ベストアンサー1
CMake 3.4 以降では次の操作を実行できます。
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
参照:https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_LAUNCHER.html
CMake 3.17 以降では、env 変数も使用できます。
export CMAKE_CXX_COMPILER_LAUNCHER=ccache
cmake -S ... -B ...
参照:https://cmake.org/cmake/help/latest/envvar/CMAKE_LANG_COMPILER_LAUNCHER.html