xcake 0.8.7 → 0.8.8

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: 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