cocoapods-mapfile 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +52 -22
  3. data/bin/{hmap_writer → hmapfile} +2 -2
  4. data/lib/cocoapods_plugin.rb +18 -4
  5. data/lib/{cocoapods-hmap → hmap}/command/hmap_gen.rb +16 -8
  6. data/lib/{cocoapods-hmap → hmap}/command/hmap_reader.rb +12 -9
  7. data/lib/hmap/command/hmap_writer.rb +53 -0
  8. data/lib/hmap/command.rb +26 -0
  9. data/lib/{cocoapods-hmap → hmap}/exceptions.rb +0 -0
  10. data/lib/{cocoapods-hmap → hmap}/executable.rb +0 -0
  11. data/lib/{cocoapods-hmap → hmap}/framework/framework_vfs.rb +12 -13
  12. data/lib/hmap/helper/build_setting_constants.rb +13 -0
  13. data/lib/hmap/helper/hmap_helper.rb +212 -0
  14. data/lib/hmap/helper/pods_helper.rb +98 -0
  15. data/lib/{cocoapods-hmap → hmap/helper}/utils.rb +0 -4
  16. data/lib/hmap/helper/xcconfig_helper.rb +105 -0
  17. data/lib/{cocoapods-hmap → hmap}/hmap_reader.rb +1 -0
  18. data/lib/{cocoapods-hmap/hmap_save.rb → hmap/hmap_saver.rb} +11 -1
  19. data/lib/{cocoapods-hmap → hmap}/hmap_struct.rb +5 -4
  20. data/lib/hmap/hmap_writer.rb +99 -0
  21. data/lib/{cocoapods-hmap → hmap}/mapfile.rb +0 -0
  22. data/lib/hmap/pods_specification.rb +65 -0
  23. data/lib/hmap/version.rb +5 -0
  24. data/lib/hmap.rb +22 -0
  25. metadata +34 -34
  26. data/bin/hmap_reader +0 -12
  27. data/lib/cocoapods-hmap/helper/build_setting_helper.rb +0 -40
  28. data/lib/cocoapods-hmap/helper/pods_helper.rb +0 -104
  29. data/lib/cocoapods-hmap/helper/xcconfig_helper.rb +0 -82
  30. data/lib/cocoapods-hmap/hmap_writer.rb +0 -107
  31. data/lib/cocoapods-hmap/pods_specification.rb +0 -60
  32. data/lib/cocoapods-hmap/version.rb +0 -5
  33. data/lib/cocoapods-hmap/view.rb +0 -34
  34. data/lib/cocoapods_hmap.rb +0 -21
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'cocoapods'
4
+
5
+ module HMap
6
+ # A collection of Pods Helper functions used throughout cocoapods-hmap.
7
+ module Pods
8
+ # mapfile dir name
9
+ # @api private
10
+ HMAP_DIR = 'HMap'
11
+ HEADER_EXTENSIONS = %w[h hh hpp ipp tpp hxx def inl inc].join(',')
12
+ def self.hmap_files_dir
13
+ Pathname(File.join(Pod::Config.instance.sandbox.headers_root, HMAP_DIR))
14
+ end
15
+
16
+ def self.pods_hmap_files_dir
17
+ "${PODS_ROOT}/Headers/#{HMAP_DIR}"
18
+ end
19
+
20
+ def self.target_support_platforms(spec_path)
21
+ validator = Pod::Validator.new(spec_path, Pod::Config.instance.sources_manager.master.map(&:url))
22
+ validator.platforms_to_lint(validator.spec).map(&:name)
23
+ end
24
+
25
+ def self.paths_for_attribute(path)
26
+ return [] unless path.exist?
27
+
28
+ path_list = Pod::Sandbox::PathList.new(path)
29
+ path_list.glob("**/*.{#{HEADER_EXTENSIONS}}")
30
+ end
31
+
32
+ def self.headers_mappings_by_file_accessor(target, type = :source_files)
33
+ valid_accessors = target.file_accessors.reject { |fa| fa.spec.non_library_specification? }
34
+ valid_accessors.each_with_object({}) do |file_accessor, sum|
35
+ sum[:private_header_files] ||= []
36
+ sum[:public_header_files] ||= []
37
+ sum[:source_files] ||= []
38
+ case type
39
+ when :private_header_files
40
+ sum[:private_header_files] += file_accessor.private_headers
41
+ when :source_files
42
+ header_mappings_dir = file_accessor.spec_consumer.header_mappings_dir
43
+ headers = paths_for_attribute(file_accessor.path_list.root)
44
+ unless header_mappings_dir.nil?
45
+ headers = paths_for_attribute(file_accessor.path_list.root + header_mappings_dir)
46
+ end
47
+ sum[:private_header_files] += file_accessor.private_headers
48
+ sum[:public_header_files] += file_accessor.public_headers
49
+ sum[:public_header_files] << target.umbrella_header_path if target.build_as_framework?
50
+ sum[:source_files] << target.prefix_header_path if target.build_as_framework?
51
+ sum[:source_files] += (headers - file_accessor.public_headers - file_accessor.private_headers)
52
+ when :public_header_files
53
+ sum[:public_header_files] += file_accessor.public_headers
54
+ sum[:public_header_files] << target.umbrella_header_path if target.build_as_framework?
55
+ end
56
+ end
57
+ end
58
+
59
+ def self.headers_mappings_by_file(target, type = :source_files)
60
+ valid_accessors = target.file_accessors.reject { |fa| fa.spec.non_library_specification? }
61
+ valid_accessors.each_with_object([]) do |file_accessor, sum|
62
+ sum << case type
63
+ when :private_header_files then file_accessor.headers - file_accessor.public_headers
64
+ when :source_files then file_accessor.headers
65
+ when :public_header_files then file_accessor.public_headers
66
+ end
67
+ end.flatten.compact
68
+ end
69
+
70
+ def self.xcconfig_path_from(target)
71
+ raise ClassIncludedError.new(target.class, Pod::Target) unless target.is_a?(Pod::Target)
72
+
73
+ config_h = Pod::Target.instance_method(:build_settings).bind(target).call
74
+ config_h.each_key do |configuration_name|
75
+ xcconfig = target.xcconfig_path(configuration_name)
76
+ yield(xcconfig, target) if block_given?
77
+ end
78
+ end
79
+
80
+ def self.clean_hmap_setting(clean_hmap, *targets)
81
+ return clean_hmap unless clean_hmap
82
+
83
+ FileUtils.rm_rf(Pods.hmap_files_dir)
84
+ targets.each { |target| clean_hmap_build_setting(target, log: true) }
85
+ clean_hmap
86
+ end
87
+
88
+ def self.clean_hmap_build_setting(targets, log: false)
89
+ puts 'Clean build setting: '.blue if log
90
+ targets.each do |target|
91
+ xcconfig_path_from(target) do |xcconfig|
92
+ HMap::XcodeprojHelper.new(xcconfig).clean_hmap_build_setting_and_save
93
+ puts "\t -xcconfig path: #{xcconfig} clean finish." if log
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: false
2
2
 
