aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2019-07-31 00:31:15 +0300
committerGitHub <noreply@github.com>2019-07-31 00:31:15 +0300
commit5d9a1558c2e1041b1149fca6b2bceba447b6823e (patch)
treef1d776e2956451aa035229567d51f8e00cebc7a2 /test cases
parentb72b5365afe319e576e254f12437aeff899eb03e (diff)
parentf5554957cb2114be6536a15df4db6e34b541c381 (diff)
downloadmeson-5d9a1558c2e1041b1149fca6b2bceba447b6823e.zip
meson-5d9a1558c2e1041b1149fca6b2bceba447b6823e.tar.gz
meson-5d9a1558c2e1041b1149fca6b2bceba447b6823e.tar.bz2
Merge pull request #5733 from scivision/pgi_openmp
PGI: correct Fortran so that Fortran run_project_tests.py pass
Diffstat (limited to 'test cases')
-rw-r--r--test cases/common/190 openmp/meson.build21
-rw-r--r--test cases/common/223 source set realistic example/meson.build6
-rw-r--r--test cases/fortran/13 coarray/meson.build4
-rw-r--r--test cases/fortran/14 fortran links c/meson.build3
-rw-r--r--test cases/fortran/6 dynamic/meson.build6
5 files changed, 25 insertions, 15 deletions
diff --git a/test cases/common/190 openmp/meson.build b/test cases/common/190 openmp/meson.build
index 71bf697..a1154c2 100644
--- a/test cases/common/190 openmp/meson.build
+++ b/test cases/common/190 openmp/meson.build
@@ -1,4 +1,4 @@
-project('openmp', 'c', 'cpp')
+project('openmp', 'c')
cc = meson.get_compiler('c')
if cc.get_id() == 'gcc' and cc.version().version_compare('<4.2.0')
@@ -21,21 +21,22 @@ if host_machine.system() == 'darwin'
endif
openmp = dependency('openmp')
+env = environment()
+env.set('OMP_NUM_THREADS', '2')
exec = executable('exec',
'main.c',
dependencies : [openmp])
-
-execpp = executable('execpp',
- 'main.cpp',
- dependencies : [openmp])
-
-env = environment()
-env.set('OMP_NUM_THREADS', '2')
-
test('OpenMP C', exec, env : env)
-test('OpenMP C++', execpp, env : env)
+if not(build_machine.system() == 'windows' and cc.get_id() == 'pgi')
+ if add_languages('cpp', required : false)
+ execpp = executable('execpp',
+ 'main.cpp',
+ dependencies : [openmp])
+ test('OpenMP C++', execpp, env : env)
+ endif
+endif
if add_languages('fortran', required : false)
# Mixing compilers (msvc/clang with gfortran) does not seem to work on Windows.
diff --git a/test cases/common/223 source set realistic example/meson.build b/test cases/common/223 source set realistic example/meson.build
index f983e8b..2a9475a 100644
--- a/test cases/common/223 source set realistic example/meson.build
+++ b/test cases/common/223 source set realistic example/meson.build
@@ -2,6 +2,12 @@
# modules, inspired by QEMU's build system
project('sourceset-example', 'cpp')
+
+cppid = meson.get_compiler('cpp').get_id()
+if cppid == 'pgi'
+ error('MESON_SKIP_TEST: Even PGI 19.4 that claims C++17 full support, cannot handle auto x = y syntax used in this test.')
+endif
+
ss = import('sourceset')
kconfig = import('unstable-kconfig')
diff --git a/test cases/fortran/13 coarray/meson.build b/test cases/fortran/13 coarray/meson.build
index e1fb34b..3e52dde 100644
--- a/test cases/fortran/13 coarray/meson.build
+++ b/test cases/fortran/13 coarray/meson.build
@@ -4,8 +4,8 @@ project('Fortran coarray', 'fortran',
fc = meson.get_compiler('fortran')
fcid = fc.get_id()
-if fcid == 'pgi' or fcid == 'flang'
- error('MESON_SKIP_TEST: At least through: PGI 19.4 and Flang 7.0 do not support Fortran Coarrays.')
+if ['pgi', 'flang'].contains(fcid)
+ error('MESON_SKIP_TEST: At least through PGI 19.4 and Flang 7.1 do not support Fortran Coarrays.')
endif
# coarray is required because single-image fallback is an intrinsic feature
diff --git a/test cases/fortran/14 fortran links c/meson.build b/test cases/fortran/14 fortran links c/meson.build
index 1ac47e4..a45f06f 100644
--- a/test cases/fortran/14 fortran links c/meson.build
+++ b/test cases/fortran/14 fortran links c/meson.build
@@ -1,5 +1,6 @@
project('Fortran calling C', 'fortran', 'c',
- meson_version: '>= 0.51.0')
+ meson_version: '>= 0.51.0',
+ default_options : ['default_library=static'])
ccid = meson.get_compiler('c').get_id()
if ccid == 'msvc' or ccid == 'clang-cl'
diff --git a/test cases/fortran/6 dynamic/meson.build b/test cases/fortran/6 dynamic/meson.build
index 244a38b..413223b 100644
--- a/test cases/fortran/6 dynamic/meson.build
+++ b/test cases/fortran/6 dynamic/meson.build
@@ -1,9 +1,11 @@
project('dynamic_fortran', 'fortran')
-if meson.get_compiler('fortran').get_id() == 'intel-cl'
- error('MESON_SKIP_TEST: Windows ifort does not use shared_library in a sane way')
+fcid = meson.get_compiler('fortran').get_id()
+if fcid == 'intel-cl' or (host_machine.system() == 'windows' and fcid == 'pgi')
+ error('MESON_SKIP_TEST: non-Gfortran Windows Fortran compilers do not do shared libraries in a Fortran standard way')
# !DEC$ ATTRIBUTES DLLEXPORT must be used!
# https://software.intel.com/en-us/node/535306
+ # https://www.pgroup.com/resources/docs/19.4/x86/pgi-user-guide/index.htm#lib-dynlnk-bld-dll-fort
endif
dynamic = shared_library('dynamic', 'dynamic.f90')