xcake 0.7.1 → 0.8.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 +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
|