浏览代码

Tests/FortranModules: add a test for iface Fortran sources

This tests that a library that doesn't compile Fortran sources but
provides one via `INTERFACE` sources works as intended.
Ben Boeckel 2 年之前
父节点
当前提交
d870a47e23

+ 1 - 0
Tests/FortranModules/CMakeLists.txt

@@ -133,3 +133,4 @@ if( # Intel Fortran VS Integration breaks on custom targets with Fortran sources
   add_subdirectory(Issue25252)
   add_subdirectory(Issue25252)
   add_subdirectory(Issue25252-iface-target)
   add_subdirectory(Issue25252-iface-target)
 endif()
 endif()
+add_subdirectory(Issue25252-iface-sources)

+ 9 - 0
Tests/FortranModules/Issue25252-iface-sources/CMakeLists.txt

@@ -0,0 +1,9 @@
+enable_language(C)
+
+add_library(fortran_source_iface_sources STATIC lib.c)
+target_sources(fortran_source_iface_sources
+  INTERFACE
+    "${CMAKE_CURRENT_SOURCE_DIR}/iface.f90")
+
+add_library(lib25252-iface-sources lib.f90)
+target_link_libraries(lib25252-iface-sources PRIVATE fortran_source_iface_sources)

+ 11 - 0
Tests/FortranModules/Issue25252-iface-sources/iface.f90

@@ -0,0 +1,11 @@
+module m1
+
+implicit none
+
+contains
+
+pure real function pi()
+pi = 4*atan(1.)
+end function
+
+end module m1

+ 4 - 0
Tests/FortranModules/Issue25252-iface-sources/lib.c

@@ -0,0 +1,4 @@
+int f()
+{
+  return 0;
+}

+ 13 - 0
Tests/FortranModules/Issue25252-iface-sources/lib.f90

@@ -0,0 +1,13 @@
+module lib
+
+use m1, only : pi
+
+implicit none
+
+contains
+
+pure real function func()
+func = pi()
+end function
+
+end module