Blame 0014-Check-contents-of-arguments-inside-project-.-Closes-.patch

Igor Gnatenko 57d01a
From 2105e753c03555a512e3e2dc74921c69cabf40af Mon Sep 17 00:00:00 2001
Igor Gnatenko 57d01a
From: Jussi Pakkanen <jpakkane@gmail.com>
Igor Gnatenko 57d01a
Date: Mon, 10 Oct 2016 20:32:17 +0300
Igor Gnatenko 57d01a
Subject: [PATCH 14/16] Check contents of arguments inside project(). Closes
Igor Gnatenko 57d01a
 #857.
Igor Gnatenko 57d01a
Igor Gnatenko 57d01a
(cherry picked from commit 60119753d629053bcd3f0fe973977b8ed8f51ea8)
Igor Gnatenko 57d01a
---
Igor Gnatenko 57d01a
 mesonbuild/interpreter.py | 8 +++-----
Igor Gnatenko 57d01a
 1 file changed, 3 insertions(+), 5 deletions(-)
Igor Gnatenko 57d01a
Igor Gnatenko 57d01a
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
Igor Gnatenko 57d01a
index be19bab..645c22f 100644
Igor Gnatenko 57d01a
--- a/mesonbuild/interpreter.py
Igor Gnatenko 57d01a
+++ b/mesonbuild/interpreter.py
Igor Gnatenko 57d01a
@@ -1128,7 +1128,7 @@ class Interpreter():
Igor Gnatenko 57d01a
             raise me
Igor Gnatenko 57d01a
         self.sanity_check_ast()
Igor Gnatenko 57d01a
         self.variables = {}
Igor Gnatenko 57d01a
-        self.builtin = {}
Igor Gnatenko 57d01a
+        self.builtin = {'meson': MesonMain(build, self)}
Igor Gnatenko 57d01a
         self.generators = []
Igor Gnatenko 57d01a
         self.visited_subdirs = {}
Igor Gnatenko 57d01a
         self.global_args_frozen = False
Igor Gnatenko 57d01a
@@ -1150,7 +1150,6 @@ class Interpreter():
Igor Gnatenko 57d01a
                 self.builtin['target_machine'] = CrossMachineInfo(cross_info.config['target_machine'])
Igor Gnatenko 57d01a
             else:
Igor Gnatenko 57d01a
                 self.builtin['target_machine'] = self.builtin['host_machine']
Igor Gnatenko 57d01a
-        self.builtin['meson'] = MesonMain(build, self)
Igor Gnatenko 57d01a
         self.build_def_files = [os.path.join(self.subdir, environment.build_filename)]
Igor Gnatenko 57d01a
 
Igor Gnatenko 57d01a
     def build_func_dict(self):
Igor Gnatenko 57d01a
@@ -1254,9 +1253,6 @@ class Interpreter():
Igor Gnatenko 57d01a
         first = self.ast.lines[0]
Igor Gnatenko 57d01a
         if not isinstance(first, mparser.FunctionNode) or first.func_name != 'project':
Igor Gnatenko 57d01a
             raise InvalidCode('First statement must be a call to project')
Igor Gnatenko 57d01a
-        args = self.reduce_arguments(first.args)[0]
Igor Gnatenko 57d01a
-        if len(args) < 2:
Igor Gnatenko 57d01a
-            raise InvalidArguments('Not enough arguments to project(). Needs at least the project name and one language')
Igor Gnatenko 57d01a
 
Igor Gnatenko 57d01a
 
Igor Gnatenko 57d01a
     def check_cross_stdlibs(self):
Igor Gnatenko 57d01a
@@ -1615,6 +1611,8 @@ class Interpreter():
Igor Gnatenko 57d01a
             self.build.project_name = args[0]
Igor Gnatenko 57d01a
             if self.environment.first_invocation and 'default_options' in kwargs:
Igor Gnatenko 57d01a
                 self.parse_default_options(kwargs['default_options'])
Igor Gnatenko 57d01a
+        if len(args) < 2:
Igor Gnatenko 57d01a
+            raise InvalidArguments('Not enough arguments to project(). Needs at least the project name and one language')
Igor Gnatenko 57d01a
         self.active_projectname = args[0]
Igor Gnatenko 57d01a
         self.project_version = kwargs.get('version', 'undefined')
Igor Gnatenko 57d01a
         proj_license = mesonlib.stringlistify(kwargs.get('license', 'unknown'))
Igor Gnatenko 57d01a
-- 
Igor Gnatenko 57d01a
2.10.1
Igor Gnatenko 57d01a