cocoapods-catalyst-support 0.1.0 → 0.2.0

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
  SHA256:
3
- metadata.gz: fd48335575749960d7bd44d134e7baee612a6fb0f57f7b88b6269d3d5e9aac06
4
- data.tar.gz: 95b1c1d1271bf1db00e1db8aedcbcd0ea1859f4e5029212466b201fb1c9d2091
3
+ metadata.gz: 2142505718e484e2b6118079ea9518282e736339bfe460434f2e66c6f5010fe8
4
+ data.tar.gz: 11dde92e0e9cc17f90911c5cdb276bf299bd3428d8e6ded0918eee7641230fbd
5
5
  SHA512:
6
- metadata.gz: b51011609358a8ba97e54141b055b8e527df4de5209bf2d2dee06bbd31aebc87ccf9151c28be70f86399befc9acf8829bccfd0fdaff8389fe6a8c93595a23dd5
7
- data.tar.gz: 21dcca268aebf42676ab90b27d3f02300f9c087179b47ccba8e62065b0ac0a601516fa31f738c5851867ec096c759408b2453059753e0fbfabb7ff52276d43e0
6
+ metadata.gz: 9c7c155c89f9858caa0c9affdcafa503d7ca916dc3a78eafaf1a22a1cca1203b17af3d5afbbc9624f7f407e678578941ecbd9a8e4bf4eb0f47e6e7986c2ed0b9
7
+ data.tar.gz: 0f06f4ef84fb5be114a7ac4e14532f7d05255714567e4245094630c33083c88f7d400597e4aa28fe0638b52a871744f2fc63a638b98797acc8c2b78d155ac418
@@ -1,4 +1,4 @@
1
- require 'colorize'
1
+ require 'colored2'
2
2
  require 'cocoapods-catalyst-support/command_helpers'
3
3
 
4
4
  include CocoapodsCatalystSupport
@@ -1,4 +1,4 @@
1
- require 'colorize'
1
+ require 'colored2'
2
2
 
3
3
  module Pod
4
4
  class Command
@@ -1,4 +1,4 @@
1
- require 'colorize'
1
+ require 'colored2'
2
2
  require_relative 'utils'
3
3
 
4
4
  module CocoapodsCatalystSupport
@@ -1,3 +1,3 @@
1
1
  module CocoapodsCatalystSupport
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -1,4 +1,4 @@
1
- require 'colorize'
1
+ require 'colored2'
2
2
 
3
3
  module Pod
4
4
 
@@ -36,7 +36,7 @@ module Pod
36
36
  pod_names_to_keep = recursive_dependencies(pod_names_to_keep)
37
37
  pod_targets_to_keep = pod_targets.filter do |pod| pod_names_to_keep.include? pod.module_name end # PodTarget
38
38
 
39
- pod_names_to_remove = recursive_dependencies(pod_names_to_remove).filter do |name| !pod_names_to_keep.include? name end
39
+ pod_names_to_remove = recursive_dependencies(pod_names_to_remove).filter do |name| !pod_names_to_keep.include? name end.to_set.to_a
40
40
  pod_targets_to_remove = pod_targets.filter do |pod| pod_names_to_remove.include? pod.module_name end # PodTarget
41
41
 
42
42
  loggs "\n#### Unsupported Libraries ####\n#{pod_names_to_remove}\n"
@@ -53,9 +53,7 @@ module Pod
53
53
  dependencies_to_remove = dependencies_to_remove + targets_to_remove.flat_map do |target| target.to_dependency end + pod_targets_to_remove.flat_map do |pod| pod.vendor_products + pod.frameworks end
54
54
  dependencies_to_remove = dependencies_to_remove.filter do |d| !dependencies_to_keep.include? d end
55
55
 
56
- ###### CATALYST NOT SUPPORTED LINKS ######
57
- unsupported_links = dependencies_to_remove.map do |d| d.link end.to_set.to_a
58
-
56
+ ###### CATALYST NOT SUPPORTED LINKS ######
59
57
  loggs "\n#### Unsupported dependencies ####\n"
60
58
  loggs "#{dependencies_to_remove.map do |d| d.name end.to_set.to_a }\n\n"
