summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmBuildCommand.cxx10
-rw-r--r--Source/cmDirectory.h2
-rw-r--r--Source/cmMSDotNETGenerator.cxx42
-rw-r--r--Source/cmMSDotNETGenerator.h5
-rw-r--r--Source/cmRegularExpression.h16
-rw-r--r--Source/cmSystemTools.cxx6
6 files changed, 45 insertions, 36 deletions
diff --git a/Source/cmBuildCommand.cxx b/Source/cmBuildCommand.cxx
index e07335e..a8e753e 100644
--- a/Source/cmBuildCommand.cxx
+++ b/Source/cmBuildCommand.cxx
@@ -44,6 +44,16 @@ bool cmBuildCommand::InitialPass(std::vector<std::string> const& args)
makecommand += m_Makefile->GetProjectName();
makecommand += ".dsw /MAKE \"ALL_BUILD - Release\" ";
}
+ else if (makeprogram.find("devenv") != std::string::npos ||
+ makeprogram.find("DEVENV") != std::string::npos )
+ {
+ makecommand = "\"";
+ makecommand += makeprogram;
+ makecommand += "\"";
+ makecommand += " ";
+ makecommand += m_Makefile->GetProjectName();
+ makecommand += ".sln /build Release /project ALL_BUILD";
+ }
else if(m_Makefile->GetDefinition("BORLAND"))
{
makecommand = makeprogram;
diff --git a/Source/cmDirectory.h b/Source/cmDirectory.h
index 9cc9b27..ec8a9b7 100644
--- a/Source/cmDirectory.h
+++ b/Source/cmDirectory.h
@@ -42,7 +42,7 @@ public:
/**
* Return the number of files in the current directory.
*/
- int GetNumberOfFiles() { return m_Files.size();}
+ std::vector<std::string>::size_type GetNumberOfFiles() { return m_Files.size();}
/**
* Return the file at the given index, the indexing is 0 based
diff --git a/Source/cmMSDotNETGenerator.cxx b/Source/cmMSDotNETGenerator.cxx
index 27df9df..6dc5d14 100644
--- a/Source/cmMSDotNETGenerator.cxx
+++ b/Source/cmMSDotNETGenerator.cxx
@@ -27,7 +27,7 @@
cmMSDotNETGenerator::cmMSDotNETGenerator()
{
m_Configurations.push_back("Debug");
-// m_Configurations.push_back("Release");
+ m_Configurations.push_back("Release");
// m_Configurations.push_back("MinSizeRel");
// m_Configurations.push_back("RelWithDebInfo");
// default to building a sln project file
@@ -66,7 +66,7 @@ void cmMSDotNETGenerator::ComputeSystemInfo()
}
std::string fpath =
m_Makefile->GetDefinition("CMAKE_ROOT");
- fpath += "/Templates/CMakeWindowsSystemConfig.cmake";
+ fpath += "/Templates/CMakeDotNetSystemConfig.cmake";
m_Makefile->ReadListFile(NULL,fpath.c_str());
}
@@ -742,7 +742,9 @@ void cmMSDotNETGenerator::WriteConfiguration(std::ostream& fout,
fout << "\t\t\t<Tool\n\t\t\t\tName=\"VCCustomBuildTool\"/>\n";
fout << "\t\t\t<Tool\n\t\t\t\tName=\"VCMIDLTool\"/>\n";
- fout << "\t\t\t<Tool\n\t\t\t\tName=\"VCPostBuildEventTool\"/>\n";
+ fout << "\t\t\t<Tool\n\t\t\t\tName=\"VCPostBuildEventTool\"";
+ this->OutputTargetRules(fout, target, libName);
+ fout << "/>\n";
fout << "\t\t\t<Tool\n\t\t\t\tName=\"VCPreBuildEventTool\"/>\n";
this->OutputBuildTool(fout, configName, libName, target);
fout << "\t\t</Configuration>\n";
@@ -838,7 +840,7 @@ void cmMSDotNETGenerator::OutputLibraryDirectories(std::ostream& fout,
{
fout << ",";
}
- fout << lpath;
+ fout << lpath << "\\$(INTDIR)," << lpath;
hasone = true;
}
}
@@ -873,13 +875,17 @@ void cmMSDotNETGenerator::OutputDefineFlags(std::ostream& fout)
std::string defs = m_Makefile->GetDefineFlags();
std::string::size_type pos = defs.find("-D");
bool done = pos == std::string::npos;
+ if(!done)
+ {
+ fout << ",";
+ }
while(!done)
{
std::string::size_type nextpos = defs.find("-D", pos+2);
std::string define;
if(nextpos != std::string::npos)
{
- define = defs.substr(pos+2, nextpos - pos -2);
+ define = defs.substr(pos+2, nextpos - pos -3);
}
else
{
@@ -1113,15 +1119,14 @@ cmMSDotNETGenerator::CombineCommands(const cmSourceGroup::Commands &commands,
// look for custom rules on a target and collect them together
-std::string
-cmMSDotNETGenerator::CreateTargetRules(const cmTarget &target,
- const char *libName)
-{
- std::string customRuleCode = "";
+void cmMSDotNETGenerator::OutputTargetRules(std::ostream& fout,
+ const cmTarget &target,
+ const char *libName)
+{
if (target.GetType() >= cmTarget::UTILITY)
{
- return customRuleCode;
+ return;
}
// Find the group in which the lix exe custom rules belong
@@ -1134,25 +1139,18 @@ cmMSDotNETGenerator::CreateTargetRules(const cmTarget &target,
cc.ExpandVariables(*m_Makefile);
if (cc.GetSourceName() == libName)
{
- if (!init)
+ if(!init)
{
- // header stuff
- customRuleCode = "# Begin Special Build Tool\nPostBuild_Cmds=";
+ fout << "\nCommandLine=\"";
init = true;
}
- else
- {
- customRuleCode += "\t";
- }
- customRuleCode += cc.GetCommand() + " " + cc.GetArguments();
+ fout << cc.GetCommand() << " " << cc.GetArguments() << "\n";
}
}
-
if (init)
{
- customRuleCode += "\n# End Special Build Tool\n";
+ fout << "\"";
}
- return customRuleCode;
}
void cmMSDotNETGenerator::WriteProjectStart(std::ostream& fout, const char *libName,
diff --git a/Source/cmMSDotNETGenerator.h b/Source/cmMSDotNETGenerator.h
index ad8286c..02770ca 100644
--- a/Source/cmMSDotNETGenerator.h
+++ b/Source/cmMSDotNETGenerator.h
@@ -112,8 +112,9 @@ private:
const std::set<std::string>& depends,
const std::set<std::string>& outputs);
- std::string CreateTargetRules(const cmTarget &target,
- const char *libName);
+ void OutputTargetRules(std::ostream& fout,
+ const cmTarget &target,
+ const char *libName);
std::string CombineCommands(const cmSourceGroup::Commands &commands,
cmSourceGroup::CommandFiles &totalCommand,
const char *source);
diff --git a/Source/cmRegularExpression.h b/Source/cmRegularExpression.h
index f33879d..755b54b 100644
--- a/Source/cmRegularExpression.h
+++ b/Source/cmRegularExpression.h
@@ -220,12 +220,12 @@ public:
/**
* Index to start of first find.
*/
- inline long start() const;
+ inline std::string::size_type start() const;
/**
* Index to end of first find.
*/
- inline long end() const;
+ inline std::string::size_type end() const;
/**
* Returns true if two regular expressions have the same
@@ -259,8 +259,8 @@ public:
* Destructor.
*/
// awf added
- int start(int n) const;
- int end(int n) const;
+ std::string::size_type start(int n) const;
+ std::string::size_type end(int n) const;
std::string match(int n) const;
private:
@@ -306,7 +306,7 @@ inline cmRegularExpression::~cmRegularExpression ()
/**
* Set the start position for the regular expression.
*/
-inline long cmRegularExpression::start () const
+inline std::string::size_type cmRegularExpression::start () const
{
return(this->startp[0] - searchstring);
}
@@ -315,7 +315,7 @@ inline long cmRegularExpression::start () const
/**
* Returns the start/end index of the last item found.
*/
-inline long cmRegularExpression::end () const
+inline std::string::size_type cmRegularExpression::end () const
{
return(this->endp[0] - searchstring);
}
@@ -350,7 +350,7 @@ inline void cmRegularExpression::set_invalid ()
/**
* Return start index of nth submatch. start(0) is the start of the full match.
*/
-inline int cmRegularExpression::start(int n) const
+inline std::string::size_type cmRegularExpression::start(int n) const
{
return this->startp[n] - searchstring;
}
@@ -359,7 +359,7 @@ inline int cmRegularExpression::start(int n) const
/**
* Return end index of nth submatch. end(0) is the end of the full match.
*/
-inline int cmRegularExpression::end(int n) const
+inline std::string::size_type cmRegularExpression::end(int n) const
{
return this->endp[n] - searchstring;
}
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 4b2de1b..13d178b 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -179,9 +179,9 @@ void cmSystemTools::ReplaceString(std::string& source,
const char* replace,
const char* with)
{
- int lengthReplace = strlen(replace);
+ std::string::size_type lengthReplace = strlen(replace);
std::string rest;
- size_t start = source.find(replace);
+ std::string::size_type start = source.find(replace);
while(start != std::string::npos)
{
rest = source.substr(start+lengthReplace);
@@ -393,7 +393,7 @@ std::string cmSystemTools::UpperCase(const std::string& s)
}
-// convert windows slashes to unix slashes \ with /
+// convert windows slashes to unix slashes
void cmSystemTools::ConvertToUnixSlashes(std::string& path)
{
std::string::size_type pos = 0;