Add Precompile builder
This commit is contained in:
parent
af7aad716d
commit
355014def6
@ -33,6 +33,7 @@ module Rscons
|
||||
:Lex,
|
||||
:Library,
|
||||
:Object,
|
||||
:Precompile,
|
||||
:Preprocess,
|
||||
:Program,
|
||||
:SharedLibrary,
|
||||
@ -152,6 +153,7 @@ require_relative "rscons/builders/disassemble"
|
||||
require_relative "rscons/builders/lex"
|
||||
require_relative "rscons/builders/library"
|
||||
require_relative "rscons/builders/object"
|
||||
require_relative "rscons/builders/precompile"
|
||||
require_relative "rscons/builders/preprocess"
|
||||
require_relative "rscons/builders/program"
|
||||
require_relative "rscons/builders/shared_library"
|
||||
|
||||
29
lib/rscons/builders/precompile.rb
Normal file
29
lib/rscons/builders/precompile.rb
Normal file
@ -0,0 +1,29 @@
|
||||
module Rscons
|
||||
module Builders
|
||||
# The Precompile builder generates .di interface files from .d source files
|
||||
# for D.
|
||||
class Precompile < Builder
|
||||
|
||||
# Run the builder to produce a build target.
|
||||
def run(options)
|
||||
if @command
|
||||
finalize_command
|
||||
else
|
||||
if @sources.find {|s| s.end_with?(*@env.expand_varref("${DSUFFIX}", @vars))}
|
||||
pcc = @env.expand_varref("${DC}")
|
||||
if pcc =~ /ldc/
|
||||
dpc_cmd = "${DPC_CMD:ldc}"
|
||||
else
|
||||
dpc_cmd = "${DPC_CMD:gdc}"
|
||||
end
|
||||
@vars["_TARGET"] = @target
|
||||
@vars["_SOURCES"] = @sources
|
||||
command = @env.build_command(dpc_cmd, @vars)
|
||||
standard_command("Precompile <source>#{Util.short_format_paths(@sources)}<reset>", command)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -43,6 +43,8 @@ module Rscons
|
||||
"DFLAGS" => [],
|
||||
"DISASM_CMD" => %w[${OBJDUMP} ${DISASM_FLAGS} ${_SOURCES}],
|
||||
"DISASM_FLAGS" => %w[--disassemble --source],
|
||||
"DPC_CMD:ldc" => %w[${DC} -H -Hf ${_TARGET} -o- ${INCPREFIX}${D_IMPORT_PATH} ${DFLAGS} ${_SOURCES}],
|
||||
"DPC_CMD:gdc" => %w[${DC} -H -Hf ${_TARGET} -fsyntax-only ${INCPREFIX}${D_IMPORT_PATH} ${DFLAGS} ${_SOURCES}],
|
||||
"DSUFFIX" => %w[.d],
|
||||
"D_IMPORT_PATH" => [],
|
||||
"INCPREFIX" => "-I",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user