cocoapods-imy-bin 0.2.6 → 0.3.0.11

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.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -540
  3. data/lib/cocoapods-imy-bin/command/bin/archive.rb +43 -4
  4. data/lib/cocoapods-imy-bin/command/bin/auto.rb +9 -7
  5. data/lib/cocoapods-imy-bin/command/bin/code.rb +1 -6
  6. data/lib/cocoapods-imy-bin/command/bin/local.rb +16 -7
  7. data/lib/cocoapods-imy-bin/config/config.rb +1 -1
  8. data/lib/cocoapods-imy-bin/config/config_builder.rb +39 -2
  9. data/lib/cocoapods-imy-bin/gem_version.rb +1 -1
  10. data/lib/cocoapods-imy-bin/helpers.rb +1 -0
  11. data/lib/cocoapods-imy-bin/helpers/Info.plist +0 -0
  12. data/lib/cocoapods-imy-bin/helpers/build_helper.rb +15 -7
  13. data/lib/cocoapods-imy-bin/helpers/build_utils.rb +63 -0
  14. data/lib/cocoapods-imy-bin/helpers/framework.rb +25 -2
  15. data/lib/cocoapods-imy-bin/helpers/framework_builder.rb +172 -57
  16. data/lib/cocoapods-imy-bin/helpers/library.rb +2 -2
  17. data/lib/cocoapods-imy-bin/helpers/local/local_build_helper.rb +38 -6
  18. data/lib/cocoapods-imy-bin/helpers/local/local_framework.rb +20 -0
  19. data/lib/cocoapods-imy-bin/helpers/local/local_framework_builder.rb +91 -38
  20. data/lib/cocoapods-imy-bin/helpers/sources_helper.rb +5 -2
  21. data/lib/cocoapods-imy-bin/helpers/spec_source_creator.rb +65 -8
  22. data/lib/cocoapods-imy-bin/helpers/upload_helper.rb +8 -3
  23. data/lib/cocoapods-imy-bin/native.rb +4 -0
  24. data/lib/cocoapods-imy-bin/native/analyzer.rb +2 -0
  25. data/lib/cocoapods-imy-bin/native/file_accessor.rb +28 -0
  26. data/lib/cocoapods-imy-bin/native/pod_target_installer.rb +94 -0
  27. data/lib/cocoapods-imy-bin/native/podfile_generator.rb +11 -2
  28. data/lib/cocoapods-imy-bin/native/target_validator.rb +41 -0
  29. data/lib/cocoapods-imy-bin/native/validator.rb +1 -38
  30. metadata +7 -2
@@ -4,13 +4,14 @@ require 'cocoapods-imy-bin/helpers/framework.rb'
4
4
  require 'English'
5
5
  require 'cocoapods-imy-bin/config/config_builder'
6
6
  require 'shellwords'
7
+ require 'cocoapods-imy-bin/helpers/build_utils'
7
8
 
8
9
  module CBin
9
10
  class Framework
10
11
  class Builder
11
12
  include Pod
12
13
  #Debug下还待完成
13
- def initialize(spec, file_accessor, platform, source_dir, isRootSpec = true, build_model="Release")
14
+ def initialize(spec, file_accessor, platform, source_dir, isRootSpec = true, build_model="Debug")
14
15
  @spec = spec
15
16
  @source_dir = source_dir
16
17
  @file_accessor = file_accessor
@@ -38,26 +39,54 @@ module CBin
38
39
  end
39
40
 
40
41
  def lipo_build(defines)
41
- UI.section("Building static Library #{@spec}") do
42
- # defines = compile
43
42
 
44
- # build_sim_libraries(defines)
45
- output = framework.versions_path + Pathname.new(@spec.name)
43
+ if CBin::Build::Utils.is_swift_module(@spec) || !CBin::Build::Utils.uses_frameworks?
44
+ UI.section("Building static Library #{@spec}") do
45
+ # defines = compile
46
46
 
47
- build_static_library_for_ios(output)
47
+ # build_sim_libraries(defines)
48
+ output = framework.versions_path + Pathname.new(@spec.name)
48
49
 
49
- copy_headers
50
- copy_license
51
- copy_resources
50
+ build_static_library_for_ios(output)
52
51
 
