summaryrefslogtreecommitdiffhomepage
path: root/tasks/mrbgem_spec.rake
diff options
context:
space:
mode:
Diffstat (limited to 'tasks/mrbgem_spec.rake')
-rw-r--r--tasks/mrbgem_spec.rake20
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