Commit 0fe42a98 authored by Ken Martin's avatar Ken Martin

various windows fixes

parent 5acb894e
......@@ -213,8 +213,11 @@ void cmCableWrapTclCommand::GenerateCableFiles() const
m_Makefile->ExpandVariablesInString(command);
std::vector<std::string> depends;
depends.push_back(command);
std::string commandArgs = " "+packageConfigName+
" -tcl "+packageTclFullName+".cxx";
std::vector<std::string> commandArgs;
commandArgs.push_back(packageConfigName);
commandArgs.push_back("-tcl");
std::string tmp = packageTclFullName+".cxx";
commandArgs.push_back(tmp);
depends.push_back(packageConfigName);
......@@ -223,7 +226,7 @@ void cmCableWrapTclCommand::GenerateCableFiles() const
m_Makefile->AddCustomCommand(packageConfigName.c_str(),
command.c_str(),
commandArgs.c_str(),
commandArgs,
depends,
outputs, m_TargetName.c_str());
......@@ -341,30 +344,31 @@ void cmCableWrapTclCommand::GenerateCableClassFiles(const char* name,
}
}
std::string commandArgs = this->GetGccXmlFlagsFromCache();
commandArgs += " ";
commandArgs += m_Makefile->GetDefineFlags();
commandArgs += " -I\"";
commandArgs += m_Makefile->GetStartDirectory();
commandArgs += "\"";
std::vector<std::string> commandArgs;
commandArgs.push_back(this->GetGccXmlFlagsFromCache());
commandArgs.push_back(m_Makefile->GetDefineFlags());
commandArgs.push_back("-I");
commandArgs.push_back(m_Makefile->GetStartDirectory());
const std::vector<std::string>& includes =
m_Makefile->GetIncludeDirectories();
for(std::vector<std::string>::const_iterator i = includes.begin();
i != includes.end(); ++i)
{
commandArgs += " -I";
commandArgs += cmSystemTools::EscapeSpaces(i->c_str());
commandArgs.push_back("-I");
commandArgs.push_back(cmSystemTools::EscapeSpaces(i->c_str()));
}
commandArgs += " -fxml="+classXmlName+" "+classCxxName;
std::string tmp = "-fxml=";
tmp += classXmlName;
commandArgs.push_back(tmp);
commandArgs.push_back(classCxxName);
std::vector<std::string> outputs;
outputs.push_back(classXmlName);
m_Makefile->AddCustomCommand(classCxxName.c_str(),
command.c_str(),
commandArgs.c_str(),
commandArgs,
depends,
outputs, m_TargetName.c_str());
}
......@@ -374,7 +378,11 @@ void cmCableWrapTclCommand::GenerateCableClassFiles(const char* name,
std::string command = this->GetCableFromCache();
std::vector<std::string> depends;
depends.push_back(command);
std::string commandArgs = " "+classConfigName+" -tcl "+classTclFullName+".cxx";
std::vector<std::string > commandArgs;
commandArgs.push_back(classConfigName);
commandArgs.push_back("-tcl");
std::string tmp = classTclFullName+".cxx";
commandArgs.push_back(tmp);
depends.push_back(classConfigName);
depends.push_back(classXmlName);
......@@ -384,8 +392,7 @@ void cmCableWrapTclCommand::GenerateCableClassFiles(const char* name,
m_Makefile->AddCustomCommand(classConfigName.c_str(),
command.c_str(),
commandArgs.c_str(),
depends,
commandArgs, depends,
outputs, m_TargetName.c_str());
}
......
......@@ -266,6 +266,7 @@ void cmDSPWriter::WriteDSPFile(std::ostream& fout,
totalCommandStr += "\n\t";
temp= c->second.m_Command;
cmSystemTools::ConvertToWindowsSlashes(temp);
temp = cmSystemTools::EscapeSpaces(temp.c_str());
totalCommandStr += temp;
totalCommandStr += " ";
totalCommandStr += c->second.m_Arguments;
......
......@@ -461,7 +461,7 @@ void cmMakefile::RemoveSource(cmSourceFile& cmfile,const char *srclist)
void cmMakefile::AddCustomCommand(const char* source,
const char* command,
const char* commandArgs,
const std::vector<std::string>& commandArgs,
const std::vector<std::string>& depends,
const std::vector<std::string>& outputs,
const char *target)
......@@ -470,7 +470,17 @@ void cmMakefile::AddCustomCommand(const char* source,
if (m_Targets.find(target) != m_Targets.end())
{
std::string c = cmSystemTools::EscapeSpaces(command);
cmCustomCommand cc(source,c.c_str(),commandArgs,depends,outputs);
std::string combinedArgs;
int i;
for (i = 0; i < commandArgs.size(); ++i)
{
combinedArgs += cmSystemTools::EscapeSpaces(commandArgs[i].c_str());
combinedArgs += " ";
}
cmCustomCommand cc(source,c.c_str(),combinedArgs.c_str(),depends,outputs);
m_Targets[target].GetCustomCommands().push_back(cc);
std::string cacheCommand = command;
this->ExpandVariablesInString(cacheCommand);
......@@ -484,7 +494,7 @@ void cmMakefile::AddCustomCommand(const char* source,
void cmMakefile::AddCustomCommand(const char* source,
const char* command,
const char* commandArgs,
const std::vector<std::string>& commandArgs,
const std::vector<std::string>& depends,
const char* output,
const char *target)
......
......@@ -136,14 +136,14 @@ public:
*/
void AddCustomCommand(const char* source,
const char* command,
const char* commandArgs,
const std::vector<std::string>& commandArgs,
const std::vector<std::string>& depends,
const std::vector<std::string>& outputs,
const char *target);
void AddCustomCommand(const char* source,
const char* command,
const char* commandArgs,
const std::vector<std::string>& commandArgs,
const std::vector<std::string>& depends,
const char* output,
const char* target);
......
......@@ -341,9 +341,16 @@ std::string cmSystemTools::EscapeSpaces(const char* str)
#if defined(_WIN32) && !defined(__CYGWIN__)
std::string result;
result = "\"";
result += cmSystemTools::HandleNetworkPaths(str);
return result+"\"";
// if there are spaces
std::string temp = str;
if (temp.find(" ") != std::string::npos)
{
result = "\"";
result += cmSystemTools::HandleNetworkPaths(str);
return result+"\"";
}
return cmSystemTools::HandleNetworkPaths(str);
#else
std::string result = "";
for(const char* ch = str; *ch != '\0'; ++ch)
......
......@@ -112,9 +112,13 @@ void cmVTKWrapJavaCommand::FinalPass()
std::string hints = "${VTK_WRAP_HINTS}";
std::string resultDirectory = "${VTK_JAVA_HOME}";
m_Makefile->ExpandVariablesInString(hints);
// wrap all the .h files
depends.push_back(wjava);
depends.push_back(hints);
depends2.push_back(pjava);
depends2.push_back(hints);
for(int classNum = 0; classNum < lastClass; classNum++)
{
m_Makefile->AddSource(m_WrapClasses[classNum],m_SourceList.c_str());
......@@ -124,16 +128,26 @@ void cmVTKWrapJavaCommand::FinalPass()
std::string res2 = resultDirectory + "/" +
m_OriginalNames[classNum] + ".java";
std::string cmd = " " + m_WrapHeaders[classNum] + " "
+ hints + (m_WrapClasses[classNum].IsAnAbstractClass() ? " 0 " : " 1 ") + " > " + m_WrapClasses[classNum].GetSourceName() + ".cxx";
std::vector<std::string> args;
args.push_back(m_WrapHeaders[classNum]);
args.push_back(hints);
args.push_back((m_WrapClasses[classNum].IsAnAbstractClass() ? "0" : "1"));
args.push_back(">");
args.push_back(res);
m_Makefile->AddCustomCommand(m_WrapHeaders[classNum].c_str(),
wjava.c_str(), cmd.c_str(), depends,
wjava.c_str(), args, depends,
res.c_str(), m_LibraryName.c_str());
cmd = " " + m_WrapHeaders[classNum] + " "
+ hints + (m_WrapClasses[classNum].IsAnAbstractClass() ? " 0 " : " 1 ") + " > " + res2;
std::vector<std::string> args2;
args2.push_back(m_WrapHeaders[classNum]);
args2.push_back(hints);
args2.push_back((m_WrapClasses[classNum].IsAnAbstractClass() ? "0" : "1"));
args2.push_back(">");
args2.push_back(res2);
m_Makefile->AddCustomCommand(m_WrapHeaders[classNum].c_str(),
pjava.c_str(), cmd.c_str(), depends2,
pjava.c_str(), args2, depends2,
res2.c_str(), m_LibraryName.c_str());
alldepends.push_back(res2);
}
......
......@@ -106,6 +106,8 @@ void cmVTKWrapPythonCommand::FinalPass()
std::vector<std::string> depends;
std::string wpython = "${VTK_WRAP_PYTHON_EXE}";
std::string hints = "${VTK_WRAP_HINTS}";
m_Makefile->ExpandVariablesInString(hints);
// Create the init file
std::string res = m_LibraryName;
......@@ -123,14 +125,19 @@ void cmVTKWrapPythonCommand::FinalPass()
// wrap all the .h files
depends.push_back(wpython);
depends.push_back(hints);
for(int classNum = 0; classNum < lastClass; classNum++)
{
m_Makefile->AddSource(m_WrapClasses[classNum],m_SourceList.c_str());
std::string res = m_WrapClasses[classNum].GetSourceName() + ".cxx";
std::string cmd = m_WrapHeaders[classNum] + " "
+ hints + (m_WrapClasses[classNum].IsAnAbstractClass() ? " 0 " : " 1 ") + " > " + m_WrapClasses[classNum].GetSourceName() + ".cxx";
std::vector<std::string> args;
args.push_back(m_WrapHeaders[classNum]);
args.push_back(hints);
args.push_back((m_WrapClasses[classNum].IsAnAbstractClass() ? "0" : "1"));
args.push_back(">");
args.push_back(res);
m_Makefile->AddCustomCommand(m_WrapHeaders[classNum].c_str(),
wpython.c_str(), cmd.c_str(), depends,
wpython.c_str(), args, depends,
res.c_str(), m_LibraryName.c_str());
}
......
......@@ -139,6 +139,8 @@ void cmVTKWrapTclCommand::FinalPass()
std::string wtcl = "${VTK_WRAP_TCL_EXE}";
std::string hints = "${VTK_WRAP_HINTS}";
m_Makefile->ExpandVariablesInString(hints);
// Create the init file
std::string res = m_LibraryName;
res += "Init.cxx";
......@@ -155,14 +157,23 @@ void cmVTKWrapTclCommand::FinalPass()
// wrap all the .h files
depends.push_back(wtcl);
depends.push_back(hints);
for(int classNum = 0; classNum < lastClass; classNum++)
{
m_Makefile->AddSource(m_WrapClasses[classNum],m_SourceList.c_str());
std::string res = m_WrapClasses[classNum].GetSourceName() + ".cxx";
std::string cmd = m_WrapHeaders[classNum] + " "
+ hints + (m_WrapClasses[classNum].IsAnAbstractClass() ? " 0 " : " 1 ") + " > " + m_WrapClasses[classNum].GetSourceName() + ".cxx";
std::vector<std::string> args;
args.push_back(m_WrapHeaders[classNum]);
args.push_back(hints);
args.push_back((m_WrapClasses[classNum].IsAnAbstractClass() ? "0" : "1"));
args.push_back(">");
std::string tmp = m_Makefile->GetCurrentOutputDirectory();
tmp += "/";
tmp += m_WrapClasses[classNum].GetSourceName() + ".cxx";
args.push_back(tmp);
m_Makefile->AddCustomCommand(m_WrapHeaders[classNum].c_str(),
wtcl.c_str(), cmd.c_str(), depends,
wtcl.c_str(), args, depends,
res.c_str(), m_LibraryName.c_str());
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment