diff options
author | Brad King <brad.king@kitware.com> | 2023-09-25 19:12:14 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-09-25 20:06:36 (GMT) |
commit | e43918b4caf8de881cb24a0a7494e086202cff34 (patch) | |
tree | 5712d13ab722a6914ed2e5433eaa7739034f6cca /Source/cmCoreTryCompile.cxx | |
parent | 479450512253e904c077c5e77fc04bc916466930 (diff) | |
download | CMake-e43918b4caf8de881cb24a0a7494e086202cff34.zip CMake-e43918b4caf8de881cb24a0a7494e086202cff34.tar.gz CMake-e43918b4caf8de881cb24a0a7494e086202cff34.tar.bz2 |
HIP: Fix linking mixed-lang binary with CXX compiler and Makefile generators
Following commit 6377a43814 (CUDA: Support response files with nvcc,
2022-06-01, v3.25.0-rc1~636^2), while determining the compiler ABI, do
not use response files, so that we can extract implicit link flags.
Fixes: #25272
Diffstat (limited to 'Source/cmCoreTryCompile.cxx')
-rw-r--r-- | Source/cmCoreTryCompile.cxx | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx index 0674d5a..ee40bd5 100644 --- a/Source/cmCoreTryCompile.cxx +++ b/Source/cmCoreTryCompile.cxx @@ -732,10 +732,16 @@ cm::optional<cmTryCompileResult> cmCoreTryCompile::TryCompileCode( // The link and compile lines for ABI detection step need to not use // response files so we can extract implicit includes given to // the underlying host compiler - if (testLangs.find("CUDA") != testLangs.end()) { - fprintf(fout, "set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_INCLUDES OFF)\n"); - fprintf(fout, "set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES OFF)\n"); - fprintf(fout, "set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_OBJECTS OFF)\n"); + static std::array<std::string, 2> const noRSP{ { "CUDA", "HIP" } }; + for (std::string const& lang : noRSP) { + if (testLangs.find(lang) != testLangs.end()) { + fprintf(fout, "set(CMAKE_%s_USE_RESPONSE_FILE_FOR_INCLUDES OFF)\n", + lang.c_str()); + fprintf(fout, "set(CMAKE_%s_USE_RESPONSE_FILE_FOR_LIBRARIES OFF)\n", + lang.c_str()); + fprintf(fout, "set(CMAKE_%s_USE_RESPONSE_FILE_FOR_OBJECTS OFF)\n", + lang.c_str()); + } } } fprintf(fout, "set(CMAKE_VERBOSE_MAKEFILE 1)\n"); |