CMake/Tests/FortranC/Flags.cmake.in
Brad King 1faf60cffc Tests/FortranC: Handle empty CMAKE_OSX_SYSROOT
The compiler inside Xcode requires an explicit `-isysroot`.
Replace it with the `/usr/bin/cc` wrapper.
2024-11-07 09:45:54 -05:00

40 lines
1.4 KiB
CMake

set(src "@CMAKE_CURRENT_SOURCE_DIR@/FortranC")
set(bld "@CMAKE_CURRENT_BINARY_DIR@/FortranC/Flags")
# Create wrapper scripts for the compilers that check for expected
# flags, remove them, and invoke the real compiler.
set(ID "CC")
set(COMMAND "@CMAKE_C_COMPILER@")
if("x${COMMAND}" MATCHES "xctoolchain(/usr/bin/cc)$")
set(COMMAND "${CMAKE_MATCH_1}")
endif()
configure_file("${src}/test_opt.sh.in" "${bld}/cc.sh" @ONLY)
set(ID "FC")
set(COMMAND "@CMAKE_Fortran_COMPILER@")
configure_file("${src}/test_opt.sh.in" "${bld}/fc.sh" @ONLY)
set(ID)
set(COMMAND)
set(make_program "@CMake_TEST_EXPLICIT_MAKE_PROGRAM@")
if(make_program)
set(maybe_make_program "-DCMAKE_MAKE_PROGRAM=${make_program}")
endif()
execute_process(
WORKING_DIRECTORY "${bld}"
COMMAND ${CMAKE_COMMAND} "${src}" -G "@CMAKE_GENERATOR@"
-A "@CMAKE_GENERATOR_PLATFORM@"
-T "@CMAKE_GENERATOR_TOOLSET@"
${maybe_make_program}
"-DFortranC_TEST_FLAGS=1"
"-DCMAKE_C_COMPILER=${bld}/cc.sh"
"-DCMAKE_C_FLAGS:STRING=@CMAKE_C_FLAGS@"
"-DCMAKE_Fortran_COMPILER=${bld}/fc.sh"
"-DCMAKE_Fortran_FLAGS:STRING=@CMAKE_Fortran_FLAGS@"
RESULT_VARIABLE result
)
if(NOT "${result}" STREQUAL "0")
message(FATAL_ERROR "Configuration failed: ${result}")
endif()