From 07976a2d78940ad3f62c5ae1be737199c528067b Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Mon, 15 Dec 2014 19:50:53 -0500 Subject: [PATCH] Expose INCLUDEPATH and LIBS qmake variables This allows one to specify the include and lib paths for gl and zlib. Example: gem install capybara-webkit -- \ --with-gl-dir=/nix/store/1sw1cyny213ih9dpdsq8h2kwqaqcm6vp-mesa-10.2.9 \ --with-zlib-dir=/nix/store/cb649pfdf14335d07jcfmsik7a1rsgbf-zlib-1.2.8 Fixes #695 --- extconf.rb | 18 ++++++++++++++++++ lib/capybara_webkit_builder.rb | 20 ++++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/extconf.rb b/extconf.rb index 6d76fac..2260841 100644 --- a/extconf.rb +++ b/extconf.rb @@ -1,2 +1,20 @@ +require "mkmf" + +$CPPFLAGS = "" + +dir_config("gl") +dir_config("zlib") + +include_path = $CPPFLAGS.gsub("-I", "").strip +libs = $LIBPATH.map { |path| "-L#{path}"}.join(" ").strip + +unless include_path.empty? + ENV["CAPYBARA_WEBKIT_INCLUDE_PATH"] = include_path +end + +unless libs.empty? + ENV["CAPYBARA_WEBKIT_LIBS"] = libs +end + require File.join(File.expand_path(File.dirname(__FILE__)), "lib", "capybara_webkit_builder") CapybaraWebkitBuilder.build_all diff --git a/lib/capybara_webkit_builder.rb b/lib/capybara_webkit_builder.rb index c48f77e..711239b 100644 --- a/lib/capybara_webkit_builder.rb +++ b/lib/capybara_webkit_builder.rb @@ -1,5 +1,6 @@ require "fileutils" require "rbconfig" +require "shellwords" module CapybaraWebkitBuilder extend self @@ -52,8 +53,10 @@ module CapybaraWebkitBuilder success end - def makefile(config = '') - sh("#{qmake_bin} -spec #{spec} #{config}") + def makefile(*configs) + configs += default_configs + configs = configs.map { |config| config.shellescape}.join(" ") + sh("#{qmake_bin} -spec #{spec} #{configs}") end def qmake @@ -82,6 +85,19 @@ module CapybaraWebkitBuilder end end + def default_configs + configs = [] + libpath = ENV["CAPYBARA_WEBKIT_LIBS"] + cppflags = ENV["CAPYBARA_WEBKIT_INCLUDE_PATH"] + if libpath + configs << "LIBS += #{libpath}" + end + if cppflags + configs << "INCLUDEPATH += #{cppflags}" + end + configs + end + def build_all makefile && qmake &&