xcake 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +16 -15
- data/docs/Cakefile.md +98 -32
- data/lib/xcake/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b945c7078bf81c6b95c3886e01b6ab16c7191c3
|
4
|
+
data.tar.gz: 198fd535fffe2e5d0390873f97900cf8e871a526
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8141f00c32e800da77194b0866f21e2438596874c280063b5baaadf25d3b2db3e84bef3e8c276bf43beec0ed245090107effe878c9a38ffc51b66e7eee6abe90
|
7
|
+
data.tar.gz: 5f148d62c9c34f2510c301f31f64a32771f1528da1b405dd6888a814910e69adf5e65c4bbb91cc42ec1945176ad4c61f3d37db204145c8aa7045fedf9f8da300
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
xcake (0.1.
|
4
|
+
xcake (0.1.6)
|
5
5
|
claide
|
6
6
|
xcodeproj (~> 0.28)
|
7
7
|
|
@@ -16,12 +16,13 @@ GEM
|
|
16
16
|
tzinfo (~> 1.1)
|
17
17
|
claide (0.9.1)
|
18
18
|
colored (1.2)
|
19
|
-
coveralls (0.8.
|
19
|
+
coveralls (0.8.10)
|
20
20
|
json (~> 1.8)
|
21
21
|
rest-client (>= 1.6.8, < 2)
|
22
|
-
simplecov (~> 0.
|
22
|
+
simplecov (~> 0.11.0)
|
23
23
|
term-ansicolor (~> 1.3)
|
24
24
|
thor (~> 0.19.1)
|
25
|
+
tins (~> 1.6.0)
|
25
26
|
diff-lcs (1.2.5)
|
26
27
|
docile (1.1.5)
|
27
28
|
domain_name (0.5.25)
|
@@ -38,20 +39,20 @@ GEM
|
|
38
39
|
http-cookie (>= 1.0.2, < 2.0)
|
39
40
|
mime-types (>= 1.16, < 3.0)
|
40
41
|
netrc (~> 0.7)
|
41
|
-
rspec (3.
|
42
|
-
rspec-core (~> 3.
|
43
|
-
rspec-expectations (~> 3.
|
44
|
-
rspec-mocks (~> 3.
|
45
|
-
rspec-core (3.
|
46
|
-
rspec-support (~> 3.
|
47
|
-
rspec-expectations (3.
|
42
|
+
rspec (3.4.0)
|
43
|
+
rspec-core (~> 3.4.0)
|
44
|
+
rspec-expectations (~> 3.4.0)
|
45
|
+
rspec-mocks (~> 3.4.0)
|
46
|
+
rspec-core (3.4.1)
|
47
|
+
rspec-support (~> 3.4.0)
|
48
|
+
rspec-expectations (3.4.0)
|
48
49
|
diff-lcs (>= 1.2.0, < 2.0)
|
49
|
-
rspec-support (~> 3.
|
50
|
-
rspec-mocks (3.
|
50
|
+
rspec-support (~> 3.4.0)
|
51
|
+
rspec-mocks (3.4.0)
|
51
52
|
diff-lcs (>= 1.2.0, < 2.0)
|
52
|
-
rspec-support (~> 3.
|
53
|
-
rspec-support (3.
|
54
|
-
simplecov (0.
|
53
|
+
rspec-support (~> 3.4.0)
|
54
|
+
rspec-support (3.4.1)
|
55
|
+
simplecov (0.11.1)
|
55
56
|
docile (~> 1.1.0)
|
56
57
|
json (~> 1.8)
|
57
58
|
simplecov-html (~> 0.10.0)
|
data/docs/Cakefile.md
CHANGED
@@ -1,13 +1,12 @@
|
|
1
|
-
<!-- TODO: Maybe split into files ? -->
|
2
1
|
#Cakefile Syntax Reference
|
3
2
|
|
4
3
|
The `Cakefile` contains a lightweight DSL which provides the instructions on how to generate
|
5
4
|
a project file. We adopt the convention over configuration and thus it can be very simple:
|
6
5
|
|
7
6
|
```ruby
|
8
|
-
Project.new do |
|
9
|
-
|
10
|
-
|
7
|
+
Project.new do |project|
|
8
|
+
project.application_for :ios, 8.0 do |target|
|
9
|
+
target.name = "MyApp"
|
11
10
|
end
|
12
11
|
end
|
13
12
|
```
|
@@ -15,17 +14,17 @@ end
|
|
15
14
|
and here is much more complicated one:
|
16
15
|
|
17
16
|
```ruby
|
18
|
-
Project.new do |
|
17
|
+
Project.new do |project|
|
19
18
|
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
project.debug_configuration :staging
|
20
|
+
project.debug_configuration :debug
|
21
|
+
project.release_configuration :release
|
23
22
|
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
project.application_for :ios, 8.0 do |target|
|
24
|
+
target.name = "test"
|
25
|
+
target.all_configurations.supported_devices = :iphone_only
|
27
26
|
|
28
|
-
|
27
|
+
project.unit_tests_for(target)
|
29
28
|
end
|
30
29
|
end
|
31
30
|
```
|
@@ -38,21 +37,21 @@ readable, efficient and concise.
|
|
38
37
|
To create a project we must write the following:
|
39
38
|
|
40
39
|
```ruby
|
41
|
-
Project.new do |
|
40
|
+
Project.new do |project|
|
42
41
|
end
|
43
42
|
```
|
44
43
|
By default Xcake will create a project named "Project" but we can change the name
|
45
44
|
by passing a String argument with the name we would like it to be called:
|
46
45
|
|
47
46
|
```ruby
|
48
|
-
Project.new "Workspace" do |
|
47
|
+
Project.new "Workspace" do |project|
|
49
48
|
end
|
50
49
|
```
|
51
50
|
We can also customize the structure of the project between the first and second lines, like so:
|
52
51
|
|
53
52
|
```ruby
|
54
|
-
Project.new "Workspace" do |
|
55
|
-
|
53
|
+
Project.new "Workspace" do |project|
|
54
|
+
project.debug_configuration :debug
|
56
55
|
end
|
57
56
|
```
|
58
57
|
There are two main ways you can customize a Project, Targets and Configurations.
|
@@ -70,16 +69,16 @@ A project can specify any application targets such as iOS or Mac Apps.
|
|
70
69
|
iOS App:
|
71
70
|
|
72
71
|
```ruby
|
73
|
-
Project.new "Workspace" do |
|
74
|
-
|
72
|
+
Project.new "Workspace" do |project|
|
73
|
+
project.application_for :ios, 8.0
|
75
74
|
end
|
76
75
|
```
|
77
76
|
|
78
77
|
Mac App:
|
79
78
|
|
80
79
|
```ruby
|
81
|
-
Project.new "Workspace" do |
|
82
|
-
|
80
|
+
Project.new "Workspace" do |project|
|
81
|
+
project.application_for :mac, 8.0
|
83
82
|
end
|
84
83
|
```
|
85
84
|
|
@@ -88,9 +87,9 @@ end
|
|
88
87
|
We can also specify a testing targets for other targets as well
|
89
88
|
|
90
89
|
```ruby
|
91
|
-
Project.new "Workspace" do |
|
92
|
-
|
93
|
-
|
90
|
+
Project.new "Workspace" do |project|
|
91
|
+
project.application_for :mac, 8.0 do |target|
|
92
|
+
project.unit_tests_for(target)
|
94
93
|
end
|
95
94
|
end
|
96
95
|
```
|
@@ -101,9 +100,9 @@ If these aren't enough for you then you can specify a target
|
|
101
100
|
and manually set up it's properties.
|
102
101
|
|
103
102
|
```ruby
|
104
|
-
Project.new "Workspace" do |
|
105
|
-
|
106
|
-
|
103
|
+
Project.new "Workspace" do |project|
|
104
|
+
project.target do |target|
|
105
|
+
target.name = "Target"
|
107
106
|
end
|
108
107
|
end
|
109
108
|
```
|
@@ -112,10 +111,10 @@ end
|
|
112
111
|
|
113
112
|
#### Name
|
114
113
|
|
115
|
-
Sets the name of the
|
114
|
+
Sets the name of the target
|
116
115
|
|
117
116
|
```ruby
|
118
|
-
|
117
|
+
target.name = "Target"
|
119
118
|
```
|
120
119
|
|
121
120
|
#### Type
|
@@ -124,7 +123,7 @@ Sets the type of the target, Can be `:application`, `:dynamic_library`,
|
|
124
123
|
`:framework` or `:static_library`.
|
125
124
|
|
126
125
|
```ruby
|
127
|
-
|
126
|
+
target.type = :application
|
128
127
|
```
|
129
128
|
|
130
129
|
#### Platform
|
@@ -132,7 +131,7 @@ t.type = :application
|
|
132
131
|
Sets the platform of the target. Can be `:ios` or `:osx`
|
133
132
|
|
134
133
|
```ruby
|
135
|
-
|
134
|
+
target.platform = :ios
|
136
135
|
```
|
137
136
|
|
138
137
|
#### Deployment Target
|
@@ -140,7 +139,7 @@ t.platform = :ios
|
|
140
139
|
Sets the deployment target for the platform.
|
141
140
|
|
142
141
|
```ruby
|
143
|
-
|
142
|
+
target.deployment_target = 8.0
|
144
143
|
```
|
145
144
|
|
146
145
|
#### Language
|
@@ -148,19 +147,86 @@ t.deployment_target = 8.0
|
|
148
147
|
Sets the primary language of the target, can be `:objc` or `:swift`.
|
149
148
|
|
150
149
|
```ruby
|
151
|
-
|
150
|
+
target.language = :swift
|
152
151
|
```
|
153
152
|
|
154
153
|
## Configurations
|
155
154
|
|
155
|
+
Configurations are an abstraction of build settings and scheme settings. Depending
|
156
|
+
on the target Xcake will create a scheme per target and per configuration.
|
157
|
+
|
158
|
+
Xcake allows you define a hierarchy of build settings like you would in Xcode
|
159
|
+
for the Project and the Targets.
|
160
|
+
|
156
161
|
### Debug Configurations
|
157
162
|
|
163
|
+
For configurations used for internal testing we create a debug configuration,
|
164
|
+
this comes with sensible defaults optimized for debugging (i.e Assertions enabled).
|
165
|
+
|
166
|
+
```ruby
|
167
|
+
project.debug_configuration :staging
|
168
|
+
```
|
169
|
+
|
158
170
|
### Release Configurations
|
159
171
|
|
172
|
+
For configurations used for release we create a release configuration,
|
173
|
+
this comes with sensible defaults optimized for releasing (i.e Compiler optimizations enabled).
|
174
|
+
|
175
|
+
```ruby
|
176
|
+
project.release_configuration :release
|
177
|
+
```
|
178
|
+
|
160
179
|
### All Configurations
|
161
180
|
|
181
|
+
We can apply a particular shared setting across all of our configurations.
|
182
|
+
Xcake provides a simply way of doing this via an "all" configuration.
|
183
|
+
|
184
|
+
```ruby
|
185
|
+
project.all_configurations.supported_devices = :iphone_only
|
186
|
+
```
|
187
|
+
|
162
188
|
### Configuration Hiearchy
|
163
189
|
|
190
|
+
Xcake allows you to manage the configurations for the project and the target but
|
191
|
+
it also has its own hiearchy of settings, which are in the following order
|
192
|
+
(One at the top of the list are overwritten by ones at the bottom):
|
193
|
+
|
194
|
+
- Default Settings
|
195
|
+
These are the sensible defaults xcake provides for the configuration.
|
196
|
+
|
197
|
+
- All Settings
|
198
|
+
These are any settings set via the "All" configuration
|
199
|
+
|
200
|
+
- Custom Settings
|
201
|
+
These are the settings set directly on the configuration.
|
202
|
+
|
164
203
|
###Properties
|
165
204
|
|
205
|
+
#### Name
|
206
|
+
|
207
|
+
Sets the name of the configuration
|
208
|
+
|
209
|
+
```ruby
|
210
|
+
configuration.name = "Release"
|
211
|
+
```
|
212
|
+
|
166
213
|
#### Build Settings
|
214
|
+
|
215
|
+
A hash of all the build settings for a configuration
|
216
|
+
|
217
|
+
```ruby
|
218
|
+
configuration.build_settings["ENABLE_BITCODE"] = false
|
219
|
+
```
|
220
|
+
|
221
|
+
###Build Settings Shortcuts
|
222
|
+
|
223
|
+
Xcake also provides some shortcuts for some more common build settings.
|
224
|
+
|
225
|
+
#### Supported Devices
|
226
|
+
|
227
|
+
Allows you specify the devices an iOS App can run on, can be `:iphone_only`,
|
228
|
+
`:ipad_only` or `:universal`
|
229
|
+
|
230
|
+
```ruby
|
231
|
+
configuration.supported_devices = :iphone_only
|
232
|
+
```
|
data/lib/xcake/version.rb
CHANGED