configure do
  check_cxx_compiler "clang++"
  check_cfg package: "libpng"
end

class Propane < Builder
  def run(options)
    @sources += ["propane"] unless @sources.include?("propane")
    if @command
      finalize_command
    else
      command = %W[./propane -w --log #{@target}.log #{@sources.first} #{@target}]
      standard_command("Propane <target>#{@target}<reset>", command, options)
    end
  end
end

env do |env|
  env.add_builder(Propane)
  env["CCFLAGS"] += %w[-Wall -O2 -std=c++23 -include fart/common.h]
  env["CPPPATH"] += %W[src #{env.build_root}/src]

  env.Propane("^/src/fart/propane.cpp", "src/fart.propane")
  env.barrier
  sources = glob("src/**/*.cpp") + ["#{env.build_root}/src/fart/propane.cpp"]
  env.Program("fart", sources)
end
