diff options
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 12 | ||||
-rw-r--r-- | mesonbuild/backend/vs2010backend.py | 3 | ||||
-rw-r--r-- | mesonbuild/backend/vs2015backend.py | 1 | ||||
-rw-r--r-- | mesonbuild/backend/xcodebackend.py | 1 |
4 files changed, 14 insertions, 3 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index cc0167d..e11491f 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -139,6 +139,7 @@ class NinjaBackend(backends.Backend): def __init__(self, build): super().__init__(build) + self.name = 'ninja' self.ninja_filename = 'build.ninja' self.fortran_deps = {} self.all_outputs = {} @@ -1931,7 +1932,8 @@ rule FORTRAN_DEP_HACK commands += linker.get_linker_always_args() if not isinstance(target, build.StaticLibrary): commands += compilers.get_base_link_args(self.environment.coredata.base_options, - linker) + linker, + isinstance(target, build.SharedModule)) commands += linker.get_buildtype_linker_args(self.environment.coredata.get_builtin_option('buildtype')) commands += linker.get_option_link_args(self.environment.coredata.compiler_options) commands += self.get_link_debugfile_args(linker, target, outname) @@ -1940,13 +1942,17 @@ rule FORTRAN_DEP_HACK if isinstance(target, build.Executable): commands += linker.get_std_exe_link_args() elif isinstance(target, build.SharedLibrary): - commands += linker.get_std_shared_lib_link_args() + if isinstance(target, build.SharedModule): + commands += linker.get_std_shared_module_link_args() + else: + commands += linker.get_std_shared_lib_link_args() commands += linker.get_pic_args() if hasattr(target, 'soversion'): soversion = target.soversion else: soversion = None - commands += linker.get_soname_args(target.prefix, target.name, target.suffix, abspath, soversion) + commands += linker.get_soname_args(target.prefix, target.name, target.suffix, + abspath, soversion, isinstance(target, build.SharedModule)) # This is only visited when using the Visual Studio toolchain if target.vs_module_defs and hasattr(linker, 'gen_vs_module_defs_args'): commands += linker.gen_vs_module_defs_args(target.vs_module_defs.rel_to_builddir(self.build_to_src)) diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py index 0f67771..d043455 100644 --- a/mesonbuild/backend/vs2010backend.py +++ b/mesonbuild/backend/vs2010backend.py @@ -57,6 +57,7 @@ class RegenInfo(): class Vs2010Backend(backends.Backend): def __init__(self, build): super().__init__(build) + self.name = 'vs2010' self.project_file_version = '10.0.30319.1' self.sources_conflicts = {} self.platform_toolset = None @@ -782,6 +783,8 @@ class Vs2010Backend(backends.Backend): extra_link_args += l if not isinstance(target, build.StaticLibrary): extra_link_args += target.link_args + if isinstance(target, build.SharedModule): + extra_link_args += compiler.get_std_shared_module_link_args() # External deps must be last because target link libraries may depend on them. for dep in target.get_external_deps(): extra_link_args += dep.get_link_args() diff --git a/mesonbuild/backend/vs2015backend.py b/mesonbuild/backend/vs2015backend.py index 8d4ff45..2c0efa7 100644 --- a/mesonbuild/backend/vs2015backend.py +++ b/mesonbuild/backend/vs2015backend.py @@ -19,6 +19,7 @@ from .vs2010backend import Vs2010Backend class Vs2015Backend(Vs2010Backend): def __init__(self, build): super().__init__(build) + self.name = 'vs2015' self.platform_toolset = 'v140' self.vs_version = '2015' diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py index b157741..8133e0f 100644 --- a/mesonbuild/backend/xcodebackend.py +++ b/mesonbuild/backend/xcodebackend.py @@ -22,6 +22,7 @@ from ..mesonlib import MesonException class XCodeBackend(backends.Backend): def __init__(self, build): super().__init__(build) + self.name = 'xcode' self.project_uid = self.environment.coredata.guid.replace('-', '')[:24] self.project_conflist = self.gen_id() self.indent = ' ' |