xcake 0.7.1 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +11 -3
- data/CHANGELOG.md +15 -0
- data/README.md +3 -1
- data/bin/xcake +0 -1
- data/docs/Cakefile.md +82 -1
- data/docs/Xcode Project Support.md +5 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/project.pbxproj +973 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/project.xcworkspace/xcuserdata/maxim.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-AppStore.xcscheme +91 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-Debug.xcscheme +91 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-Production.xcscheme +91 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-RC.xcscheme +91 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-Staging.xcscheme +91 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/xcuserdata/maxim.xcuserdatad/xcschemes/CakeManiaTst.xcscheme +56 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/xcuserdata/maxim.xcuserdatad/xcschemes/CakeManiaUITst.xcscheme +56 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/xcuserdata/maxim.xcuserdatad/xcschemes/xcschememanagement.plist +72 -0
- data/{docs/Sample → example/app/CakeMania}/Cakefile +80 -47
- data/example/app/CakeMania/Info/CakeMania.plist +38 -0
- data/example/app/CakeMania/Info/CakeManiaTst.plist +22 -0
- data/example/app/CakeMania/Info/CakeManiaUITst.plist +22 -0
- data/example/app/CakeMania/Res/CakeMania-test.entitlements +10 -0
- data/example/app/CakeMania/Res/CakeMania.entitlements +10 -0
- data/example/app/CakeMania/Res/CakeMania.xcassets/AppIcon.appiconset/Contents.json +48 -0
- data/example/app/CakeMania/Src/AppDelegate.swift +46 -0
- data/example/app/CakeMania/Src/Base.lproj/LaunchScreen.storyboard +27 -0
- data/example/app/CakeMania/Src/Base.lproj/Main.storyboard +26 -0
- data/example/app/CakeMania/Src/ObjC/CakeMania-Bridging-Header.h +3 -0
- data/example/app/CakeMania/Src/ObjC/Prefix.pch +14 -0
- data/example/app/CakeMania/Src/ViewController.swift +25 -0
- data/example/app/CakeMania/Tst/Main.swift +36 -0
- data/example/app/CakeMania/UITst/Main.swift +36 -0
- data/example/framework/Cakefile +133 -0
- data/gemfiles/Gemfile.xcodeproj-1.3.x +5 -0
- data/gemfiles/Gemfile.xcodeproj-1.4.x +5 -0
- data/gemfiles/Gemfile.xcodeproj-edge +5 -0
- data/lib/xcake/build_phase/headers_build_phase.rb +47 -0
- data/lib/xcake/build_phase/shell_script_build_phase.rb +24 -0
- data/lib/xcake/build_phase.rb +36 -0
- data/lib/xcake/constants.rb +82 -0
- data/lib/xcake/context/xcodeproj_context.rb +10 -0
- data/lib/xcake/context.rb +24 -0
- data/lib/xcake/generator/scheme_generator.rb +13 -2
- data/lib/xcake/generator/target_build_phase_generator.rb +11 -3
- data/lib/xcake/generator/target_dependency_generator.rb +1 -1
- data/lib/xcake/generator/target_file_reference_generator.rb +4 -5
- data/lib/xcake/generator/target_link_generator.rb +25 -0
- data/lib/xcake/informative.rb +0 -1
- data/lib/xcake/path_classifier.rb +5 -5
- data/lib/xcake/project/sugar.rb +7 -5
- data/lib/xcake/project.rb +0 -1
- data/lib/xcake/target/configurable.rb +2 -6
- data/lib/xcake/target/sugar.rb +28 -3
- data/lib/xcake/target.rb +34 -18
- data/lib/xcake/ui.rb +1 -4
- data/lib/xcake/version.rb +1 -1
- data/lib/xcake/xcode/project.rb +25 -13
- data/lib/xcake/xcode/scheme.rb +3 -0
- data/lib/xcake/xcode/scheme_list.rb +0 -23
- data/lib/xcake/xcodeproj_ext/PBXGroup.rb +3 -3
- data/lib/xcake/xcodeproj_ext/PBXNativeTarget.rb +0 -1
- data/lib/xcake.rb +10 -5
- data/rubocop.yml +0 -4
- data/xcake.gemspec +8 -7
- metadata +112 -80
- data/lib/xcake/generator/target_custom_build_phase_generator.rb +0 -16
- data/lib/xcake/shell_script_build_phase.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9dd03b14ab161ed70a1e93b9fba18cd2afb07ef4
|
4
|
+
data.tar.gz: 38465332b4fc403839295c20303a02e9d7971fef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4623186e840303d74cd19d13e17350eb3bb843d19c8a18c0997b62e6b68cd1ad02ed14258a9cfa4587e643a3c37a734e5ef1ca5878f7e4dcb4613e4067fecf44
|
7
|
+
data.tar.gz: 8a5abfc099e37a66e6d1a368371636234f1a418b996080ca3fd8d6e7e28fcd1daa8bbb290289f2df2d9e0d4df1fed3521976effe2810d774b350e9cc298b2f7f
|
data/.travis.yml
CHANGED
@@ -1,8 +1,16 @@
|
|
1
1
|
os:
|
2
2
|
- osx
|
3
3
|
language: ruby
|
4
|
+
gemfile:
|
5
|
+
- gemfiles/Gemfile.xcodeproj-1.3.x
|
6
|
+
- gemfiles/Gemfile.xcodeproj-1.4.x
|
7
|
+
- gemfiles/Gemfile.xcodeproj-edge
|
4
8
|
rvm:
|
5
|
-
|
6
|
-
- 2.
|
7
|
-
- 2.
|
9
|
+
# The latest ruby version
|
10
|
+
# - 2.4.0 # Doesn't build :()
|
11
|
+
- 2.3.1
|
12
|
+
# OS X 10.9.5-10.10.0 (2.0.0-p481)
|
13
|
+
- 2.0.0-p481
|
14
|
+
# OS X 10.9.3-10.9.4
|
15
|
+
- 2.0.0-p451
|
8
16
|
before_install: gem install bundler -v 1.10.6
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
v0.8.1
|
2
|
+
======
|
3
|
+
- Fixes error creating shell script build phase.
|
4
|
+
|
5
|
+
v0.8.0
|
6
|
+
======
|
7
|
+
- Dropped support for Xcodeproj 0.20.0.
|
8
|
+
- Adds support for Xcodeproj 1.4.x.
|
9
|
+
- Adds support for copy headers build phase.
|
10
|
+
- Adds linked targets to allow you to link to a library or framework created from your project.
|
11
|
+
- Fixes bug where runpath searchpaths wasn't set for unit test bundles causing libraries not to be loaded.
|
12
|
+
- Fixes bug where Xcake could add duplicate file reference to project.
|
13
|
+
- Schemes are generated across all targets not just Application targets.
|
14
|
+
- UI Test no longer produce a redundant scheme.
|
15
|
+
|
1
16
|
v0.7.1
|
2
17
|
======
|
3
18
|
- Implemented syntax for declaring UI Test targets.
|
data/README.md
CHANGED
@@ -97,7 +97,9 @@ Xcake will then generate a Xcode project based on your Cakefile
|
|
97
97
|
|
98
98
|
## Sample Cakefile
|
99
99
|
|
100
|
-
To get better understanding of how to start using Xcake in a real project, see
|
100
|
+
To get better understanding of how to start using Xcake in a real project, see examples under [example](https://github.com/jcampbell05/xcake/tree/master/example) folder.
|
101
|
+
|
102
|
+
There is a sample [app project](https://github.com/jcampbell05/xcake/blob/master/example/app/CakeMania) (the project file has been generated using Xcake v.0.7.1 based on the [Cakefile](https://github.com/jcampbell05/xcake/blob/master/example/app/CakeMania/Cakefile)) as well as sample [Cakefile](https://github.com/jcampbell05/xcake/blob/master/example/framework/Cakefile) for an iOS framework project.
|
101
103
|
|
102
104
|
## Need help?
|
103
105
|
Please submit an issue on GitHub and provide information about your setup
|
data/bin/xcake
CHANGED
data/docs/Cakefile.md
CHANGED
@@ -209,6 +209,9 @@ target.language = :swift
|
|
209
209
|
Sets the files to be included for a target, files and groups will be added
|
210
210
|
to the project to match the file system.
|
211
211
|
|
212
|
+
Xcake implicity figures out which build phase to add the files to, meaning
|
213
|
+
source code will be compiled and libraries linked.
|
214
|
+
|
212
215
|
[See Here](https://guides.cocoapods.org/syntax/podspec.html#group_file_patterns)
|
213
216
|
for file patterns
|
214
217
|
|
@@ -230,6 +233,84 @@ target.exclude_files = ["FolderToIgnore/*.*"] # array
|
|
230
233
|
target.exclude_files << "OtherFolderToIgnore/*.*" # add an item to array
|
231
234
|
```
|
232
235
|
|
236
|
+
#### Linked Targets
|
237
|
+
|
238
|
+
If you have another library or framework based target in the project you wish to use
|
239
|
+
from another target (i.e in your application), you can indicate to xcake that you wish
|
240
|
+
to link them using Linked Targets.
|
241
|
+
|
242
|
+
Xcake will make sue that the library is built and then linked to the target you wish to
|
243
|
+
use it from.
|
244
|
+
|
245
|
+
```
|
246
|
+
target.linked_targets = [linked_target] # array
|
247
|
+
```
|
248
|
+
|
249
|
+
Here is a more illustrative example of how to link a library in the project so that it
|
250
|
+
can be used from an application.
|
251
|
+
|
252
|
+
```ruby
|
253
|
+
|
254
|
+
libraryTarget = target do |library_target|
|
255
|
+
# ...configuration here
|
256
|
+
end
|
257
|
+
|
258
|
+
application_for :ios, 10.0 do |application_target|
|
259
|
+
application_target.linked_targets = [libraryTarget] # array
|
260
|
+
end
|
261
|
+
```
|
262
|
+
|
263
|
+
#### Build Phases
|
264
|
+
|
265
|
+
Xcake already implcitly creates build phases for you depending on how you configure your target
|
266
|
+
however you can explicity create additional build phases depending on your needs.
|
267
|
+
|
268
|
+
##### Copy Headers Build Phase
|
269
|
+
|
270
|
+
You can create a Copy Headers build phase to expose headers for instance for a library.
|
271
|
+
|
272
|
+
```ruby
|
273
|
+
target.headers_build_phase "Build Phase Name" do |phase|
|
274
|
+
|
275
|
+
## Public Headers
|
276
|
+
phase.public = ["PublicHeader.h"] # array
|
277
|
+
phase.public << "OtherPublicHeader.h" # add an item to array
|
278
|
+
|
279
|
+
## Private Headers
|
280
|
+
phase.private = ["PrivateHeader.h"] # array
|
281
|
+
phase.private << "OtherPrivateHeader.h" # add an item to array
|
282
|
+
|
283
|
+
## Project Only Header
|
284
|
+
phase.project = ["ProjectHeader.h"] # array
|
285
|
+
phase.project << "OtherProjectHeader.h" # add an item to array
|
286
|
+
end
|
287
|
+
```
|
288
|
+
|
289
|
+
##### Link Libraries Build Phase
|
290
|
+
|
291
|
+
You can create a Link Libraries build phase to link a lobrary when building.
|
292
|
+
|
293
|
+
Note: If you import a library or framework using `include_files` then xcake
|
294
|
+
already adds it to the Link Libraries build phase.
|
295
|
+
|
296
|
+
```ruby
|
297
|
+
target.link_build_phase "Build Phase Name" do |phase|
|
298
|
+
phase.files = ["LibraryToLink.a"] # array
|
299
|
+
phase.filwa << "OtherLibraryToLink.a" # add an item to array
|
300
|
+
end
|
301
|
+
```
|
302
|
+
|
303
|
+
##### Shell Script Build Phase
|
304
|
+
|
305
|
+
You can create a Shell Script buld phase to run a script when building.
|
306
|
+
|
307
|
+
```ruby
|
308
|
+
target.shell_script_build_phase "Build Phase Name", <<-SCRIPT
|
309
|
+
echo "Hello World"
|
310
|
+
SCRIPT
|
311
|
+
end
|
312
|
+
```
|
313
|
+
|
233
314
|
## Configurations
|
234
315
|
|
235
316
|
Configurations are an abstraction of build settings and scheme settings. Depending
|
@@ -341,7 +422,7 @@ configuration.settings["ENABLE_BITCODE"] = false
|
|
341
422
|
|
342
423
|
### Build Settings Shortcuts
|
343
424
|
|
344
|
-
Xcake also provides some shortcuts for some
|
425
|
+
Xcake also provides some shortcuts for some common build settings.
|
345
426
|
|
346
427
|
#### Supported Devices
|
347
428
|
|
@@ -28,6 +28,9 @@ This document describes the level of support Xcake has for the various aspects o
|
|
28
28
|
- Specify build settings via configurations
|
29
29
|
- Simple methods for creating iOS, Mac and WatchOS Applications.
|
30
30
|
- Simple methods for creating Unit Tests
|
31
|
+
- Build Phases are generated implicity and can be specified explicity for:
|
32
|
+
- Copy Headerss
|
33
|
+
- Shell Script
|
31
34
|
|
32
35
|
## Configuration
|
33
36
|
|
@@ -45,4 +48,6 @@ This document describes the level of support Xcake has for the various aspects o
|
|
45
48
|
## Files
|
46
49
|
|
47
50
|
- Can Include Normal Files
|
51
|
+
- Can Include Bundles
|
52
|
+
- Can Include Libraries
|
48
53
|
- Can Include Localized Files
|