If you want to do a clean rebuild you can do the following:
ninja clean or cmake --build <build_dir> --target clean
ninja or cmake --build <build_dir> -j N

On Wed, Oct 9, 2019 at 12:00 PM Nagurne, James <j-nagu...@ti.com> 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 <source_dir> -B <binary_dir>` 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 <cmake@cmake.org> 
> 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 <source_dir> -B <binary_dir>
> >
> >
> >
> > 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

Reply via email to