summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileTargetGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2006-06-15 20:17:11 (GMT)
committerBrad King <brad.king@kitware.com>2006-06-15 20:17:11 (GMT)
commit0bbcb49f65eb92daafc5ad87162f1ecedc3438dc (patch)
tree4889b6c00d1b1fb55a0e55c1ec17cb16edf0a4ab /Source/cmMakefileTargetGenerator.cxx
parent6438bec4c9355960f47e4b853f27b548a55ec5e0 (diff)
downloadCMake-0bbcb49f65eb92daafc5ad87162f1ecedc3438dc.zip
CMake-0bbcb49f65eb92daafc5ad87162f1ecedc3438dc.tar.gz
CMake-0bbcb49f65eb92daafc5ad87162f1ecedc3438dc.tar.bz2
ENH: Added generation of link rules into script files executed by a cmake -E command in order to support longer link lines. This is needed only on platforms without response file support and that may have weak shells.
Diffstat (limited to 'Source/cmMakefileTargetGenerator.cxx')
-rw-r--r--Source/cmMakefileTargetGenerator.cxx50
1 files changed, 50 insertions, 0 deletions
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index 8973627..0f1a087 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -809,6 +809,56 @@ cmMakefileTargetGenerator
}
//----------------------------------------------------------------------------
+void
+cmMakefileTargetGenerator
+::WriteObjectsString(std::string& buildObjs)
+{
+ std::string object;
+ const char* no_quoted =
+ this->Makefile->GetDefinition("CMAKE_NO_QUOTED_OBJECTS");
+ const char* space = "";
+ for(std::vector<std::string>::const_iterator i = this->Objects.begin();
+ i != this->Objects.end(); ++i)
+ {
+ if ( this->ExtraContent.find(i->c_str()) != this->ExtraContent.end() )
+ {
+ continue;
+ }
+ buildObjs += space;
+ space = " ";
+ if(no_quoted)
+ {
+ buildObjs +=
+ this->Convert(i->c_str(), cmLocalGenerator::START_OUTPUT,
+ cmLocalGenerator::SHELL);
+ }
+ else
+ {
+ buildObjs +=
+ this->LocalGenerator->ConvertToQuotedOutputPath(i->c_str());
+ }
+ }
+ for(std::vector<std::string>::const_iterator i =
+ this->ExternalObjects.begin();
+ i != this->ExternalObjects.end(); ++i)
+ {
+ buildObjs += space;
+ space = " ";
+ if(no_quoted)
+ {
+ buildObjs +=
+ this->Convert(i->c_str(), cmLocalGenerator::START_OUTPUT,
+ cmLocalGenerator::SHELL);
+ }
+ else
+ {
+ buildObjs +=
+ this->LocalGenerator->ConvertToQuotedOutputPath(i->c_str());
+ }
+ }
+}
+
+//----------------------------------------------------------------------------
void cmMakefileTargetGenerator::WriteTargetDriverRule(const char* main_output,
bool relink)
{