From 6dfd8e19b5298ff6e0d7447c6ea40396b6c0fcac Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 12 Mar 2025 15:26:42 -0400 Subject: GetPrerequisites: Recognize CrayPE system libraries --- Modules/GetPrerequisites.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake index 4f9d3e7..bc014eb 100644 --- a/Modules/GetPrerequisites.cmake +++ b/Modules/GetPrerequisites.cmake @@ -512,7 +512,8 @@ function(gp_resolved_file_type original_file file exepath dirs type_var) string(TOLOWER "${resolved_file}" lower) if(UNIX) - if(resolved_file MATCHES "^/*(/lib/|/lib32/|/libx32/|/lib64/|/usr/lib/|/usr/lib32/|/usr/libx32/|/usr/lib64/|/usr/X11R6/|/usr/bin/)") + if(resolved_file MATCHES "^/*(/lib/|/lib32/|/libx32/|/lib64/|/usr/lib/|/usr/lib32/|/usr/libx32/|/usr/lib64/|/usr/X11R6/|/usr/bin/)" OR + resolved_file MATCHES "/cce/.*/lib/lib[^/]+\.so\\.[0-9][^/]*$") set(is_system 1) endif() endif() -- cgit v0.12 From 2c28321adb59fd75dde196ea165e02471d873117 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 12 Mar 2025 15:15:46 -0400 Subject: Tests: Combine conditions for BundleUtilities test --- Tests/CMakeLists.txt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index c8c1810..c6ea77d 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -610,11 +610,11 @@ if(BUILD_TESTING) endif() # run test for BundleUtilities on supported platforms/compilers - if(MSVC OR - MINGW OR - CMAKE_SYSTEM_NAME MATCHES "Linux" OR - CMAKE_SYSTEM_NAME MATCHES "Darwin") - if(NOT "${CMAKE_GENERATOR}" STREQUAL "Watcom WMake") + if((MSVC OR + MINGW OR + CMAKE_SYSTEM_NAME MATCHES "Linux" OR + CMAKE_SYSTEM_NAME MATCHES "Darwin") + AND NOT CMAKE_GENERATOR STREQUAL "Watcom WMake") add_test(BundleUtilities ${CMAKE_CTEST_COMMAND} --build-and-test @@ -642,7 +642,6 @@ if(BUILD_TESTING) endif() endif() - endif() set(CMAKE_BUILD_TEST_SOURCE_DIR "${CMake_SOURCE_DIR}/Tests/COnly") set(CMAKE_BUILD_TEST_BINARY_DIR "${CMake_BINARY_DIR}/Tests/CMakeBuildCOnly") -- cgit v0.12 From fa4ac78f4a56bd717811b4f6a88ed9526544bf79 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 12 Mar 2025 16:28:52 -0400 Subject: Tests/FortranModules: Simplify check for submodules support --- Tests/CMakeLists.txt | 4 +++- Tests/FortranModules/CMakeLists.txt | 4 +--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index c6ea77d..b03c827 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -3260,6 +3260,9 @@ if(BUILD_TESTING) # FIXME(lfortran): The compiler fails on the test's modules. AND NOT CMAKE_Fortran_COMPILER_ID STREQUAL "LFortran" ) + if(DEFINED CMake_TEST_Fortran_SUBMODULES) + list(PREPEND CMake_TEST_FortranModules_BUILD_OPTIONS -DCMake_TEST_Fortran_SUBMODULES:BOOL=${CMake_TEST_Fortran_SUBMODULES}) + endif() add_test(FortranModules ${CMAKE_CTEST_COMMAND} --build-and-test "${CMake_SOURCE_DIR}/Tests/FortranModules" @@ -3268,7 +3271,6 @@ if(BUILD_TESTING) --build-project FortranModules --build-options -DCMake_TEST_NESTED_MAKE_PROGRAM:FILEPATH=${CMake_TEST_EXPLICIT_MAKE_PROGRAM} - -DCMake_TEST_Fortran_SUBMODULES:BOOL=${CMake_TEST_Fortran_SUBMODULES} ${CMake_TEST_FortranModules_BUILD_OPTIONS} ) list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/FortranModules") diff --git a/Tests/FortranModules/CMakeLists.txt b/Tests/FortranModules/CMakeLists.txt index 555c994..e424230 100644 --- a/Tests/FortranModules/CMakeLists.txt +++ b/Tests/FortranModules/CMakeLists.txt @@ -10,9 +10,7 @@ if(NOT DEFINED CMake_TEST_NESTED_MAKE_PROGRAM AND NOT CMAKE_GENERATOR MATCHES "V set(CMake_TEST_NESTED_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM}") endif() -if("x${CMake_TEST_Fortran_SUBMODULES}" STREQUAL "x" - AND NOT CMAKE_VERSION VERSION_LESS 3.6.20160923 # for CheckFortranSourceCompiles SRC_EXT - ) +if(NOT DEFINED CMake_TEST_Fortran_SUBMODULES) include(CheckFortranSourceCompiles) CHECK_Fortran_SOURCE_COMPILES([[ module parent -- cgit v0.12 From 2a37015319aa0ee5d843ebfaac543763b95371e9 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 12 Mar 2025 16:34:32 -0400 Subject: Tests/FortranModules: Skip submodules with Cray Fortran compiler Issue: #18925 --- Tests/FortranModules/CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Tests/FortranModules/CMakeLists.txt b/Tests/FortranModules/CMakeLists.txt index e424230..ecb456b 100644 --- a/Tests/FortranModules/CMakeLists.txt +++ b/Tests/FortranModules/CMakeLists.txt @@ -10,6 +10,13 @@ if(NOT DEFINED CMake_TEST_NESTED_MAKE_PROGRAM AND NOT CMAKE_GENERATOR MATCHES "V set(CMake_TEST_NESTED_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM}") endif() +if(NOT DEFINED CMake_TEST_Fortran_SUBMODULES AND ( + # FIXME(#18925): We do not support Cray's module file names. + CMAKE_Fortran_COMPILER_ID STREQUAL "Cray" + )) + set(CMake_TEST_Fortran_SUBMODULES 0) +endif() + if(NOT DEFINED CMake_TEST_Fortran_SUBMODULES) include(CheckFortranSourceCompiles) CHECK_Fortran_SOURCE_COMPILES([[ -- cgit v0.12 From a5f5a874828037600e6064b025dcbfa6e374978c Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 12 Mar 2025 16:58:17 -0400 Subject: Tests/RunCMake/if: Optionally skip checking write-only directory permissions Some file systems do not support this. --- Tests/RunCMake/CMakeLists.txt | 3 +++ Tests/RunCMake/if/FilePermissions.cmake | 24 ++++++++++++++---------- Tests/RunCMake/if/RunCMakeTest.cmake | 2 +- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 593f481..baa6c53 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -708,6 +708,9 @@ add_RunCMake_test(function) add_RunCMake_test(block) add_RunCMake_test(get_filename_component) add_RunCMake_test(get_property) +if(DEFINED CMake_TEST_NO_WRITE_ONLY_DIR) + list(APPEND if_ARGS -DCMake_TEST_NO_WRITE_ONLY_DIR=${CMake_TEST_NO_WRITE_ONLY_DIR}) +endif() add_RunCMake_test(if -DMSYS=${MSYS}) add_RunCMake_test(include) add_RunCMake_test(include_directories) diff --git a/Tests/RunCMake/if/FilePermissions.cmake b/Tests/RunCMake/if/FilePermissions.cmake index 9edbddb..72dd11b 100644 --- a/Tests/RunCMake/if/FilePermissions.cmake +++ b/Tests/RunCMake/if/FilePermissions.cmake @@ -81,11 +81,13 @@ else() message(FATAL_ERROR "checks on \"${CMAKE_CURRENT_BINARY_DIR}/readable-dir\" failed") endif() - if(NOT IS_WRITABLE "${CMAKE_CURRENT_BINARY_DIR}/writable-dir" - OR IS_READABLE "${CMAKE_CURRENT_BINARY_DIR}/writable-dir" - OR IS_EXECUTABLE "${CMAKE_CURRENT_BINARY_DIR}/writable-dir") - cleanup() - message(FATAL_ERROR "checks on \"${CMAKE_CURRENT_BINARY_DIR}/writable-dir\" failed") + if(NOT NO_WRITABLE_DIR) + if(NOT IS_WRITABLE "${CMAKE_CURRENT_BINARY_DIR}/writable-dir" + OR IS_READABLE "${CMAKE_CURRENT_BINARY_DIR}/writable-dir" + OR IS_EXECUTABLE "${CMAKE_CURRENT_BINARY_DIR}/writable-dir") + cleanup() + message(FATAL_ERROR "checks on \"${CMAKE_CURRENT_BINARY_DIR}/writable-dir\" failed") + endif() endif() if(NOT IS_EXECUTABLE "${CMAKE_CURRENT_BINARY_DIR}/executable-dir" @@ -161,11 +163,13 @@ if(UNIX) message(FATAL_ERROR "checks on \"${CMAKE_CURRENT_BINARY_DIR}/link-to-readable-dir\" failed") endif() - if(NOT IS_WRITABLE "${CMAKE_CURRENT_BINARY_DIR}/link-to-writable-dir" - OR IS_READABLE "${CMAKE_CURRENT_BINARY_DIR}/link-to-writable-dir" - OR IS_EXECUTABLE "${CMAKE_CURRENT_BINARY_DIR}/link-to-writable-dir") - cleanup() - message(FATAL_ERROR "checks on \"${CMAKE_CURRENT_BINARY_DIR}/link-to-writable-dir\" failed") + if(NOT NO_WRITABLE_DIR) + if(NOT IS_WRITABLE "${CMAKE_CURRENT_BINARY_DIR}/link-to-writable-dir" + OR IS_READABLE "${CMAKE_CURRENT_BINARY_DIR}/link-to-writable-dir" + OR IS_EXECUTABLE "${CMAKE_CURRENT_BINARY_DIR}/link-to-writable-dir") + cleanup() + message(FATAL_ERROR "checks on \"${CMAKE_CURRENT_BINARY_DIR}/link-to-writable-dir\" failed") + endif() endif() if(NOT IS_EXECUTABLE "${CMAKE_CURRENT_BINARY_DIR}/link-to-executable-dir" diff --git a/Tests/RunCMake/if/RunCMakeTest.cmake b/Tests/RunCMake/if/RunCMakeTest.cmake index 43dfd3c..e3b9b2d 100644 --- a/Tests/RunCMake/if/RunCMakeTest.cmake +++ b/Tests/RunCMake/if/RunCMakeTest.cmake @@ -7,7 +7,7 @@ if(NOT MSYS) # if real user is root, tests are irrelevant get_unix_uid(uid) if(NOT uid STREQUAL "0") - run_cmake(FilePermissions) + run_cmake_with_options(FilePermissions -DNO_WRITABLE_DIR=${CMake_TEST_NO_WRITE_ONLY_DIR}) endif() endif() run_cmake(IsDirectory) -- cgit v0.12