require 'cocoapods-meitu-bin/native/sources_manager.rb' require 'cocoapods-meitu-bin/helpers/spec_creator' module CBin module SpecFilesHelper def spec_files @spec_files ||= Pathname.glob('*.podspec{,.json}') end def binary_spec_files @binary_spec_files ||= Pathname.glob('*.binary.podspec{,.json}') end def binary_template_spec_files @binary_spec_template_files ||= Pathname.glob('*.binary-template.podspec{,.json}') end def binary_template_spec_file @binary_spec_template_file ||= binary_template_spec_files.first end def code_spec_files @code_spec_files ||= spec_files - binary_spec_files - binary_template_spec_files end def code_spec if code_spec_files.first Pod::Specification.from_file(code_spec_files.first) end end def binary_spec if binary_spec_files.first Pod::Specification.from_file(binary_spec_files.first) end end def binary_template_spec if binary_template_spec_file Pod::Specification.from_file(binary_template_spec_file) end end def find_spec_file(podspec) path = Pathname(podspec) raise Pod::Informative, "无法找到 #{podspec}" unless path.exist? path end def create_binary_spec_file(code_spec, template_spec) # 1. code spec 是否有 subpsec # 1.1 有,查找 template spec,并生成 # 1.2 没有,是否有 template spec # 1.2.1 有,根据 template spec 生成 # 1.2.2 没有,根据 code spec 生成 unless code_spec raise Pod::Informative, '没有二进制 podspec 的情况下,必须要提供源码 podspec.' end # if code_spec.subspecs.any? && template_spec.nil? # raise Pod::Informative, '拥有 subspec 的组件,在生成二进制 podspec 时,必须要提供模版 podspec.' # end Dir.chdir(CBin::Config::Builder.instance.root_dir) do @spec_creator = CBin::SpecificationSource::Creator.new(code_spec) # @spec_creator = CBin::Specification::Creator.new(code_spec, template_spec) @spec_creator.create @spec_creator.write_spec_file @spec_creator.filename end end def clear_binary_spec_file_if_needed @spec_creator&.clear_spec_file end end end