3
- require 'cocoapods'
4
-
5
3
  module HMap
6
4
  # A collection of utility functions used throughout cocoapods-hmap.
7
5
  module Utils
@@ -94,5 +92,3 @@ module HMap
94
92
  end
95
93
  end
96
94
  end
97
-
98
-
@@ -0,0 +1,105 @@
1
+ # frozen_string_literal: true
2
+
3
+ module HMap
4
+ # A collection of xcodeproj Helper functions used throughout hmap.
5
+ class XcodeprojHelper
6
+ require 'xcodeproj'
7
+
8
+ attr_reader :xcconfig_path, :build_setting_key
9
+
10
+ def initialize(xcconfig)
11
+ @xcconfig_path = xcconfig
12
+ @xcconfig = Xcodeproj::Config.new(xcconfig_path)
13
+ end
14
+
15
+ def change_hmap_build_setting_and_save(values, use_headermap: false, save_origin: false)
16
+ ocf = values[BuildSettingConstants::OTHER_CFLAGS]
17
+ ocppf = values[BuildSettingConstants::OTHER_CPLUSPLUSFLAGS]
18
+ change_xcconfig_build_setting(BuildSettingConstants::OTHER_CFLAGS, ocf, true)
19
+ change_xcconfig_build_setting(BuildSettingConstants::OTHER_CPLUSPLUSFLAGS, ocppf, true) if build_setting?(BuildSettingConstants::OTHER_CPLUSPLUSFLAGS)
20
+ change_xcconfig_build_setting(BuildSettingConstants::USE_HEADERMAP, 'NO', false) unless use_headermap
21
+ build_settings = [BuildSettingConstants::HEAD_SEARCH_PATHS, BuildSettingConstants::USER_HEADER_SEARCH_PATHS]
22
+ if save_origin
23
+ clean_hmap_build_settings_to_xcconfig(build_settings)
24
+ else
25
+ save_build_settings_to_xcconfig(build_settings)
26
+ end
27
+ save_to_path
28
+ end
29
+
30
+ def change_xcconfig_build_settings(settings, save_origin)
31
+ settings.each do |key, value|
32
+ change_xcconfig_build_setting(key.to_s, value, save_origin)
33
+ end
34
+ end
35
+
36
+ def change_xcconfig_build_setting(build_setting_key, setting, save_origin)
37
+ return if setting.nil?
38
+
39
+ save_origin_build_setting = save_build_setting_to_xcconfig(build_setting_key)
40
+ value = setting
41
+ value = "#{value} ${#{save_key(build_setting_key)}}" if save_origin && !save_origin_build_setting.nil?
42
+ @xcconfig.attributes[hmap_key(build_setting_key)] = value
43
+ @xcconfig.attributes[build_setting_key] = "${#{hmap_key(build_setting_key)}}"
44
+ yield(@xcconfig) if block_given?
45
+ end
46
+
47
+ def save_build_settings_to_xcconfig(build_settings)
48
+ build_settings ||= []
49
+ build_settings.each { |key| save_build_setting_to_xcconfig(key) }
50
+ end
51
+
52
+ def save_build_setting_to_xcconfig(key)
53
+ origin_build_setting = @xcconfig.attributes[key]
54
+ if origin_build_setting.nil? || !origin_build_setting.include?(hmap_key(key))
55
+ @xcconfig.attributes[save_key(key)] = origin_build_setting unless origin_build_setting.nil?
56
+ @xcconfig.attributes.delete(key)
57
+ end
58
+ @xcconfig.attributes[save_key(key)]
59
+ end
60
+
61
+ def clean_hmap_build_setting_and_save
62
+ clean_hmap_build_setting_to_xcconfig(BuildSettingConstants::OTHER_CFLAGS)
63
+ clean_hmap_build_setting_to_xcconfig(BuildSettingConstants::OTHER_CPLUSPLUSFLAGS)
64
+ clean_hmap_build_setting_to_xcconfig(BuildSettingConstants::HEAD_SEARCH_PATHS)
65
+ clean_hmap_build_setting_to_xcconfig(BuildSettingConstants::USER_HEADER_SEARCH_PATHS)
66
+ clean_hmap_build_setting_to_xcconfig(BuildSettingConstants::USE_HEADERMAP)
67
+ save_to_path
68
+ end
69
+
70
+ def clean_hmap_build_settings_to_xcconfig(build_settings)
71
+ build_settings ||= []
72
+ build_settings.each { |build_setting| clean_hmap_build_setting_to_xcconfig(build_setting) }
73
+ end
74
+
75
+ def clean_hmap_build_setting_to_xcconfig(build_setting)
76
+ save_origin_build_setting = @xcconfig.attributes[save_key(build_setting)]
77
+ origin_build_setting = @xcconfig.attributes[build_setting]
78
+ if save_origin_build_setting.nil? && !origin_build_setting.nil? && origin_build_setting.include?(hmap_key(build_setting))
79
+ @xcconfig.attributes.delete(build_setting)
80
+ end
81
+ @xcconfig.attributes[build_setting] = save_origin_build_setting unless save_origin_build_setting.nil?
82
+ @xcconfig.attributes.delete(hmap_key(build_setting))
83
+ @xcconfig.attributes.delete(save_key(build_setting))
84
+ end
85
+
86
+ def save_to_path(path = nil)
87
+ path = xcconfig_path if path.nil?
88
+ @xcconfig.save_as(path)
89
+ end
90
+
91
+ private
92
+
93
+ def build_setting?(key)
94
+ !@xcconfig.attributes[key].nil?
95
+ end
96
+
97
+ def hmap_key(key)
98
+ "HMAP_PODS_#{key}"
99
+ end
100
+
101
+ def save_key(key)
102
+ "SAVE_#{key}"
103
+ end
104
+ end
105
+ end
@@ -17,6 +17,7 @@ module HMap
17
17
  DESC
