aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/environment.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-02-22 21:07:03 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2016-02-22 21:28:34 +0200
commitd88223bd615ebce49cc662a3b48461de9c4780bc (patch)
treea1d0014977f5efac17e896b71f1c9e1865dc19c0 /mesonbuild/environment.py
parent6a90d5d58781734149c637eb46dda5d90ddc03f7 (diff)
downloadmeson-d88223bd615ebce49cc662a3b48461de9c4780bc.zip
meson-d88223bd615ebce49cc662a3b48461de9c4780bc.tar.gz
meson-d88223bd615ebce49cc662a3b48461de9c4780bc.tar.bz2
Do delayed argument setting properly this time.
Diffstat (limited to 'mesonbuild/environment.py')
-rw-r--r--mesonbuild/environment.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index c43c5e1..369ca20 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -58,7 +58,7 @@ class Environment():
log_dir = 'meson-logs'
coredata_file = os.path.join(private_dir, 'coredata.dat')
version_regex = '\d+(\.\d+)+(-[a-zA-Z0-9]+)?'
- def __init__(self, source_dir, build_dir, main_script_file, options):
+ def __init__(self, source_dir, build_dir, main_script_file, options, original_cmd_line_args):
assert(os.path.isabs(main_script_file))
assert(not os.path.islink(main_script_file))
self.source_dir = source_dir
@@ -80,6 +80,7 @@ class Environment():
else:
self.cross_info = None
self.cmd_line_options = options
+ self.original_cmd_line_args = original_cmd_line_args
# List of potential compilers.
if mesonlib.is_windows():
@@ -153,6 +154,18 @@ class Environment():
def is_library(self, fname):
return is_library(fname)
+ def had_argument_for(self, option):
+ trial1 = '--' + option
+ trial2 = '-D' + option
+ previous_is_plaind = False
+ for i in self.original_cmd_line_args:
+ if i.startswith(trial1) or i.startswith(trial2):
+ return True
+ if previous_is_plaind and i.startswith(option):
+ return True
+ previous_is_plaind = i == '-D'
+ return False
+
def merge_options(self, options):
for (name, value) in options.items():
if name not in self.coredata.user_options: