mirror of
https://github.com/reactos/CMake.git
synced 2024-11-29 06:20:23 +00:00
ENH: Removing old-style cable commands related to the instantiation functionality which has now been removed from cable.
This commit is contained in:
parent
b4339eba05
commit
873c9e7840
@ -1,80 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 "cmCableCloseNamespaceCommand.h"
|
||||
#include "cmCacheManager.h"
|
||||
|
||||
|
||||
// cmCableCloseNamespaceCommand
|
||||
bool cmCableCloseNamespaceCommand::InitialPass(std::vector<std::string>& args)
|
||||
{
|
||||
if(args.size() != 1)
|
||||
{
|
||||
this->SetError("called with incorrect number of arguments");
|
||||
return false;
|
||||
}
|
||||
|
||||
// This command needs to access the Cable data.
|
||||
this->SetupCableData();
|
||||
|
||||
// The argument is the namespace name.
|
||||
m_NamespaceName = args[0];
|
||||
|
||||
// Ask the cable data to close the namespace.
|
||||
m_CableData->CloseNamespace(m_NamespaceName);
|
||||
|
||||
// Write the configuration for this command.
|
||||
this->WriteNamespaceFooter();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generate a CABLE Namespace close tag.
|
||||
*/
|
||||
void cmCableCloseNamespaceCommand::WriteNamespaceFooter() const
|
||||
{
|
||||
m_CableData->Unindent();
|
||||
std::ostream& os = m_CableData->GetOutputStream();
|
||||
cmCableData::Indentation indent = m_CableData->GetIndentation();
|
||||
os << indent << "</Namespace> <!-- \"" << m_NamespaceName.c_str()
|
||||
<< "\" -->" << std::endl;
|
||||
}
|
@ -1,114 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 cmCableCloseNamespaceCommand_h
|
||||
#define cmCableCloseNamespaceCommand_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCableCommand.h"
|
||||
|
||||
/** \class cmCableCloseNamespaceCommand
|
||||
* \brief Define a command that closes a CABLE Namespace.
|
||||
*
|
||||
* cmCableCloseNamespaceCommand is used to generate CABLE Namespace
|
||||
* close tags in the configuration file.
|
||||
*/
|
||||
class cmCableCloseNamespaceCommand : public cmCableCommand
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
{
|
||||
return new cmCableCloseNamespaceCommand;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is called when the command is first encountered in
|
||||
* the CMakeLists.txt file.
|
||||
*/
|
||||
virtual bool InitialPass(std::vector<std::string>& args);
|
||||
|
||||
/**
|
||||
* This determines if the command gets propagated down
|
||||
* to makefiles located in subdirectories.
|
||||
*/
|
||||
virtual bool IsInherited()
|
||||
{return true;}
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual const char* GetName() { return "CABLE_CLOSE_NAMESPACE";}
|
||||
|
||||
/**
|
||||
* Succinct documentation.
|
||||
*/
|
||||
virtual const char* GetTerseDocumentation()
|
||||
{
|
||||
return "Close a CABLE Namespace";
|
||||
}
|
||||
|
||||
/**
|
||||
* More documentation.
|
||||
*/
|
||||
virtual const char* GetFullDocumentation()
|
||||
{
|
||||
return
|
||||
"CABLE_CLOSE_NAMESPACE(namespace_name)\n"
|
||||
"Close the given namespace in the generated configuration file.\n"
|
||||
"There must be a matching CABLE_OPEN_NAMESPACE(namespace_name)\n"
|
||||
"called with the same name.";
|
||||
}
|
||||
|
||||
cmTypeMacro(cmCableCloseNamespaceCommand, cmCableCommand);
|
||||
private:
|
||||
void WriteNamespaceFooter() const;
|
||||
private:
|
||||
/**
|
||||
* The name of the namespace to setup.
|
||||
*/
|
||||
std::string m_NamespaceName;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -1,107 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 "cmCableCommand.h"
|
||||
#include "cmCacheManager.h"
|
||||
|
||||
// cmCableCommand
|
||||
|
||||
|
||||
/**
|
||||
* Constructor initializes to empty m_CableData.
|
||||
*/
|
||||
cmCableCommand::cmCableCommand(): m_CableData(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Destructor frees the cmCableData only if this command is its owner.
|
||||
*/
|
||||
cmCableCommand::~cmCableCommand()
|
||||
{
|
||||
if(m_CableData && m_CableData->OwnerIs(this))
|
||||
{
|
||||
delete m_CableData;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ensure that this cmCableCommand has a valid m_CableData pointer.
|
||||
*/
|
||||
void cmCableCommand::SetupCableData()
|
||||
{
|
||||
// Only do something if the pointer is invalid.
|
||||
if(m_CableData)
|
||||
{ return; }
|
||||
|
||||
// Look through the vector of commands from the makefile.
|
||||
const std::vector<cmCommand*>& usedCommands =
|
||||
m_Makefile->GetUsedCommands();
|
||||
for(std::vector<cmCommand*>::const_iterator commandIter =
|
||||
usedCommands.begin(); commandIter != usedCommands.end(); ++commandIter)
|
||||
{
|
||||
// If this command is a cmCableCommand, see if it has a cmCableData
|
||||
// instance.
|
||||
cmCableCommand* command = cmCableCommand::SafeDownCast(*commandIter);
|
||||
if(command)
|
||||
{ m_CableData = command->m_CableData; }
|
||||
|
||||
// If we found an instance of cmCableData, then we are done.
|
||||
if(m_CableData)
|
||||
{ return; }
|
||||
}
|
||||
|
||||
// We must make sure the output directory exists so that the CABLE
|
||||
// configuration file can be opened by the cmCableData.
|
||||
std::string pathName = m_Makefile->GetStartOutputDirectory();
|
||||
if(!cmSystemTools::MakeDirectory(pathName.c_str()))
|
||||
{
|
||||
cmSystemTools::Error("Unable to make directory ", pathName.c_str());
|
||||
}
|
||||
|
||||
// We didn't find another cmCableCommand with a valid cmCableData.
|
||||
// We must allocate the new cmCableData ourselves, and with this
|
||||
// command as its owner.
|
||||
pathName += "/cable_config.xml";
|
||||
m_CableData = new cmCableData(this, pathName);
|
||||
}
|
||||
|
@ -1,78 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 cmCableCommand_h
|
||||
#define cmCableCommand_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCommand.h"
|
||||
#include "cmCableData.h"
|
||||
|
||||
/** \class cmCableCommand
|
||||
* \brief Superclass for all cmCable command classes.
|
||||
*
|
||||
* cmCableCommand is the superclass for all CABLE-related commands.
|
||||
* The C++ Automated Bindings for Language Extension (CABLE) tool is
|
||||
* configured using an XML input file. The input format is quite
|
||||
* flexible, but XML is hard for humans to write by hand. The CABLE
|
||||
* commands in CMake are designed to simplify the interface with only
|
||||
* a small loss in functionality. These commands can be used to
|
||||
* automatically generate CABLE configuration files.
|
||||
*/
|
||||
class cmCableCommand : public cmCommand
|
||||
{
|
||||
public:
|
||||
cmCableCommand();
|
||||
virtual ~cmCableCommand();
|
||||
|
||||
cmTypeMacro(cmCableCommand, cmCommand);
|
||||
protected:
|
||||
void SetupCableData();
|
||||
|
||||
/**
|
||||
* The cmCableData holding common information for all cmCableCommand
|
||||
* instances.
|
||||
*/
|
||||
cmCableData* m_CableData;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -1,244 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 "cmCableData.h"
|
||||
#include "cmCacheManager.h"
|
||||
|
||||
#include "cmCablePackageCommand.h"
|
||||
|
||||
/**
|
||||
* The cmCableData instance is owned by one cmCableCommand, which is given
|
||||
* to this constructor.
|
||||
*/
|
||||
cmCableData::cmCableData(const cmCableCommand* owner,
|
||||
const std::string& configurationFile):
|
||||
m_Owner(owner),
|
||||
m_OutputFileName(configurationFile),
|
||||
m_OutputFile(configurationFile.c_str()),
|
||||
m_Indentation(0),
|
||||
m_Package(NULL),
|
||||
m_PackageNamespaceDepth(0)
|
||||
{
|
||||
this->InitializeOutputFile();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Free all data that was stored here. Also close the output file.
|
||||
*/
|
||||
cmCableData::~cmCableData()
|
||||
{
|
||||
// End last package, if any.
|
||||
this->EndPackage();
|
||||
|
||||
// Finish up the output file.
|
||||
this->CloseOutputFile();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Write the configuration header to the output file.
|
||||
*/
|
||||
void cmCableData::InitializeOutputFile()
|
||||
{
|
||||
if(m_OutputFile)
|
||||
{
|
||||
this->WriteConfigurationHeader();
|
||||
}
|
||||
else
|
||||
{
|
||||
cmSystemTools::Error("Unable to open CABLE config file: ",
|
||||
m_OutputFileName.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Close the configuration output file. This writes the configuration
|
||||
* footer.
|
||||
*/
|
||||
void cmCableData::CloseOutputFile()
|
||||
{
|
||||
if(m_OutputFile)
|
||||
{
|
||||
this->WriteConfigurationFooter();
|
||||
m_OutputFile.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Write a CABLE configuration file header.
|
||||
*/
|
||||
void cmCableData::WriteConfigurationHeader()
|
||||
{
|
||||
m_OutputFile << m_Indentation << "<?xml version=\"1.0\"?>" << std::endl
|
||||
<< m_Indentation << "<CableConfiguration>" << std::endl;
|
||||
this->Indent();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Write a CABLE configuration file footer.
|
||||
*/
|
||||
void cmCableData::WriteConfigurationFooter()
|
||||
{
|
||||
this->Unindent();
|
||||
m_OutputFile << m_Indentation << "</CableConfiguration>" << std::endl;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Print indentation spaces.
|
||||
*/
|
||||
void
|
||||
cmCableData::Indentation
|
||||
::Print(std::ostream& os) const
|
||||
{
|
||||
if(m_Indent <= 0)
|
||||
{ return; }
|
||||
|
||||
// Use blocks of 8 spaces to speed up big indents.
|
||||
unsigned int blockCount = m_Indent >> 3;
|
||||
unsigned int singleCount = m_Indent & 7;
|
||||
while(blockCount-- > 0)
|
||||
{
|
||||
os << " ";
|
||||
}
|
||||
while(singleCount-- > 0)
|
||||
{
|
||||
os << " ";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Open a namespace with the given name.
|
||||
*/
|
||||
void cmCableData::OpenNamespace(const std::string& name)
|
||||
{
|
||||
m_NamespaceStack.push_back(name);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Close the current namespace, checking whether it has the given name.
|
||||
*/
|
||||
void cmCableData::CloseNamespace(const std::string& name)
|
||||
{
|
||||
if(m_NamespaceStack.empty())
|
||||
{
|
||||
cmSystemTools::Error("Unbalanced close-namespace = ", name.c_str());
|
||||
return;
|
||||
}
|
||||
if(m_NamespaceStack.back() != name)
|
||||
{
|
||||
cmSystemTools::Error("Wrong name on close-namespace = ", name.c_str());
|
||||
}
|
||||
|
||||
// If this closes the namespace where the current package was opened,
|
||||
// the package must end as well.
|
||||
if(m_Package && (m_PackageNamespaceDepth == m_NamespaceStack.size()))
|
||||
{
|
||||
this->EndPackage();
|
||||
}
|
||||
|
||||
m_NamespaceStack.pop_back();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Begin a new package definition. If there is a current one, it
|
||||
* will be ended.
|
||||
*/
|
||||
void cmCableData::BeginPackage(cmCablePackageCommand* command)
|
||||
{
|
||||
// Close the current package, if any.
|
||||
this->EndPackage();
|
||||
|
||||
// Open this package.
|
||||
m_Package = command;
|
||||
|
||||
// Write out the package's header.
|
||||
m_Package->WritePackageHeader();
|
||||
|
||||
// Save the package's opening namespace depth for later verification
|
||||
// on the end of the package.
|
||||
m_PackageNamespaceDepth = m_NamespaceStack.size();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* End a package definition.
|
||||
*/
|
||||
void cmCableData::EndPackage()
|
||||
{
|
||||
// Make sure we have an open package.
|
||||
if(!m_Package)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Make sure the namespace nesting depth matches the opening depth
|
||||
// of the package.
|
||||
if(m_PackageNamespaceDepth != m_NamespaceStack.size())
|
||||
{
|
||||
cmSystemTools::Error("Package ended at different namespace depth than"
|
||||
"it was created!", "");
|
||||
}
|
||||
// Write out the package's footer.
|
||||
m_Package->WritePackageFooter();
|
||||
|
||||
// Done with the package.
|
||||
m_Package = NULL;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Simplify indentation printing by allowing Indentation objects to be added
|
||||
* to streams.
|
||||
*/
|
||||
std::ostream& operator<<(std::ostream& os,
|
||||
const cmCableData::Indentation& indent)
|
||||
{
|
||||
indent.Print(os);
|
||||
return os;
|
||||
}
|
||||
|
@ -1,141 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 cmCableData_h
|
||||
#define cmCableData_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCommand.h"
|
||||
|
||||
class cmCableCommand;
|
||||
class cmCablePackageCommand;
|
||||
|
||||
/** \class cmCableData
|
||||
* \brief Hold data in one location for all cmCableCommand subclasses.
|
||||
*/
|
||||
class cmCableData
|
||||
{
|
||||
public:
|
||||
cmCableData(const cmCableCommand*, const std::string&);
|
||||
~cmCableData();
|
||||
|
||||
/**
|
||||
* Returns true if the given cmCableCommand is the owner of this
|
||||
* cmCableData.
|
||||
*/
|
||||
bool OwnerIs(const cmCableCommand* owner) const
|
||||
{ return (owner == m_Owner); }
|
||||
|
||||
std::ostream& GetOutputStream()
|
||||
{ return m_OutputFile; }
|
||||
|
||||
void InitializeOutputFile();
|
||||
void CloseOutputFile();
|
||||
|
||||
void WriteConfigurationHeader();
|
||||
void WriteConfigurationFooter();
|
||||
|
||||
/**
|
||||
* Class to simplify indentation printing.
|
||||
*/
|
||||
class Indentation
|
||||
{
|
||||
public:
|
||||
Indentation(int indent): m_Indent(indent) {}
|
||||
void Print(std::ostream& os) const;
|
||||
Indentation Next() const { return Indentation(m_Indent+2); }
|
||||
Indentation Previous() const { return Indentation(m_Indent-2); }
|
||||
private:
|
||||
int m_Indent;
|
||||
};
|
||||
|
||||
void Indent() { m_Indentation = m_Indentation.Next(); }
|
||||
void Unindent() { m_Indentation = m_Indentation.Previous(); }
|
||||
const Indentation& GetIndentation() const { return m_Indentation; }
|
||||
|
||||
void OpenNamespace(const std::string&);
|
||||
void CloseNamespace(const std::string&);
|
||||
|
||||
void BeginPackage(cmCablePackageCommand*);
|
||||
void EndPackage();
|
||||
|
||||
cmCablePackageCommand *GetCurrentPackage() { return m_Package; }
|
||||
|
||||
private:
|
||||
/**
|
||||
* The cmCableCommand which created this instance of cmCableCommand.
|
||||
*/
|
||||
const cmCableCommand* m_Owner;
|
||||
|
||||
/**
|
||||
* The name of the output file opened as m_OutputFile.
|
||||
*/
|
||||
std::string m_OutputFileName;
|
||||
|
||||
/**
|
||||
* The output file to which the configuration is written.
|
||||
*/
|
||||
std::ofstream m_OutputFile;
|
||||
|
||||
/**
|
||||
* Current indentation for output.
|
||||
*/
|
||||
Indentation m_Indentation;
|
||||
|
||||
/**
|
||||
* The stack of namespaces.
|
||||
*/
|
||||
std::list<std::string> m_NamespaceStack;
|
||||
|
||||
/**
|
||||
* The command that created the package currently being defined.
|
||||
*/
|
||||
cmCablePackageCommand* m_Package;
|
||||
|
||||
/**
|
||||
* The namespace level at which the current package was created.
|
||||
* This must be the level when the package is ended.
|
||||
*/
|
||||
unsigned int m_PackageNamespaceDepth;
|
||||
};
|
||||
|
||||
std::ostream& operator<<(std::ostream&, const cmCableData::Indentation&);
|
||||
|
||||
#endif
|
@ -1,323 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 "cmCableDefineSetCommand.h"
|
||||
#include "cmCacheManager.h"
|
||||
|
||||
#include "cmRegularExpression.h"
|
||||
|
||||
|
||||
// cmCableDefineSetCommand
|
||||
bool cmCableDefineSetCommand::InitialPass(std::vector<std::string>& args)
|
||||
{
|
||||
if(args.size() < 2)
|
||||
{
|
||||
this->SetError("called with incorrect number of arguments");
|
||||
return false;
|
||||
}
|
||||
|
||||
// This command needs access to the Cable data.
|
||||
this->SetupCableData();
|
||||
|
||||
std::vector<std::string>::const_iterator arg = args.begin();
|
||||
|
||||
// The first argument is the name of the set.
|
||||
m_SetName = *arg++;
|
||||
|
||||
// All arguments until a "SOURCE_FILES" are the elements to be placed in
|
||||
// the set.
|
||||
for(; (arg != args.end()) && (*arg != "SOURCE_FILES"); ++arg)
|
||||
{
|
||||
// If the element cannot be added, return an error.
|
||||
// This can occur when a tag is not specified and can't be generated.
|
||||
if(!this->AddElement(*arg))
|
||||
{ return false; }
|
||||
}
|
||||
|
||||
// If we are not at the end, the "SOURCE_FILES" keyword has been
|
||||
// encountered.
|
||||
if(arg != args.end())
|
||||
{
|
||||
// The rest of the arguments are source files to be included in
|
||||
// any package which references the set.
|
||||
for(++arg; arg != args.end(); ++arg)
|
||||
{
|
||||
if(!this->AddSourceFile(*arg))
|
||||
{ return false; }
|
||||
}
|
||||
}
|
||||
|
||||
// Write this command's configuration output.
|
||||
this->WriteConfiguration();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Write the CABLE configuration code to define this Set.
|
||||
*/
|
||||
void cmCableDefineSetCommand::WriteConfiguration() const
|
||||
{
|
||||
cmRegularExpression needCdataBlock("[&<>]");
|
||||
|
||||
// Get the ouptut information from the cmCableData.
|
||||
std::ostream& os = m_CableData->GetOutputStream();
|
||||
cmCableData::Indentation indent = m_CableData->GetIndentation();
|
||||
|
||||
// Output the code.
|
||||
os << indent << "<" << this->GetXmlTag() << " name=\"" << m_SetName.c_str() << "\">" << std::endl;
|
||||
for(std::vector<std::string>::const_iterator e = m_SourceHeaders.begin();
|
||||
e != m_SourceHeaders.end(); ++e)
|
||||
{
|
||||
os << indent << " <File name=\"" << e->c_str() << "\"/>" << std::endl;
|
||||
}
|
||||
for(std::vector<std::string>::const_iterator e = m_InstantiationSources.begin();
|
||||
e != m_InstantiationSources.end(); ++e)
|
||||
{
|
||||
os << indent << " <File name=\"" << e->c_str()
|
||||
<< "\" purpose=\"instantiate\"/>" << std::endl;
|
||||
}
|
||||
for(Elements::const_iterator e = m_Elements.begin();
|
||||
e != m_Elements.end(); ++e)
|
||||
{
|
||||
os << indent << " <Element";
|
||||
// Only output the tag if it is not the empty string.
|
||||
if(e->first.length() > 0)
|
||||
{
|
||||
os << " tag=\"" << e->first.c_str() << "\"";
|
||||
}
|
||||
os << ">";
|
||||
if(needCdataBlock.find(e->second.c_str()))
|
||||
{
|
||||
os << "<![CDATA[" << e->second.c_str() << "]]>";
|
||||
}
|
||||
else
|
||||
{
|
||||
os << e->second.c_str();
|
||||
}
|
||||
os << "</Element>" << std::endl;
|
||||
}
|
||||
os << indent << "</" << this->GetXmlTag() << ">" << std::endl;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add an element to the set. The given string is the argument to the
|
||||
* command describing the element. There are two formats allowed:
|
||||
* "code" = The code describing the element to CABLE is simply given.
|
||||
* The GenerateTag() method will guess at a good tag for the
|
||||
* code.
|
||||
* "tag:code" = The left side of a single colon is text describing the tag.
|
||||
* GenerateTag() will not be called.
|
||||
*/
|
||||
bool cmCableDefineSetCommand::AddElement(const std::string& arg)
|
||||
{
|
||||
// A regular expression to match the tagged element specification.
|
||||
cmRegularExpression tagGiven("^([A-Za-z_0-9]*)[ \t]*:[ \t]*([^:].*|::.*)$");
|
||||
|
||||
std::string tag;
|
||||
std::string code;
|
||||
|
||||
if(tagGiven.find(arg.c_str()))
|
||||
{
|
||||
// A tag was given. Use it.
|
||||
tag = tagGiven.match(1);
|
||||
code = tagGiven.match(2);
|
||||
}
|
||||
else
|
||||
{
|
||||
// No tag was given. Try to generate one.
|
||||
if(!this->GenerateTag(arg, tag))
|
||||
{ return false; }
|
||||
code = arg;
|
||||
}
|
||||
|
||||
// Add an element with the given tag and code.
|
||||
m_Elements.push_back(Element(tag, code));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Given the string representing a set element, automatically generate
|
||||
* the CABLE element tag for it.
|
||||
*
|
||||
* **This function determines how the output language of all
|
||||
* CABLE-generated wrappers will look!**
|
||||
*/
|
||||
bool
|
||||
cmCableDefineSetCommand::GenerateTag(const std::string& element,
|
||||
std::string& tag)
|
||||
{
|
||||
// Hold the regular expressions for matching against the element.
|
||||
cmRegularExpression regex;
|
||||
|
||||
// If the element's code begins in a $, it is referring to a set name.
|
||||
// The set's elements have their own tags, so we don't need one.
|
||||
regex.compile("^[ \t]*\\$");
|
||||
if(regex.find(element))
|
||||
{ tag = ""; return true; }
|
||||
|
||||
// Test for simple integer
|
||||
regex.compile("^[ \t]*([0-9]*)[ \t]*$");
|
||||
if(regex.find(element))
|
||||
{
|
||||
tag = "_";
|
||||
tag.append(regex.match(1));
|
||||
return true;
|
||||
}
|
||||
|
||||
// Test for basic integer type
|
||||
regex.compile("^[ \t]*(unsigned[ ]|signed[ ])?[ \t]*(char|short|int|long|long[ ]long)[ \t]*$");
|
||||
if(regex.find(element))
|
||||
{
|
||||
tag = "_";
|
||||
if(regex.match(1) == "unsigned ")
|
||||
{ tag.append("u"); }
|
||||
if(regex.match(2) == "long long")
|
||||
{ tag.append("llong"); }
|
||||
else
|
||||
{ tag.append(regex.match(2)); }
|
||||
return true;
|
||||
}
|
||||
|
||||
// Test for basic floating-point type
|
||||
regex.compile("^[ \t]*(long[ ]|)[ \t]*(float|double)[ \t]*$");
|
||||
if(regex.find(element))
|
||||
{
|
||||
tag = "_";
|
||||
if(regex.match(1) == "long ")
|
||||
tag.append("l");
|
||||
tag.append(regex.match(2));
|
||||
return true;
|
||||
}
|
||||
|
||||
// Test for basic wide-character type
|
||||
regex.compile("^[ \t]*(wchar_t)[ \t]*$");
|
||||
if(regex.find(element))
|
||||
{
|
||||
tag = "_wchar";
|
||||
return true;
|
||||
}
|
||||
|
||||
// Test for plain type name (without template arguments).
|
||||
regex.compile("^[ \t]*([A-Za-z_][A-Za-z0-9_]*)[ \t]*$");
|
||||
if(regex.find(element))
|
||||
{
|
||||
// The tag is the same as the type.
|
||||
tag = regex.match(1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Test for template class instance.
|
||||
regex.compile("^[ \t]*([A-Za-z_][A-Za-z0-9_]*)<.*[ \t]*$");
|
||||
if(regex.find(element))
|
||||
{
|
||||
// The tag is the type without arguments (the arguments may have
|
||||
// their own tags).
|
||||
tag = regex.match(1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// We can't generate a tag.
|
||||
std::string err =
|
||||
("doesn't know how to generate tag for element \""+element+"\" in set \""
|
||||
+m_SetName+"\"\nPlease specify one with the \"tag:element\" syntax.");
|
||||
this->SetError(err.c_str());
|
||||
|
||||
tag = "";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add a source file associated with this set. Any package referencing
|
||||
* this set will automatically include this source file.
|
||||
*/
|
||||
bool cmCableDefineSetCommand::AddSourceFile(const std::string& file)
|
||||
{
|
||||
// We must locate the file in the include path so that we can detect
|
||||
// its extension, and whether there is more than one to find.
|
||||
std::string header = file+".h";
|
||||
std::string txx = file+".txx";
|
||||
m_Makefile->ExpandVariablesInString(header);
|
||||
m_Makefile->ExpandVariablesInString(txx);
|
||||
|
||||
// See if the file just exists here. The compiler's search path will
|
||||
// locate it.
|
||||
if(cmSystemTools::FileExists(header.c_str()))
|
||||
{
|
||||
m_SourceHeaders.push_back(header);
|
||||
// See if there is a matching .txx as well.
|
||||
if(cmSystemTools::FileExists(txx.c_str()))
|
||||
{
|
||||
m_InstantiationSources.push_back(txx);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// We must look for the file in the include search path.
|
||||
const std::vector<std::string>& includeDirectories =
|
||||
m_Makefile->GetIncludeDirectories();
|
||||
|
||||
for(std::vector<std::string>::const_iterator dir = includeDirectories.begin();
|
||||
dir != includeDirectories.end(); ++dir)
|
||||
{
|
||||
std::string path = *dir + "/";
|
||||
m_Makefile->ExpandVariablesInString(path);
|
||||
if(cmSystemTools::FileExists((path+header).c_str()))
|
||||
{
|
||||
m_SourceHeaders.push_back(header);
|
||||
// See if there is a matching .txx as well.
|
||||
if(cmSystemTools::FileExists((path+txx).c_str()))
|
||||
{
|
||||
m_InstantiationSources.push_back(txx);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// We couldn't locate the source file. Report the error.
|
||||
std::string err = "couldn't find source file " + header;
|
||||
this->SetError(err.c_str());
|
||||
return false;
|
||||
}
|
@ -1,142 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 cmCableDefineSetCommand_h
|
||||
#define cmCableDefineSetCommand_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCableCommand.h"
|
||||
|
||||
/** \class cmCableDefineSetCommand
|
||||
* \brief Define a command that adds a CABLE Set definition.
|
||||
*
|
||||
* cmCableDefineSetCommand is used to define a named CABLE Set.
|
||||
* The set can be referenced in other CABLE command arguments
|
||||
* with a '$' followed by the set name.
|
||||
*/
|
||||
class cmCableDefineSetCommand : public cmCableCommand
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
{
|
||||
return new cmCableDefineSetCommand;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is called when the command is first encountered in
|
||||
* the CMakeLists.txt file.
|
||||
*/
|
||||
virtual bool InitialPass(std::vector<std::string>& args);
|
||||
|
||||
/**
|
||||
* This determines if the command gets propagated down
|
||||
* to makefiles located in subdirectories.
|
||||
*/
|
||||
virtual bool IsInherited()
|
||||
{ return true; }
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual const char* GetName() { return "CABLE_DEFINE_SET";}
|
||||
|
||||
/**
|
||||
* Succinct documentation.
|
||||
*/
|
||||
virtual const char* GetTerseDocumentation()
|
||||
{
|
||||
return "Define a CABLE Set.";
|
||||
}
|
||||
|
||||
/**
|
||||
* More documentation.
|
||||
*/
|
||||
virtual const char* GetFullDocumentation()
|
||||
{
|
||||
return
|
||||
"CABLE_DEFINE_SET(name_of_set [[tag1]:]memeber1 [[tag2]:]member2 ...\n"
|
||||
" [SOURCE_FILES source1 source2 ...]] )\n"
|
||||
"Generates a Set definition in the CABLE configuration. The sets are\n"
|
||||
"referenced in other CABLE commands by a '$' immediately followed by\n"
|
||||
"the set name (ex. $SetName). If a the \"tag:\" syntax is not used,\n"
|
||||
"an attempt is made to auto-generate a meaningful tag. If the\n"
|
||||
"SOURCE_FILES keyword is given, all arguments after it refer to header\n"
|
||||
"files to be included in any package referencing the set.\n";
|
||||
}
|
||||
|
||||
cmTypeMacro(cmCableDefineSetCommand, cmCableCommand);
|
||||
|
||||
protected:
|
||||
virtual const char* GetXmlTag() const { return "Set"; }
|
||||
void WriteConfiguration() const;
|
||||
bool AddElement(const std::string&);
|
||||
bool GenerateTag(const std::string&, std::string&);
|
||||
bool AddSourceFile(const std::string&);
|
||||
private:
|
||||
typedef std::pair<std::string, std::string> Element;
|
||||
typedef std::vector<Element> Elements;
|
||||
|
||||
/**
|
||||
* The name of the set.
|
||||
*/
|
||||
std::string m_SetName;
|
||||
|
||||
/**
|
||||
* The elements to be defined in the set (before $ expansion).
|
||||
*/
|
||||
Elements m_Elements;
|
||||
|
||||
/**
|
||||
* The source headers associated with this set.
|
||||
*/
|
||||
std::vector<std::string> m_SourceHeaders;
|
||||
|
||||
/**
|
||||
* The instantiation sources associated with this set.
|
||||
*/
|
||||
std::vector<std::string> m_InstantiationSources;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -1,74 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 "cmCableInstantiateClassCommand.h"
|
||||
#include "cmCacheManager.h"
|
||||
|
||||
#include "cmRegularExpression.h"
|
||||
|
||||
|
||||
/**
|
||||
* Write the CABLE configuration code to define this InstantiationSet.
|
||||
* This includes the "class" keyword to do class template instantiations.
|
||||
*/
|
||||
void cmCableInstantiateClassCommand::WriteConfiguration() const
|
||||
{
|
||||
std::ostream& os = m_CableData->GetOutputStream();
|
||||
cmCableData::Indentation indent = m_CableData->GetIndentation();
|
||||
|
||||
cmRegularExpression needCdataBlock("[&<>]");
|
||||
|
||||
os << indent << "<InstantiationSet>" << std::endl;
|
||||
for(Entries::const_iterator e = m_Entries.begin();
|
||||
e != m_Entries.end(); ++e)
|
||||
{
|
||||
os << indent << " <Element>class ";
|
||||
if(needCdataBlock.find(e->c_str()))
|
||||
{
|
||||
os << "<![CDATA[" << e->c_str() << "]]>";
|
||||
}
|
||||
else
|
||||
{
|
||||
os << e->c_str();
|
||||
}
|
||||
os << "</Element>" << std::endl;
|
||||
}
|
||||
os << indent << "</InstantiationSet>" << std::endl;
|
||||
}
|
@ -1,100 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 cmCableInstantiateClassCommand_h
|
||||
#define cmCableInstantiateClassCommand_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCablePackageEntryCommand.h"
|
||||
|
||||
/** \class cmCableInstantiateClassCommand
|
||||
* \brief Define a command that generates a rule for explicit template
|
||||
* instantiations of classes.
|
||||
*
|
||||
* cmCableInstantiateCommand is used to generate a rule in a CABLE
|
||||
* configuration file to create explicit template instantiations of
|
||||
* classes.
|
||||
*/
|
||||
class cmCableInstantiateClassCommand : public cmCablePackageEntryCommand
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
{
|
||||
return new cmCableInstantiateClassCommand;
|
||||
}
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual const char* GetName() { return "CABLE_INSTANTIATE_CLASS";}
|
||||
|
||||
/**
|
||||
* Succinct documentation.
|
||||
*/
|
||||
virtual const char* GetTerseDocumentation()
|
||||
{
|
||||
return "Define CABLE InstantiationSet of classes in a package.";
|
||||
}
|
||||
|
||||
/**
|
||||
* More documentation.
|
||||
*/
|
||||
virtual const char* GetFullDocumentation()
|
||||
{
|
||||
return
|
||||
"CABLE_INSTANTIATE_CLASS(package_name member1 member2 ...)\n"
|
||||
"Generates an InstantiationSet in the CABLE configuration. It is\n"
|
||||
"assumed that all members of the set are explicit instantiations of\n"
|
||||
"template classes (not functions, operators, etc).";
|
||||
}
|
||||
|
||||
virtual void WriteConfiguration() const;
|
||||
|
||||
cmTypeMacro(cmCableInstantiateClassCommand, cmCablePackageEntryCommand);
|
||||
protected:
|
||||
typedef cmCablePackageEntryCommand::Entries Entries;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -1,73 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 "cmCableInstantiateCommand.h"
|
||||
#include "cmCacheManager.h"
|
||||
|
||||
#include "cmRegularExpression.h"
|
||||
|
||||
|
||||
/**
|
||||
* Write the CABLE configuration code to define this InstantiationSet.
|
||||
*/
|
||||
void cmCableInstantiateCommand::WriteConfiguration() const
|
||||
{
|
||||
std::ostream& os = m_CableData->GetOutputStream();
|
||||
cmCableData::Indentation indent = m_CableData->GetIndentation();
|
||||
|
||||
cmRegularExpression needCdataBlock("[&<>]");
|
||||
|
||||
os << indent << "<InstantiationSet>" << std::endl;
|
||||
for(Entries::const_iterator e = m_Entries.begin();
|
||||
e != m_Entries.end(); ++e)
|
||||
{
|
||||
os << indent << " <Element>";
|
||||
if(needCdataBlock.find(e->c_str()))
|
||||
{
|
||||
os << "<![CDATA[" << e->c_str() << "]]>";
|
||||
}
|
||||
else
|
||||
{
|
||||
os << e->c_str();
|
||||
}
|
||||
os << "</Element>" << std::endl;
|
||||
}
|
||||
os << indent << "</InstantiationSet>" << std::endl;
|
||||
}
|
@ -1,99 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 cmCableInstantiateCommand_h
|
||||
#define cmCableInstantiateCommand_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCablePackageEntryCommand.h"
|
||||
|
||||
/** \class cmCableInstantiateCommand
|
||||
* \brief Define a command that generates a rule for explicit template
|
||||
* instantiations.
|
||||
*
|
||||
* cmCableInstantiateCommand is used to generate a rule in a CABLE
|
||||
* configuration file to create explicit template instantiations.
|
||||
*/
|
||||
class cmCableInstantiateCommand : public cmCablePackageEntryCommand
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
{
|
||||
return new cmCableInstantiateCommand;
|
||||
}
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual const char* GetName() { return "CABLE_INSTANTIATE";}
|
||||
|
||||
/**
|
||||
* Succinct documentation.
|
||||
*/
|
||||
virtual const char* GetTerseDocumentation()
|
||||
{
|
||||
return "Define CABLE InstantiationSet in a package.";
|
||||
}
|
||||
|
||||
/**
|
||||
* More documentation.
|
||||
*/
|
||||
virtual const char* GetFullDocumentation()
|
||||
{
|
||||
return
|
||||
"CABLE_INSTANTIATE(member1 member2 ...)\n"
|
||||
"Generates an InstantiationSet in the CABLE configuration. It is\n"
|
||||
"assumed that all members of the set are explicit instantiations of\n"
|
||||
"template non-classes (functions, operators, etc).";
|
||||
}
|
||||
|
||||
virtual void WriteConfiguration() const;
|
||||
|
||||
cmTypeMacro(cmCableInstantiateCommand, cmCablePackageEntryCommand);
|
||||
protected:
|
||||
typedef cmCablePackageEntryCommand::Entries Entries;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -1,80 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 "cmCableOpenNamespaceCommand.h"
|
||||
#include "cmCacheManager.h"
|
||||
|
||||
|
||||
// cmCableOpenNamespaceCommand
|
||||
bool cmCableOpenNamespaceCommand::InitialPass(std::vector<std::string>& args)
|
||||
{
|
||||
if(args.size() != 1)
|
||||
{
|
||||
this->SetError("called with incorrect number of arguments");
|
||||
return false;
|
||||
}
|
||||
|
||||
// This command needs to access the Cable data.
|
||||
this->SetupCableData();
|
||||
|
||||
// The argument is the namespace name.
|
||||
m_NamespaceName = args[0];
|
||||
|
||||
// Write the configuration for this command.
|
||||
this->WriteNamespaceHeader();
|
||||
|
||||
// Ask the cable data to open the namespace.
|
||||
m_CableData->OpenNamespace(m_NamespaceName);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generate a CABLE Namespace open tag.
|
||||
*/
|
||||
void cmCableOpenNamespaceCommand::WriteNamespaceHeader() const
|
||||
{
|
||||
std::ostream& os = m_CableData->GetOutputStream();
|
||||
cmCableData::Indentation indent = m_CableData->GetIndentation();
|
||||
os << indent << "<Namespace name=\"" << m_NamespaceName.c_str()
|
||||
<< "\">" << std::endl;
|
||||
m_CableData->Indent();
|
||||
}
|
@ -1,114 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 cmCableOpenNamespaceCommand_h
|
||||
#define cmCableOpenNamespaceCommand_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCableCommand.h"
|
||||
|
||||
/** \class cmCableOpenNamespaceCommand
|
||||
* \brief Define a command that opens a CABLE Namespace.
|
||||
*
|
||||
* cmCableOpenNamespaceCommand is used to generate CABLE Namespace
|
||||
* open tags in the configuration file.
|
||||
*/
|
||||
class cmCableOpenNamespaceCommand : public cmCableCommand
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
{
|
||||
return new cmCableOpenNamespaceCommand;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is called when the command is first encountered in
|
||||
* the CMakeLists.txt file.
|
||||
*/
|
||||
virtual bool InitialPass(std::vector<std::string>& args);
|
||||
|
||||
/**
|
||||
* This determines if the command gets propagated down
|
||||
* to makefiles located in subdirectories.
|
||||
*/
|
||||
virtual bool IsInherited()
|
||||
{return true;}
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual const char* GetName() { return "CABLE_OPEN_NAMESPACE";}
|
||||
|
||||
/**
|
||||
* Succinct documentation.
|
||||
*/
|
||||
virtual const char* GetTerseDocumentation()
|
||||
{
|
||||
return "Open a CABLE Namespace";
|
||||
}
|
||||
|
||||
/**
|
||||
* More documentation.
|
||||
*/
|
||||
virtual const char* GetFullDocumentation()
|
||||
{
|
||||
return
|
||||
"CABLE_OPEN_NAMESPACE(namespace_name)\n"
|
||||
"Open the given namespace in the generated configuration file.\n"
|
||||
"There must be a matching CABLE_CLOSE_NAMESPACE(namespace_name)\n"
|
||||
"called with the same name.";
|
||||
}
|
||||
|
||||
cmTypeMacro(cmCableOpenNamespaceCommand, cmCableCommand);
|
||||
private:
|
||||
void WriteNamespaceHeader() const;
|
||||
private:
|
||||
/**
|
||||
* The name of the namespace to setup.
|
||||
*/
|
||||
std::string m_NamespaceName;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -1,209 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 "cmCablePackageCommand.h"
|
||||
#include "cmCacheManager.h"
|
||||
#include "cmTarget.h"
|
||||
|
||||
|
||||
cmCablePackageCommand::~cmCablePackageCommand()
|
||||
{
|
||||
// If we are the owner of the cmCableData, we must delete it here.
|
||||
// For most cmCableCommands, the cmCableCommand destructor will take
|
||||
// care of this. If this package happens to be the last one, and is
|
||||
// the owner, then the destructor of cmCableData will call back to a method
|
||||
// in this class after the package part of it has been freed!
|
||||
if(m_CableData && m_CableData->OwnerIs(this))
|
||||
{
|
||||
delete m_CableData;
|
||||
// Make sure our superclass's destructor doesn't try to delete the
|
||||
// cmCableData too.
|
||||
m_CableData = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// cmCablePackageCommand
|
||||
bool cmCablePackageCommand::InitialPass(std::vector<std::string>& args)
|
||||
{
|
||||
if(args.size() != 2)
|
||||
{
|
||||
this->SetError("called with incorrect number of arguments");
|
||||
return false;
|
||||
}
|
||||
|
||||
// setup this once. Really this should probably be moved somewhere else
|
||||
// at some point.
|
||||
{
|
||||
// We must add a custom rule to cause the cable_config.xml to be re-built
|
||||
// when it is removed. Rebuilding it means re-running CMake.
|
||||
std::string cMakeLists = m_Makefile->GetStartDirectory();
|
||||
cMakeLists += "/";
|
||||
cMakeLists += "CMakeLists.txt";
|
||||
cMakeLists = cmSystemTools::EscapeSpaces(cMakeLists.c_str());
|
||||
|
||||
std::string command = "${CMAKE_COMMAND}";
|
||||
std::string commandArgs = cMakeLists;
|
||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||
commandArgs += " -DSP";
|
||||
#endif
|
||||
commandArgs += " -H\"";
|
||||
commandArgs += m_Makefile->GetHomeDirectory();
|
||||
commandArgs += "\" -S\"";
|
||||
commandArgs += m_Makefile->GetStartDirectory();
|
||||
commandArgs += "\" -O\"";
|
||||
commandArgs += m_Makefile->GetStartOutputDirectory();
|
||||
commandArgs += "\" -B\"";
|
||||
commandArgs += m_Makefile->GetHomeOutputDirectory();
|
||||
commandArgs += "\"";
|
||||
m_Makefile->ExpandVariablesInString(commandArgs);
|
||||
m_Makefile->ExpandVariablesInString(command);
|
||||
|
||||
std::vector<std::string> depends;
|
||||
m_Makefile->AddCustomCommand(cMakeLists.c_str(),
|
||||
command.c_str(),
|
||||
commandArgs.c_str(),
|
||||
depends,
|
||||
"cable_config.xml", args[1].c_str());
|
||||
}
|
||||
|
||||
// This command needs to access the Cable data.
|
||||
this->SetupCableData();
|
||||
|
||||
// The argument is the package name.
|
||||
m_PackageName = args[0];
|
||||
m_TargetName = args[1];
|
||||
|
||||
// Ask the cable data to begin the package. This may call another
|
||||
// cmCablePackageCommand's WritePackageFooter(). This will call
|
||||
// this cmCablePackageCommand's WritePackageHeader().
|
||||
m_CableData->BeginPackage(this);
|
||||
|
||||
// Add custom rules to the makefile to generate this package's source
|
||||
// files.
|
||||
{
|
||||
std::string command = "${CABLE}";
|
||||
m_Makefile->ExpandVariablesInString(command);
|
||||
std::vector<std::string> depends;
|
||||
depends.push_back(command);
|
||||
std::string commandArgs = " cable_config.xml";
|
||||
|
||||
std::vector<std::string> outputs;
|
||||
outputs.push_back("Cxx/"+m_PackageName+"_cxx.cxx");
|
||||
outputs.push_back("Cxx/"+m_PackageName+"_cxx.h");
|
||||
|
||||
// A rule for the package's source files.
|
||||
m_Makefile->AddCustomCommand("cable_config.xml",
|
||||
command.c_str(),
|
||||
commandArgs.c_str(),
|
||||
depends,
|
||||
outputs, m_TargetName.c_str());
|
||||
}
|
||||
|
||||
// Add custom rules to the makefile to generate this package's xml files.
|
||||
{
|
||||
std::string command = "${GCCXML}";
|
||||
m_Makefile->ExpandVariablesInString(command);
|
||||
// Only add the rule if GCC-XML is available.
|
||||
if((command != "") && (command != "${GCCXML}"))
|
||||
{
|
||||
std::vector<std::string> depends;
|
||||
depends.push_back(command);
|
||||
std::string input = m_Makefile->GetStartOutputDirectory();
|
||||
input = input + "/Cxx/"+m_PackageName+"_cxx.cxx";
|
||||
std::string output = "Cxx/"+m_PackageName+"_cxx.xml";
|
||||
command = "\""+command+"\" ${CXX_FLAGS} -fsyntax-only -fxml=" + output + " -c " + input;
|
||||
|
||||
std::vector<std::string> outputs;
|
||||
outputs.push_back("Cxx/"+m_PackageName+"_cxx.xml");
|
||||
|
||||
// A rule for the package's source files.
|
||||
m_Makefile->AddCustomCommand(input.c_str(),
|
||||
command.c_str(),
|
||||
"",
|
||||
depends,
|
||||
outputs, m_TargetName.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
// add the source list to the target
|
||||
m_Makefile->GetTargets()[m_TargetName.c_str()].GetSourceLists().push_back(m_PackageName);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void cmCablePackageCommand::FinalPass()
|
||||
{
|
||||
// Add a rule to build the generated package.
|
||||
std::string fileName = "Cxx/"+m_PackageName+"_cxx";
|
||||
std::string filePath = m_Makefile->GetStartOutputDirectory();
|
||||
cmSourceFile file;
|
||||
file.SetIsAnAbstractClass(false);
|
||||
file.SetIsAHeaderFileOnly(false);
|
||||
file.SetName(fileName.c_str(), filePath.c_str(), "cxx", false);
|
||||
m_Makefile->AddSource(file, m_PackageName.c_str());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Write a CABLE package header.
|
||||
*/
|
||||
void cmCablePackageCommand::WritePackageHeader() const
|
||||
{
|
||||
std::ostream& os = m_CableData->GetOutputStream();
|
||||
cmCableData::Indentation indent = m_CableData->GetIndentation();
|
||||
os << indent << "<Package name=\"" << m_PackageName.c_str() << "\">"
|
||||
<< std::endl;
|
||||
m_CableData->Indent();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Write a CABLE package footer.
|
||||
*/
|
||||
void cmCablePackageCommand::WritePackageFooter() const
|
||||
{
|
||||
m_CableData->Unindent();
|
||||
std::ostream& os = m_CableData->GetOutputStream();
|
||||
cmCableData::Indentation indent = m_CableData->GetIndentation();
|
||||
os << indent << "</Package> <!-- \"" << m_PackageName.c_str() << "\" -->"
|
||||
<< std::endl;
|
||||
}
|
||||
|
@ -1,120 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 cmCablePackageCommand_h
|
||||
#define cmCablePackageCommand_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCableCommand.h"
|
||||
|
||||
/** \class cmCablePackageCommand
|
||||
* \brief Define a command that begins a CABLE Package definition.
|
||||
*
|
||||
* cmCablePackageCommand is used to generate a new CABLE Package.
|
||||
* All subsequent commands that require a package will refer to that
|
||||
* setup by this command, until another package is started.
|
||||
*/
|
||||
class cmCablePackageCommand : public cmCableCommand
|
||||
{
|
||||
public:
|
||||
cmCablePackageCommand() {}
|
||||
virtual ~cmCablePackageCommand();
|
||||
|
||||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
{
|
||||
return new cmCablePackageCommand;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is called when the command is first encountered in
|
||||
* the CMakeLists.txt file.
|
||||
*/
|
||||
virtual bool InitialPass(std::vector<std::string>& args);
|
||||
|
||||
/**
|
||||
* This is called at the end after all the information
|
||||
* specified by the command is accumulated. Most commands do
|
||||
* not implement this method. At this point, reading and
|
||||
* writing to the cache can be done.
|
||||
*/
|
||||
virtual void FinalPass();
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual const char* GetName() { return "CABLE_PACKAGE";}
|
||||
|
||||
/**
|
||||
* Succinct documentation.
|
||||
*/
|
||||
virtual const char* GetTerseDocumentation()
|
||||
{
|
||||
return "Begin a package definition.";
|
||||
}
|
||||
|
||||
/**
|
||||
* More documentation.
|
||||
*/
|
||||
virtual const char* GetFullDocumentation()
|
||||
{
|
||||
return
|
||||
"CABLE_PACKAGE(package_name target)\n"
|
||||
"Close current package (if any), and open a new package definition.";
|
||||
}
|
||||
|
||||
void WritePackageHeader() const;
|
||||
void WritePackageFooter() const;
|
||||
const char *GetPackageName() {return m_PackageName.c_str();}
|
||||
|
||||
cmTypeMacro(cmCablePackageCommand, cmCableCommand);
|
||||
private:
|
||||
/**
|
||||
* The name of the package.
|
||||
*/
|
||||
std::string m_PackageName;
|
||||
std::string m_TargetName;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -1,67 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 "cmCablePackageEntryCommand.h"
|
||||
#include "cmCacheManager.h"
|
||||
|
||||
// cmCablePackageEntryCommand
|
||||
bool cmCablePackageEntryCommand::InitialPass(std::vector<std::string>& args)
|
||||
{
|
||||
if(args.size() < 1)
|
||||
{
|
||||
this->SetError("called with incorrect number of arguments");
|
||||
return false;
|
||||
}
|
||||
|
||||
// This command instance needs to use the cmCableData instance.
|
||||
this->SetupCableData();
|
||||
|
||||
// The arguments are the entries to the Pacakge.
|
||||
for(std::vector<std::string>::const_iterator arg = args.begin();
|
||||
arg != args.end(); ++arg)
|
||||
{
|
||||
m_Entries.push_back(*arg);
|
||||
}
|
||||
|
||||
// Write this command's configuration.
|
||||
this->WriteConfiguration();
|
||||
|
||||
return true;
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 cmCablePackageEntryCommand_h
|
||||
#define cmCablePackageEntryCommand_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCableCommand.h"
|
||||
|
||||
/** \class cmCablePackageEntryCommand
|
||||
* \brief Superclass to all CABLE Package entry generation commands.
|
||||
*
|
||||
* cmCablePackageEntryCommand implements the InitialPass method of a cmCommand
|
||||
* to save the arguments as a vector of entries to a CABLE Package. The
|
||||
* InitialPass then calls the virtual WriteConfiguration() so that the subclass
|
||||
* can generate the configuration code for its particular type of Package
|
||||
* entry.
|
||||
*/
|
||||
class cmCablePackageEntryCommand : public cmCableCommand
|
||||
{
|
||||
public:
|
||||
cmCablePackageEntryCommand() {}
|
||||
virtual ~cmCablePackageEntryCommand() {}
|
||||
|
||||
/**
|
||||
* This is called when the command is first encountered in
|
||||
* the CMakeLists.txt file.
|
||||
*/
|
||||
virtual bool InitialPass(std::vector<std::string>& args);
|
||||
|
||||
cmTypeMacro(cmCablePackageEntryCommand, cmCableCommand);
|
||||
|
||||
virtual void WriteConfiguration() const =0;
|
||||
protected:
|
||||
typedef std::vector<std::string> Entries;
|
||||
|
||||
/**
|
||||
* The package entries.
|
||||
*/
|
||||
Entries m_Entries;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -1,140 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 "cmCableSourceFilesCommand.h"
|
||||
#include "cmCacheManager.h"
|
||||
|
||||
void cmCableSourceFilesCommand::FinalPass()
|
||||
{
|
||||
// Get the index of the current package's cmClassFile.
|
||||
// If it doesn't exist, ignore this command.
|
||||
cmCablePackageCommand *cablePackage = m_CableData->GetCurrentPackage();
|
||||
std::string fileName = "Cxx/";
|
||||
fileName += cablePackage->GetPackageName();
|
||||
fileName += "_cxx";
|
||||
cmSourceFile *ci = m_Makefile->GetSource(cablePackage->GetPackageName(),
|
||||
fileName.c_str());
|
||||
|
||||
if(ci == 0)
|
||||
{ return; }
|
||||
|
||||
// The package's file has not yet been generated yet. The dependency
|
||||
// finder will need hints. Add one for each source file.
|
||||
for(Entries::const_iterator f = m_Entries.begin();
|
||||
f != m_Entries.end(); ++f)
|
||||
{
|
||||
std::string header = *f+".h";
|
||||
ci->GetDepends().push_back(header);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Write the CABLE configuration code to indicate header dependencies for
|
||||
* a package.
|
||||
*/
|
||||
void cmCableSourceFilesCommand::WriteConfiguration() const
|
||||
{
|
||||
std::ostream& os = m_CableData->GetOutputStream();
|
||||
cmCableData::Indentation indent = m_CableData->GetIndentation();
|
||||
|
||||
os << indent << "<Headers>" << std::endl;
|
||||
for(Entries::const_iterator f = m_Entries.begin();
|
||||
f != m_Entries.end(); ++f)
|
||||
{
|
||||
// Look for the normal include file.
|
||||
std::string header = *f+".h";
|
||||
if(this->SourceFileExists(header))
|
||||
{
|
||||
os << indent << " <File name=\"" << header.c_str() << "\"/>"
|
||||
<< std::endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
cmSystemTools::Error("Unable to find source file ", header.c_str());
|
||||
}
|
||||
|
||||
// Look for an instantiation file.
|
||||
std::string txx = *f+".txx";
|
||||
if(this->SourceFileExists(txx))
|
||||
{
|
||||
os << indent << " <File name=\"" << txx.c_str()
|
||||
<< "\" purpose=\"instantiate\"/>" << std::endl;
|
||||
}
|
||||
}
|
||||
os << indent << "</Headers>" << std::endl;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Search the include path for the specified file.
|
||||
*/
|
||||
bool cmCableSourceFilesCommand::SourceFileExists(const std::string& name) const
|
||||
{
|
||||
// We must locate the file in the include path so that we can detect
|
||||
// its extension, and whether there is more than one to find.
|
||||
std::string file = name;
|
||||
m_Makefile->ExpandVariablesInString(file);
|
||||
|
||||
// See if the file just exists here. The compiler's search path will
|
||||
// locate it.
|
||||
if(cmSystemTools::FileExists(file.c_str()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// We must look for the file in the include search path.
|
||||
const std::vector<std::string>& includeDirectories =
|
||||
m_Makefile->GetIncludeDirectories();
|
||||
|
||||
for(std::vector<std::string>::const_iterator dir = includeDirectories.begin();
|
||||
dir != includeDirectories.end(); ++dir)
|
||||
{
|
||||
std::string path = *dir + "/";
|
||||
m_Makefile->ExpandVariablesInString(path);
|
||||
if(cmSystemTools::FileExists((path+file).c_str()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// We couldn't locate the source file.
|
||||
return false;
|
||||
}
|
@ -1,105 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 cmCableSourceFilesCommand_h
|
||||
#define cmCableSourceFilesCommand_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCablePackageEntryCommand.h"
|
||||
|
||||
/** \class cmCableSourceFilesCommand
|
||||
* \brief Define a command that generates a rule for a CABLE Headers block.
|
||||
*
|
||||
* cmCableSourceFilesCommand is used to generate a rule in a CABLE
|
||||
* configuration file to setup a Package's include files.
|
||||
*/
|
||||
class cmCableSourceFilesCommand : public cmCablePackageEntryCommand
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
{
|
||||
return new cmCableSourceFilesCommand;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is called at the end after all the information
|
||||
* specified by the command is accumulated. Most commands do
|
||||
* not implement this method. At this point, reading and
|
||||
* writing to the cache can be done.
|
||||
*/
|
||||
virtual void FinalPass();
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual const char* GetName() { return "CABLE_SOURCE_FILES";}
|
||||
|
||||
/**
|
||||
* Succinct documentation.
|
||||
*/
|
||||
virtual const char* GetTerseDocumentation()
|
||||
{
|
||||
return "Define CABLE header file dependencies in a package.";
|
||||
}
|
||||
|
||||
/**
|
||||
* More documentation.
|
||||
*/
|
||||
virtual const char* GetFullDocumentation()
|
||||
{
|
||||
return
|
||||
"CABLE_SOURCE_FILES(file1 file2 ...)"
|
||||
"Generates a Package's Headers block in the CABLE configuration.";
|
||||
}
|
||||
|
||||
virtual void WriteConfiguration() const;
|
||||
bool SourceFileExists(const std::string&) const;
|
||||
|
||||
cmTypeMacro(cmCableSourceFilesCommand, cmCableCommand);
|
||||
protected:
|
||||
typedef cmCablePackageEntryCommand::Entries Entries;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -1,44 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 "cmCableWrapCommand.h"
|
||||
#include "cmCacheManager.h"
|
||||
|
||||
// Don't need to implement anything here.
|
@ -1,100 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
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 cmCableWrapCommand_h
|
||||
#define cmCableWrapCommand_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCableDefineSetCommand.h"
|
||||
|
||||
/** \class cmCableWrapCommand
|
||||
* \brief Define a command that generates a rule for CABLE-generated wrappers.
|
||||
*
|
||||
* cmCableWrapCommand is used to generate a rule in a CABLE
|
||||
* configuration file to create type wrappers.
|
||||
*/
|
||||
class cmCableWrapCommand : public cmCableDefineSetCommand
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
{
|
||||
return new cmCableWrapCommand;
|
||||
}
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual const char* GetName() { return "CABLE_WRAP";}
|
||||
|
||||
/**
|
||||
* Succinct documentation.
|
||||
*/
|
||||
virtual const char* GetTerseDocumentation()
|
||||
{
|
||||
return "Define CABLE WrapperSet in a package.";
|
||||
}
|
||||
|
||||
/**
|
||||
* More documentation.
|
||||
*/
|
||||
virtual const char* GetFullDocumentation()
|
||||
{
|
||||
return
|
||||
"CABLE_WRAP(name_of_set [[tag1]:]memeber1 [[tag2]:]member2 ...\n"
|
||||
" [SOURCE_FILES source1 source2 ...]] )\n"
|
||||
"Generates a WrapperSet definition in the CABLE configuration.\n"
|
||||
"If a the \"tag:\" syntax is not used, an attempt is made to\n"
|
||||
"auto-generate a meaningful tag. If the SOURCE_FILES keyword is\n"
|
||||
"given, all arguments after it refer to header files to be included\n"
|
||||
"in the package in which the set is defined.\n";
|
||||
}
|
||||
|
||||
cmTypeMacro(cmCableWrapCommand, cmCableDefineSetCommand);
|
||||
|
||||
protected:
|
||||
virtual const char* GetXmlTag() const { return "WrapperSet"; }
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -14,18 +14,7 @@
|
||||
#include "cmBuildNameCommand.cxx"
|
||||
#include "cmBuildSharedLibrariesCommand.cxx"
|
||||
#include "cmCableClassSetCommand.cxx"
|
||||
#include "cmCableCloseNamespaceCommand.cxx"
|
||||
#include "cmCableCommand.cxx"
|
||||
#include "cmCableData.cxx"
|
||||
#include "cmCableDefineSetCommand.cxx"
|
||||
#include "cmCableInstantiateClassCommand.cxx"
|
||||
#include "cmCableInstantiateCommand.cxx"
|
||||
#include "cmCableOpenNamespaceCommand.cxx"
|
||||
#include "cmCablePackageCommand.cxx"
|
||||
#include "cmCablePackageEntryCommand.cxx"
|
||||
#include "cmCableSourceFilesCommand.cxx"
|
||||
#include "cmCableWrapTclCommand.cxx"
|
||||
#include "cmCableWrapCommand.cxx"
|
||||
#include "cmConfigureFileCommand.cxx"
|
||||
#include "cmElseCommand.cxx"
|
||||
#include "cmEnableTestingCommand.cxx"
|
||||
@ -75,15 +64,7 @@ void GetPredefinedCommands(std::list<cmCommand*>& commands)
|
||||
commands.push_back(new cmBuildNameCommand);
|
||||
commands.push_back(new cmBuildSharedLibrariesCommand);
|
||||
commands.push_back(new cmCableClassSetCommand);
|
||||
commands.push_back(new cmCableCloseNamespaceCommand);
|
||||
commands.push_back(new cmCableDefineSetCommand);
|
||||
commands.push_back(new cmCableInstantiateCommand);
|
||||
commands.push_back(new cmCableInstantiateClassCommand);
|
||||
commands.push_back(new cmCableOpenNamespaceCommand);
|
||||
commands.push_back(new cmCablePackageCommand);
|
||||
commands.push_back(new cmCableSourceFilesCommand);
|
||||
commands.push_back(new cmCableWrapTclCommand);
|
||||
commands.push_back(new cmCableWrapCommand);
|
||||
commands.push_back(new cmConfigureFileCommand);
|
||||
commands.push_back(new cmElseCommand);
|
||||
commands.push_back(new cmEnableTestingCommand);
|
||||
|
Loading…
Reference in New Issue
Block a user