diff options
| author | Kouhei Sutou <[email protected]> | 2016-12-11 21:27:47 +0900 |
|---|---|---|
| committer | Kouhei Sutou <[email protected]> | 2016-12-11 21:35:56 +0900 |
| commit | 237d26fd86871cfd1e3531af87b1bf7654887bc3 (patch) | |
| tree | 36f538bb90ce17fe23b4189f4b2fd51fb6f557fa /tasks | |
| parent | 3cc913490b708fe4d0e78e48f86e6e39cf3d8576 (diff) | |
| download | mruby-237d26fd86871cfd1e3531af87b1bf7654887bc3.tar.gz mruby-237d26fd86871cfd1e3531af87b1bf7654887bc3.zip | |
Support pkg-config in mrbgem.rake
Example usage:
MRuby::Gem::Specification.new('mruby-onig-regexp') do |spec|
# ...
if spec.search_package('onigmo')
# Use onigmo.h when onigmo.pc exist.
spec.cc.defines += ["HAVE_ONIGMO_H"]
elsif spec.search_package('oniguruma')
# Use oniguruma.h when oniguruma.pc exist.
spec.cc.defines += ["HAVE_ONIGURUMA_H"]
else
# Use bundled Onigmo otherwise.
# ...
end
end
Diffstat (limited to 'tasks')
| -rw-r--r-- | tasks/mrbgem_spec.rake | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake index 78d912980..0aeeddaf1 100644 --- a/tasks/mrbgem_spec.rake +++ b/tasks/mrbgem_spec.rake @@ -1,6 +1,7 @@ require 'pathname' require 'forwardable' require 'tsort' +require 'shellwords' module MRuby module Gem @@ -126,6 +127,21 @@ module MRuby "#{build_dir}/gem_test.c" end + def search_package(name, version_query=nil) + package_query = name + package_query += " #{version_query}" if version_query + _pp "PKG-CONFIG", package_query + escaped_package_query = Shellwords.escape(package_query) + if system("pkg-config --exists #{escaped_package_query}") + cc.flags += [`pkg-config --cflags #{escaped_package_query}`.strip] + cxx.flags += [`pkg-config --cflags #{escaped_package_query}`.strip] + linker.flags += [`pkg-config --libs #{escaped_package_query}`.strip] + true + else + false + end + end + def funcname @funcname ||= @name.gsub('-', '_') end |
