diff --git a/Tests/RunCMake/if/FilePermissions.cmake b/Tests/RunCMake/if/FilePermissions.cmake index b446ed0b09..7755be3d59 100644 --- a/Tests/RunCMake/if/FilePermissions.cmake +++ b/Tests/RunCMake/if/FilePermissions.cmake @@ -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")