]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
feat: Support -x cu and -x cuda in Clang CUDA mode (#1593)
authorR43Qi8krC <w169q169@gmail.com>
Thu, 29 May 2025 09:41:24 +0000 (17:41 +0800)
committerGitHub <noreply@github.com>
Thu, 29 May 2025 09:41:24 +0000 (11:41 +0200)
src/ccache/ccache.cpp
test/CMakeLists.txt
test/suites/clang_cu.bash
test/suites/clang_cu_alias.bash [new file with mode: 0644]
test/suites/clang_cu_direct.bash

index bbc9526719e29cbea40d5590f27fb793df4f6c03..dce332203aecac02cb8cd7c459a8e7efc62ee4a2 100644 (file)
@@ -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;
index e5c06dfffab2ad6eadc8aadafa1f13e063f9a85e..b3139392d797681fbaf5eb96be458ebba15dd1b5 100644 (file)
@@ -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)
index cf297ea53a1e37accda9f6a4f5679c768851c890..a6b35025b148cc7a49526666e4648f717d1923c7 100644 (file)
@@ -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 (file)
index 0000000..335365a
--- /dev/null
@@ -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
+}
index 7d750f1f546fcdad01dfb67196388d21bb9650aa..4f98303e780e8cdfdd87c24caa66501f65df9078 100644 (file)
@@ -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"