From d270dcb123c268362eff973d28f2e3054eafba4d Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Wed, 22 Apr 2026 15:58:04 +0200 Subject: [PATCH 1/2] Using response files on Mac is incompatible (and unnecessary) with Ninja --- CMakeLists.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e968acc94f..a12326dbce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -310,8 +310,10 @@ endif() # Fix "Argument list too long" for macOS - mostly seen with older OS versions on POWERPC or Intel CPUs if(APPLE) - # Use response files - set(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) + # Use response files to get around the ARG_MAX limit, unless using the Ninja generator + if("${CMAKE_GENERATOR}" MATCHES ".*Makefiles") + set(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) + endif() # Always build static library first if(BUILD_STATIC_LIBS) set(STATIC_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${OpenBLAS_LIBNAME}.a") @@ -332,8 +334,10 @@ if(APPLE) set(OMP_LIB "") endif() if(NOT NOFORTRAN) - set(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 1) - set(CMAKE_Fortran_CREATE_STATIC_LIBRARY ${CREATE_STATIC_LIBRARY_COMMAND}) + if("${CMAKE_GENERATOR}" MATCHES ".*Makefiles") + set(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 1) + endif() + set(CMAKE_Fortran_CREATE_STATIC_LIBRARY ${CREATE_STATIC_LIBRARY_COMMAND}) if(BUILD_SHARED_LIBS) set(CMAKE_Fortran_CREATE_SHARED_LIBRARY "sh -c 'echo \"\" | ${CMAKE_Fortran_COMPILER} -o dummy.o -c -x f95-cpp-input - '" From c1bb49dc51cfae066f5ddc7d2b6f0882f4fa4d31 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Wed, 22 Apr 2026 17:48:59 +0200 Subject: [PATCH 2/2] Omit the entire APPLE-specific block if using Ninja --- CMakeLists.txt | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a12326dbce..797b4b7cbe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -309,11 +309,9 @@ if (USE_OPENMP) endif() # Fix "Argument list too long" for macOS - mostly seen with older OS versions on POWERPC or Intel CPUs -if(APPLE) +if(APPLE AND "${CMAKE_GENERATOR}" MATCHES ".*Makefiles") # Use response files to get around the ARG_MAX limit, unless using the Ninja generator - if("${CMAKE_GENERATOR}" MATCHES ".*Makefiles") - set(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) - endif() + set(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) # Always build static library first if(BUILD_STATIC_LIBS) set(STATIC_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${OpenBLAS_LIBNAME}.a") @@ -334,9 +332,7 @@ if(APPLE) set(OMP_LIB "") endif() if(NOT NOFORTRAN) - if("${CMAKE_GENERATOR}" MATCHES ".*Makefiles") - set(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 1) - endif() + set(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 1) set(CMAKE_Fortran_CREATE_STATIC_LIBRARY ${CREATE_STATIC_LIBRARY_COMMAND}) if(BUILD_SHARED_LIBS) set(CMAKE_Fortran_CREATE_SHARED_LIBRARY