| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /*============================================================================
- CMake - Cross Platform Makefile Generator
- Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
- Distributed under the OSI-approved BSD License (the "License");
- see accompanying file Copyright.txt for details.
- This software is distributed WITHOUT ANY WARRANTY; without even the
- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the License for more information.
- ============================================================================*/
- #ifndef cmFindBase_h
- #define cmFindBase_h
- #include "cmFindCommon.h"
- /** \class cmFindBase
- * \brief Base class for most FIND_XXX commands.
- *
- * cmFindBase is a parent class for cmFindProgramCommand, cmFindPathCommand,
- * and cmFindLibraryCommand, cmFindFileCommand
- */
- class cmFindBase : public cmFindCommon
- {
- public:
- cmFindBase();
- /**
- * This is called when the command is first encountered in
- * the CMakeLists.txt file.
- */
- virtual bool ParseArguments(std::vector<std::string> const& args);
- cmTypeMacro(cmFindBase, cmFindCommon);
-
- virtual const char* GetFullDocumentation();
- protected:
- virtual void GenerateDocumentation();
- void PrintFindStuff();
- void ExpandPaths();
- void AddPathSuffixes();
- // see if the VariableName is already set in the cache,
- // also copy the documentation from the cache to VariableDocumentation
- // if it has documentation in the cache
- bool CheckForVariableInCache();
-
- cmStdString GenericDocumentation;
- // use by command during find
- cmStdString VariableDocumentation;
- cmStdString VariableName;
- std::vector<std::string> Names;
- // CMAKE_*_PATH CMAKE_SYSTEM_*_PATH FRAMEWORK|LIBRARY|INCLUDE|PROGRAM
- cmStdString EnvironmentPath; // LIB,INCLUDE
- bool AlreadyInCache;
- bool AlreadyInCacheWithoutMetaInfo;
- private:
- // Add pieces of the search.
- void AddCMakeEnvironmentPath();
- void AddCMakeVariablePath();
- void AddSystemEnvironmentPath();
- void AddCMakeSystemVariablePath();
- void AddUserHintsPath();
- void AddUserGuessPath();
- // Helpers.
- void AddCMakePrefixPath(const char* variable);
- void AddEnvPrefixPath(const char* variable);
- void AddPrefixPaths(std::vector<std::string> const& in_paths,
- PathType pathType);
- };
- #endif
|