mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-19 21:50:39 -06:00
Clear $ENV{CMAKE_PREFIX_PATH} in several RunCMake.find_library tests
because on Windows, a CMAKE_PREFIX_PATH with two consecutive
semicolons causes a library to be found when it should not be.
None of the updated tests expect CMAKE_PREFIX_PATH from the environment
to influence the test, so clear the variable entirely to guarantee it
will not affect the test.
Fixes: #23111
Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
39 lines
1.3 KiB
CMake
39 lines
1.3 KiB
CMake
list(APPEND CMAKE_FIND_LIBRARY_PREFIXES lib)
|
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES .a)
|
|
set(ENV_PATH "$ENV{PATH}")
|
|
set(ENV_CMAKE_PREFIX_PATH "$ENV{CMAKE_PREFIX_PATH}")
|
|
set(ENV{CMAKE_PREFIX_PATH} "")
|
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
|
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/lib/libcreated.a" "created")
|
|
|
|
set(CMAKE_FIND_DEBUG_MODE 1)
|
|
set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF)
|
|
|
|
set(ENV{PATH} "${CMAKE_CURRENT_BINARY_DIR}/lib")
|
|
find_library(CREATED_LIBRARY NAMES created created_no_exist)
|
|
|
|
set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH ON)
|
|
|
|
set(ENV{PATH} "${CMAKE_CURRENT_BINARY_DIR}/lib")
|
|
find_library(CREATED_LIBRARY NAMES created)
|
|
set(CMAKE_FIND_DEBUG_MODE 0)
|
|
|
|
|
|
foreach(path "/does_not_exist" "/lib" "")
|
|
unset(CREATED_LIBRARY CACHE)
|
|
set(ENV{PATH} "${CMAKE_CURRENT_BINARY_DIR}${path}")
|
|
find_library(CREATED_LIBRARY NAMES created)
|
|
message(STATUS "CREATED_LIBRARY='${CREATED_LIBRARY}'")
|
|
endforeach()
|
|
|
|
set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF)
|
|
foreach(path "/does_not_exist" "/lib" "")
|
|
unset(CREATED_LIBRARY CACHE)
|
|
set(ENV{PATH} "${CMAKE_CURRENT_BINARY_DIR}${path}")
|
|
find_library(CREATED_LIBRARY NAMES created)
|
|
message(STATUS "CREATED_LIBRARY='${CREATED_LIBRARY}'")
|
|
endforeach()
|
|
set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH ON)
|
|
set(ENV{PATH} "${ENV_PATH}")
|
|
set(ENV{CMAKE_PREFIX_PATH} "${ENV_CMAKE_PREFIX_PATH}")
|