class PhusionPassenger::Config::AgentCompiler

def compile_agent

def compile_agent
  puts "<banner>Compiling #{PROGRAM_NAME} agent...</banner>"
  progress_bar = ProgressBar.new
  e_working_dir = Shellwords.escape(@working_dir)
  args = "#{e_working_dir}/support-binaries/#{AGENT_EXE}" +
    " CACHING=false" +
    " OUTPUT_DIR=#{e_working_dir} "
    " OPTIMIZE=#{!!@optimize}"
  begin
    progress_bar.set(0)
    Dir.chdir(PhusionPassenger.build_system_dir) do
      InstallationUtils.run_rake_task!(args) do |progress, total|
        progress_bar.set(0.05 + (progress / total.to_f) * 0.95)
      end
    end
    progress_bar.set(1)
  ensure
    progress_bar.finish
  end
  FileUtils.cp("#{@working_dir}/support-binaries/#{AGENT_EXE}",
    "#{@destdir}/#{AGENT_EXE}")
  puts "<green>Compilation finished!</green>"
end