From a436fbdbc2e7f46eca1f0b2315c27e5dd095d06e Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 23 Jan 2026 10:22:48 -0500 Subject: [PATCH] Tests/RunCMake/FindRuby: Use environment as of test time, not configure time Revise commit a9ded64779 (FindRuby: Convert tests to RunCMake, 2026-01-15). --- Tests/RunCMake/CMakeLists.txt | 3 +-- Tests/RunCMake/FindRuby/RunCMakeTest.cmake | 10 ++++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 99968c421c..4f78f8bcde 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -503,8 +503,7 @@ if(CMake_TEST_FindRuby) add_RunCMake_test(FindRuby -DCMake_TEST_FindRuby_RBENV=${CMake_TEST_FindRuby_RBENV} -DCMake_TEST_FindRuby_RVM=${CMake_TEST_FindRuby_RVM} - -DRBENV_ROOT=$ENV{RBENV_ROOT} - -DMY_RUBY_HOME=$ENV{MY_RUBY_HOME}) + ) endif() add_RunCMake_test(FindOpenGL) add_RunCMake_test(InitialFlags) diff --git a/Tests/RunCMake/FindRuby/RunCMakeTest.cmake b/Tests/RunCMake/FindRuby/RunCMakeTest.cmake index 81c3d60675..a09b08db87 100644 --- a/Tests/RunCMake/FindRuby/RunCMakeTest.cmake +++ b/Tests/RunCMake/FindRuby/RunCMakeTest.cmake @@ -7,7 +7,10 @@ run_cmake(System/FailExact) # RBENV specific tests if(CMake_TEST_FindRuby_RBENV) - set(ENV{RBENV_ROOT} "${RBENV_ROOT}") + set(RBENV_ROOT "$ENV{RBENV_ROOT}") + if(NOT IS_DIRECTORY "${RBENV_ROOT}") + message(FATAL_ERROR "RBENV_ROOT should be set to a valid rbenv ruby location") + endif() # Test environment has RBENV_ROOT setup find_program(rbenv @@ -82,12 +85,11 @@ endif() if(CMake_TEST_FindRuby_RVM) # Properly using rvm would require sourcing a shell script, eg `source "$HOME/.rvm/scripts/rvm"` # Instead, we just rely on the env variable MY_RUBY_HOME - if(NOT MY_RUBY_HOME) + set(MY_RUBY_HOME "$ENV{MY_RUBY_HOME}") + if(NOT IS_DIRECTORY "${MY_RUBY_HOME}") message(FATAL_ERROR "MY_RUBY_HOME should be set to a valid RVM ruby location, or you should call `rvm use x.y.z` before") endif() - set(ENV{MY_RUBY_HOME} "${MY_RUBY_HOME}") - execute_process(COMMAND "${MY_RUBY_HOME}/bin/ruby" -e "puts RUBY_VERSION" RESULT_VARIABLE result OUTPUT_VARIABLE RVM_RUBY_VERSION