From 9d2769ecbd497dd51405ae2586ae62b828712a07 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Fri, 17 Nov 2023 10:53:34 -0500 Subject: Tests/FortranModules: add test for TARGET_OBJECTS-as-linked-items module usage Test module usage across a `$`-as-linked-items use case. See: #25425 --- Tests/FortranModules/CMakeLists.txt | 2 ++ .../ModulesViaSubdirTargetObjectsLink/CMakeLists.txt | 7 +++++++ .../ModulesViaSubdirTargetObjectsLink/dummy.f90 | 3 +++ .../ModulesViaSubdirTargetObjectsLink/subdir/CMakeLists.txt | 1 + .../ModulesViaSubdirTargetObjectsLink/subdir/obj.f90 | 11 +++++++++++ .../ModulesViaSubdirTargetObjectsLink/use.f90 | 13 +++++++++++++ .../ModulesViaTargetObjectsLink/CMakeLists.txt | 5 +++++ Tests/FortranModules/ModulesViaTargetObjectsLink/dummy.f90 | 3 +++ Tests/FortranModules/ModulesViaTargetObjectsLink/obj.f90 | 11 +++++++++++ Tests/FortranModules/ModulesViaTargetObjectsLink/use.f90 | 13 +++++++++++++ 10 files changed, 69 insertions(+) create mode 100644 Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/CMakeLists.txt create mode 100644 Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/dummy.f90 create mode 100644 Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/subdir/CMakeLists.txt create mode 100644 Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/subdir/obj.f90 create mode 100644 Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/use.f90 create mode 100644 Tests/FortranModules/ModulesViaTargetObjectsLink/CMakeLists.txt create mode 100644 Tests/FortranModules/ModulesViaTargetObjectsLink/dummy.f90 create mode 100644 Tests/FortranModules/ModulesViaTargetObjectsLink/obj.f90 create mode 100644 Tests/FortranModules/ModulesViaTargetObjectsLink/use.f90 diff --git a/Tests/FortranModules/CMakeLists.txt b/Tests/FortranModules/CMakeLists.txt index 8e95152e..1e5ff89 100644 --- a/Tests/FortranModules/CMakeLists.txt +++ b/Tests/FortranModules/CMakeLists.txt @@ -141,3 +141,5 @@ add_subdirectory(Issue25365-target-objects-iface) # Issue#25425 add_subdirectory(ModulesViaTargetObjectsSource) add_subdirectory(ModulesViaSubdirTargetObjectsSource) +add_subdirectory(ModulesViaTargetObjectsLink) +add_subdirectory(ModulesViaSubdirTargetObjectsLink) diff --git a/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/CMakeLists.txt b/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/CMakeLists.txt new file mode 100644 index 0000000..b52b423 --- /dev/null +++ b/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/CMakeLists.txt @@ -0,0 +1,7 @@ +add_subdirectory(subdir) + +add_library(mvstol_lib dummy.f90) +target_link_libraries(mvstol_lib PRIVATE "$") +target_include_directories(mvstol_lib PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/subdir") +add_library(mvstol_use use.f90) +target_link_libraries(mvstol_use PRIVATE mvstol_lib) diff --git a/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/dummy.f90 b/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/dummy.f90 new file mode 100644 index 0000000..96a8138 --- /dev/null +++ b/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/dummy.f90 @@ -0,0 +1,3 @@ +pure real function dummy() +dummy = 4*atan(1.) +end function diff --git a/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/subdir/CMakeLists.txt b/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/subdir/CMakeLists.txt new file mode 100644 index 0000000..b2a250d --- /dev/null +++ b/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/subdir/CMakeLists.txt @@ -0,0 +1 @@ +add_library(mvstol_obj STATIC obj.f90) diff --git a/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/subdir/obj.f90 b/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/subdir/obj.f90 new file mode 100644 index 0000000..6b5ddd5 --- /dev/null +++ b/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/subdir/obj.f90 @@ -0,0 +1,11 @@ +module m1 + +implicit none + +contains + +pure real function pi() +pi = 4*atan(1.) +end function + +end module m1 diff --git a/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/use.f90 b/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/use.f90 new file mode 100644 index 0000000..f971909 --- /dev/null +++ b/Tests/FortranModules/ModulesViaSubdirTargetObjectsLink/use.f90 @@ -0,0 +1,13 @@ +module lib + +use m1, only : pi + +implicit none + +contains + +pure real function func() +func = pi() +end function + +end module diff --git a/Tests/FortranModules/ModulesViaTargetObjectsLink/CMakeLists.txt b/Tests/FortranModules/ModulesViaTargetObjectsLink/CMakeLists.txt new file mode 100644 index 0000000..202e59e --- /dev/null +++ b/Tests/FortranModules/ModulesViaTargetObjectsLink/CMakeLists.txt @@ -0,0 +1,5 @@ +add_library(mvtol_obj STATIC obj.f90) +add_library(mvtol_lib dummy.f90) +target_link_libraries(mvtol_lib PRIVATE "$") +add_library(mvtol_use use.f90) +target_link_libraries(mvtol_use PRIVATE mvtol_lib) diff --git a/Tests/FortranModules/ModulesViaTargetObjectsLink/dummy.f90 b/Tests/FortranModules/ModulesViaTargetObjectsLink/dummy.f90 new file mode 100644 index 0000000..96a8138 --- /dev/null +++ b/Tests/FortranModules/ModulesViaTargetObjectsLink/dummy.f90 @@ -0,0 +1,3 @@ +pure real function dummy() +dummy = 4*atan(1.) +end function diff --git a/Tests/FortranModules/ModulesViaTargetObjectsLink/obj.f90 b/Tests/FortranModules/ModulesViaTargetObjectsLink/obj.f90 new file mode 100644 index 0000000..6b5ddd5 --- /dev/null +++ b/Tests/FortranModules/ModulesViaTargetObjectsLink/obj.f90 @@ -0,0 +1,11 @@ +module m1 + +implicit none + +contains + +pure real function pi() +pi = 4*atan(1.) +end function + +end module m1 diff --git a/Tests/FortranModules/ModulesViaTargetObjectsLink/use.f90 b/Tests/FortranModules/ModulesViaTargetObjectsLink/use.f90 new file mode 100644 index 0000000..f971909 --- /dev/null +++ b/Tests/FortranModules/ModulesViaTargetObjectsLink/use.f90 @@ -0,0 +1,13 @@ +module lib + +use m1, only : pi + +implicit none + +contains + +pure real function func() +func = pi() +end function + +end module -- cgit v0.12