Method: Xcodeproj::Project::Object::XCBuildConfiguration#resolve_build_setting
- Defined in:
- lib/xcodeproj/project/object/build_configuration.rb
#resolve_build_setting(key, root_target = nil, previous_key = nil) ⇒ String
Gets the value for the given build setting considering any configuration file present and resolving inheritance between them. It also takes in consideration environment variables.
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/xcodeproj/project/object/build_configuration.rb', line 93 def resolve_build_setting(key, root_target = nil, previous_key = nil) setting = build_settings[key] setting = resolve_variable_substitution(key, setting, root_target, previous_key) config_setting = config[key] config_setting = resolve_variable_substitution(key, config_setting, root_target, previous_key) project_setting = project.build_configuration_list[name] project_setting = nil if equal?(project_setting) project_setting &&= project_setting.resolve_build_setting(key, root_target) defaults = { 'CONFIGURATION' => name, 'SRCROOT' => project.project_dir.to_s, } # if previous_key is nil, it means that we're back at the first call, so we can replace our sentinel string # used to prevent recursion with nil if previous_key.nil? && setting == MUTUAL_RECURSION_SENTINEL setting = nil end [defaults[key], project_setting, config_setting, setting, ENV[key]].compact.reduce(nil) do |inherited, value| (value, inherited) end end |