An issue came up on the ninja list. Seems that the most recent version of cmake in some cases re-runs cmake every time in some cases on the Mac. It seems to be related to app bundle creation.

Here is the information so far:


-------- Original Message --------
Subject: Re: Ninja keeps starting cmake
Date: Mon, 28 Oct 2013 09:12:18 +0100
From: Peter Kümmel <syntheti...@gmx.net>
To: ninja-bu...@googlegroups.com

On 23.10.2013 22:49, Pierre-Nicolas Rigal wrote:

$ ninja -d explain -v
ninja explain: output build.ninja older than most recent input 
/Users/pnr/github/master-build/bin/xxx.app/Contents/MacOS
(1382557340 vs 1382557345)

Looks like the file "MacOS" is generated after building build.ninja.
I assume it is also listed by "ninja -t query build.ninja".
Does the name look different to the existing path (final slash, quote, or something similar)?

I found this commit in cmake which has touched MacOS since 28.11:
https://github.com/Kitware/CMake/commit/483e208482ff46532e7ae48659e569580a88af9c


[1/1] /usr/local/Cellar/cmake/2.8.12/bin/cmake 
-H/Users/pnr/github/master-B/Users/pnr/github/master-build

and:

[pnr@pnr master-build]$ ls -lT build.ninja
-rw-r--r--  1 pnr  staff  4160361 23 oct 21:21:45 2013 build.ninja
[pnr@pnr master-build]$ ls -lT 
/Users/pnr/github/master-build/bin/xxx.app/Contents/MacOS
total 54432
-rwxr-xr-x  1 pnr  staff  27866012 23 oct 21:21:49 2013 xxx
[pnr@pnr master-build]$

so it looks like one file is now built / created after build.ninja is getting 
updated.

if I'm doing : ninja && touch build.ninja, it works as expected, i.e. superfast 
"nothing to rebuild" run.

I tried the following:

ninja -d explain && date

I get: Mer 23 oct 2013 22:42:38 CEST

and if I do at the same time sudo opensnoop -v -f build.ninja

2013 Oct 23 22:42:21   501  98860 ninja          3 build.ninja

so the build ends at 22:42:38, but the last time buid.ninja has been openis at 
22:42:21.

Not sure how to force ninja to update build.ninja only at the end.

Thanks & regards,
pn




Le mercredi 23 octobre 2013 21:16:59 UTC+2, Pierre-Nicolas Rigal a écrit :

    Hello,

    I just moved to OSX 10.9, and decided to upgrade my build box. I was using 
mac ports, but following some colleagues
    advices, I moved to homebrew. Therefore I upgraded both cmake (2.8.12) and 
ninja ( moved to 1.4.0 ). After
    struggling a bit with the changes introduced with XCode 5.0.1 and 10.9, 
I've now a running build system ( I'm using
    Qt 4.8.5 + Qt Creator).

    Everything seems to work fine, except that calling ninja will re-run cmake 
even if no there is no change in the
    code, which leads to re-link all executables in my project ( including the 
100+ unit tests...), which is a bit bad (
    it takes 12 seconds using make, 25 using ninja...)

    any idea about what could be the reason for this, or any hint on whatI 
could do to track what's going wrong ?

    thanks in advance.
    regards,
    Pn

--
You received this message because you are subscribed to the Google 
Groups"ninja-build" group.
To unsubscribe from this group and stop receiving emails from it, send anemail 
to ninja-build+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
You received this message because you are subscribed to the Google Groups "ninja-build" group. To unsubscribe from this group and stop receiving emails from it, send an email to ninja-build+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



--

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

Reply via email to