diff options
author | Jiri Malak <malak.jiri@gmail.com> | 2014-03-25 06:17:45 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-03-27 17:45:29 (GMT) |
commit | 423009c17f50f837bca178a2cc5edfd62963f1ea (patch) | |
tree | 152751e8bd297948ac33517d2c8fc89e45e179df /Modules/Platform | |
parent | a863a8fecd368f3b17930dd7832fb2e0ba042616 (diff) | |
download | CMake-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 'Modules/Platform')
-rw-r--r-- | Modules/Platform/Windows-wcl386.cmake | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Modules/Platform/Windows-wcl386.cmake b/Modules/Platform/Windows-wcl386.cmake index 6b1cfd1..617761b 100644 --- a/Modules/Platform/Windows-wcl386.cmake +++ b/Modules/Platform/Windows-wcl386.cmake @@ -39,6 +39,11 @@ set (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-br -bm -d2 -ot -dNDEBUG") set (CMAKE_C_STANDARD_LIBRARIES_INIT "library clbrdll.lib library plbrdll.lib library kernel32.lib library user32.lib library gdi32.lib library winspool.lib library comdlg32.lib library advapi32.lib library shell32.lib library ole32.lib library oleaut32.lib library uuid.lib library odbc32.lib library odbccp32.lib") set (CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") +foreach(type CREATE_SHARED_LIBRARY CREATE_SHARED_MODULE LINK_EXECUTABLE) + set(CMAKE_C_${type}_USE_WATCOM_QUOTE 1) + set(CMAKE_CXX_${type}_USE_WATCOM_QUOTE 1) +endforeach() + set(CMAKE_C_CREATE_IMPORT_LIBRARY "wlib -c -q -n -b <TARGET_IMPLIB> +<TARGET_QUOTED>") set(CMAKE_CXX_CREATE_IMPORT_LIBRARY ${CMAKE_C_CREATE_IMPORT_LIBRARY}) |