mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-30 18:29:37 -06:00
find_program: Revert "Find programs that are executable but not readable"
The fix in commit 86e6349ef7 (find_program: Find programs that are
executable but not readable, 2020-04-04, v3.18.0-rc1~372^2) can break
existing projects that were (likely accidentally) relying on the
old behavior to find files that are readable but not executable.
Revert the fix for now. We can re-introduce it with a policy later.
Instead of reverting the test case, update it to cover the old behavior.
That can serve as a reference for testing the policy when introduced.
Fixes: #20814
Issue: #10468
This commit is contained in:
@@ -85,7 +85,7 @@ struct cmFindProgramHelper
|
||||
this->TestNameExt = cmStrCat(name, ext);
|
||||
this->TestPath =
|
||||
cmSystemTools::CollapseFullPath(this->TestNameExt, path);
|
||||
bool exists = cmSystemTools::FileIsExecutable(this->TestPath);
|
||||
bool exists = cmSystemTools::FileExists(this->TestPath, true);
|
||||
exists ? this->DebugSearches.FoundAt(this->TestPath)
|
||||
: this->DebugSearches.FailedAt(this->TestPath);
|
||||
if (exists) {
|
||||
|
||||
@@ -1 +1 @@
|
||||
-- ExeNoRead_EXECUTABLE='.*/Tests/RunCMake/find_program/ExeNoRead-build/ExeNoRead'
|
||||
-- ExeNoRead_EXECUTABLE='ExeNoRead_EXECUTABLE-NOTFOUND'
|
||||
|
||||
@@ -9,8 +9,14 @@ run_cmake(Required)
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "^(Windows|CYGWIN)$")
|
||||
run_cmake(WindowsCom)
|
||||
run_cmake(WindowsExe)
|
||||
endif()
|
||||
else()
|
||||
# test non readable file only if not root
|
||||
execute_process(
|
||||
COMMAND id -u $ENV{USER}
|
||||
OUTPUT_VARIABLE uid
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
if(UNIX)
|
||||
run_cmake(ExeNoRead)
|
||||
if(NOT "${uid}" STREQUAL "0")
|
||||
run_cmake(ExeNoRead)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user