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.
- checksums.yaml +4 -4
- data/README.md +52 -22
- data/bin/{hmap_writer → hmapfile} +2 -2
- data/lib/cocoapods_plugin.rb +18 -4
- data/lib/{cocoapods-hmap → hmap}/command/hmap_gen.rb +16 -8
- data/lib/{cocoapods-hmap → hmap}/command/hmap_reader.rb +12 -9
- data/lib/hmap/command/hmap_writer.rb +53 -0
- data/lib/hmap/command.rb +26 -0
- data/lib/{cocoapods-hmap → hmap}/exceptions.rb +0 -0
- data/lib/{cocoapods-hmap → hmap}/executable.rb +0 -0
- data/lib/{cocoapods-hmap → hmap}/framework/framework_vfs.rb +12 -13
- data/lib/hmap/helper/build_setting_constants.rb +13 -0
- data/lib/hmap/helper/hmap_helper.rb +212 -0
- data/lib/hmap/helper/pods_helper.rb +98 -0
- data/lib/{cocoapods-hmap → hmap/helper}/utils.rb +0 -4
- data/lib/hmap/helper/xcconfig_helper.rb +105 -0
- data/lib/{cocoapods-hmap → hmap}/hmap_reader.rb +1 -0
- data/lib/{cocoapods-hmap/hmap_save.rb → hmap/hmap_saver.rb} +11 -1
- data/lib/{cocoapods-hmap → hmap}/hmap_struct.rb +5 -4
- data/lib/hmap/hmap_writer.rb +99 -0
- data/lib/{cocoapods-hmap → hmap}/mapfile.rb +0 -0
- data/lib/hmap/pods_specification.rb +65 -0
- data/lib/hmap/version.rb +5 -0
- data/lib/hmap.rb +22 -0
- metadata +34 -34
- data/bin/hmap_reader +0 -12
- data/lib/cocoapods-hmap/helper/build_setting_helper.rb +0 -40
- data/lib/cocoapods-hmap/helper/pods_helper.rb +0 -104
- data/lib/cocoapods-hmap/helper/xcconfig_helper.rb +0 -82
- data/lib/cocoapods-hmap/hmap_writer.rb +0 -107
- data/lib/cocoapods-hmap/pods_specification.rb +0 -60
- data/lib/cocoapods-hmap/version.rb +0 -5
- data/lib/cocoapods-hmap/view.rb +0 -34
- data/lib/cocoapods_hmap.rb +0 -21
@@ -1,40 +0,0 @@
|
|
1
|
-
module HMap
|
2
|
-
# A collection of build setting functions used throughout cocoapods-hmap.
|
3
|
-
module BuildSettingHelper
|
4
|
-
def self.clean_hmap(clean_hmap, *targets)
|
5
|
-
return clean_hmap unless clean_hmap
|
6
|
-
|
7
|
-
FileUtils.rm_rf(Helper::Pods.hmap_files_dir)
|
8
|
-
targets.each { |target| clean_other_c_flags_build_setting(target) }
|
9
|
-
clean_hmap
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.target_xcconfig_path(targets)
|
13
|
-
targets.each do |target|
|
14
|
-
raise ClassIncludedError.new(target.class, Pod::Target) unless target.is_a?(Pod::Target)
|
15
|
-
|
16
|
-
config_h = Pod::Target.instance_method(:build_settings).bind(target).call
|
17
|
-
config_h.each_key do |configuration_name|
|
18
|
-
xcconfig = target.xcconfig_path(configuration_name)
|
19
|
-
yield(xcconfig, target) if block_given?
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.clean_other_c_flags_build_setting(targets)
|
25
|
-
target_xcconfig_path(targets) do |xc, _|
|
26
|
-
c = HMap::XcodeprojHelper.new(xc)
|
27
|
-
c.clean_hmap_xcconfig_other_c_flags_and_save
|
28
|
-
puts "\t -xcconfig path: #{xc} clean finish."
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def self.change_other_c_flags_xcconfig_build_settings(hmap_h, targets, use_headermap: false, save_origin: true)
|
33
|
-
target_xcconfig_path(targets) do |xc, target|
|
34
|
-
c = HMap::XcodeprojHelper.new(xc)
|
35
|
-
c.change_xcconfig_other_c_flags_and_save(hmap_h, target.build_as_framework?, use_headermap: use_headermap,
|
36
|
-
save_origin: save_origin)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,104 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'yaml_vfs'
|
4
|
-
require 'cocoapods'
|
5
|
-
|
6
|
-
module HMap
|
7
|
-
# A collection of Helper functions used throughout cocoapods-hmap.
|
8
|
-
module Helper
|
9
|
-
# A collection of Pods Helper functions used throughout cocoapods-hmap.
|
10
|
-
module Pods
|
11
|
-
|
12
|
-
def self.hmap_files_dir
|
13
|
-
Pathname(File.join(Pod::Config.instance.sandbox.headers_root, HMAP_DIR))
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.vfs_files_dir
|
17
|
-
hmap_files_dir.join('vfs')
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.hmap_files_paths(name)
|
21
|
-
[hmap_files_dir.join("#{name}.hmap"), hmap_files_dir.join("#{name}-iquote.hmap")]
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.pods_hmap_files_dir
|
25
|
-
"${PODS_ROOT}/Headers/#{HMAP_DIR}"
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.write_vfs_yaml(targets)
|
29
|
-
es = targets.flat_map do |target|
|
30
|
-
if target.build_as_framework?
|
31
|
-
spec_path = target.specs.map(&:defined_in_file).uniq.first
|
32
|
-
platforms = target_support_platforms(spec_path)
|
33
|
-
headers = headers_mappings_by_file_accessor(target)
|
34
|
-
headers << target.umbrella_header_path
|
35
|
-
Target::FrameworkEntry.new_entrys_from_configurations_platforms(target.user_build_configurations.keys, platforms, target.name, target.product_module_name, target.support_files_dir, headers)
|
36
|
-
end
|
37
|
-
end.compact
|
38
|
-
Target::FrameworkVFS.new(es).write
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.target_support_platforms(spec_path)
|
42
|
-
validator = Pod::Validator.new(spec_path, Pod::Config.instance.sources_manager.master.map(&:url))
|
43
|
-
validator.platforms_to_lint(validator.spec).map(&:name)
|
44
|
-
end
|
45
|
-
|
46
|
-
def self.headers_mappings_by_file_accessor(target, type = :source_files)
|
47
|
-
valid_accessors = target.file_accessors.reject { |fa| fa.spec.non_library_specification? }
|
48
|
-
valid_accessors.each_with_object([]) do |file_accessor, sum|
|
49
|
-
sum << case type
|
50
|
-
when :private_header_files then file_accessor.headers - file_accessor.public_headers
|
51
|
-
when :source_files then file_accessor.headers
|
52
|
-
when :public_header_files then file_accessor.public_headers
|
53
|
-
end
|
54
|
-
end.flatten
|
55
|
-
end
|
56
|
-
|
57
|
-
def self.header_mappings(target, type = :source_files)
|
58
|
-
mappings = {}
|
59
|
-
h_headers = lambda { |headers, h_type|
|
60
|
-
root = Pod::Config.instance.sandbox.root.join(target.headers_sandbox)
|
61
|
-
case h_type
|
62
|
-
when :private_header_files
|
63
|
-
headers << target.prefix_header_path if target.build_as_framework?
|
64
|
-
headers.each do |header|
|
65
|
-
mappings[HEAD_SEARCH_IQUOTE] ||= []
|
66
|
-
mappings[HEAD_SEARCH_IQUOTE] << [header.basename.to_s, "#{header.dirname}/", header.basename.to_s]
|
67
|
-
r_header_path = header.relative_path_from(root)
|
68
|
-
mappings[HEAD_SEARCH_IQUOTE] << [r_header_path.to_s, "#{header.dirname}/", header.basename.to_s]
|
69
|
-
end
|
70
|
-
when :public_header_files
|
71
|
-
headers << target.umbrella_header_path if target.build_as_framework?
|
72
|
-
headers.each do |header|
|
73
|
-
mappings[HEAD_SEARCH_IQUOTE] ||= []
|
74
|
-
mappings[HEAD_SEARCH_IQUOTE] << [header.basename.to_s, "#{target.product_module_name}/",
|
75
|
-
header.basename.to_s]
|
76
|
-
r_header_path = header.relative_path_from(root)
|
77
|
-
mappings[HEAD_SEARCH_IQUOTE] << [r_header_path.to_s, "#{header.dirname}/", header.basename.to_s]
|
78
|
-
mappings[HEAD_SEARCH_I] ||= []
|
79
|
-
mappings[HEAD_SEARCH_I] << [r_header_path.to_s, "#{header.dirname}/", header.basename.to_s]
|
80
|
-
mappings[HEAD_SEARCH_I] << [header.basename.to_s, "#{target.product_module_name}/",
|
81
|
-
header.basename.to_s]
|
82
|
-
|
83
|
-
mappings[HEAD_SEARCH_I] << ["#{target.product_module_name}/#{header.basename}", "#{header.dirname}/",
|
84
|
-
header.basename.to_s]
|
85
|
-
end
|
86
|
-
end
|
87
|
-
}
|
88
|
-
|
89
|
-
valid_accessors = target.file_accessors.reject { |fa| fa.spec.non_library_specification? }
|
90
|
-
valid_accessors.each do |file_accessor|
|
91
|
-
case type
|
92
|
-
when :private_header_files then h_headers.call(file_accessor.headers - file_accessor.public_headers,
|
93
|
-
:private_header_files)
|
94
|
-
when :source_files
|
95
|
-
h_headers.call(file_accessor.headers - file_accessor.public_headers, :private_header_files)
|
96
|
-
h_headers.call(file_accessor.public_headers, :public_header_files)
|
97
|
-
when :public_header_files then h_headers.call(file_accessor.public_headers, :public_header_files)
|
98
|
-
end
|
99
|
-
end
|
100
|
-
mappings
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
@@ -1,82 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module HMap
|
4
|
-
# A collection of Helper functions used throughout cocoapods-hmap.
|
5
|
-
class XcodeprojHelper
|
6
|
-
require 'xcodeproj'
|
7
|
-
OTHER_CFLAGS = 'OTHER_CFLAGS'
|
8
|
-
HEAD_SEARCH_PATHS = 'HEADER_SEARCH_PATHS'
|
9
|
-
# A collection of Pods Helper functions used throughout cocoapods-hmap.
|
10
|
-
attr_reader :xcconfig_path, :build_setting_key
|
11
|
-
|
12
|
-
def initialize(xcconfig)
|
13
|
-
@xcconfig_path = xcconfig
|
14
|
-
@xcconfig = Xcodeproj::Config.new(xcconfig_path)
|
15
|
-
end
|
16
|
-
|
17
|
-
def change_xcconfig_other_c_flags_and_save(values, build_as_framework, use_headermap: false, save_origin: true)
|
18
|
-
setting = values.flat_map do |config|
|
19
|
-
['$(inherited)', "-I\"#{Helper::Pods.pods_hmap_files_dir}/#{config}.hmap\"",
|
20
|
-
"-iquote \"#{Helper::Pods.pods_hmap_files_dir}/#{config}-iquote.hmap\""]
|
21
|
-
end
|
22
|
-
if build_as_framework
|
23
|
-
setting << "-ivfsoverlay \"#{Helper::Pods.pods_hmap_files_dir}/vfs/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/all-product-headers.yaml\""
|
24
|
-
end
|
25
|
-
change_xcconfig_build_setting(OTHER_CFLAGS, setting.join(' '), save_origin) do |xcconfig|
|
26
|
-
xcconfig.attributes['USE_HEADERMAP'] = 'NO' unless use_headermap
|
27
|
-
save_build_setting_to_xcconfig(HMap::XcodeprojHelper::HEAD_SEARCH_PATHS)
|
28
|
-
end
|
29
|
-
save_to_path
|
30
|
-
end
|
31
|
-
|
32
|
-
def change_xcconfig_build_setting(build_setting_key, setting, save_origin)
|
33
|
-
origin_build_setting = @xcconfig.attributes[build_setting_key]
|
34
|
-
save_origin_build_setting = save_build_setting_to_xcconfig(build_setting_key)
|
35
|
-
hmap_build_setting = @xcconfig.attributes[hmap_key(build_setting_key)]
|
36
|
-
value = setting
|
37
|
-
value = "#{value} ${#{save_key(build_setting_key)}}" if save_origin && !save_origin_build_setting.nil?
|
38
|
-
@xcconfig.attributes[hmap_key(build_setting_key)] = value
|
39
|
-
@xcconfig.attributes[build_setting_key] = "${#{hmap_key(build_setting_key)}}"
|
40
|
-
yield(@xcconfig) if block_given?
|
41
|
-
end
|
42
|
-
|
43
|
-
def save_build_setting_to_xcconfig(key)
|
44
|
-
origin_build_setting = @xcconfig.attributes[key]
|
45
|
-
if origin_build_setting.nil? || !origin_build_setting.include?(hmap_key(key))
|
46
|
-
@xcconfig.attributes[save_key(key)] = origin_build_setting unless origin_build_setting.nil?
|
47
|
-
@xcconfig.attributes.delete(key)
|
48
|
-
end
|
49
|
-
@xcconfig.attributes[save_key(key)]
|
50
|
-
end
|
51
|
-
|
52
|
-
def clean_hmap_xcconfig_other_c_flags_and_save
|
53
|
-
clean_hmap_build_setting_to_xcconfig(OTHER_CFLAGS)
|
54
|
-
clean_hmap_build_setting_to_xcconfig(HEAD_SEARCH_PATHS)
|
55
|
-
@xcconfig.attributes['USE_HEADERMAP'] = 'YES'
|
56
|
-
save_to_path
|
57
|
-
end
|
58
|
-
|
59
|
-
def clean_hmap_build_setting_to_xcconfig(build_setting)
|
60
|
-
save_origin_build_setting = @xcconfig.attributes[save_key(build_setting)]
|
61
|
-
origin_build_setting = @xcconfig.attributes[build_setting]
|
62
|
-
@xcconfig.attributes[build_setting] = save_origin_build_setting unless save_origin_build_setting.nil?
|
63
|
-
@xcconfig.attributes.delete(hmap_key(build_setting))
|
64
|
-
@xcconfig.attributes.delete(save_key(build_setting))
|
65
|
-
end
|
66
|
-
|
67
|
-
def save_to_path(path = nil)
|
68
|
-
path = xcconfig_path if path.nil?
|
69
|
-
@xcconfig.save_as(path)
|
70
|
-
end
|
71
|
-
|
72
|
-
private
|
73
|
-
|
74
|
-
def hmap_key(key)
|
75
|
-
"HMAP_PODS_#{key}"
|
76
|
-
end
|
77
|
-
|
78
|
-
def save_key(key)
|
79
|
-
"SAVE_#{key}"
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
@@ -1,107 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'cocoapods'
|
4
|
-
|
5
|
-
module Pod
|
6
|
-
Validator.class_eval do
|
7
|
-
def results=(v)
|
8
|
-
@results = v
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
module HMap
|
14
|
-
# mapfile dir name
|
15
|
-
# @api private
|
16
|
-
HMAP_DIR = 'HMap'
|
17
|
-
# mapfile type
|
18
|
-
# @note public => pods public,
|
19
|
-
# private => pods private,
|
20
|
-
# all => public + private + extra.
|
21
|
-
# @api private
|
22
|
-
HMMAP_TYPE = {
|
23
|
-
public_header_files: 'public',
|
24
|
-
private_header_files: 'private',
|
25
|
-
source_files: 'all'
|
26
|
-
}.freeze
|
27
|
-
HEAD_SEARCH_I = '-I'
|
28
|
-
HEAD_SEARCH_IQUOTE = '-iquote'
|
29
|
-
# build setting HEAD_SEARCH_PATHs
|
30
|
-
HEAD_SEARCH_PATHS = 'HEADER_SEARCH_PATHS'
|
31
|
-
|
32
|
-
# Helper module which returns handle method from MapFileWriter.
|
33
|
-
class MapFileWriter
|
34
|
-
# @param save_origin_header_search_paths save_origin_header_search_paths
|
35
|
-
# @param clean_hmap clean up all hmap setup
|
36
|
-
def initialize(save_origin_header_search_paths, clean_hmap)
|
37
|
-
@save_origin_header_search_paths = save_origin_header_search_paths
|
38
|
-
@hmap_saver = HMapSaver.new
|
39
|
-
@hmap_saver_iquote = HMapSaver.new
|
40
|
-
create_mapfile(clean_hmap)
|
41
|
-
end
|
42
|
-
|
43
|
-
private
|
44
|
-
|
45
|
-
# Integrates the projects mapfile associated
|
46
|
-
# with the App project and Pods project.
|
47
|
-
#
|
48
|
-
# @param [clean] clean hmap dir @see #podfile
|
49
|
-
# @return [void]
|
50
|
-
#
|
51
|
-
def create_mapfile(clean)
|
52
|
-
puts "Current hmap files dir: #{Helper::Pods.hmap_files_dir}"
|
53
|
-
puts "Current vfs files dir: #{Helper::Pods.vfs_files_dir}"
|
54
|
-
analyze = PodsSpecification.instance.analyze
|
55
|
-
targets = analyze.targets
|
56
|
-
pod_targets = analyze.pod_targets
|
57
|
-
return if BuildSettingHelper.clean_hmap(clean, targets, pod_targets)
|
58
|
-
|
59
|
-
merge_all_pods_target_headers_mapfile(pod_targets)
|
60
|
-
merge_all_target_public_headers_mapfile(targets)
|
61
|
-
end
|
62
|
-
|
63
|
-
def from_header_mappings(target, type = :source_files)
|
64
|
-
headers = Helper::Pods.header_mappings(target, type)
|
65
|
-
headers[HEAD_SEARCH_IQUOTE].each { |value| @hmap_saver_iquote.add_to_buckets(*value) }
|
66
|
-
headers[HEAD_SEARCH_I].each { |value| @hmap_saver.add_to_buckets(*value) }
|
67
|
-
end
|
68
|
-
|
69
|
-
def merge_all_target_public_headers_mapfile(targets)
|
70
|
-
names = targets.map do |target|
|
71
|
-
hmap_name = "all-public-#{target.name}"
|
72
|
-
create_hmap_vfs_files(target.pod_targets, hmap_name, :public_header_files)
|
73
|
-
hmap_name
|
74
|
-
end
|
75
|
-
BuildSettingHelper.change_other_c_flags_xcconfig_build_settings(names, targets,
|
76
|
-
save_origin: @save_origin_header_search_paths)
|
77
|
-
end
|
78
|
-
|
79
|
-
def merge_all_pods_target_headers_mapfile(pod_targets)
|
80
|
-
hmap_name = 'all-pods-all-header'
|
81
|
-
create_hmap_vfs_files(pod_targets, hmap_name, :source_files)
|
82
|
-
BuildSettingHelper.change_other_c_flags_xcconfig_build_settings([hmap_name], pod_targets,
|
83
|
-
save_origin: @save_origin_header_search_paths)
|
84
|
-
end
|
85
|
-
|
86
|
-
# Cteate hmap files and vfs files
|
87
|
-
#
|
88
|
-
# @param [pod_targets] Pods project all target @see Pod#PodTarget
|
89
|
-
# @param [hmap_name] -I hmap file name and -iquote hmap file name
|
90
|
-
# @param [hmap_type] hmap file contains pod targets header type
|
91
|
-
#
|
92
|
-
def create_hmap_vfs_files(pod_targets, hmap_name, hmap_type = :public_header_files)
|
93
|
-
pod_targets.each { |target| from_header_mappings(target, hmap_type) }
|
94
|
-
Helper::Pods.write_vfs_yaml(pod_targets)
|
95
|
-
write_hmap_files(*Helper::Pods.hmap_files_paths(hmap_name))
|
96
|
-
end
|
97
|
-
|
98
|
-
def write_hmap_files(hmap_path_i, hmap_path_iquote)
|
99
|
-
print "\t - Save hmap file to path: "
|
100
|
-
puts hmap_path_i.to_s.yellow
|
101
|
-
print "\t - Save hmap file to path: "
|
102
|
-
puts hmap_path_iquote.to_s.yellow
|
103
|
-
@hmap_saver.write_to(hmap_path_i)
|
104
|
-
@hmap_saver_iquote.write_to(hmap_path_iquote)
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
module HMap
|
2
|
-
class PodsSpecification
|
3
|
-
attr_reader :workspace_path, :analyze, :app_build_dir, :project_temp_dir
|
4
|
-
|
5
|
-
BUILD_DIR = 'BUILD_DIR'
|
6
|
-
PROJECT_TEMP_DIR = 'PROJECT_TEMP_DIR'
|
7
|
-
|
8
|
-
def self.instance
|
9
|
-
@instance ||= new
|
10
|
-
end
|
11
|
-
|
12
|
-
def initialize
|
13
|
-
@workspace_path = workspace
|
14
|
-
@analyze = pod_analyze
|
15
|
-
workspace_build_dir
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def workspace_build_dir
|
21
|
-
workspace_dic = xcodebuild('-list', workspace_path)['workspace']
|
22
|
-
scheme = workspace_dic['schemes'].first
|
23
|
-
build_settings = xcodebuild('analyze', workspace_path, scheme).first['buildSettings']
|
24
|
-
@app_build_dir = build_settings[BUILD_DIR]
|
25
|
-
@project_temp_dir = build_settings[PROJECT_TEMP_DIR]
|
26
|
-
end
|
27
|
-
|
28
|
-
def xcodebuild(action, workspace, scheme = nil)
|
29
|
-
command = %W[#{action} -workspace #{workspace} -json]
|
30
|
-
command += %W[-scheme #{scheme} -showBuildSettings] unless scheme.nil?
|
31
|
-
results = Executable.execute_command('xcodebuild', command, false)
|
32
|
-
JSON.parse(results) unless results.nil?
|
33
|
-
end
|
34
|
-
|
35
|
-
def pod_analyze
|
36
|
-
podfile = Pod::Podfile.from_file(Pod::Config.instance.podfile_path)
|
37
|
-
lockfile = Pod::Lockfile.from_file(Pod::Config.instance.lockfile_path)
|
38
|
-
Pod::Installer::Analyzer.new(Pod::Config.instance.sandbox, podfile, lockfile).analyze
|
39
|
-
end
|
40
|
-
|
41
|
-
def workspace
|
42
|
-
podfile = Pod::Podfile.from_file(Pod::Config.instance.podfile_path)
|
43
|
-
user_project_paths = pod_analyze.targets.map(&:user_project_path).compact.uniq
|
44
|
-
if podfile.workspace_path
|
45
|
-
declared_path = podfile.workspace_path
|
46
|
-
path_with_ext = File.extname(declared_path) == '.xcworkspace' ? declared_path : "#{declared_path}.xcworkspace"
|
47
|
-
podfile_dir = File.dirname(podfile.defined_in_file || '')
|
48
|
-
absolute_path = File.expand_path(path_with_ext, podfile_dir)
|
49
|
-
Pathname.new(absolute_path)
|
50
|
-
elsif user_project_paths.count == 1
|
51
|
-
project = user_project_paths.first.basename('.xcodeproj')
|
52
|
-
Pod::Config.instance.installation_root + "#{project}.xcworkspace"
|
53
|
-
else
|
54
|
-
raise Informative, 'Could not automatically select an Xcode ' \
|
55
|
-
"workspace. Specify one in your Podfile like so:\n\n" \
|
56
|
-
" workspace 'path/to/Workspace.xcworkspace'\n"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
data/lib/cocoapods-hmap/view.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module HMap
|
4
|
-
# A representation of some unspecified hmap data.
|
5
|
-
class HMapView
|
6
|
-
# @return [String] the raw hmap data
|
7
|
-
attr_reader :raw_data
|
8
|
-
|
9
|
-
# @return [Symbol] the endianness of the data (`:big` or `:little`)
|
10
|
-
attr_reader :endianness
|
11
|
-
|
12
|
-
# @return [Integer] the offset of the relevant data (in {#raw_data})
|
13
|
-
attr_reader :offset
|
14
|
-
|
15
|
-
# Creates a new HMapView.
|
16
|
-
# @param raw_data [String] the raw hmap data
|
17
|
-
# @param endianness [Symbol] the endianness of the data
|
18
|
-
# @param offset [Integer] the offset of the relevant data
|
19
|
-
def initialize(raw_data, endianness, offset)
|
20
|
-
@raw_data = raw_data
|
21
|
-
@endianness = endianness
|
22
|
-
@offset = offset
|
23
|
-
end
|
24
|
-
|
25
|
-
# @return [Hash] a hash representation of this {HMapView}.
|
26
|
-
def to_h
|
27
|
-
{
|
28
|
-
'endianness' => endianness,
|
29
|
-
'offset' => offset
|
30
|
-
}
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
data/lib/cocoapods_hmap.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# The primary namespace for cocoapods-hmap.
|
4
|
-
module HMap
|
5
|
-
require_relative 'cocoapods-hmap/version'
|
6
|
-
require_relative 'cocoapods-hmap/view'
|
7
|
-
require_relative 'cocoapods-hmap/hmap_struct'
|
8
|
-
require_relative 'cocoapods-hmap/utils'
|
9
|
-
require_relative 'cocoapods-hmap/helper/pods_helper'
|
10
|
-
require_relative 'cocoapods-hmap/exceptions'
|
11
|
-
require_relative 'cocoapods-hmap/framework/framework_vfs'
|
12
|
-
require_relative 'cocoapods-hmap/hmap_save'
|
13
|
-
require_relative 'cocoapods-hmap/helper/xcconfig_helper'
|
14
|
-
require_relative 'cocoapods-hmap/pods_specification'
|
15
|
-
require_relative 'cocoapods-hmap/helper/build_setting_helper'
|
16
|
-
|
17
|
-
autoload :MapFileReader, 'cocoapods-hmap/hmap_reader'
|
18
|
-
autoload :MapFileWriter, 'cocoapods-hmap/hmap_writer'
|
19
|
-
autoload :MapFile, 'cocoapods-hmap/mapfile'
|
20
|
-
autoload :Executable, 'cocoapods-hmap/executable'
|
21
|
-
end
|