cmLocalGenerator: Use cmStrCat

Grep for '[A-Z]_";' to find places that could benefit from cmStrCat.
This commit is contained in:
Regina Pfeifer
2019-08-09 10:58:00 +02:00
parent 242435a9c8
commit 62659100aa

View File

@@ -745,12 +745,10 @@ std::string cmLocalGenerator::GetIncludeFlags(
OutputFormat shellFormat = forResponseFile ? RESPONSE : SHELL; OutputFormat shellFormat = forResponseFile ? RESPONSE : SHELL;
std::ostringstream includeFlags; std::ostringstream includeFlags;
std::string flagVar = "CMAKE_INCLUDE_FLAG_"; std::string const& includeFlag =
flagVar += lang; this->Makefile->GetSafeDefinition(cmStrCat("CMAKE_INCLUDE_FLAG_", lang));
std::string const& includeFlag = this->Makefile->GetSafeDefinition(flagVar); const char* sep =
flagVar = "CMAKE_INCLUDE_FLAG_SEP_"; this->Makefile->GetDefinition(cmStrCat("CMAKE_INCLUDE_FLAG_SEP_", lang));
flagVar += lang;
const char* sep = this->Makefile->GetDefinition(flagVar);
bool quotePaths = false; bool quotePaths = false;
if (this->Makefile->GetDefinition("CMAKE_QUOTE_INCLUDE_PATHS")) { if (this->Makefile->GetDefinition("CMAKE_QUOTE_INCLUDE_PATHS")) {
quotePaths = true; quotePaths = true;
@@ -767,23 +765,16 @@ std::string cmLocalGenerator::GetIncludeFlags(
// Support special system include flag if it is available and the // Support special system include flag if it is available and the
// normal flag is repeated for each directory. // normal flag is repeated for each directory.
std::string sysFlagVar = "CMAKE_INCLUDE_SYSTEM_FLAG_";
sysFlagVar += lang;
const char* sysIncludeFlag = nullptr; const char* sysIncludeFlag = nullptr;
if (repeatFlag) { if (repeatFlag) {
sysIncludeFlag = this->Makefile->GetDefinition(sysFlagVar); sysIncludeFlag = this->Makefile->GetDefinition(
cmStrCat("CMAKE_INCLUDE_SYSTEM_FLAG_", lang));
} }
std::string fwSearchFlagVar = "CMAKE_"; const char* fwSearchFlag = this->Makefile->GetDefinition(
fwSearchFlagVar += lang; cmStrCat("CMAKE_", lang, "_FRAMEWORK_SEARCH_FLAG"));
fwSearchFlagVar += "_FRAMEWORK_SEARCH_FLAG"; const char* sysFwSearchFlag = this->Makefile->GetDefinition(
const char* fwSearchFlag = this->Makefile->GetDefinition(fwSearchFlagVar); cmStrCat("CMAKE_", lang, "_SYSTEM_FRAMEWORK_SEARCH_FLAG"));
std::string sysFwSearchFlagVar = "CMAKE_";
sysFwSearchFlagVar += lang;
sysFwSearchFlagVar += "_SYSTEM_FRAMEWORK_SEARCH_FLAG";
const char* sysFwSearchFlag =
this->Makefile->GetDefinition(sysFwSearchFlagVar);
bool flagUsed = false; bool flagUsed = false;
std::set<std::string> emitted; std::set<std::string> emitted;
@@ -793,9 +784,8 @@ std::string cmLocalGenerator::GetIncludeFlags(
for (std::string const& i : includes) { for (std::string const& i : includes) {
if (fwSearchFlag && *fwSearchFlag && this->Makefile->IsOn("APPLE") && if (fwSearchFlag && *fwSearchFlag && this->Makefile->IsOn("APPLE") &&
cmSystemTools::IsPathToFramework(i)) { cmSystemTools::IsPathToFramework(i)) {
std::string frameworkDir = i; std::string const frameworkDir =
frameworkDir += "/../"; cmSystemTools::CollapseFullPath(cmStrCat(i, "/../"));
frameworkDir = cmSystemTools::CollapseFullPath(frameworkDir);
if (emitted.insert(frameworkDir).second) { if (emitted.insert(frameworkDir).second) {
if (sysFwSearchFlag && target && if (sysFwSearchFlag && target &&
target->IsSystemIncludeDirectory(i, config, lang)) { target->IsSystemIncludeDirectory(i, config, lang)) {
@@ -963,10 +953,8 @@ std::vector<BT<std::string>> cmLocalGenerator::GetIncludeDirectoriesImplicit(
// These are intended to simulate additional implicit include directories. // These are intended to simulate additional implicit include directories.
std::vector<std::string> userStandardDirs; std::vector<std::string> userStandardDirs;
{ {
std::string key = "CMAKE_"; std::string const value = this->Makefile->GetSafeDefinition(
key += lang; cmStrCat("CMAKE_", lang, "_STANDARD_INCLUDE_DIRECTORIES"));
key += "_STANDARD_INCLUDE_DIRECTORIES";
std::string const value = this->Makefile->GetSafeDefinition(key);
cmSystemTools::ExpandListArgument(value, userStandardDirs); cmSystemTools::ExpandListArgument(value, userStandardDirs);
for (std::string& usd : userStandardDirs) { for (std::string& usd : userStandardDirs) {
cmSystemTools::ConvertToUnixSlashes(usd); cmSystemTools::ConvertToUnixSlashes(usd);
@@ -989,10 +977,9 @@ std::vector<BT<std::string>> cmLocalGenerator::GetIncludeDirectoriesImplicit(
// * Compilers like gfortran do not search their own implicit include // * Compilers like gfortran do not search their own implicit include
// directories for modules ('.mod' files). // directories for modules ('.mod' files).
if (lang != "Fortran") { if (lang != "Fortran") {
std::string key = "CMAKE_"; const char* value = this->Makefile->GetDefinition(
key += lang; cmStrCat("CMAKE_", lang, "_IMPLICIT_INCLUDE_DIRECTORIES"));
key += "_IMPLICIT_INCLUDE_DIRECTORIES"; if (value != nullptr) {
if (const char* value = this->Makefile->GetDefinition(key)) {
size_t const impDirVecOldSize = impDirVec.size(); size_t const impDirVecOldSize = impDirVec.size();
cmSystemTools::ExpandListArgument(value, impDirVec); cmSystemTools::ExpandListArgument(value, impDirVec);
// FIXME: Use cmRange with 'advance()' when it supports non-const. // FIXME: Use cmRange with 'advance()' when it supports non-const.
@@ -1210,9 +1197,8 @@ void cmLocalGenerator::GetTargetFlags(
linkFlags += " "; linkFlags += " ";
} }
if (!buildType.empty()) { if (!buildType.empty()) {
std::string configLinkFlags = "LINK_FLAGS_"; targetLinkFlags =
configLinkFlags += buildType; target->GetProperty(cmStrCat("LINK_FLAGS_", buildType));
targetLinkFlags = target->GetProperty(configLinkFlags);
if (targetLinkFlags) { if (targetLinkFlags) {
linkFlags += targetLinkFlags; linkFlags += targetLinkFlags;
linkFlags += " "; linkFlags += " ";
@@ -1234,9 +1220,8 @@ void cmLocalGenerator::GetTargetFlags(
this->Makefile->GetSafeDefinition("CMAKE_EXE_LINKER_FLAGS"); this->Makefile->GetSafeDefinition("CMAKE_EXE_LINKER_FLAGS");
linkFlags += " "; linkFlags += " ";
if (!buildType.empty()) { if (!buildType.empty()) {
std::string build = "CMAKE_EXE_LINKER_FLAGS_"; linkFlags += this->Makefile->GetSafeDefinition(
build += buildType; cmStrCat("CMAKE_EXE_LINKER_FLAGS_", buildType));
linkFlags += this->Makefile->GetSafeDefinition(build);
linkFlags += " "; linkFlags += " ";
} }
if (linkLanguage.empty()) { if (linkLanguage.empty()) {
@@ -1257,11 +1242,8 @@ void cmLocalGenerator::GetTargetFlags(
} }
if (target->IsExecutableWithExports()) { if (target->IsExecutableWithExports()) {
std::string exportFlagVar = "CMAKE_EXE_EXPORTS_"; linkFlags += this->Makefile->GetSafeDefinition(
exportFlagVar += linkLanguage; cmStrCat("CMAKE_EXE_EXPORTS_", linkLanguage, "_FLAG"));
exportFlagVar += "_FLAG";
linkFlags += this->Makefile->GetSafeDefinition(exportFlagVar);
linkFlags += " "; linkFlags += " ";
} }
} }
@@ -1293,9 +1275,8 @@ void cmLocalGenerator::GetTargetFlags(
linkFlags += " "; linkFlags += " ";
} }
if (!buildType.empty()) { if (!buildType.empty()) {
std::string configLinkFlags = "LINK_FLAGS_"; targetLinkFlags =
configLinkFlags += buildType; target->GetProperty(cmStrCat("LINK_FLAGS_", buildType));
targetLinkFlags = target->GetProperty(configLinkFlags);
if (targetLinkFlags) { if (targetLinkFlags) {
linkFlags += targetLinkFlags; linkFlags += targetLinkFlags;
linkFlags += " "; linkFlags += " ";
@@ -1470,20 +1451,12 @@ void cmLocalGenerator::OutputLinkLibraries(
} }
// Add standard libraries for this language. // Add standard libraries for this language.
std::string standardLibsVar = "CMAKE_"; std::string stdLibString = this->Makefile->GetSafeDefinition(
standardLibsVar += cli.GetLinkLanguage(); cmStrCat("CMAKE_", cli.GetLinkLanguage(), "_STANDARD_LIBRARIES"));
standardLibsVar += "_STANDARD_LIBRARIES";
std::string stdLibString;
if (const char* stdLibs = this->Makefile->GetDefinition(standardLibsVar)) {
stdLibString = stdLibs;
}
// Append the framework search path flags. // Append the framework search path flags.
std::string fwSearchFlagVar = "CMAKE_"; std::string fwSearchFlag = this->Makefile->GetSafeDefinition(
fwSearchFlagVar += linkLanguage; cmStrCat("CMAKE_", linkLanguage, "_FRAMEWORK_SEARCH_FLAG"));
fwSearchFlagVar += "_FRAMEWORK_SEARCH_FLAG";
std::string fwSearchFlag =
this->Makefile->GetSafeDefinition(fwSearchFlagVar);
frameworkPath = linkLineComputer->ComputeFrameworkPath(cli, fwSearchFlag); frameworkPath = linkLineComputer->ComputeFrameworkPath(cli, fwSearchFlag);
linkPath = linkPath =
@@ -1538,10 +1511,8 @@ std::string cmLocalGenerator::GetLinkLibsCMP0065(
} }
if (add_shlib_flags) { if (add_shlib_flags) {
std::string linkFlagsVar = "CMAKE_SHARED_LIBRARY_LINK_"; linkFlags = this->Makefile->GetSafeDefinition(
linkFlagsVar += linkLanguage; cmStrCat("CMAKE_SHARED_LIBRARY_LINK_", linkLanguage, "_FLAGS"));
linkFlagsVar += "_FLAGS";
linkFlags = this->Makefile->GetSafeDefinition(linkFlagsVar);
} }
} }
return linkFlags; return linkFlags;
@@ -1599,10 +1570,8 @@ void cmLocalGenerator::AddLanguageFlags(std::string& flags,
const std::string& config) const std::string& config)
{ {
// Add language-specific flags. // Add language-specific flags.
std::string flagsVar = "CMAKE_"; this->AddConfigVariableFlags(flags, cmStrCat("CMAKE_", lang, "_FLAGS"),
flagsVar += lang; config);
flagsVar += "_FLAGS";
this->AddConfigVariableFlags(flags, flagsVar, config);
// Add MSVC runtime library flags. This is activated by the presence // Add MSVC runtime library flags. This is activated by the presence
// of a default selection whether or not it is overridden by a property. // of a default selection whether or not it is overridden by a property.
@@ -1773,10 +1742,9 @@ void cmLocalGenerator::AddSharedFlags(std::string& flags,
// Add flags for dealing with shared libraries for this language. // Add flags for dealing with shared libraries for this language.
if (shared) { if (shared) {
flagsVar = "CMAKE_SHARED_LIBRARY_"; this->AppendFlags(flags,
flagsVar += lang; this->Makefile->GetDefinition(
flagsVar += "_FLAGS"; cmStrCat("CMAKE_SHARED_LIBRARY_", lang, "_FLAGS")));
this->AppendFlags(flags, this->Makefile->GetDefinition(flagsVar));
} }
} }
@@ -2065,9 +2033,7 @@ bool cmLocalGenerator::GetShouldUseOldFlags(bool shared,
std::string originalFlags = std::string originalFlags =
this->GlobalGenerator->GetSharedLibFlagsForLanguage(lang); this->GlobalGenerator->GetSharedLibFlagsForLanguage(lang);
if (shared) { if (shared) {
std::string flagsVar = "CMAKE_SHARED_LIBRARY_"; std::string flagsVar = cmStrCat("CMAKE_SHARED_LIBRARY_", lang, "_FLAGS");
flagsVar += lang;
flagsVar += "_FLAGS";
std::string const& flags = this->Makefile->GetSafeDefinition(flagsVar); std::string const& flags = this->Makefile->GetSafeDefinition(flagsVar);
if (flags != originalFlags) { if (flags != originalFlags) {
@@ -2106,16 +2072,12 @@ void cmLocalGenerator::AddPositionIndependentFlags(std::string& flags,
std::string picFlags; std::string picFlags;
if (targetType == cmStateEnums::EXECUTABLE) { if (targetType == cmStateEnums::EXECUTABLE) {
std::string flagsVar = "CMAKE_"; picFlags = this->Makefile->GetSafeDefinition(
flagsVar += lang; cmStrCat("CMAKE_", lang, "_COMPILE_OPTIONS_PIE"));
flagsVar += "_COMPILE_OPTIONS_PIE";
picFlags = this->Makefile->GetSafeDefinition(flagsVar);
} }
if (picFlags.empty()) { if (picFlags.empty()) {
std::string flagsVar = "CMAKE_"; picFlags = this->Makefile->GetSafeDefinition(
flagsVar += lang; cmStrCat("CMAKE_", lang, "_COMPILE_OPTIONS_PIC"));
flagsVar += "_COMPILE_OPTIONS_PIC";
picFlags = this->Makefile->GetSafeDefinition(flagsVar);
} }
if (!picFlags.empty()) { if (!picFlags.empty()) {
std::vector<std::string> options; std::vector<std::string> options;
@@ -2356,10 +2318,8 @@ void cmLocalGenerator::JoinDefines(const std::set<std::string>& defines,
// Lookup the define flag for the current language. // Lookup the define flag for the current language.
std::string dflag = "-D"; std::string dflag = "-D";
if (!lang.empty()) { if (!lang.empty()) {
std::string defineFlagVar = "CMAKE_"; const char* df =
defineFlagVar += lang; this->Makefile->GetDefinition(cmStrCat("CMAKE_", lang, "_DEFINE_FLAG"));
defineFlagVar += "_DEFINE_FLAG";
const char* df = this->Makefile->GetDefinition(defineFlagVar);
if (df && *df) { if (df && *df) {
dflag = df; dflag = df;
} }
@@ -2405,11 +2365,9 @@ void cmLocalGenerator::AppendFeatureOptions(std::string& flags,
const std::string& lang, const std::string& lang,
const char* feature) const char* feature)
{ {
std::string optVar = "CMAKE_"; const char* optionList = this->Makefile->GetDefinition(
optVar += lang; cmStrCat("CMAKE_", lang, "_COMPILE_OPTIONS_", feature));
optVar += "_COMPILE_OPTIONS_"; if (optionList != nullptr) {
optVar += feature;
if (const char* optionList = this->Makefile->GetDefinition(optVar)) {
std::vector<std::string> options; std::vector<std::string> options;
cmSystemTools::ExpandListArgument(optionList, options); cmSystemTools::ExpandListArgument(optionList, options);
for (std::string const& o : options) { for (std::string const& o : options) {
@@ -2762,10 +2720,8 @@ std::string cmLocalGenerator::GetObjectFileNameWithoutTarget(
if (!replaceExt) { if (!replaceExt) {
std::string lang = source.GetLanguage(); std::string lang = source.GetLanguage();
if (!lang.empty()) { if (!lang.empty()) {
std::string repVar = "CMAKE_"; replaceExt = this->Makefile->IsOn(
repVar += lang; cmStrCat("CMAKE_", lang, "_OUTPUT_EXTENSION_REPLACE"));
repVar += "_OUTPUT_EXTENSION_REPLACE";
replaceExt = this->Makefile->IsOn(repVar);
} }
} }