Update prefix-dependent defaults when project(default_options:) changes prefix
Fixes #2811
This commit is contained in:
parent
198251395a
commit
861cbc2e73
|
@ -1813,9 +1813,18 @@ to directly access options of other subprojects.''')
|
|||
if coredata.is_builtin_option(key):
|
||||
if self.subproject != '':
|
||||
continue # Only the master project is allowed to set global options.
|
||||
# If this was set on the command line, do not override.
|
||||
if not self.environment.had_argument_for(key):
|
||||
self.coredata.set_builtin_option(key, value)
|
||||
# If this was set on the command line, do not override.
|
||||
# If we are setting the prefix, then other options which
|
||||
# have prefix-dependent defaults need their value updating,
|
||||
# if they haven't been explicitly set (i.e. have their
|
||||
# default value)
|
||||
if key == 'prefix':
|
||||
for option in coredata.builtin_dir_noprefix_options:
|
||||
if not (self.environment.had_argument_for(option) or
|
||||
any([k.startswith(option + '=') for k in default_options])):
|
||||
self.coredata.set_builtin_option(option, coredata.get_builtin_option_default(option, value))
|
||||
else:
|
||||
# Option values set with subproject() default_options override those
|
||||
# set in project() default_options.
|
||||
|
|
Loading…
Reference in New Issue