aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-12-02 21:55:56 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2016-12-02 21:55:56 +0200
commit6d84b9b6468eca57763895efe51347047ca3088d (patch)
tree2396bfa11ba04aac451df8091a66322a2d8110ae /mesonbuild/interpreter.py
parent7afb4c655281d60ef64d0378ff126a08f12a14ce (diff)
downloadmeson-6d84b9b6468eca57763895efe51347047ca3088d.zip
meson-6d84b9b6468eca57763895efe51347047ca3088d.tar.gz
meson-6d84b9b6468eca57763895efe51347047ca3088d.tar.bz2
Created new shared module build target type, and make sure -Wl,--no-undefined is not used when linking it.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index ef99511..fefc1ff 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -586,6 +586,10 @@ class SharedLibraryHolder(BuildTargetHolder):
def __init__(self, target, interp):
super().__init__(target, interp)
+class SharedModuleHolder(BuildTargetHolder):
+ def __init__(self, target, interp):
+ super().__init__(target, interp)
+
class JarHolder(BuildTargetHolder):
def __init__(self, target, interp):
super().__init__(target, interp)
@@ -1203,6 +1207,7 @@ class Interpreter():
'dependency' : self.func_dependency,
'static_library' : self.func_static_lib,
'shared_library' : self.func_shared_lib,
+ 'shared_module' : self.func_shared_module,
'library' : self.func_library,
'jar' : self.func_jar,
'build_target': self.func_build_target,
@@ -1961,6 +1966,9 @@ requirements use the version keyword argument instead.''')
def func_shared_lib(self, node, args, kwargs):
return self.build_target(node, args, kwargs, SharedLibraryHolder)
+ def func_shared_module(self, node, args, kwargs):
+ return self.build_target(node, args, kwargs, SharedModuleHolder)
+
def func_library(self, node, args, kwargs):
if self.coredata.get_builtin_option('default_library') == 'shared':
return self.func_shared_lib(node, args, kwargs)
@@ -2448,6 +2456,8 @@ requirements use the version keyword argument instead.''')
targetclass = build.Executable
elif targetholder is SharedLibraryHolder:
targetclass = build.SharedLibrary
+ elif targetholder is SharedModuleHolder:
+ targetclass = build.SharedModule
elif targetholder is StaticLibraryHolder:
targetclass = build.StaticLibrary
elif targetholder is JarHolder: