123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- #ifndef cmFindCommon_h
- #define cmFindCommon_h
- #include "cmConfigure.h"
- #include <map>
- #include <set>
- #include <string>
- #include <vector>
- #include "cmCommand.h"
- #include "cmPathLabel.h"
- #include "cmSearchPath.h"
- class cmFindCommon : public cmCommand
- {
- public:
- cmFindCommon();
- ~cmFindCommon() override;
- protected:
- friend class cmSearchPath;
-
- class PathGroup : public cmPathLabel
- {
- protected:
- PathGroup();
- public:
- PathGroup(const std::string& label)
- : cmPathLabel(label)
- {
- }
- static PathGroup All;
- };
-
- class PathLabel : public cmPathLabel
- {
- protected:
- PathLabel();
- public:
- PathLabel(const std::string& label)
- : cmPathLabel(label)
- {
- }
- static PathLabel PackageRoot;
- static PathLabel CMake;
- static PathLabel CMakeEnvironment;
- static PathLabel Hints;
- static PathLabel SystemEnvironment;
- static PathLabel CMakeSystem;
- static PathLabel Guess;
- };
- enum RootPathMode
- {
- RootPathModeNever,
- RootPathModeOnly,
- RootPathModeBoth
- };
-
- void InitializeSearchPathGroups();
-
- void RerootPaths(std::vector<std::string>& paths);
-
- void GetIgnoredPaths(std::vector<std::string>& ignore);
- void GetIgnoredPaths(std::set<std::string>& ignore);
-
- void ComputeFinalPaths();
-
- void SelectDefaultNoPackageRootPath();
-
- void SelectDefaultRootPathMode();
-
- void SelectDefaultMacMode();
-
- std::vector<std::string> UserHintsArgs;
- std::vector<std::string> UserGuessArgs;
- std::string CMakePathName;
- RootPathMode FindRootPathMode;
- bool CheckCommonArgument(std::string const& arg);
- void AddPathSuffix(std::string const& arg);
- bool NoDefaultPath;
- bool NoPackageRootPath;
- bool NoCMakePath;
- bool NoCMakeEnvironmentPath;
- bool NoSystemEnvironmentPath;
- bool NoCMakeSystemPath;
- std::vector<std::string> SearchPathSuffixes;
- std::map<PathGroup, std::vector<PathLabel>> PathGroupLabelMap;
- std::vector<PathGroup> PathGroupOrder;
- std::map<std::string, PathLabel> PathLabelStringMap;
- std::map<PathLabel, cmSearchPath> LabeledPaths;
- std::vector<std::string> SearchPaths;
- std::set<std::string> SearchPathsEmitted;
- bool SearchFrameworkFirst;
- bool SearchFrameworkOnly;
- bool SearchFrameworkLast;
- bool SearchAppBundleFirst;
- bool SearchAppBundleOnly;
- bool SearchAppBundleLast;
- };
- #endif
|