mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 10:50:16 -06:00
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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user