xcake 0.6.19 → 0.6.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/CHANGELOG.md +12 -1
- data/Gemfile.lock +8 -50
- data/README.md +1 -1
- data/Rakefile +3 -3
- data/_rubocop.yml +1 -1
- data/bin/console +2 -2
- data/bin/xcake +1 -1
- data/docs/Cakefile.md +17 -10
- data/docs/Xcode Project Support.md +1 -0
- data/fastlane-plugin-xcake/README.md +1 -1
- data/fastlane-plugin-xcake/Rakefile +3 -3
- data/fastlane-plugin-xcake/fastlane-plugin-xcake.gemspec +5 -5
- data/fastlane-plugin-xcake/lib/fastlane/plugin/xcake/actions/xcake_action.rb +3 -3
- data/lib/xcake/command/init.rb +4 -4
- data/lib/xcake/command/make.rb +7 -18
- data/lib/xcake/command.rb +5 -6
- data/lib/xcake/configurable.rb +24 -10
- data/lib/xcake/configuration/proxies/preproccessor_definitions_setting_proxy.rb +1 -1
- data/lib/xcake/configuration/sugar.rb +7 -7
- data/lib/xcake/configuration.rb +3 -4
- data/lib/xcake/context/xcodeproj_context.rb +10 -7
- data/lib/xcake/context.rb +3 -0
- data/lib/xcake/core_ext/array.rb +5 -0
- data/lib/xcake/core_ext/object.rb +7 -0
- data/lib/xcake/core_ext/string.rb +3 -3
- data/lib/xcake/dependency.rb +4 -9
- data/lib/xcake/dependency_provider.rb +11 -16
- data/lib/xcake/file_reference_installer/compile_source_file_reference_installer.rb +1 -2
- data/lib/xcake/file_reference_installer/compile_xcdatamodeld_file_reference_installer.rb +2 -5
- data/lib/xcake/file_reference_installer/copy_resources_file_reference_installer.rb +3 -4
- data/lib/xcake/file_reference_installer/copy_xcassets_file_reference_installer.rb +2 -5
- data/lib/xcake/file_reference_installer/link_library_file_reference_installer.rb +9 -3
- data/lib/xcake/file_reference_installer.rb +8 -4
- data/lib/xcake/generator/configuration_generator.rb +6 -15
- data/lib/xcake/generator/project_generator.rb +2 -3
- data/lib/xcake/generator/project_metadata_generator.rb +1 -1
- data/lib/xcake/generator/project_structure_generator.rb +2 -8
- data/lib/xcake/generator/scheme_generator.rb +1 -3
- data/lib/xcake/generator/target_build_phase_generator.rb +8 -10
- data/lib/xcake/generator/target_custom_build_phase_generator.rb +0 -1
- data/lib/xcake/generator/target_file_reference_generator.rb +6 -14
- data/lib/xcake/generator/target_framework_generator.rb +3 -1
- data/lib/xcake/generator/target_library_generator.rb +3 -3
- data/lib/xcake/generator.rb +4 -3
- data/lib/xcake/informative.rb +3 -4
- data/lib/xcake/node.rb +11 -17
- data/lib/xcake/plugin.rb +8 -16
- data/lib/xcake/project/hooks.rb +1 -1
- data/lib/xcake/project/sugar.rb +12 -13
- data/lib/xcake/project.rb +3 -5
- data/lib/xcake/resources/Cakefile +2 -2
- data/lib/xcake/target/sugar.rb +1 -1
- data/lib/xcake/target.rb +22 -23
- data/lib/xcake/ui.rb +0 -3
- data/lib/xcake/version.rb +1 -1
- data/lib/xcake/visitor.rb +0 -1
- data/lib/xcake/xcode/project.rb +162 -135
- data/lib/xcake/xcode/scheme_list.rb +9 -11
- data/lib/xcake.rb +36 -58
- data/xcake.gemspec +20 -22
- metadata +8 -21
- data/lib/xcake/file_reference_installer/xcconfig_file_reference_installer.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10ab3f2002a23f912cbc8a2eac97c2810d0eedec
|
4
|
+
data.tar.gz: 32df4ea91d423def8d317897ba5dbcd9e666a4e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff9b96ac30820b273bc8c2ee45c8f7c17d17d976eacfe36b8c54c0b31dc8ebb64d30f67a2a55244479bc3ef5bc8514f7eac3cc70c50e1e54af734b0dbbc5bd4f
|
7
|
+
data.tar.gz: f6bb209ab0f2e521ad862648c9dbca5e4a0d3bbe923648d78939e4195d4055d71105cbbb153515cf59ff09c817c08ad933a42ed7090a735f4e8e4250bc6c6e79
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
v0.6.20
|
2
|
+
=======
|
3
|
+
- When adding a file to a group, Xcode will now open the correct folder.
|
4
|
+
- Adds support for adding third-party frameworks.
|
5
|
+
- Fixes `all_configurations` not returning all configurations when using implicit configurations.
|
6
|
+
- Names of the implicit configurations match the default configurations for Xcode projects.
|
7
|
+
- Fixes out of date documentation.
|
8
|
+
- Fixes typos and out of date API used in `xcake init` template.
|
9
|
+
- Removes dependency on `Molinillo` for internal dependency resolution.
|
10
|
+
- Fixes issues with adding XCConfig.
|
11
|
+
|
1
12
|
v0.6.19
|
2
13
|
=======
|
3
14
|
- Uses the reccomended code signing settings from Apple.
|
@@ -31,7 +42,7 @@ v0.6.13
|
|
31
42
|
|
32
43
|
v0.6.12
|
33
44
|
=======
|
34
|
-
- Fixes issues when resolving project
|
45
|
+
- Fixes issues when resolving project with implicit configurations.
|
35
46
|
|
36
47
|
v0.6.11
|
37
48
|
=======
|
data/Gemfile.lock
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
xcake (0.6.
|
4
|
+
xcake (0.6.20)
|
5
5
|
claide (>= 0.9.1, < 2.0)
|
6
|
+
colored
|
6
7
|
hooks (~> 0.4.1)
|
7
|
-
molinillo
|
8
|
-
tty (~> 0.3.2)
|
9
8
|
xcodeproj (>= 0.20, < 2.0.0)
|
10
9
|
|
11
10
|
GEM
|
@@ -29,20 +28,14 @@ GEM
|
|
29
28
|
tins (~> 1.6.0)
|
30
29
|
diff-lcs (1.2.5)
|
31
30
|
docile (1.1.5)
|
32
|
-
equatable (0.5.0)
|
33
31
|
hooks (0.4.1)
|
34
32
|
uber (~> 0.0.14)
|
35
33
|
i18n (0.7.0)
|
36
34
|
json (1.8.3)
|
37
35
|
method_source (0.8.2)
|
38
36
|
minitest (5.9.0)
|
39
|
-
molinillo (0.4.5)
|
40
|
-
necromancer (0.3.0)
|
41
37
|
parser (2.3.1.0)
|
42
38
|
ast (~> 2.2)
|
43
|
-
pastel (0.5.3)
|
44
|
-
equatable (~> 0.5.0)
|
45
|
-
tty-screen (~> 0.4.3)
|
46
39
|
powerpack (0.1.1)
|
47
40
|
pry (0.10.3)
|
48
41
|
coderay (~> 1.1.0)
|
@@ -63,12 +56,14 @@ GEM
|
|
63
56
|
diff-lcs (>= 1.2.0, < 2.0)
|
64
57
|
rspec-support (~> 3.4.0)
|
65
58
|
rspec-support (3.4.1)
|
66
|
-
rubocop (0.
|
67
|
-
parser (>= 2.3.0
|
59
|
+
rubocop (0.40.0)
|
60
|
+
parser (>= 2.3.1.0, < 3.0)
|
68
61
|
powerpack (~> 0.1)
|
69
62
|
rainbow (>= 1.99.1, < 3.0)
|
70
63
|
ruby-progressbar (~> 1.7)
|
71
64
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
65
|
+
rubocop-git (0.1.1)
|
66
|
+
rubocop (>= 0.24.1)
|
72
67
|
ruby-progressbar (1.8.1)
|
73
68
|
simplecov (0.11.2)
|
74
69
|
docile (~> 1.1.0)
|
@@ -81,47 +76,10 @@ GEM
|
|
81
76
|
thor (0.19.1)
|
82
77
|
thread_safe (0.3.5)
|
83
78
|
tins (1.6.0)
|
84
|
-
tty (0.3.2)
|
85
|
-
equatable (~> 0.5.0)
|
86
|
-
pastel (~> 0.5.1)
|
87
|
-
tty-cursor (~> 0.1.0)
|
88
|
-
tty-pager (~> 0.3.0)
|
89
|
-
tty-platform (~> 0.1.0)
|
90
|
-
tty-progressbar (~> 0.7.0)
|
91
|
-
tty-prompt (~> 0.2.0)
|
92
|
-
tty-screen (~> 0.4.0)
|
93
|
-
tty-spinner (~> 0.1.0)
|
94
|
-
tty-table (~> 0.4.0)
|
95
|
-
tty-which (~> 0.1.0)
|
96
|
-
tty-cursor (0.1.0)
|
97
|
-
tty-pager (0.3.0)
|
98
|
-
tty-screen (~> 0.4.0)
|
99
|
-
tty-which (~> 0.1.0)
|
100
|
-
verse (~> 0.4.0)
|
101
|
-
tty-platform (0.1.0)
|
102
|
-
tty-progressbar (0.7.0)
|
103
|
-
tty-screen (~> 0.4.0)
|
104
|
-
tty-prompt (0.2.0)
|
105
|
-
necromancer (~> 0.3.0)
|
106
|
-
pastel (~> 0.5.1)
|
107
|
-
tty-platform (~> 0.1.0)
|
108
|
-
tty-screen (0.4.3)
|
109
|
-
tty-spinner (0.1.0)
|
110
|
-
tty-table (0.4.0)
|
111
|
-
equatable (~> 0.5.0)
|
112
|
-
necromancer (~> 0.3.0)
|
113
|
-
pastel (~> 0.5.1)
|
114
|
-
tty-screen (~> 0.4.0)
|
115
|
-
unicode_utils (~> 1.4.0)
|
116
|
-
verse (~> 0.4.0)
|
117
|
-
tty-which (0.1.0)
|
118
79
|
tzinfo (1.2.2)
|
119
80
|
thread_safe (~> 0.1)
|
120
81
|
uber (0.0.15)
|
121
82
|
unicode-display_width (1.0.5)
|
122
|
-
unicode_utils (1.4.0)
|
123
|
-
verse (0.4.0)
|
124
|
-
unicode_utils (~> 1.4.0)
|
125
83
|
xcodeproj (1.0.0)
|
126
84
|
activesupport (>= 3)
|
127
85
|
claide (>= 1.0.0, < 2.0)
|
@@ -137,9 +95,9 @@ DEPENDENCIES
|
|
137
95
|
pry (~> 0.10)
|
138
96
|
rake (~> 10.0)
|
139
97
|
rspec (~> 3.4.0)
|
140
|
-
rubocop (~> 0.
|
98
|
+
rubocop-git (~> 0.1.1)
|
141
99
|
xcake!
|
142
100
|
yard (~> 0.8)
|
143
101
|
|
144
102
|
BUNDLED WITH
|
145
|
-
1.
|
103
|
+
1.11.2
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/LICENSE)
|
5
5
|
[![Build Status](https://img.shields.io/travis/jcampbell05/xcake/master.svg?style=flat)](https://travis-ci.org/jcampbell05/xcake)
|
6
6
|
[![Test Coverage](https://img.shields.io/coveralls/jcampbell05/xcake/master.svg)](https://coveralls.io/github/jcampbell05/xcake)
|
7
|
-
[![Gem](https://
|
7
|
+
[![Gem](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-xcake)
|
8
8
|
|
9
9
|
###Xcode projects made a piece of cake.
|
10
10
|
|
data/Rakefile
CHANGED
data/_rubocop.yml
CHANGED
data/bin/console
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'bundler/setup'
|
4
4
|
|
5
5
|
# You can add fixtures and/or initialization code here to make experimenting
|
6
6
|
# with your gem easier. You can also use a different console, if you like.
|
7
7
|
|
8
8
|
# (If you use this, don't forget to add pry to your Gemfile!)
|
9
|
-
require
|
9
|
+
require 'pry'
|
10
10
|
Pry.start
|
data/bin/xcake
CHANGED
data/docs/Cakefile.md
CHANGED
@@ -51,7 +51,7 @@ project.project_name = "Project"
|
|
51
51
|
Sets the filename for the project
|
52
52
|
|
53
53
|
```ruby
|
54
|
-
project.
|
54
|
+
project.name = "Project"
|
55
55
|
```
|
56
56
|
|
57
57
|
#### Class Prefix
|
@@ -98,7 +98,7 @@ We can also specify a testing targets for other targets as well:
|
|
98
98
|
|
99
99
|
```ruby
|
100
100
|
application_for :mac, 8.0 do |target|
|
101
|
-
unit_tests_for target
|
101
|
+
unit_tests_for target
|
102
102
|
end
|
103
103
|
```
|
104
104
|
|
@@ -110,14 +110,14 @@ If you want to manually control configuration of unit tests targets (and/or have
|
|
110
110
|
application_for :mac, 8.0 do |target|
|
111
111
|
|
112
112
|
unit_tests_for target do |test_target|
|
113
|
-
|
113
|
+
|
114
114
|
test_target.name = "MyAwesomeTests"
|
115
115
|
test_target.include_files = ["Tests/**/*.*"]
|
116
|
-
|
116
|
+
|
117
117
|
# configure any other target-related properties
|
118
118
|
# as you would do with normal target
|
119
119
|
|
120
|
-
end
|
120
|
+
end
|
121
121
|
end
|
122
122
|
```
|
123
123
|
|
@@ -258,6 +258,8 @@ end
|
|
258
258
|
We can apply a particular shared setting across all of our configurations.
|
259
259
|
Xcake provides a simply way of doing this via an "all" configuration.
|
260
260
|
|
261
|
+
This will return an array of all of the currently declared configurations.
|
262
|
+
|
261
263
|
```ruby
|
262
264
|
all_configurations.each { |c| c.supported_devices = :iphone_only }
|
263
265
|
```
|
@@ -289,9 +291,6 @@ it also has its own hiearchy of settings, which are in the following order
|
|
289
291
|
- Default Settings
|
290
292
|
These are the sensible defaults xcake provides for the configuration.
|
291
293
|
|
292
|
-
- All Settings
|
293
|
-
These are any settings set via the "All" configuration
|
294
|
-
|
295
294
|
- Custom Settings
|
296
295
|
These are the settings set directly on the configuration.
|
297
296
|
|
@@ -305,15 +304,23 @@ Sets the name of the configuration
|
|
305
304
|
configuration.name = "Release"
|
306
305
|
```
|
307
306
|
|
307
|
+
#### Configuration File
|
308
|
+
|
309
|
+
Sets the path to a XCConfig file to inherit build settings from.
|
310
|
+
|
311
|
+
```ruby
|
312
|
+
configuration.configuration_file = "Files/Settings.xcconfig"
|
313
|
+
```
|
314
|
+
|
308
315
|
#### Build Settings
|
309
316
|
|
310
317
|
A hash of all the build settings for a configuration
|
311
318
|
|
312
319
|
```ruby
|
313
|
-
configuration.
|
320
|
+
configuration.settings["ENABLE_BITCODE"] = false
|
314
321
|
```
|
315
322
|
|
316
|
-
###Build Settings Shortcuts
|
323
|
+
### Build Settings Shortcuts
|
317
324
|
|
318
325
|
Xcake also provides some shortcuts for some more common build settings.
|
319
326
|
|
@@ -35,6 +35,7 @@ This document describes the level of support Xcake has for the various aspects o
|
|
35
35
|
- Specify build settings
|
36
36
|
- Used to create build configuration for project and targets.
|
37
37
|
- Used to create schemes for applications
|
38
|
+
- Set XCConfig to inherit settings from.
|
38
39
|
|
39
40
|
## Scheme
|
40
41
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# xcake `fastlane` Plugin
|
2
2
|
|
3
|
-
[![Gem](https://
|
3
|
+
[![Gem](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-xcake)
|
4
4
|
|
5
5
|
## Getting Started
|
6
6
|
|
@@ -6,12 +6,12 @@ require 'fastlane/plugin/xcake/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'fastlane-plugin-xcake'
|
8
8
|
spec.version = Fastlane::Xcake::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['James Campbell']
|
10
|
+
spec.email = ['james@supmenow.com']
|
11
11
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
14
|
-
spec.homepage =
|
12
|
+
spec.summary = 'DSL for Xcode Projects.'
|
13
|
+
spec.description = 'Create your Xcode projects automatically using a stupid simple DSL.'
|
14
|
+
spec.homepage = 'https://github.com/jcampbell05/xcake/'
|
15
15
|
spec.license = 'MIT'
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
3
|
class XcakeAction < Action
|
4
|
-
def self.run(
|
4
|
+
def self.run(_params)
|
5
5
|
require 'xcake'
|
6
6
|
|
7
7
|
if defined?(::Xcake::Command::Make)
|
@@ -14,7 +14,7 @@ module Fastlane
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def self.description
|
17
|
-
|
17
|
+
'Runs `xcake` for the project'
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.available_options
|
@@ -27,7 +27,7 @@ module Fastlane
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def self.authors
|
30
|
-
[
|
30
|
+
['jcampbell05']
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
data/lib/xcake/command/init.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
module Xcake
|
2
2
|
class Command
|
3
3
|
class Init < Command
|
4
|
-
self.summary =
|
5
|
-
self.description =
|
4
|
+
self.summary = 'Initilises an example Cakefile for creating a project'
|
5
|
+
self.description = 'Initilises an example Cakefile for creating a project'
|
6
6
|
|
7
7
|
def run
|
8
8
|
cakefile_path = "#{File.dirname(__FILE__)}/../resources/Cakefile"
|
9
9
|
cakefile_contents = File.read(cakefile_path)
|
10
|
-
File.write(
|
10
|
+
File.write('Cakefile', cakefile_contents)
|
11
11
|
|
12
|
-
puts
|
12
|
+
puts 'Open Cakefile to edit and run xcake make to get your xcode project'
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
data/lib/xcake/command/make.rb
CHANGED
@@ -1,11 +1,8 @@
|
|
1
|
-
require 'molinillo'
|
2
|
-
|
3
|
-
#TODO: Reduce lines of code here :)
|
4
1
|
module Xcake
|
5
2
|
class Command
|
6
3
|
class Make < Command
|
7
|
-
self.summary =
|
8
|
-
self.description =
|
4
|
+
self.summary = 'Makes the Xcode project from a Cakefile'
|
5
|
+
self.description = 'Makes the Xcode project from a Cakefile'
|
9
6
|
|
10
7
|
def run
|
11
8
|
file_path = "#{Dir.pwd}/Cakefile"
|
@@ -14,25 +11,17 @@ module Xcake
|
|
14
11
|
raise Xcake::Informative, "Couldn't find Cakefile"
|
15
12
|
end
|
16
13
|
|
17
|
-
puts
|
14
|
+
puts 'Reading Cakefile...'
|
18
15
|
file_contents = File.read(file_path)
|
19
16
|
|
20
17
|
project = Project.new
|
21
|
-
project.instance_eval(file_contents)
|
18
|
+
project.instance_eval(file_contents, file_path)
|
22
19
|
|
23
20
|
context = XcodeprojContext.new
|
24
21
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
#TODO: Don't use class as name
|
30
|
-
dependency_provider = DependencyProvider.new(repository)
|
31
|
-
resolver = Molinillo::Resolver.new(dependency_provider, UI.new)
|
32
|
-
resolution = resolver.resolve(Generator.repository)
|
33
|
-
resolution.tsort.map do |g|
|
34
|
-
#puts "Running #{g.name}..."
|
35
|
-
generator = g.name.new(context)
|
22
|
+
dependency_provider = DependencyProvider.new(Generator)
|
23
|
+
dependency_provider.tsort.each do |g|
|
24
|
+
generator = g.new(context)
|
36
25
|
project.accept(generator)
|
37
26
|
end
|
38
27
|
end
|
data/lib/xcake/command.rb
CHANGED
@@ -1,15 +1,14 @@
|
|
1
|
-
require
|
1
|
+
require 'claide'
|
2
2
|
|
3
3
|
module Xcake
|
4
4
|
class Command < CLAide::Command
|
5
|
-
|
6
|
-
require
|
7
|
-
require "xcake/command/make"
|
5
|
+
require 'xcake/command/init'
|
6
|
+
require 'xcake/command/make'
|
8
7
|
|
9
8
|
self.abstract_command = true
|
10
|
-
self.command =
|
9
|
+
self.command = 'xcake'
|
11
10
|
self.version = VERSION
|
12
|
-
self.description =
|
11
|
+
self.description = 'Create and maintain Xcode project files easily.'
|
13
12
|
self.plugin_prefixes = %w(claide xcake)
|
14
13
|
end
|
15
14
|
end
|
data/lib/xcake/configurable.rb
CHANGED
@@ -12,7 +12,6 @@ module Xcake
|
|
12
12
|
# end
|
13
13
|
#
|
14
14
|
module Configurable
|
15
|
-
|
16
15
|
private
|
17
16
|
|
18
17
|
attr_accessor :configurations
|
@@ -25,14 +24,28 @@ module Xcake
|
|
25
24
|
if @configurations.nil?
|
26
25
|
@configurations = []
|
27
26
|
|
28
|
-
parent_configurable.all_configurations
|
29
|
-
|
30
|
-
|
27
|
+
if parent_configurable && parent_configurable.all_configurations
|
28
|
+
copy_parent_configurations
|
29
|
+
else
|
30
|
+
debug_configuration :Debug
|
31
|
+
release_configuration :Release
|
32
|
+
end
|
33
|
+
|
31
34
|
end
|
32
35
|
|
33
36
|
@configurations
|
34
37
|
end
|
35
38
|
|
39
|
+
private
|
40
|
+
|
41
|
+
def copy_parent_configurations
|
42
|
+
parent_configurable.all_configurations.each do |c|
|
43
|
+
configuration(c.name, c.type)
|
44
|
+
end if parent_configurable
|
45
|
+
end
|
46
|
+
|
47
|
+
public
|
48
|
+
|
36
49
|
# @param [Array<Configuration>] new list of configurations to set
|
37
50
|
#
|
38
51
|
def all_configurations=(configurations)
|
@@ -42,7 +55,9 @@ module Xcake
|
|
42
55
|
# @return [Array<Configuration>] list of configurations of a type
|
43
56
|
#
|
44
57
|
def configurations_of_type(type)
|
45
|
-
|
58
|
+
return [] if @configurations.nil?
|
59
|
+
|
60
|
+
@configurations.select do |c|
|
46
61
|
c.type == type
|
47
62
|
end
|
48
63
|
end
|
@@ -76,8 +91,7 @@ module Xcake
|
|
76
91
|
#
|
77
92
|
# @return [Configuration] the new or existing configuration
|
78
93
|
#
|
79
|
-
def configuration(name, type
|
80
|
-
|
94
|
+
def configuration(name, type)
|
81
95
|
default_settings = default_settings_for_type(type)
|
82
96
|
configurations = configurations_of_type(type)
|
83
97
|
|
@@ -94,14 +108,14 @@ module Xcake
|
|
94
108
|
name = type.to_s.capitalize if name.nil?
|
95
109
|
|
96
110
|
build_configuration = Configuration.new(name) do |b|
|
97
|
-
|
98
111
|
b.type = type
|
99
112
|
b.settings.merge!(default_settings)
|
100
113
|
|
101
|
-
|
114
|
+
yield(b) if block_given?
|
102
115
|
end
|
103
116
|
|
104
|
-
|
117
|
+
@configurations ||= []
|
118
|
+
@configurations << build_configuration
|
105
119
|
end
|
106
120
|
|
107
121
|
build_configuration
|
@@ -4,10 +4,10 @@ module Xcake
|
|
4
4
|
# supported_devices setting
|
5
5
|
#
|
6
6
|
SUPPORTED_DEVICES = {
|
7
|
-
iphone_only:
|
8
|
-
ipad_only:
|
9
|
-
universal:
|
10
|
-
}
|
7
|
+
iphone_only: '1',
|
8
|
+
ipad_only: '2',
|
9
|
+
universal: '1,2'
|
10
|
+
}.freeze
|
11
11
|
|
12
12
|
# Convienence method to easily set the
|
13
13
|
# supported devices for a application.
|
@@ -25,14 +25,14 @@ module Xcake
|
|
25
25
|
#
|
26
26
|
def supported_devices=(devices)
|
27
27
|
supported_devices = SUPPORTED_DEVICES[devices]
|
28
|
-
settings[
|
28
|
+
settings['TARGETED_DEVICE_FAMILY'] = supported_devices
|
29
29
|
end
|
30
30
|
|
31
31
|
# Convienience method to easily set the
|
32
32
|
# product's bundle identifier
|
33
33
|
#
|
34
34
|
def product_bundle_identifier=(identifier)
|
35
|
-
settings[
|
35
|
+
settings['PRODUCT_BUNDLE_IDENTIFIER'] = identifier
|
36
36
|
end
|
37
37
|
|
38
38
|
# Convienence method to easily set preprocessor directives
|
@@ -40,7 +40,7 @@ module Xcake
|
|
40
40
|
def preprocessor_definitions
|
41
41
|
PreprocessorDefinitionsSettingProxy.new(
|
42
42
|
settings,
|
43
|
-
|
43
|
+
'GCC_PREPROCESSOR_DEFINITIONS'
|
44
44
|
)
|
45
45
|
end
|
46
46
|
end
|
data/lib/xcake/configuration.rb
CHANGED
@@ -11,7 +11,6 @@ module Xcake
|
|
11
11
|
# target.
|
12
12
|
#
|
13
13
|
class Configuration
|
14
|
-
|
15
14
|
include Visitable
|
16
15
|
|
17
16
|
# @return [String] the name of the configuration
|
@@ -30,7 +29,7 @@ module Xcake
|
|
30
29
|
#
|
31
30
|
attr_accessor :settings
|
32
31
|
|
33
|
-
# @return [String] the
|
32
|
+
# @return [String] the path of the xcconfig file to use for
|
34
33
|
# the build configuration.
|
35
34
|
#
|
36
35
|
# This is resolved to a PBXFileReference.
|
@@ -51,11 +50,11 @@ module Xcake
|
|
51
50
|
# c.settings["INFO_PLIST"] = "./myapp/info.plist"
|
52
51
|
# end
|
53
52
|
#
|
54
|
-
def initialize(name
|
53
|
+
def initialize(name)
|
55
54
|
self.name = name.to_s
|
56
55
|
self.settings = {}
|
57
56
|
|
58
|
-
|
57
|
+
yield(self) if block_given?
|
59
58
|
end
|
60
59
|
end
|
61
60
|
end
|
@@ -1,8 +1,7 @@
|
|
1
|
-
require
|
1
|
+
require 'xcodeproj'
|
2
2
|
|
3
3
|
module Xcake
|
4
4
|
class XcodeprojContext
|
5
|
-
|
6
5
|
include Context
|
7
6
|
|
8
7
|
attr_accessor :project
|
@@ -18,12 +17,12 @@ module Xcake
|
|
18
17
|
when Node
|
19
18
|
create_object_for_node(dsl_object)
|
20
19
|
else
|
21
|
-
abort
|
20
|
+
abort 'DSL Object not recognized!'
|
22
21
|
end
|
23
22
|
end
|
24
23
|
|
25
24
|
def create_object_for_project(project)
|
26
|
-
puts
|
25
|
+
puts 'Creating Project...'
|
27
26
|
|
28
27
|
# TODO: Make setup of project testable
|
29
28
|
@project = Xcode::Project.new("./#{project.name}.xcodeproj", true)
|
@@ -32,18 +31,22 @@ module Xcake
|
|
32
31
|
end
|
33
32
|
|
34
33
|
def create_object_for_target(target)
|
35
|
-
puts
|
34
|
+
puts 'Creating Target...'
|
36
35
|
@project.new_target(target)
|
37
36
|
end
|
38
37
|
|
39
38
|
def create_object_for_configuration(configuration)
|
40
|
-
puts
|
39
|
+
puts 'Creating Configuration...'
|
41
40
|
@project.new_configuration(configuration)
|
42
41
|
end
|
43
42
|
|
44
43
|
def create_object_for_node(node)
|
45
|
-
puts
|
44
|
+
puts 'Creating Group...'
|
46
45
|
@project.new_group(node)
|
47
46
|
end
|
47
|
+
|
48
|
+
def file_reference_for_path(path)
|
49
|
+
@project.reference_for_path(path) || @project.new_file_reference(path)
|
50
|
+
end
|
48
51
|
end
|
49
52
|
end
|