From 4855fe5c10841fd3641b7405522de3278732987f Mon Sep 17 00:00:00 2001 From: Ken Martin Date: Wed, 28 Aug 2002 14:49:25 -0400 Subject: an early checking not complete --- Source/cmTryCompileCommand.cxx | 38 ++++++++++++++++++++ Source/cmTryCompileCommand.h | 78 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 Source/cmTryCompileCommand.cxx create mode 100644 Source/cmTryCompileCommand.h diff --git a/Source/cmTryCompileCommand.cxx b/Source/cmTryCompileCommand.cxx new file mode 100644 index 0000000..2f9243a --- /dev/null +++ b/Source/cmTryCompileCommand.cxx @@ -0,0 +1,38 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Insight Consortium. All rights reserved. + See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm 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. + +=========================================================================*/ +#include "cmTryCompileCommand.h" +#include "cmCacheManager.h" + +// cmExecutableCommand +bool cmTryCompileCommand::InitialPass(std::vector const& argv) +{ + if(argv.size() < 3) + { + return true; + } + + const char* sourceDirectory = argv[0].c_str(); + const char* binaryDirectory = argv[1].c_str(); + const char* projectName = argv[2].c_str(); + + m_Makefile->TryCompile(sourceDirectory,binaryDirectory,projectName); + + return true; +} + + + diff --git a/Source/cmTryCompileCommand.h b/Source/cmTryCompileCommand.h new file mode 100644 index 0000000..d029b1e --- /dev/null +++ b/Source/cmTryCompileCommand.h @@ -0,0 +1,78 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Insight Consortium. All rights reserved. + See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm 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 cmTryCompileCommand_h +#define cmTryCompileCommand_h + +#include "cmStandardIncludes.h" +#include "cmCommand.h" + +/** \class cmTryCompileCommand + * \brief Specifies where to install some files + * + * cmTryCompileCommand is used to test if soucre code can be compiled + */ +class cmTryCompileCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmTryCompileCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "TRY_COMPILE";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Try compiling some code"; + } + + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + "TRY_COMPILE(RESULT_VAR CMakeListFile )\n" + "TRY_COMPILE(RESULT_VAR sourceCode)\n" + "Try compiling a program. Return the success or failure in result"; + } + + cmTypeMacro(cmTryCompileCommand, cmCommand); + + private: + std::string m_TargetName; + std::vector m_FinalArgs; +}; + + +#endif -- cgit v0.12