| /*========================================================================= |
| |
| Program: CMake - Cross-Platform Makefile Generator |
| Module: $RCSfile$ |
| Language: C++ |
| Date: $Date$ |
| Version: $Revision$ |
| |
| Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. |
| See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. |
| |
| This software is distributed WITHOUT ANY WARRANTY; without even |
| the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
| PURPOSE. See the above copyright notices for more information. |
| |
| =========================================================================*/ |
| #ifndef cmFindBase_h |
| #define cmFindBase_h |
| |
| #include "cmCommand.h" |
| |
| /** \class cmFindBase |
| * \brief Define a command to search for an executable program. |
| * |
| * cmFindBase is a parent class for cmFindProgramCommand, cmFindPathCommand, |
| * and cmFindLibraryCommand, cmFindFile |
| */ |
| class cmFindBase : public cmCommand |
| { |
| 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, cmCommand); |
| |
| virtual const char* GetFullDocumentation() |
| {return this->GenericDocumentation.c_str();} |
| |
| protected: |
| void PrintFindStuff(); |
| void ExpandPaths(std::vector<std::string> userPaths); |
| void AddFrameWorkPaths(); |
| void AddAppBundlePaths(); |
| void AddEnvironmentVairables(); |
| void AddCMakeVairables(); |
| void AddSystemEnvironmentVairables(); |
| void AddCMakeSystemVariables(); |
| void ExpandRegistryAndCleanPath(); |
| // 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; |
| std::vector<std::string> SearchPaths; |
| std::vector<std::string> SearchPathSuffixes; |
| |
| // CMAKE_*_PATH CMAKE_SYSTEM_*_PATH FRAMEWORK|LIBRARY|INCLUDE|PROGRAM |
| cmStdString CMakePathName; |
| cmStdString EnvironmentPath; // LIB,INCLUDE |
| |
| bool AlreadyInCache; |
| bool NoDefaultPath; |
| bool NoCMakePath; |
| bool NoCMakeEnvironmentPath; |
| bool NoSystemEnvironmentPath; |
| bool NoCMakeSystemPath; |
| |
| bool SearchFrameworkFirst; |
| bool SearchFrameworkOnly; |
| bool SearchFrameworkLast; |
| |
| bool SearchAppBundleFirst; |
| bool SearchAppBundleOnly; |
| bool SearchAppBundleLast; |
| |
| }; |
| |
| |
| |
| #endif |