/
usr
/
share
/
boost-build
/
src
/
tools
/
/usr/share/boost-build/src/tools
mkdir
upload
Name
Size
Mode
Actions
doxygen/
-
0755
rm
features/
-
0755
rm
generators/
-
0755
rm
types/
-
0755
rm
xsltproc/
-
0755
rm
acc.jam
4800
0644
edit
dl
rm
asciidoctor.jam
6480
0644
edit
dl
rm
auto-index.jam
8324
0644
edit
dl
rm
bison.jam
589
0644
edit
dl
rm
boostbook-config.jam
389
0644
edit
dl
rm
boostbook.jam
24056
0644
edit
dl
rm
borland.jam
9992
0644
edit
dl
rm
builtin.jam
3037
0644
edit
dl
rm
bzip2.jam
8066
0644
edit
dl
rm
cast.jam
3237
0644
edit
dl
rm
clang-darwin.jam
6713
0644
edit
dl
rm
clang-linux.jam
9984
0644
edit
dl
rm
clang-vxworks.jam
4026
0644
edit
dl
rm
clang-win.jam
6094
0644
edit
dl
rm
clang.jam
2310
0644
edit
dl
rm
common.jam
31679
0644
edit
dl
rm
como-linux.jam
3528
0644
edit
dl
rm
como-win.jam
4237
0644
edit
dl
rm
como.jam
2063
0644
edit
dl
rm
convert.jam
1987
0644
edit
dl
rm
cray.jam
41128
0644
edit
dl
rm
cw-config.jam
1283
0644
edit
dl
rm
cw.jam
9549
0644
edit
dl
rm
cygwin.jam
403
0644
edit
dl
rm
darwin.jam
22165
0644
edit
dl
rm
diab.jam
4307
0644
edit
dl
rm
dmc.jam
6094
0644
edit
dl
rm
docutils.jam
3444
0644
edit
dl
rm
doxproc.py
36621
0644
edit
dl
rm
doxygen-config.jam
388
0644
edit
dl
rm
doxygen.jam
24745
0644
edit
dl
rm
embarcadero.jam
21487
0644
edit
dl
rm
emscripten.jam
3779
0644
edit
dl
rm
flags.jam
4570
0644
edit
dl
rm
fop.jam
1693
0644
edit
dl
rm
fortran.jam
1989
0644
edit
dl
rm
gcc.jam
55288
0644
edit
dl
rm
generate.jam
3339
0644
edit
dl
rm
gettext.jam
7663
0644
edit
dl
rm
gfortran.jam
1008
0644
edit
dl
rm
hpfortran.jam
902
0644
edit
dl
rm
hp_cxx.jam
8089
0644
edit
dl
rm
ifort.jam
1495
0644
edit
dl
rm
intel-darwin.jam
9785
0644
edit
dl
rm
intel-linux.jam
9193
0644
edit
dl
rm
intel-vxworks.jam
7085
0644
edit
dl
rm
intel-win.jam
16396
0644
edit
dl
rm
intel.jam
2626
0644
edit
dl
rm
lex.jam
559
0644
edit
dl
rm
libjpeg.jam
7362
0644
edit
dl
rm
libpng.jam
7104
0644
edit
dl
rm
libtiff.jam
7208
0644
edit
dl
rm
link.jam
15021
0644
edit
dl
rm
lzma.jam
3277
0644
edit
dl
rm
make.jam
2266
0644
edit
dl
rm
mc.jam
1311
0644
edit
dl
rm
message.jam
1667
0644
edit
dl
rm
midl.jam
5367
0644
edit
dl
rm
mipspro.jam
5291
0644
edit
dl
rm
mpi.jam
21826
0644
edit
dl
rm
msvc-config.jam
393
0644
edit
dl
rm
msvc.jam
84672
0644
edit
dl
rm
notfile.jam
1654
0644
edit
dl
rm
openssl.jam
3613
0644
edit
dl
rm
package.jam
9281
0644
edit
dl
rm
pathscale.jam
6629
0644
edit
dl
rm
pch.jam
2719
0644
edit
dl
rm
pgi.jam
4879
0644
edit
dl
rm
pkg-config.jam
13443
0644
edit
dl
rm
python-config.jam
836
0644
edit
dl
rm
python.jam
43679
0644
edit
dl
rm
qcc.jam
10836
0644
edit
dl
rm
qt.jam
530
0644
edit
dl
rm
qt3.jam
6810
0644
edit
dl
rm
qt4.jam
23974
0644
edit
dl
rm
qt5.jam
26517
0644
edit
dl
rm
quickbook-config.jam
1266
0644
edit
dl
rm
quickbook.jam
13277
0644
edit
dl
rm
rc.jam
5364
0644
edit
dl
rm
sass.jam
5702
0644
edit
dl
rm
saxonhe.jam
1329
0644
edit
dl
rm
stage.jam
28513
0644
edit
dl
rm
stlport.jam
11880
0644
edit
dl
rm
sun.jam
8054
0644
edit
dl
rm
symlink.jam
4351
0644
edit
dl
rm
testing-aux.jam
10238
0644
edit
dl
rm
testing.jam
27889
0644
edit
dl
rm
unix.jam
5847
0644
edit
dl
rm
vacpp.jam
5725
0644
edit
dl
rm
vmsdecc.jam
20185
0644
edit
dl
rm
whale.jam
3253
0644
edit
dl
rm
xlcpp.jam
6121
0644
edit
dl
rm
xlf.jam
900
0644
edit
dl
rm
xsltproc-config.jam
838
0644
edit
dl
rm
xsltproc.jam
5603
0644
edit
dl
rm
zlib.jam
6976
0644
edit
dl
rm
zstd.jam
2446
0644
edit
dl
rm
Edit:
/usr/share/boost-build/src/tools/qt4.jam
(23974B)
# Copyright 2002-2006 Vladimir Prus # Copyright 2005 Alo Sarv # Copyright 2005-2009 Juergen Hunold # # Distributed under the Boost Software License, Version 1.0. (See # accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) # Qt4 library support module # # The module attempts to auto-detect QT installation location from QTDIR # environment variable; failing that, installation location can be passed as # argument: # # toolset.using qt4 : /usr/local/Trolltech/Qt-4.0.0 ; # # The module supports code generation from .ui and .qrc files, as well as # running the moc preprocessor on headers. Note that you must list all your # moc-able headers in sources. # # Example: # # exe myapp : myapp.cpp myapp.h myapp.ui myapp.qrc # /qt4//QtGui /qt4//QtNetwork ; # # It's also possible to run moc on cpp sources: # # import cast ; # # exe myapp : myapp.cpp [ cast _ moccable-cpp : myapp.cpp ] /qt4//QtGui ; # # When moccing source file myapp.cpp you need to include "myapp.moc" from # myapp.cpp. When moccing .h files, the output of moc will be automatically # compiled and linked in, you don't need any includes. # # This is consistent with Qt guidelines: # http://qt-project.org/doc/qt-4.8/moc.html # # The .qrc processing utility supports various command line option (see # http://qt-project.org/doc/qt-4.8/rcc.html for a complete list). The # module provides default arguments for the "output file" and # "initialization function name" options. Other options can be set through # the <rccflags> build property. E.g. if you wish the compression settings # to be more aggressive than the defaults, you can apply them too all .qrc # files like this: # # project my-qt-project : # requirements # <rccflags>"-compress 9 -threshold 10" # ; # # Of course, this property can also be specified on individual targets. import modules ; import feature ; import errors ; import type ; import "class" : new ; import generators ; import project ; import toolset : flags ; import os ; import virtual-target ; import scanner ; # Qt3Support control feature # # Qt4 configure defaults to build Qt4 libraries with Qt3Support. # The autodetection is missing, so we default to disable Qt3Support. # This prevents the user from inadvertedly using a deprecated API. # # The Qt3Support library can be activated by adding # "<qt3support>on" to requirements # # Use "<qt3support>on:<define>QT3_SUPPORT_WARNINGS" # to get warnings about deprecated Qt3 support functions and classes. # Files ported by the "qt3to4" conversion tool contain _tons_ of # warnings, so this define is not set as default. # # Todo: Detect Qt3Support from Qt's configure data. # Or add more auto-configuration (like python). feature.feature qt3support : off on : propagated link-incompatible ; # The Qt version used for requirements # Valid are <qt>4.4 or <qt>4.5.0 # Auto-detection via qmake sets '<qt>major.minor.patch' feature.feature qt : : propagated ; # Extra flags for rcc feature.feature rccflags : : free ; project.initialize $(__name__) ; project qt ; # Save the project so that we tolerate 'import + using' combo. .project = [ project.current ] ; # Helper utils for easy debug output if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ] { .debug-configuration = TRUE ; } local rule debug-message ( message * ) { if $(.debug-configuration) = TRUE { ECHO notice\: "[qt4-cfg]" $(message) ; } } # Capture qmake output line by line local rule read-output ( content ) { local lines ; local nl = " " ; local << = "([^$(nl)]*)[$(nl)](.*)" ; local line+ = [ MATCH "$(<<)" : "$(content)" ] ; while $(line+) { lines += $(line+[1]) ; line+ = [ MATCH "$(<<)" : "$(line+[2])" ] ; } return $(lines) ; } # Capture Qt version from qmake local rule check-version ( bin_prefix ) { full-cmd = $(bin_prefix)"/qmake -v" ; debug-message Running '$(full-cmd)' ; local output = [ SHELL $(full-cmd) ] ; for line in [ read-output $(output) ] { # Parse the output to get all the results. if [ MATCH "QMake" : $(line) ] { # Skip first line of output } else { temp = [ MATCH "([0-9]*)\\.([0-9]*)\\.([0-9]*)" : $(line) ] ; } } return $(temp) ; } # Validate the version string and extract the major/minor part we care about. # local rule split-version ( version ) { local major-minor = [ MATCH "^([0-9]+)\.([0-9]+)(.*)$" : $(version) : 1 2 3 ] ; if ! $(major-minor[2]) || $(major-minor[3]) { ECHO "Warning: 'using qt' expects a two part (major, minor) version number; got" $(version) instead ; # Add a zero to account for the missing digit if necessary. major-minor += 0 ; } return $(major-minor[1]) $(major-minor[2]) ; } # Initialize the QT support module. # Parameters: # - 'prefix' parameter tells where Qt is installed. # - 'full_bin' optional full path to Qt binaries (qmake,moc,uic,rcc) # - 'full_inc' optional full path to Qt top-level include directory # - 'full_lib' optional full path to Qt library directory # - 'version' optional version of Qt, else autodetected via 'qmake -v' # - 'condition' optional requirements rule init ( prefix : full_bin ? : full_inc ? : full_lib ? : version ? : condition * ) { project.push-current $(.project) ; debug-message "==== Configuring Qt ... ====" ; for local v in version cmd-or-prefix includes libraries condition { if $($(v)) { debug-message " user-specified $(v):" '$($(v))' ; } } # Needed as default value .prefix = $(prefix) ; # pre-build paths to detect reinitializations changes local inc_prefix lib_prefix bin_prefix ; if $(full_inc) { inc_prefix = $(full_inc) ; } else { inc_prefix = $(prefix)/include ; } if $(full_lib) { lib_prefix = $(full_lib) ; } else { lib_prefix = $(prefix)/lib ; } if $(full_bin) { bin_prefix = $(full_bin) ; } else { bin_prefix = $(prefix)/bin ; } # Globally needed variables .incprefix = $(inc_prefix) ; .libprefix = $(lib_prefix) ; .binprefix = $(bin_prefix) ; if ! $(.initialized) { # Make sure this is initialised only once .initialized = true ; # Generates cpp files from header files using "moc" tool generators.register-standard qt4.moc : H : CPP(moc_%) : <allow>qt4 ; # The OBJ result type is a fake, 'H' will be really produced. See # comments on the generator class, defined below the 'init' function. generators.register [ new uic-generator qt4.uic : UI : OBJ : <allow>qt4 ] ; # The OBJ result type is a fake here too. generators.register [ new moc-h-generator qt4.moc.inc : MOCCABLE_CPP : OBJ : <allow>qt4 ] ; generators.register [ new moc-inc-generator qt4.moc.inc : MOCCABLE_H : OBJ : <allow>qt4 ] ; # Generates .cpp files from .qrc files. generators.register-standard qt4.rcc : QRC : CPP(qrc_%) : <allow>qt4 ; # dependency scanner for wrapped files. type.set-scanner QRC : qrc-scanner ; # Save value of first occurring prefix .PREFIX = $(prefix) ; } if $(version) { major-minor = [ split-version $(version) ] ; version = $(major-minor:J=.) ; } else { version = [ check-version $(bin_prefix) ] ; if $(version) { version = $(version:J=.) ; } debug-message Detected version '$(version)' ; } local target-requirements = $(condition) ; # Add the version, if any, to the target requirements. if $(version) { if ! $(version) in [ feature.values qt ] { feature.extend qt : $(version) ; } target-requirements += <qt>$(version:E=default) ; } local target-os = [ feature.get-values target-os : $(condition) ] ; if ! $(target-os) { target-os ?= [ feature.defaults target-os ] ; target-os = $(target-os:G=) ; target-requirements += <target-os>$(target-os) ; } # Build exact requirements for the tools local tools-requirements = $(target-requirements:J=/) ; debug-message "Details of this Qt configuration:" ; debug-message " prefix: " '$(prefix:E=<empty>)' ; debug-message " binary path: " '$(bin_prefix:E=<empty>)' ; debug-message " include path:" '$(inc_prefix:E=<empty>)' ; debug-message " library path:" '$(lib_prefix:E=<empty>)' ; debug-message " target requirements:" '$(target-requirements)' ; debug-message " tool requirements: " '$(tools-requirements)' ; # setup the paths for the tools toolset.flags qt4.moc .BINPREFIX $(tools-requirements) : $(bin_prefix) ; toolset.flags qt4.rcc .BINPREFIX $(tools-requirements) : $(bin_prefix) ; toolset.flags qt4.uic .BINPREFIX $(tools-requirements) : $(bin_prefix) ; # TODO: 2009-02-12: Better support for directories # Most likely needed are separate getters for: include,libraries,binaries and sources. toolset.flags qt4.directory .PREFIX $(tools-requirements) : $(prefix) ; # Test for a buildable Qt. if [ glob $(.prefix)/Jamroot ] { .bjam-qt = true # this will declare QtCore (and qtmain on <target-os>windows) add-shared-library QtCore ; } else # Setup common pre-built Qt. # Special setup for QtCore on which everything depends { local link = [ feature.get-values link : $(condition) ] ; local usage-requirements = <include>$(.incprefix) <library-path>$(.libprefix) <threading>multi <allow>qt4 ; if $(link) in shared { usage-requirements += <dll-path>$(.libprefix) ; } local suffix ; # Since Qt-4.2, debug versions on unix have to be built # separately and therefore have no suffix. .suffix_version = "" ; .suffix_debug = "" ; # Control flag for auto-configuration of the debug libraries. # This setup requires Qt 'configure -debug-and-release'. # Only available on some platforms. # ToDo: 2009-02-12: Maybe throw this away and # require separate setup with <variant>debug as condition. .have_separate_debug = FALSE ; # Setup other platforms if $(target-os) in windows cygwin { .have_separate_debug = TRUE ; # On NT, the shared libs have "4" suffix, and "d" suffix in debug builds. if $(link) in shared { .suffix_version = "4" ; } .suffix_debug = "d" ; # On Windows we must link against the qtmain library lib qtmain : # sources : # requirements <name>qtmain$(.suffix_debug) <variant>debug $(target-requirements) ; lib qtmain : # sources : # requirements <name>qtmain $(target-requirements) ; } else if $(target-os) = darwin { # On MacOS X, both debug and release libraries are available. .suffix_debug = "_debug" ; .have_separate_debug = TRUE ; alias qtmain ; } else { alias qtmain : : $(target-requirements) ; } lib QtCore : qtmain : # requirements <name>QtCore$(.suffix_version) $(target-requirements) : # default-build : # usage-requirements <define>QT_CORE_LIB <define>QT_NO_DEBUG <include>$(.incprefix)/QtCore $(usage-requirements) ; if $(.have_separate_debug) = TRUE { debug-message Configure debug libraries with suffix '$(.suffix_debug)' ; lib QtCore : $(main) : # requirements <name>QtCore$(.suffix_debug)$(.suffix_version) <variant>debug $(target-requirements) : # default-build : # usage-requirements <define>QT_CORE_LIB <include>$(.incprefix)/QtCore $(usage-requirements) ; } } # Initialising the remaining libraries is canonical # parameters 'module' : 'depends-on' : 'usage-define' : 'requirements' : 'include' # 'include' only for non-canonical include paths. add-shared-library QtGui : QtCore : QT_GUI_LIB : $(target-requirements) ; add-shared-library QtNetwork : QtCore : QT_NETWORK_LIB : $(target-requirements) ; add-shared-library QtSql : QtCore : QT_SQL_LIB : $(target-requirements) ; add-shared-library QtXml : QtCore : QT_XML_LIB : $(target-requirements) ; add-shared-library Qt3Support : QtGui QtNetwork QtXml QtSql : QT_QT3SUPPORT_LIB QT3_SUPPORT : <qt3support>on $(target-requirements) ; # Dummy target to enable "<qt3support>off" and # "<library>/qt//Qt3Support" at the same time. This enables quick # switching from one to the other for test/porting purposes. alias Qt3Support : : <qt3support>off $(target-requirements) ; # OpenGl Support add-shared-library QtOpenGL : QtGui : QT_OPENGL_LIB : $(target-requirements) ; # SVG-Support (Qt 4.1) add-shared-library QtSvg : QtXml QtOpenGL : QT_SVG_LIB : $(target-requirements) ; # Test-Support (Qt 4.1) add-shared-library QtTest : QtCore : : $(target-requirements) ; # Qt designer library add-shared-library QtDesigner : QtGui QtXml : : $(target-requirements) ; add-shared-library QtDesignerComponents : QtGui QtXml : : $(target-requirements) ; # Support for dynamic Widgets (Qt 4.1) add-static-library QtUiTools : QtGui QtXml : $(target-requirements) ; # DBus-Support (Qt 4.2) add-shared-library QtDBus : QtXml : : $(target-requirements) ; # Script-Engine (Qt 4.3) add-shared-library QtScript : QtGui QtXml : QT_SCRIPT_LIB : $(target-requirements) ; # Tools for the Script-Engine (Qt 4.5) add-shared-library QtScriptTools : QtScript : QT_SCRIPTTOOLS_LIB : $(target-requirements) ; # WebKit (Qt 4.4) add-shared-library QtWebKit : QtGui : QT_WEBKIT_LIB : $(target-requirements) ; # Phonon Multimedia (Qt 4.4) add-shared-library phonon : QtGui QtXml : QT_PHONON_LIB : $(target-requirements) ; # Multimedia engine (Qt 4.6) add-shared-library QtMultimedia : QtGui : QT_MULTIMEDIA_LIB : $(target-requirements) ; # XmlPatterns-Engine (Qt 4.4) add-shared-library QtXmlPatterns : QtNetwork : QT_XMLPATTERNS_LIB : $(target-requirements) ; # Help-Engine (Qt 4.4) add-shared-library QtHelp : QtGui QtSql QtXml : : $(target-requirements) ; add-shared-library QtCLucene : QCore QtSql QtXml : : $(target-requirements) ; # QML-Engine (Qt 4.7) add-shared-library QtDeclarative : QtGui QtXml : : $(target-requirements) ; # AssistantClient Support # Compat library removed in 4.7.0 # Pre-4.4 help system, use QtHelp for new programs if $(version) < "4.7" { add-shared-library QtAssistantClient : QtGui : : $(target-requirements) : QtAssistant ; } debug-message "==== Configured Qt-$(version) ====" ; project.pop-current ; } rule initialized ( ) { return $(.initialized) ; } # This custom generator is needed because in QT4, UI files are translated only # into H files, and no C++ files are created. Further, the H files need not be # passed via MOC. The header is used only via inclusion. If we define a standard # UI -> H generator, B2 will run MOC on H, and then compile the # resulting cpp. It will give a warning, since output from moc will be empty. # # This generator is declared with a UI -> OBJ signature, so it gets invoked when # linking generator tries to convert sources to OBJ, but it produces target of # type H. This is non-standard, but allowed. That header won't be mocced. # class uic-generator : generator { rule __init__ ( * : * ) { generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ; } rule run ( project name ? : property-set : sources * ) { if ! $(name) { name = [ $(sources[0]).name ] ; name = $(name:B) ; } local a = [ new action $(sources[1]) : qt4.uic : $(property-set) ] ; # The 'ui_' prefix is to match qmake's default behavior. local target = [ new file-target ui_$(name) : H : $(project) : $(a) ] ; local r = [ virtual-target.register $(target) ] ; # Since this generator will return a H target, the linking generator # won't use it at all, and won't set any dependency on it. However, we # need the target to be seen by bjam, so that dependency from sources to # this generated header is detected -- if jam does not know about this # target, it won't do anything. DEPENDS all : [ $(r).actualize ] ; return $(r) ; } } class moc-h-generator : generator { rule __init__ ( * : * ) { generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ; } rule run ( project name ? : property-set : sources * ) { if ! $(sources[2]) && [ $(sources[1]).type ] = MOCCABLE_CPP { name = [ $(sources[0]).name ] ; name = $(name:B) ; local a = [ new action $(sources[1]) : qt4.moc.inc : $(property-set) ] ; local target = [ new file-target $(name) : MOC : $(project) : $(a) ] ; local r = [ virtual-target.register $(target) ] ; # Since this generator will return a H target, the linking generator # won't use it at all, and won't set any dependency on it. However, # we need the target to be seen by bjam, so that dependency from # sources to this generated header is detected -- if jam does not # know about this target, it won't do anything. DEPENDS all : [ $(r).actualize ] ; return $(r) ; } } } class moc-inc-generator : generator { rule __init__ ( * : * ) { generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ; } rule run ( project name ? : property-set : sources * ) { if ! $(sources[2]) && [ $(sources[1]).type ] = MOCCABLE_H { name = [ $(sources[0]).name ] ; name = $(name:B) ; local a = [ new action $(sources[1]) : qt4.moc.inc : $(property-set) ] ; local target = [ new file-target moc_$(name) : CPP : $(project) : $(a) ] ; # Since this generator will return a H target, the linking generator # won't use it at all, and won't set any dependency on it. However, # we need the target to be seen by bjam, so that dependency from # sources to this generated header is detected -- if jam does not # know about this target, it won't do anything. DEPENDS all : [ $(target).actualize ] ; return [ virtual-target.register $(target) ] ; } } } # Query the installation directory. This is needed in at least two scenarios. # First, when re-using sources from the Qt-Tree. Second, to "install" custom Qt # plugins to the Qt-Tree. # rule directory { return $(.PREFIX) ; } # Add a shared Qt library. rule add-shared-library ( lib-name : depends-on * : usage-defines * : requirements * : include ? ) { add-library $(lib-name) : $(.suffix_version) : $(depends-on) : $(usage-defines) : $(requirements) : $(include) ; } # Add a static Qt library. rule add-static-library ( lib-name : depends-on * : usage-defines * : requirements * : include ? ) { add-library $(lib-name) : : $(depends-on) : $(usage-defines) : $(requirements) : $(include) ; } # Add a Qt library. # Static libs are unversioned, whereas shared libs have the major number as suffix. # Creates both release and debug versions on platforms where both are enabled by Qt configure. # Flags: # - lib-name Qt library Name # - version Qt major number used as shared library suffix (QtCore4.so) # - depends-on other Qt libraries # - usage-defines those are set by qmake, so set them when using this library # - requirements additional requirements # - include non-canonical include path. The canonical path is $(.incprefix)/$(lib-name). rule add-library ( lib-name : version ? : depends-on * : usage-defines * : requirements * : include ? ) { if $(.bjam-qt) { # Import Qt module # Eveything will be setup there alias $(lib-name) : $(.prefix)//$(lib-name) : : : <allow>qt4 ; } else { local real_include ; real_include ?= $(include) ; real_include ?= $(lib-name) ; lib $(lib-name) : # sources $(depends-on) : # requirements <name>$(lib-name)$(version) $(requirements) : # default-build : # usage-requirements <define>$(usage-defines) <include>$(.incprefix)/$(real_include) ; if $(.have_separate_debug) = TRUE { lib $(lib-name) : # sources $(depends-on) : # requirements <name>$(lib-name)$(.suffix_debug)$(version) $(requirements) <variant>debug : # default-build : # usage-requirements <define>$(usage-defines) <include>$(.incprefix)/$(real_include) ; } } # Make library explicit so that a simple <use>qt4 will not bring in everything. # And some components like QtDBus/Phonon may not be available on all platforms. explicit $(lib-name) ; } # Use $(.BINPREFIX[-1]) for the paths as several tools-requirements can match. # The exact match is the last one. # Get <include> and <defines> from current toolset. flags qt4.moc INCLUDES <include> ; flags qt4.moc DEFINES <define> ; # need a newline for expansion of DEFINES and INCLUDES in the response file. .nl = " " ; # Processes headers to create Qt MetaObject information. Qt4-moc has its # c++-parser, so pass INCLUDES and DEFINES. # We use response file with one INCLUDE/DEFINE per line # actions moc { $(.BINPREFIX[-1])/moc -f $(>) -o $(<) @"@($(<).rsp:E=-D$(DEFINES)$(.nl) -I$(INCLUDES:T)$(.nl))" } # When moccing files for include only, we don't need -f, otherwise the generated # code will include the .cpp and we'll get duplicated symbols. # actions moc.inc { $(.BINPREFIX[-1])/moc $(>) -o $(<) @"@($(<).rsp:E=-D$(DEFINES)$(.nl) -I$(INCLUDES:T)$(.nl))" } # Get extra options for RCC flags qt4.rcc RCC_OPTIONS <rccflags> ; # Generates source files from resource files. # actions rcc { $(.BINPREFIX[-1])/rcc $(>) -name $(>:B) $(RCC_OPTIONS) -o $(<) } # Generates user-interface source from .ui files. # actions uic { $(.BINPREFIX[-1])/uic $(>) -o $(<) } # Scanner for .qrc files. Look for the CDATA section of the <file> tag. Ignore # the "alias" attribute. See http://doc.trolltech.com/qt/resources.html for # detailed documentation of the Qt Resource System. # class qrc-scanner : common-scanner { rule pattern ( ) { return "<file.*>(.*)</file>" ; } } # Wrapped files are "included". scanner.register qrc-scanner : include ;
Save
cmd:
run