I am using CMake 2.8.12 on Windows. My directory/path name contains an exclamation point (e.g. C:\!Code\CommandLineTooLong). I get a 'The command line is too long.' error when linking an executable from 100 objects.
After poking around in cmGlobalNinjaGenerator.cxx, this is what I think is causing the error. Due to the exclamation point in the path name, an 'identify' variable (e.g. ident350, ident351, etc.) is generated for each object when creating the EXECUTABLE_LINKER build rule. The generated build statement consists of the identify variable names (e.g. build $ident450: CXX_EXECUTABLE_LINKER $ident350 $ident351 $ident352 ... $ident449). The length of this build statement (with identify variables) is used in the calculation to determine if a response file is required. The length does not exceed the command line limit, so a response file is not used. However, when the identify variables are replaced with the path names during the build, the build statement is too long causing an error. Is this a known error? I searched in bug tracker, but didn't find it. If it is a known bug, is there a fix for it? Thanks...Scott
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
