diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2015-09-01 00:22:31 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2015-09-01 00:22:31 +0300 |
commit | 62fe99ceee1e1a68bcc0bc67361fe4ab29566ce9 (patch) | |
tree | ed7ea186f88ab0d0f07e5265d43ed47db8cf0d0e | |
parent | 4a06f6d399f31090a24e732c3e110b8d89a470f4 (diff) | |
parent | 28f60ca47404603bc8baccb9ed4c03f26df2b3ca (diff) | |
download | meson-62fe99ceee1e1a68bcc0bc67361fe4ab29566ce9.zip meson-62fe99ceee1e1a68bcc0bc67361fe4ab29566ce9.tar.gz meson-62fe99ceee1e1a68bcc0bc67361fe4ab29566ce9.tar.bz2 |
Merge pull request #250 from byon/master
Fix shared libraries for fortran
-rw-r--r-- | build.py | 1 | ||||
-rw-r--r-- | compilers.py | 8 | ||||
-rw-r--r-- | test cases/fortran/6 dynamic/dynamic.f95 | 17 | ||||
-rw-r--r-- | test cases/fortran/6 dynamic/main.f95 | 6 | ||||
-rw-r--r-- | test cases/fortran/6 dynamic/meson.build | 4 |
5 files changed, 36 insertions, 0 deletions
@@ -630,6 +630,7 @@ class SharedLibrary(BuildTarget): self.prefix = environment.get_shared_lib_prefix() self.suffix = environment.get_shared_lib_suffix() self.importsuffix = environment.get_import_lib_suffix() + self.filename = self.prefix + self.name + '.' + self.suffix def process_kwargs(self, kwargs, environment): super().process_kwargs(kwargs, environment) diff --git a/compilers.py b/compilers.py index 37b8c09..92437e1 100644 --- a/compilers.py +++ b/compilers.py @@ -1260,6 +1260,14 @@ class FortranCompiler(): def get_language(self): return self.language + def get_pic_args(self): + if self.gcc_type == GCC_MINGW: + return [] # On Windows gcc defaults to fpic being always on. + return ['-fPIC'] + + def get_std_shared_lib_link_args(self): + return ['-shared'] + def needs_static_linker(self): return True diff --git a/test cases/fortran/6 dynamic/dynamic.f95 b/test cases/fortran/6 dynamic/dynamic.f95 new file mode 100644 index 0000000..e78a406 --- /dev/null +++ b/test cases/fortran/6 dynamic/dynamic.f95 @@ -0,0 +1,17 @@ +module dynamic + implicit none + + private + public :: hello + + interface hello + module procedure say + end interface hello + +contains + + subroutine say + print *, "Hello, hello..." + end subroutine say + +end module dynamic diff --git a/test cases/fortran/6 dynamic/main.f95 b/test cases/fortran/6 dynamic/main.f95 new file mode 100644 index 0000000..cb3a53f --- /dev/null +++ b/test cases/fortran/6 dynamic/main.f95 @@ -0,0 +1,6 @@ +program main + use dynamic + implicit none + + call hello() +end program main diff --git a/test cases/fortran/6 dynamic/meson.build b/test cases/fortran/6 dynamic/meson.build new file mode 100644 index 0000000..53edaf6 --- /dev/null +++ b/test cases/fortran/6 dynamic/meson.build @@ -0,0 +1,4 @@ +project('dynamic_fortran', 'fortran') + +dynamic = shared_library('dynamic', 'dynamic.f95') +executable('test_exe', 'main.f95', link_with : dynamic) |