自動(dòng)生成hmap的Ruby腳本

需要借助milend的hmap工具[https://github.com/milend/hmap]

Homebrew 安裝hmap brew install milend/taps/hmap

#!/usr/bin/ruby
require 'json'

# 定義腳本運(yùn)行路徑,將在此路徑查找.h文件
directory_path = Dir.pwd() 

# json 文件生成路徑
json_file_path = ""
# hmap文件生成路徑
hmap_file_path = ""
json_arr = Hash[]

h_arr = Dir.glob("#{directory_path}/**/*.h")
h_arr.each do |f| 
    file_arr = File::split(f)
    filename = file_arr[1]
    suffix = filename
    prefix = file_arr[0]

    json_arr[filename] =  Hash["prefix" => "#{prefix}/", "suffix" => suffix]

    # 如果是pod路徑,添加path/a.h這樣的引用,如SDWebImage/NSImage+Compatibility.h
    path_arr = f.split("/")
    privatePods_index = path_arr.index("Pods") 
    if privatePods_index
        filename = path_arr[privatePods_index+1] + "/" + filename
        json_arr[filename] =  Hash["prefix" => "#{prefix}/", "suffix" => suffix]
    end
end

# 寫入json文件
File.open(json_file_path, "w+") do |aFile|
    aFile.syswrite(json_arr.to_json)
end
# 調(diào)用hmap將json轉(zhuǎn)為hmap
shell = "hmap convert #{json_file_path} #{hmap_file_path}"
%x(#{shell})
puts "Success!"

生成之后在工程中設(shè)置HEADER_SEARCH_PATHS 為上面生成的hmap路徑
并且將USE_HEADERMAP設(shè)為NO

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容