cocoapods-xcremotecache 0.0.14 → 0.0.15
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be0f0312463e793e7f6afccd9ae49ea0a0ed5f740adade59c780a0e6873f05a5
|
4
|
+
data.tar.gz: adbc9a76871be26f0fe19e53f92b67554db4f55a69d0e3d88118ed0c1b5cf9e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ce9ed4249f55c838501321dadb012ea556441836fb07edaac8db88ff7ccd8510ab0debccbf1c92c98d9537680874a0416c68d33cdfad4c7620a52ca6d4608dd
|
7
|
+
data.tar.gz: 2cfed964db8d3078f35b48758e8be756938e77fd4b3937e7032327cf703cbcc5268cca67c96b6c82d1013cedac26cabc9efaae3ecb20da231ea812ba29da5687
|
@@ -3,9 +3,9 @@
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
5
5
|
# You may obtain a copy of the License at
|
6
|
-
#
|
6
|
+
#
|
7
7
|
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
8
|
+
#
|
9
9
|
# Unless required by applicable law or agreed to in writing, software
|
10
10
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
@@ -29,15 +29,15 @@ module CocoapodsXCRemoteCacheModifier
|
|
29
29
|
FAT_ARCHIVE_NAME_INFIX = 'arm64-x86_64'
|
30
30
|
XCRC_COOCAPODS_ROOT_KEY = 'XCRC_COOCAPODS_ROOT'
|
31
31
|
|
32
|
-
# List of plugins' user properties that should not be copied to .rcinfo
|
32
|
+
# List of plugins' user properties that should not be copied to .rcinfo
|
33
33
|
CUSTOM_CONFIGURATION_KEYS = [
|
34
|
-
'enabled',
|
34
|
+
'enabled',
|
35
35
|
'xcrc_location',
|
36
36
|
'exclude_targets',
|
37
37
|
'exclude_build_configurations',
|
38
38
|
'final_target',
|
39
|
-
'check_build_configuration',
|
40
|
-
'check_platform',
|
39
|
+
'check_build_configuration',
|
40
|
+
'check_platform',
|
41
41
|
'modify_lldb_init',
|
42
42
|
'fake_src_root',
|
43
43
|
]
|
@@ -45,19 +45,19 @@ module CocoapodsXCRemoteCacheModifier
|
|
45
45
|
class XCRemoteCache
|
46
46
|
@@configuration = nil
|
47
47
|
|
48
|
-
def self.configure(c)
|
48
|
+
def self.configure(c)
|
49
49
|
@@configuration = c
|
50
50
|
end
|
51
51
|
|
52
52
|
def self.set_configuration_default_values
|
53
53
|
default_values = {
|
54
54
|
'mode' => 'consumer',
|
55
|
-
'enabled' => true,
|
55
|
+
'enabled' => true,
|
56
56
|
'xcrc_location' => "XCRC",
|
57
57
|
'exclude_build_configurations' => [],
|
58
58
|
'check_build_configuration' => 'Debug',
|
59
|
-
'check_platform' => 'iphonesimulator',
|
60
|
-
'modify_lldb_init' => true,
|
59
|
+
'check_platform' => 'iphonesimulator',
|
60
|
+
'modify_lldb_init' => true,
|
61
61
|
'xccc_file' => "#{BIN_DIR}/xccc",
|
62
62
|
'remote_commit_file' => "#{BIN_DIR}/arc.rc",
|
63
63
|
'exclude_targets' => [],
|
@@ -75,12 +75,12 @@ module CocoapodsXCRemoteCacheModifier
|
|
75
75
|
|
76
76
|
def self.validate_configuration()
|
77
77
|
required_values = [
|
78
|
-
'cache_addresses',
|
78
|
+
'cache_addresses',
|
79
79
|
'primary_repo',
|
80
80
|
'check_build_configuration',
|
81
81
|
'check_platform'
|
82
82
|
]
|
83
|
-
|
83
|
+
|
84
84
|
missing_configuration_values = required_values.select { |v| !@@configuration.key?(v) }
|
85
85
|
unless missing_configuration_values.empty?
|
86
86
|
throw "XCRemoteCache not fully configured. Make sure all required fields are provided. Missing fields are: #{missing_configuration_values.join(', ')}."
|
@@ -105,7 +105,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
105
105
|
end
|
106
106
|
|
107
107
|
# @param target [Target] target to apply XCRemoteCache
|
108
|
-
# @param repo_distance [Integer] distance from the git repo root to the target's $SRCROOT
|
108
|
+
# @param repo_distance [Integer] distance from the git repo root to the target's $SRCROOT
|
109
109
|
# @param xc_location [String] path to the dir with all XCRemoteCache binaries, relative to the repo root
|
110
110
|
# @param xc_cc_path [String] path to the XCRemoteCache clang wrapper, relative to the repo root
|
111
111
|
# @param mode [String] mode name ('consumer', 'producer', 'producer-fast' etc.)
|
@@ -128,6 +128,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
128
128
|
config.build_settings['LIBTOOL'] = ["$SRCROOT/#{srcroot_relative_xc_location}/xclibtool"]
|
129
129
|
config.build_settings['LD'] = ["$SRCROOT/#{srcroot_relative_xc_location}/xcld"]
|
130
130
|
config.build_settings['LDPLUSPLUS'] = ["$SRCROOT/#{srcroot_relative_xc_location}/xcldplusplus"]
|
131
|
+
config.build_settings['LIPO'] = ["$SRCROOT/#{srcroot_relative_xc_location}/xclipo"]
|
131
132
|
config.build_settings['SWIFT_USE_INTEGRATED_DRIVER'] = ['NO']
|
132
133
|
|
133
134
|
config.build_settings['XCREMOTE_CACHE_FAKE_SRCROOT'] = fake_src_root
|
@@ -156,7 +157,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
156
157
|
prebuild_script.dependency_file = "$(TARGET_TEMP_DIR)/prebuild.d"
|
157
158
|
|
158
159
|
# Move prebuild (last element) to the position before compile sources phase (to make it real 'prebuild')
|
159
|
-
if !existing_prebuild_script
|
160
|
+
if !existing_prebuild_script
|
160
161
|
compile_phase_index = target.build_phases.index(target.source_build_phase)
|
161
162
|
target.build_phases.insert(compile_phase_index, target.build_phases.delete(prebuild_script))
|
162
163
|
end
|
@@ -184,7 +185,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
184
185
|
]
|
185
186
|
postbuild_script.dependency_file = "$(TARGET_TEMP_DIR)/postbuild.d"
|
186
187
|
# Move postbuild (last element) to the position after compile sources phase (to make it real 'postbuild')
|
187
|
-
if !existing_postbuild_script
|
188
|
+
if !existing_postbuild_script
|
188
189
|
compile_phase_index = target.build_phases.index(target.source_build_phase)
|
189
190
|
target.build_phases.insert(compile_phase_index + 1, target.build_phases.delete(postbuild_script))
|
190
191
|
end
|
@@ -214,6 +215,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
214
215
|
config.build_settings.delete('CC') if config.build_settings.key?('CC')
|
215
216
|
config.build_settings.delete('SWIFT_EXEC') if config.build_settings.key?('SWIFT_EXEC')
|
216
217
|
config.build_settings.delete('LIBTOOL') if config.build_settings.key?('LIBTOOL')
|
218
|
+
config.build_settings.delete('LIPO') if config.build_settings.key?('LIPO')
|
217
219
|
config.build_settings.delete('LD') if config.build_settings.key?('LD')
|
218
220
|
config.build_settings.delete('LDPLUSPLUS') if config.build_settings.key?('LDPLUSPLUS')
|
219
221
|
config.build_settings.delete('SWIFT_USE_INTEGRATED_DRIVER') if config.build_settings.key?('SWIFT_USE_INTEGRATED_DRIVER')
|
@@ -226,9 +228,9 @@ module CocoapodsXCRemoteCacheModifier
|
|
226
228
|
end
|
227
229
|
|
228
230
|
# User project is not generated from scratch (contrary to `Pods`), delete all previous XCRemoteCache phases
|
229
|
-
target.build_phases.delete_if {|phase|
|
231
|
+
target.build_phases.delete_if {|phase|
|
230
232
|
# Some phases (e.g. PBXSourcesBuildPhase) don't have strict name check respond_to?
|
231
|
-
if phase.respond_to?(:name)
|
233
|
+
if phase.respond_to?(:name)
|
232
234
|
phase.name != nil && phase.name.start_with?("[XCRC]")
|
233
235
|
end
|
234
236
|
}
|
@@ -240,9 +242,9 @@ module CocoapodsXCRemoteCacheModifier
|
|
240
242
|
end
|
241
243
|
|
242
244
|
def self.download_xcrc_if_needed(local_location)
|
243
|
-
required_binaries = ['xcld', 'xcldplusplus', 'xclibtool', 'xcpostbuild', 'xcprebuild', 'xcprepare', 'xcswiftc']
|
245
|
+
required_binaries = ['xcld', 'xcldplusplus', 'xclibtool', 'xclipo', 'xcpostbuild', 'xcprebuild', 'xcprepare', 'xcswiftc']
|
244
246
|
binaries_exist = required_binaries.reduce(true) do |exists, filename|
|
245
|
-
file_path = File.join(local_location, filename)
|
247
|
+
file_path = File.join(local_location, filename)
|
246
248
|
exists = exists && File.exist?(file_path)
|
247
249
|
end
|
248
250
|
|
@@ -256,13 +258,13 @@ module CocoapodsXCRemoteCacheModifier
|
|
256
258
|
|
257
259
|
if !system("unzip #{local_package_location} -d #{local_location}")
|
258
260
|
throw "Unzipping XCRemoteCache failed"
|
259
|
-
end
|
261
|
+
end
|
260
262
|
end
|
261
263
|
|
262
264
|
def self.download_latest_xcrc_release(local_package_location)
|
263
265
|
release_url = 'https://api.github.com/repos/spotify/XCRemoteCache/releases/latest'
|
264
266
|
asset_url = nil
|
265
|
-
|
267
|
+
|
266
268
|
URI.open(release_url) do |f|
|
267
269
|
assets_array = JSON.parse(f.read)['assets']
|
268
270
|
# Pick fat archive
|
@@ -270,7 +272,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
270
272
|
asset_url = asset_array['url']
|
271
273
|
end
|
272
274
|
|
273
|
-
if asset_url.nil?
|
275
|
+
if asset_url.nil?
|
274
276
|
throw "Downloading XCRemoteCache failed"
|
275
277
|
end
|
276
278
|
|
@@ -283,7 +285,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
283
285
|
|
284
286
|
def self.add_cflags!(options, key, value)
|
285
287
|
return if options.fetch('OTHER_CFLAGS',[]).include?(value)
|
286
|
-
options['OTHER_CFLAGS'] = remove_cflags!(options, key) << "#{key}=#{value}"
|
288
|
+
options['OTHER_CFLAGS'] = remove_cflags!(options, key) << "#{key}=#{value}"
|
287
289
|
end
|
288
290
|
|
289
291
|
def self.remove_cflags!(options, key)
|
@@ -295,7 +297,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
295
297
|
|
296
298
|
def self.add_swiftflags!(options, key, value)
|
297
299
|
return if options.fetch('OTHER_SWIFT_FLAGS','').include?(value)
|
298
|
-
options['OTHER_SWIFT_FLAGS'] = remove_swiftflags!(options, key) + " #{key} #{value}"
|
300
|
+
options['OTHER_SWIFT_FLAGS'] = remove_swiftflags!(options, key) + " #{key} #{value}"
|
299
301
|
end
|
300
302
|
|
301
303
|
def self.remove_swiftflags!(options, key)
|
@@ -336,7 +338,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
336
338
|
File.open(lldbinit_path) { |file|
|
337
339
|
while(line = file.gets) != nil
|
338
340
|
line = line.strip
|
339
|
-
if line == LLDB_INIT_COMMENT
|
341
|
+
if line == LLDB_INIT_COMMENT
|
340
342
|
# skip current and next lines
|
341
343
|
file.gets
|
342
344
|
next
|
@@ -351,7 +353,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
351
353
|
def self.add_lldbinit_rewrite(lines_content, user_proj_directory,fake_src_root)
|
352
354
|
all_lines = lines_content.clone
|
353
355
|
all_lines << LLDB_INIT_COMMENT
|
354
|
-
all_lines << "settings set target.source-map #{fake_src_root} #{user_proj_directory}"
|
356
|
+
all_lines << "settings set target.source-map #{fake_src_root} #{user_proj_directory}"
|
355
357
|
all_lines << ""
|
356
358
|
all_lines
|
357
359
|
end
|
@@ -413,8 +415,8 @@ module CocoapodsXCRemoteCacheModifier
|
|
413
415
|
# Remote cache is still disabled - no need to force Pods projects/targets regeneration
|
414
416
|
next
|
415
417
|
end
|
416
|
-
|
417
|
-
# Force rebuilding all Pods project, because XCRC build steps and settings need to be added to Pods project/targets
|
418
|
+
|
419
|
+
# Force rebuilding all Pods project, because XCRC build steps and settings need to be added to Pods project/targets
|
418
420
|
# It is relevant only when 'incremental_installation' is enabled, otherwise installed_cache_path does not exist on a disk
|
419
421
|
installed_cache_path = installer_context.sandbox.project_installation_cache_path
|
420
422
|
if !was_previously_enabled && File.exist?(installed_cache_path)
|
@@ -431,7 +433,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
431
433
|
|
432
434
|
user_project = installer_context.umbrella_targets[0].user_project
|
433
435
|
|
434
|
-
begin
|
436
|
+
begin
|
435
437
|
user_proj_directory = File.dirname(user_project.path)
|
436
438
|
set_configuration_default_values
|
437
439
|
|
@@ -494,12 +496,12 @@ module CocoapodsXCRemoteCacheModifier
|
|
494
496
|
end
|
495
497
|
|
496
498
|
# Manual Pods/.rcinfo generation
|
497
|
-
|
499
|
+
|
498
500
|
# all paths in .rcinfo are relative to the root so paths used in Pods.xcodeproj need to be aligned
|
499
501
|
pods_path = Pathname.new(pods_proj_directory)
|
500
502
|
root_path = Pathname.new(user_proj_directory)
|
501
503
|
root_path_to_pods = root_path.relative_path_from(pods_path)
|
502
|
-
|
504
|
+
|
503
505
|
pods_rcinfo = root_rcinfo.merge({
|
504
506
|
'remote_commit_file' => "#{root_path_to_pods}/#{remote_commit_file}",
|
505
507
|
'xccc_file' => "#{root_path_to_pods}/#{xccc_location}"
|
@@ -511,7 +513,7 @@ module CocoapodsXCRemoteCacheModifier
|
|
511
513
|
|
512
514
|
# Enabled/disable XCRemoteCache for the main (user) project
|
513
515
|
begin
|
514
|
-
# TODO: Do not compile xcc again. `xcprepare` compiles it in pre-install anyway
|
516
|
+
# TODO: Do not compile xcc again. `xcprepare` compiles it in pre-install anyway
|
515
517
|
prepare_result = YAML.load`#{xcrc_location_absolute}/xcprepare --configuration #{check_build_configuration} --platform #{check_platform}`
|
516
518
|
unless prepare_result['result'] || mode != 'consumer'
|
517
519
|
# Uninstall the XCRemoteCache for the consumer mode
|
@@ -3,9 +3,9 @@
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
5
5
|
# You may obtain a copy of the License at
|
6
|
-
#
|
6
|
+
#
|
7
7
|
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
8
|
+
#
|
9
9
|
# Unless required by applicable law or agreed to in writing, software
|
10
10
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
@@ -13,5 +13,5 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
module CocoapodsXcremotecache
|
16
|
-
VERSION = "0.0.
|
16
|
+
VERSION = "0.0.15"
|
17
17
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-xcremotecache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bartosz Polaczyk
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-03-21 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: CocoaPods plugin that enables XCRemoteCache with the project.
|
15
15
|
email:
|