[CMake] Some Visual Studio/CMake questions

Benjamin Ballet bballet at ivsweb.com
Wed Mar 9 06:27:32 EST 2016


Here we migrated a huge Visual Studio solution (130 targets) to CMake.

* The switch between Debug and Release always took a few seconds, during
with Visual seems freezed.

* We have the same problem : I think the cmake generator has to modify
vcxproj files and when a file like this, Visual studio assume the whole
project to be out of date and hence has to recompile it and its
dependencies.


2016-03-08 17:13 GMT+01:00 Nicholas Braden <nicholas11braden at gmail.com>:

> IIRC, the project() command can be called once per directory. So you
> can have each directory be a separate project via add_subdirectory().
>
> I just tried it out and it seems to create a solution (*.sln) for each
> project().
>
> I can't answer the other questions, sorry.
>
> On Tue, Mar 8, 2016 at 10:03 AM, Jakob van Bethlehem
> <jsvanbethlehem at gmail.com> wrote:
> > Dear users,
> >
> > Since about a year I work on a project that uses CMake in combination
> with
> > Visual Studio. This works kind of oke, but over time some questions have
> > emerged. Hopefully I can get an answer on this list:
> >
> > * Our build infrastructure creates a Release and a Debug configuration by
> > setting the CMAKE_CONFIGURATION_TYPES variable. However, when switching
> > between these configurations, Visual Studio almost kills itself, and
> becomes
> > unresponding for quite some time. Is this a known issue with Visual
> Studio
> > and CMake-generated solutions? Or is there something we can do to improve
> > this?
> >
> > * The generated solution file makes sure that CMake is ran again if any
> > change in one of the CMakeLists.txt file is detected. What we typically
> see
> > however, is that afterwards Visual Studio recompiles loads of files that
> > were not changed, and that were already compiled before. It seems that
> the
> > CMake run someone makes Visual Studio believe that all, or at least way
> too
> > many, files are out of date and need to be recompiled. We make use of a
> > Visual Studio plugin that provides a bunch of smart functions, which
> scans
> > the files in the solution in order to do its job. This plugin has the
> same
> > behaviour, so it seems like CMake is the common denominator causing
> > behaviour one wouldn't expect or want.
> > Same question: known issue, or something we can improve somehow?
> >
> > * Over time I have seen a view times that it was mentioned that it is
> > possible to call the 'project()' function multiple times, and that this
> will
> > produce separate Visual Studio solution files. Interestingly, this is
> > documented absolutely nowhere. As a matter of fact, the documentation of
> the
> > 'project()' function clearly states that you should call that function
> only
> > once, and exactly once.
> >
> > What about it? Is this some undocumented feature we can rely on? Or is
> this
> > a serious bug, that many people incidentally have come to rely upon. If
> this
> > is considered a feature, will this feature remain working for the
> > foreseeable future? If yes is the answer to these questions, what
> *exactly*
> > does this feature contain, so where *can* I get documentation? My main
> > question is whether it is possible to create dependencies between
> projects,
> > i.e. solution files, and will CMake generate calls to msbuild that will
> > automatically take care that dependencies between solution files are
> handled
> > properly?
> >
> > Hopefully someone can help me out a bit here!
> >
> > Sincerely,
> > Jakob van Bethlehem
> >
> > --
> >
> > 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://public.kitware.com/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:
> http://public.kitware.com/mailman/listinfo/cmake
>



-- 
*Benjamin BALLET*
Ingénieur R&D

*ACTIVISU*
19, rue Klock - 92110 Clichy
*> Standard Tél* :  01 44 69 37 37
*>* www.activisu.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20160309/6975f4fb/attachment.html>


More information about the CMake mailing list