Blame 0013-Passing-default-library-both-should-override-project.patch

Igor Gnatenko ef6081
From 73adac113efb54643dd85474d0273391722ac422 Mon Sep 17 00:00:00 2001
Igor Gnatenko ef6081
From: Xavier Claessens <xavier.claessens@collabora.com>
Igor Gnatenko ef6081
Date: Fri, 27 Apr 2018 11:11:22 -0400
Igor Gnatenko ef6081
Subject: [PATCH 13/16] Passing --default-library=both should override project
Igor Gnatenko ef6081
 value
Igor Gnatenko ef6081
Igor Gnatenko ef6081
Looks like this has always been broken, had_argument_for() was checking
Igor Gnatenko ef6081
if we have --default_library instead of --default-library.
Igor Gnatenko ef6081
---
Igor Gnatenko ef6081
 mesonbuild/environment.py                   |  2 +-
Igor Gnatenko ef6081
 run_unittests.py                            | 10 ++++++++++
Igor Gnatenko ef6081
 test cases/unit/30 command line/meson.build |  4 +++-
Igor Gnatenko ef6081
 3 files changed, 14 insertions(+), 2 deletions(-)
Igor Gnatenko ef6081
Igor Gnatenko ef6081
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
Igor Gnatenko ef6081
index 6920b8d6..15b37378 100644
Igor Gnatenko ef6081
--- a/mesonbuild/environment.py
Igor Gnatenko ef6081
+++ b/mesonbuild/environment.py
Igor Gnatenko ef6081
@@ -373,7 +373,7 @@ class Environment:
Igor Gnatenko ef6081
         return is_library(fname)
Igor Gnatenko ef6081
 
Igor Gnatenko ef6081
     def had_argument_for(self, option):
Igor Gnatenko ef6081
-        trial1 = '--' + option
Igor Gnatenko ef6081
+        trial1 = coredata.get_builtin_option_cmdline_name(option)
Igor Gnatenko ef6081
         trial2 = '-D' + option
Igor Gnatenko ef6081
         previous_is_plaind = False
Igor Gnatenko ef6081
         for i in self.original_cmd_line_args:
Igor Gnatenko ef6081
diff --git a/run_unittests.py b/run_unittests.py
Igor Gnatenko ef6081
index 2a466db0..ff8d7c66 100755
Igor Gnatenko ef6081
--- a/run_unittests.py
Igor Gnatenko ef6081
+++ b/run_unittests.py
Igor Gnatenko ef6081
@@ -2026,6 +2026,7 @@ recommended as it can lead to undefined behaviour on some platforms''')
Igor Gnatenko ef6081
         # Verify default values when passing no args
Igor Gnatenko ef6081
         self.init(testdir)
Igor Gnatenko ef6081
         obj = mesonbuild.coredata.load(self.builddir)
Igor Gnatenko ef6081
+        self.assertEqual(obj.builtins['default_library'].value, 'static')
Igor Gnatenko ef6081
         self.assertEqual(obj.builtins['warning_level'].value, '1')
Igor Gnatenko ef6081
         self.wipe()
Igor Gnatenko ef6081
 
Igor Gnatenko ef6081
@@ -2059,6 +2060,15 @@ recommended as it can lead to undefined behaviour on some platforms''')
Igor Gnatenko ef6081
             self.assertIn('passed as both', e.stderr)
Igor Gnatenko ef6081
         self.wipe()
Igor Gnatenko ef6081
 
Igor Gnatenko ef6081
+        # --default-library should override default value from project()
Igor Gnatenko ef6081
+        self.init(testdir, extra_args=['--default-library=both'])
Igor Gnatenko ef6081
+        obj = mesonbuild.coredata.load(self.builddir)
Igor Gnatenko ef6081
+        self.assertEqual(obj.builtins['default_library'].value, 'both')
Igor Gnatenko ef6081
+        self.setconf('--default-library=shared')
Igor Gnatenko ef6081
+        obj = mesonbuild.coredata.load(self.builddir)
Igor Gnatenko ef6081
+        self.assertEqual(obj.builtins['default_library'].value, 'shared')
Igor Gnatenko ef6081
+        self.wipe()
Igor Gnatenko ef6081
+
Igor Gnatenko ef6081
 
Igor Gnatenko ef6081
 class FailureTests(BasePlatformTests):
Igor Gnatenko ef6081
     '''
Igor Gnatenko ef6081
diff --git a/test cases/unit/30 command line/meson.build b/test cases/unit/30 command line/meson.build
Igor Gnatenko ef6081
index 2ab21b6e..1006f49c 100644
Igor Gnatenko ef6081
--- a/test cases/unit/30 command line/meson.build	
Igor Gnatenko ef6081
+++ b/test cases/unit/30 command line/meson.build	
Igor Gnatenko ef6081
@@ -1 +1,3 @@
Igor Gnatenko ef6081
-project('command line test', 'c')
Igor Gnatenko ef6081
+project('command line test', 'c',
Igor Gnatenko ef6081
+  default_options : ['default_library=static']
Igor Gnatenko ef6081
+)
Igor Gnatenko ef6081
-- 
Igor Gnatenko ef6081
2.17.0
Igor Gnatenko ef6081