53
- cp_to_source_dir
52
+ copy_headers
53
+ copy_license
54
+ copy_resources
55
+
56
+ cp_to_source_dir
57
+ end
58
+ else
59
+ # begin
60
+ UI.section("Building framework #{@spec}") do
61
+ # defines = compile
62
+
63
+ # build_sim_libraries(defines)
64
+ output = framework.fwk_path + Pathname.new(@spec.name)
65
+
66
+ copy_static_framework_dir_for_ios
67
+
68
+ build_static_framework_machO_for_ios(output)
69
+
70
+ # copy_license
71
+ copy_framework_resources
72
+
73
+ #cp_to_source_dir#
74
+
75
+ # rescue Object => exception
76
+ # UI.puts exception
77
+ # end
78
+ end
54
79
  end
80
+
55
81
  framework
56
82
  end
57
83
 
58
84
  private
59
85
 
60
86
  def cp_to_source_dir
87
+ # 删除Versions 软链接
88
+ framework.remove_current_version if CBin::Build::Utils.is_swift_module(@spec)
89
+
61
90
  framework_name = "#{@spec.name}.framework"
62
91
  target_dir = File.join(CBin::Config::Builder.instance.zip_dir,framework_name)
63
92
  FileUtils.rm_rf(target_dir) if File.exist?(target_dir)
@@ -72,14 +101,10 @@ module CBin
72
101
  def build_sim_libraries(defines)
73
102
  UI.message 'Building simulator libraries'
74
103
 
75
- if is_debug_model
76
- # archs = %w[i386 x86_64]
77
- archs = ios_architectures_sim
78
- archs.map do |arch|
79
- xcodebuild(defines, "-sdk iphonesimulator ARCHS=\'#{arch}\' ", "build-#{arch}","Debug")
80
- end
81
- else
82
- xcodebuild(defines, "-sdk iphonesimulator ", 'build-simulator', "Release")
104
+ # archs = %w[i386 x86_64]
105
+ archs = ios_architectures_sim
106
+ archs.map do |arch|
107
+ xcodebuild(defines, "-sdk iphonesimulator ARCHS=\'#{arch}\' ", "build-#{arch}",@build_model)
83
108
  end
84
109
 
85
110
  end
@@ -96,32 +121,20 @@ module CBin
96
121
  def build_static_library_for_ios(output)
97
122
  UI.message "Building ios libraries with archs #{ios_architectures}"
98
123
  static_libs = static_libs_in_sandbox('build') + static_libs_in_sandbox('build-simulator') + @vendored_libraries
99
- if is_debug_model
100
- ios_architectures.map do |arch|
101
- static_libs += static_libs_in_sandbox("build-#{arch}") + @vendored_libraries
102
- end
103
- ios_architectures_sim do |arch|
104
- static_libs += static_libs_in_sandbox("build-#{arch}") + @vendored_libraries
105
- end
124
+
125
+ ios_architectures.map do |arch|
126
+ static_libs += static_libs_in_sandbox("build-#{arch}") + @vendored_libraries
127
+ end
128
+ ios_architectures_sim do |arch|
129
+ static_libs += static_libs_in_sandbox("build-#{arch}") + @vendored_libraries
106
130
  end
107
131
 
108
132
  build_path = Pathname("build")
109
133
  build_path.mkpath unless build_path.exist?
110
134
 
111
- if is_debug_model
112
- libs = (ios_architectures + ios_architectures_sim) .map do |arch|
113
- library = "build-#{arch}/lib#{@spec.name}.a"
114
- library
115
- end
116
- else
117
- libs = ios_architectures.map do |arch|
118
- library = "build/package-#{@spec.name}-#{arch}.a"
119
- # libtool -arch_only arm64 -static -o build/package-armv64.a build/libIMYFoundation.a build-simulator/libIMYFoundation.a
120
- # 从liBFoundation.a 文件中,提取出 arm64 架构的文件,命名为build/package-armv64.a
121
- UI.message "libtool -arch_only #{arch} -static -o #{library} #{static_libs.join(' ')}"
122
- `libtool -arch_only #{arch} -static -o #{library} #{static_libs.join(' ')}`
123
- library
124
- end
135
+ libs = (ios_architectures + ios_architectures_sim) .map do |arch|
136
+ library = "build-#{arch}/lib#{@spec.name}.a"
137
+ library
125
138
  end
126
139
 
127
140
  UI.message "lipo -create -output #{output} #{libs.join(' ')}"
