summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileTargetGenerator.h
diff options
context:
space:
mode:
authorJiri Malak <malak.jiri@gmail.com>2014-03-25 06:17:45 (GMT)
committerBrad King <brad.king@kitware.com>2014-03-27 17:45:29 (GMT)
commit423009c17f50f837bca178a2cc5edfd62963f1ea (patch)
tree152751e8bd297948ac33517d2c8fc89e45e179df /Source/cmMakefileTargetGenerator.h
parenta863a8fecd368f3b17930dd7832fb2e0ba042616 (diff)
downloadCMake-423009c17f50f837bca178a2cc5edfd62963f1ea.zip
CMake-423009c17f50f837bca178a2cc5edfd62963f1ea.tar.gz
CMake-423009c17f50f837bca178a2cc5edfd62963f1ea.tar.bz2
Makefile: Generate single-quoted object lists for Watcom
Drop the CMAKE_NO_QUOTED_OBJECTS internal variable from the Makefile generators. The underlying problem is with the Watcom linker, not with WMake. The Watcom linker wants object files to be single-quoted. Add <LINK-RULE>_USE_WATCOM_QUOTE platform information variables to tell the generators to use Watcom-style single quotes for object files on link lines. On Windows, Watcom uses the GetCommandLine API to get the original command-line string and do custom parsing that expects single quotes. On POSIX systems, Watcom approximates the original command line by joining all argv[] entries separated by a single space. Therefore we need to double-quote the single-quoted arguments so that the shell does not consume them and they are available for the parser to see.
Diffstat (limited to 'Source/cmMakefileTargetGenerator.h')
-rw-r--r--Source/cmMakefileTargetGenerator.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/Source/cmMakefileTargetGenerator.h b/Source/cmMakefileTargetGenerator.h
index 7ff6da9..ff94660 100644
--- a/Source/cmMakefileTargetGenerator.h
+++ b/Source/cmMakefileTargetGenerator.h
@@ -113,7 +113,8 @@ protected:
// write out the variable that lists the objects for this target
void WriteObjectsVariable(std::string& variableName,
- std::string& variableNameExternal);
+ std::string& variableNameExternal,
+ bool useWatcomQuote);
void WriteObjectsString(std::string& buildObjs);
void WriteObjectsStrings(std::vector<std::string>& objStrings,
std::string::size_type limit = std::string::npos);
@@ -172,7 +173,8 @@ protected:
/** Create lists of object files for linking and cleaning. */
void CreateObjectLists(bool useLinkScript, bool useArchiveRules,
bool useResponseFile, std::string& buildObjs,
- std::vector<std::string>& makefile_depends);
+ std::vector<std::string>& makefile_depends,
+ bool useWatcomQuote);
void AddIncludeFlags(std::string& flags, const std::string& lang);