[CMake] Regenerating Visual Studio projects

Jesper Eskilson jesper at eskilson.se
Thu Sep 18 11:01:14 EDT 2008


Hi all,

When CMake (2.6) discovers that a CMakeLists.txt file has changed, and 
that one or more Visual Studio projects/solutions need to be reloaded, 
it attempts to interrupt the build, force Visual Studio to reload the 
projects, and then restart the build. This is really good compared to 
CMake 2.4, where the projects weren't reloaded until the build had 
completed and you possibly had to build again from scratch.

I have a problem, though: CMake does not properly detect if it is being 
run from inside Visual Studio, and it doesn't check that it interrupting 
the correct Visual Studio instance.

Say that you have a studio instance opened on a solution. If I run CMake 
to regenerate a completely different solution, CMake will try to 
interrupt the (unrelated) studio instance. This wouldn't be too bad 
unless Visual Studio kept throwing up interactive dialogs asking "do you 
really want to interrupt the build" and "do you want to reload 78 
project files". I have users who needs to run my build scripts (which 
invoke cmake) without the script interfering with any other studio 
instances they may have running.

Either CMake should detect that it is being run under Visual Studio and 
attempt to stop/interrupt the studio instance which it was started by, 
or there should be a flag to disable any form of communication with 
Visual Studio as in CMake 2.4).

Which brings me to my second issue: when CMake is rerun from inside 
Visual Studio, I have to click on at least 3 interactive dialogs in 
order for the project to be reloaded. Is there anything CMake can do 
about that? I don't want to click on any dialogs at all, just have the 
project files recreated and reloaded.

--
/Jesper



More information about the CMake mailing list