CUDA, HIP: Revert false support for LINKER_LAUNCHER The implementation in commits 77312cc6 (CUDA: Add support for [CMAKE_]CUDA_LINKER_LAUNCHER, 2025-05-30, v4.1.0-rc1~80^2~1) and cdf2a36f (HIP: Add support for [CMAKE_]HIP_LINKER_LAUNCHER, 2025-05-30, v4.1.0-rc1~80^2) is broken, and the tests are wrongly configured so as to never actually run. Revert the entire feature to avoid future confusion, including documented support. Enable the test for Fortran, which was added but untested by commit d176a8c5ce (Fortran: Add support for [CMAKE_]Fortran_LINKER_LAUNCHER, 2025-05-26, v4.1.0-rc1~96^2), and whose implementation works. Issue: #26967
diff --git a/Help/prop_tgt/LANG_LINKER_LAUNCHER.rst b/Help/prop_tgt/LANG_LINKER_LAUNCHER.rst index 875cf74..1669504 100644 --- a/Help/prop_tgt/LANG_LINKER_LAUNCHER.rst +++ b/Help/prop_tgt/LANG_LINKER_LAUNCHER.rst
@@ -6,25 +6,13 @@ This property is implemented only when ``<LANG>`` is one of: * ``C`` - * ``CXX`` - -* ``CUDA`` - - .. versionadded:: 4.1 - * ``OBJC`` - * ``OBJCXX`` - * ``Fortran`` .. versionadded:: 4.1 -* ``HIP`` - - .. versionadded:: 4.1 - Specify a :ref:`semicolon-separated list <CMake Language Lists>` containing a command line for a linker launching tool. The :ref:`Makefile Generators` and the :generator:`Ninja` generator will run this tool and pass the linker and its
diff --git a/Help/release/4.1.rst b/Help/release/4.1.rst index 7b69e0a..811ae21 100644 --- a/Help/release/4.1.rst +++ b/Help/release/4.1.rst
@@ -21,7 +21,7 @@ ---------- * :ref:`Makefile Generators` and :ref:`Ninja Generators` gained support - for adding a linker launcher with ``Fortran``, ``CUDA``, and ``HIP``. + for adding a linker launcher with ``Fortran``. See the :variable:`CMAKE_<LANG>_LINKER_LAUNCHER` variable and :prop_tgt:`<LANG>_LINKER_LAUNCHER` target property for details.
diff --git a/Help/variable/CMAKE_LANG_LINKER_LAUNCHER.rst b/Help/variable/CMAKE_LANG_LINKER_LAUNCHER.rst index d51951a..a9997f0 100644 --- a/Help/variable/CMAKE_LANG_LINKER_LAUNCHER.rst +++ b/Help/variable/CMAKE_LANG_LINKER_LAUNCHER.rst
@@ -11,10 +11,6 @@ * ``CXX`` -* ``CUDA`` - - .. versionadded:: 4.1 - * ``OBJC`` * ``OBJCXX`` @@ -23,9 +19,5 @@ .. versionadded:: 4.1 -* ``HIP`` - - .. versionadded:: 4.1 - This variable is initialized to the :envvar:`CMAKE_<LANG>_LINKER_LAUNCHER` environment variable if it is set.
diff --git a/Modules/CMakeCUDAInformation.cmake b/Modules/CMakeCUDAInformation.cmake index 70a0e71..bc47aa1 100644 --- a/Modules/CMakeCUDAInformation.cmake +++ b/Modules/CMakeCUDAInformation.cmake
@@ -75,11 +75,6 @@ CACHE STRING "Compiler launcher for CUDA.") endif() -if(NOT CMAKE_CUDA_LINKER_LAUNCHER AND DEFINED ENV{CMAKE_CUDA_LINKER_LAUNCHER}) - set(CMAKE_CUDA_LINKER_LAUNCHER "$ENV{CMAKE_CUDA_LINKER_LAUNCHER}" - CACHE STRING "Linker launcher for CUDA.") -endif() - include(CMakeCommonLanguageInclude) _cmake_common_language_platform_flags(CUDA)
diff --git a/Modules/CMakeHIPInformation.cmake b/Modules/CMakeHIPInformation.cmake index e8d0232..a141b4c 100644 --- a/Modules/CMakeHIPInformation.cmake +++ b/Modules/CMakeHIPInformation.cmake
@@ -55,11 +55,6 @@ CACHE STRING "Compiler launcher for HIP.") endif() -if(NOT CMAKE_HIP_LINKER_LAUNCHER AND DEFINED ENV{CMAKE_HIP_LINKER_LAUNCHER}) - set(CMAKE_HIP_LINKER_LAUNCHER "$ENV{CMAKE_HIP_LINKER_LAUNCHER}" - CACHE STRING "Linker launcher for HIP.") -endif() - include(CMakeCommonLanguageInclude) _cmake_common_language_platform_flags(HIP)
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index a1f69cd..8eeecad 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx
@@ -458,11 +458,9 @@ // ---- C++ { "CXX_LINKER_LAUNCHER"_s, IC::CanCompileSources }, // ---- CUDA - { "CUDA_LINKER_LAUNCHER"_s, IC::CanCompileSources }, { "CUDA_RESOLVE_DEVICE_SYMBOLS"_s, IC::CanCompileSources }, { "CUDA_RUNTIME_LIBRARY"_s, IC::CanCompileSources }, // ---- HIP - { "HIP_LINKER_LAUNCHER"_s, IC::CanCompileSources }, { "HIP_RUNTIME_LIBRARY"_s, IC::CanCompileSources }, // ---- Objective C { "OBJC_LINKER_LAUNCHER"_s, IC::CanCompileSources },
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index e6f0148..bf1f31c 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt
@@ -1298,29 +1298,33 @@ -DPSEUDO_CPPCHECK=$<TARGET_FILE:pseudo_cppcheck> ) + add_RunCMake_test(ctest_labels_for_subprojects) + add_RunCMake_test(CompilerArgs) + + # Enable supported languages for {Compiler,Linker}Launcher. + if(DEFINED CMake_TEST_OBJC) + list(APPEND LauncherCommon_ARGS -DCMake_TEST_OBJC=${CMake_TEST_OBJC}) + endif() + if(CMAKE_Fortran_COMPILER) + list(APPEND LauncherCommon_ARGS -DCMake_TEST_Fortran=1) + endif() + set(CompilerLauncher_ARGS ${LauncherCommon_ARGS}) + set(LinkerLauncher_ARGS ${LauncherCommon_ARGS}) + if(DEFINED CMake_TEST_ISPC) + list(APPEND CompilerLauncher_ARGS -DCMake_TEST_ISPC=${CMake_TEST_ISPC}) + endif() if(DEFINED CMake_TEST_CUDA) list(APPEND CompilerLauncher_ARGS -DCMake_TEST_CUDA=${CMake_TEST_CUDA}) endif() if(DEFINED CMake_TEST_HIP) list(APPEND CompilerLauncher_ARGS -DCMake_TEST_HIP=${CMake_TEST_HIP}) endif() - if(DEFINED CMake_TEST_ISPC) - list(APPEND CompilerLauncher_ARGS -DCMake_TEST_ISPC=${CMake_TEST_ISPC}) - endif() - if(DEFINED CMake_TEST_OBJC) - list(APPEND CompilerLauncher_ARGS -DCMake_TEST_OBJC=${CMake_TEST_OBJC}) - list(APPEND LinkerLauncher_ARGS -DCMake_TEST_OBJC=${CMake_TEST_OBJC}) - endif() - if(CMAKE_Fortran_COMPILER) - list(APPEND CompilerLauncher_ARGS -DCMake_TEST_Fortran=1) - endif() add_RunCMake_test(CompilerLauncher) set_property(TEST RunCMake.CompilerLauncher APPEND PROPERTY LABELS "CUDA" "HIP" "ISPC" "Fortran") - - add_RunCMake_test(ctest_labels_for_subprojects) - add_RunCMake_test(CompilerArgs) add_RunCMake_test(LinkerLauncher) + set_property(TEST RunCMake.LinkerLauncher APPEND + PROPERTY LABELS "Fortran") endif() set(cpack_tests
diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/CUDA-Build-stdout.txt deleted file mode 100644 index 3313e31..0000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-Build-stdout.txt +++ /dev/null
@@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1.*
diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-common.cmake b/Tests/RunCMake/LinkerLauncher/CUDA-common.cmake deleted file mode 100644 index ca25b2a..0000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-common.cmake +++ /dev/null
@@ -1,4 +0,0 @@ -cmake_policy(SET CMP0104 NEW) -enable_language(CUDA) -set(CMAKE_VERBOSE_MAKEFILE TRUE) -add_executable(main main.cu)
diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-env-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/CUDA-env-Build-stdout.txt deleted file mode 100644 index a6e8b0a..0000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-env-Build-stdout.txt +++ /dev/null
@@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1 TARGET_NAME=main LANGUAGE=CUDA.*
diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-env.cmake b/Tests/RunCMake/LinkerLauncher/CUDA-env.cmake deleted file mode 100644 index cefbe9e..0000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-env.cmake +++ /dev/null
@@ -1 +0,0 @@ -include(CUDA-common.cmake)
diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-launch-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/CUDA-launch-Build-stdout.txt deleted file mode 100644 index 3313e31..0000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-launch-Build-stdout.txt +++ /dev/null
@@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1.*
diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-launch-env-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/CUDA-launch-env-Build-stdout.txt deleted file mode 100644 index a6e8b0a..0000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-launch-env-Build-stdout.txt +++ /dev/null
@@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1 TARGET_NAME=main LANGUAGE=CUDA.*
diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-launch-env.cmake b/Tests/RunCMake/LinkerLauncher/CUDA-launch-env.cmake deleted file mode 100644 index d0d777a..0000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-launch-env.cmake +++ /dev/null
@@ -1,3 +0,0 @@ -set(CTEST_USE_LAUNCHERS 1) -include(CTestUseLaunchers) -include(CUDA-env.cmake)
diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-launch.cmake b/Tests/RunCMake/LinkerLauncher/CUDA-launch.cmake deleted file mode 100644 index 6b4b816..0000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-launch.cmake +++ /dev/null
@@ -1,3 +0,0 @@ -set(CTEST_USE_LAUNCHERS 1) -include(CTestUseLaunchers) -include(CUDA.cmake)
diff --git a/Tests/RunCMake/LinkerLauncher/CUDA.cmake b/Tests/RunCMake/LinkerLauncher/CUDA.cmake deleted file mode 100644 index 3ce1ef3..0000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA.cmake +++ /dev/null
@@ -1,2 +0,0 @@ -set(CMAKE_CUDA_LINKER_LAUNCHER "${CMAKE_COMMAND};-E;env;USED_LAUNCHER=1") -include(CUDA-common.cmake)
diff --git a/Tests/RunCMake/LinkerLauncher/HIP-common.cmake b/Tests/RunCMake/LinkerLauncher/HIP-common.cmake deleted file mode 100644 index 53ece78..0000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-common.cmake +++ /dev/null
@@ -1,5 +0,0 @@ -enable_language(HIP) -enable_language(CXX) -set(CMAKE_VERBOSE_MAKEFILE TRUE) - -add_executable(main main.hip)
diff --git a/Tests/RunCMake/LinkerLauncher/HIP-env-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/HIP-env-Build-stdout.txt deleted file mode 100644 index 354e317..0000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-env-Build-stdout.txt +++ /dev/null
@@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1 TARGET_NAME=main LANGUAGE=HIP.*
diff --git a/Tests/RunCMake/LinkerLauncher/HIP-env.cmake b/Tests/RunCMake/LinkerLauncher/HIP-env.cmake deleted file mode 100644 index 1bf56ce..0000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-env.cmake +++ /dev/null
@@ -1 +0,0 @@ -include(HIP-common.cmake)
diff --git a/Tests/RunCMake/LinkerLauncher/HIP-launch-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/HIP-launch-Build-stdout.txt deleted file mode 100644 index 3313e31..0000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-launch-Build-stdout.txt +++ /dev/null
@@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1.*
diff --git a/Tests/RunCMake/LinkerLauncher/HIP-launch-env-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/HIP-launch-env-Build-stdout.txt deleted file mode 100644 index 354e317..0000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-launch-env-Build-stdout.txt +++ /dev/null
@@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1 TARGET_NAME=main LANGUAGE=HIP.*
diff --git a/Tests/RunCMake/LinkerLauncher/HIP-launch-env.cmake b/Tests/RunCMake/LinkerLauncher/HIP-launch-env.cmake deleted file mode 100644 index 37985a5..0000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-launch-env.cmake +++ /dev/null
@@ -1,3 +0,0 @@ -set(CTEST_USE_LAUNCHERS 1) -include(CTestUseLaunchers) -include(HIP-env.cmake)
diff --git a/Tests/RunCMake/LinkerLauncher/HIP-launch.cmake b/Tests/RunCMake/LinkerLauncher/HIP-launch.cmake deleted file mode 100644 index 78fd16b..0000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-launch.cmake +++ /dev/null
@@ -1,3 +0,0 @@ -set(CTEST_USE_LAUNCHERS 1) -include(CTestUseLaunchers) -include(HIP.cmake)
diff --git a/Tests/RunCMake/LinkerLauncher/HIP.cmake b/Tests/RunCMake/LinkerLauncher/HIP.cmake deleted file mode 100644 index 32a750b..0000000 --- a/Tests/RunCMake/LinkerLauncher/HIP.cmake +++ /dev/null
@@ -1,2 +0,0 @@ -set(CMAKE_HIP_LINKER_LAUNCHER "${CMAKE_COMMAND};-E;env;USED_LAUNCHER=1") -include(HIP-common.cmake)
diff --git a/Tests/RunCMake/LinkerLauncher/RunCMakeTest.cmake b/Tests/RunCMake/LinkerLauncher/RunCMakeTest.cmake index b63a1a7..67f32e8 100644 --- a/Tests/RunCMake/LinkerLauncher/RunCMakeTest.cmake +++ b/Tests/RunCMake/LinkerLauncher/RunCMakeTest.cmake
@@ -27,15 +27,9 @@ endfunction() set(langs C CXX) -if(CMake_TEST_CUDA) - list(APPEND langs CUDA) -endif() if(CMake_TEST_Fortran) list(APPEND langs Fortran) endif() -if(CMake_TEST_HIP) - list(APPEND langs HIP) -endif() if(CMake_TEST_OBJC) list(APPEND langs OBJC OBJCXX) endif()
diff --git a/Tests/RunCMake/LinkerLauncher/main.cu b/Tests/RunCMake/LinkerLauncher/main.cu deleted file mode 100644 index f8b643a..0000000 --- a/Tests/RunCMake/LinkerLauncher/main.cu +++ /dev/null
@@ -1,4 +0,0 @@ -int main() -{ - return 0; -}
diff --git a/Tests/RunCMake/LinkerLauncher/main.hip b/Tests/RunCMake/LinkerLauncher/main.hip deleted file mode 100644 index f8b643a..0000000 --- a/Tests/RunCMake/LinkerLauncher/main.hip +++ /dev/null
@@ -1,4 +0,0 @@ -int main() -{ - return 0; -}