
This was added in commit 98d0f918ba
(LFortran: Add support for this
compiler, 2024-01-25, v3.31.0-rc1~303^2~2) because it is needed for
cases covered by CMake's Fortran tests. However, it does not work
with Fortran modules and breaks lfortran's own `examples/project1`.
Move the flag to the test cases that need it, just as the original
commit did with `--implicit-interface`.
Fixes: #26597
Co-authored-by: Brad King <brad.king@kitware.com>
31 lines
1003 B
CMake
31 lines
1003 B
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
|
|
|
cmake_minimum_required(VERSION ${CMAKE_VERSION})
|
|
project(VerifyFortranC C Fortran)
|
|
|
|
if(CMAKE_Fortran_COMPILER_ID STREQUAL "LFortran")
|
|
add_compile_options("$<$<COMPILE_LANGUAGE:Fortran>:--generate-object-code>")
|
|
endif()
|
|
|
|
option(VERIFY_CXX "Whether to verify C++ and Fortran" OFF)
|
|
if(VERIFY_CXX)
|
|
enable_language(CXX)
|
|
set(VerifyCXX VerifyCXX.cxx)
|
|
add_definitions(-DVERIFY_CXX)
|
|
endif()
|
|
|
|
include(FortranCInterface)
|
|
|
|
FortranCInterface_HEADER(VerifyFortran.h SYMBOLS VerifyFortran)
|
|
include_directories(${VerifyFortranC_BINARY_DIR})
|
|
|
|
add_library(VerifyFortran STATIC VerifyFortran.f)
|
|
add_executable(VerifyFortranC main.c VerifyC.c ${VerifyCXX})
|
|
target_link_libraries(VerifyFortranC VerifyFortran)
|
|
|
|
if(NOT VERIFY_CXX)
|
|
# The entry point (main) is defined in C; link with the C compiler.
|
|
set_property(TARGET VerifyFortranC PROPERTY LINKER_LANGUAGE C)
|
|
endif()
|