mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-26 00:00:39 -05:00
Merge topic 'modernize-for-loops-c-arrays'
706b93fa55 Modernize: C-arrays and loops over them
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2951
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#include <algorithm>
|
||||
#include <assert.h>
|
||||
#include <cstring>
|
||||
#include <initializer_list>
|
||||
#include <iterator>
|
||||
#include <sstream>
|
||||
#include <stdio.h>
|
||||
@@ -2280,10 +2281,9 @@ void cmGlobalGenerator::AddGlobalTarget_Package(
|
||||
return;
|
||||
}
|
||||
|
||||
const char* reservedTargets[] = { "package", "PACKAGE" };
|
||||
for (const char* const* tn = cm::cbegin(reservedTargets);
|
||||
tn != cm::cend(reservedTargets); ++tn) {
|
||||
if (!this->CheckCMP0037(*tn, "when CPack packaging is enabled")) {
|
||||
static const auto reservedTargets = { "package", "PACKAGE" };
|
||||
for (auto const& target : reservedTargets) {
|
||||
if (!this->CheckCMP0037(target, "when CPack packaging is enabled")) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -2330,10 +2330,10 @@ void cmGlobalGenerator::AddGlobalTarget_PackageSource(
|
||||
return;
|
||||
}
|
||||
|
||||
const char* reservedTargets[] = { "package_source" };
|
||||
for (const char* const* tn = cm::cbegin(reservedTargets);
|
||||
tn != cm::cend(reservedTargets); ++tn) {
|
||||
if (!this->CheckCMP0037(*tn, "when CPack source packaging is enabled")) {
|
||||
static const auto reservedTargets = { "package_source" };
|
||||
for (auto const& target : reservedTargets) {
|
||||
if (!this->CheckCMP0037(target,
|
||||
"when CPack source packaging is enabled")) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -2360,10 +2360,9 @@ void cmGlobalGenerator::AddGlobalTarget_Test(
|
||||
return;
|
||||
}
|
||||
|
||||
const char* reservedTargets[] = { "test", "RUN_TESTS" };
|
||||
for (const char* const* tn = cm::cbegin(reservedTargets);
|
||||
tn != cm::cend(reservedTargets); ++tn) {
|
||||
if (!this->CheckCMP0037(*tn, "when CTest testing is enabled")) {
|
||||
static const auto reservedTargets = { "test", "RUN_TESTS" };
|
||||
for (auto const& target : reservedTargets) {
|
||||
if (!this->CheckCMP0037(target, "when CTest testing is enabled")) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
+23
-26
@@ -34,6 +34,7 @@
|
||||
#include "cmsys/RegularExpression.hxx"
|
||||
#include <algorithm>
|
||||
#include <assert.h>
|
||||
#include <initializer_list>
|
||||
#include <iterator>
|
||||
#include <sstream>
|
||||
#include <stdio.h>
|
||||
@@ -51,25 +52,23 @@
|
||||
// replaced in the form <var> with GetSafeDefinition(var).
|
||||
// ${LANG} is replaced in the variable first with all enabled
|
||||
// languages.
|
||||
static const char* ruleReplaceVars[] = {
|
||||
"CMAKE_${LANG}_COMPILER",
|
||||
"CMAKE_SHARED_LIBRARY_CREATE_${LANG}_FLAGS",
|
||||
"CMAKE_SHARED_MODULE_CREATE_${LANG}_FLAGS",
|
||||
"CMAKE_SHARED_MODULE_${LANG}_FLAGS",
|
||||
"CMAKE_SHARED_LIBRARY_${LANG}_FLAGS",
|
||||
"CMAKE_${LANG}_LINK_FLAGS",
|
||||
"CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG",
|
||||
"CMAKE_${LANG}_ARCHIVE",
|
||||
"CMAKE_AR",
|
||||
"CMAKE_CURRENT_SOURCE_DIR",
|
||||
"CMAKE_CURRENT_BINARY_DIR",
|
||||
"CMAKE_RANLIB",
|
||||
"CMAKE_LINKER",
|
||||
"CMAKE_MT",
|
||||
"CMAKE_CUDA_HOST_COMPILER",
|
||||
"CMAKE_CUDA_HOST_LINK_LAUNCHER",
|
||||
"CMAKE_CL_SHOWINCLUDES_PREFIX"
|
||||
};
|
||||
static auto ruleReplaceVars = { "CMAKE_${LANG}_COMPILER",
|
||||
"CMAKE_SHARED_LIBRARY_CREATE_${LANG}_FLAGS",
|
||||
"CMAKE_SHARED_MODULE_CREATE_${LANG}_FLAGS",
|
||||
"CMAKE_SHARED_MODULE_${LANG}_FLAGS",
|
||||
"CMAKE_SHARED_LIBRARY_${LANG}_FLAGS",
|
||||
"CMAKE_${LANG}_LINK_FLAGS",
|
||||
"CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG",
|
||||
"CMAKE_${LANG}_ARCHIVE",
|
||||
"CMAKE_AR",
|
||||
"CMAKE_CURRENT_SOURCE_DIR",
|
||||
"CMAKE_CURRENT_BINARY_DIR",
|
||||
"CMAKE_RANLIB",
|
||||
"CMAKE_LINKER",
|
||||
"CMAKE_MT",
|
||||
"CMAKE_CUDA_HOST_COMPILER",
|
||||
"CMAKE_CUDA_HOST_LINK_LAUNCHER",
|
||||
"CMAKE_CL_SHOWINCLUDES_PREFIX" };
|
||||
|
||||
cmLocalGenerator::cmLocalGenerator(cmGlobalGenerator* gg, cmMakefile* makefile)
|
||||
: cmOutputConverter(makefile->GetStateSnapshot())
|
||||
@@ -138,15 +137,13 @@ cmLocalGenerator::cmLocalGenerator(cmGlobalGenerator* gg, cmMakefile* makefile)
|
||||
this->VariableMappings[compilerOptionSysroot] =
|
||||
this->Makefile->GetSafeDefinition(compilerOptionSysroot);
|
||||
|
||||
for (const char* const* replaceIter = cm::cbegin(ruleReplaceVars);
|
||||
replaceIter != cm::cend(ruleReplaceVars); ++replaceIter) {
|
||||
std::string actualReplace = *replaceIter;
|
||||
if (actualReplace.find("${LANG}") != std::string::npos) {
|
||||
cmSystemTools::ReplaceString(actualReplace, "${LANG}", lang);
|
||||
for (std::string replaceVar : ruleReplaceVars) {
|
||||
if (replaceVar.find("${LANG}") != std::string::npos) {
|
||||
cmSystemTools::ReplaceString(replaceVar, "${LANG}", lang);
|
||||
}
|
||||
|
||||
this->VariableMappings[actualReplace] =
|
||||
this->Makefile->GetSafeDefinition(actualReplace);
|
||||
this->VariableMappings[replaceVar] =
|
||||
this->Makefile->GetSafeDefinition(replaceVar);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+14
-6
@@ -7,7 +7,7 @@
|
||||
#include "cmsys/RegularExpression.hxx"
|
||||
|
||||
#include <algorithm>
|
||||
#include <iterator>
|
||||
#include <array>
|
||||
#include <sstream>
|
||||
#include <utility>
|
||||
|
||||
@@ -137,13 +137,21 @@ std::string cmQtAutoGen::Tools(bool moc, bool uic, bool rcc)
|
||||
|
||||
std::string cmQtAutoGen::Quoted(std::string const& text)
|
||||
{
|
||||
static const char* rep[18] = { "\\", "\\\\", "\"", "\\\"", "\a", "\\a",
|
||||
"\b", "\\b", "\f", "\\f", "\n", "\\n",
|
||||
"\r", "\\r", "\t", "\\t", "\v", "\\v" };
|
||||
const std::array<std::pair<const char*, const char*>, 9> replaces = {
|
||||
{ { "\\", "\\\\" },
|
||||
{ "\"", "\\\"" },
|
||||
{ "\a", "\\a" },
|
||||
{ "\b", "\\b" },
|
||||
{ "\f", "\\f" },
|
||||
{ "\n", "\\n" },
|
||||
{ "\r", "\\r" },
|
||||
{ "\t", "\\t" },
|
||||
{ "\v", "\\v" } }
|
||||
};
|
||||
|
||||
std::string res = text;
|
||||
for (const char* const* it = cm::cbegin(rep); it != cm::cend(rep); it += 2) {
|
||||
cmSystemTools::ReplaceString(res, *it, *(it + 1));
|
||||
for (auto const& pair : replaces) {
|
||||
cmSystemTools::ReplaceString(res, pair.first, pair.second);
|
||||
}
|
||||
res = '"' + res;
|
||||
res += '"';
|
||||
|
||||
+6
-5
@@ -5,6 +5,7 @@
|
||||
#include "cmsys/RegularExpression.hxx"
|
||||
#include <algorithm>
|
||||
#include <assert.h>
|
||||
#include <initializer_list>
|
||||
#include <iterator>
|
||||
#include <set>
|
||||
#include <sstream>
|
||||
@@ -312,23 +313,23 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
|
||||
|
||||
// Setup per-configuration property default values.
|
||||
if (this->GetType() != cmStateEnums::UTILITY) {
|
||||
const char* configProps[] = {
|
||||
static const auto configProps = {
|
||||
/* clang-format needs this comment to break after the opening brace */
|
||||
"ARCHIVE_OUTPUT_DIRECTORY_", "LIBRARY_OUTPUT_DIRECTORY_",
|
||||
"RUNTIME_OUTPUT_DIRECTORY_", "PDB_OUTPUT_DIRECTORY_",
|
||||
"COMPILE_PDB_OUTPUT_DIRECTORY_", "MAP_IMPORTED_CONFIG_",
|
||||
"INTERPROCEDURAL_OPTIMIZATION_", nullptr
|
||||
"INTERPROCEDURAL_OPTIMIZATION_"
|
||||
};
|
||||
for (std::string const& configName : configNames) {
|
||||
std::string configUpper = cmSystemTools::UpperCase(configName);
|
||||
for (const char** p = configProps; *p; ++p) {
|
||||
for (auto const& prop : configProps) {
|
||||
// Interface libraries have no output locations, so honor only
|
||||
// the configuration map.
|
||||
if (this->TargetTypeValue == cmStateEnums::INTERFACE_LIBRARY &&
|
||||
strcmp(*p, "MAP_IMPORTED_CONFIG_") != 0) {
|
||||
strcmp(prop, "MAP_IMPORTED_CONFIG_") != 0) {
|
||||
continue;
|
||||
}
|
||||
std::string property = *p;
|
||||
std::string property = prop;
|
||||
property += configUpper;
|
||||
this->SetPropertyDefault(property, nullptr);
|
||||
}
|
||||
|
||||
+11
-12
@@ -99,6 +99,7 @@
|
||||
#include "cmsys/RegularExpression.hxx"
|
||||
#include <algorithm>
|
||||
#include <cstring>
|
||||
#include <initializer_list>
|
||||
#include <iostream>
|
||||
#include <iterator>
|
||||
#include <memory> // IWYU pragma: keep
|
||||
@@ -1892,11 +1893,10 @@ bool cmake::LoadCache(const std::string& path, bool internal,
|
||||
std::set<std::string>& includes)
|
||||
{
|
||||
bool result = this->State->LoadCache(path, internal, excludes, includes);
|
||||
static const char* entries[] = { "CMAKE_CACHE_MAJOR_VERSION",
|
||||
"CMAKE_CACHE_MINOR_VERSION" };
|
||||
for (const char* const* nameIt = cm::cbegin(entries);
|
||||
nameIt != cm::cend(entries); ++nameIt) {
|
||||
this->UnwatchUnusedCli(*nameIt);
|
||||
static const auto entries = { "CMAKE_CACHE_MAJOR_VERSION",
|
||||
"CMAKE_CACHE_MINOR_VERSION" };
|
||||
for (auto const& entry : entries) {
|
||||
this->UnwatchUnusedCli(entry);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -1904,13 +1904,12 @@ bool cmake::LoadCache(const std::string& path, bool internal,
|
||||
bool cmake::SaveCache(const std::string& path)
|
||||
{
|
||||
bool result = this->State->SaveCache(path, this->GetMessenger());
|
||||
static const char* entries[] = { "CMAKE_CACHE_MAJOR_VERSION",
|
||||
"CMAKE_CACHE_MINOR_VERSION",
|
||||
"CMAKE_CACHE_PATCH_VERSION",
|
||||
"CMAKE_CACHEFILE_DIR" };
|
||||
for (const char* const* nameIt = cm::cbegin(entries);
|
||||
nameIt != cm::cend(entries); ++nameIt) {
|
||||
this->UnwatchUnusedCli(*nameIt);
|
||||
static const auto entries = { "CMAKE_CACHE_MAJOR_VERSION",
|
||||
"CMAKE_CACHE_MINOR_VERSION",
|
||||
"CMAKE_CACHE_PATCH_VERSION",
|
||||
"CMAKE_CACHEFILE_DIR" };
|
||||
for (auto const& entry : entries) {
|
||||
this->UnwatchUnusedCli(entry);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
+15
-15
@@ -37,6 +37,7 @@
|
||||
#include "cmsys/Process.h"
|
||||
#include "cmsys/Terminal.h"
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
#include <iostream>
|
||||
#include <iterator>
|
||||
#include <memory> // IWYU pragma: keep
|
||||
@@ -350,12 +351,13 @@ struct CoCompiler
|
||||
bool NoOriginalCommand;
|
||||
};
|
||||
|
||||
static CoCompiler CoCompilers[] = { // Table of options and handlers.
|
||||
{ "--cppcheck=", HandleCppCheck, false },
|
||||
{ "--cpplint=", HandleCppLint, false },
|
||||
{ "--iwyu=", HandleIWYU, false },
|
||||
{ "--lwyu=", HandleLWYU, true },
|
||||
{ "--tidy=", HandleTidy, false }
|
||||
static const std::array<CoCompiler, 5> CoCompilers = {
|
||||
{ // Table of options and handlers.
|
||||
{ "--cppcheck=", HandleCppCheck, false },
|
||||
{ "--cpplint=", HandleCppLint, false },
|
||||
{ "--iwyu=", HandleIWYU, false },
|
||||
{ "--lwyu=", HandleLWYU, true },
|
||||
{ "--tidy=", HandleTidy, false } }
|
||||
};
|
||||
|
||||
struct CoCompileJob
|
||||
@@ -386,16 +388,15 @@ int cmcmd::HandleCoCompileCommands(std::vector<std::string>& args)
|
||||
doing_options = false;
|
||||
} else if (doing_options) {
|
||||
bool optionFound = false;
|
||||
for (CoCompiler const* cc = cm::cbegin(CoCompilers);
|
||||
cc != cm::cend(CoCompilers); ++cc) {
|
||||
size_t optionLen = strlen(cc->Option);
|
||||
if (arg.compare(0, optionLen, cc->Option) == 0) {
|
||||
for (CoCompiler const& cc : CoCompilers) {
|
||||
size_t optionLen = strlen(cc.Option);
|
||||
if (arg.compare(0, optionLen, cc.Option) == 0) {
|
||||
optionFound = true;
|
||||
CoCompileJob job;
|
||||
job.Command = arg.substr(optionLen);
|
||||
job.Handler = cc->Handler;
|
||||
job.Handler = cc.Handler;
|
||||
jobs.push_back(std::move(job));
|
||||
if (cc->NoOriginalCommand) {
|
||||
if (cc.NoOriginalCommand) {
|
||||
runOriginalCmd = false;
|
||||
}
|
||||
}
|
||||
@@ -419,9 +420,8 @@ int cmcmd::HandleCoCompileCommands(std::vector<std::string>& args)
|
||||
if (jobs.empty()) {
|
||||
std::cerr << "__run_co_compile missing command to run. "
|
||||
"Looking for one or more of the following:\n";
|
||||
for (CoCompiler const* cc = cm::cbegin(CoCompilers);
|
||||
cc != cm::cend(CoCompilers); ++cc) {
|
||||
std::cerr << cc->Option << "\n";
|
||||
for (CoCompiler const& cc : CoCompilers) {
|
||||
std::cerr << cc.Option << "\n";
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user