aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/fortran/15 include
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /meson/test cases/fortran/15 include
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'meson/test cases/fortran/15 include')
-rw-r--r--meson/test cases/fortran/15 include/inc1.f905
-rw-r--r--meson/test cases/fortran/15 include/inc2.f902
-rw-r--r--meson/test cases/fortran/15 include/include_hierarchy.f909
-rw-r--r--meson/test cases/fortran/15 include/include_syntax.f9025
-rw-r--r--meson/test cases/fortran/15 include/meson.build19
-rw-r--r--meson/test cases/fortran/15 include/subprojects/cmake_inc/CMakeLists.txt4
-rw-r--r--meson/test cases/fortran/15 include/subprojects/cmake_inc/main.f909
-rw-r--r--meson/test cases/fortran/15 include/subprojects/cmake_inc/thousand.f901
-rw-r--r--meson/test cases/fortran/15 include/timestwo.f902
9 files changed, 76 insertions, 0 deletions
diff --git a/meson/test cases/fortran/15 include/inc1.f90 b/meson/test cases/fortran/15 include/inc1.f90
new file mode 100644
index 000000000..163f5864b
--- /dev/null
+++ b/meson/test cases/fortran/15 include/inc1.f90
@@ -0,0 +1,5 @@
+
+real :: pi = 4.*atan(1.)
+real :: tau
+
+include "inc2.f90" ! testing inline comment
diff --git a/meson/test cases/fortran/15 include/inc2.f90 b/meson/test cases/fortran/15 include/inc2.f90
new file mode 100644
index 000000000..065b9903d
--- /dev/null
+++ b/meson/test cases/fortran/15 include/inc2.f90
@@ -0,0 +1,2 @@
+
+tau = 2*pi
diff --git a/meson/test cases/fortran/15 include/include_hierarchy.f90 b/meson/test cases/fortran/15 include/include_hierarchy.f90
new file mode 100644
index 000000000..0598d874f
--- /dev/null
+++ b/meson/test cases/fortran/15 include/include_hierarchy.f90
@@ -0,0 +1,9 @@
+program test_include_hier
+
+implicit none
+
+include "inc1.f90"
+
+print *, '2*pi:', tau
+
+end program
diff --git a/meson/test cases/fortran/15 include/include_syntax.f90 b/meson/test cases/fortran/15 include/include_syntax.f90
new file mode 100644
index 000000000..5f7eb9f2e
--- /dev/null
+++ b/meson/test cases/fortran/15 include/include_syntax.f90
@@ -0,0 +1,25 @@
+program test_include_syntax
+
+implicit none
+
+integer :: x, y
+
+x = 1
+y = 0
+
+! include "timestwo.f90"
+
+include "timestwo.f90" ! inline comment check
+if (x/=2) error stop 'failed on first include'
+
+! leading space check
+ include 'timestwo.f90'
+if (x/=4) error stop 'failed on second include'
+
+! Most Fortran compilers can't handle the non-standard #include,
+! including (ha!) Flang, Gfortran, Ifort and PGI.
+! #include "timestwo.f90"
+
+print *, 'OK: Fortran include tests: x=',x
+
+end program
diff --git a/meson/test cases/fortran/15 include/meson.build b/meson/test cases/fortran/15 include/meson.build
new file mode 100644
index 000000000..6ba0afa0a
--- /dev/null
+++ b/meson/test cases/fortran/15 include/meson.build
@@ -0,0 +1,19 @@
+project('Inclusive', 'fortran',
+ meson_version: '>= 0.51.1')
+
+cm = import('cmake')
+
+hier_exe = executable('include_hierarchy', 'include_hierarchy.f90')
+test('Fortran include file hierarchy', hier_exe)
+
+syntax_exe = executable('include_syntax', 'include_syntax.f90')
+test('Fortran include file syntax', syntax_exe)
+
+# older CI runs into problems with too-old Ninja and CMake and Fortran
+ninja_version = run_command('ninja', '--version').stdout().strip()
+cmake_version = run_command('cmake', '--version').stdout().split()[2]
+if ninja_version.version_compare('>=1.10.0') and cmake_version.version_compare('>=3.17.0')
+ cm.subproject('cmake_inc')
+else
+ message('SKIP: CMake Fortran subproject with include. Ninja >= 1.10 and CMake >= 3.17 needed. You have Ninja ' + ninja_version + ' and CMake ' + cmake_version)
+endif
diff --git a/meson/test cases/fortran/15 include/subprojects/cmake_inc/CMakeLists.txt b/meson/test cases/fortran/15 include/subprojects/cmake_inc/CMakeLists.txt
new file mode 100644
index 000000000..1ffe88267
--- /dev/null
+++ b/meson/test cases/fortran/15 include/subprojects/cmake_inc/CMakeLists.txt
@@ -0,0 +1,4 @@
+cmake_minimum_required(VERSION 3.17)
+project(cmake_inc LANGUAGES Fortran)
+
+add_executable(main main.f90)
diff --git a/meson/test cases/fortran/15 include/subprojects/cmake_inc/main.f90 b/meson/test cases/fortran/15 include/subprojects/cmake_inc/main.f90
new file mode 100644
index 000000000..dd2991d03
--- /dev/null
+++ b/meson/test cases/fortran/15 include/subprojects/cmake_inc/main.f90
@@ -0,0 +1,9 @@
+program test_subproject_inc
+
+implicit none
+
+include 'thousand.f90'
+
+if (thousand /= 1000) error stop 'did not include properly'
+
+end program
diff --git a/meson/test cases/fortran/15 include/subprojects/cmake_inc/thousand.f90 b/meson/test cases/fortran/15 include/subprojects/cmake_inc/thousand.f90
new file mode 100644
index 000000000..08a4048bc
--- /dev/null
+++ b/meson/test cases/fortran/15 include/subprojects/cmake_inc/thousand.f90
@@ -0,0 +1 @@
+integer, parameter :: thousand = 1000
diff --git a/meson/test cases/fortran/15 include/timestwo.f90 b/meson/test cases/fortran/15 include/timestwo.f90
new file mode 100644
index 000000000..0e2d5ac39
--- /dev/null
+++ b/meson/test cases/fortran/15 include/timestwo.f90
@@ -0,0 +1,2 @@
+x = 2*x
+y = y+1 \ No newline at end of file