| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | /*============================================================================  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 cmFindProgramCommand_h#define cmFindProgramCommand_h#include "cmFindBase.h"/** \class cmFindProgramCommand * \brief Define a command to search for an executable program. * * cmFindProgramCommand is used to define a CMake variable * that specifies an executable program. The command searches  * in the current path (e.g., PATH environment variable) for * an executable that matches one of the supplied names. */class cmFindProgramCommand : public cmFindBase{public:  /**   * This is a virtual constructor for the command.   */  virtual cmCommand* Clone()     {    return new cmFindProgramCommand;    }  /**   * This is called when the command is first encountered in   * the CMakeLists.txt file.   */  virtual bool InitialPass(std::vector<std::string> const& args,                           cmExecutionStatus &status);  /**   * This determines if the command is invoked when in script mode.   */  virtual bool IsScriptable() { return true; }  /**   * The name of the command as specified in CMakeList.txt.   */  virtual const char* GetName() { return "find_program";}  /**   * Succinct documentation.   */  virtual const char* GetTerseDocumentation()     {    return "Find an executable program.";    }    cmTypeMacro(cmFindProgramCommand, cmFindBase);protected:  std::string FindProgram(std::vector<std::string> names);  virtual void GenerateDocumentation();private:  std::string FindAppBundle(std::vector<std::string> names);  std::string GetBundleExecutable(std::string bundlePath);};#endif
 |