cmLocalGenerator: Add GetStaticLibraryFlags overload with backtraces

This commit is contained in:
Justin Goshi
2019-09-03 10:25:44 -07:00
committed by Brad King
parent 1f6a436bf4
commit 4d5bbb7704
2 changed files with 26 additions and 4 deletions

View File

@@ -1148,8 +1148,18 @@ void cmLocalGenerator::GetStaticLibraryFlags(std::string& flags,
std::string const& linkLanguage,
cmGeneratorTarget* target)
{
std::string staticLibFlags;
std::vector<BT<std::string>> tmpFlags =
this->GetStaticLibraryFlags(config, linkLanguage, target);
this->AppendFlags(flags, tmpFlags);
}
std::vector<BT<std::string>> cmLocalGenerator::GetStaticLibraryFlags(
std::string const& config, std::string const& linkLanguage,
cmGeneratorTarget* target)
{
std::vector<BT<std::string>> flags;
if (linkLanguage != "Swift") {
std::string staticLibFlags;
this->AppendFlags(
staticLibFlags,
this->Makefile->GetSafeDefinition("CMAKE_STATIC_LINKER_FLAGS"));
@@ -1158,7 +1168,12 @@ void cmLocalGenerator::GetStaticLibraryFlags(std::string& flags,
this->AppendFlags(staticLibFlags,
this->Makefile->GetSafeDefinition(name));
}
if (!staticLibFlags.empty()) {
flags.emplace_back(std::move(staticLibFlags));
}
}
std::string staticLibFlags;
this->AppendFlags(staticLibFlags,
target->GetSafeProperty("STATIC_LIBRARY_FLAGS"));
if (!config.empty()) {
@@ -1166,12 +1181,16 @@ void cmLocalGenerator::GetStaticLibraryFlags(std::string& flags,
this->AppendFlags(staticLibFlags, target->GetSafeProperty(name));
}
flags = std::move(staticLibFlags);
if (!staticLibFlags.empty()) {
flags.emplace_back(std::move(staticLibFlags));
}
std::vector<std::string> staticLibOpts;
target->GetStaticLibraryLinkOptions(staticLibOpts, config, linkLanguage);
std::vector<BT<std::string>> staticLibOpts =
target->GetStaticLibraryLinkOptions(config, linkLanguage);
// STATIC_LIBRARY_OPTIONS are escaped.
this->AppendCompileOptions(flags, staticLibOpts);
return flags;
}
void cmLocalGenerator::GetTargetFlags(

View File

@@ -371,6 +371,9 @@ public:
void GetStaticLibraryFlags(std::string& flags, std::string const& config,
std::string const& linkLanguage,
cmGeneratorTarget* target);
std::vector<BT<std::string>> GetStaticLibraryFlags(
std::string const& config, std::string const& linkLanguage,
cmGeneratorTarget* target);
/** Fill out these strings for the given target. Libraries to link,
* flags, and linkflags. */