xcake 0.8.7 → 0.8.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dd7178c2123a0e99b494a38ceeecf951b2a3ef69
4
- data.tar.gz: 742d21455bed4535cbd13fb784a899846ff32cd2
3
+ metadata.gz: 1802f2f635b1f4daca3fec198198529c86bd504f
4
+ data.tar.gz: cddcd4405e47645d29258fe2cf924351869fac4f
5
5
  SHA512:
6
- metadata.gz: 13704323b6ca0271d5e68feeedceec35c909f161804820b1292c93757a90526ef96c11d5caf5436020e0dc9184a2e33d08bc284b07bb0f4ee28620cf5dbf4512
7
- data.tar.gz: 49346eb8659f925aa61a7d60bddacab3473352360cc8178cc6444d129e0fe2278554f91cc5a1fb91dd309577209a94904b91d5b7328e4cf9c63fd641e2b754b4
6
+ metadata.gz: c3d64333621cee9c34d8fc7cefb9a01e8567ac40b55c0f83316dfc9d973d5c7f7cdfaaf65dd7060131a74187bdf2e3cdaac94d7decb86c7e762d5448764e3291
7
+ data.tar.gz: b1cf9bd3bd3306d997e40a6be0324f4cff88fff6b9ef7b460f2323b810283fdb0fa013bdaddc15b2caf546748fa1525df1bafd79008e329ed73ce5d805c6ce81
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ v0.8.8
2
+ ======
3
+ - Adds Copy Files build phase
4
+ - Clears project before recreating it to prevent any errors
5
+ - Fixes xcode prompting for "reccomended defaults"
6
+
1
7
  v0.8.7
2
8
  ======
3
9
  - Adds ability to specify shell script build phase before all other build phases.
data/lib/xcake.rb CHANGED
@@ -48,6 +48,7 @@ require 'xcake/dsl/target/configurable'
48
48
  require 'xcake/dsl/build_phase'
49
49
  require 'xcake/dsl/build_phase/headers_build_phase'
50
50
  require 'xcake/dsl/build_phase/shell_script_build_phase'
51
+ require 'xcake/dsl/build_phase/copy_files_build_phase'
51
52
 
52
53
  module Xcake
53
54
  end
@@ -27,7 +27,14 @@ module Xcake
27
27
  end
28
28
 
29
29
  def create_object_for_project(project)
30
- @project = Xcode::Project.new("./#{project.name}.xcodeproj", true)
30
+
31
+ project_path = "./#{project.name}.xcodeproj"
32
+
33
+ if File.exist?(project_path)
34
+ FileUtils.remove_dir(project_path)
35
+ end
36
+
37
+ @project = Xcode::Project.new(project_path, true)
31
38
  @project.setup_for_xcake
32
39
  @project
33
40
  end
@@ -0,0 +1,28 @@
1
+ module Xcake
2
+ # This class is used to represent a copy files build phase
3
+ #
4
+ class CopyFilesBuildPhase < BuildPhase
5
+ # The name of the build phase as shown in Xcode
6
+ attr_accessor :name
7
+
8
+ # The name of files to copy
9
+ attr_accessor :files
10
+
11
+ def build_phase_type
12
+ Xcodeproj::Project::Object::PBXCopyFilesBuildPhase
13
+ end
14
+
15
+ def configure_native_build_phase(native_build_phase, _context)
16
+ native_build_phase.name = name
17
+
18
+ @files.each do |file|
19
+ file_reference = context.file_reference_for_path(file)
20
+ native_build_phase.add_file_reference(file_reference)
21
+ end
22
+ end
23
+
24
+ def to_s
25
+ "BuildPhase<#{name}>"
26
+ end
27
+ end
28
+ end
@@ -2,6 +2,24 @@ require 'xcodeproj'
2
2
 
3
3
  module Xcake
4
4
  class Target
5
+ # Creates a new Copy Files build phase for the
6
+ # target
7
+ #
8
+ # @param [String] name
9
+ # the name to use for the build phase
10
+ #
11
+ # @param [Proc] block
12
+ # an optional block that configures the build phase through the DSL.
13
+ #
14
+ # @return [CopyFilesBuildPhase] the new xcode build phase
15
+ #
16
+ def copy_files_build_phase(name, &block)
17
+ phase = CopyFilesBuildPhase.new(&block)
18
+ phase.name = name
19
+ build_phases << phase
20
+ phase
21
+ end
22
+
5
23
  # Creates a new Copy Headers build phase for the
6
24
  # target
7
25
  #
@@ -15,12 +15,11 @@ module Xcake
15
15
 
16
16
  target.schemes.each do |scheme|
17
17
 
18
- scheme_list.supress_autocreation_of_target(native_target)
18
+ scheme_list.supress_autocreation_of_target(native_target)
19
19
 
20
- native_scheme = @context.native_object_for(scheme)
21
- native_scheme.name = scheme.name
20
+ native_scheme = @context.native_object_for(scheme)
21
+ native_scheme.name = scheme.name
22
22
 
23
- #TODO: Find multiple testing targets, move this into the DSL ?
24
23
  native_project = @context.native_object_for(@project)
25
24
  native_unit_test_target = native_project.find_unit_test_target_for_target(target)
26
25
 
@@ -28,6 +27,12 @@ module Xcake
28
27
  scheme_list.supress_autocreation_of_target(native_unit_test_target)
29
28
  end
30
29
 
30
+ # TODO: Spec
31
+ if native_target.library_target_type?
32
+ build_action = native_scheme.build_action
33
+ build_action.build_for_running(true)
34
+ end
35
+
31
36
  native_scheme.configure_with_targets(native_target, native_unit_test_target)
32
37
  native_scheme.test_action.build_configuration = scheme.test_configuration
33
38
  native_scheme.launch_action.build_configuration = scheme.launch_configuration
data/lib/xcake/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Xcake
2
- VERSION = '0.8.7'.freeze
2
+ VERSION = '0.8.8'.freeze
3
3
  end
@@ -7,6 +7,15 @@ module Xcodeproj
7
7
  def build_phase_by_class(phase_class)
8
8
  find_or_create_build_phase_by_class(phase_class)
9
9
  end
10
+
11
+ def library_target_type?
12
+ case symbol_type
13
+ when :framework, :dynamic_library, :static_library
14
+ true
15
+ else
16
+ false
17
+ end
18
+ end
10
19
  end
11
20
  end
12
21
  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.8.7
4
+ version: 0.8.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Campbell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-23 00:00:00.000000000 Z
11
+ date: 2017-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: claide
@@ -236,6 +236,7 @@ files:
236
236
  - lib/xcake/dependency.rb
237
237
  - lib/xcake/dependency_provider.rb
238
238
  - lib/xcake/dsl/build_phase.rb
239
+ - lib/xcake/dsl/build_phase/copy_files_build_phase.rb
239
240
  - lib/xcake/dsl/build_phase/headers_build_phase.rb
240
241
  - lib/xcake/dsl/build_phase/shell_script_build_phase.rb
241
242
  - lib/xcake/dsl/configurable.rb