espressif_tinyusb/test/unit-test/vendor/ceedling/lib/ceedling/version.rb

55 lines
1.8 KiB
Ruby

# @private
module Ceedling
module Version
{ "UNITY" => File.join("unity","src","unity.h"),
"CMOCK" => File.join("cmock","src","cmock.h"),
"CEXCEPTION" => File.join("c_exception","lib","CException.h")
}.each_pair do |name, path|
# Check for local or global version of vendor directory in order to look up versions
path1 = File.expand_path( File.join("..","..","vendor",path) )
path2 = File.expand_path( File.join(File.dirname(__FILE__),"..","..","vendor",path) )
filename = if (File.exists?(path1))
path1
elsif (File.exists?(path2))
path2
elsif File.exists?(CEEDLING_VENDOR)
path3 = File.expand_path( File.join(CEEDLING_VENDOR,path) )
if (File.exists?(path3))
path3
else
basepath = File.join( CEEDLING_VENDOR, path.split(/\\\//)[0], 'release')
begin
[ @ceedling[:file_wrapper].read( File.join(base_path, 'release', 'version.info') ).strip,
@ceedling[:file_wrapper].read( File.join(base_path, 'release', 'build.info') ).strip ].join('.')
rescue
"#{name}"
end
end
else
module_eval("#{name} = 'unknown'")
continue
end
# Actually look up the versions
a = [0,0,0]
begin
File.readlines(filename).each do |line|
["VERSION_MAJOR", "VERSION_MINOR", "VERSION_BUILD"].each_with_index do |field, i|
m = line.match(/#{name}_#{field}\s+(\d+)/)
a[i] = m[1] unless (m.nil?)
end
end
rescue
abort("Can't collect data for vendor component: \"#{filename}\" . \nPlease check your setup.")
end
# splat it to return the final value
eval("#{name} = '#{a.join(".")}'")
end
GEM = "0.31.1"
CEEDLING = GEM
end
end