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

Hugo Heden hugoheden at gmail.com
Wed Dec 10 04:47:58 EST 2008


2008/12/10 Philip Lowman <philip at yhbt.com>:
> 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).
>

By dropping support for Visual Studio-style generators? Come on, admit
it, wouldn't that be so relieving? :-)


More information about the CMake mailing list