On 11.03.2012 05:05, Peter Collingbourne wrote:
On Fri, Mar 09, 2012 at 02:10:45PM -0500, Bill Hoffman wrote:
I am seeing that ninja always wants to relink the executables for me
every time it is run. The output is this:
$ ninja
[1/9] Linking C static library
Utilities\cmlibarchive\libarchive\cmlibarchive.lib
[2/9] Linking CXX executable bin\cmake.exe
[3/9] Linking CXX executable bin\cmw9xcom.exe
[4/9] Linking CXX executable bin\cpack.exe
[5/9] Linking CXX executable bin\ctest.exe
[6/9] Linking CXX executable Tests\CMakeLib\CMakeLibTests.exe
[7/9] Generating ../Docs/ctest.txt
[8/9] Generating ../Docs/cpack.txt
[9/9] Generating ../Docs/cmake.txt
Looks like the problem is libarchive getting recreated each time.
This seems to be a problem with the response file support in the
Windows branch of Ninja. That branch of Ninja will always relink
any target (in this case cmlibarchive.lib) in the case where the
list of object files exceeds the command line length limit, because
it causes Ninja to use a response file with a different generated
name every time.
I've fixed this by caching the used temporary file names.
And I've updated the ninja.exe.
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