Refactor: introduce method cmGeneratorTarget::GetFilePostfix
This commit is contained in:
parent
3ee16ef31b
commit
1f4c9aa7d2
@ -491,6 +491,22 @@ std::string cmGeneratorTarget::GetFileSuffix(
|
||||
return suffix;
|
||||
}
|
||||
|
||||
std::string cmGeneratorTarget::GetFilePostfix(const std::string& config) const
|
||||
{
|
||||
const char* postfix = nullptr;
|
||||
if (!config.empty()) {
|
||||
std::string configProp = cmSystemTools::UpperCase(config);
|
||||
configProp += "_POSTFIX";
|
||||
postfix = this->GetProperty(configProp);
|
||||
// Mac application bundles and frameworks have no postfix.
|
||||
if (!this->IsImported() && postfix &&
|
||||
(this->IsAppBundleOnApple() || this->IsFrameworkOnApple())) {
|
||||
postfix = nullptr;
|
||||
}
|
||||
}
|
||||
return postfix ? postfix : std::string();
|
||||
}
|
||||
|
||||
const char* cmGeneratorTarget::GetFilePrefixInternal(
|
||||
cmStateEnums::ArtifactType artifact, const std::string& language) const
|
||||
{
|
||||
@ -3930,17 +3946,7 @@ void cmGeneratorTarget::GetFullNameInternal(
|
||||
}
|
||||
|
||||
// Compute the full name for main target types.
|
||||
const char* configPostfix = nullptr;
|
||||
if (!config.empty()) {
|
||||
std::string configProp = cmSystemTools::UpperCase(config);
|
||||
configProp += "_POSTFIX";
|
||||
configPostfix = this->GetProperty(configProp);
|
||||
// Mac application bundles and frameworks have no postfix.
|
||||
if (configPostfix &&
|
||||
(this->IsAppBundleOnApple() || this->IsFrameworkOnApple())) {
|
||||
configPostfix = nullptr;
|
||||
}
|
||||
}
|
||||
const std::string configPostfix = this->GetFilePostfix(config);
|
||||
|
||||
// frameworks have directory prefix but no suffix
|
||||
std::string fw_prefix;
|
||||
@ -3965,7 +3971,7 @@ void cmGeneratorTarget::GetFullNameInternal(
|
||||
outBase += this->GetOutputName(config, artifact);
|
||||
|
||||
// Append the per-configuration postfix.
|
||||
outBase += configPostfix ? configPostfix : "";
|
||||
outBase += configPostfix;
|
||||
|
||||
// Name shared libraries with their version number on some platforms.
|
||||
if (const char* soversion = this->GetProperty("SOVERSION")) {
|
||||
|
@ -543,6 +543,9 @@ public:
|
||||
cmStateEnums::ArtifactType artifact =
|
||||
cmStateEnums::RuntimeBinaryArtifact) const;
|
||||
|
||||
/** Get target file postfix */
|
||||
std::string GetFilePostfix(const std::string& config) const;
|
||||
|
||||
/** Clears cached meta data for local and external source files.
|
||||
* The meta data will be recomputed on demand.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user