cmake_host_system_information: Add undocumented VS_MSBUILD_COMMAND key
When using the Visual Studio generator for VS 10 or above, offer this key to get the location of the MSBuild command before the first `project()` or `enable_language()` command has finished running. This will be needed only by one of our own modules, so leave it undocumented for now.
This commit is contained in:
parent
6999b87133
commit
44a86d0b38
@ -27,6 +27,7 @@
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
# include "cmAlgorithms.h"
|
# include "cmAlgorithms.h"
|
||||||
# include "cmGlobalGenerator.h"
|
# include "cmGlobalGenerator.h"
|
||||||
|
# include "cmGlobalVisualStudio10Generator.h"
|
||||||
# include "cmGlobalVisualStudioVersionedGenerator.h"
|
# include "cmGlobalVisualStudioVersionedGenerator.h"
|
||||||
# include "cmVSSetupHelper.h"
|
# include "cmVSSetupHelper.h"
|
||||||
# define HAVE_VS_SETUP_HELPER
|
# define HAVE_VS_SETUP_HELPER
|
||||||
@ -434,6 +435,12 @@ cm::optional<std::string> GetValue(cmExecutionStatus& status,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (key == "VS_MSBUILD_COMMAND"_s && gg->IsVisualStudioAtLeast10()) {
|
||||||
|
cmGlobalVisualStudio10Generator* vs10gen =
|
||||||
|
static_cast<cmGlobalVisualStudio10Generator*>(gg);
|
||||||
|
return vs10gen->FindMSBuildCommandEarly(&status.GetMakefile());
|
||||||
|
}
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -15,3 +15,9 @@ run_cmake(CentOS6)
|
|||||||
run_cmake(Debian6)
|
run_cmake(Debian6)
|
||||||
|
|
||||||
run_cmake(UserFallbackScript)
|
run_cmake(UserFallbackScript)
|
||||||
|
|
||||||
|
if(RunCMake_GENERATOR MATCHES "^Visual Studio " AND NOT RunCMake_GENERATOR STREQUAL "Visual Studio 9 2008")
|
||||||
|
run_cmake(VsMSBuild)
|
||||||
|
else()
|
||||||
|
run_cmake(VsMSBuildMissing)
|
||||||
|
endif()
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
cmake_host_system_information(RESULT msbuild QUERY VS_MSBUILD_COMMAND)
|
||||||
|
if(NOT EXISTS "${msbuild}")
|
||||||
|
message(FATAL_ERROR "VS_MSBUILD_COMMAND returned path that does not exist:\n ${msbuild}")
|
||||||
|
endif()
|
@ -0,0 +1 @@
|
|||||||
|
1
|
@ -0,0 +1,4 @@
|
|||||||
|
^CMake Error at VsMSBuildMissing.cmake:[0-9]+ \(cmake_host_system_information\):
|
||||||
|
cmake_host_system_information does not recognize <key> VS_MSBUILD_COMMAND
|
||||||
|
Call Stack \(most recent call first\):
|
||||||
|
CMakeLists.txt:[0-9]+ \(include\)$
|
@ -0,0 +1 @@
|
|||||||
|
cmake_host_system_information(RESULT msbuild QUERY VS_MSBUILD_COMMAND)
|
Loading…
Reference in New Issue
Block a user