Tests/RunCMake/if: Suppress FilePermissions failure on CYGWIN

After a recent update, CYGWIN no longer seems to recognize execute
permission without read permission.
This commit is contained in:
Brad King
2025-06-13 10:36:35 -04:00
parent a098f6b008
commit eafb776fdb

View File

@@ -1,3 +1,8 @@
if(CYGWIN)
set(maybe_exe_readable OWNER_READ)
else()
set(maybe_exe_readable "")
endif()
file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/readable.txt"
"${CMAKE_CURRENT_BINARY_DIR}/writable.txt"
@@ -10,7 +15,7 @@ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/writable.txt" "foo")
file(CHMOD "${CMAKE_CURRENT_BINARY_DIR}/writable.txt" PERMISSIONS OWNER_WRITE GROUP_WRITE)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/executable.txt" "foo")
file(CHMOD "${CMAKE_CURRENT_BINARY_DIR}/executable.txt" PERMISSIONS OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
file(CHMOD "${CMAKE_CURRENT_BINARY_DIR}/executable.txt" PERMISSIONS OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE ${maybe_exe_readable})
if(NOT WIN32)
file(REMOVE_RECURSE
@@ -67,7 +72,7 @@ else()
endif()
if(NOT IS_EXECUTABLE "${CMAKE_CURRENT_BINARY_DIR}/executable.txt"
OR IS_READABLE "${CMAKE_CURRENT_BINARY_DIR}/executable.txt"
OR (IS_READABLE "${CMAKE_CURRENT_BINARY_DIR}/executable.txt" AND NOT maybe_exe_readable)
OR IS_WRITABLE "${CMAKE_CURRENT_BINARY_DIR}/executable.txt")
cleanup()
message(FATAL_ERROR "checks on \"${CMAKE_CURRENT_BINARY_DIR}/executable.txt\" failed")
@@ -149,7 +154,7 @@ if(UNIX)
endif()
if(NOT IS_EXECUTABLE "${CMAKE_CURRENT_BINARY_DIR}/link-to-executable.txt"
OR IS_READABLE "${CMAKE_CURRENT_BINARY_DIR}/link-to-executable.txt"
OR (IS_READABLE "${CMAKE_CURRENT_BINARY_DIR}/link-to-executable.txt" AND NOT maybe_exe_readable)
OR IS_WRITABLE "${CMAKE_CURRENT_BINARY_DIR}/link-to-executable.txt")
cleanup()
message(FATAL_ERROR "checks on \"${CMAKE_CURRENT_BINARY_DIR}/link-to-executable.txt\" failed")