61
59
 
@@ -71,7 +69,7 @@ module Pod
71
69
 
72
70
  ###### OTHER LINKER FLAGS -> to iphone* ######
73
71
  loggs "#### Flagging unsupported libraries ####"
74
- pods_project.targets.filter do |target| target.platform_name == OSPlatform.ios.name end.each do |target| target.flag_libraries unsupported_links, keep_platform end
72
+ pods_project.targets.filter do |target| target.platform_name == OSPlatform.ios.name end.each do |target| target.flag_libraries dependencies_to_remove.to_set.to_a, keep_platform end
75
73
 
76
74
  ###### BUILD_PHASES AND DEPENDENCIES -> PLATFORM_FILTER 'ios' ######
77
75
  loggs "\n#### Filtering build phases ####"
@@ -14,27 +14,73 @@ module Xcodeproj::Project::Object
14
14
 
15
15
  ###### STEP 3 ######
16
16
  # If any unsupported library, then flag as platform-dependant for every build configuration
17
- def flag_libraries libraries, platform
17
+ def flag_libraries dependencies, platform
18
18
  loggs "\tTarget: #{name}"
19
- build_configurations.filter do |config| !config.base_configuration_reference.nil?
19
+
20
+ build_configurations.filter do |config|
21
+ !config.base_configuration_reference.nil?
20
22
  end.each do |config|
21
23
  loggs "\t\tScheme: #{config.name}"
22
24
  xcconfig_path = config.base_configuration_reference.real_path
23
25
  xcconfig = File.read(xcconfig_path)
24
-
26
+
27
+ other_ldflags = xcconfig.filter_lines do |line| line.include? 'OTHER_LDFLAGS = ' end.first || ''
28
+ header_search_paths = xcconfig.filter_lines do |line| line.include? 'HEADER_SEARCH_PATHS = ' end.first || ''
29
+ framework_search_paths = xcconfig.filter_lines do |line| line.include? 'FRAMEWORK_SEARCH_PATHS = ' end.first || ''
30
+ other_swift_flags = xcconfig.filter_lines do |line| line.include? 'OTHER_SWIFT_FLAGS = ' end.first || ''
31
+
32
+ new_other_ldflags = "OTHER_LDFLAGS[sdk=#{platform.sdk}] = $(inherited) -ObjC"
33
+ new_header_search_paths = "HEADER_SEARCH_PATHS[sdk=#{platform.sdk}] = $(inherited)"
34
+ new_framework_search_paths = "FRAMEWORK_SEARCH_PATHS[sdk=#{platform.sdk}] = $(inherited)"
35
+ new_other_swift_flags = "OTHER_SWIFT_FLAGS[sdk=#{platform.sdk}] = $(inherited) -D COCOAPODS"
36
+ new_xcconfig = xcconfig.gsub!(other_ldflags, '').gsub!(header_search_paths, '').gsub!(other_swift_flags, '').gsub!(framework_search_paths, '')
37
+
25
38
  changed = false
