diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-09-18 20:42:38 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-18 20:42:38 +0300 |
commit | 9c834a4ecddfa6ba38249be501d0ad1b481e48b1 (patch) | |
tree | 8ecd0894b4886fdf65b8e879f38e1254e25f27b9 | |
parent | 02ad00b9826a037d87477af46dde07bfa26d0089 (diff) | |
parent | 56c566a38e37c5de12f3a5fa17184572c75fcfa0 (diff) | |
download | meson-9c834a4ecddfa6ba38249be501d0ad1b481e48b1.zip meson-9c834a4ecddfa6ba38249be501d0ad1b481e48b1.tar.gz meson-9c834a4ecddfa6ba38249be501d0ad1b481e48b1.tar.bz2 |
Merge pull request #2310 from hvenev/reconfigure-get_option
Fix get_option() for base options on reconfigure.
-rw-r--r-- | mesonbuild/interpreter.py | 9 | ||||
-rwxr-xr-x | run_unittests.py | 5 | ||||
-rw-r--r-- | test cases/common/47 options/meson.build | 1 | ||||
-rw-r--r-- | test cases/unit/13 reconfigure/meson.build | 5 |
4 files changed, 18 insertions, 2 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 9a1bb84..fc0e4ee 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1698,11 +1698,11 @@ class Interpreter(InterpreterBase): raise InterpreterException('Argument required for get_option.') optname = args[0] try: - return compilers.base_options[optname].value + return self.environment.get_coredata().base_options[optname].value except KeyError: pass try: - return self.environment.get_coredata().get_builtin_option(optname) + return self.environment.coredata.get_builtin_option(optname) except RuntimeError: pass try: @@ -1727,6 +1727,11 @@ class Interpreter(InterpreterBase): return self.coredata.external_args[lang] except KeyError: pass + # Some base options are not defined in some environments, return the default value. + try: + return compilers.base_options[optname].value + except KeyError: + pass raise InterpreterException('Tried to access unknown option "%s".' % optname) @noKwargs diff --git a/run_unittests.py b/run_unittests.py index 6487496..2626931 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -1948,6 +1948,11 @@ endian = 'little' crossfile.flush() self.init(testdir, ['--cross-file='+crossfile.name]) + def test_reconfigure(self): + testdir = os.path.join(self.unit_test_dir, '13 reconfigure') + self.init(testdir, ['-Db_lto=true'], default_args=False) + self.build('reconfigure') + class LinuxArmCrossCompileTests(BasePlatformTests): ''' diff --git a/test cases/common/47 options/meson.build b/test cases/common/47 options/meson.build index 4058748..2a764f0 100644 --- a/test cases/common/47 options/meson.build +++ b/test cases/common/47 options/meson.build @@ -12,6 +12,7 @@ if get_option('combo_opt') != 'combo' error('Incorrect value to combo option.') endif +# If the default changes, update test cases/unit/13 reconfigure if get_option('b_lto') != false error('Incorrect value in base option.') endif diff --git a/test cases/unit/13 reconfigure/meson.build b/test cases/unit/13 reconfigure/meson.build new file mode 100644 index 0000000..102180e --- /dev/null +++ b/test cases/unit/13 reconfigure/meson.build @@ -0,0 +1,5 @@ +project('reconfigure test', ['c']) + +if get_option('b_lto') != true + error('b_lto not set') +endif |