[CMake] Ninja fails, Make succeeds...

Mikael Lyngvig mikael at lyngvig.org
Tue Jun 26 18:30:30 EDT 2012


No, I delete the entire build tree (I build out of the source tree, btw).

The procedure is as follows:

   rem foo contains the source code
   md foo-build
   cd foo-build
   cmake -G Ninja ..\foo
   ninja
   rem fails as described earlier

    cd ..
    rd /s /q foo-build
    md foo-build
    cd foo-build
    cmake -G "MinGW Makefiles" ..\foo
    make
    rem succeeds as described earlier

Thank you for your reply.  If you need source, I can send you a zip archive
as it is an incomplete open source project.


Cheers,
Mikael

2012/6/27 David Cole <david.cole at kitware.com>

> You can't switch generators in the same build tree without deleting
> absolutely everything and starting over.
>
> Is that what you're trying to do?
>
> If you want a make build tree and a ninja build tree, you'll need two
> separate build trees....
>
>
> HTH,
> David
>
>
> On Tue, Jun 26, 2012 at 4:45 PM, Mikael Lyngvig <mikael at lyngvig.org>
> wrote:
> > Hi,
> >
> > I am a fan of Ninja.  Since I started using it, everything's been built
> > much, much faster than before.  Among other things because I use CMake to
> > publish headers to the binary directory so as to allow me to include the
> > headers with a relative path without having to move all my headers to a
> > central include directory (I want my source files and headers to be in
> the
> > same directory).  Ninja does this very fast, whereas GNU Make takes
> forever
> > to publish my header files.
> >
> > However, I have a puzzling problem: Out of the blue, Ninja started
> failing
> > to build my project.  If I remake the project with 'cmake -G "MinGW
> > Makefiles"', it takes ages to build but it succeeds.  If I do 'cmake -G
> > Ninja', it quickly aborts because it seems that either CMake or Ninja
> wants
> > to build one of the last targets at a very early point in the build
> phase.
> >  I have an executable, driver.exe, which is supposed to be built as the
> very
> > last item.  With Ninja, however, it pops up around 20 percent into the
> build
> > and the build fails because the dependent libraries are nowhere to be
> found
> > (they haven't been built yet).  I have tried clearing the binaries
> directory
> > (rd /s /q foo & md foo) and so on a number of times, but Ninja insists on
> > trying to build this final executable at a very early stage.
> >
> > Any ideas?  I suppose the problem is caused by one of these three things:
> >
> >    1. An error on my part.  Very likely.
> >    2. An error in CMake's generation of Ninja scripts.  Not unlikely due
> to
> > the still fairly immature support for Ninja.
> >    3. An error in Ninja.  Highly unlikely as Ninja builds tons and tons
> of
> > projects all over the world each day and nobody seem to have run into
> this
> > problem before.
> >
> > How do you locate the problem?
> >
> > Thanks in advance!
> >
> >
> > Cheers,
> > Mikael
> > -- Love Thy Frog!
> >
> > --
> >
> > 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://www.cmake.org/mailman/listinfo/cmake
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20120627/1a5ed298/attachment-0001.htm>


More information about the CMake mailing list