@@ -166,15 +179,15 @@ module CBin
166
179
  defines += @spec.consumer(@platform).compiler_flags.join(' ')
167
180
 
168
181
  options = ios_build_options
169
- if is_debug_model
182
+ # if is_debug_model
170
183
  archs = ios_architectures
171
184
  # archs = %w[arm64 armv7 armv7s]
172
185
  archs.map do |arch|
173
186
  xcodebuild(defines, "ARCHS=\'#{arch}\' OTHER_CFLAGS=\'-fembed-bitcode -Qunused-arguments\'","build-#{arch}",@build_model)
174
187
  end
175
- else
176
- xcodebuild(defines,options)
177
- end
188
+ # else
189
+ # xcodebuild(defines,options)
190
+ # end
178
191
 
179
192
  defines
180
193
  end
@@ -186,17 +199,21 @@ module CBin
186
199
  def target_name
187
200
  #区分多平台,如配置了多平台,会带上平台的名字
188
201
  # 如libwebp-iOS
189
- # if @spec.available_platforms.count > 1
190
- # "#{@spec.name}-#{Platform.string_name(@spec.consumer(@platform).platform_name)}"
191
- # else
192
- @spec.name
193
- # end
202
+ if @spec.available_platforms.count > 1
203
+ "#{@spec.name}-#{Platform.string_name(@spec.consumer(@platform).platform_name)}"
204
+ else
205
+ @spec.name
206
+ end
194
207
  end
195
208
 
196
- def xcodebuild(defines = '', args = '', build_dir = 'build',build_model = 'Debug')
197
- #xcodebuild GCC_PREPROCESSOR_DEFINITIONS='$(inherited)' ARCHS='x86_64 arm64 armv7 armv7s i386' OTHER_CFLAGS='-fembed-bitcode -Qunused-arguments' CONFIGURATION_BUILD_DIR=build clean build -configuration Debug -target IMYTCP -project ./Pods.xcodeproj 2>&1
198
- # xcodebuild GCC_PREPROCESSOR_DEFINITIONS='$(inherited)' -sdk iphoneos CONFIGURATION_BUILD_DIR=build-simulator clean build -configuration Release -target IMYFoundation -project ./Pods/Pods.xcodeproj 2>&1
199
- command = "xcodebuild #{defines} #{args} CONFIGURATION_BUILD_DIR=#{build_dir} clean build -configuration #{build_model} -target #{target_name} -project ./Pods.xcodeproj 2>&1"
209
+ def xcodebuild(defines = '', args = '', build_dir = 'build', build_model = 'Debug')
210
+
211
+ unless File.exist?("Pods.xcodeproj") #cocoapods-generate v2.0.0
212
+ command = "xcodebuild #{defines} #{args} CONFIGURATION_BUILD_DIR=#{File.join(File.expand_path("..", build_dir), File.basename(build_dir))} clean build -configuration #{build_model} -target #{target_name} -project ./Pods/Pods.xcodeproj 2>&1"
213
+ else
214
+ command = "xcodebuild #{defines} #{args} CONFIGURATION_BUILD_DIR=#{build_dir} clean build -configuration #{build_model} -target #{target_name} -project ./Pods.xcodeproj 2>&1"
215
+ end
216
+
200
217
  UI.message "command = #{command}"
201
218
  output = `#{command}`.lines.to_a
202
219
 
@@ -217,7 +234,12 @@ module CBin
217
234
 
218
235
  #by slj 如果没有头文件,去 "Headers/Public"拿
219
236
  # if public_headers.empty?
220
- Dir.chdir("./Headers/Public/#{@spec.name}") do
237
+ spec_header_dir = "./Headers/Public/#{@spec.name}"
238
+ unless File.exist?(spec_header_dir)
239
+ spec_header_dir = "./Pods/Headers/Public/#{@spec.name}"
240
+ end
241
+ raise "copy_headers #{spec_header_dir} no exist " unless File.exist?(spec_header_dir)
242
+ Dir.chdir(spec_header_dir) do
221
243
  headers = Dir.glob('*.h')
222
244
  headers.each do |h|
223
245
  public_headers << Pathname.new(File.join(Dir.pwd,h))
@@ -239,10 +261,10 @@ module CBin
239
261
  if Pathname(module_map_file).exist?
240
262
  module_map = File.read(module_map_file)
241
263
  end
242
- elsif public_headers.map(&:basename).map(&:to_s).include?("#{@spec.name}.h")
264
+ elsif public_headers.map(&:basename).map(&:to_s).include?("#{@spec.name}-umbrella.h")
243
265
  module_map = <<-MAP
244
266
  framework module #{@spec.name} {
245
- umbrella header "#{@spec.name}.h"
267
+ umbrella header "#{@spec.name}-umbrella.h"
246
268
 
247
269
  export *
248
270
  module * { export * }
@@ -256,9 +278,29 @@ module CBin
256
278
  framework.module_map_path.mkpath
257
279
  end
258
280
  File.write("#{framework.module_map_path}/module.modulemap", module_map)
281
+
282
+ # unless framework.swift_module_path.exist?
283
+ # framework.swift_module_path.mkpath
284
+ # end
285
+ # todo 所有架构的swiftModule拷贝到 framework.swift_module_path
286
+ archs = ios_architectures + ios_architectures_sim
287
+ archs.map do |arch|
288
+ swift_module = "build-#{arch}/#{@spec.name}.swiftmodule"
289
+ if File.directory?(swift_module)
290
+ FileUtils.cp_r("#{swift_module}/.", framework.swift_module_path)
291
+ end
292
+ end
293
+ swift_Compatibility_Header = "build-#{archs.first}/Swift\ Compatibility\ Header/#{@spec.name}-Swift.h"
294
+ FileUtils.cp(swift_Compatibility_Header,framework.headers_path) if File.exist?(swift_Compatibility_Header)
295
+ info_plist_file = File.join(File.dirname(__FILE__),"info.plist")
296
+ FileUtils.cp(info_plist_file,framework.fwk_path)
259
297
  end
260
298
  end
261
299
 
300
+ def copy_swift_header
301
+
302
+ end
303
+
262
304
  def copy_license
263
305
  UI.message 'Copying license'
264
306
  license_file = @spec.license[:file] || 'LICENSE'
@@ -266,8 +308,11 @@ module CBin
266
308
  end
267
309
 
268
310
  def copy_resources
311
+ resource_dir = './build/*.bundle'
312
+ resource_dir = './build-armv7/*.bundle' if File.exist?('./build-armv7')
313
+ resource_dir = './build-arm64/*.bundle' if File.exist?('./build-arm64')
269
314
 
270
- bundles = Dir.glob('./build/*.bundle')
315
+ bundles = Dir.glob(resource_dir)
271
316
 
272
317
  bundle_names = [@spec, *@spec.recursive_subspecs].flat_map do |spec|
273
318
  consumer = spec.consumer(@platform)
@@ -288,7 +333,18 @@ module CBin
288
333
  `cp -rp #{bundle_files} #{framework.resources_path} 2>&1`
289
334
  end
290
335
 
291
- real_source_dir = @isRootSpec ? @source_dir : Pathname.new(File.join(Dir.pwd,"#{@spec.name}"))
336
+ real_source_dir = @source_dir
337
+ unless @isRootSpec
338
+ spec_source_dir = File.join(Dir.pwd,"#{@spec.name}")
339
+ unless File.exist?(spec_source_dir)
340
+ spec_source_dir = File.join(Dir.pwd,"Pods/#{@spec.name}")
341
+ end
342
+ raise "copy_resources #{spec_source_dir} no exist " unless File.exist?(spec_source_dir)
343
+
344
+ spec_source_dir = File.join(Dir.pwd,"#{@spec.name}")
345
+ real_source_dir = spec_source_dir
346
+ end
347
+
292
348
  resources = [@spec, *@spec.recursive_subspecs].flat_map do |spec|
293
349
  expand_paths(real_source_dir, spec.consumer(@platform).resources)
294
350
  end.compact.uniq
@@ -315,6 +371,65 @@ module CBin
315
371
  end
316
372
  end
317
373
 
374
+ #---------------------------------swift--------------------------------------#
375
+ # lipo -create .a
376
+ def build_static_framework_machO_for_ios(output)
377
+ UI.message "Building ios framework with archs #{ios_architectures}"
378
+
379
+ static_libs = static_libs_in_sandbox('build') + @vendored_libraries
380
+ ios_architectures.map do |arch|
381
+ static_libs += static_libs_in_sandbox("build-#{arch}") + @vendored_libraries
382
+ end
383
+
384
+ ios_architectures_sim do |arch|
385
+ static_libs += static_libs_in_sandbox("build-#{arch}") + @vendored_libraries
386
+ end
387
+
388
+ build_path = Pathname("build")
389
+ build_path.mkpath unless build_path.exist?
390
+
391
+ libs = (ios_architectures + ios_architectures_sim) .map do |arch|
392
+ library = "build-#{arch}/#{@spec.name}.framework/#{@spec.name}"
393
+ library
394
+ end
395
+
396
+ UI.message "lipo -create -output #{output} #{libs.join(' ')}"
397
+ `lipo -create -output #{output} #{libs.join(' ')}`
398
+ end
399
+
400
+ def copy_static_framework_dir_for_ios
401
+
402
+ archs = ios_architectures + ios_architectures_sim
403
+ framework_dir = "build-#{ios_architectures_sim.first}/#{@spec.name}.framework"
404
+ framework_dir = "build-#{ios_architectures.first}/#{@spec.name}.framework" unless File.exist?(framework_dir)
405
+ unless File.exist?(framework_dir)
406
+ raise "#{framework_dir} path no exist"
407
+ end
408
+ File.join(Dir.pwd, "build-#{ios_architectures_sim.first}/#{@spec.name}.framework")
409
+ FileUtils.cp_r(framework_dir, framework.root_path)
410
+
411
+ # todo 所有架构的swiftModule拷贝到 framework.swift_module_path
412
+ archs.map do |arch|
413
+ swift_module = "build-#{arch}/#{@spec.name}.framework/Modules/#{@spec.name}.swiftmodule"
414
+ if File.directory?(swift_module)
415
+ FileUtils.cp_r("#{swift_module}/.", framework.swift_module_path)
416
+ end
417
+ end
418
+
419
+ # 删除Versions 软链接
420
+ framework.remove_current_version
421
+ end
422
+
423
+ def copy_framework_resources
424
+ resources = Dir.glob("#{framework.fwk_path + Pathname.new('Resources')}/*")
425
+ if resources.count == 0
426
+ framework.delete_resources
427
+ end
428
+ end
429
+
430
+
431
+ #---------------------------------getter and setter--------------------------------------#
432
+
318
433
  def framework
319
434
  @framework ||= begin
320
435
  framework = Framework.new(@spec.name, @platform.name.to_s)
@@ -38,12 +38,12 @@ module CBin
38
38
 
39
39
  def make_headers
40
40
  @headers_path = @versions_path + Pathname.new('Headers')
41
- # @headers_path.mkpath unless @headers_path.exist?
41
+ @headers_path.mkpath unless @headers_path.exist?
42
42
  end
43
43
 
44
44
  def make_resources
45
45
  @resources_path = @versions_path + Pathname.new('Resources')
46
- # @resources_path.mkpath unless @resources_path.exist?
46
+ @resources_path.mkpath unless @resources_path.exist?
47
47
  end
48
48
 
49
49
  def make_root
@@ -34,15 +34,20 @@ module CBin
34
34
  @local_build_dir = local_build_dir
35
35
  @clean = clean
36
36
  @framework_path
37
+ @is_library = !is_framework
37
38
  end
38
39
 
39
40
  def build
40
41
  UI.section("Building static framework #{@spec}") do
41
42
 
42
43
  build_static_framework
43
- build_static_library
44
- zip_static_framework if @zip &&= @framework_output
45
- zip_static_library
44
+ if @is_library
45
+ build_static_library
46
+ zip_static_framework if @zip &&= @framework_output
47
+ zip_static_library
48
+ else
49
+ zip_static_framework
50
+ end
46
51
 
47
52
  clean_workspace if @clean
48
53
  end
@@ -52,7 +57,7 @@ module CBin
52
57
  def build_static_framework
53
58
  file_accessor = Sandbox::FileAccessor.new(Pathname.new('.').expand_path, @spec.consumer(@platform))
54
59
  Dir.chdir(workspace_directory) do
55
- builder = CBin::LocalFramework::Builder.new(@spec, file_accessor, @platform, @local_build_dir_name,@local_build_dir)
60
+ builder = CBin::LocalFramework::Builder.new(@spec, file_accessor, @platform, @local_build_dir_name,@local_build_dir, @is_library, frameWork_dir)
56
61
  @framework_path = builder.create
57
62
  end
58
63
  end
@@ -68,9 +73,10 @@ module CBin
68
73
 
69
74
  def zip_static_framework
70
75
  Dir.chdir(zip_dir) do
