[CMake] complete rebuild

David Cole david.cole at kitware.com
Wed Dec 29 07:03:45 EST 2010


For Visual Studio generators, CMake does *NO* depedency analysis. It
generates solution and project files such that Visual Studio can do
all the dependency analysis and decide what to re-build when files
change.

My advice to you would be:
- use only CMake 2.8.3 or newer (a nightly development build of CMake)
with Visual Studio 10 -- CMake 2.8.2 and earlier had significant bugs
related to VS10 that have since been resolved...
- using a newer CMake, isolate the problem to a minimally reproducible
case and then report a bug in the bug tracker about it including the
steps to reproduce the problem

Reply here again and point us to the bug.


HTH,
David


On Wed, Dec 29, 2010 at 4:07 AM, Anders Backman <andersb at cs.umu.se> wrote:
> Hi all.
> I have a problem where I have a project of C++ headers and source files
> which are built into a .lib .dll.
> Now this works just fine with CMake 2.8.x and VisualStudio 2008.
> I press F7 everything builds. I press F7 again, it is all built, nothing to
> be done.
> But now when I move over to vs2010, I get into problems where no matter how
> I build the project, it constantly want to rebuild everything.
> I have tried both 'msbuild project.sln' from the command line, as well as
> build (F7) inside of VisualStudio  as well as using Incredibuild. The result
> is the same. If I press F7, it builds everything as it was not built before.
> I did some googling on the issue, and some suggest that there is a file in
> the project (header) which does not exist on disk, causing the problem.
> We do file(glob) on all files, so a file which is not found, should not be
> part of the project.
> Right now, it seems to be hard to reduce the problem. When I start from the
> full project, 107 files, it want to rebuild everything.
> When I reduce the problem, I can get down to one single file, still it wants
> to build it. Its a c file, and there is nothing special about it. I even
> managed to reduce that down to one function, no includes. still the same
> problem.
> If I copy the relevant files (a few cmakelists.txt and the directory
> structure, including the two files (.h .c) it builds as it should again.
> I tried to run cmake and generate vs2008 files, that works. Open them in
> vs2010, build, then that works (with the two files only).
>
> So anyway, before I put you all to sleep, as far as I know, there are two
> dependency parsers involved here:
> - CMake runs through source files and generates dependencies, right?
> - THen visual studio does the same (generating the External dependencies
> folder in the project). Now there is SOMETHING wrong in either one, or both
> or none related to VS2010.
> Does someone have any hints on how to debug this problem? I have spent
> substantial time, and I cant seem to get anywhere.
> I cant reduce it to something I can post on the list, as it just magically
> works when I want to rip it out.
> At one point, I had 3 cmakelists, each with about 3 lines. 2 source files
> (.h .c), I did clean on CMakeCache.txt between each cmake . run, loaded the
> project build and got the error. Fairly simple scene. But as soon as I try
> to move that to another dir, it fails.
> Thankful for any advice on the matter.
>
> --
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
>


More information about the CMake mailing list