summaryrefslogtreecommitdiff
path: root/boostcpp.jam
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2019-12-05 15:11:01 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2019-12-05 15:11:01 +0900
commit3fdc3e5ee96dca5b11d1694975a65200787eab86 (patch)
tree5c1733853892b8397d67706fa453a9bd978d2102 /boostcpp.jam
parent88e602c57797660ebe0f9e15dbd64c1ff16dead3 (diff)
downloadboost-3fdc3e5ee96dca5b11d1694975a65200787eab86.tar.gz
boost-3fdc3e5ee96dca5b11d1694975a65200787eab86.tar.bz2
boost-3fdc3e5ee96dca5b11d1694975a65200787eab86.zip
Imported Upstream version 1.66.0upstream/1.66.0
Diffstat (limited to 'boostcpp.jam')
-rw-r--r--boostcpp.jam71
1 files changed, 47 insertions, 24 deletions
diff --git a/boostcpp.jam b/boostcpp.jam
index 38113c46c6..85a4cb323f 100644
--- a/boostcpp.jam
+++ b/boostcpp.jam
@@ -123,7 +123,7 @@ rule tag ( name : type ? : property-set )
if $(layout) = versioned
{
result = [ common.format-name
- <base> <toolset> <threading> <runtime> -$(BOOST_VERSION_TAG)
+ <base> <toolset> <threading> <runtime> <arch-and-model> -$(BOOST_VERSION_TAG)
-$(BUILD_ID)
: $(name) : $(type) : $(property-set) ] ;
}
@@ -359,57 +359,84 @@ class top-level-target : alias-target-class
# incompatibility between debug and release variants. We build shared
# and static libraries since that is what most packages seem to provide
# (.so in libfoo and .a in libfoo-dev).
+
self.minimal-properties = [ property-set.create <variant>release
<threading>multi <link>shared <link>static <runtime-link>shared ] ;
+
# On Windows, new IDE projects use:
#
# runtime-link=dynamic, threading=multi, variant=(debug|release)
#
# and in addition, C++ Boost's autolink defaults to static linking.
+
self.minimal-properties-win = [ property-set.create <variant>debug
<variant>release <threading>multi <link>static <runtime-link>shared
- ] ;
+ <address-model>32 <address-model>64 ] ;
self.complete-properties = [ property-set.create
<variant>debug <variant>release
- <threading>single <threading>multi
+ <threading>multi
<link>shared <link>static
<runtime-link>shared <runtime-link>static ] ;
+
+ self.complete-properties-win = [ property-set.create
+ <variant>debug <variant>release
+ <threading>multi
+ <link>shared <link>static
+ <runtime-link>shared <runtime-link>static
+ <address-model>32 <address-model>64 ] ;
}
rule generate ( property-set )
{
modules.poke : top-level-targets : [ modules.peek : top-level-targets ]
$(self.name) ;
- if $(self.build-type) = minimal
+
+ local os = [ $(property-set).get <target-os> ] ;
+
+ # Because we completely override the parent's 'generate' we need to
+ # check for default feature values ourselves.
+
+ if ! $(os)
{
- local expanded ;
+ os = [ feature.defaults <target-os> ] ;
+ os = $(os:G=) ;
+ }
- local os = [ $(property-set).get <target-os> ] ;
- # Because we completely override the parent's 'generate' we need to
- # check for default feature values ourselves.
- if ! $(os)
- {
- os = [ feature.defaults <target-os> ] ;
- os = $(os:G=) ;
- }
+ local build-type-set ;
+ if $(self.build-type) = minimal
+ {
if $(os) = windows
{
- expanded = [ targets.apply-default-build $(property-set)
- : $(self.minimal-properties-win) ] ;
+ build-type-set = $(self.minimal-properties-win) ;
}
else
{
- expanded = [ targets.apply-default-build $(property-set)
- : $(self.minimal-properties) ] ;
+ build-type-set = $(self.minimal-properties) ;
}
- return [ build-multiple $(expanded) ] ;
}
else if $(self.build-type) = complete
{
+ if $(os) = windows
+ {
+ build-type-set = $(self.complete-properties-win) ;
+ }
+ else
+ {
+ build-type-set = $(self.complete-properties) ;
+ }
+ }
+ else
+ {
+ import errors ;
+ errors.error "Unknown build type" ;
+ }
+
+ if $(build-type-set)
+ {
local expanded = [ targets.apply-default-build $(property-set)
- : $(self.complete-properties) ] ;
+ : $(build-type-set) ] ;
# Filter inappopriate combinations.
local filtered ;
@@ -427,13 +454,9 @@ class top-level-target : alias-target-class
filtered += $(p) ;
}
}
+
return [ build-multiple $(filtered) ] ;
}
- else
- {
- import errors ;
- errors.error "Unknown build type" ;
- }
}
rule build-multiple ( property-sets * )