Sha256: 4b79959254aef15868acfe01ad0efa662ec818ec87e9629b566553b97ce0fcee

Contents?: true

Size: 1.05 KB

Versions: 4

Compression:

Stored size: 1.05 KB

Contents

require "fileutils"
require "rbconfig"

module CapybaraWebkitBuilder
  extend self

  def make_bin
    ENV['MAKE'] || 'make'
  end

  def qmake_bin
    ENV['QMAKE'] || 'qmake'
  end

  def spec
    ENV['SPEC'] || os_spec
  end

  def os_spec
    case RbConfig::CONFIG['host_os']
    when /linux/
      "linux-g++"
    when /freebsd/
      "freebsd-g++"
    when /mingw32/
      "win32-g++"
    else
      "macx-g++"
    end
  end

  def makefile
    system("#{qmake_bin} -spec #{spec}")
  end

  def qmake
    system("#{make_bin} qmake")
  end

  def path_to_binary
    case RUBY_PLATFORM
    when /mingw32/
      "src/debug/webkit_server.exe"
    else
      "src/webkit_server"
    end
  end

  def build
    system(make_bin) or return false

    FileUtils.mkdir("bin") unless File.directory?("bin")
    FileUtils.cp(path_to_binary, "bin", :preserve => true)
  end

  def clean
    File.open("Makefile", "w") do |file|
      file.print "all:\n\t@echo ok\ninstall:\n\t@echo ok"
    end
  end

  def build_all
    makefile &&
    qmake &&
    build &&
    clean
  end
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
imseng-capybara-webkit-0.12.1 lib/capybara_webkit_builder.rb
capybara-webkit-0.12.1 lib/capybara_webkit_builder.rb
otherinbox-capybara-webkit-0.12.0 lib/capybara_webkit_builder.rb
capybara-webkit-0.12.0 lib/capybara_webkit_builder.rb