From: R43Qi8krC Date: Thu, 29 May 2025 09:41:24 +0000 (+0800) Subject: feat: Support -x cu and -x cuda in Clang CUDA mode (#1593) X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8653c92d091679e0ca4042cbabc6aec149c91a07;p=thirdparty%2Fccache.git feat: Support -x cu and -x cuda in Clang CUDA mode (#1593) --- diff --git a/src/ccache/ccache.cpp b/src/ccache/ccache.cpp index bbc95267..dce33220 100644 --- a/src/ccache/ccache.cpp +++ b/src/ccache/ccache.cpp @@ -1388,7 +1388,8 @@ get_result_key_from_cpp(Context& ctx, Args& args, Hash& hash) // Therefore, caching is disabled in this scenario. // (Is there a better approach to handle this?) const bool is_clang_cu = ctx.config.is_compiler_group_clang() - && ctx.args_info.actual_language == "cu" + && (ctx.args_info.actual_language == "cu" + || ctx.args_info.actual_language == "cuda") && !get_clang_cu_enable_verbose_mode(args); const bool capture_stdout = is_clang_cu; diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index e5c06dff..b3139392 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -24,6 +24,7 @@ addtest(base) addtest(basedir) addtest(cache_levels) addtest(clang_cu) +addtest(clang_cu_alias) addtest(clang_cu_direct) addtest(clang_cu_nocpp2) addtest(cleanup) diff --git a/test/suites/clang_cu.bash b/test/suites/clang_cu.bash index cf297ea5..a6b35025 100644 --- a/test/suites/clang_cu.bash +++ b/test/suites/clang_cu.bash @@ -4,6 +4,10 @@ setup_clang() { local CUDA_PATH="--cuda-path=$CUDA_HOME" fi + if [ -z "$CLANG_CU_LANG_TYPE" ]; then + export CLANG_CU_LANG_TYPE="cu" + fi + export REAL_CLANG="clang $CUDA_PATH" } @@ -65,7 +69,7 @@ clang_cu_tests() { setup_clang clang_opts_cpp="-c -x c++" - clang_opts_cuda="-c -x cu" + clang_opts_cuda="-c -x $CLANG_CU_LANG_TYPE" clang_opts_gpu1="--cuda-gpu-arch=sm_50" clang_opts_gpu2="--cuda-gpu-arch=sm_75" ccache_clang_cpp="$CCACHE $REAL_CLANG $clang_opts_cpp" diff --git a/test/suites/clang_cu_alias.bash b/test/suites/clang_cu_alias.bash new file mode 100644 index 00000000..335365a9 --- /dev/null +++ b/test/suites/clang_cu_alias.bash @@ -0,0 +1,13 @@ +SUITE_clang_cu_alias_PROBE() { + clang_cu_PROBE +} + +SUITE_clang_cu_alias_SETUP() { + export CLANG_CU_LANG_TYPE="cuda" + + clang_cu_SETUP +} + +SUITE_clang_cu_alias() { + clang_cu_tests +} diff --git a/test/suites/clang_cu_direct.bash b/test/suites/clang_cu_direct.bash index 7d750f1f..4f98303e 100644 --- a/test/suites/clang_cu_direct.bash +++ b/test/suites/clang_cu_direct.bash @@ -12,7 +12,7 @@ SUITE_clang_cu_direct() { setup_clang clang_opts_cpp="-c -x c++" - clang_opts_cuda="-c -x cu" + clang_opts_cuda="-c -x $CLANG_CU_LANG_TYPE" clang_opts_gpu1="--cuda-gpu-arch=sm_50" clang_opts_gpu2="--cuda-gpu-arch=sm_75" ccache_clang_cpp="$CCACHE $REAL_CLANG $clang_opts_cpp"