On Tue, Jan 31, 2012 at 05:06:28PM -0500, Brad King wrote: > On 1/31/2012 4:44 PM, Peter Kümmel wrote: >> OK, thanks. I already noticed the usage of OutputFormat::SHELL. >> Then I have to extend cmLocalGenerator by a Ninja case. It will be >> similar to NMake but additionally replaces colons by '$:'. >> >> Should I add kwsysSystem_Shell_Flag_Ninja in System.h? > > Yes. Unfortunately KWSys was not really the right place to have all > the platform-specific shell escaping code, but it ended up that way > historically. Please keep any commits that touch KWSys mutually > exclusive from commits that touch files outside KWSys.
I disagree. The escaping rules are already implemented correctly and are only required in the specific case where a path name needs to appear as a (lexicographical) identifier. Also, it is impossible to represent certain strings as identifiers without writing some text beforehand. For example, the generator will build things like this for paths containing the '@' character: ident0 = a@b build foo: CUSTOM_COMMAND $ident0 [...] Therefore, the best place to keep this code is in the part of the Ninja generator that is responsible for writing rules/build statements to a file. > That will > be handy when it comes time to integrate this work upstream because > KWSys is shared with other projects. Why isn't that time now? The generator already works and passes all tests on at least 2 platforms. Thanks, -- Peter -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
