diff options
author | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
---|---|---|
committer | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /meson/test cases/fortran/15 include | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'meson/test cases/fortran/15 include')
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 |