forked from thoughtbot/capybara-webkit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
79 lines (63 loc) · 2.01 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
require 'fileutils'
unless ENV["BUILD"]
require 'rubygems'
require 'bundler/setup'
require 'rspec/core/rake_task'
require 'rake/gempackagetask'
end
desc "Generate a Makefile using qmake"
file 'Makefile' do
sh("qmake -spec macx-g++")
end
desc "Regenerate dependencies using qmake"
task :qmake => 'Makefile' do
sh("make qmake")
end
desc "Build the webkit server"
task :build => :qmake do
sh("make")
FileUtils.mkdir("bin") unless File.directory?("bin")
if File.exist?("src/webkit_server.app")
FileUtils.cp("src/webkit_server.app/Contents/MacOS/webkit_server", "bin", :preserve => true)
else
FileUtils.cp("src/webkit_server", "bin", :preserve => true)
end
end
file 'bin/webkit_server' => :build
unless ENV["BUILD"]
RSpec::Core::RakeTask.new do |t|
t.pattern = "spec/**/*_spec.rb"
t.rspec_opts = "--format progress"
end
desc "Default: build and run all specs"
task :default => [:build, :spec]
eval("$specification = begin; #{IO.read('capybara-webkit.gemspec')}; end")
Rake::GemPackageTask.new($specification) do |package|
package.need_zip = true
package.need_tar = true
end
desc "Generate a new command called NAME"
task :generate_command do
name = ENV['NAME'] or raise "Provide a name with NAME="
header = "src/#{name}.h"
source = "src/#{name}.cpp"
%w(h cpp).each do |extension|
File.open("templates/Command.#{extension}", "r") do |source_file|
contents = source_file.read
contents.gsub!("NAME", name)
File.open("src/#{name}.#{extension}", "w") do |target_file|
target_file.write(contents)
end
end
end
Dir.glob("src/*.pro").each do |project_file_name|
project = IO.read(project_file_name)
project.gsub!(/^(HEADERS = .*)/, "\\1 #{name}.h")
project.gsub!(/^(SOURCES = .*)/, "\\1 #{name}.cpp")
File.open(project_file_name, "w") { |file| file.write(project) }
end
File.open("src/find_command.h", "a") do |file|
file.write("CHECK_COMMAND(#{name})")
end
end
end