Class: HMap::HMapHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/hmap/helper/hmap_helper.rb

Overview

Gen hmap file and vfs file

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(directory) ⇒ HMapHelper

Returns a new instance of HMapHelper.



135
136
137
138
139
140
# File 'lib/hmap/helper/hmap_helper.rb', line 135

def initialize(directory)
  puts "Current hmap files dir: #{directory}"
  @directory = Pathname(directory)
  @framework_entrys = []
  @headers = HMapHeaders.new
end

Instance Attribute Details

#directoryObject (readonly)

Returns the value of attribute directory.



133
134
135
# File 'lib/hmap/helper/hmap_helper.rb', line 133

def directory
  @directory
end

#framework_entrysObject (readonly)

Returns the value of attribute framework_entrys.



133
134
135
# File 'lib/hmap/helper/hmap_helper.rb', line 133

def framework_entrys
  @framework_entrys
end

#headersObject (readonly)

Returns the value of attribute headers.



133
134
135
# File 'lib/hmap/helper/hmap_helper.rb', line 133

def headers
  @headers
end

#i_headersObject (readonly)

Returns the value of attribute i_headers.



133
134
135
# File 'lib/hmap/helper/hmap_helper.rb', line 133

def i_headers
  @i_headers
end

#iquote_headersObject (readonly)

Returns the value of attribute iquote_headers.



133
134
135
# File 'lib/hmap/helper/hmap_helper.rb', line 133

def iquote_headers
  @iquote_headers
end

Instance Method Details

#add_framework_entry(configurations, platforms, name, framework_name, module_path, headers) ⇒ Object



165
166
167
168
169
170
# File 'lib/hmap/helper/hmap_helper.rb', line 165

def add_framework_entry(configurations, platforms,
                        name, framework_name, module_path, headers)
  entry = Target::FrameworkEntry.new_entrys_from_configurations_platforms(configurations, platforms, name,
                                                                          framework_name, module_path, headers)
  @framework_entrys += entry
end

#header_mappings(headers, headers_sandbox, module_name, type) ⇒ Object



172
173
174
# File 'lib/hmap/helper/hmap_helper.rb', line 172

def header_mappings(headers, headers_sandbox, module_name, type)
  @headers.add_headers(type, headers, module_name, headers_sandbox)
end

#write_hmap_vfs_to_paths(hmap_name = nil, vfs_name = '') ⇒ Object



160
161
162
163
# File 'lib/hmap/helper/hmap_helper.rb', line 160

def write_hmap_vfs_to_paths(hmap_name = nil, vfs_name = '')
  write_vfsfiles(vfs_name)
  write_hmapfile(hmap_name)
end

#write_hmapfile(name = nil) ⇒ Object



142
143
144
145
146
147
148
149
# File 'lib/hmap/helper/hmap_helper.rb', line 142

def write_hmapfile(name = nil)
  return if directory.nil?

  @headers.headers.each do |entry|
    path = directory.join(entry.file_name(name))
    hmap_write_headers_to_path(path, entry.headers)
  end
end

#write_vfsfiles(name = '') ⇒ Object



151
152
153
154
155
156
157
158
# File 'lib/hmap/helper/hmap_helper.rb', line 151

def write_vfsfiles(name = '')
  return if framework_entrys.empty?

  vfs_directory = directory.join(name).join('vfs')
  puts "Current vfs files dir: #{vfs_directory}"
  Target::FrameworkVFS.new(framework_entrys).write(vfs_directory)
  puts 'vfs files write finish.'
end

#xcconfig_header_setting(is_framework, path = nil, name = nil) ⇒ Object



176
177
178
179
180
181
182
183
184
185
186
187
# File 'lib/hmap/helper/hmap_helper.rb', line 176

def xcconfig_header_setting(is_framework, path = nil, name = nil)
  i_s = @headers.public_setting_for_options(path, name)
  setting_values = [[BuildSettingConstants::INGERITED, i_s].join(' ')]
  setting_values << xcconfig_vfs_setting(path) if is_framework
  setting_values << @headers.private_setting_for_options(path, name)
  setting_values.each_with_object({}) do |value, setting|
    setting.merge!({
                     BuildSettingConstants::OTHER_CFLAGS => value,
                     BuildSettingConstants::OTHER_CPLUSPLUSFLAGS => value
                   }) { |_, oldval, newval| [oldval, newval].join(' ') }
  end
end