diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index e07bb69db..4eb2f9067 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1495,6 +1495,29 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ unset(_last_test) list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSExcludeFromDefaultBuild") endif() + + if(CMAKE_TEST_GENERATOR MATCHES "Visual Studio ([0-5]|[6-9][0-9])") + if(CMAKE_TEST_MAKEPROGRAM MATCHES "[mM][sS][bB][uU][iI][lL][dD]\\.[eE][xX][eE]") + set(MSBUILD_EXECUTABLE "${CMAKE_TEST_MAKEPROGRAM}") + else() + set(_FDIR "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VC7;FrameworkDir32]") + set(_FVER "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VC7;FrameworkVer32]") + find_program(MSBUILD_EXECUTABLE NAMES msbuild HINTS ${_FDIR}/${_FVER}) + endif() + if(MSBUILD_EXECUTABLE) + add_test(NAME VSProjectInSubdir COMMAND ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/VSProjectInSubdir" + "${CMake_BINARY_DIR}/Tests/VSProjectInSubdir" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-generator-toolset "${CMAKE_TEST_GENERATOR_TOOLSET}" + --build-makeprogram "${MSBUILD_EXECUTABLE}" + --build-project VSProjectInSubdir + --build-target test) + list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSProjectInSubdir") + endif() + endif() endif() if (APPLE) diff --git a/Tests/VSProjectInSubdir/CMakeLists.txt b/Tests/VSProjectInSubdir/CMakeLists.txt new file mode 100644 index 000000000..c164a9798 --- /dev/null +++ b/Tests/VSProjectInSubdir/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 2.8.10) +project(VSProjectInSubdir NONE) +add_subdirectory(subdir) diff --git a/Tests/VSProjectInSubdir/subdir/CMakeLists.txt b/Tests/VSProjectInSubdir/subdir/CMakeLists.txt new file mode 100644 index 000000000..6c1b6a11a --- /dev/null +++ b/Tests/VSProjectInSubdir/subdir/CMakeLists.txt @@ -0,0 +1 @@ +add_custom_target(test COMMAND ${CMAKE_COMMAND} -E echo test VERBATIM)