Blob Blame History Raw
From 4a06a1a6a71293decb83aee7adb74bc709493106 Mon Sep 17 00:00:00 2001
From: Philip Chimento <philip.chimento@gmail.com>
Date: Wed, 5 Jul 2017 22:57:09 -0700
Subject: [PATCH] build: Include configure script, be nicer about options

A configure script is not included in the SpiderMonkey tarball by
default. Also, we have to account for JHbuild passing extra unknown
options like --disable-Werror.

https://bugzilla.mozilla.org/show_bug.cgi?id=1379540
---
 js/src/configure                               | 9 +++++++++
 python/mozbuild/mozbuild/configure/__init__.py | 2 +-
 python/mozbuild/mozbuild/configure/options.py  | 6 +++++-
 3 files changed, 15 insertions(+), 2 deletions(-)
 create mode 100755 js/src/configure

diff --git a/python/mozbuild/mozbuild/configure/__init__.py b/python/mozbuild/mozbuild/configure/__init__.py
index 0fe640ca..09b460d3 100644
--- a/python/mozbuild/mozbuild/configure/__init__.py
+++ b/python/mozbuild/mozbuild/configure/__init__.py
@@ -356,7 +356,7 @@ def run(self, path=None):
         # All options should have been removed (handled) by now.
         for arg in self._helper:
             without_value = arg.split('=', 1)[0]
-            raise InvalidOptionError('Unknown option: %s' % without_value)
+            print('Ignoring', without_value, ': Unknown option')
 
         # Run the execution queue
         for func, args in self._execution_queue:
diff --git a/python/mozbuild/mozbuild/configure/options.py b/python/mozbuild/mozbuild/configure/options.py
index 4310c862..15bfe425 100644
--- a/python/mozbuild/mozbuild/configure/options.py
+++ b/python/mozbuild/mozbuild/configure/options.py
@@ -402,7 +402,11 @@ def __init__(self, environ=os.environ, argv=sys.argv):
 
     def add(self, arg, origin='command-line', args=None):
         assert origin != 'default'
-        prefix, name, values = Option.split_option(arg)
+        try:
+            prefix, name, values = Option.split_option(arg)
+        except InvalidOptionError as e:
+            print('Ignoring', arg, ':', e)
+            return
         if args is None:
             args = self._extra_args
         if args is self._extra_args and name in self._extra_args: