From d01fc3da8f69464eb53507ca2e33f6f887ba0e34 Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Wed, 2 Sep 2020 23:15:18 -0400 Subject: tests: add fortran cmake subproject include test ci:unused_arg: update ninja version to work with fortran+cmake --- .../fortran/15 include/include_hierarchy.f90 | 1 + test cases/fortran/15 include/include_syntax.f90 | 4 +++- test cases/fortran/15 include/include_tests.f90 | 24 ---------------------- test cases/fortran/15 include/meson.build | 13 +++++++++++- .../subprojects/cmake_inc/CMakeLists.txt | 4 ++++ .../15 include/subprojects/cmake_inc/main.f90 | 9 ++++++++ .../15 include/subprojects/cmake_inc/thousand.f90 | 1 + 7 files changed, 30 insertions(+), 26 deletions(-) delete mode 100644 test cases/fortran/15 include/include_tests.f90 create mode 100644 test cases/fortran/15 include/subprojects/cmake_inc/CMakeLists.txt create mode 100644 test cases/fortran/15 include/subprojects/cmake_inc/main.f90 create mode 100644 test cases/fortran/15 include/subprojects/cmake_inc/thousand.f90 (limited to 'test cases') diff --git a/test cases/fortran/15 include/include_hierarchy.f90 b/test cases/fortran/15 include/include_hierarchy.f90 index 661aa62c2..0598d874f 100644 --- a/test cases/fortran/15 include/include_hierarchy.f90 +++ b/test cases/fortran/15 include/include_hierarchy.f90 @@ -1,3 +1,4 @@ +program test_include_hier implicit none diff --git a/test cases/fortran/15 include/include_syntax.f90 b/test cases/fortran/15 include/include_syntax.f90 index d35e0ceed..5f7eb9f2e 100644 --- a/test cases/fortran/15 include/include_syntax.f90 +++ b/test cases/fortran/15 include/include_syntax.f90 @@ -1,3 +1,5 @@ +program test_include_syntax + implicit none integer :: x, y @@ -20,4 +22,4 @@ if (x/=4) error stop 'failed on second include' print *, 'OK: Fortran include tests: x=',x -end program \ No newline at end of file +end program diff --git a/test cases/fortran/15 include/include_tests.f90 b/test cases/fortran/15 include/include_tests.f90 deleted file mode 100644 index 56e461977..000000000 --- a/test cases/fortran/15 include/include_tests.f90 +++ /dev/null @@ -1,24 +0,0 @@ -implicit none - -integer :: x, y - -x = 1 -y = 0 - -! include "timestwo.f90" - -! double quote and inline comment check -include "timestwo.f90" ! inline comment check -if (x/=2) error stop 'failed on first include' - -! leading space and single quote 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 \ No newline at end of file diff --git a/test cases/fortran/15 include/meson.build b/test cases/fortran/15 include/meson.build index 2196d13d6..6ba0afa0a 100644 --- a/test cases/fortran/15 include/meson.build +++ b/test cases/fortran/15 include/meson.build @@ -1,8 +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) \ No newline at end of file +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/test cases/fortran/15 include/subprojects/cmake_inc/CMakeLists.txt b/test cases/fortran/15 include/subprojects/cmake_inc/CMakeLists.txt new file mode 100644 index 000000000..1ffe88267 --- /dev/null +++ b/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/test cases/fortran/15 include/subprojects/cmake_inc/main.f90 b/test cases/fortran/15 include/subprojects/cmake_inc/main.f90 new file mode 100644 index 000000000..dd2991d03 --- /dev/null +++ b/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/test cases/fortran/15 include/subprojects/cmake_inc/thousand.f90 b/test cases/fortran/15 include/subprojects/cmake_inc/thousand.f90 new file mode 100644 index 000000000..08a4048bc --- /dev/null +++ b/test cases/fortran/15 include/subprojects/cmake_inc/thousand.f90 @@ -0,0 +1 @@ +integer, parameter :: thousand = 1000 -- cgit v1.2.3