cocoapods-packagerthk 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 +7 -0
- data/.gitignore +3 -0
- data/.vscode/launch.json +24 -0
- data/Gemfile +35 -0
- data/Gemfile.lock +81 -0
- data/LICENSE.txt +22 -0
- data/README.md +11 -0
- data/Rakefile +13 -0
- data/cocoapods-packagerthk.gemspec +23 -0
- data/lib/cocoapods-packagerthk/builder.rb +336 -0
- data/lib/cocoapods-packagerthk/command.rb +1 -0
- data/lib/cocoapods-packagerthk/framework.rb +66 -0
- data/lib/cocoapods-packagerthk/gem_version.rb +3 -0
- data/lib/cocoapods-packagerthk/mangle.rb +32 -0
- data/lib/cocoapods-packagerthk/pod_utils.rb +245 -0
- data/lib/cocoapods-packagerthk/spec_builder.rb +158 -0
- data/lib/cocoapods-packagerthk/symbols.rb +42 -0
- data/lib/cocoapods-packagerthk/user_interface/build_failed_report.rb +15 -0
- data/lib/cocoapods-packagerthk.rb +5 -0
- data/lib/cocoapods_plugin.rb +8 -0
- data/lib/pod/command/packagethk.rb +198 -0
- data/spec/command/error_spec.rb +81 -0
- data/spec/command/packagerthk_spec.rb +420 -0
- data/spec/command/subspecs_spec.rb +30 -0
- data/spec/integration/project_spec.rb +70 -0
- data/spec/spec_helper.rb +79 -0
- data/spec/unit/pod/utils_spec.rb +58 -0
- data/spec/unit/specification/builder_spec.rb +62 -0
- data/spec/unit/specification/spec_builder_spec.rb +61 -0
- data/spec/unit/user_interface/build_failed_report_spec.rb +11 -0
- metadata +109 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
describe Command::Packagethk do
|
5
|
+
after do
|
6
|
+
Dir.glob("Pods").each { |dir| Pathname.new(dir).rmtree }
|
7
|
+
end
|
8
|
+
|
9
|
+
it "uses additional spec repos passed on the command line" do
|
10
|
+
Pod::Config.instance.sources_manager.stubs(:search).returns(nil)
|
11
|
+
nil::NilClass.any_instance.stubs(:install!)
|
12
|
+
Installer.expects(:new).with {
|
13
|
+
|sandbox, podfile| podfile.sources == ['foo', 'bar']
|
14
|
+
}
|
15
|
+
|
16
|
+
command = Command.parse(%w{ package spec/fixtures/KFData.podspec --spec-sources=foo,bar})
|
17
|
+
command.send(:install_pod, :osx, nil)
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
it "uses only the master repo if no spec repos were passed" do
|
22
|
+
Pod::Config.instance.sources_manager.stubs(:search).returns(nil)
|
23
|
+
nil::NilClass.any_instance.stubs(:install!)
|
24
|
+
Installer.expects(:new).with {
|
25
|
+
|sandbox, podfile| podfile.sources == ['https://github.com/CocoaPods/Specs.git']
|
26
|
+
}
|
27
|
+
|
28
|
+
command = Command.parse(%w{ package spec/fixtures/KFData.podspec })
|
29
|
+
command.send(:install_pod, :osx, nil)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "creates separate static and dynamic target if dynamic is passed" do
|
33
|
+
source_dir = Dir.pwd
|
34
|
+
|
35
|
+
Pod::Config.instance.sources_manager.stubs(:search).returns(nil)
|
36
|
+
|
37
|
+
command = Command.parse(%w{ package spec/fixtures/NikeKit.podspec -dynamic})
|
38
|
+
t, w = command.send(:create_working_directory)
|
39
|
+
|
40
|
+
command.config.installation_root = Pathname.new(w)
|
41
|
+
command.config.sandbox_root = 'Pods'
|
42
|
+
|
43
|
+
static_sandbox = command.send(:build_static_sandbox, true)
|
44
|
+
static_installer = command.send(:install_pod, :ios, static_sandbox)
|
45
|
+
|
46
|
+
dynamic_sandbox = command.send(:build_dynamic_sandbox, static_sandbox, static_installer)
|
47
|
+
command.send(:install_dynamic_pod, dynamic_sandbox, static_sandbox, static_installer, Platform.ios)
|
48
|
+
|
49
|
+
static_sandbox_dir = Dir.new(Dir.pwd << "/Pods/Static")
|
50
|
+
dynamic_sandbox_dir = Dir.new(Dir.pwd << "/Pods/Dynamic")
|
51
|
+
|
52
|
+
static_sandbox_dir.to_s.should.not.be.empty
|
53
|
+
dynamic_sandbox_dir.to_s.should.not.be.empty
|
54
|
+
|
55
|
+
Dir.chdir(source_dir)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
describe Builder do
|
5
|
+
describe 'In general' do
|
6
|
+
before do
|
7
|
+
@spec = Specification.from_file('spec/fixtures/Builder.podspec')
|
8
|
+
@static_sandbox_dir = temporary_directory + 'Pods'
|
9
|
+
@installer = stub('Installer', :pod_targets => [])
|
10
|
+
@builder = Builder.new(Platform.new(:ios), @installer, nil, @static_sandbox_dir, nil, nil, @spec, nil, nil, nil, nil, nil, nil)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'copies the license file if it exists' do
|
14
|
+
path = @static_sandbox_dir + 'Builder/LICENSE.md'
|
15
|
+
path.dirname.mkpath
|
16
|
+
File.open(path, 'w') { |f| f.puts 'Permission is granted...' }
|
17
|
+
@spec.stubs(:license).returns({ :file => 'LICENSE.md'})
|
18
|
+
FileUtils.expects(:cp).with(path, '.')
|
19
|
+
@builder.send(:copy_license)
|
20
|
+
FileUtils.rm_rf(path.dirname)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'Xcodebuild command' do
|
25
|
+
describe 'compiler flags' do
|
26
|
+
before do
|
27
|
+
@spec = Specification.from_file('spec/fixtures/Builder.podspec')
|
28
|
+
@installer = stub('Installer', :pod_targets => [])
|
29
|
+
end
|
30
|
+
|
31
|
+
it "includes proper compiler flags for iOS" do
|
32
|
+
@builder = Builder.new(Platform.new(:ios), @installer, nil, nil, nil, nil, @spec, nil, nil, nil, nil, nil, nil)
|
33
|
+
@builder.expects(:xcodebuild).with("GCC_PREPROCESSOR_DEFINITIONS='$(inherited) PodsDummy_Pods_Builder=PodsDummy_PodPackage_Builder' -DBASE_FLAG -DIOS_FLAG", "ARCHS='x86_64 i386 arm64 armv7 armv7s' OTHER_CFLAGS='-fembed-bitcode -Qunused-arguments'").returns(nil)
|
34
|
+
@builder.send(:compile)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "includes proper compiler flags for OSX" do
|
38
|
+
@builder = Builder.new(Platform.new(:osx), @installer, nil, nil, nil, nil, @spec, nil, nil, nil, nil, nil, nil)
|
39
|
+
@builder.expects(:xcodebuild).with("GCC_PREPROCESSOR_DEFINITIONS='$(inherited) PodsDummy_Pods_Builder=PodsDummy_PodPackage_Builder' -DBASE_FLAG -DOSX_FLAG", nil).returns(nil)
|
40
|
+
@builder.send(:compile)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe 'on build failure' do
|
45
|
+
before do
|
46
|
+
@spec = Specification.from_file('spec/fixtures/Builder.podspec')
|
47
|
+
@installer = stub('Installer', :pod_targets => [])
|
48
|
+
@builder = Builder.new(Platform.new(:ios), @installer, nil, nil, nil, nil, @spec, nil, nil, nil, nil, nil, nil)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'dumps report and terminates' do
|
52
|
+
UI::BuildFailedReport.expects(:report).returns(nil)
|
53
|
+
|
54
|
+
should.raise SystemExit do
|
55
|
+
# TODO: check that it dumps report
|
56
|
+
@builder.send(:compile)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
describe SpecBuilder do
|
5
|
+
def compare_attributes(first_spec, second_spec, attribute_name)
|
6
|
+
first_spec.attributes_hash[attribute_name].should ==
|
7
|
+
second_spec.attributes_hash[attribute_name]
|
8
|
+
|
9
|
+
%w(ios osx).each do |platform|
|
10
|
+
first_spec.attributes_hash[platform][attribute_name].should ==
|
11
|
+
second_spec.attributes_hash[platform][attribute_name]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def specification_from_builder(builder)
|
16
|
+
spec_string = builder.spec_metadata
|
17
|
+
spec_string += builder.spec_platform(Platform.ios)
|
18
|
+
spec_string += builder.spec_platform(Platform.osx)
|
19
|
+
spec_string += builder.spec_close
|
20
|
+
|
21
|
+
return Specification.from_string(spec_string, 'Builder.podspec')
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'Preserve attributes from source specification' do
|
25
|
+
before do
|
26
|
+
@spec = Specification.from_file('spec/fixtures/Builder.podspec')
|
27
|
+
@builder = SpecBuilder.new(@spec, nil, false, nil)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "preserves platform.frameworks" do
|
31
|
+
spec = specification_from_builder(@builder)
|
32
|
+
compare_attributes(spec, @spec, 'frameworks')
|
33
|
+
end
|
34
|
+
|
35
|
+
it "preserves platform.weak_frameworks" do
|
36
|
+
spec = specification_from_builder(@builder)
|
37
|
+
compare_attributes(spec, @spec, 'weak_frameworks')
|
38
|
+
end
|
39
|
+
|
40
|
+
it "preserves platform.libraries" do
|
41
|
+
spec = specification_from_builder(@builder)
|
42
|
+
compare_attributes(spec, @spec, 'libraries')
|
43
|
+
end
|
44
|
+
|
45
|
+
it "preserves platform.requires_arc" do
|
46
|
+
spec = specification_from_builder(@builder)
|
47
|
+
compare_attributes(spec, @spec, 'requires_arc')
|
48
|
+
end
|
49
|
+
|
50
|
+
it "preserves platform.deployment_target" do
|
51
|
+
spec = specification_from_builder(@builder)
|
52
|
+
compare_attributes(spec, @spec, 'deployment_target')
|
53
|
+
end
|
54
|
+
|
55
|
+
it "preserves platform.xcconfig" do
|
56
|
+
spec = specification_from_builder(@builder)
|
57
|
+
compare_attributes(spec, @spec, 'xcconfig')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
module UserInterface
|
5
|
+
describe BuildFailedReport do
|
6
|
+
it 'should format a report correctly' do
|
7
|
+
UI::BuildFailedReport.report('a', ['b']).should == "Build command failed: a\nOutput:\n b\n"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
metadata
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cocoapods-packagerthk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Joe.cheng
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-03-20 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: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
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
|
+
description: A short description of cocoapods-packagerthk.
|
42
|
+
email:
|
43
|
+
- joe.cheng@corp.to8to.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- ".gitignore"
|
49
|
+
- ".vscode/launch.json"
|
50
|
+
- Gemfile
|
51
|
+
- Gemfile.lock
|
52
|
+
- LICENSE.txt
|
53
|
+
- README.md
|
54
|
+
- Rakefile
|
55
|
+
- cocoapods-packagerthk.gemspec
|
56
|
+
- lib/cocoapods-packagerthk.rb
|
57
|
+
- lib/cocoapods-packagerthk/builder.rb
|
58
|
+
- lib/cocoapods-packagerthk/command.rb
|
59
|
+
- lib/cocoapods-packagerthk/framework.rb
|
60
|
+
- lib/cocoapods-packagerthk/gem_version.rb
|
61
|
+
- lib/cocoapods-packagerthk/mangle.rb
|
62
|
+
- lib/cocoapods-packagerthk/pod_utils.rb
|
63
|
+
- lib/cocoapods-packagerthk/spec_builder.rb
|
64
|
+
- lib/cocoapods-packagerthk/symbols.rb
|
65
|
+
- lib/cocoapods-packagerthk/user_interface/build_failed_report.rb
|
66
|
+
- lib/cocoapods_plugin.rb
|
67
|
+
- lib/pod/command/packagethk.rb
|
68
|
+
- spec/command/error_spec.rb
|
69
|
+
- spec/command/packagerthk_spec.rb
|
70
|
+
- spec/command/subspecs_spec.rb
|
71
|
+
- spec/integration/project_spec.rb
|
72
|
+
- spec/spec_helper.rb
|
73
|
+
- spec/unit/pod/utils_spec.rb
|
74
|
+
- spec/unit/specification/builder_spec.rb
|
75
|
+
- spec/unit/specification/spec_builder_spec.rb
|
76
|
+
- spec/unit/user_interface/build_failed_report_spec.rb
|
77
|
+
homepage: https://github.com/chengzongxin/cocoapods-packagerthk
|
78
|
+
licenses:
|
79
|
+
- MIT
|
80
|
+
metadata: {}
|
81
|
+
post_install_message:
|
82
|
+
rdoc_options: []
|
83
|
+
require_paths:
|
84
|
+
- lib
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
requirements: []
|
96
|
+
rubygems_version: 3.4.7
|
97
|
+
signing_key:
|
98
|
+
specification_version: 4
|
99
|
+
summary: A longer description of cocoapods-packagerthk.
|
100
|
+
test_files:
|
101
|
+
- spec/command/error_spec.rb
|
102
|
+
- spec/command/packagerthk_spec.rb
|
103
|
+
- spec/command/subspecs_spec.rb
|
104
|
+
- spec/integration/project_spec.rb
|
105
|
+
- spec/spec_helper.rb
|
106
|
+
- spec/unit/pod/utils_spec.rb
|
107
|
+
- spec/unit/specification/builder_spec.rb
|
108
|
+
- spec/unit/specification/spec_builder_spec.rb
|
109
|
+
- spec/unit/user_interface/build_failed_report_spec.rb
|