modified how source files store properties
This commit is contained in:
parent
f7b1a90256
commit
7b5a8762c6
|
@ -44,7 +44,7 @@ bool cmAbstractFilesCommand::InitialPass(std::vector<std::string> const& argsIn)
|
|||
cmSourceFile* sf = m_Makefile->GetSource(j->c_str());
|
||||
if(sf)
|
||||
{
|
||||
sf->SetIsAnAbstractClass(true);
|
||||
sf->SetProperty("ABSTRACT","1");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -69,7 +69,7 @@ bool cmAuxSourceDirectoryCommand::InitialPass(std::vector<std::string> const& ar
|
|||
cmfile.SetName(fullname.c_str(), m_Makefile->GetCurrentDirectory(),
|
||||
m_Makefile->GetSourceExtensions(),
|
||||
m_Makefile->GetHeaderExtensions());
|
||||
cmfile.SetIsAnAbstractClass(false);
|
||||
cmfile.SetProperty("ABSTRACT","0");
|
||||
m_Makefile->AddSource(cmfile);
|
||||
if (sourceListValue.size() > 0)
|
||||
{
|
||||
|
|
|
@ -169,7 +169,7 @@ OutputBuildObjectFromSource(std::ostream& fout,
|
|||
shared = true;
|
||||
}
|
||||
// Header files shouldn't have build rules.
|
||||
if(source.IsAHeaderFileOnly())
|
||||
if(source.GetPropertyAsBool("HEADER_FILE_ONLY"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -279,7 +279,7 @@ bool cmCreateTestSourceList::InitialPass(std::vector<std::string> const& argsIn)
|
|||
cmSourceFile cfile;
|
||||
std::string sourceListValue;
|
||||
|
||||
cfile.SetIsAnAbstractClass(false);
|
||||
cfile.SetProperty("ABSTRACT","0");
|
||||
cfile.SetName(cmSystemTools::GetFilenameWithoutExtension(args[1]).c_str(),
|
||||
m_Makefile->GetCurrentOutputDirectory(),
|
||||
cmSystemTools::GetFilenameExtension(args[1]).c_str()+1,
|
||||
|
@ -290,7 +290,7 @@ bool cmCreateTestSourceList::InitialPass(std::vector<std::string> const& argsIn)
|
|||
for(i = testsBegin; i != tests.end(); ++i)
|
||||
{
|
||||
cmSourceFile cfile;
|
||||
cfile.SetIsAnAbstractClass(false);
|
||||
cfile.SetProperty("ABSTRACT","0");
|
||||
cfile.SetName(i->c_str(),
|
||||
m_Makefile->GetCurrentDirectory(),
|
||||
m_Makefile->GetSourceExtensions(),
|
||||
|
|
|
@ -277,7 +277,7 @@ void cmDSPWriter::WriteDSPFile(std::ostream& fout,
|
|||
const char* compileFlags = 0;
|
||||
if(cc->second.m_SourceFile)
|
||||
{
|
||||
compileFlags = cc->second.m_SourceFile->GetCompileFlags();
|
||||
compileFlags = cc->second.m_SourceFile->GetProperty("COMPILE_FLAGS");
|
||||
}
|
||||
if (source != libName || target.GetType() == cmTarget::UTILITY)
|
||||
{
|
||||
|
|
|
@ -64,7 +64,7 @@ bool cmFLTKWrapUICommand::InitialPass(std::vector<std::string> const& args)
|
|||
cmSourceFile *curr = m_Makefile->GetSource(i->c_str());
|
||||
// if we should use the source GUI
|
||||
// to generate .cxx and .h files
|
||||
if (!curr || !curr->GetWrapExclude())
|
||||
if (!curr || !curr->GetPropertyAsBool("WRAP_EXCLUDE"))
|
||||
{
|
||||
cmSourceFile header_file;
|
||||
cmSourceFile source_file;
|
||||
|
|
|
@ -32,15 +32,15 @@ bool cmGetSourceFilePropertyCommand::InitialPass(std::vector<std::string> const&
|
|||
{
|
||||
if(args[2] == "ABSTRACT")
|
||||
{
|
||||
m_Makefile->AddDefinition(var, sf->IsAnAbstractClass());
|
||||
m_Makefile->AddDefinition(var, sf->GetPropertyAsBool("ABSTRACT"));
|
||||
}
|
||||
if(args[2] == "WRAP_EXCLUDE")
|
||||
{
|
||||
m_Makefile->AddDefinition(var, sf->GetWrapExclude());
|
||||
m_Makefile->AddDefinition(var, sf->GetPropertyAsBool("WRAP_EXCLUDE"));
|
||||
}
|
||||
if(args[2] == "COMPILE_FLAGS")
|
||||
{
|
||||
m_Makefile->AddDefinition(var, sf->GetCompileFlags());
|
||||
m_Makefile->AddDefinition(var, sf->GetProperty("COMPILE_FLAGS"));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1126,7 +1126,7 @@ void cmMSDotNETGenerator::WriteVCProjFile(std::ostream& fout,
|
|||
const char* compileFlags = 0;
|
||||
if(cc->second.m_SourceFile)
|
||||
{
|
||||
compileFlags = cc->second.m_SourceFile->GetCompileFlags();
|
||||
compileFlags = cc->second.m_SourceFile->GetProperty("COMPILE_FLAGS");
|
||||
}
|
||||
if (source != libName || target.GetType() == cmTarget::UTILITY)
|
||||
{
|
||||
|
|
|
@ -277,7 +277,7 @@ void cmMakeDepend::GenerateMakefileDependencies()
|
|||
for(std::vector<cmSourceFile*>::const_iterator i = classes.begin();
|
||||
i != classes.end(); ++i)
|
||||
{
|
||||
if(!(*i)->GetIsAHeaderFileOnly())
|
||||
if(!(*i)->GetPropertyAsBool("HEADER_FILE_ONLY"))
|
||||
{
|
||||
cmDependInformation* info =
|
||||
this->GetDependInformation((*i)->GetFullPath().c_str(),NULL);
|
||||
|
|
|
@ -324,8 +324,10 @@ OutputBuildObjectFromSource(std::ostream& fout,
|
|||
bool shared)
|
||||
{
|
||||
// Header files shouldn't have build rules.
|
||||
if(source.IsAHeaderFileOnly())
|
||||
if(source.GetPropertyAsBool("HEADER_FILE_ONLY"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
std::string comment = "Build ";
|
||||
std::string objectFile = std::string(shortName) +
|
||||
|
|
|
@ -65,12 +65,12 @@ bool cmQTWrapCPPCommand::InitialPass(std::vector<std::string> const& argsIn)
|
|||
cmSourceFile *curr = m_Makefile->GetSource(j->c_str());
|
||||
|
||||
// if we should wrap the class
|
||||
if (!curr || !curr->GetWrapExclude())
|
||||
if (!curr || !curr->GetPropertyAsBool("WRAP_EXCLUDE"))
|
||||
{
|
||||
cmSourceFile file;
|
||||
if (curr)
|
||||
{
|
||||
file.SetIsAnAbstractClass(curr->IsAnAbstractClass());
|
||||
file.SetProperty("ABSTRACT",curr->GetProperty("ABSTRACT"));
|
||||
}
|
||||
std::string srcName = cmSystemTools::GetFilenameWithoutExtension(*j);
|
||||
std::string newName = "moc_" + srcName;
|
||||
|
|
|
@ -63,7 +63,7 @@ bool cmQTWrapUICommand::InitialPass(std::vector<std::string> const& argsIn)
|
|||
cmSourceFile *curr = m_Makefile->GetSource(j->c_str());
|
||||
|
||||
// if we should wrap the class
|
||||
if (!curr || !curr->GetWrapExclude())
|
||||
if (!curr || !curr->GetPropertyAsBool("WRAP_EXCLUDE"))
|
||||
{
|
||||
cmSourceFile header_file;
|
||||
cmSourceFile source_file;
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
#include "cmSetSourceFilesPropertiesCommand.h"
|
||||
|
||||
// cmSetSourceFilesPropertiesCommand
|
||||
bool cmSetSourceFilesPropertiesCommand::InitialPass(std::vector<std::string> const&
|
||||
argsIn)
|
||||
bool cmSetSourceFilesPropertiesCommand::InitialPass(
|
||||
std::vector<std::string> const& argsIn)
|
||||
{
|
||||
if(argsIn.size() < 2 )
|
||||
{
|
||||
|
@ -28,70 +28,99 @@ bool cmSetSourceFilesPropertiesCommand::InitialPass(std::vector<std::string> con
|
|||
std::vector<std::string> args;
|
||||
cmSystemTools::ExpandListArguments(argsIn, args);
|
||||
|
||||
// first collect up the list of files
|
||||
std::vector<std::string> propertyPairs;
|
||||
bool doingFiles = true;
|
||||
int numFiles = 0;
|
||||
std::vector<std::string>::const_iterator j;
|
||||
// first collect up all the flags that need to be set on the file
|
||||
bool abstract = false;
|
||||
bool wrap_exclude = false;
|
||||
bool generated = false;
|
||||
std::string flags;
|
||||
for(j= args.begin(); j != args.end();++j)
|
||||
{
|
||||
// old style allows for specifier before PROPERTIES keyword
|
||||
if(*j == "ABSTRACT")
|
||||
{
|
||||
abstract = true;
|
||||
doingFiles = false;
|
||||
propertyPairs.push_back("ABSTRACT");
|
||||
propertyPairs.push_back("1");
|
||||
}
|
||||
else if(*j == "WRAP_EXCLUDE")
|
||||
{
|
||||
wrap_exclude = true;
|
||||
doingFiles = false;
|
||||
propertyPairs.push_back("WRAP_EXCLUDE");
|
||||
propertyPairs.push_back("1");
|
||||
}
|
||||
else if(*j == "GENERATED")
|
||||
{
|
||||
generated = true;
|
||||
doingFiles = false;
|
||||
propertyPairs.push_back("GENERATED");
|
||||
propertyPairs.push_back("1");
|
||||
}
|
||||
else if(*j == "COMPILE_FLAGS")
|
||||
{
|
||||
doingFiles = false;
|
||||
propertyPairs.push_back("COMPILE_FLAGS");
|
||||
++j;
|
||||
if(j == args.end())
|
||||
{
|
||||
this->SetError("called with incorrect number of arguments FLAGS with no flags");
|
||||
return false;
|
||||
this->SetError("called with incorrect number of arguments COMPILE_FLAGS with no flags");
|
||||
return false;
|
||||
}
|
||||
flags = *j;
|
||||
propertyPairs.push_back(*j);
|
||||
}
|
||||
else if(*j == "PROPERTIES")
|
||||
{
|
||||
doingFiles = false;
|
||||
// now loop through the rest of the arguments, new style
|
||||
++j;
|
||||
while (j != args.end())
|
||||
{
|
||||
propertyPairs.push_back(*j);
|
||||
++j;
|
||||
if(j == args.end())
|
||||
{
|
||||
this->SetError("called with incorrect number of arguments.");
|
||||
return false;
|
||||
}
|
||||
propertyPairs.push_back(*j);
|
||||
++j;
|
||||
}
|
||||
}
|
||||
else if (doingFiles)
|
||||
{
|
||||
numFiles++;
|
||||
}
|
||||
else
|
||||
{
|
||||
this->SetError("called with illegal arguments, maybe missing a PROPERTIES specifier?");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// now loop over all the files
|
||||
for(j = args.begin(); j != args.end(); ++j)
|
||||
int i, k;
|
||||
for(i = 0; i < numFiles; ++i)
|
||||
{
|
||||
// at the sign of the first property exit the loop
|
||||
if(*j == "ABSTRACT" || *j == "WRAP_EXCLUDE" || *j == "COMPILE_FLAGS")
|
||||
{
|
||||
break;
|
||||
}
|
||||
// if the file is already in the makefile just set properites on it
|
||||
cmSourceFile* sf = m_Makefile->GetSource(j->c_str());
|
||||
cmSourceFile* sf = m_Makefile->GetSource(args[i].c_str());
|
||||
if(sf)
|
||||
{
|
||||
if(flags.size())
|
||||
// now loop through all the props and set them
|
||||
for (k = 0; k < propertyPairs.size(); k = k + 2)
|
||||
{
|
||||
sf->SetCompileFlags(flags.c_str());
|
||||
sf->SetProperty(propertyPairs[k].c_str(),propertyPairs[k+1].c_str());
|
||||
}
|
||||
sf->SetIsAnAbstractClass(abstract);
|
||||
sf->SetWrapExclude(wrap_exclude);
|
||||
}
|
||||
// if file is not already in the makefile, then add it
|
||||
else
|
||||
{
|
||||
std::string newfile = *j;
|
||||
std::string newfile = args[i];
|
||||
cmSourceFile file;
|
||||
std::string path = cmSystemTools::GetFilenamePath(newfile);
|
||||
// set the flags
|
||||
file.SetIsAnAbstractClass(abstract);
|
||||
file.SetWrapExclude(wrap_exclude);
|
||||
if(flags.size())
|
||||
// now loop through all the props and set them
|
||||
for (k = 0; k < propertyPairs.size(); k = k + 2)
|
||||
{
|
||||
file.SetCompileFlags(flags.c_str());
|
||||
file.SetProperty(propertyPairs[k].c_str(),propertyPairs[k+1].c_str());
|
||||
}
|
||||
if(generated)
|
||||
if(file.GetPropertyAsBool("GENERATED"))
|
||||
{
|
||||
std::string ext = cmSystemTools::GetFilenameExtension(newfile);
|
||||
std::string name_no_ext = cmSystemTools::GetFilenameName(newfile.c_str());
|
||||
|
|
|
@ -53,9 +53,9 @@ public:
|
|||
virtual const char* GetFullDocumentation()
|
||||
{
|
||||
return
|
||||
"SET_SOURCE_FILES_PROPERTIES(file1 file2 .. filen [ABSTRACT|WRAP_EXCLUDE|GENERATED|COMPILE_FLAGS] [flags]) "
|
||||
"Set properties on a file. The syntax for the command is to list all the files you want "
|
||||
"to change, and then provide the values you want to set next.";
|
||||
"SET_SOURCE_FILES_PROPERTIES(file1 file2 .. filen PROPERTIES prop1 value1 prop2 value2 ... prop2 valuen)"
|
||||
"Set properties on a file. The syntax for the command is to list all the files you want "
|
||||
"to change, and then provide the values you want to set next. Common boolean properties ABSTRACT, WRAP_EXCLUDE, GENERATED and COMPILE_FLAGS. The first three are boolean properties (use a 1 or 0, TRUE or FALSE) while the COMPILE_FLAGS accepts any string. You can make up your own properties as well.";
|
||||
}
|
||||
|
||||
cmTypeMacro(cmSetSourceFilesPropertiesCommand, cmCommand);
|
||||
|
|
|
@ -28,7 +28,7 @@ void cmSourceFile::SetName(const char* name, const char* dir,
|
|||
const std::vector<std::string>& sourceExts,
|
||||
const std::vector<std::string>& headerExts)
|
||||
{
|
||||
m_HeaderFileOnly = true;
|
||||
this->SetProperty("HEADER_FILE_ONLY","1");
|
||||
|
||||
m_SourceName = name;
|
||||
std::string pathname = dir;
|
||||
|
@ -68,10 +68,11 @@ void cmSourceFile::SetName(const char* name, const char* dir,
|
|||
}
|
||||
|
||||
// See if the file is a header file
|
||||
if(std::find( headerExts.begin(), headerExts.end(), m_SourceExtension ) == headerExts.end())
|
||||
m_HeaderFileOnly = false;
|
||||
else
|
||||
m_HeaderFileOnly = true;
|
||||
if(std::find( headerExts.begin(), headerExts.end(), m_SourceExtension ) ==
|
||||
headerExts.end())
|
||||
{
|
||||
this->SetProperty("HEADER_FILE_ONLY","0");
|
||||
}
|
||||
m_FullPath = hname;
|
||||
return;
|
||||
}
|
||||
|
@ -86,7 +87,7 @@ void cmSourceFile::SetName(const char* name, const char* dir,
|
|||
if(cmSystemTools::FileExists(hname.c_str()))
|
||||
{
|
||||
m_SourceExtension = *ext;
|
||||
m_HeaderFileOnly = false;
|
||||
this->SetProperty("HEADER_FILE_ONLY","0");
|
||||
m_FullPath = hname;
|
||||
return;
|
||||
}
|
||||
|
@ -128,7 +129,7 @@ void cmSourceFile::SetName(const char* name, const char* dir,
|
|||
void cmSourceFile::SetName(const char* name, const char* dir, const char *ext,
|
||||
bool hfo)
|
||||
{
|
||||
m_HeaderFileOnly = hfo;
|
||||
this->SetProperty("HEADER_FILE_ONLY",(hfo ? "1" : "0"));
|
||||
m_SourceName = name;
|
||||
std::string pathname = dir;
|
||||
if(pathname != "")
|
||||
|
@ -149,24 +150,38 @@ void cmSourceFile::SetName(const char* name, const char* dir, const char *ext,
|
|||
|
||||
void cmSourceFile::Print() const
|
||||
{
|
||||
if(m_AbstractClass)
|
||||
{
|
||||
std::cerr << "Abstract ";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "Concrete ";
|
||||
}
|
||||
if(m_HeaderFileOnly)
|
||||
{
|
||||
std::cerr << "Header file ";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "CXX file ";
|
||||
}
|
||||
std::cerr << "m_CompileFlags: " << m_CompileFlags << "\n";
|
||||
std::cerr << "m_FullPath: " << m_FullPath << "\n";
|
||||
std::cerr << "m_SourceName: " << m_SourceName << std::endl;
|
||||
std::cerr << "m_SourceExtension: " << m_SourceExtension << "\n";
|
||||
}
|
||||
|
||||
void cmSourceFile::SetProperty(const char* prop, const char* value)
|
||||
{
|
||||
if (!prop)
|
||||
{
|
||||
return;
|
||||
}
|
||||
m_Properties[prop] = value;
|
||||
}
|
||||
|
||||
const char *cmSourceFile::GetProperty(const char* prop) const
|
||||
{
|
||||
std::map<cmStdString,cmStdString>::const_iterator i =
|
||||
m_Properties.find(prop);
|
||||
if (i != m_Properties.end())
|
||||
{
|
||||
return i->second.c_str();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool cmSourceFile::GetPropertyAsBool(const char* prop) const
|
||||
{
|
||||
std::map<cmStdString,cmStdString>::const_iterator i =
|
||||
m_Properties.find(prop);
|
||||
if (i != m_Properties.end())
|
||||
{
|
||||
return cmSystemTools::IsOn(i->second.c_str());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -34,9 +34,6 @@ public:
|
|||
*/
|
||||
cmSourceFile()
|
||||
{
|
||||
m_AbstractClass = false;
|
||||
m_HeaderFileOnly = false;
|
||||
m_WrapExclude = false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -61,26 +58,11 @@ public:
|
|||
*/
|
||||
void Print() const;
|
||||
|
||||
/**
|
||||
* Indicate whether the class is abstract (non-instantiable).
|
||||
*/
|
||||
bool IsAnAbstractClass() const { return m_AbstractClass; }
|
||||
bool GetIsAnAbstractClass() const { return m_AbstractClass; }
|
||||
void SetIsAnAbstractClass(bool f) { m_AbstractClass = f; }
|
||||
|
||||
/**
|
||||
* Indicate whether the class should not be wrapped
|
||||
*/
|
||||
bool GetWrapExclude() const { return m_WrapExclude; }
|
||||
void SetWrapExclude(bool f) { m_WrapExclude = f; }
|
||||
|
||||
/**
|
||||
* Indicate whether this class is defined with only the header file.
|
||||
*/
|
||||
bool IsAHeaderFileOnly() const { return m_HeaderFileOnly; }
|
||||
bool GetIsAHeaderFileOnly() const { return m_HeaderFileOnly; }
|
||||
void SetIsAHeaderFileOnly(bool f) { m_HeaderFileOnly = f; }
|
||||
|
||||
///! Set/Get a property of this source file
|
||||
void SetProperty(const char *prop, const char *value);
|
||||
const char *GetProperty(const char *prop) const;
|
||||
bool GetPropertyAsBool(const char *prop) const;
|
||||
|
||||
/**
|
||||
* The full path to the file.
|
||||
*/
|
||||
|
@ -107,14 +89,9 @@ public:
|
|||
const std::vector<std::string> &GetDepends() const {return m_Depends;}
|
||||
std::vector<std::string> &GetDepends() {return m_Depends;}
|
||||
|
||||
///! Set/Get per file compiler flags
|
||||
void SetCompileFlags(const char* f) { m_CompileFlags = f;}
|
||||
const char* GetCompileFlags() const { return m_CompileFlags.size() ? m_CompileFlags.c_str(): 0; }
|
||||
private:
|
||||
bool m_AbstractClass;
|
||||
bool m_WrapExclude;
|
||||
bool m_HeaderFileOnly;
|
||||
std::string m_CompileFlags;
|
||||
|
||||
std::map<cmStdString,cmStdString> m_Properties;
|
||||
std::string m_FullPath;
|
||||
std::string m_SourceName;
|
||||
std::string m_SourceExtension;
|
||||
|
|
|
@ -71,7 +71,7 @@ bool cmSourceFilesCommand::InitialPass(std::vector<std::string> const& argsIn)
|
|||
continue;
|
||||
}
|
||||
cmSourceFile file;
|
||||
file.SetIsAnAbstractClass(false);
|
||||
file.SetProperty("ABSTRACT","0");
|
||||
std::string path = cmSystemTools::GetFilenamePath(copy);
|
||||
if ( generated )
|
||||
{
|
||||
|
|
|
@ -76,7 +76,7 @@ void cmTarget::GenerateSourceFilesFromSourceLists( cmMakefile &mf)
|
|||
else
|
||||
{
|
||||
cmSourceFile file;
|
||||
file.SetIsAnAbstractClass(false);
|
||||
file.SetProperty("ABSTRACT","0");
|
||||
file.SetName(args[i].c_str(), mf.GetCurrentDirectory(),
|
||||
mf.GetSourceExtensions(),
|
||||
mf.GetHeaderExtensions());
|
||||
|
@ -92,7 +92,7 @@ void cmTarget::GenerateSourceFilesFromSourceLists( cmMakefile &mf)
|
|||
if (!done)
|
||||
{
|
||||
cmSourceFile file;
|
||||
file.SetIsAnAbstractClass(false);
|
||||
file.SetProperty("ABSTRACT","0");
|
||||
file.SetName(temps.c_str(), mf.GetCurrentDirectory(),
|
||||
mf.GetSourceExtensions(),
|
||||
mf.GetHeaderExtensions());
|
||||
|
|
|
@ -123,7 +123,7 @@ void cmUnixMakefileGenerator::ProcessDepends(const cmMakeDepend &md)
|
|||
for(std::vector<cmSourceFile*>::iterator i = classes.begin();
|
||||
i != classes.end(); ++i)
|
||||
{
|
||||
if(!(*i)->GetIsAHeaderFileOnly())
|
||||
if(!(*i)->GetPropertyAsBool("HEADER_FILE_ONLY"))
|
||||
{
|
||||
// get the depends
|
||||
const cmDependInformation *info =
|
||||
|
@ -375,7 +375,7 @@ void cmUnixMakefileGenerator::OutputTargetRules(std::ostream& fout)
|
|||
for(std::vector<cmSourceFile*>::iterator i = classes.begin();
|
||||
i != classes.end(); i++)
|
||||
{
|
||||
if(!(*i)->IsAHeaderFileOnly())
|
||||
if(!(*i)->GetPropertyAsBool("HEADER_FILE_ONLY"))
|
||||
{
|
||||
std::string outExt(this->GetOutputExtension((*i)->GetSourceExtension().c_str()));
|
||||
if(outExt.size())
|
||||
|
@ -390,7 +390,7 @@ void cmUnixMakefileGenerator::OutputTargetRules(std::ostream& fout)
|
|||
for(std::vector<cmSourceFile*>::iterator i = classes.begin();
|
||||
i != classes.end(); i++)
|
||||
{
|
||||
if(!(*i)->IsAHeaderFileOnly())
|
||||
if(!(*i)->GetPropertyAsBool("HEADER_FILE_ONLY"))
|
||||
{
|
||||
std::string outExt(this->GetOutputExtension((*i)->GetSourceExtension().c_str()));
|
||||
if(outExt.size())
|
||||
|
@ -1307,7 +1307,7 @@ bool cmUnixMakefileGenerator::OutputObjectDepends(std::ostream& fout)
|
|||
for(std::vector<cmSourceFile*>::const_iterator source = sources.begin();
|
||||
source != sources.end(); ++source)
|
||||
{
|
||||
if(!(*source)->IsAHeaderFileOnly())
|
||||
if(!(*source)->GetPropertyAsBool("HEADER_FILE_ONLY"))
|
||||
{
|
||||
if(!(*source)->GetDepends().empty())
|
||||
{
|
||||
|
@ -1358,7 +1358,7 @@ void cmUnixMakefileGenerator::OutputCheckDepends(std::ostream& fout)
|
|||
for(std::vector<cmSourceFile*>::const_iterator source = sources.begin();
|
||||
source != sources.end(); ++source)
|
||||
{
|
||||
if(!(*source)->IsAHeaderFileOnly())
|
||||
if(!(*source)->GetPropertyAsBool("HEADER_FILE_ONLY"))
|
||||
{
|
||||
if(!(*source)->GetDepends().empty())
|
||||
{
|
||||
|
@ -1816,7 +1816,7 @@ void cmUnixMakefileGenerator::OutputMakeRules(std::ostream& fout)
|
|||
for(std::vector<cmSourceFile*>::const_iterator source = sources.begin();
|
||||
source != sources.end(); ++source)
|
||||
{
|
||||
if(!(*source)->IsAHeaderFileOnly())
|
||||
if(!(*source)->GetPropertyAsBool("HEADER_FILE_ONLY"))
|
||||
{
|
||||
allsources += " \\\n";
|
||||
allsources += this->ConvertToOutputPath((*source)->GetFullPath().c_str());
|
||||
|
@ -1931,7 +1931,7 @@ OutputBuildObjectFromSource(std::ostream& fout,
|
|||
bool shared)
|
||||
{
|
||||
// Header files shouldn't have build rules.
|
||||
if(source.IsAHeaderFileOnly())
|
||||
if(source.GetPropertyAsBool("HEADER_FILE_ONLY"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -2005,7 +2005,7 @@ void cmUnixMakefileGenerator::OutputSourceObjectBuildRules(std::ostream& fout)
|
|||
for(std::vector<cmSourceFile*>::const_iterator source = sources.begin();
|
||||
source != sources.end(); ++source)
|
||||
{
|
||||
if(!(*source)->IsAHeaderFileOnly())
|
||||
if(!(*source)->GetPropertyAsBool("HEADER_FILE_ONLY"))
|
||||
{
|
||||
std::string shortName;
|
||||
std::string sourceName;
|
||||
|
@ -2042,9 +2042,9 @@ void cmUnixMakefileGenerator::OutputSourceObjectBuildRules(std::ostream& fout)
|
|||
// Only output a rule for each .o once.
|
||||
if(rules.find(shortNameWithExt) == rules.end())
|
||||
{
|
||||
if((*source)->GetCompileFlags())
|
||||
if((*source)->GetProperty("COMPILE_FLAGS"))
|
||||
{
|
||||
exportsDef += (*source)->GetCompileFlags();
|
||||
exportsDef += (*source)->GetProperty("COMPILE_FLAGS");
|
||||
exportsDef += " ";
|
||||
}
|
||||
this->OutputBuildObjectFromSource(fout,
|
||||
|
|
|
@ -111,7 +111,8 @@ cmVTKMakeInstantiatorCommand
|
|||
// vtkIndent and vtkTimeStamp are special cases and are not
|
||||
// vtkObject subclasses.
|
||||
if(
|
||||
(!sf || (!sf->GetWrapExclude() && !sf->GetIsAnAbstractClass())) &&
|
||||
(!sf || (!sf->GetPropertyAsBool("WRAP_EXCLUDE") &&
|
||||
!sf->GetPropertyAsBool("ABSTRACT"))) &&
|
||||
((srcName != "vtkIndent") && (srcName != "vtkTimeStamp")))
|
||||
{
|
||||
m_Classes.push_back(srcName);
|
||||
|
@ -159,8 +160,8 @@ cmVTKMakeInstantiatorCommand
|
|||
|
||||
// Add the generated source file into the source list.
|
||||
cmSourceFile file;
|
||||
file.SetWrapExclude(true);
|
||||
file.SetIsAnAbstractClass(false);
|
||||
file.SetProperty("WRAP_EXCLUDE","1");
|
||||
file.SetProperty("ABSTRACT","0");
|
||||
file.SetName(fileName.c_str(), filePath.c_str(),
|
||||
m_Makefile->GetSourceExtensions(),
|
||||
m_Makefile->GetHeaderExtensions());
|
||||
|
@ -197,8 +198,8 @@ cmVTKMakeInstantiatorCommand
|
|||
|
||||
// Add the generated source file into the source list.
|
||||
cmSourceFile file;
|
||||
file.SetWrapExclude(true);
|
||||
file.SetIsAnAbstractClass(false);
|
||||
file.SetProperty("WRAP_EXCLUDE","1");
|
||||
file.SetProperty("ABSTRACT","0");
|
||||
file.SetName(fileName.c_str(), filePath.c_str(),
|
||||
m_Makefile->GetSourceExtensions(),
|
||||
m_Makefile->GetHeaderExtensions());
|
||||
|
|
|
@ -55,12 +55,12 @@ bool cmVTKWrapJavaCommand::InitialPass(std::vector<std::string> const& argsIn)
|
|||
cmSourceFile *curr = m_Makefile->GetSource(j->c_str());
|
||||
|
||||
// if we should wrap the class
|
||||
if (!curr || !curr->GetWrapExclude())
|
||||
if (!curr || !curr->GetPropertyAsBool("WRAP_EXCLUDE"))
|
||||
{
|
||||
cmSourceFile file;
|
||||
if (curr)
|
||||
{
|
||||
file.SetIsAnAbstractClass(curr->IsAnAbstractClass());
|
||||
file.SetProperty("ABSTRACT",curr->GetProperty("ABSTRACT"));
|
||||
}
|
||||
std::string srcName = cmSystemTools::GetFilenameWithoutExtension(*j);
|
||||
std::string newName = srcName + "Java";
|
||||
|
@ -124,7 +124,7 @@ void cmVTKWrapJavaCommand::FinalPass()
|
|||
{
|
||||
args.push_back(hints);
|
||||
}
|
||||
args.push_back((m_WrapClasses[classNum].IsAnAbstractClass() ? "0" : "1"));
|
||||
args.push_back((m_WrapClasses[classNum].GetPropertyAsBool("ABSTRACT") ? "0" : "1"));
|
||||
args.push_back(res);
|
||||
|
||||
m_Makefile->AddCustomCommand(m_WrapHeaders[classNum].c_str(),
|
||||
|
@ -137,7 +137,7 @@ void cmVTKWrapJavaCommand::FinalPass()
|
|||
{
|
||||
args2.push_back(hints);
|
||||
}
|
||||
args2.push_back((m_WrapClasses[classNum].IsAnAbstractClass() ? "0" : "1"));
|
||||
args2.push_back((m_WrapClasses[classNum].GetPropertyAsBool("ABSTRACT") ? "0" : "1"));
|
||||
args2.push_back(res2);
|
||||
|
||||
m_Makefile->AddCustomCommand(m_WrapHeaders[classNum].c_str(),
|
||||
|
|
|
@ -66,12 +66,12 @@ bool cmVTKWrapPythonCommand::InitialPass(std::vector<std::string> const& argsIn)
|
|||
cmSourceFile *curr = m_Makefile->GetSource(j->c_str());
|
||||
|
||||
// if we should wrap the class
|
||||
if (!curr || !curr->GetWrapExclude())
|
||||
if (!curr || !curr->GetPropertyAsBool("WRAP_EXCLUDE"))
|
||||
{
|
||||
cmSourceFile file;
|
||||
if (curr)
|
||||
{
|
||||
file.SetIsAnAbstractClass(curr->IsAnAbstractClass());
|
||||
file.SetProperty("ABSTRACT",curr->GetProperty("ABSTRACT"));
|
||||
}
|
||||
std::string srcName = cmSystemTools::GetFilenameWithoutExtension(*j);
|
||||
std::string newName = srcName + "Python";
|
||||
|
@ -88,7 +88,7 @@ bool cmVTKWrapPythonCommand::InitialPass(std::vector<std::string> const& argsIn)
|
|||
}
|
||||
|
||||
cmSourceFile cfile;
|
||||
cfile.SetIsAnAbstractClass(false);
|
||||
cfile.SetProperty("ABSTRACT","0");
|
||||
this->CreateInitFile(res);
|
||||
cfile.SetName(initName.c_str(), m_Makefile->GetCurrentOutputDirectory(),
|
||||
"cxx",false);
|
||||
|
@ -125,7 +125,7 @@ void cmVTKWrapPythonCommand::FinalPass()
|
|||
{
|
||||
args.push_back(hints);
|
||||
}
|
||||
args.push_back((m_WrapClasses[classNum].IsAnAbstractClass() ? "0" : "1"));
|
||||
args.push_back((m_WrapClasses[classNum].GetPropertyAsBool("ABSTRACT") ? "0" : "1"));
|
||||
args.push_back(res);
|
||||
|
||||
m_Makefile->AddCustomCommand(m_WrapHeaders[classNum].c_str(),
|
||||
|
|
|
@ -102,12 +102,12 @@ bool cmVTKWrapTclCommand::InitialPass(std::vector<std::string> const& argsIn)
|
|||
cmSourceFile *curr = m_Makefile->GetSource(j->c_str());
|
||||
|
||||
// if we should wrap the class
|
||||
if (!curr || !curr->GetWrapExclude())
|
||||
if (!curr || !curr->GetPropertyAsBool("WRAP_EXCLUDE"))
|
||||
{
|
||||
cmSourceFile file;
|
||||
if (curr)
|
||||
{
|
||||
file.SetIsAnAbstractClass(curr->IsAnAbstractClass());
|
||||
file.SetProperty("ABSTRACT",curr->GetProperty("ABSTRACT"));
|
||||
}
|
||||
std::string srcName = cmSystemTools::GetFilenameWithoutExtension(*j);
|
||||
std::string newName = srcName + "Tcl";
|
||||
|
@ -124,7 +124,7 @@ bool cmVTKWrapTclCommand::InitialPass(std::vector<std::string> const& argsIn)
|
|||
}
|
||||
// add the init file
|
||||
cmSourceFile cfile;
|
||||
cfile.SetIsAnAbstractClass(false);
|
||||
cfile.SetProperty("ABSTRACT","0");
|
||||
std::string newName = m_LibraryName;
|
||||
newName += "Init";
|
||||
this->CreateInitFile(res);
|
||||
|
@ -162,7 +162,7 @@ void cmVTKWrapTclCommand::FinalPass()
|
|||
{
|
||||
args.push_back(hints);
|
||||
}
|
||||
args.push_back((m_WrapClasses[classNum].IsAnAbstractClass() ? "0" : "1"));
|
||||
args.push_back((m_WrapClasses[classNum].GetPropertyAsBool("ABSTRACT") ? "0" : "1"));
|
||||
std::string res = m_Makefile->GetCurrentOutputDirectory();
|
||||
res += "/";
|
||||
res += m_WrapClasses[classNum].GetSourceName() + ".cxx";
|
||||
|
@ -184,7 +184,7 @@ bool cmVTKWrapTclCommand::CreateInitFile(std::string& res)
|
|||
size_t classNum;
|
||||
for(classNum = 0; classNum < lastClass; classNum++)
|
||||
{
|
||||
if (!m_WrapClasses[classNum].IsAnAbstractClass())
|
||||
if (!m_WrapClasses[classNum].GetPropertyAsBool("ABSTRACT"))
|
||||
{
|
||||
std::string cls = m_WrapHeaders[classNum];
|
||||
cls = cls.substr(0,cls.size()-2);
|
||||
|
|
|
@ -42,7 +42,7 @@ bool cmWrapExcludeFilesCommand::InitialPass(std::vector<std::string> const& args
|
|||
cmSourceFile* sf = m_Makefile->GetSource(j->c_str());
|
||||
if(sf)
|
||||
{
|
||||
sf->SetWrapExclude(true);
|
||||
sf->SetProperty("WRAP_EXCLUDE","1");
|
||||
}
|
||||
// if file is not already in the makefile, then add it
|
||||
else
|
||||
|
@ -51,7 +51,7 @@ bool cmWrapExcludeFilesCommand::InitialPass(std::vector<std::string> const& args
|
|||
cmSourceFile file;
|
||||
std::string path = cmSystemTools::GetFilenamePath(newfile);
|
||||
// set the flags
|
||||
file.SetWrapExclude(true);
|
||||
file.SetProperty("WRAP_EXCLUDE","1");
|
||||
// if this is a full path then
|
||||
if((path.size() && path[0] == '/') ||
|
||||
(path.size() > 1 && path[1] == ':'))
|
||||
|
|
Loading…
Reference in New Issue