cocoapods-podtarget-optimize 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 09b713fe460bbd094e70c82f8787cecf122e82d7
4
+ data.tar.gz: fa286c9102b6d240dd2817ee61a619651d6313d4
5
+ SHA512:
6
+ metadata.gz: d244d69f127f60660c0e4ca1be75b478db60936313444596d284a8d2463b929012fe9f58330d761987839e9f6fb02ed81b47b6be6cfa34d1e7b469ca0d178689
7
+ data.tar.gz: f228a65ce2804555eebbb2e4d38e59d29cca12a35ede1aa3b9958e3db06b7598085ca7f72a53193999bc6d021afe6c0cb968f137a31cecc6207de316b7371c0b
@@ -0,0 +1,152 @@
1
+ require "cocoapods-podtarget-optimize/version"
2
+
3
+ module Pod
4
+ class Installer
5
+ # Creates the target for the Pods libraries in the Pods project and the
6
+ # relative support files.
7
+ #
8
+ class PodTargetInstaller < TargetInstaller
9
+ # Creates the target in the Pods project and the relative support files.
10
+ #
11
+ # @return [void]
12
+ #
13
+ def install!
14
+ UI.message "- Installing target `#{target.name}` #{target.platform}" do
15
+ add_target
16
+ create_support_files_dir
17
+ add_files_to_build_phases
18
+ add_resources_bundle_targets
19
+ create_xcconfig_file
20
+ ########################## Added ##########################
21
+ # if the souce build only have dummy.m, ignore this target
22
+ if native_target.source_build_phase.files.count > 0
23
+ create_prefix_header
24
+ else
25
+ project.targets.pop
26
+ target.native_target = nil
27
+ @native_target = nil
28
+ end
29
+ ########################## Added ##########################
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+
37
+
38
+ module Pod
39
+ class Installer
40
+ def install_libraries
41
+ UI.message '- Installing targets' do
42
+ pod_targets.sort_by(&:name).each do |pod_target|
43
+ next if pod_target.target_definition.dependencies.empty?
44
+ target_installer = PodTargetInstaller.new(sandbox, pod_target)
45
+ target_installer.install!
46
+ end
47
+
48
+ aggregate_targets.sort_by(&:name).each do |target|
49
+ next if target.target_definition.dependencies.empty?
50
+ target_installer = AggregateTargetInstaller.new(sandbox, target)
51
+ target_installer.install!
52
+ end
53
+
54
+ # TODO
55
+ # Move and add specs
56
+ pod_targets.sort_by(&:name).each do |pod_target|
57
+ pod_target.file_accessors.each do |file_accessor|
58
+ file_accessor.spec_consumer.frameworks.each do |framework|
59
+ ########################## Added ############################
60
+ # only config when the target is exist
61
+ next if pod_target.native_target.nil?
62
+ ########################## Added ############################
63
+ pod_target.native_target.add_system_framework(framework)
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+
70
+ def set_target_dependencies
71
+ aggregate_targets.each do |aggregate_target|
72
+ aggregate_target.pod_targets.each do |pod_target|
73
+ ########################## Added ############################
74
+ # only config when the target is exist
75
+ next if pod_target.native_target.nil?
76
+ ########################## Added ############################
77
+ aggregate_target.native_target.add_dependency(pod_target.native_target)
78
+ pod_target.dependencies.each do |dep|
79
+
80
+ unless dep == pod_target.pod_name
81
+ pod_dependency_target = aggregate_target.pod_targets.find { |target| target.pod_name == dep }
82
+ # TODO remove me
83
+ unless pod_dependency_target
84
+ puts "[BUG] DEP: #{dep}"
85
+ end
86
+ ########################## Added ############################
87
+ # only config when the target is exist
88
+ next if pod_dependency_target.native_target.nil?
89
+ ########################## Added ############################
90
+ pod_target.native_target.add_dependency(pod_dependency_target.native_target)
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
98
+
99
+
100
+ module Pod
101
+ module Generator
102
+ module XCConfig
103
+ # Generates the xcconfigs for the aggregate targets.
104
+ #
105
+ class AggregateXCConfig
106
+ def generate
107
+ header_search_path_flags = target.sandbox.public_headers.search_paths(target.platform)
108
+ @xcconfig = Xcodeproj::Config.new(
109
+ 'OTHER_LDFLAGS' => XCConfigHelper.default_ld_flags(target),
110
+ 'OTHER_LIBTOOLFLAGS' => '$(OTHER_LDFLAGS)',
111
+ 'HEADER_SEARCH_PATHS' => XCConfigHelper.quote(header_search_path_flags),
112
+ 'PODS_ROOT' => target.relative_pods_root,
113
+ 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) COCOAPODS=1',
114
+ 'OTHER_CFLAGS' => '$(inherited) ' + XCConfigHelper.quote(header_search_path_flags, '-isystem')
115
+ )
116
+
117
+ target.pod_targets.each do |pod_target|
118
+ next unless pod_target.include_in_build_config?(@configuration_name)
119
+
120
+ pod_target.file_accessors.each do |file_accessor|
121
+ XCConfigHelper.add_spec_build_settings_to_xcconfig(file_accessor.spec_consumer, @xcconfig)
122
+ file_accessor.vendored_frameworks.each do |vendored_framework|
123
+ XCConfigHelper.add_framework_build_settings(vendored_framework, @xcconfig, target.sandbox.root)
124
+ end
125
+ file_accessor.vendored_libraries.each do |vendored_library|
126
+ XCConfigHelper.add_library_build_settings(vendored_library, @xcconfig, target.sandbox.root)
127
+ end
128
+ end
129
+
130
+ # Add pod static lib to list of libraries that are to be linked with
131
+ # the user’s project.
132
+
133
+ ########################## Added ############################
134
+ # only config when the target is exist
135
+ next if pod_target.native_target.nil?
136
+ ########################## Added ############################
137
+
138
+ @xcconfig.merge!('OTHER_LDFLAGS' => %(-l "#{pod_target.name}"))
139
+ end
140
+
141
+ # TODO Need to decide how we are going to ensure settings like these
142
+ # are always excluded from the user's project.
143
+ #
144
+ # See https://github.com/CocoaPods/CocoaPods/issues/1216
145
+ @xcconfig.attributes.delete('USE_HEADERMAP')
146
+
147
+ @xcconfig
148
+ end
149
+ end
150
+ end
151
+ end
152
+ end
@@ -0,0 +1,3 @@
1
+ module CocoapodsPodtargetOptimize
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cocoapods-podtarget-optimize
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - 晨燕
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: cocoapods
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '0.35'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0.35'
55
+ description: 将只有dummySource的target忽略掉,加快build速度
56
+ email:
57
+ - chenyan.mnn@taobao.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/cocoapods-podtarget-optimize/version.rb
63
+ - lib/cocoapods-podtarget-optimize.rb
64
+ homepage: https://github.com/mahaiyannn/cocoapods-podtarget-optimize.git
65
+ licenses:
66
+ - MIT
67
+ metadata: {}
68
+ post_install_message:
69
+ rdoc_options: []
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubyforge_project:
84
+ rubygems_version: 2.0.14
85
+ signing_key:
86
+ specification_version: 4
87
+ summary: pod target 的优化
88
+ test_files: []
89
+ has_rdoc: