cocoapods-catalyst-support 0.1.2 → 0.2.1

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: d24bad78aba13983b06496e6ec0722803427d82c285232d614241411813a5480
4
- data.tar.gz: 7d2c06169cff54b0d83023afaa37b30a6b6ab3c96df58e4211820b784baf5eea
3
+ metadata.gz: 1cb32cd2b15a408e4ba0ae33f5d5fe8c96050826cb88d14519d56f3e8a00826d
4
+ data.tar.gz: 84341a6cb844b3a85e8dec41111468f0e1d65df0b003b251f8b5c41156bf6844
5
5
  SHA512:
6
- metadata.gz: 07f7d8eb27b4815f99408744ab500bef4f42d5ac4c967ff1a4a3026214c5a379cda4e24e440850790f02a10094e46be6704c1b258be4fd83fd63436c431a9dbd
7
- data.tar.gz: '08ddd9ef1734036a728c5aa5739ad42b008ddb18f6a0377970fc7c57516a4c36a95180d85b75f269c9b98f4cb0c93de408b6d9fa00b4eb07843358526a385fbb'
6
+ metadata.gz: eaf8c09dbd7981169d39453db4485ae7011b502e66b61321ee03025ad632aea900e02dd2549b5baa66a00903a16c42fd5f9c030eb33fe842d8ce62e42f1e38f7
7
+ data.tar.gz: 64868bb8dd26932812c7653d55e429b602d24e40c5838b265b4721f0dc158b587301849c1d8acb5c0fe77aa5dc89cfbb6d54c02d3a0668449c8100eb3b4feb40
@@ -1,3 +1,3 @@
1
1
  module CocoapodsCatalystSupport
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -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}"
51
+ end
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}"
32
60
  end
33
- xcconfig += framework + ' '
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
@@ -47,11 +93,9 @@ module Xcodeproj::Project::Object
47
93
  # Dependencies contained in Other Linker Flags
48
94
  def other_linker_flags_dependencies
49
95
  config = build_configurations.filter do |config| not config.base_configuration_reference.nil? end.first
96
+ return [] if config.nil?
50
97
  other_ldflags = config.resolve_build_setting 'OTHER_LDFLAGS'
51
-
52
- if other_ldflags.nil?
53
- return []
54
- end
98
+ return [] if other_ldflags.nil?
55
99
 
56
100
  if other_ldflags.class == String
57
101
  other_ldflags = other_ldflags.split ' '
@@ -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,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-catalyst-support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.1
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-03-02 00:00:00.000000000 Z
11
+ date: 2022-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored2
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.3'
47
+ version: '2.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.3'
54
+ version: '2.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -96,7 +96,7 @@ 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.