diff options
Diffstat (limited to 'tasks/mrbgem_spec.rake')
| -rw-r--r-- | tasks/mrbgem_spec.rake | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake index 78d912980..1f7cde529 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 @@ -89,7 +90,9 @@ module MRuby build.libmruby << @objs instance_eval(&@build_config_initializer) if @build_config_initializer + end + def setup_compilers compilers.each do |compiler| compiler.define_rules build_dir, "#{dir}" compiler.defines << %Q[MRBGEM_#{funcname.upcase}_VERSION=#{version}] @@ -126,6 +129,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_before_libraries += [`pkg-config --libs #{escaped_package_query}`.strip] + true + else + false + end + end + def funcname @funcname ||= @name.gsub('-', '_') end @@ -403,6 +421,8 @@ module MRuby @ary = tsort_dependencies gem_table.keys, gem_table, true + each(&:setup_compilers) + each do |g| import_include_paths(g) end |
