xcake 0.1.9 → 0.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c32d304310a6972a5648aaf9840a54cab92ba5ae
4
- data.tar.gz: dbc4507c4707b1ad597e6cfdf8b11f5bbce02d82
3
+ metadata.gz: a76229bc308d9b57a4c42891547f723348af0449
4
+ data.tar.gz: 45cad23a965f70cf4fe2e3f95df7fa355955cfbb
5
5
  SHA512:
6
- metadata.gz: bcc2bfab552a1dd5c7a92e89f4f28ef410b4bf7c0f0e3799ef96c9dba44d9f537ac25c45d80ac01e4390d88fbb4efd2cea0b1a7d553dd329d3d21d98c8a5712f
7
- data.tar.gz: fac604ea2878ad89157b93822af2cfb827f7c39676eb22b3748df3e427ce5e666a4bd8f0bf986a396c250e814e500f3c180ec410b9622311bd626cbc0496b29b
6
+ metadata.gz: 4b67059835e24e4fe13fb0b326c699a1511e911e5187e86f0c3cdb7e132a10b7b6d2d88cadad08f4a4cfab754d26be8bd6b6588cb8b7ca7acc6049f5c45104ad
7
+ data.tar.gz: 64deb9435eb8bb6e4d446cc217f520dd4155b09f8bd27127ce949dc119923c81503f412c3280e037c22af185bffda69e48244e45edf4c5e082a56e9b58953f2e
@@ -1,10 +1,25 @@
1
+ v0.3.0
2
+ ======
3
+ - Simplified Watch OS target syntax.
4
+ - Fixes issue with `--version` not working for all installations.
5
+
6
+ v0.2.0
7
+ ======
8
+ - Now adds `--version` flag to command line, to allow you to find out Xcake's version.
9
+ - Brings naming of default build configurations closer to Xcode's, so that it works with existing build scripts.
10
+ - Adds support for Watch OS 2 Applications
11
+
12
+ v0.1.9
13
+ ======
14
+ - Updates documentation for tvOS and Watch OS support.
15
+
1
16
  v0.1.8
2
17
  ======
3
- - Add tvOS and Watch OS support (Thanks to @petester42)
18
+ - Add tvOS and Watch OS support (Thanks to @petester42).
4
19
 
5
20
  v0.1.7
6
21
  ======
7
- - Adds ability to set Project Class Prefix and Organization
22
+ - Adds ability to set Project Class Prefix and Organization.
8
23
 
9
24
  v0.1.6
10
25
  ======
@@ -17,24 +32,24 @@ v0.1.5
17
32
 
18
33
  v0.1.4
19
34
  ======
20
- - Removes references to "build_configurations" to just "configuration"
35
+ - Removes references to "build_configurations" to just "configuration".
21
36
  to make syntax shorter and to reflect the fact it's an abstraction and not directly
22
37
  a Xcode build configuration.
23
38
 
24
39
  v0.1.3
25
40
  ======
26
41
  - Reverts to an older GemSpec to fix installation issues.
27
- - Adds initial Getting Started documentation
42
+ - Adds initial Getting Started documentation.
28
43
 
29
44
  v0.1.2
30
45
  ======
31
- - Adds dependency information for Ruby and RubyGems versions
46
+ - Adds dependency information for Ruby and RubyGems versions.
32
47
 
33
48
  v0.1.1
34
49
  ======
35
- - Updated README instructions
36
- - General Tidy up of code
50
+ - Updated README instructions.
51
+ - General Tidy up of code.
37
52
 
38
53
  v0.1.0
39
54
  ======
40
- - Initial Release
55
+ - Initial Release.
data/Cakefile CHANGED
@@ -3,6 +3,8 @@ Project.new do |c|
3
3
  t.name = "test"
4
4
 
5
5
  t.all_configurations.supported_devices = :iphone_only
6
- c.unit_tests_for(t)
6
+
7
+ c.unit_tests_for t
8
+ c.watch_app_for t, 2.0
7
9
  end
8
10
  end
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xcake (0.1.9)
5
- claide
4
+ xcake (0.3.0)
5
+ claide (~> 0.9.1)
6
6
  xcodeproj (~> 0.28)
7
7
 
8
8
  GEM
@@ -78,11 +78,11 @@ PLATFORMS
78
78
 
79
79
  DEPENDENCIES
80
80
  bundler (~> 1.10)
81
- coveralls
81
+ coveralls (~> 0.8)
82
82
  rake (~> 10.0)
83
- rspec
83
+ rspec (~> 3.4.0)
84
84
  xcake!
85
- yard
85
+ yard (~> 0.8)
86
86
 
87
87
  BUNDLED WITH
88
88
  1.10.6
data/README.md CHANGED
@@ -59,7 +59,7 @@ xcake
59
59
  :page_with_curl: | Store **everything** but the project in git. Never again manually fix any corruptions or merge issues with the project.
60
60
  :rocket: | Saves you **hours** when working with xcode projects
61
61
  :anchor: | Confidence that the project file is exactly the same during Continuous Delivery
