diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-29 04:41:38 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-29 04:41:38 +0000 |
commit | 7b6e527f440cd7e6f8be2b07cee320ee6ca18786 (patch) | |
tree | 4a2738d69fa2814659fdadddf5826282e73d81f4 /test cases/fortran/9 cpp | |
parent | Initial commit. (diff) | |
download | meson-7b6e527f440cd7e6f8be2b07cee320ee6ca18786.tar.xz meson-7b6e527f440cd7e6f8be2b07cee320ee6ca18786.zip |
Adding upstream version 1.0.1.upstream/1.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test cases/fortran/9 cpp')
-rw-r--r-- | test cases/fortran/9 cpp/fortran.f | 11 | ||||
-rw-r--r-- | test cases/fortran/9 cpp/main.c | 8 | ||||
-rw-r--r-- | test cases/fortran/9 cpp/main.cpp | 8 | ||||
-rw-r--r-- | test cases/fortran/9 cpp/meson.build | 29 |
4 files changed, 56 insertions, 0 deletions
diff --git a/test cases/fortran/9 cpp/fortran.f b/test cases/fortran/9 cpp/fortran.f new file mode 100644 index 0000000..255872c --- /dev/null +++ b/test cases/fortran/9 cpp/fortran.f @@ -0,0 +1,11 @@ + function fortran() bind(C) + use, intrinsic :: iso_c_binding, only: dp=>c_double + implicit none + + real(dp) :: r, fortran + + call random_number(r) + + fortran = 2._dp**r + + end function fortran diff --git a/test cases/fortran/9 cpp/main.c b/test cases/fortran/9 cpp/main.c new file mode 100644 index 0000000..c1750ad --- /dev/null +++ b/test cases/fortran/9 cpp/main.c @@ -0,0 +1,8 @@ +#include <stdio.h> + +double fortran(void); + +int main(void) { + printf("FORTRAN gave us this number: %lf.\n", fortran()); + return 0; +} diff --git a/test cases/fortran/9 cpp/main.cpp b/test cases/fortran/9 cpp/main.cpp new file mode 100644 index 0000000..534a23a --- /dev/null +++ b/test cases/fortran/9 cpp/main.cpp @@ -0,0 +1,8 @@ +#include <iostream> + +extern "C" double fortran(); + +int main(void) { + std::cout << "FORTRAN gave us this number: " << fortran() << '\n'; + return 0; +} diff --git a/test cases/fortran/9 cpp/meson.build b/test cases/fortran/9 cpp/meson.build new file mode 100644 index 0000000..2afa864 --- /dev/null +++ b/test cases/fortran/9 cpp/meson.build @@ -0,0 +1,29 @@ +project('C, C++ and Fortran', 'c', 'cpp', 'fortran') + +cpp = meson.get_compiler('cpp') +fc = meson.get_compiler('fortran') + +if build_machine.system() == 'windows' and fc.get_id() == 'gcc' and cpp.get_id() != 'gcc' + error('MESON_SKIP_TEST mixing gfortran with non-GNU C++ does not work.') +endif + +link_with = [] +if fc.get_id() == 'intel' + link_with += fc.find_library('ifport') +endif + +e = executable( + 'cfort', + ['main.c', 'fortran.f'], + dependencies : link_with, +) + +test('C and Fortran', e) + +e2 = executable( + 'cppfort', + ['main.cpp', 'fortran.f'], + dependencies : link_with, +) + +test('C++ and Fortran', e2) |