18
18
  end
19
19
  end
20
+
20
21
  # hmap file reader
21
22
  class MapFileReader
22
23
  # @return [String, nil] the filename loaded from, or nil if loaded from a binary
@@ -4,6 +4,12 @@ module HMap
4
4
  class HMapSaver
5
5
  attr_reader :string_table, :buckets, :headers
6
6
 
7
+ def self.new_from_buckets(buckets)
8
+ saver = new
9
+ saver.add_to_buckets(buckets)
10
+ saver
11
+ end
12
+
7
13
  def initialize
8
14
  @string_table = "\0"
9
15
  @buckets = []
@@ -32,13 +38,17 @@ module HMap
32
38
  headers[key]
33
39
  end
34
40
 
35
- def add_to_buckets(*buckets)
41
+ def add_to_bucket(buckets)
36
42
  values = buckets.map { |key| add_to_headers(key) }
37
43
  bucket = HMapBucket.new(*values)
38
44
  bucket.uuid = Utils.string_downcase_hash(buckets.first)
39
45
  @buckets << bucket
40
46
  end
41
47
 
48
+ def add_to_buckets(buckets)
49
+ buckets.each { |bucket| add_to_bucket(bucket) }
50
+ end
51
+
42
52
  def write_to(path)
43
53
  MapFile.new(@string_table, @buckets).write(path)
