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