mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-05 13:50:10 -05:00
CUDA: Allow sources to be compiled to .ptx files
When the target property `CUDA_PTX_COMPILATION` is enabled CUDA OBJECT libraries will generate ptx files instead of object files.
This commit is contained in:
committed by
Brad King
parent
44f0d2d991
commit
23691d789e
@@ -32,6 +32,7 @@ void cmLocalVisualStudioGenerator::ComputeObjectFilenames(
|
||||
std::map<cmSourceFile const*, std::string>& mapping,
|
||||
cmGeneratorTarget const* gt)
|
||||
{
|
||||
char const* custom_ext = gt->GetCustomObjectExtension();
|
||||
std::string dir_max = this->ComputeLongestObjectDirectory(gt);
|
||||
|
||||
// Count the number of object files with each name. Note that
|
||||
@@ -44,7 +45,12 @@ void cmLocalVisualStudioGenerator::ComputeObjectFilenames(
|
||||
cmSourceFile const* sf = si->first;
|
||||
std::string objectNameLower = cmSystemTools::LowerCase(
|
||||
cmSystemTools::GetFilenameWithoutLastExtension(sf->GetFullPath()));
|
||||
objectNameLower += this->GlobalGenerator->GetLanguageOutputExtension(*sf);
|
||||
if (custom_ext) {
|
||||
objectNameLower += custom_ext;
|
||||
} else {
|
||||
objectNameLower +=
|
||||
this->GlobalGenerator->GetLanguageOutputExtension(*sf);
|
||||
}
|
||||
counts[objectNameLower] += 1;
|
||||
}
|
||||
|
||||
@@ -57,10 +63,16 @@ void cmLocalVisualStudioGenerator::ComputeObjectFilenames(
|
||||
cmSourceFile const* sf = si->first;
|
||||
std::string objectName =
|
||||
cmSystemTools::GetFilenameWithoutLastExtension(sf->GetFullPath());
|
||||
objectName += this->GlobalGenerator->GetLanguageOutputExtension(*sf);
|
||||
if (custom_ext) {
|
||||
objectName += custom_ext;
|
||||
} else {
|
||||
objectName += this->GlobalGenerator->GetLanguageOutputExtension(*sf);
|
||||
}
|
||||
if (counts[cmSystemTools::LowerCase(objectName)] > 1) {
|
||||
const_cast<cmGeneratorTarget*>(gt)->AddExplicitObjectName(sf);
|
||||
objectName = this->GetObjectFileNameWithoutTarget(*sf, dir_max);
|
||||
bool keptSourceExtension;
|
||||
objectName = this->GetObjectFileNameWithoutTarget(
|
||||
*sf, dir_max, &keptSourceExtension, custom_ext);
|
||||
}
|
||||
si->second = objectName;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user