mirror of
https://github.com/reactos/CMake.git
synced 2025-03-05 10:27:06 +00:00
Merge topic 'cuda-external'
7b74213461 CUDA: Fix crash on linking to a CUDA target without CUDA enabled Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2704
This commit is contained in:
commit
0780a8f57a
@ -84,6 +84,10 @@ void cmMakefileExecutableTargetGenerator::WriteDeviceExecutableRule(
|
||||
bool relink)
|
||||
{
|
||||
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||
if (!this->GlobalGenerator->GetLanguageEnabled("CUDA")) {
|
||||
return;
|
||||
}
|
||||
|
||||
const std::string cuda_lang("CUDA");
|
||||
cmGeneratorTarget::LinkClosure const* closure =
|
||||
this->GeneratorTarget->GetLinkClosure(this->ConfigName);
|
||||
|
@ -557,6 +557,10 @@ std::vector<std::string> cmNinjaNormalTargetGenerator::ComputeLinkCmd()
|
||||
|
||||
void cmNinjaNormalTargetGenerator::WriteDeviceLinkStatement()
|
||||
{
|
||||
if (!this->GetGlobalGenerator()->GetLanguageEnabled("CUDA")) {
|
||||
return;
|
||||
}
|
||||
|
||||
cmGeneratorTarget& genTarget = *this->GetGeneratorTarget();
|
||||
|
||||
// determine if we need to do any device linking for this target
|
||||
|
@ -3319,7 +3319,8 @@ bool cmVisualStudio10TargetGenerator::ComputeLinkOptions(
|
||||
std::vector<std::string> vsTargetVec;
|
||||
this->AddLibraries(cli, libVec, vsTargetVec, config);
|
||||
if (std::find(linkClosure->Languages.begin(), linkClosure->Languages.end(),
|
||||
"CUDA") != linkClosure->Languages.end()) {
|
||||
"CUDA") != linkClosure->Languages.end() &&
|
||||
this->CudaOptions[config] != nullptr) {
|
||||
switch (this->CudaOptions[config]->GetCudaRuntime()) {
|
||||
case cmVisualStudioGeneratorOptions::CudaRuntimeStatic:
|
||||
libVec.push_back("cudadevrt.lib");
|
||||
|
8
Tests/RunCMake/Languages/ExternalCUDA.cmake
Normal file
8
Tests/RunCMake/Languages/ExternalCUDA.cmake
Normal file
@ -0,0 +1,8 @@
|
||||
enable_language(C)
|
||||
|
||||
add_library(ext_cuda IMPORTED STATIC)
|
||||
set_property(TARGET ext_cuda PROPERTY IMPORTED_LOCATION "/does_not_exist")
|
||||
set_property(TARGET ext_cuda PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CUDA")
|
||||
|
||||
add_executable(main empty.c)
|
||||
target_link_libraries(main ext_cuda)
|
@ -6,3 +6,5 @@ run_cmake(link-libraries-TARGET_FILE-genex)
|
||||
run_cmake(link-libraries-TARGET_FILE-genex-ok)
|
||||
|
||||
run_cmake(DetermineFail)
|
||||
|
||||
run_cmake(ExternalCUDA)
|
||||
|
0
Tests/RunCMake/Languages/empty.c
Normal file
0
Tests/RunCMake/Languages/empty.c
Normal file
Loading…
x
Reference in New Issue
Block a user