blob: 6b61980f3743ce8464000ce43fc85c25bb368f3a [file] [log] [blame]
# testNoSuchFile should only be found if the file absolute path is
# incorrectly prepended with the search path.
function(strip_windows_path_prefix p outvar)
if(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
string(REGEX REPLACE "^.:" "" p "${p}")
endif()
set(${outvar} "${p}" PARENT_SCOPE)
endfunction()
strip_windows_path_prefix("${CMAKE_CURRENT_SOURCE_DIR}" srcdir)
configure_file(testCWD "tmp${srcdir}/testNoSuchFile" COPYONLY)
find_program(PROG_ABS
NAMES "${srcdir}/testNoSuchFile"
PATHS "${CMAKE_CURRENT_BINARY_DIR}/tmp"
NO_DEFAULT_PATH
)
message(STATUS "PROG_ABS='${PROG_ABS}'")
find_program(PROG_ABS_NPD
NAMES "${srcdir}/testNoSuchFile"
PATHS "${CMAKE_CURRENT_BINARY_DIR}/tmp"
NAMES_PER_DIR
NO_DEFAULT_PATH
)
message(STATUS "PROG_ABS_NPD='${PROG_ABS_NPD}'")
# ./testCWD should not be found without '.' being in the path list.
configure_file(testCWD testCWD COPYONLY)
find_program(PROG_CWD
NAMES testCWD
NO_DEFAULT_PATH
)
message(STATUS "PROG_CWD='${PROG_CWD}'")
set(CMAKE_PREFIX_PATH ".")
# On some platforms / dashboards the current working
# directory can be in PATH or other search locations
# so disable all searching to make sure this fails
set(CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH OFF)
set(CMAKE_FIND_USE_CMAKE_PATH OFF)
set(CMAKE_FIND_USE_CMAKE_SYSTEM_PATH OFF)
set(CMAKE_FIND_USE_PACKAGE_ROOT_PATH OFF)
set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF)
find_program(PROG_CWD
NAMES testCWD
)
message(STATUS "PROG_CWD='${PROG_CWD}'")
set(CMAKE_PREFIX_PATH ".")
set(CMAKE_FIND_USE_CMAKE_PATH ON)
find_program(PROG_CWD
NAMES testCWD
)
message(STATUS "PROG_CWD='${PROG_CWD}'")
find_program(PROG_CWD_NPD
NAMES testCWD
NAMES_PER_DIR
NO_DEFAULT_PATH
)
message(STATUS "PROG_CWD_NPD='${PROG_CWD_NPD}'")
# Confirm that adding '.' to path does locate ./testCWD.
find_program(PROG_CWD_DOT
NAMES testCWD
PATHS .
NO_DEFAULT_PATH
)
message(STATUS "PROG_CWD_DOT='${PROG_CWD_DOT}'")
find_program(PROG_CWD_DOT_NPD
NAMES testCWD
PATHS .
NAMES_PER_DIR
NO_DEFAULT_PATH
)
message(STATUS "PROG_CWD_DOT_NPD='${PROG_CWD_DOT_NPD}'")