Module: Rscons
- Defined in:
- lib/rscons.rb,
lib/rscons/cli.rb,
lib/rscons/ansi.rb,
lib/rscons/util.rb,
lib/rscons/cache.rb,
lib/rscons/script.rb,
lib/rscons/varset.rb,
lib/rscons/builder.rb,
lib/rscons/command.rb,
lib/rscons/version.rb,
lib/rscons/application.rb,
lib/rscons/builder_set.rb,
lib/rscons/environment.rb,
lib/rscons/configure_op.rb,
lib/rscons/builders/copy.rb,
lib/rscons/builders/cfile.rb,
lib/rscons/builder_builder.rb,
lib/rscons/builders/object.rb,
lib/rscons/builders/command.rb,
lib/rscons/builders/library.rb,
lib/rscons/builders/program.rb,
lib/rscons/basic_environment.rb,
lib/rscons/builders/directory.rb,
lib/rscons/builders/preprocess.rb,
lib/rscons/builders/disassemble.rb,
lib/rscons/builders/mixins/object.rb,
lib/rscons/builders/shared_object.rb,
lib/rscons/builders/mixins/depfile.rb,
lib/rscons/builders/mixins/program.rb,
lib/rscons/builders/shared_library.rb,
lib/rscons/builders/simple_builder.rb,
lib/rscons/builders/mixins/object_deps.rb,
lib/rscons/default_construction_variables.rb
Overview
Namespace module for rscons classes
Defined Under Namespace
Modules: Ansi, Builders, Cli, Util Classes: Application, BasicEnvironment, BuildError, Builder, BuilderBuilder, BuilderSet, Cache, Command, ConfigureOp, Environment, Script, VarSet
Constant Summary collapse
- DEFAULT_BUILDERS =
Names of the default builders which will be added to all newly created Environment objects.
[ :CFile, :Command, :Copy, :Directory, :Disassemble, :Install, :InstallDirectory, :Library, :Object, :Preprocess, :Program, :SharedLibrary, :SharedObject, ]
- VERSION =
Project version.
"2.0.1"
- DEFAULT_CONSTRUCTION_VARIABLES =
Default Rscons construction variables.
{ "AR" => "ar", "ARCMD" => %w[${AR} ${ARFLAGS} ${_TARGET} ${_SOURCES}], "ARFLAGS" => %w[rcs], "AS" => "${CC}", "ASCMD" => %w[${AS} -c -o ${_TARGET} ${ASDEPGEN} ${INCPREFIX}${ASPPPATH} ${ASPPFLAGS} ${ASFLAGS} ${_SOURCES}], "ASCMD:direct" => %w[${AS} -o ${_TARGET} ${ASDEPGEN} ${INCPREFIX}${ASPPPATH} ${ASPPFLAGS} ${ASFLAGS} ${LDFLAGS} ${_SOURCES} ${LIBDIRPREFIX}${LIBPATH} ${LIBLINKPREFIX}${LIBS}], "ASDEPGEN" => %w[-MMD -MF ${_DEPFILE}], "ASFLAGS" => [], "ASPPFLAGS" => "${CPPFLAGS}", "ASPPPATH" => "${CPPPATH}", "ASSUFFIX" => %w[.S], "CC" => "gcc", "CCCMD" => %w[${CC} -c -o ${_TARGET} ${CCDEPGEN} ${INCPREFIX}${CPPPATH} ${CPPFLAGS} ${CFLAGS} ${CCFLAGS} ${_SOURCES}], "CCCMD:direct" => %w[${CC} -o ${_TARGET} ${CCDEPGEN} ${INCPREFIX}${CPPPATH} ${CPPFLAGS} ${CFLAGS} ${CCFLAGS} ${LDFLAGS} ${_SOURCES} ${LIBDIRPREFIX}${LIBPATH} ${LIBLINKPREFIX}${LIBS}], "CCDEPGEN" => %w[-MMD -MF ${_DEPFILE}], "CCFLAGS" => [], "CFLAGS" => [], "CPPDEFINES" => [], "CPPDEFPREFIX" => "-D", "CPPFLAGS" => %w[${CPPDEFPREFIX}${CPPDEFINES}], "CPPPATH" => [], "CPP_CMD" => %w[${_PREPROCESS_CC} -E ${_PREPROCESS_DEPGEN} -o ${_TARGET} ${INCPREFIX}${CPPPATH} ${CPPFLAGS} ${_SOURCES}], "CSUFFIX" => %w[.c], "CXX" => "g++", "CXXCMD" => %w[${CXX} -c -o ${_TARGET} ${CXXDEPGEN} ${INCPREFIX}${CPPPATH} ${CPPFLAGS} ${CXXFLAGS} ${CCFLAGS} ${_SOURCES}], "CXXCMD:direct" => %w[${CXX} -o ${_TARGET} ${CXXDEPGEN} ${INCPREFIX}${CPPPATH} ${CPPFLAGS} ${CXXFLAGS} ${CCFLAGS} ${LDFLAGS} ${_SOURCES} ${LIBDIRPREFIX}${LIBPATH} ${LIBLINKPREFIX}${LIBS}], "CXXDEPGEN" => %w[-MMD -MF ${_DEPFILE}], "CXXFLAGS" => [], "CXXSUFFIX" => %w[.cc .cpp .cxx .C], "DC" => "gdc", "DCCMD" => %w[${DC} -c -o ${_TARGET} ${DDEPGEN} ${INCPREFIX}${D_IMPORT_PATH} ${DFLAGS} ${_SOURCES}], "DCCMD:direct" => %w[${DC} -o ${_TARGET} ${DDEPGEN} ${INCPREFIX}${D_IMPORT_PATH} ${DFLAGS} ${LDFLAGS} ${_SOURCES} ${LIBDIRPREFIX}${LIBPATH} ${LIBLINKPREFIX}${LIBS}], "DDEPGEN" => %w[-MMD -MF ${_DEPFILE}], "DEPFILESUFFIX" => ".mf", "DFLAGS" => [], "DISASM_CMD" => %w[${OBJDUMP} ${DISASM_FLAGS} ${_SOURCES}], "DISASM_FLAGS" => %w[--disassemble --source], "DSUFFIX" => %w[.d], "D_IMPORT_PATH" => [], "INCPREFIX" => "-I", "LD" => nil, "LDCMD" => %w[${LD} -o ${_TARGET} ${LDFLAGS} ${_SOURCES} ${LIBDIRPREFIX}${LIBPATH} ${LIBLINKPREFIX}${LIBS}], "LDFLAGS" => [], "LEX" => "flex", "LEXSUFFIX" => %w[.l .ll], "LEX_CMD" => %w[${LEX} ${LEX_FLAGS} -o ${_TARGET} ${_SOURCES}], "LEX_FLAGS" => [], "LIBDIRPREFIX" => "-L", "LIBLINKPREFIX" => "-l", "LIBPATH" => [], "LIBS" => [], "LIBSUFFIX" => ".a", "OBJDUMP" => "objdump", "OBJSUFFIX" => %w[.o], "PROGSUFFIX" => on_windows ? ".exe" : "", "SHCC" => "${CC}", "SHCCCMD" => %w[${SHCC} -c -o ${_TARGET} ${CCDEPGEN} ${INCPREFIX}${CPPPATH} ${CPPFLAGS} ${SHCFLAGS} ${SHCCFLAGS} ${_SOURCES}], "SHCCCMD:direct" => %w[${SHCC} -o ${_TARGET} ${CCDEPGEN} ${INCPREFIX}${CPPPATH} ${CPPFLAGS} ${SHCFLAGS} ${SHCCFLAGS} ${SHLDFLAGS} ${_SOURCES} ${LIBDIRPREFIX}${LIBPATH} ${LIBLINKPREFIX}${LIBS}], "SHCCFLAGS" => %w[${CCFLAGS}] + pic_flags, "SHCFLAGS" => %w[${CFLAGS}], "SHCXX" => "${CXX}", "SHCXXCMD" => %w[${SHCXX} -c -o ${_TARGET} ${CXXDEPGEN} ${INCPREFIX}${CPPPATH} ${CPPFLAGS} ${SHCXXFLAGS} ${SHCCFLAGS} ${_SOURCES}], "SHCXXCMD:direct" => %w[${SHCXX} -o ${_TARGET} ${CXXDEPGEN} ${INCPREFIX}${CPPPATH} ${CPPFLAGS} ${SHCXXFLAGS} ${SHCCFLAGS} ${SHLDFLAGS} ${_SOURCES} ${LIBDIRPREFIX}${LIBPATH} ${LIBLINKPREFIX}${LIBS}], "SHCXXFLAGS" => %w[${CXXFLAGS}], "SHDC" => "gdc", "SHDCCMD" => %w[${SHDC} -c -o ${_TARGET} ${INCPREFIX}${D_IMPORT_PATH} ${SHDFLAGS} ${_SOURCES}], "SHDCCMD:direct" => %w[${SHDC} -o ${_TARGET} ${INCPREFIX}${D_IMPORT_PATH} ${SHDFLAGS} ${SHLDFLAGS} ${_SOURCES} ${LIBDIRPREFIX}${LIBPATH} ${LIBLINKPREFIX}${LIBS}], "SHDFLAGS" => %w[${DFLAGS}] + pic_flags, "SHLD" => nil, "SHLDCMD" => %w[${SHLD} -o ${_TARGET} ${SHLDFLAGS} ${_SOURCES} ${SHLIBDIRPREFIX}${LIBPATH} ${SHLIBLINKPREFIX}${LIBS}], "SHLDFLAGS" => %w[${LDFLAGS} -shared], "SHLIBDIRPREFIX" => "-L", "SHLIBLINKPREFIX" => "-l", "SHLIBPREFIX" => on_windows ? "" : "lib", "SHLIBSUFFIX" => on_windows ? ".dll" : ".so", "YACC" => "bison", "YACCSUFFIX" => %w[.y .yy], "YACC_CMD" => %w[${YACC} ${YACC_FLAGS} -o ${_TARGET} ${_SOURCES}], "YACC_FLAGS" => %w[-d], }
Class Method Summary collapse
-
.application ⇒ Application
Access the Application singleton.
-
.command_executer ⇒ Array<String>
Return an Array containing a command used to execute commands.
-
.command_executer=(val) ⇒ Array<String>
Set the command executer array.
-
.get_system_shell ⇒ Array<String>
Return the system shell and arguments for executing a shell command.
-
.phony_target?(target) ⇒ Boolean
Return whether the given target is a phony target.
-
.set_suffix(path, suffix) ⇒ String
Return a new path by changing the suffix in path to suffix.
-
.vars(*args) ⇒ VarSet
Access any variables set on the rscons command-line.
Class Method Details
.application ⇒ Application
Access the Application singleton.
47 48 49 |
# File 'lib/rscons.rb', line 47 def application @application ||= Application.new end |
.command_executer ⇒ Array<String>
Return an Array containing a command used to execute commands.
This will normally be an empty Array, but on Windows if Rscons detects that it is running in MSYS then [“env”] will be returned.
113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/rscons.rb', line 113 def command_executer @command_executer ||= if Object.const_get("RUBY_PLATFORM") =~ /mingw/ if ENV.keys.find {|key| key =~ /MSYS/} begin if IO.popen(["env", "echo", "success"]) {|io| io.read.strip} == "success" ["env"] end rescue end end end || [] end |
.command_executer=(val) ⇒ Array<String>
Set the command executer array.
132 133 134 |
# File 'lib/rscons.rb', line 132 def command_executer=(val) @command_executer = val end |
.get_system_shell ⇒ Array<String>
Return the system shell and arguments for executing a shell command.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/rscons.rb', line 80 def get_system_shell @shell ||= begin test_shell = lambda do |*args| begin "success" == IO.popen([*args, "echo success"]) do |io| io.read.strip end rescue false end end if ENV["SHELL"] and ENV["SHELL"] != "" and test_shell[ENV["SHELL"], "-c"] [ENV["SHELL"], "-c"] elsif Object.const_get("RUBY_PLATFORM") =~ /mingw/ if test_shell["sh", "-c"] # Using Rscons from MSYS should use MSYS's shell. ["sh", "-c"] else ["cmd", "/c"] end else ["sh", "-c"] end end end |
.phony_target?(target) ⇒ Boolean
Return whether the given target is a phony target.
63 64 65 |
# File 'lib/rscons.rb', line 63 def phony_target?(target) target.is_a?(Symbol) end |
.set_suffix(path, suffix) ⇒ String
Return a new path by changing the suffix in path to suffix.
73 74 75 |
# File 'lib/rscons.rb', line 73 def set_suffix(path, suffix) path.sub(/\.[^.]*$/, "") + suffix end |
.vars(*args) ⇒ VarSet
Access any variables set on the rscons command-line.
54 55 56 |
# File 'lib/rscons.rb', line 54 def vars(*args) application.vars(*args) end |