62
- :computer: | Support for both iOS and Mac OS apps
62
+ :computer: | Support for OSX, iOS and watchOS apps
63
63
 
64
64
  ## Installation
65
65
 
@@ -90,16 +90,13 @@ Please submit an issue on GitHub and provide information about your setup
90
90
 
91
91
  ## Roadmap
92
92
 
93
- :white_check_mark: Generate basic iOS or Mac application.
93
+ :white_check_mark: Create WatchOS applications.
94
94
 
95
- :white_check_mark: Generate from any computer, including a CI-server.
96
-
97
- :white_check_mark: Generate testing targets.
95
+ :white_medium_square: Create tvOS applications.
98
96
 
99
97
  :white_medium_square: Generate library targets.
100
98
 
101
- :white_medium_square: Generate extension or Watch OS targets.
102
-
99
+ :white_medium_square: Generate extensions.
103
100
 
104
101
  ## License
105
102
  This project is licensed under the terms of the MIT license. See the LICENSE file.
@@ -102,7 +102,7 @@ end
102
102
 
103
103
  ###Tests
104
104
 
105
- We can also specify a testing targets for other targets as well
105
+ We can also specify a testing targets for other targets as well:
106
106
 
107
107
  ```ruby
108
108
  Project.new "Workspace" do |project|
@@ -112,6 +112,18 @@ Project.new "Workspace" do |project|
112
112
  end
113
113
  ```
114
114
 
115
+ ###Watch
116
+
117
+ To create watch applications we can simply use the `watch_app_for` method:
118
+
119
+ ```ruby
120
+ Project.new "Workspace" do |project|
121
+ project.application_for :mac, 8.0 do |target|
122
+ project.watch_app_for target, 2.0
123
+ end
124
+ end
125
+ ```
126
+
115
127
  ###Custom Targets
116
128
 
117
129
  If these aren't enough for you then you can specify a target
@@ -1,5 +1,6 @@
1
1
  require "xcake/visitable"
2
2
  require "xcake/visitor"
3
+ require "xcake/version"
3
4
 
4
5
  require "xcake/command"
5
6
  require "xcake/configuration"
@@ -19,10 +20,10 @@ require "xcake/generator/project"
19
20
  require "xcake/generator/target"
20
21
 
21
22
  require "xcake/project"
23
+ require "xcake/project/sugar"
22
24
  require "xcake/project_structure_resolver"
23
25
  require "xcake/node"
24
26
  require "xcake/target"
25
- require "xcake/version"
26
27
 
27
28
  require "xcake/xcode/project"
28
29
  require "xcake/xcode/scheme"
@@ -4,6 +4,7 @@ module Xcake
4
4
  class Command < CLAide::Command
5
5
 
6
6
  self.command = 'xcake'
7
+ self.version = VERSION
7
8
  self.description = 'Create and maintain Xcode project files easily.'
8
9
 
9
10
  def run
@@ -71,68 +71,6 @@ module Xcake
71
71
  target
72
72
  end
73
73
 
74
- # Defines a new application target.
75
- #
76
- # @param [Symbol] platform
77
- # platform for the application, can be either `:ios`, `:osx`, `:tvos` or `:watchos`.
78
- #
79
- # @param [Float] deployment_target
80
- # the minimum deployment version for the platform.
81
- #
82
- # @param [Symbol] language
83
- # language for application, can be either `:objc` or `:swift`.
84
- #
85
- # @param [Proc] block
86
- # an optional block that configures the target through the DSL.
87
- #
88
- # @return [Target] the application target
89
- # the newly created application target
90
- #
91
- def application_for(platform, deployment_target, language=:objc, &block)
92
-
93
- application_target = target do |t|
94
- t.type = :application
95
- t.platform = platform
96
- t.deployment_target = deployment_target
97
- t.language = language
98
-
99
- block.call(t) if block_given?
100
- end
101
-
102
- application_target
103
- end
104
-
105
- # Defines a new unit test target.
106
- #
107
- # @param [Target] host_target
108
- # host target for which the unit tests are for.
109
- #
110
- # @param [Proc] block
111
- # an optional block that configures the target through the DSL.
112
- #
113
- # @return [Target] the unit test target
114
- # the newly created unit test target
115
- #
116
- def unit_tests_for(host_target, &block)
117
-
118
- unit_test_target = target do |t|
119
-
120
- t.name = "#{host_target.name}Tests"
121
-
122
- t.type = :unit_test_bundle
123
- t.platform = host_target.platform
124
- t.deployment_target = host_target.deployment_target
125
- t.language = host_target.language
126
-
127
- t.all_configurations.settings["TEST_HOST"] = "$(BUILT_PRODUCTS_DIR)/#{host_target.name}.app/#{host_target.name}"
128
- t.all_configurations.settings["BUNDLE_LOADER"] = "$(TEST_HOST)"
129
-
130
- block.call(t) if block_given?
131
- end
132
-
133
- unit_test_target
134
- end
135
-
136
74
  protected
137
75
 
138
76
  # Configurable
