diff options
Diffstat (limited to 'Source/cmTarget.cxx')
-rw-r--r-- | Source/cmTarget.cxx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 32c16880ea..6c9197c1a7 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -2709,6 +2709,21 @@ void cmTarget::GetFullNameInternal(const char* config, const char* prefixVar = this->GetPrefixVariableInternal(implib); const char* suffixVar = this->GetSuffixVariableInternal(implib); + // Check for language-specific default prefix and suffix. + if(const char* ll = this->GetLinkerLanguage(config)) + { + if(!targetSuffix && suffixVar && *suffixVar) + { + std::string langSuff = suffixVar + std::string("_") + ll; + targetSuffix = this->Makefile->GetDefinition(langSuff.c_str()); + } + if(!targetPrefix && prefixVar && *prefixVar) + { + std::string langPrefix = prefixVar + std::string("_") + ll; + targetPrefix = this->Makefile->GetDefinition(langPrefix.c_str()); + } + } + // if there is no prefix on the target use the cmake definition if(!targetPrefix && prefixVar) { |