71
- output_name = "#{framework_name}.zip"
76
+ # output_name = "#{framework_name}.zip"
77
+ output_name = File.join(zip_dir, framework_name_zip)
72
78
  unless File.exist?(framework_name)
73
- raise Informative, "没有需要压缩的 framework 文件:#{framework_name}"
79
+ UI.warn "没有需要压缩的 framework 文件:#{framework_name}"
74
80
  end
75
81
 
76
82
  UI.puts "Compressing #{framework_name} into #{output_name}"
@@ -110,6 +116,10 @@ module CBin
110
116
  CBin::Config::Builder.instance.framework_name(@spec)
111
117
  end
112
118
 
119
+ def framework_name_zip
120
+ CBin::Config::Builder.instance.framework_name_version(@spec) + ".zip"
121
+ end
122
+
113
123
  def library_name
114
124
  CBin::Config::Builder.instance.library_name(@spec)
115
125
  end
@@ -126,6 +136,28 @@ module CBin
126
136
  CBin::Config::Builder.instance.gen_name
127
137
  end
128
138
 
139
+ def is_library
140
+ File.exist?(File.join(@local_build_dir, "lib#{@spec.name}.a"))
141
+ end
142
+
143
+ # 使用了user_framework 会有#{@spec.name}.framework
144
+ # 未使用的 需要判断文件
145
+ def is_framework
146
+ res = File.exist?(File.join(@local_build_dir, "#{@spec.name}.framework"))
147
+ unless res
148
+ res = File.exist?(File.join(CBin::Config::Builder.instance.xcode_BuildProductsPath_dir, "#{@spec.name}","Swift Compatibility Header"))
149
+ end
150
+ res
151
+ end
152
+
153
+ def frameWork_dir
154
+ dir = File.join(@local_build_dir, "#{@spec.name}.framework")
155
+ unless File.exist?(dir)
156
+ dir = File.join(CBin::Config::Builder.instance.xcode_BuildProductsPath_dir, "#{@spec.name}")
157
+ end
158
+ dir
159
+ end
160
+
129
161
  def spec_file
130
162
  @spec_file ||= begin
131
163
  if @podspec
@@ -9,6 +9,8 @@ module CBin
9
9
  attr_reader :resources_path
10
10
  attr_reader :root_path
11
11
  attr_reader :versions_path
12
+ attr_reader :swift_module_path
13
+ attr_reader :fwk_path
12
14
 
13
15
  def initialize(name, platform, local_build_dir)
14
16
  @name = name
@@ -29,6 +31,21 @@ module CBin
29
31
  (Pathname.new(@fwk_path) + Pathname.new('Resources')).delete
30
32
  end
31
33
 
34
+ def remove_current_version
35
+ FileUtils.rm_f(File.join(@fwk_path,@name))
36
+ FileUtils.rm_f(File.join(@fwk_path,"Headers"))
37
+ FileUtils.rm_f(File.join(@fwk_path,"Resources"))
38
+
39
+ FileUtils.cp_r("#{@versions_path}/.", @fwk_path)
40
+ # FileUtils.remove_dir(@versions_path)
41
+ FileUtils.remove_dir("#{@fwk_path}/Versions")
42
+
43
+ # current_version_path = @versions_path + Pathname.new('../Current')
44
+ # `ln -sf A #{current_version_path}`
45
+ # `ln -sf Versions/Current/Headers #{@fwk_path}/`
46
+ # `ln -sf Versions/Current/Resources #{@fwk_path}/`
47
+ # `ln -sf Versions/Current/#{@name} #{@fwk_path}/`
48
+ end
32
49
  private
33
50
 
34
51
  def make_current_version
@@ -41,10 +58,13 @@ module CBin
41
58
 
42
59
  def make_framework
43
60
  @fwk_path = @root_path + Pathname.new(@name + '.framework')
61
+ FileUtils.remove_dir(@fwk_path) if @fwk_path.exist?
44
62
  @fwk_path.mkdir unless @fwk_path.exist?
45
63
 
46
64
  @module_map_path = @fwk_path + Pathname.new('Modules')
47
65
  @versions_path = @fwk_path + Pathname.new('Versions/A')
66
+ @fwk_path.exist?
67
+ @swift_module_path = @module_map_path + Pathname.new(@name + '.swiftmodule')
48
68
  end
49
69
 
50
70
  def make_headers