xcake 0.8.9 → 0.8.10

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