-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmrbgem.rake
45 lines (37 loc) · 1.6 KB
/
mrbgem.rake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
MRuby::Gem::Specification.new("mruby-lz4") do |s|
s.summary = "mruby bindings for lz4 the compression library (unofficial)"
s.version = File.read(File.join(File.dirname(__FILE__), "README.md")).scan(/^\s*[\-\*] version:\s*(\d+(?:\.\d+)+)/i).flatten[-1]
s.license = "BSD-2-Clause"
s.author = "dearblue"
s.homepage = "https://github.com/dearblue/mruby-lz4"
add_dependency "mruby-string-ext", core: "mruby-string-ext"
add_dependency "mruby-aux", github: "dearblue/mruby-aux"
if File.exist?(File.join(MRUBY_ROOT, "mrbgems/mruby-metaprog"))
add_test_dependency "mruby-metaprog", core: "mruby-metaprog"
end
cc.defines << "UNLZ4_GRADUAL_NO_MALLOC=1"
if cc.defines.flatten.grep(/^WITHOUT_UNLZ4_GRADUAL(?:$|=)/).empty?
cc.include_paths << File.join(dir, "contrib/micro-co/include")
else
objs.reject! { |o| o.include?("/mruby-lz4/src/unlz4-gradual.o") }
end
if s.cc.command =~ /\b(?:g?cc|clang)\d*\b/
s.cc.flags << "-Wno-shift-negative-value" <<
"-Wno-shift-count-negative" <<
"-Wno-shift-count-overflow" <<
"-Wno-missing-braces"
end
unless File.exist?(File.join(dir, "contrib/lz4/lib"))
Dir.chdir dir do
system "git submodule init" or fail
system "git submodule update" or fail
end
end if false
dirp = dir.gsub(/[\[\]\{\}\,]/) { |m| "\\#{m}" }
files = "contrib/lz4/lib/**/*.c"
objs.concat(Dir.glob(File.join(dirp, files)).map { |f|
next nil unless File.file? f
objfile f.relative_path_from(dir).pathmap("#{build_dir}/%X")
}.compact)
cc.include_paths.insert 0, File.join(dir, "contrib/lz4/lib")
end