If you want to do a clean rebuild you can do the following:
ninja clean or cmake --build --target clean
ninja or cmake --build -j N
On Wed, Oct 9, 2019 at 12:00 PM Nagurne, James wrote:
>
> That's the piece of the puzzle I was missing. Thank you!
>
> Yes, I had deleted the cache because I thought that would force a complete
> regeneration. I'm using a rather complicated system of ExternalProjects
> (LLVM), so I figured it was the quickest way to essentially force cmake to
> start from the beginning and reload those cache files without invalidating
> and forcing a rebuild of the executables and libraries I had already built
>
> Is there a way to do what I was looking for? I wouldn't be surprised if there
> wasn't, since removing those very fundamental building blocks might as well
> just be an rm -rf ./*
>
> JB
>
> -Original Message-
> From: Robert Maynard [mailto:robert.mayn...@kitware.com]
> Sent: Wednesday, October 9, 2019 7:16 AM
> To: Nagurne, James
> Cc: cmake@cmake.org
> Subject: [EXTERNAL] Re: [CMake] CMake and Ninja, RERUN_CMAKE useless?
>
> The default generator and all other associated information ( '-D' ) is
> kept in the CMakeCache.txt file in the root of the build directory.
> The execution of `cmake -S -B ` will reload
> this cache before doing anything else. Have you verified that your
> build directory hasn't deleted this file?
>
> On Tue, Oct 8, 2019 at 8:31 PM Nagurne, James via CMake
> wrote:
> >
> > Hi all,
> >
> >
> >
> > My question comes from a Ninja generator build system, and is specifically
> > about an internal rule generated by cmake.
> >
> > What is the purpose of the RERUN_CMAKE rule generated by CMake with a Ninja
> > generator?
> >
> >
> >
> > In the current repo, the only reference to this rule is in
> > WriteTargetRebuildManifest here
> >
> > At line 1285, the rule is written out, seemingly as-is.
> >
> >
> >
> > According to lines 1274 to 1284, the only actual behavior of this command,
> > which is executed whenever the source CMakeLists.txt file, files included
> > from the CMakeLists, and some other CMake installation files change, is:
> >
> > cmake -S -B
> >
> >
> >
> > This seems completely insufficient for “re-running” cmake. The most obvious
> > flaw is the absence of the generator. When I’ve seen this rule fire, my
> > Ninja build system adds a useless Makefile to the build system, and then
> > (hopefully) continues building as if nothing had been done at all, without
> > so much as inspecting that Makefile.
> >
> >
> >
> > What about command-line arguments like -D?
> >
> >
> >
> > Am I missing the purpose of this rule or potentially doing something
> > non-standard? The reason I send an email is because this behavior is
> > sending my project into a cmake loop where it detects build.ninja is out of
> > date, re-runs cmake to generate a Makefile instead of a ninja build system,
> > and then infinitely repeats because it never actually re-ran anything.
> >
> >
> >
> > Thanks,
> >
> > JB
> >
> > Code Generation
> >
> > Texas Instruments
> >
> > --
> >
> > 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:
> > https://cmake.org/mailman/listinfo/cmake
--
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:
https://cmake.org/mailman/listinfo/cmake