44
54
  end
@@ -65,7 +65,7 @@ module HMap
65
65
  # @see https://clang.llvm.org/doxygen/structclang_1_1HMapHeader.html
66
66
  # @abstract
67
67
  class HMapHeader < HMapStructure
68
- # @return [HMap::HMapView, nil] the raw view associated with the load command,
68
+ # @return [HMap::HMapHeader, nil] the raw view associated with the load command,
69
69
  # or nil if the HMapHeader was created via {create}.
70
70
  attr_reader :num_entries, :magic, :version, :reserved, :strings_offset, :num_buckets, :max_value_length
71
71
 
@@ -112,6 +112,7 @@ module HMap
112
112
  }.merge super
113
113
  end
114
114
  end
115
+
115
116
  # HMapBucket structure.
116
117
  # @see https://clang.llvm.org/doxygen/structclang_1_1HMapHeader.html
117
118
  # @abstract
@@ -157,7 +158,7 @@ module HMap
157
158
  @header = populate_hmap_header(nums, entries)
158
159
  @buckets = add_bucket(buckets, nums)
159
160
  end
160
-
161
+
161
162
  def num_buckets(count, pow2)
162
163
  if count < 8
163
164
  pow2 <<= 1 if count * 4 >= pow2 * 3
@@ -181,8 +182,8 @@ module HMap
181
182
  def serialize
182
183
  @header.serialize + @buckets.inject('') do |sum, bucket|
183
184
  sum += if bucket.nil?
184
- empty_b = [HEADER_CONST[:HMAP_EMPTY_BUCKT_KEY]]*3
185
- empty_b.pack('L<3')
185
+ empty_b = [HEADER_CONST[:HMAP_EMPTY_BUCKT_KEY]] * 3
186
+ empty_b.pack('L<3')
186
187
  else
187
188
  bucket
