cmFindPackageCommand: Rename some generators

The point is that `cmFileListBlahBlahGenerator` actually "generate"
directory names and never files.

The `cmBlahBlahStringGenerators` produce paths in fact. Ok, paths
nowadays are also strings but...
This commit is contained in:
Alex Turbov
2022-07-05 03:47:13 +04:00
committed by Brad King
parent fdd14b1744
commit c862797a40

View File

@@ -112,10 +112,10 @@ bool isDirentryToIgnore(const char* const fname)
(fname[1] == 0 || (fname[1] == '.' && fname[2] == 0));
}
class cmFixedStringGenerator
class cmAppendPathSegmentGenerator
{
public:
cmFixedStringGenerator(cm::string_view dirName)
cmAppendPathSegmentGenerator(cm::string_view dirName)
: DirName{ dirName }
{
}
@@ -136,10 +136,10 @@ private:
bool NeedReset = false;
};
class cmEnumFixedStringsGenerator
class cmEnumPathSegmentsGenerator
{
public:
cmEnumFixedStringsGenerator(const std::vector<cm::string_view>& init)
cmEnumPathSegmentsGenerator(const std::vector<cm::string_view>& init)
: Names{ init }
, Current{ this->Names.get().cbegin() }
{
@@ -160,10 +160,10 @@ private:
std::vector<cm::string_view>::const_iterator Current;
};
class cmFileListGeneratorCaseInsensitive
class cmCaseInsensitiveDirectoryListGenerator
{
public:
cmFileListGeneratorCaseInsensitive(cm::string_view name)
cmCaseInsensitiveDirectoryListGenerator(cm::string_view name)
: DirectoryLister{}
, DirName{ name }
{
@@ -238,7 +238,7 @@ public:
}
for (const auto& n : this->Names.get()) {
// NOTE Customization point for `cmFileListGeneratorMacProject`
// NOTE Customization point for `cmMacProjectDirectoryListGenerator`
const auto name = this->TransformNameBeforeCmp(n);
// Skip entries that don't match and non-directories.
// ATTENTION BTW, original code also didn't check if it's a symlink
@@ -250,7 +250,7 @@ public:
}
}
}
// NOTE Customization point for `cmFileListGeneratorProject`
// NOTE Customization point for `cmProjectDirectoryListGenerator`
this->OnMatchesLoaded();
this->Current = this->Matches.cbegin();
@@ -279,12 +279,12 @@ protected:
std::vector<std::string>::const_iterator Current;
};
class cmFileListGeneratorProject : public cmDirectoryListGenerator
class cmProjectDirectoryListGenerator : public cmDirectoryListGenerator
{
public:
cmFileListGeneratorProject(std::vector<std::string> const& names,
cmFindPackageCommand::SortOrderType so,
cmFindPackageCommand::SortDirectionType sd)
cmProjectDirectoryListGenerator(std::vector<std::string> const& names,
cmFindPackageCommand::SortOrderType so,
cmFindPackageCommand::SortDirectionType sd)
: cmDirectoryListGenerator{ names }
, SortOrder{ so }
, SortDirection{ sd }
@@ -306,11 +306,11 @@ private:
const cmFindPackageCommand::SortDirectionType SortDirection;
};
class cmFileListGeneratorMacProject : public cmDirectoryListGenerator
class cmMacProjectDirectoryListGenerator : public cmDirectoryListGenerator
{
public:
cmFileListGeneratorMacProject(const std::vector<std::string>& names,
cm::string_view ext)
cmMacProjectDirectoryListGenerator(const std::vector<std::string>& names,
cm::string_view ext)
: cmDirectoryListGenerator{ names }
, Extension{ ext }
{
@@ -2502,24 +2502,26 @@ bool cmFindPackageCommand::SearchPrefix(std::string const& prefix_in)
};
// PREFIX/(cmake|CMake)/ (useful on windows or in build trees)
if (TryGeneratedPaths(searchFn, prefix,
cmFileListGeneratorCaseInsensitive{ "cmake"_s })) {
if (TryGeneratedPaths(
searchFn, prefix,
cmCaseInsensitiveDirectoryListGenerator{ "cmake"_s })) {
return true;
}
// PREFIX/(Foo|foo|FOO).*/
if (TryGeneratedPaths(searchFn, prefix,
cmFileListGeneratorProject{ this->Names,
this->SortOrder,
this->SortDirection })) {
if (TryGeneratedPaths(
searchFn, prefix,
cmProjectDirectoryListGenerator{ this->Names, this->SortOrder,
this->SortDirection })) {
return true;
}
// PREFIX/(Foo|foo|FOO).*/(cmake|CMake)/
if (TryGeneratedPaths(searchFn, prefix,
cmFileListGeneratorProject{
this->Names, this->SortOrder, this->SortDirection },
cmFileListGeneratorCaseInsensitive{ "cmake"_s })) {
if (TryGeneratedPaths(
searchFn, prefix,
cmProjectDirectoryListGenerator{ this->Names, this->SortOrder,
this->SortDirection },
cmCaseInsensitiveDirectoryListGenerator{ "cmake"_s })) {
return true;
}
@@ -2544,61 +2546,62 @@ bool cmFindPackageCommand::SearchPrefix(std::string const& prefix_in)
// PREFIX/(lib/ARCH|lib*|share)/cmake/(Foo|foo|FOO).*/
if (TryGeneratedPaths(
searchFn, prefix, cmEnumFixedStringsGenerator{ common },
cmFixedStringGenerator{ "cmake"_s },
cmFileListGeneratorProject{ this->Names, this->SortOrder,
this->SortDirection })) {
searchFn, prefix, cmEnumPathSegmentsGenerator{ common },
cmAppendPathSegmentGenerator{ "cmake"_s },
cmProjectDirectoryListGenerator{ this->Names, this->SortOrder,
this->SortDirection })) {
return true;
}
// PREFIX/(lib/ARCH|lib*|share)/(Foo|foo|FOO).*/
if (TryGeneratedPaths(
searchFn, prefix, cmEnumFixedStringsGenerator{ common },
cmFileListGeneratorProject{ this->Names, this->SortOrder,
this->SortDirection })) {
searchFn, prefix, cmEnumPathSegmentsGenerator{ common },
cmProjectDirectoryListGenerator{ this->Names, this->SortOrder,
this->SortDirection })) {
return true;
}
// PREFIX/(lib/ARCH|lib*|share)/(Foo|foo|FOO).*/(cmake|CMake)/
if (TryGeneratedPaths(searchFn, prefix,
cmEnumFixedStringsGenerator{ common },
cmFileListGeneratorProject{
this->Names, this->SortOrder, this->SortDirection },
cmFileListGeneratorCaseInsensitive{ "cmake"_s })) {
if (TryGeneratedPaths(
searchFn, prefix, cmEnumPathSegmentsGenerator{ common },
cmProjectDirectoryListGenerator{ this->Names, this->SortOrder,
this->SortDirection },
cmCaseInsensitiveDirectoryListGenerator{ "cmake"_s })) {
return true;
}
// PREFIX/(Foo|foo|FOO).*/(lib/ARCH|lib*|share)/cmake/(Foo|foo|FOO).*/
if (TryGeneratedPaths(
searchFn, prefix,
cmFileListGeneratorProject{ this->Names, this->SortOrder,
this->SortDirection },
cmEnumFixedStringsGenerator{ common },
cmFixedStringGenerator{ "cmake"_s },
cmFileListGeneratorProject{ this->Names, this->SortOrder,
this->SortDirection })) {
cmProjectDirectoryListGenerator{ this->Names, this->SortOrder,
this->SortDirection },
cmEnumPathSegmentsGenerator{ common },
cmAppendPathSegmentGenerator{ "cmake"_s },
cmProjectDirectoryListGenerator{ this->Names, this->SortOrder,
this->SortDirection })) {
return true;
}
// PREFIX/(Foo|foo|FOO).*/(lib/ARCH|lib*|share)/(Foo|foo|FOO).*/
if (TryGeneratedPaths(
searchFn, prefix,
cmFileListGeneratorProject{ this->Names, this->SortOrder,
this->SortDirection },
cmEnumFixedStringsGenerator{ common },
cmFileListGeneratorProject{ this->Names, this->SortOrder,
this->SortDirection })) {
cmProjectDirectoryListGenerator{ this->Names, this->SortOrder,
this->SortDirection },
cmEnumPathSegmentsGenerator{ common },
cmProjectDirectoryListGenerator{ this->Names, this->SortOrder,
this->SortDirection })) {
return true;
}
// PREFIX/(Foo|foo|FOO).*/(lib/ARCH|lib*|share)/(Foo|foo|FOO).*/(cmake|CMake)/
if (TryGeneratedPaths(searchFn, prefix,
cmFileListGeneratorProject{
this->Names, this->SortOrder, this->SortDirection },
cmEnumFixedStringsGenerator{ common },
cmFileListGeneratorProject{
this->Names, this->SortOrder, this->SortDirection },
cmFileListGeneratorCaseInsensitive{ "cmake"_s })) {
if (TryGeneratedPaths(
searchFn, prefix,
cmProjectDirectoryListGenerator{ this->Names, this->SortOrder,
this->SortDirection },
cmEnumPathSegmentsGenerator{ common },
cmProjectDirectoryListGenerator{ this->Names, this->SortOrder,
this->SortDirection },
cmCaseInsensitiveDirectoryListGenerator{ "cmake"_s })) {
return true;
}
@@ -2620,25 +2623,25 @@ bool cmFindPackageCommand::SearchFrameworkPrefix(std::string const& prefix_in)
// <prefix>/Foo.framework/Resources/
if (TryGeneratedPaths(
searchFn, prefix,
cmFileListGeneratorMacProject{ this->Names, ".framework"_s },
cmFixedStringGenerator{ "Resources"_s })) {
cmMacProjectDirectoryListGenerator{ this->Names, ".framework"_s },
cmAppendPathSegmentGenerator{ "Resources"_s })) {
return true;
}
// <prefix>/Foo.framework/Resources/CMake/
if (TryGeneratedPaths(
searchFn, prefix,
cmFileListGeneratorMacProject{ this->Names, ".framework"_s },
cmFixedStringGenerator{ "Resources"_s },
cmFileListGeneratorCaseInsensitive{ "cmake"_s })) {
cmMacProjectDirectoryListGenerator{ this->Names, ".framework"_s },
cmAppendPathSegmentGenerator{ "Resources"_s },
cmCaseInsensitiveDirectoryListGenerator{ "cmake"_s })) {
return true;
}
// <prefix>/Foo.framework/Versions/*/Resources/
if (TryGeneratedPaths(
searchFn, prefix,
cmFileListGeneratorMacProject{ this->Names, ".framework"_s },
cmFixedStringGenerator{ "Versions"_s },
cmMacProjectDirectoryListGenerator{ this->Names, ".framework"_s },
cmAppendPathSegmentGenerator{ "Versions"_s },
cmFileListGeneratorGlob{ "/*/Resources"_s })) {
return true;
}
@@ -2646,10 +2649,10 @@ bool cmFindPackageCommand::SearchFrameworkPrefix(std::string const& prefix_in)
// <prefix>/Foo.framework/Versions/*/Resources/CMake/
if (TryGeneratedPaths(
searchFn, prefix,
cmFileListGeneratorMacProject{ this->Names, ".framework"_s },
cmFixedStringGenerator{ "Versions"_s },
cmMacProjectDirectoryListGenerator{ this->Names, ".framework"_s },
cmAppendPathSegmentGenerator{ "Versions"_s },
cmFileListGeneratorGlob{ "/*/Resources"_s },
cmFileListGeneratorCaseInsensitive{ "cmake"_s })) {
cmCaseInsensitiveDirectoryListGenerator{ "cmake"_s })) {
return true;
}
@@ -2669,17 +2672,19 @@ bool cmFindPackageCommand::SearchAppBundlePrefix(std::string const& prefix_in)
};
// <prefix>/Foo.app/Contents/Resources
if (TryGeneratedPaths(searchFn, prefix,
cmFileListGeneratorMacProject{ this->Names, ".app"_s },
cmFixedStringGenerator{ "Contents/Resources"_s })) {
if (TryGeneratedPaths(
searchFn, prefix,
cmMacProjectDirectoryListGenerator{ this->Names, ".app"_s },
cmAppendPathSegmentGenerator{ "Contents/Resources"_s })) {
return true;
}
// <prefix>/Foo.app/Contents/Resources/CMake
if (TryGeneratedPaths(searchFn, prefix,
cmFileListGeneratorMacProject{ this->Names, ".app"_s },
cmFixedStringGenerator{ "Contents/Resources"_s },
cmFileListGeneratorCaseInsensitive{ "cmake"_s })) {
if (TryGeneratedPaths(
searchFn, prefix,
cmMacProjectDirectoryListGenerator{ this->Names, ".app"_s },
cmAppendPathSegmentGenerator{ "Contents/Resources"_s },
cmCaseInsensitiveDirectoryListGenerator{ "cmake"_s })) {
return true;
}