xcake 0.8.9 → 0.8.10

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: 86c372ce021180935c67107696f5e8e55fa36ffe
4
- data.tar.gz: 25674ec3f215c50ade468d5b75dbbf70447d2cb7
3
+ metadata.gz: 6858ef15a3027664fd7f953f91e79482b66d26a5
4
+ data.tar.gz: 67a4a8498f51c731b32011ae958f648e09294b22
5
5
  SHA512:
6
- metadata.gz: b1a7f95ce97de5a13b66d94d60c14a788a3c1e21b988c79c2e43b651d65ddbc62e40d7fc0e90911b93afa04818f102f38848465bf442e42c3eda83b46737950c
7
- data.tar.gz: 471f33c6788b1dfaed7af4b812ac206aeac54ec6885524b9370af522304367663d2096abe95e79f0c625659e2cb6448cd67faf2ca2760df015bf489dab889875
6
+ metadata.gz: 17081626ee2a49b2da92c8de2699a65968c5d466809e16a82c8fd341b0ecec808e759f35af1674d4e91e4a4d157653dc0ad4bd71c77c7d590b1c0e87dba58698
7
+ data.tar.gz: 63bbf69191aa88a4cbb6c7f05901ee62a07e746bf265726ddc4da41b4377f50af0d0a7f0352dca1a8a765f2a1cb0c8afb1db2ce330c4fbde537a91185d041891
@@ -1,6 +1,8 @@
1
+ require 'active_support/core_ext/hash/deep_merge'
2
+
1
3
  module Xcake
2
4
  module Constants