@@ -0,0 +1,94 @@
1
+ require "xcodeproj"
2
+
3
+ module Xcake
4
+ class Project
5
+ # Defines a new application target.
6
+ #
7
+ # @param [Symbol] platform
8
+ # platform for the application, can be either `:ios`, `:osx`, `:tvos` or `:watchos`.
9
+ #
10
+ # @param [Float] deployment_target
11
+ # the minimum deployment version for the platform.
12
+ #
13
+ # @param [Symbol] language
14
+ # language for application, can be either `:objc` or `:swift`.
15
+ #
16
+ # @param [Proc] block
17
+ # an optional block that configures the target through the DSL.
18
+ #
19
+ # @return [Target] the application target
20
+ # the newly created application target
21
+ #
22
+ def application_for(platform, deployment_target, language = :objc, &block)
23
+ target do |t|
24
+ t.type = :application
25
+ t.platform = platform
26
+ t.deployment_target = deployment_target
27
+ t.language = language
28
+
29
+ block.call(t) if block_given?
30
+ end
31
+ end
32
+
33
+ # Defines a new unit test target.
34
+ #
35
+ # @param [Target] host target
36
+ # host target for which the unit tests are for.
37
+ #
38
+ # @param [Proc] block
39
+ # an optional block that configures the target through the DSL.
40
+ #
41
+ # @return [Target] the unit test target
42
+ # the newly created unit test target
43
+ #
44
+ def unit_tests_for(host_target, &block)
45
+ target do |t|
46
+ t.name = "#{host_target.name}Tests"
47
+
48
+ t.type = :unit_test_bundle
49
+ t.platform = host_target.platform
50
+ t.deployment_target = host_target.deployment_target
51
+ t.language = host_target.language
52
+
53
+ t.all_configurations.settings["TEST_HOST"] = "$(BUILT_PRODUCTS_DIR)/#{host_target.name}.app/#{host_target.name}"
54
+ t.all_configurations.settings["BUNDLE_LOADER"] = "$(TEST_HOST)"
55
+
56
+ block.call(t) if block_given?
57
+ end
58
+ end
59
+
60
+ # Defines targets for watch app.
61
+ #
62
+ # @param [Target] watch app's compantion app
63
+ # iOS target for the watch app
64
+ #
65
+ # @param [Proc] block
66
+ # an optional block that configures the targets through the DSL.
67
+ #
68
+ # @return Void
69
+ #
70
+ def watch_app_for(host_target, deployment_target, language = :objc, &block)
71
+ watch_app_target = target do |t|
72
+ t.name = "#{host_target.name}-Watch"
73
+
74
+ t.type = :watch2_app
75
+ t.platform = :watchos
76
+ t.deployment_target = deployment_target
77
+ t.language = language
78
+ end
79
+
80
+ watch_extension_target = target do |t|
81
+ t.name = "#{host_target.name}-Watch Extension"
82
+
83
+ t.type = :watch2_extension
84
+ t.platform = :watchos
85
+ t.deployment_target = deployment_target
86
+ t.language = language
87
+ end
88
+
89
+ block.call(watch_app_target, watch_extension_target) if block_given?
90
+
91
+ return nil
92
+ end
93
+ end
94
+ end
@@ -21,8 +21,8 @@ module Xcake
21
21
 
22
22
  @project = project
23
23
 
24
- @project.debug_configuration :debug if @project.debug_configurations.count == 0
25
- @project.release_configuration :release if @project.release_configurations.count == 0
24
+ @project.debug_configuration :Debug if @project.debug_configurations.count == 0
25
+ @project.release_configuration :Release if @project.release_configurations.count == 0
26
26
  end
27
27
 
28
28
  def leave_project(project)
@@ -1,3 +1,3 @@
1
1
  module Xcake
2
- VERSION = "0.1.9"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -23,9 +23,9 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.10"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "rspec"
27
- spec.add_development_dependency "coveralls"
28
- spec.add_development_dependency "yard"
29
- spec.add_dependency "claide"
26
+ spec.add_development_dependency "rspec", "~> 3.4.0"
27
+ spec.add_development_dependency "coveralls", "~> 0.8"
28
+ spec.add_development_dependency "yard", "~> 0.8"
29
+ spec.add_dependency "claide", "~> 0.9.1"
30
30
  spec.add_dependency "xcodeproj", "~> 0.28"
31
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Campbell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-11 00:00:00.000000000 Z
11
+ date: 2015-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,58 +42,58 @@ dependencies:
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 3.4.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 3.4.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: coveralls
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '0.8'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '0.8'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: yard
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '0.8'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '0.8'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: claide
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 0.9.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: 0.9.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: xcodeproj
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -159,6 +159,7 @@ files:
159
159
  - lib/xcake/generator/target.rb
160
160
  - lib/xcake/node.rb
161
161
  - lib/xcake/project.rb
162
+ - lib/xcake/project/sugar.rb
162
163
  - lib/xcake/project_structure_resolver.rb
163
164
  - lib/xcake/target.rb
164
165
  - lib/xcake/version.rb