aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hirsch <scivision@users.noreply.github.com>2020-09-02 23:15:18 -0400
committerMichael Hirsch <scivision@users.noreply.github.com>2020-09-03 00:20:07 -0400
commitd01fc3da8f69464eb53507ca2e33f6f887ba0e34 (patch)
treeb447d66c130aca33f0b9e5caf33aa64c4583bc61
parent34f7fee741bdb8c01c15556dd56b4fd82d3a5bdd (diff)
downloadmeson-d01fc3da8f69464eb53507ca2e33f6f887ba0e34.zip
meson-d01fc3da8f69464eb53507ca2e33f6f887ba0e34.tar.gz
meson-d01fc3da8f69464eb53507ca2e33f6f887ba0e34.tar.bz2
tests: add fortran cmake subproject include test
ci:unused_arg: update ninja version to work with fortran+cmake
-rw-r--r--.github/workflows/unusedargs_missingreturn.yml31
-rw-r--r--test cases/fortran/15 include/include_hierarchy.f901
-rw-r--r--test cases/fortran/15 include/include_syntax.f904
-rw-r--r--test cases/fortran/15 include/include_tests.f9024
-rw-r--r--test cases/fortran/15 include/meson.build13
-rw-r--r--test cases/fortran/15 include/subprojects/cmake_inc/CMakeLists.txt4
-rw-r--r--test cases/fortran/15 include/subprojects/cmake_inc/main.f909
-rw-r--r--test cases/fortran/15 include/subprojects/cmake_inc/thousand.f901
8 files changed, 42 insertions, 45 deletions
diff --git a/.github/workflows/unusedargs_missingreturn.yml b/.github/workflows/unusedargs_missingreturn.yml
index 859dec2..3e82568 100644
--- a/.github/workflows/unusedargs_missingreturn.yml
+++ b/.github/workflows/unusedargs_missingreturn.yml
@@ -4,6 +4,10 @@ name: UnusedMissingReturn
# * missing return values
# * strict prototypes
# some users have default configs that will needlessly fail Meson self-tests due to these syntax.
+env:
+ CFLAGS: "-Werror=unused-parameter -Werror=return-type -Werror=strict-prototypes"
+ CPPFLAGS: "-Werror=unused-parameter -Werror=return-type"
+ FFLAGS: "-fimplicit-none"
on:
push:
@@ -31,10 +35,10 @@ on:
jobs:
linux:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-20.04
steps:
- - uses: actions/checkout@v1
- - uses: actions/setup-python@v1
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install Compilers
@@ -42,30 +46,19 @@ jobs:
sudo apt update -yq
sudo apt install -yq --no-install-recommends g++ gfortran ninja-build gobjc gobjc++
- run: python run_project_tests.py --only cmake common fortran platform-linux "objective c" "objective c++"
- env:
- CI: "1"
- CFLAGS: "-Werror=unused-parameter -Werror=return-type -Werror=strict-prototypes"
- CPPFLAGS: "-Werror=unused-parameter -Werror=return-type"
- FFLAGS: "-fimplicit-none"
windows:
runs-on: windows-latest
steps:
- - uses: actions/checkout@v1
- - uses: actions/setup-python@v1
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
with:
python-version: '3.x'
- # ninja==1.10 pypi release didn't ship with windows binaries, which causes
- # pip to try to build it which fails on Windows. Pin the previous version
- # for now. We can update once that's fixed.
- # https://pypi.org/project/ninja/1.10.0/#files
- - run: pip install ninja==1.9.0.post1 pefile
+
+ - run: pip install ninja pefile
+
- run: python run_project_tests.py --only platform-windows
env:
- CI: "1"
- CFLAGS: "-Werror=unused-parameter -Werror=return-type -Werror=strict-prototypes"
- CPPFLAGS: "-Werror=unused-parameter -Werror=return-type"
- FFLAGS: "-fimplicit-none"
CC: gcc
CXX: g++
FC: gfortran
diff --git a/test cases/fortran/15 include/include_hierarchy.f90 b/test cases/fortran/15 include/include_hierarchy.f90
index 661aa62..0598d87 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 d35e0ce..5f7eb9f 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 56e4619..0000000
--- 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 2196d13..6ba0afa 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 0000000..1ffe882
--- /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 0000000..dd2991d
--- /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 0000000..08a4048
--- /dev/null
+++ b/test cases/fortran/15 include/subprojects/cmake_inc/thousand.f90
@@ -0,0 +1 @@
+integer, parameter :: thousand = 1000