mirror of https://github.com/Kitware/CMake.git

2 changed files with 176 additions and 0 deletions
@ -0,0 +1,72 @@ |
|||
/*=========================================================================
|
|||
|
|||
Program: Insight Segmentation & Registration Toolkit |
|||
Module: $RCSfile$ |
|||
Language: C++ |
|||
Date: $Date$ |
|||
Version: $Revision$ |
|||
|
|||
Copyright (c) 2001 Insight Consortium |
|||
All rights reserved. |
|||
|
|||
Redistribution and use in source and binary forms, with or without |
|||
modification, are permitted provided that the following conditions are met: |
|||
|
|||
* Redistributions of source code must retain the above copyright notice, |
|||
this list of conditions and the following disclaimer. |
|||
|
|||
* Redistributions in binary form must reproduce the above copyright notice, |
|||
this list of conditions and the following disclaimer in the documentation |
|||
and/or other materials provided with the distribution. |
|||
|
|||
* The name of the Insight Consortium, nor the names of any consortium members, |
|||
nor of any contributors, may be used to endorse or promote products derived |
|||
from this software without specific prior written permission. |
|||
|
|||
* Modified source versions must be plainly marked as such, and must not be |
|||
misrepresented as being the original software. |
|||
|
|||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ``AS IS'' |
|||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR |
|||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
|||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
|||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||
|
|||
=========================================================================*/ |
|||
#include "cmVariableRequiresCommand.h"
|
|||
#include "cmCacheManager.h"
|
|||
|
|||
// cmLibraryCommand
|
|||
bool cmVariableRequiresCommand::InitialPass(std::vector<std::string> const& args) |
|||
{ |
|||
if(args.size() < 4 ) |
|||
{ |
|||
this->SetError("called with incorrect number of arguments"); |
|||
return false; |
|||
} |
|||
std::string testVarible = args[0]; |
|||
if(m_Makefile->IsON(testVarible.c_str())) |
|||
{ |
|||
return true; |
|||
} |
|||
std::string resultVarible = args[1]; |
|||
std::string message = args[2]; |
|||
bool requirementsMet = true; |
|||
std::string notSet; |
|||
for(int i = 3; i < args.size(); ++i) |
|||
{ |
|||
if(!m_Makefile->IsOn(args[i].c_str())) |
|||
{ |
|||
requirementsMet = false; |
|||
notSet += args[i]; |
|||
notSet += " "; |
|||
} |
|||
} |
|||
return true; |
|||
} |
|||
|
@ -0,0 +1,104 @@ |
|||
/*========================================================================= |
|||
|
|||
Program: Insight Segmentation & Registration Toolkit |
|||
Module: $RCSfile$ |
|||
Language: C++ |
|||
Date: $Date$ |
|||
Version: $Revision$ |
|||
|
|||
Copyright (c) 2001 Insight Consortium |
|||
All rights reserved. |
|||
|
|||
Redistribution and use in source and binary forms, with or without |
|||
modification, are permitted provided that the following conditions are met: |
|||
|
|||
* Redistributions of source code must retain the above copyright notice, |
|||
this list of conditions and the following disclaimer. |
|||
|
|||
* Redistributions in binary form must reproduce the above copyright notice, |
|||
this list of conditions and the following disclaimer in the documentation |
|||
and/or other materials provided with the distribution. |
|||
|
|||
* The name of the Insight Consortium, nor the names of any consortium members, |
|||
nor of any contributors, may be used to endorse or promote products derived |
|||
from this software without specific prior written permission. |
|||
|
|||
* Modified source versions must be plainly marked as such, and must not be |
|||
misrepresented as being the original software. |
|||
|
|||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ``AS IS'' |
|||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR |
|||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
|||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
|||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||
|
|||
=========================================================================*/ |
|||
#ifndef cmVariableRequiresCommand_h |
|||
#define cmVariableRequiresCommand_h |
|||
|
|||
#include "cmStandardIncludes.h" |
|||
#include "cmCommand.h" |
|||
|
|||
/** \class cmVariableRequiresCommand |
|||
* \brief Displays a message to the user |
|||
* |
|||
*/ |
|||
class cmVariableRequiresCommand : public cmCommand |
|||
{ |
|||
public: |
|||
/** |
|||
* This is a virtual constructor for the command. |
|||
*/ |
|||
virtual cmCommand* Clone() |
|||
{ |
|||
return new cmVariableRequiresCommand; |
|||
} |
|||
|
|||
/** |
|||
* This is called when the command is first encountered in |
|||
* the CMakeLists.txt file. |
|||
*/ |
|||
virtual bool InitialPass(std::vector<std::string> const& args); |
|||
|
|||
/** |
|||
* The name of the command as specified in CMakeList.txt. |
|||
*/ |
|||
virtual const char* GetName() { return "MESSAGE";} |
|||
|
|||
/** |
|||
* Succinct documentation. |
|||
*/ |
|||
virtual const char* GetTerseDocumentation() |
|||
{ |
|||
return "Display an error message ."; |
|||
} |
|||
|
|||
/** |
|||
* More documentation. |
|||
*/ |
|||
virtual const char* GetFullDocumentation() |
|||
{ |
|||
return |
|||
"VARIABLE_REQUIRES(TEST_VARIBLE RESULT_VARIBLE\"Error Message\" " |
|||
"REQUIRED_VARIABLE1 REQUIRED_VARIABLE2 ...) " |
|||
"The first argument (TEST_VARIABLE) is the name of the varible to be " |
|||
"tested, if that varible is false nothing else is done. If " |
|||
"TEST_VARIABLE is true, then " |
|||
"The next arguemnt (RESULT_VARIABLE) is a vairable that is set to true " |
|||
"if all the " |
|||
"required variables are set, the next argument " |
|||
"is a message to be displayed if required varibles are not set. " |
|||
"The rest of the arguments are varibles that must be true or not " |
|||
"set to NOTFOUND to avoid an error. "; |
|||
} |
|||
|
|||
cmTypeMacro(cmVariableRequiresCommand, cmCommand); |
|||
}; |
|||
|
|||
|
|||
#endif |
Write
Preview
Loading…
Cancel
Save
Reference in new issue