188
189
  end
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+
3
+ # require 'cocoapods'
4
+
5
+ module HMap
6
+ # Helper module which returns handle method from MapFileWriter.
7
+ class MapFileWriter
8
+ # @param save_origin_header_search_paths save_origin_header_search_paths
9
+ # @param clean_hmap clean up all hmap setup
10
+ # @param allow_targets this targets will save origin build setting
11
+ # @param use_build_in_headermap option use Xcode header map
12
+ def initialize(save_origin_build_setting, clean_hmap, allow_targets, use_build_in_headermap: true)
13
+ @allow_targets = allow_targets
14
+ puts "hmap allow targets: #{allow_targets}" unless allow_targets.empty?
15
+ @save_origin_build_setting = save_origin_build_setting
16
+ @use_build_in_headermap = use_build_in_headermap
17
+ create_mapfile(clean_hmap)
18
+ end
19
+
20
+ private
21
+
22
+ # Integrates the projects mapfile associated
23
+ # with the App project and Pods project.
24
+ #
25
+ # @param [clean] clean hmap dir @see #podfile
26
+ # @return [void]
27
+ #
28
+ def create_mapfile(clean)
29
+ analyze = PodsSpecification.instance.analyze
30
+ targets = analyze.targets
31
+ pod_targets = analyze.pod_targets
32
+ return if Pods.clean_hmap_setting(clean, targets, pod_targets)
33
+
34
+ merge_all_pods_target_headers_mapfile(pod_targets)
35
+ merge_all_target_public_headers_mapfile(targets)
36
+ end
37
+
38
+ def vfs_from_target(target, helper)
39
+ return unless target.build_as_framework?
40
+
41
+ spec_path = target.specs.map(&:defined_in_file).uniq.first
42
+ platforms = Pods.target_support_platforms(spec_path)
43
+ headers = Pods.headers_mappings_by_file(target).flat_map { |h| h }
44
+ helper.add_framework_entry(target.user_build_configurations.keys,
45
+ platforms, target.name, target.product_basename, target.support_files_dir, headers)
46
+ end
47
+
48
+ def hmap_from_header_mappings(target, helper, type = :source_files)
49
+ Pods.headers_mappings_by_file_accessor(target, type).each do |key, headers|
50
+ helper.header_mappings(headers, Pod::Config.instance.sandbox.root.join(target.headers_sandbox),
51
+ target.product_basename, key)
52
+ end
53
+ end
54
+
55
+ def hmap_vfs_from_target(target, helper, type = :source_files)
56
+ vfs_from_target(target, helper)
57
+ hmap_from_header_mappings(target, helper, type)
58
+ end
59
+
60
+ def merge_all_target_public_headers_mapfile(targets)
61
+ helper = HMapHelper.new(Pods.hmap_files_dir)
62
+ targets.each do |target|
63
+ hmap_name = target.name.to_s
64
+ target.pod_targets.each do |p_target|
65
+ hmap_from_header_mappings(p_target, helper, :public_header_files)
66
+ end
67
+ change_hmap_build_setting_and_save(target, false, helper, hmap_name, save_origin: @save_origin_build_setting)
68
+ helper.write_hmap_vfs_to_paths(hmap_name)
69
+ end
70
+ end
71
+
72
+ def merge_all_pods_target_headers_mapfile(pod_targets)
73
+ return Pods.clean_hmap_build_setting(pod_targets) if @use_build_in_headermap
74
+
75
+ helper = HMapHelper.new(Pods.hmap_files_dir)
76
+ hmap_name = 'all-pods'
77
+ pod_targets.each do |target|
78
+ hmap_vfs_from_target(target, helper)
79
+ change_hmap_build_setting_and_save(target, target.build_as_framework?, helper, hmap_name,
80
+ save_origin: @save_origin_build_setting)
81
+ end
82
+ helper.write_hmap_vfs_to_paths(hmap_name)
83
+ end
84
+
85
+ # Cteate hmap files and vfs files
86
+ #
87
+ # @param [target] Pods project target @see Pod#PodTarget
88
+ # @param [hmap_helper] @see HMap#HMapHelper
89
+ # @param [hmap_name] hmap file contains pod targets header type
90
+ # @param [save_origin] save or not save origin build setting
91
+ def change_hmap_build_setting_and_save(target, build_as_framework, hmap_helper, hmap_name, save_origin: false)
92
+ save_origin = true if @allow_targets.include?(target.name)
93
+ setting = hmap_helper.xcconfig_header_setting(build_as_framework, Pods.pods_hmap_files_dir, hmap_name)
94
+ Pods.xcconfig_path_from(target) do |xcconfig|
95
+ XcodeprojHelper.new(xcconfig).change_hmap_build_setting_and_save(setting, save_origin: save_origin)
96
+ end
97
+ end
98
+ end
99
+ end
File without changes
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module HMap
4
+ class PodsSpecification
5
+ attr_reader :workspace_path, :analyze, :app_build_dir, :project_temp_dir
6
+
7
+ BUILD_DIR = 'BUILD_DIR'
8
+ PROJECT_TEMP_DIR = 'PROJECT_TEMP_DIR'
9
+
10
+ private_constant :BUILD_DIR
11
+ private_constant :PROJECT_TEMP_DIR
12
+
13
+ def self.instance
14
+ @instance ||= new
15
+ end
16
+
17
+ def initialize
18
+ @workspace_path = workspace
19
+ @analyze = pod_analyze
20
+ workspace_build_dir
21
+ end
22
+
23
+ private
24
+
25
+ def workspace_build_dir
26
+ workspace_dic = xcodebuild('-list', workspace_path)['workspace']
27
+ scheme = workspace_dic['schemes'].first
28
+ build_settings = xcodebuild('analyze', workspace_path, scheme).first['buildSettings']
29
+ @app_build_dir = build_settings[BUILD_DIR]
30
+ @project_temp_dir = build_settings[PROJECT_TEMP_DIR]
31
+ end
32
+
33
+ def xcodebuild(action, workspace, scheme = nil)
34
+ command = %W[#{action} -workspace #{workspace} -json]
35
+ command += %W[-scheme #{scheme} -showBuildSettings] unless scheme.nil?
36
+ results = Executable.execute_command('xcodebuild', command, false)
37
+ JSON.parse(results) unless results.nil?
38
+ end
39
+
40
+ def pod_analyze
41
+ podfile = Pod::Podfile.from_file(Pod::Config.instance.podfile_path)
42
+ lockfile = Pod::Lockfile.from_file(Pod::Config.instance.lockfile_path)
43
+ Pod::Installer::Analyzer.new(Pod::Config.instance.sandbox, podfile, lockfile).analyze
44
+ end
45
+
46
+ def workspace
47
+ podfile = Pod::Podfile.from_file(Pod::Config.instance.podfile_path)
48
+ user_project_paths = pod_analyze.targets.map(&:user_project_path).compact.uniq
49
+ if podfile.workspace_path
50
+ declared_path = podfile.workspace_path
51
+ path_with_ext = File.extname(declared_path) == '.xcworkspace' ? declared_path : "#{declared_path}.xcworkspace"
52
+ podfile_dir = File.dirname(podfile.defined_in_file || '')
53
+ absolute_path = File.expand_path(path_with_ext, podfile_dir)
54
+ Pathname.new(absolute_path)
55
+ elsif user_project_paths.count == 1
56
+ project = user_project_paths.first.basename('.xcodeproj')
57
+ Pod::Config.instance.installation_root + "#{project}.xcworkspace"
58
+ else
59
+ raise Informative, 'Could not automatically select an Xcode ' \
60
+ "workspace. Specify one in your Podfile like so:\n\n" \
61
+ " workspace 'path/to/Workspace.xcworkspace'\n"
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module HMap
4
+ VERSION = '0.2.2'
5
+ end
data/lib/hmap.rb ADDED
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # The primary namespace for cocoapods-hmap.
4
+ module HMap
5
+ require_relative 'hmap/version'
6
+ require_relative 'hmap/hmap_struct'
7
+ require_relative 'hmap/helper/pods_helper'
8
+ require_relative 'hmap/exceptions'
9
+ require_relative 'hmap/framework/framework_vfs'
10
+ require_relative 'hmap/hmap_saver'
11
+ require_relative 'hmap/pods_specification'
12
+ require_relative 'hmap/helper/xcconfig_helper'
13
+ require_relative 'hmap/helper/utils'
14
+ require_relative 'hmap/helper/hmap_helper'
15
+ require_relative 'hmap/helper/build_setting_constants'
16
+
17
+ autoload :Command, 'hmap/command'
18
+ autoload :MapFileReader, 'hmap/hmap_reader'
19
+ autoload :MapFileWriter, 'hmap/hmap_writer'
20
+ autoload :MapFile, 'hmap/mapfile'
21
+ autoload :Executable, 'hmap/executable'
22
+ end
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-mapfile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cat1237
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-10 00:00:00.000000000 Z
11
+ date: 2021-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.1'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: coveralls
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '10.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
@@ -86,47 +86,47 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 0.0.1
89
+ version: 0.0.3
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 0.0.1
96
+ version: 0.0.3
97
97
  description: header_reader lets your read Xcode header map file. header-writer lets
98
98
  your analyze the project pod dependencies and gen header map file for all pods.
99
99
  email:
100
100
  - wangson1237@outlook.com
101
101
  executables:
102
- - hmap_reader
103
- - hmap_writer
102
+ - hmapfile
104
103
  extensions: []
105
104
  extra_rdoc_files: []
106
105
  files:
107
106
  - LICENSE
108
107
  - README.md
109
- - bin/hmap_reader
110
- - bin/hmap_writer
111
- - lib/cocoapods-hmap/command/hmap_gen.rb
112
- - lib/cocoapods-hmap/command/hmap_reader.rb
113
- - lib/cocoapods-hmap/exceptions.rb
114
- - lib/cocoapods-hmap/executable.rb
115
- - lib/cocoapods-hmap/framework/framework_vfs.rb
116
- - lib/cocoapods-hmap/helper/build_setting_helper.rb
117
- - lib/cocoapods-hmap/helper/pods_helper.rb
118
- - lib/cocoapods-hmap/helper/xcconfig_helper.rb
119
- - lib/cocoapods-hmap/hmap_reader.rb
120
- - lib/cocoapods-hmap/hmap_save.rb
121
- - lib/cocoapods-hmap/hmap_struct.rb
122
- - lib/cocoapods-hmap/hmap_writer.rb
123
- - lib/cocoapods-hmap/mapfile.rb
124
- - lib/cocoapods-hmap/pods_specification.rb
125
- - lib/cocoapods-hmap/utils.rb
126
- - lib/cocoapods-hmap/version.rb
127
- - lib/cocoapods-hmap/view.rb
128
- - lib/cocoapods_hmap.rb
108
+ - bin/hmapfile
129
109
  - lib/cocoapods_plugin.rb
110
+ - lib/hmap.rb
111
+ - lib/hmap/command.rb
112
+ - lib/hmap/command/hmap_gen.rb
113
+ - lib/hmap/command/hmap_reader.rb
114
+ - lib/hmap/command/hmap_writer.rb
115
+ - lib/hmap/exceptions.rb
116
+ - lib/hmap/executable.rb
117
+ - lib/hmap/framework/framework_vfs.rb
118
+ - lib/hmap/helper/build_setting_constants.rb
119
+ - lib/hmap/helper/hmap_helper.rb
120
+ - lib/hmap/helper/pods_helper.rb
121
+ - lib/hmap/helper/utils.rb
122
+ - lib/hmap/helper/xcconfig_helper.rb
123
+ - lib/hmap/hmap_reader.rb
124
+ - lib/hmap/hmap_saver.rb
125
+ - lib/hmap/hmap_struct.rb
126
+ - lib/hmap/hmap_writer.rb
127
+ - lib/hmap/mapfile.rb
128
+ - lib/hmap/pods_specification.rb
129
+ - lib/hmap/version.rb
130
130
  homepage: https://github.com/Cat1237/cocoapods-hmap.git
131
131
  licenses:
132
132
  - MIT
data/bin/hmap_reader DELETED
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
-
5
- if $PROGRAM_NAME == __FILE__
6
- ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', __dir__)
7
- require 'bundler/setup'
8
- end
9
-
10
- require 'cocoapods-hmap/command/hmap_reader'
11
-
12
- Pod::Command::HMapReader.run(ARGV)