Class: HMap::XcodeprojHelper
- Inherits:
-
Object
- Object
- HMap::XcodeprojHelper
- Defined in:
- lib/hmap/helper/xcconfig_helper.rb
Overview
A collection of xcodeproj Helper functions used throughout hmap.
Instance Attribute Summary collapse
-
#build_setting_key ⇒ Object
readonly
Returns the value of attribute build_setting_key.
-
#xcconfig_path ⇒ Object
readonly
Returns the value of attribute xcconfig_path.
Instance Method Summary collapse
- #change_hmap_build_setting_and_save(values, use_headermap: false, save_origin: false) ⇒ Object
- #change_xcconfig_build_setting(build_setting_key, setting, save_origin) {|@xcconfig| ... } ⇒ Object
- #change_xcconfig_build_settings(settings, save_origin) ⇒ Object
- #clean_hmap_build_setting_and_save ⇒ Object
- #clean_hmap_build_setting_to_xcconfig(build_setting) ⇒ Object
- #clean_hmap_build_settings_to_xcconfig(build_settings) ⇒ Object
-
#initialize(xcconfig) ⇒ XcodeprojHelper
constructor
A new instance of XcodeprojHelper.
- #save_build_setting_to_xcconfig(key) ⇒ Object
- #save_build_settings_to_xcconfig(build_settings) ⇒ Object
- #save_to_path(path = nil) ⇒ Object
Constructor Details
#initialize(xcconfig) ⇒ XcodeprojHelper
Returns a new instance of XcodeprojHelper.
10 11 12 13 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 10 def initialize(xcconfig) @xcconfig_path = xcconfig @xcconfig = Xcodeproj::Config.new(xcconfig_path) end |
Instance Attribute Details
#build_setting_key ⇒ Object (readonly)
Returns the value of attribute build_setting_key.
8 9 10 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 8 def build_setting_key @build_setting_key end |
#xcconfig_path ⇒ Object (readonly)
Returns the value of attribute xcconfig_path.
8 9 10 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 8 def xcconfig_path @xcconfig_path end |
Instance Method Details
#change_hmap_build_setting_and_save(values, use_headermap: false, save_origin: false) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 15 def change_hmap_build_setting_and_save(values, use_headermap: false, save_origin: false) ocf = values[BuildSettingConstants::OTHER_CFLAGS] ocppf = values[BuildSettingConstants::OTHER_CPLUSPLUSFLAGS] change_xcconfig_build_setting(BuildSettingConstants::OTHER_CFLAGS, ocf, true) change_xcconfig_build_setting(BuildSettingConstants::OTHER_CPLUSPLUSFLAGS, ocppf, true) if build_setting?(BuildSettingConstants::OTHER_CPLUSPLUSFLAGS) change_xcconfig_build_setting(BuildSettingConstants::USE_HEADERMAP, 'NO', false) unless use_headermap build_settings = [BuildSettingConstants::HEAD_SEARCH_PATHS, BuildSettingConstants::USER_HEADER_SEARCH_PATHS] if save_origin clean_hmap_build_settings_to_xcconfig(build_settings) else save_build_settings_to_xcconfig(build_settings) end save_to_path end |
#change_xcconfig_build_setting(build_setting_key, setting, save_origin) {|@xcconfig| ... } ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 36 def change_xcconfig_build_setting(build_setting_key, setting, save_origin) return if setting.nil? save_origin_build_setting = save_build_setting_to_xcconfig(build_setting_key) value = setting value = "#{value} ${#{save_key(build_setting_key)}}" if save_origin && !save_origin_build_setting.nil? @xcconfig.attributes[hmap_key(build_setting_key)] = value @xcconfig.attributes[build_setting_key] = "${#{hmap_key(build_setting_key)}}" yield(@xcconfig) if block_given? end |
#change_xcconfig_build_settings(settings, save_origin) ⇒ Object
30 31 32 33 34 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 30 def change_xcconfig_build_settings(settings, save_origin) settings.each do |key, value| change_xcconfig_build_setting(key.to_s, value, save_origin) end end |
#clean_hmap_build_setting_and_save ⇒ Object
61 62 63 64 65 66 67 68 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 61 def clean_hmap_build_setting_and_save clean_hmap_build_setting_to_xcconfig(BuildSettingConstants::OTHER_CFLAGS) clean_hmap_build_setting_to_xcconfig(BuildSettingConstants::OTHER_CPLUSPLUSFLAGS) clean_hmap_build_setting_to_xcconfig(BuildSettingConstants::HEAD_SEARCH_PATHS) clean_hmap_build_setting_to_xcconfig(BuildSettingConstants::USER_HEADER_SEARCH_PATHS) clean_hmap_build_setting_to_xcconfig(BuildSettingConstants::USE_HEADERMAP) save_to_path end |
#clean_hmap_build_setting_to_xcconfig(build_setting) ⇒ Object
75 76 77 78 79 80 81 82 83 84 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 75 def clean_hmap_build_setting_to_xcconfig(build_setting) save_origin_build_setting = @xcconfig.attributes[save_key(build_setting)] origin_build_setting = @xcconfig.attributes[build_setting] if save_origin_build_setting.nil? && !origin_build_setting.nil? && origin_build_setting.include?(hmap_key(build_setting)) @xcconfig.attributes.delete(build_setting) end @xcconfig.attributes[build_setting] = save_origin_build_setting unless save_origin_build_setting.nil? @xcconfig.attributes.delete(hmap_key(build_setting)) @xcconfig.attributes.delete(save_key(build_setting)) end |
#clean_hmap_build_settings_to_xcconfig(build_settings) ⇒ Object
70 71 72 73 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 70 def clean_hmap_build_settings_to_xcconfig(build_settings) build_settings ||= [] build_settings.each { |build_setting| clean_hmap_build_setting_to_xcconfig(build_setting) } end |
#save_build_setting_to_xcconfig(key) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 52 def save_build_setting_to_xcconfig(key) origin_build_setting = @xcconfig.attributes[key] if origin_build_setting.nil? || !origin_build_setting.include?(hmap_key(key)) @xcconfig.attributes[save_key(key)] = origin_build_setting unless origin_build_setting.nil? @xcconfig.attributes.delete(key) end @xcconfig.attributes[save_key(key)] end |
#save_build_settings_to_xcconfig(build_settings) ⇒ Object
47 48 49 50 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 47 def save_build_settings_to_xcconfig(build_settings) build_settings ||= [] build_settings.each { |key| save_build_setting_to_xcconfig(key) } end |
#save_to_path(path = nil) ⇒ Object
86 87 88 89 |
# File 'lib/hmap/helper/xcconfig_helper.rb', line 86 def save_to_path(path = nil) path = xcconfig_path if path.nil? @xcconfig.save_as(path) end |