summaryrefslogtreecommitdiffstats
path: root/Tests/FortranModules/CMakeLists.txt
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-09-22 18:46:54 (GMT)
committerBrad King <brad.king@kitware.com>2016-09-23 12:51:06 (GMT)
commitb66bc6606e87c79e3adef55aa963570a5b8f78f2 (patch)
tree37d624724e696d8c40a2e0ec127954f65a396be0 /Tests/FortranModules/CMakeLists.txt
parent6757e6608992354300d635a96fed29800a4856c3 (diff)
downloadCMake-b66bc6606e87c79e3adef55aa963570a5b8f78f2.zip
CMake-b66bc6606e87c79e3adef55aa963570a5b8f78f2.tar.gz
CMake-b66bc6606e87c79e3adef55aa963570a5b8f78f2.tar.bz2
Tests: Add Fortran submodule tests
Co-Author: Damian Rouson <damian@sourceryinstitute.org> Issue: #16234
Diffstat (limited to 'Tests/FortranModules/CMakeLists.txt')
-rw-r--r--Tests/FortranModules/CMakeLists.txt31
1 files changed, 31 insertions, 0 deletions
diff --git a/Tests/FortranModules/CMakeLists.txt b/Tests/FortranModules/CMakeLists.txt
index b406df3..ff12771 100644
--- a/Tests/FortranModules/CMakeLists.txt
+++ b/Tests/FortranModules/CMakeLists.txt
@@ -5,6 +5,33 @@ if(NOT DEFINED CMake_TEST_NESTED_MAKE_PROGRAM AND NOT CMAKE_GENERATOR MATCHES "V
set(CMake_TEST_NESTED_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM}")
endif()
+if("x${CMake_TEST_Fortran_SUBMODULES}" STREQUAL "x"
+ AND NOT CMAKE_VERSION VERSION_LESS 3.6.20160923 # for CheckFortranSourceCompiles SRC_EXT
+ )
+ include(CheckFortranSourceCompiles)
+ CHECK_Fortran_SOURCE_COMPILES([[
+module parent
+ interface
+ module function id(x)
+ real, intent(in) :: x
+ real :: id
+ end function id
+ end interface
+end module parent
+submodule ( parent ) child
+contains
+ module procedure id
+ f = x
+ end procedure id
+end submodule child
+program main
+end program
+]] HAVE_SUBMODULES SRC_EXT F90)
+ set(CMake_TEST_Fortran_SUBMODULES ${HAVE_SUBMODULES})
+elseif(CMake_TEST_Fortran_SUBMODULES)
+ message(STATUS "Enabling Fortran submodule tests by explicit request.")
+endif()
+
add_executable(test_module
test_module_main.f90
test_module_implementation.f90
@@ -76,3 +103,7 @@ endif()
add_subdirectory(Library)
add_subdirectory(Subdir)
add_subdirectory(Executable)
+
+if(CMake_TEST_Fortran_SUBMODULES)
+ add_subdirectory(Submodules)
+endif()