From e2313b85d7f0d10c0995ea9887bee00c2763290a Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Tue, 3 Nov 2015 03:03:54 +0200 Subject: Refactored builtin options to a dictionary and created a new default library target type. --- interpreter.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'interpreter.py') diff --git a/interpreter.py b/interpreter.py index c78e83d18..fb35f4376 100644 --- a/interpreter.py +++ b/interpreter.py @@ -855,7 +855,7 @@ class MesonMain(InterpreterObject): raise InterpreterException('Tried to access compiler for unspecified language "%s".' % cname) def is_unity_method(self, args, kwargs): - return self.build.environment.coredata.unity + return self.build.environment.coredata.get_builtin_option('unity') def is_subproject_method(self, args, kwargs): return self.interpreter.is_subproject() @@ -933,6 +933,7 @@ class Interpreter(): 'dependency' : self.func_dependency, 'static_library' : self.func_static_lib, 'shared_library' : self.func_shared_lib, + 'default_library' : self.func_default_library, 'jar' : self.func_jar, 'build_target': self.func_build_target, 'custom_target' : self.func_custom_target, @@ -1339,9 +1340,10 @@ class Interpreter(): if '=' not in option: raise InterpreterException('All default options must be of type key=value.') key, value = option.split('=', 1) - if hasattr(self.coredata, key): + builtin_options = self.coredata.builtin_options + if key in builtin_options: if not hasattr(self.environment.cmd_line_options, value): - setattr(self.coredata, key, value) + self.coredata.set_builtin_option(key, value) # If this was set on the command line, do not override. else: newoptions = [option] + self.environment.cmd_line_options.projectoptions @@ -1567,6 +1569,11 @@ class Interpreter(): def func_shared_lib(self, node, args, kwargs): return self.build_target(node, args, kwargs, SharedLibraryHolder) + def func_default_library(self, node, args, kwargs): + if self.coredata.get_builtin_option('default_library') == 'shared': + return self.func_shared_lib(node, args, kwargs) + return self.func_static_lib(node, args, kwargs) + def func_jar(self, node, args, kwargs): return self.build_target(node, args, kwargs, JarHolder) @@ -2009,7 +2016,7 @@ class Interpreter(): else: obj = self.evaluate_statement(invokable) method_name = node.name - if method_name == 'extract_objects' and self.environment.coredata.unity: + if method_name == 'extract_objects' and self.environment.coredata.get_builtin_option('unity'): raise InterpreterException('Single object files can not be extracted in Unity builds.') args = node.args if isinstance(obj, mparser.StringNode): -- cgit v1.2.3 From fa9799a96a98c593c97ca3218fa4d5c37c502124 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Tue, 3 Nov 2015 17:26:09 +0200 Subject: Renamed default_library to library. --- interpreter.py | 6 ++++-- test cases/common/96 default library/meson.build | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'interpreter.py') diff --git a/interpreter.py b/interpreter.py index fb35f4376..7d066f740 100644 --- a/interpreter.py +++ b/interpreter.py @@ -933,7 +933,7 @@ class Interpreter(): 'dependency' : self.func_dependency, 'static_library' : self.func_static_lib, 'shared_library' : self.func_shared_lib, - 'default_library' : self.func_default_library, + 'library' : self.func_library, 'jar' : self.func_jar, 'build_target': self.func_build_target, 'custom_target' : self.func_custom_target, @@ -1569,7 +1569,7 @@ class Interpreter(): def func_shared_lib(self, node, args, kwargs): return self.build_target(node, args, kwargs, SharedLibraryHolder) - def func_default_library(self, node, args, kwargs): + def func_library(self, node, args, kwargs): if self.coredata.get_builtin_option('default_library') == 'shared': return self.func_shared_lib(node, args, kwargs) return self.func_static_lib(node, args, kwargs) @@ -1587,6 +1587,8 @@ class Interpreter(): return self.func_shared_lib(node, args, kwargs) elif target_type == 'static_library': return self.func_static_lib(node, args, kwargs) + elif target_type == 'library': + return self.func_library(node, args, kwargs) elif target_type == 'jar': return self.func_jar(node, args, kwargs) else: diff --git a/test cases/common/96 default library/meson.build b/test cases/common/96 default library/meson.build index 15f42046b..903cfe40a 100644 --- a/test cases/common/96 default library/meson.build +++ b/test cases/common/96 default library/meson.build @@ -1,5 +1,5 @@ project('default library', 'cpp') -flib = default_library('ef', 'ef.cpp') +flib = library('ef', 'ef.cpp') exe = executable('eftest', 'eftest.cpp', link_with : flib) test('eftest', exe) -- cgit v1.2.3