/usr/share/boost-build/src/tools
NameSizeModeActions
doxygen/-0755rm
features/-0755rm
generators/-0755rm
types/-0755rm
xsltproc/-0755rm
acc.jam48000644editdlrm
asciidoctor.jam64800644editdlrm
auto-index.jam83240644editdlrm
bison.jam5890644editdlrm
boostbook-config.jam3890644editdlrm
boostbook.jam240560644editdlrm
borland.jam99920644editdlrm
builtin.jam30370644editdlrm
bzip2.jam80660644editdlrm
cast.jam32370644editdlrm
clang-darwin.jam67130644editdlrm
clang-linux.jam99840644editdlrm
clang-vxworks.jam40260644editdlrm
clang-win.jam60940644editdlrm
clang.jam23100644editdlrm
common.jam316790644editdlrm
como-linux.jam35280644editdlrm
como-win.jam42370644editdlrm
como.jam20630644editdlrm
convert.jam19870644editdlrm
cray.jam411280644editdlrm
cw-config.jam12830644editdlrm
cw.jam95490644editdlrm
cygwin.jam4030644editdlrm
darwin.jam221650644editdlrm
diab.jam43070644editdlrm
dmc.jam60940644editdlrm
docutils.jam34440644editdlrm
doxproc.py366210644editdlrm
doxygen-config.jam3880644editdlrm
doxygen.jam247450644editdlrm
embarcadero.jam214870644editdlrm
emscripten.jam37790644editdlrm
flags.jam45700644editdlrm
fop.jam16930644editdlrm
fortran.jam19890644editdlrm
gcc.jam552880644editdlrm
generate.jam33390644editdlrm
gettext.jam76630644editdlrm
gfortran.jam10080644editdlrm
hpfortran.jam9020644editdlrm
hp_cxx.jam80890644editdlrm
ifort.jam14950644editdlrm
intel-darwin.jam97850644editdlrm
intel-linux.jam91930644editdlrm
intel-vxworks.jam70850644editdlrm
intel-win.jam163960644editdlrm
intel.jam26260644editdlrm
lex.jam5590644editdlrm
libjpeg.jam73620644editdlrm
libpng.jam71040644editdlrm
libtiff.jam72080644editdlrm
link.jam150210644editdlrm
lzma.jam32770644editdlrm
make.jam22660644editdlrm
mc.jam13110644editdlrm
message.jam16670644editdlrm
midl.jam53670644editdlrm
mipspro.jam52910644editdlrm
mpi.jam218260644editdlrm
msvc-config.jam3930644editdlrm
msvc.jam846720644editdlrm
notfile.jam16540644editdlrm
openssl.jam36130644editdlrm
package.jam92810644editdlrm
pathscale.jam66290644editdlrm
pch.jam27190644editdlrm
pgi.jam48790644editdlrm
pkg-config.jam134430644editdlrm
python-config.jam8360644editdlrm
python.jam436790644editdlrm
qcc.jam108360644editdlrm
qt.jam5300644editdlrm
qt3.jam68100644editdlrm
qt4.jam239740644editdlrm
qt5.jam265170644editdlrm
quickbook-config.jam12660644editdlrm
quickbook.jam132770644editdlrm
rc.jam53640644editdlrm
sass.jam57020644editdlrm
saxonhe.jam13290644editdlrm
stage.jam285130644editdlrm
stlport.jam118800644editdlrm
sun.jam80540644editdlrm
symlink.jam43510644editdlrm
testing-aux.jam102380644editdlrm
testing.jam278890644editdlrm
unix.jam58470644editdlrm
vacpp.jam57250644editdlrm
vmsdecc.jam201850644editdlrm
whale.jam32530644editdlrm
xlcpp.jam61210644editdlrm
xlf.jam9000644editdlrm
xsltproc-config.jam8380644editdlrm
xsltproc.jam56030644editdlrm
zlib.jam69760644editdlrm
zstd.jam24460644editdlrm
Edit: /usr/share/boost-build/src/tools/rc.jam (5364B)
# Copyright (C) Andre Hentz 2003. Permission to copy, use, modify, sell and # distribute this software is granted provided this copyright notice appears in # all copies. This software is provided "as is" without express or implied # warranty, and with no claim as to its suitability for any purpose. # # Copyright (c) 2006 Rene Rivera. # # Use, modification and distribution is subject to the Boost Software # License Version 1.0. (See accompanying file LICENSE_1_0.txt or # http://www.boost.org/LICENSE_1_0.txt) import generators ; import feature ; import scanner ; import toolset : flags ; import type ; if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ] { .debug-configuration = true ; } type.register RC : rc ; rule init ( ) { } # Configures a new resource compilation command specific to a condition, # usually a toolset selection condition. The possible options are: # # * (rc|windres) - Indicates the type of options the command # accepts. # # Even though the arguments are all optional, only when a command, condition, # and at minimum the rc-type option are given will the command be configured. # This is so that callers don't have to check auto-configuration values before # calling this. And still get the functionality of build failures when the # resource compiler can not be found. # rule configure ( command ? : condition ? : options * ) { local rc-type = [ feature.get-values : $(options) ] ; if $(command) && $(condition) && $(rc-type) { flags rc.compile.resource .RC $(condition) : $(command) ; flags rc.compile.resource .RC_TYPE $(condition) : $(rc-type:L) ; flags rc.compile.resource DEFINES ; flags rc.compile.resource INCLUDES ; if $(.debug-configuration) { ECHO "notice:" using rc compiler "::" $(condition) "::" $(command) ; } } } rule compile.resource ( target : sources * : properties * ) { local rc-type = [ on $(target) return $(.RC_TYPE) ] ; rc-type ?= null ; compile.resource.$(rc-type) $(target) : $(sources[1]) ; } actions compile.resource.rc { "$(.RC)" -l 0x409 "-U$(UNDEFS)" "-D$(DEFINES)" -I"$(>:D)" -I"$(<:D)" -I"$(INCLUDES)" -fo "$(<)" "$(>)" } actions compile.resource.windres { "$(.RC)" "-U$(UNDEFS)" "-D$(DEFINES)" -I"$(>:D)" -I"$(<:D)" -I"$(INCLUDES)" -o "$(<)" -i "$(>)" } actions quietly compile.resource.null { as /dev/null -o "$(<)" } # Since it is common practice to write # exe hello : hello.cpp hello.rc # we change the name of object created from RC file, to avoid conflict with # hello.cpp. The reason we generate OBJ and not RES, is that gcc does not seem # to like RES files, but works OK with OBJ (see # http://article.gmane.org/gmane.comp.lib.boost.build/5643). # # Using 'register-c-compiler' adds the build directory to INCLUDES generators.register-c-compiler rc.compile.resource : RC : OBJ(%_res) ; # Register scanner for resources class res-scanner : scanner { import path ; import regex ; import scanner ; import virtual-target ; rule __init__ ( includes * ) { scanner.__init__ ; self.includes = $(includes) ; } rule pattern ( ) { return "(([^ ]+[ ]+(BITMAP|CURSOR|FONT|ICON|MESSAGETABLE|RT_MANIFEST)[ ]+([^ \"]+|\"[^\"]+\"))|(#include[ ]*(<[^<]+>|\"[^\"]+\")))" ; } rule process ( target : matches * : binding ) { local angle = [ regex.transform $(matches) : "#include[ ]*<([^<]+)>" ] ; local quoted = [ regex.transform $(matches) : "#include[ ]*\"([^\"]+)\"" ] ; local res = [ regex.transform $(matches) : "[^ ]+[ ]+(BITMAP|CURSOR|FONT|ICON|MESSAGETABLE|RT_MANIFEST)[ ]+(([^ \"]+)|\"([^\"]+)\")" : 3 4 ] ; # Icons and other includes may be referenced as # # IDR_MAINFRAME ICON "res\\icon.ico" # # so we have to replace double backslashes with single ones. res = [ regex.replace-list $(res) : "\\\\\\\\" : "/" ] ; # CONSIDER: the new scoping rules seem to defeat "on target" variables. local g = [ on $(target) return $(HDRGRIST) ] ; local b = [ NORMALIZE_PATH $(binding:D) ] ; # Attach binding of including file to included targets. When a target is # directly created from a virtual target this extra information is # unnecessary. But in other cases, it allows us to distinguish between # two headers of the same name included from different places. We do not # need this extra information for angle includes, since they should not # depend on the including file (we can not get literal "." in the # include path). local g2 = $(g)"#"$(b) ; angle = $(angle:G=$(g)) ; quoted = $(quoted:G=$(g2)) ; res = $(res:G=$(g2)) ; local all = $(angle) $(quoted) $(res) ; INCLUDES $(target) : $(all) ; NOCARE $(all) ; SEARCH on $(angle) = $(self.includes:G=) ; SEARCH on $(quoted) $(res) = $(b) $(self.includes:G=) ; # Just propagate the current scanner to includes, in hope that includes # do not change scanners. scanner.propagate $(__name__) : $(angle) $(quoted) : $(target) ; ISFILE $(all) ; } } scanner.register res-scanner : include ; type.set-scanner RC : res-scanner ;