|
Boost-Commit : |
From: jurko.gospodnetic_at_[hidden]
Date: 2008-05-03 12:32:24
Author: jurko
Date: 2008-05-03 12:32:23 EDT (Sat, 03 May 2008)
New Revision: 45072
URL: http://svn.boost.org/trac/boost/changeset/45072
Log:
Removed a TODO comment related to the 'NOTFILE all ;' statement in tools/build/v2/build-system.jam and replace with a better explanation comment. Dead code removal, Comment typo corrections. Minor stylistic changes.
Text files modified:
trunk/tools/build/v2/build-system.jam | 8
trunk/tools/build/v2/build/alias.jam | 2
trunk/tools/build/v2/build/targets.jam | 23 +-
trunk/tools/build/v2/build/virtual-target.jam | 9
trunk/tools/build/v2/tools/qt3.jam | 85 ++++-----
trunk/tools/build/v2/tools/qt4.jam | 352 ++++++++++++++++++++--------------------
6 files changed, 243 insertions(+), 236 deletions(-)
Modified: trunk/tools/build/v2/build-system.jam
==============================================================================
--- trunk/tools/build/v2/build-system.jam (original)
+++ trunk/tools/build/v2/build-system.jam 2008-05-03 12:32:23 EDT (Sat, 03 May 2008)
@@ -857,9 +857,11 @@
}
- # TODO: See if this 'NOTFILE all' statement can be moved below to the
- # default case where the 'all' target is actually requested to be built.
- # Check for other Jam scripts manually setting a dependency for this target.
+ # The 'all' pseudo target is not strictly needed expect in the case when we
+ # use it below but people often assume they always have this target
+ # available and do not declare it themselves before use which may cause
+ # build failures with an error message about not being able to build the
+ # 'all' target.
NOTFILE all ;
Modified: trunk/tools/build/v2/build/alias.jam
==============================================================================
--- trunk/tools/build/v2/build/alias.jam (original)
+++ trunk/tools/build/v2/build/alias.jam 2008-05-03 12:32:23 EDT (Sat, 03 May 2008)
@@ -51,6 +51,7 @@
}
}
+
# Declares the 'alias' target. It will build sources, and return them unaltered.
#
rule alias ( name : sources * : requirements * : default-build * : usage-requirements * )
@@ -66,4 +67,5 @@
] ;
}
+
IMPORT $(__name__) : alias : : alias ;
Modified: trunk/tools/build/v2/build/targets.jam
==============================================================================
--- trunk/tools/build/v2/build/targets.jam (original)
+++ trunk/tools/build/v2/build/targets.jam 2008-05-03 12:32:23 EDT (Sat, 03 May 2008)
@@ -1258,7 +1258,6 @@
if $(rproperties[1]) = "@error"
{
ECHO [ targets.indent ] "Skipping build of:" [ full-name ]
-
"cannot compute common properties" ;
}
else if [ $(rproperties).get <build> ] = no
@@ -1291,7 +1290,7 @@
}
# Given the set of generated targets, and refined build properties,
- # determines and sets appripriate usage requirements on those targets.
+ # determines and sets appropriate usage requirements on those targets.
#
rule compute-usage-requirements ( subvariant )
{
@@ -1324,6 +1323,13 @@
# Essentially, when those two features are in usage requirements, they
# are propagated only to direct dependents. We might need a more general
# mechanism, but for now, only those two features are special.
+ #
+ # TODO - Actually there are more possible candidates like for instance
+ # when listing static library X as a source for another static library.
+ # Then static library X will be added as a <source> property to the
+ # second library's usage requirements but those requirements should last
+ # only up to the first executable or shared library that actually links
+ # to it.
local raw = [ $(subvariant).sources-usage-requirements ] ;
raw = [ $(raw).raw ] ;
raw = [ property.change $(raw) : <pch-header> ] ;
@@ -1336,9 +1342,8 @@
# 'all-targets' - virtual targets created while building this main target
# 'build-request' - property-set instance with requested build properties
#
- local rule create-subvariant ( root-targets *
- : all-targets * : build-request : sources * : rproperties
- : usage-requirements )
+ local rule create-subvariant ( root-targets * : all-targets * :
+ build-request : sources * : rproperties : usage-requirements )
{
for local e in $(root-targets)
{
@@ -1347,8 +1352,8 @@
# Process all virtual targets that will be created if this main target
# is created.
- local s = [ new subvariant $(__name__) : $(build-request) : $(sources)
- : $(rproperties) : $(usage-requirements) : $(all-targets) ] ;
+ local s = [ new subvariant $(__name__) : $(build-request) : $(sources) :
+ $(rproperties) : $(usage-requirements) : $(all-targets) ] ;
for local v in $(all-targets)
{
if ! [ $(v).creating-subvariant ]
@@ -1529,8 +1534,8 @@
# 'requirements', 'default-build' and 'usage-requirements' are assumed to be in
# the form specified by the user in Jamfile corresponding to 'project'.
#
-rule create-typed-target ( type : project : name : sources * : requirements *
- : default-build * : usage-requirements * )
+rule create-typed-target ( type : project : name : sources * : requirements * :
+ default-build * : usage-requirements * )
{
return [
targets.main-target-alternative
Modified: trunk/tools/build/v2/build/virtual-target.jam
==============================================================================
--- trunk/tools/build/v2/build/virtual-target.jam (original)
+++ trunk/tools/build/v2/build/virtual-target.jam 2008-05-03 12:32:23 EDT (Sat, 03 May 2008)
@@ -275,7 +275,7 @@
# instance.
)
{
- if $(s) && ! $(self.creating-subvariant) && ! $(overwrite)
+ if $(s) && ! $(self.creating-subvariant)
{
self.creating-subvariant = $(s) ;
}
@@ -957,9 +957,10 @@
}
-# Each target returned by 'register' is added to a recent-targets list, returned
-# by this function. This allows us to find all targets created when building a
-# given main target, even if the target... !!!MISSING TEXT HERE!!!
+# Each target returned by 'register' is added to a .recent-targets list,
+# returned by this function. This allows us to find all virtual targets created
+# when building a given main target, even those constructed only as intermediate
+# targets.
#
rule recent-targets ( )
{
Modified: trunk/tools/build/v2/tools/qt3.jam
==============================================================================
--- trunk/tools/build/v2/tools/qt3.jam (original)
+++ trunk/tools/build/v2/tools/qt3.jam 2008-05-03 12:32:23 EDT (Sat, 03 May 2008)
@@ -2,10 +2,10 @@
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-# Support for the Qt GUI library version 3
-# (http://www.trolltech.com/products/qt3/index.html).
-# For new developments, it's recommented to use Qt4 via the qt4
-# Boost.Build module.
+# Support for the Qt GUI library version 3
+# (http://www.trolltech.com/products/qt3/index.html).
+# For new developments, it is recommended to use Qt4 via the qt4 Boost.Build
+# module.
import modules ;
import feature ;
@@ -16,15 +16,14 @@
import project ;
import toolset : flags ;
-# Convert this module into a project, so that we can declare
-# targets here.
-
+# Convert this module into a project, so that we can declare targets here.
project.initialize $(__name__) ;
project qt3 ;
-# Initialized the QT support module. The 'prefix' parameter
-# tells where QT is installed. When not given, environmental
-# variable QTDIR should be set.
+
+# Initialized the QT support module. The 'prefix' parameter tells where QT is
+# installed. When not given, environmental variable QTDIR should be set.
+#
rule init ( prefix ? )
{
if ! $(prefix)
@@ -51,23 +50,21 @@
.prefix = $(prefix) ;
generators.register-standard qt3.moc : H : CPP(moc_%) : <allow>qt3 ;
- # Note: the OBJ target type here is fake, take a look
- # at qt4.jam/uic-h-generator for explanations that
- # apply in this case as well.
+ # Note: the OBJ target type here is fake, take a look at
+ # qt4.jam/uic-h-generator for explanations that apply in this case as
+ # well.
generators.register [ new moc-h-generator-qt3
qt3.moc.cpp : MOCCABLE_CPP : OBJ : <allow>qt3 ] ;
- # The UI type is defined in types/qt.jam,
- # and UIC_H is only used in qt.jam, but not in qt4.jam, so
- # define it here.
+ # The UI type is defined in types/qt.jam, and UIC_H is only used in
+ # qt.jam, but not in qt4.jam, so define it here.
type.register UIC_H : : H ;
generators.register-standard qt3.uic-h : UI : UIC_H : <allow>qt3 ;
- # The following generator is used to convert UI files to CPP
- # It creates UIC_H from UI, and constructs CPP from UI/UIC_H
- # In addition, it also returns UIC_H target, so that it can bee
- # mocced.
+ # The following generator is used to convert UI files to CPP. It creates
+ # UIC_H from UI, and constructs CPP from UI/UIC_H. In addition, it also
+ # returns UIC_H target, so that it can be mocced.
class qt::uic-cpp-generator : generator
{
rule __init__ ( )
@@ -146,11 +143,11 @@
local r = [ virtual-target.register $(target) ] ;
- # Since this generator will return H target, the linking generator
- # won't use it at all, and won't set any dependency on it.
- # However, we need to 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.
+ # 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 the 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) ;
@@ -159,25 +156,26 @@
}
-# 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.
+# 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) ;
}
-# -f forces moc to include the processed source file.
-# Without it, it would think that .qpp is not a header and would not
-# include it from the generated file.
+# -f forces moc to include the processed source file. Without it, it would think
+# that .qpp is not a header and would not include it from the generated file.
+#
actions moc
{
$(.prefix)/bin/moc -f $(>) -o $(<)
}
-# When moccing .cpp files, we don't need -f, otherwise generated
-# code will include .cpp and we'll get duplicated symbols.
+# When moccing .cpp files, we don't need -f, otherwise generated code will
+# include .cpp and we'll get duplicated symbols.
+#
actions moc.cpp
{
$(.prefix)/bin/moc $(>) -o $(<)
@@ -186,27 +184,26 @@
space = " " ;
-# Sometimes it's required to make 'plugins' available during
-# uic invocation. To help with this we add paths to all dependency
-# libraries to uic commane line. The intention is that it's possible
-# to write
+# Sometimes it's required to make 'plugins' available during uic invocation. To
+# help with this we add paths to all dependency libraries to uic commane line.
+# The intention is that it's possible to write
#
# exe a : ... a.ui ... : <uses>some_plugin ;
#
-# and have everything work. We'd add quite a bunch of unrelated paths
-# but it won't hurt.
+# and have everything work. We'd add quite a bunch of unrelated paths but it
+# won't hurt.
+#
flags qt3.uic-h LIBRARY_PATH <xdll-path> ;
actions uic-h
{
$(.prefix)/bin/uic $(>) -o $(<) -L$(space)$(LIBRARY_PATH)
}
+
flags qt3.uic-cpp LIBRARY_PATH <xdll-path> ;
-# The second target is uic-generated header name. It's placed in
-# build dir, but we want to include it using only basename.
+# The second target is uic-generated header name. It's placed in build dir, but
+# we want to include it using only basename.
actions uic-cpp
{
$(.prefix)/bin/uic $(>[1]) -i $(>[2]:D=) -o $(<) -L$(space)$(LIBRARY_PATH)
}
-
-
Modified: trunk/tools/build/v2/tools/qt4.jam
==============================================================================
--- trunk/tools/build/v2/tools/qt4.jam (original)
+++ trunk/tools/build/v2/tools/qt4.jam 2008-05-03 12:32:23 EDT (Sat, 03 May 2008)
@@ -1,4 +1,4 @@
-# Copyright 2002-2006 Vladimir Prus
+# Copyright 2002-2006 Vladimir Prus
# Copyright 2005 Alo Sarv
# Copyright 2005-2006 Juergen Hunold
#
@@ -20,12 +20,12 @@
#
# Example:
#
-# exe myapp : myapp.cpp myapp.h myapp.ui myapp.qrc
+# 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 ;
+# import cast ;
#
# exe myapp : myapp.cpp [ cast _ moccable-cpp : myapp.cpp ] /qt4//QtGui ;
#
@@ -56,11 +56,11 @@
#
# 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 funtions and classes.
-# Files ported by the "qt3to4" conversion tool contain _tons_ of
-# warnings, so this define is not set as default.
+# 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).
@@ -73,12 +73,13 @@
.project = [ project.current ] ;
-# Initialized the QT support module. The 'prefix' parameter
-# tells where QT is installed.
+# Initialized the QT support module. The 'prefix' parameter tells where QT is
+# installed.
+#
rule init ( prefix )
{
project.push-current $(.project) ;
-
+
if $(.initialized)
{
if $(prefix) != $(.prefix)
@@ -92,32 +93,31 @@
.initialized = true ;
.prefix = $(prefix) ;
- #~ Setup prefixes for include, binaries and libs.
- #~ TODO: Implement overrides in "init" parameter list.
+ # Setup prefixes for include, binaries and libs.
+ # TODO: Implement overrides in "init" parameter list.
.incprefix = $(.prefix)/include ;
.libprefix = $(.prefix)/lib ;
.binprefix = $(.prefix)/bin ;
# 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 produces.
- # See comments on the generator calss, defined below
- # the 'init' function.
- generators.register [ new uic-h-generator qt4.uic-h : UI : OBJ
- : <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-h-generator qt4.uic-h : UI : OBJ :
+ <allow>qt4 ] ;
+
# The OBJ result type is a fake here too.
- generators.register [ new moc-h-generator
+ generators.register [ new moc-h-generator
qt4.moc.inc : MOCCABLE_CPP : OBJ : <allow>qt4 ] ;
- generators.register [ new moc-inc-generator
+ generators.register [ new moc-inc-generator
qt4.moc.inc : MOCCABLE_H : OBJ : <allow>qt4 ] ;
- # Generates .cpp file from qrc file
+ # Generates .cpp files from .qrc files.
generators.register-standard qt4.rcc : QRC : CPP(qrc_%) ;
-
- # dependency scanner for wrapped files
+
+ # dependency scanner for wrapped files.
type.set-scanner QRC : qrc-scanner ;
# Test for a buildable Qt.
@@ -125,71 +125,70 @@
{
# Import all Qt Modules
local all-libraries = QtCore QtGui QtNetwork QtXml QtSql QtSvg QtOpenGL Qt3Support QtTest QtAssistantClient QtDesigner QtUiTools QtDBus QtScript ;
- for local l in $(all-libraries)
+ for local l in $(all-libraries)
{
- alias $(l)
- : $(.prefix)//$(l)
- :
- :
- : <allow>qt4
- ;
+ alias $(l)
+ : $(.prefix)//$(l)
+ :
+ :
+ : <allow>qt4 ;
explicit $(l) ;
}
}
else
- # Use pre-built Qt
+ # Use pre-built Qt.
{
- local usage-requirements =
- <include>$(.incprefix)
- <library-path>$(.libprefix)
- <dll-path>$(.libprefix)
- <threading>multi
- <allow>qt4
- ;
-
+ local usage-requirements =
+ <include>$(.incprefix)
+ <library-path>$(.libprefix)
+ <dll-path>$(.libprefix)
+ <threading>multi
+ <allow>qt4 ;
+
local suffix ;
if [ os.name ] = NT
{
- # On NT, the libs have "4" suffix, and "d" suffix in debug builds
- # Also, on NT we must link against qtmain library (for WinMain)
+ # On NT, the libs have "4" suffix, and "d" suffix in debug
+ # builds. Also, on NT we must link against the qtmain library
+ # (for WinMain).
suffix_version = "4" ;
suffix_debug = "d" ;
- lib qtmain
+ lib qtmain
: # sources
: # requirements
<name>qtmain$(suffix_debug)
<variant>debug
;
- lib qtmain
- : # sources
+ lib qtmain
+ : # sources
: # requirements
- <name>qtmain
+ <name>qtmain
;
main = qtmain ;
- }
+ }
else if [ os.name ] = MACOSX
{
# On MacOS X, both debug and release libraries are available.
suffix_version = "" ;
suffix_debug = "_debug" ;
}
- else
+ else
{
- # Since Qt-4.2, debug versions on unix have to be built separately
- # and therefore have no suffix.
+ # Since Qt-4.2, debug versions on unix have to be built
+ # separately and therefore have no suffix.
suffix_version = "" ;
suffix_debug = "" ;
}
-
+
lib QtCore : $(main)
: # requirements
- <name>QtCore$(suffix_version)
+ <name>QtCore$(suffix_version)
: # default-build
: # usage-requirements
<define>QT_CORE_LIB
<define>QT_NO_DEBUG
- <include>$(.incprefix)/QtCore
+ <include>$(.incprefix)/QtCore
$(usage-requirements)
;
lib QtCore : $(main)
@@ -199,19 +198,19 @@
: # default-build
: # usage-requirements
<define>QT_CORE_LIB
- <include>$(.incprefix)/QtCore
- $(usage-requirements)
+ <include>$(.incprefix)/QtCore
+ $(usage-requirements)
;
-
+
lib QtGui : QtCore
: # requirements
- <name>QtGui$(suffix_version)
+ <name>QtGui$(suffix_version)
: # default-build
: # usage-requirements
<define>QT_GUI_LIB
- <include>$(.incprefix)/QtGui
+ <include>$(.incprefix)/QtGui
;
-
+
lib QtGui : QtCore
: # requirements
<name>QtGui$(suffix_debug)$(suffix_version)
@@ -219,16 +218,16 @@
: # default-build
: # usage-requirements
<define>QT_GUI_LIB
- <include>$(.incprefix)/QtGui
+ <include>$(.incprefix)/QtGui
;
-
+
lib QtNetwork : QtCore
: # requirements
- <name>QtNetwork$(suffix_version)
+ <name>QtNetwork$(suffix_version)
: # default-build
: # usage-requirements
<define>QT_NETWORK_LIB
- <include>$(.incprefix)/QtNetwork
+ <include>$(.incprefix)/QtNetwork
;
lib QtNetwork : QtCore
: # requirements
@@ -237,16 +236,16 @@
: # default-build
: # usage-requirements
<define>QT_NETWORK_LIB
- <include>$(.incprefix)/QtNetwork
+ <include>$(.incprefix)/QtNetwork
;
-
+
lib QtSql : QtCore
: # requirements
- <name>QtSql$(suffix_version)
+ <name>QtSql$(suffix_version)
: # default-build
: # usage-requirements
<define>QT_SQL_LIB
- <include>$(.incprefix)/QtSql
+ <include>$(.incprefix)/QtSql
;
lib QtSql : QtCore
: # requirements
@@ -255,16 +254,16 @@
: # default-build
: # usage-requirements
<define>QT_SQL_LIB
- <include>$(.incprefix)/QtSql
+ <include>$(.incprefix)/QtSql
;
-
+
lib QtXml : QtCore
: # requirements
- <name>QtXml$(suffix_version)
+ <name>QtXml$(suffix_version)
: # default-build
: # usage-requirements
<define>QT_XML_LIB
- <include>$(.incprefix)/QtXml
+ <include>$(.incprefix)/QtXml
;
lib QtXml : QtCore
: # requirements
@@ -273,9 +272,9 @@
: # default-build
: # usage-requirements
<define>QT_XML_LIB
- <include>$(.incprefix)/QtXml
+ <include>$(.incprefix)/QtXml
;
-
+
lib Qt3Support : QtGui QtNetwork QtXml QtSql
: # requirements
<name>Qt3Support$(suffix_version)
@@ -284,9 +283,9 @@
: # usage-requirements
<define>QT_QT3SUPPORT_LIB
<define>QT3_SUPPORT
- <include>$(.incprefix)/Qt3Support
+ <include>$(.incprefix)/Qt3Support
;
-
+
lib Qt3Support : QtGui QtNetwork QtXml QtSql
: # requirements
<name>Qt3Support$(suffix_debug)$(suffix_version)
@@ -296,21 +295,22 @@
: # usage-requirements
<define>QT_QT3SUPPORT_LIB
<define>QT3_SUPPORT
- <include>$(.incprefix)/Qt3Support
+ <include>$(.incprefix)/Qt3Support
;
- # 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.
+ # 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 ;
-
+
# OpenGl Support
lib QtOpenGL : QtGui
: # requirements
- <name>QtOpenGL$(suffix_version)
+ <name>QtOpenGL$(suffix_version)
: # default-build
: # usage-requirements
<define>QT_OPENGL_LIB
- <include>$(.incprefix)/QtOpenGL
+ <include>$(.incprefix)/QtOpenGL
;
lib QtOpenGL : QtGui
: # requirements
@@ -319,109 +319,109 @@
: # default-build
: # usage-requirements
<define>QT_OPENGL_LIB
- <include>$(.incprefix)/QtOpenGL
+ <include>$(.incprefix)/QtOpenGL
;
-
+
# SVG-Support (Qt 4.1)
lib QtSvg : QtXml QtOpenGL
: # requirements
- <name>QtSvg$(suffix_version)
+ <name>QtSvg$(suffix_version)
: # default-build
: # usage-requirements
<define>QT_SVG_LIB
- <include>$(.incprefix)/QtSvg
+ <include>$(.incprefix)/QtSvg
;
lib QtSvg : QtXml QtOpenGL
: # requirements
<name>QtSvg$(suffix_debug)$(suffix_version)
<variant>debug
: # default-build
- : # usage-requirements
+ : # usage-requirements
<define>QT_SVG_LIB
- <include>$(.incprefix)/QtSvg
+ <include>$(.incprefix)/QtSvg
;
-
+
# Test-Support (Qt 4.1)
lib QtTest : QtCore
: # requirements
- <name>QtTest$(suffix_version)
+ <name>QtTest$(suffix_version)
: # default-build
: # usage-requirements
- <include>$(.incprefix)/QtTest
+ <include>$(.incprefix)/QtTest
;
lib QtTest : QtCore
: # requirements
<name>QtTest$(suffix_debug)$(suffix_version)
- <variant>debug
+ <variant>debug
: # default-build
: # usage-requirements
- <include>$(.incprefix)/QtTest
+ <include>$(.incprefix)/QtTest
;
-
+
# AssistantClient Support
lib QtAssistantClient : QtGui
: # requirements
- <name>QtAssistantClient$(suffix_version)
+ <name>QtAssistantClient$(suffix_version)
: # default-build
: # usage-requirements
<include>$(.incprefix)/QtAssistant
;
lib QtAssistantClient : QtGui
: # requirements
- <name>QtAssistantClient$(suffix_debug)$(suffix_version)
- <variant>debug
+ <name>QtAssistantClient$(suffix_debug)$(suffix_version)
+ <variant>debug
: # default-build
: # usage-requirements
- <include>$(.incprefix)/QtAssistant
+ <include>$(.incprefix)/QtAssistant
;
-
+
# Qt designer library
lib QtDesigner : QtGui QtXml
: # requirements
- <name>QtDesigner$(suffix_version)
- : # default-build
+ <name>QtDesigner$(suffix_version)
+ : # default-build
: # usage-requirements
<include>$(.incprefix)/QtDesigner
;
lib QtDesigner : QtGui QtXml
: # requirements
- <name>QtDesigner$(suffix_debug)$(suffix_version)
- <variant>debug
- : # default-build
+ <name>QtDesigner$(suffix_debug)$(suffix_version)
+ <variant>debug
+ : # default-build
: # usage-requirements
<include>$(.incprefix)/QtDesigner
;
# Support for dynamic Widgets (Qt 4.1)
lib QtUiTools : QtGui QtXml
- : # requirements
+ : # requirements
<name>QtUiTools
: # default-build
: # usage-requirements
- <include>$(.incprefix)/QtUiTools
+ <include>$(.incprefix)/QtUiTools
;
lib QtUiTools : QtGui QtXml
: # requirements
- <name>QtUiTools$(suffix_debug)
- <variant>debug
- : # default-build
+ <name>QtUiTools$(suffix_debug)
+ <variant>debug
+ : # default-build
: # usage-requirements
- <include>$(.incprefix)/QtUiTools
+ <include>$(.incprefix)/QtUiTools
;
# DBus-Support (Qt 4.2)
lib QtDBus : QtXml
: # requirements
- <name>QtDBus$(suffix_version)
+ <name>QtDBus$(suffix_version)
: # default-build
: # usage-requirements
- <include>$(.incprefix)/QtDBus
+ <include>$(.incprefix)/QtDBus
;
lib QtDBus : QtXml
: # requirements
- <name>QtDBus$(suffix_debug)$(suffix_version)
- <variant>debug
+ <name>QtDBus$(suffix_debug)$(suffix_version)
+ <variant>debug
: # default-build
: # usage-requirements
<include>$(.incprefix)/QtDBus
@@ -430,22 +430,22 @@
# Script-Engine (Qt 4.3)
lib QtScript : QtGui QtXml
: # requirements
- <name>QtScript$(suffix_version)
+ <name>QtScript$(suffix_version)
: # default-build
: # usage-requirements
- <include>$(.incprefix)/QtScript
+ <include>$(.incprefix)/QtScript
;
lib QtScript : QtGui QtXml
: # requirements
- <name>QtScript$(suffix_debug)$(suffix_version)
- <variant>debug
+ <name>QtScript$(suffix_debug)$(suffix_version)
+ <variant>debug
: # default-build
: # usage-requirements
<include>$(.incprefix)/QtScript
;
}
}
-
+
project.pop-current ;
}
@@ -456,17 +456,15 @@
-# This custom generator is needed because it QT4, UI files are translated
-# only in 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 standard UI -> H generator, Boost.Build will run
-# MOC on H, and the compile resulting cpp. It will give a warning, since
-# output from moc will be empty.
-#
-# This generator is declared with UI -> OBJ signature, so it's
-# 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.
+# 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, Boost.Build 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-h-generator : generator
{
@@ -476,31 +474,29 @@
}
rule run ( project name ? : property-set : sources * )
- {
- if ! $(name)
+ {
+ if ! $(name)
{
name = [ $(sources[0]).name ] ;
name = $(name:B) ;
}
-
- local a = [ new action $(sources[1]) : qt4.uic-h :
- $(property-set) ] ;
-
+
+ local a = [ new action $(sources[1]) : qt4.uic-h : $(property-set) ] ;
+
# The 'ui_' prefix is to match qmake's default behavior.
- local target = [
- new file-target ui_$(name) : H : $(project) : $(a) ] ;
-
+ 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) ;
- }
+ }
}
@@ -512,29 +508,29 @@
}
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) ] ;
-
+ $(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) ;
- }
+ }
}
}
@@ -547,82 +543,85 @@
}
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) ] ;
-
+ $(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) ;
}
-# Get <include> and <defines> from current toolset
+# Get <include> and <defines> from current toolset.
flags qt4.moc INCLUDES <include> ;
flags qt4.moc DEFINES <define> ;
-# Processes headers to create Qt MetaObject information
-# Qt4-moc has its c++-parser, so pass INCLUDES and DEFINES.
+# Processes headers to create Qt MetaObject information. Qt4-moc has its
+# c++-parser, so pass INCLUDES and DEFINES.
+#
actions moc
{
$(.binprefix)/moc -I$(INCLUDES) -D$(DEFINES) -f $(>) -o $(<)
}
-# 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.
+# 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)/moc -I$(INCLUDES) -D$(DEFINES) $(>) -o $(<)
}
-# Generates source files from resource files
+# Generates source files from resource files.
+#
actions rcc
{
$(.binprefix)/rcc $(>) -name $(>:B) -o $(<)
}
-# Generates user-interface source from .ui files
+# Generates user-interface source from .ui files.
+#
actions uic-h
{
$(.binprefix)/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
+# 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 ( )
{
@@ -630,5 +629,6 @@
}
}
+
# Wrapped files are "included".
scanner.register qrc-scanner : include ;
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk