build/apache2.rb in passenger-4.0.14 vs build/apache2.rb in passenger-4.0.16
- old
+ new
@@ -71,11 +71,19 @@
set_namespace("apache2").
set_output_dir(APACHE2_OUTPUT_DIR + "module_libpassenger_common").
define_tasks(PlatformInfo.apache2_module_cflags).
link_objects
+auto_generated_sources = [
+ 'ext/apache2/ConfigurationCommands.cpp',
+ 'ext/apache2/ConfigurationFields.hpp',
+ 'ext/apache2/CreateDirConfig.cpp',
+ 'ext/apache2/MergeDirConfig.cpp',
+ 'ext/apache2/ConfigurationSetters.cpp'
+]
+
desc "Build Apache 2 module"
task :apache2 => [
APACHE2_MODULE,
AGENT_OUTPUT_DIR + 'PassengerHelperAgent',
AGENT_OUTPUT_DIR + 'PassengerWatchdog',
@@ -85,20 +93,21 @@
].compact
# Define rules for the individual Apache 2 module source files.
APACHE2_MODULE_INPUT_FILES.each_pair do |target, sources|
- extra_deps = ['ext/common/Constants.h']
+ extra_deps = ['ext/common/Constants.h'] + auto_generated_sources
file(target => sources + extra_deps) do
object_basename = File.basename(target)
object_filename = APACHE2_OUTPUT_DIR + object_basename
compile_cxx(sources[0], "#{APACHE2_MODULE_CXXFLAGS} -o #{object_filename}")
end
end
dependencies = [
+ auto_generated_sources,
APACHE2_MODULE_COMMON_LIBRARIES,
APACHE2_MODULE_BOOST_OXT_LIBRARY,
APACHE2_MOD_PASSENGER_O,
APACHE2_MODULE_OBJECTS
].flatten
@@ -132,6 +141,21 @@
task 'apache2:clean' => 'common:clean' do
files = APACHE2_MODULE_OBJECTS.dup
files << APACHE2_MOD_PASSENGER_O
files << APACHE2_MODULE
sh("rm", "-rf", *files)
+end
+
+def create_apache2_auto_generated_source_task(source)
+ dependencies = [
+ "#{source}.erb",
+ 'lib/phusion_passenger/apache2/config_options.rb'
+ ]
+ file(source => dependencies) do
+ template = TemplateRenderer.new("#{source}.erb")
+ template.render_to(source)
+ end
+end
+
+auto_generated_sources.each do |source|
+ create_apache2_auto_generated_source_task(source)
end