[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cmake
Subject:    Re: [CMake] Run clean before automatically re-running cmake?
From:       Matthew Woehlke <mw_triad () users ! sourceforge ! net>
Date:       2014-02-12 16:53:38
Message-ID: ldg8u4$lgs$1 () ger ! gmane ! org
[Download RAW message or body]

On 2014-02-12 11:35, Abe Bachrach wrote:
> The Makefile that cmake generates includes a rule to automatically re-run
> cmake if any of the input CMakelists.txt files change.
> 
> Currently, if you change the name of an executable target (or library), it
> will leave the old file in the output location, and then after re-running
> cmake, the Makefile will not have any record of it, so running make clean
> won't remove it.
> 
> I would rather have the rule call make clean before re-running cmake so
> that such stray outputs are not left around.
> 
> Is there any way to accomplish this?

What you really want is to record the "old" list of output files, re-run 
CMake, then remove any files on that list that no longer have rules to 
generate them. If you do a complete 'clean' you will delete and have to 
rebuild more than is necessary (which might even be nothing e.g. if 
CMake is being re-run because you added a debugging message).

While that's probably hard to impossible ¹ with 'make', I mention it 
because this feature (as described above) has at least been discussed 
for ninja ², which does have the ability to implement it. (I'm not sure 
if it actually has been implemented or not, though.)

( ¹ Use of recursive makefiles here doesn't help; probably each makefile 
would have to implement this logic, and each parent would have to know 
how to deal with directories that no longer exist in the build.)

( ¹ http://martine.github.io/ninja/)

-- 
Matthew

-- 

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:
http://www.cmake.org/mailman/listinfo/cmake


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic