[CMake] Should changing, adding or removing add_definitions call trigger a recompile of affected files

Philip Lowman philip at yhbt.com
Wed Dec 10 00:25:53 EST 2008


On Tue, Dec 9, 2008 at 1:08 PM, Philip Lowman <philip at yhbt.com> wrote:

> This is a known problem.  Visual Studio has no way of knowing that the
> compiler flags changed in a project file CMake is writing to.
>
> I would love to see a patch for this for CMake 2.8.


One thought I had here was to have the "vcbuild" command clean any affected
projects.  This would have the advantage of isolating CMake from
implementing any Visual Studio specific mods (i.e. delete these object files
to force a recompilation, etc.).  This would have some downsides though.

1. The easiest implementation would just be to perform the clean if a
project file changes.  This would result in more cleaning then necessary as
changing source files (for example) shouldn't cause a rebuild.  Certain
project modifications like adding a source file to a target shouldn't cause
a clean of that target.

2. Perhaps the biggest gotcha of all, "cleaning" a target would wipe out any
binaries/libraries already generated.  This is far different from the
behavior of CMake's Makefile generator which simply causes targets to be
rebuilt on the next "make".

Anyone have any ideas for fixing this?  I've been bit by this one before
(forgetting to rebuild everything when I change a preprocessor definition at
the global scope).


-- 
Philip Lowman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20081210/fe329900/attachment.htm>


More information about the CMake mailing list