Przeglądaj źródła

VS: Always enable CMAKE_MSVCIDE_RUN_PATH

Do not require a language to be enabled.

Fixes: #22343
Asit Dhal 4 lat temu
rodzic
commit
542bd343e3

+ 1 - 1
Source/cmLocalVisualStudioGenerator.cxx

@@ -171,7 +171,7 @@ std::string cmLocalVisualStudioGenerator::ConstructScript(
 
   // for visual studio IDE add extra stuff to the PATH
   // if CMAKE_MSVCIDE_RUN_PATH is set.
-  if (this->Makefile->GetDefinition("MSVC_IDE")) {
+  if (this->GetGlobalGenerator()->IsVisualStudio()) {
     cmProp extraPath = this->Makefile->GetDefinition("CMAKE_MSVCIDE_RUN_PATH");
     if (extraPath) {
       script += newline;

+ 3 - 0
Tests/RunCMake/CMAKE_MSVCIDE_RUN_PATH/CMakeLists.txt

@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 3.21)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)

+ 1 - 0
Tests/RunCMake/CMAKE_MSVCIDE_RUN_PATH/CheckEnvironmentVar-build-stdout.txt

@@ -0,0 +1 @@
+This message is printed by echo_message.bat

+ 2 - 0
Tests/RunCMake/CMAKE_MSVCIDE_RUN_PATH/CheckEnvironmentVar.cmake

@@ -0,0 +1,2 @@
+set(CMAKE_MSVCIDE_RUN_PATH "${CMAKE_SOURCE_DIR}")
+add_custom_target(main COMMAND echo_message)

+ 8 - 0
Tests/RunCMake/CMAKE_MSVCIDE_RUN_PATH/RunCMakeTest.cmake

@@ -0,0 +1,8 @@
+include(RunCMake)
+
+set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CheckEnvironmentVar-build)
+run_cmake(CheckEnvironmentVar)
+set(RunCMake_TEST_NO_CLEAN 1)
+run_cmake_command(CheckEnvironmentVar-build ${CMAKE_COMMAND} --build . --config Debug --target main)
+unset(RunCMake_TEST_BINARY_DIR)
+unset(RunCMake_TEST_NO_CLEAN)

+ 1 - 0
Tests/RunCMake/CMAKE_MSVCIDE_RUN_PATH/echo_message.bat

@@ -0,0 +1 @@
+echo This message is printed by echo_message.bat

+ 1 - 0
Tests/RunCMake/CMakeLists.txt

@@ -544,6 +544,7 @@ if(CMake_TEST_FindGTK2)
 endif()
 
 if("${CMAKE_GENERATOR}" MATCHES "Visual Studio")
+  add_RunCMake_test(CMAKE_MSVCIDE_RUN_PATH)
   add_RunCMake_test(include_external_msproject -DVS_PLATFORM_NAME=${CMAKE_VS_PLATFORM_NAME})
   if("${CMAKE_GENERATOR}" MATCHES "Visual Studio (9|10)" AND NOT CMAKE_VS_DEVENV_COMMAND)
     set(NO_USE_FOLDERS 1)