-
Notifications
You must be signed in to change notification settings - Fork 549
/
Rakefile
100 lines (90 loc) · 3.02 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Phusion Passenger - https://www.phusionpassenger.com/
# Copyright (C) 2008-2017 Phusion Holding B.V.
#
# "Passenger", "Phusion Passenger" and "Union Station" are registered
# trademarks of Phusion Holding B.V.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
require 'pathname'
SOURCE_ROOT = Pathname.new(File.expand_path(File.dirname(__FILE__)))
$LOAD_PATH.unshift(SOURCE_ROOT.to_s)
$LOAD_PATH.unshift("#{SOURCE_ROOT}/src/ruby_supportlib")
# Clean Bundler environment variables, preserve Rake environment variables.
# Otherwise all Ruby commands will take slightly longer to start, which messes up
# timing-sensitive tests like those in the C++ test suite.
if defined?(Bundler)
clean_env = nil
if Bundler.respond_to?(:with_original_env)
Bundler.with_original_env do
clean_env = ENV.to_hash.dup
end
elsif Bundler.respond_to?(:with_unbundled_env)
Bundler.with_unbundled_env do
clean_env = ENV.to_hash.dup
end
else
Bundler.with_clean_env do
clean_env = ENV.to_hash.dup
end
end
ENV.replace(clean_env)
ARGV.each do |arg|
if arg =~ /^(\w+)=(.*)$/m
ENV[$1] = $2
end
end
end
def require_build_system_file(name)
require "#{SOURCE_ROOT}/build/#{name}"
end
require("#{SOURCE_ROOT}/config") if File.exist?("#{SOURCE_ROOT}/config.rb")
require_build_system_file 'basics'
if boolean_option('ONLY_RUBY')
require_build_system_file 'ruby_extension'
else
require_build_system_file 'ruby_extension'
require_build_system_file 'common_library'
require_build_system_file 'agent'
require_build_system_file 'schema_printer'
require_build_system_file 'apache2'
require_build_system_file 'nginx'
require_build_system_file 'packaging'
require_build_system_file 'test_basics'
require_build_system_file 'oxt_tests'
require_build_system_file 'cxx_tests'
require_build_system_file 'ruby_tests'
require_build_system_file 'node_tests'
require_build_system_file 'integration_tests'
require_build_system_file 'misc'
end
#### Default tasks
task :default do
abort "Please type one of:\n" +
" rake apache2\n" +
" rake nginx"
end
desc "Remove compiled files"
task :clean => 'clean:cache' do
if OUTPUT_DIR == "buildout/"
sh "rm -rf buildout"
end
end
task 'common:clean' => 'clean:cache'
task 'clean:cache' do
sh "rm -rf #{OUTPUT_DIR}cache"
end
desc "Remove all generated files"
task :clobber do
sh "find -name AutoGenerated*.? -o -name AutoGenerated*.??? | xargs rm"
end