Hi,

This makes cmake --build much less predictable across cmake versions and cmake 
projects.
How can I find out if msbuild is chosen without inspecting the cmake project?
Specifying this manually is not really an option... too complicated.

Or like that:
- run CMake
- get the CMAKE_VS_MSBUILD... from cache and at set 
CMAKE_MAKE_PROGRAM from it.

@Paul: You can probably modify the CMAKE_VS_MSBUILD... variable to add /m. But 
to compile in parallel should be s decision of the user, not the project, and 
thus a decision of the caller of cmake --build.

HS


Am 21. Januar 2015 15:05:32 MEZ, schrieb Brad King <[email protected]>:
>On 01/20/2015 03:40 PM, Paul Smith wrote:
>> Where can I go to find out more about how cmake --build chooses
>whether
>> to use msbuild vs. devenv?
>
>The behavior was updated in 3.0 and is now described here:
>
> http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_MAKE_PROGRAM.html
>
>In 2.8.12 and below we always stored CMAKE_MAKE_PROGRAM in
>CMakeCache.txt
>instead of waiting until build time to choose it.  This was problematic
>because it was initialized before configuring the project so we could
>not
>know whether devenv had to be chosen for Intel Fortran support or not,
>so it always chose devenv if available.  However, devenv does not work
>when using an alternative PlatformToolset with CMAKE_GENERATOR_TOOLSET:
>
>http://thread.gmane.org/gmane.comp.programming.tools.cmake.user/46795/focus=46969
>
>Therefore we had to switch to build-time selection of the build tool.
>The change was mentioned in the 3.0 release notes:
>
> http://www.cmake.org/cmake/help/v3.0/release/3.0.0.html#other-changes
> "Selection of the proper msbuild or devenv tool is now performed as
>  late as possible when the solution (.sln) file is available so it
>  can depend on project content."
>
>On 01/21/2015 05:53 AM, Yves Frederix wrote:
>> options like  'cmake --build . --config Release -- /m'. I checked and
>> this indeed works as expected.
>
>Yes.
>
>> The above explains all my initial observations. However, the fix is
>> not very handy. As I understood, one does not know until build time
>> what exact build (devenv or msbuild) will be used by CMake
>
>MSBuild will be used for VS >= 10 unless Fortran code is involved.  You
>can also add -DCMAKE_MAKE_PROGRAM=/path/to/msbuild.exe to explicitly
>specify it.  Once that is in CMakeCache.txt then it will always be used
>by "cmake --build".
>
>-Brad

-- 

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

Reply via email to