3
- COMMON_BUILD_SETTINGS = Xcodeproj::Constants::COMMON_BUILD_SETTINGS.deep_merge(
5
+ COMMON_BUILD_SETTINGS = Xcodeproj::Constants::COMMON_BUILD_SETTINGS.dup.deep_merge(
4
6
  [:ios, :unit_test_bundle] => {
5
7
  'LD_RUNPATH_SEARCH_PATHS' => [
6
8
  '$(inherited)',
@@ -8,17 +10,33 @@ module Xcake
8
10
  '@loader_path/Frameworks'
9
11
  ]
10
12
  }.freeze,
13
+ [:ios, :ui_test_bundle] => {
14
+ "LD_RUNPATH_SEARCH_PATHS" => [
15
+ "$(inherited)",
16
+ "@executable_path/Frameworks",
17
+ "@loader_path/Frameworks"
18
+ ]
19
+ }.freeze,
11
20
  [:osx, :unit_test_bundle] => {
12
21
  'LD_RUNPATH_SEARCH_PATHS' => [
13
22
  '$(inherited)',
14
23
  '@executable_path/../Frameworks',
15
24
  '@loader_path/../Frameworks'
16
25
  ]
26
+ }.freeze,
27
+ [:osx, :ui_test_bundle] => {
28
+ "LD_RUNPATH_SEARCH_PATHS" => [
29
+ "$(inherited)",
30
+ "@executable_path/../Frameworks",
31
+ "@loader_path/../Frameworks"
32
+ ]
17
33
  }.freeze
18
34
  ).freeze
19
35
 
20
36
  PRODUCT_TYPE_UTI = Xcodeproj::Constants::PRODUCT_TYPE_UTI
21
37
 
38
+ COPY_FILES_BUILD_PHASE_DESTINATIONS = Xcodeproj::Constants::COPY_FILES_BUILD_PHASE_DESTINATIONS
39
+
22
40
  # Returns the common build settings for a given platform and configuration
23
41
  # name.
24
42
  #
@@ -8,16 +8,30 @@ module Xcake
8
8
  # The name of files to copy
9
9
  attr_accessor :files
10
10
 
11
+ # The destination
12
+ attr_accessor :destination
13
+
14
+ # The destination path
15
+ attr_accessor :destination_path
16
+
17
+ # Whether the files should be code signed on copy
18
+ attr_accessor :code_sign
19
+
11
20
  def build_phase_type
12
21
  Xcodeproj::Project::Object::PBXCopyFilesBuildPhase
13
22
  end
14
23
 
15
- def configure_native_build_phase(native_build_phase, _context)
24
+ def configure_native_build_phase(native_build_phase, context)
16
25
  native_build_phase.name = name
26
+ native_build_phase.dst_path = destination_path
27
+ native_build_phase.symbol_dst_subfolder_spec = destination
17
28
 
18
29
  @files.each do |file|
19
30
  file_reference = context.file_reference_for_path(file)
20
- native_build_phase.add_file_reference(file_reference)
31
+ build_file = native_build_phase.add_file_reference(file_reference)
32
+ if code_sign
33
+ build_file.settings = { 'ATTRIBUTES' => ['CodeSignOnCopy'] }
34
+ end
21
35
  end
22
36
  end
23
37
 
@@ -97,13 +97,16 @@ module Xcake
97
97
 
98
98
  if host_target.type == :application
99
99
  test_target.all_configurations.each do |c|
100
-
101
- c.settings['BUNDLE_LOADER'] = '$(TEST_HOST)'
102
-
103
- if host_target.platform == :osx
104
- c.settings["TEST_HOST"] = "$(BUILT_PRODUCTS_DIR)/#{host_target.name}.app/Contents/MacOS/#{host_target.name}"
100
+ if test_target.type == :ui_test_bundle
101
+ # Do nothing as they break UITests
102
+ # For more details https://github.com/jcampbell05/xcake/issues/115
105
103
  else
106
- c.settings['TEST_HOST'] = "$(BUILT_PRODUCTS_DIR)/#{host_target.name}.app/#{host_target.name}"
104
+ c.settings["BUNDLE_LOADER"] = "$(TEST_HOST)"
105
+ if host_target.platform == :osx
106
+ c.settings["TEST_HOST"] = "$(BUILT_PRODUCTS_DIR)/#{host_target.name}.app/Contents/MacOS/#{host_target.name}"
107
+ else
108
+ c.settings["TEST_HOST"] = "$(BUILT_PRODUCTS_DIR)/#{host_target.name}.app/#{host_target.name}"
109
+ end
107
110
  end
108
111
  end
109
112
  end
@@ -16,6 +16,11 @@ module Xcake
16
16
  def visit_project(project)
17
17
  EventHooks.run_hook :before_resolving_project_structure, project
18
18
  @project = project
19
+
20
+ # Make sure we always have a Release and Debug configuration as Xcode expects these
21
+ # and these fixes bugs that can happen.
22
+ @project.debug_configuration
23
+ @project.release_configuration
19
24
  end
20
25
 
21
26
  def leave_project(project)
@@ -13,13 +13,21 @@ module Xcake
13
13
  [TargetGenerator]
14
14
  end
15
15
 
16
- def visit_target(target)
17
- paths_to_include = Dir.glob(target.include_files).map do |f|
18
- Pathname.new(f).cleanpath.to_s
16
+ ## This method will return an array of files based on the passed regular Exp
17
+ ## NOTE:- directories will not be included in the array
18
+ def get_cleaned_paths(reg_exp)
19
+ paths_without_directories = Dir.glob(reg_exp).reject do |f|
20
+ File.directory?(f)
19
21
  end
20
- paths_to_exclude = Dir.glob(target.exclude_files).map do |f|
22
+ paths = paths_without_directories.map do |f|
21
23
  Pathname.new(f).cleanpath.to_s
22
24
  end
25
+ paths
26
+ end
27
+
28
+ def visit_target(target)
29
+ paths_to_include = get_cleaned_paths(target.include_files)
30
+ paths_to_exclude = get_cleaned_paths(target.exclude_files)
23
31
 
24
32
  paths = paths_to_include - paths_to_exclude
25
33
  paths.each do |p|
data/lib/xcake/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Xcake
2
- VERSION = '0.8.9'.freeze
2
+ VERSION = '0.8.10'.freeze
3
3
  end
@@ -49,6 +49,14 @@ module Xcake
49
49
  Xcodeproj::Constants::DEFAULT_OBJECT_VERSION.to_s
50
50
  end
51
51
 
52
+ def archive_version
53
+ Xcodeproj::Constants::LAST_KNOWN_ARCHIVE_VERSION.to_s
54
+ end
55
+
56
+ def classes
57
+ {}
58
+ end
59
+
52
60
  # Configures the Project for use with Xcake.
53
61
  # This makes sure we have sensible defaults and
54
62
  # it as clean as possible.
data/xcake.gemspec CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.add_dependency 'cork'
26
26
  spec.add_dependency 'hooks', '~> 0.4.1'
27
27
  spec.add_dependency 'xcodeproj', '< 2.0.0', '>= 1.4.0'
28
+ spec.add_dependency 'deep_merge'
28
29
 
29
30
  # Lock `activesupport` (transitive dependency via `xcodeproj`) to keep supporting system ruby
30
31
  spec.add_dependency 'activesupport', '< 5'
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.9
4
+ version: 0.8.10
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-03-20 00:00:00.000000000 Z
11
+ date: 2017-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: claide
@@ -78,6 +78,20 @@ dependencies:
78
78
  - - '>='
79
79
  - !ruby/object:Gem::Version
80
80
  version: 1.4.0
81
+ - !ruby/object:Gem::Dependency
82
+ name: deep_merge
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
81
95
  - !ruby/object:Gem::Dependency
82
96
  name: activesupport
83
97
  requirement: !ruby/object:Gem::Requirement