26
- libraries.each do |framework|
27
- if xcconfig.include? framework
28
- xcconfig.gsub!(framework, '')
29
- unless xcconfig.include? "OTHER_LDFLAGS[sdk=#{platform.sdk}]"
30
- changed = true
31
- xcconfig += "\nOTHER_LDFLAGS[sdk=#{platform.sdk}] = $(inherited) -ObjC "
39
+ dependencies.each do |dependency|
40
+ if other_ldflags.include? dependency.link
41
+ other_ldflags.gsub! dependency.link, ''
42
+ changed = true
43
+ new_other_ldflags += " #{dependency.link}"
44
+ end
45
+
46
+ regex = /(?<=[\s])([\"]*[\S]*#{Regexp.escape(dependency.name)}[\S]*[\"]*)(?=[\s]?)/
47
+ if header_search_paths.match? regex
48
+ to_replace = header_search_paths.scan(regex).flat_map do |m| m end.filter do |m| !m.nil? && !m.empty? end.each do |to_replace|
49
+ header_search_paths.gsub! to_replace, ''
50
+ new_header_search_paths += " #{to_replace}"
32
51
  end
33
- xcconfig += framework + ' '
52
+ changed = true
53
+ end
54
+
55
+ regex = /(?<=[\s])([\"][\S]*#{Regexp.escape(dependency.name)}[\S]*\")(?=[\s]?)/
56
+ if framework_search_paths.match? regex
57
+ to_replace = framework_search_paths.scan(regex).flat_map do |m| m end.filter do |m| !m.nil? && !m.empty? end.each do |to_replace|
58
+ framework_search_paths.gsub! to_replace, ''
59
+ new_framework_search_paths += " #{to_replace}"
60
+ end
61
+ changed = true
62
+ end
63
+
64
+ regex = /(?<=[\s])(-Xcc -[\S]*#{Regexp.escape(dependency.name)}[\S]*\")(?=[\s]?)/
65
+ if other_swift_flags.match? regex
66
+ to_replace = other_swift_flags.scan(regex).flat_map do |m| m end.filter do |m| !m.nil? && !m.empty? end.each do |to_replace|
67
+ other_swift_flags.gsub! to_replace, ''
68
+ new_other_swift_flags += " #{to_replace}"
69
+ end
70
+ changed = true
34
71
  end
35
72
  end
36
73
 
37
- File.open(xcconfig_path, "w") { |file| file << xcconfig }
74
+ if changed
75
+ new_xcconfig += "\n#{other_ldflags}\n#{framework_search_paths}\n#{header_search_paths}"
76
+ new_xcconfig += "\n#{new_other_ldflags}\n#{new_framework_search_paths}\n#{new_header_search_paths}"
77
+ if !other_swift_flags.empty?
78
+ new_xcconfig += "\n#{other_swift_flags}\n#{new_other_swift_flags}"
79
+ end
80
+ new_xcconfig.gsub! /\n+/, "\n"
81
+ new_xcconfig.gsub! /[ ]+/, " "
82
+ File.open(xcconfig_path, "w") { |file| file << new_xcconfig }
83
+ end
38
84
  loggs "\t\t\t#{changed ? "Succeded" : "Nothing to flag"}"
39
85
  end
40
86
  end
@@ -44,7 +44,7 @@ module Xcodeproj::Project::Object
44
44
  new_snippet = snippet.clone
45
45
  should_uninstall = configurations.map do |string| snippet.include? string end.reduce(false) do |total, condition| total = total || condition end
46
46
  keys.each do |key|
47
- lines_to_replace = snippet.filter_lines do |line| line.include? "#{key}" end.to_set.to_a
47
+ lines_to_replace = snippet.filter_lines do |line| line.match "\/#{key}" end.to_set.to_a
48
48
  unless lines_to_replace.empty?
49
49
  changed = true
50
50
  lines_to_replace.each do |line|
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-catalyst-support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - fermoya
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-28 00:00:00.000000000 Z
11
+ date: 2022-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: colorize
14
+ name: colored2
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.8'
19
+ version: '3.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.8'
26
+ version: '3.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: cocoapods
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: 12.3.3
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: 12.3.3
69
69
  description: Helps you configure your Catalyst dependencies.
70
70
  email:
71
71
  - fmdr.ct@gmail.com
@@ -92,11 +92,11 @@ files:
92
92
  - lib/cocoapods-catalyst-support/xcodeproj/native_target.rb
93
93
  - lib/cocoapods-catalyst-support/xcodeproj/target_dependency.rb
94
94
  - lib/cocoapods_plugin.rb
95
- homepage: https://github.com/fermoya/CatalystPodSupport
95
+ homepage: https://github.com/fermoya/cocoapods-catalyst-support
96
96
  licenses:
97
97
  - MIT
98
98
  metadata: {}
99
- post_install_message:
99
+ post_install_message:
100
100
  rdoc_options: []
101
101
  require_paths:
102
102
  - lib
@@ -111,8 +111,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  requirements: []
114
- rubygems_version: 3.0.3
115
- signing_key:
114
+ rubygems_version: 3.2.27
115
+ signing_key:
116
116
  specification_version: 4
117
117
  summary: Many libraries you may use for iOS won't compile for your macCatalyst App,
118
118
  thus, making porting your App to the Mac world more difficult than initially expected.