diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:11:01 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:11:01 +0900 |
commit | 3fdc3e5ee96dca5b11d1694975a65200787eab86 (patch) | |
tree | 5c1733853892b8397d67706fa453a9bd978d2102 /boostcpp.jam | |
parent | 88e602c57797660ebe0f9e15dbd64c1ff16dead3 (diff) | |
download | boost-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.jam | 71 |
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 * ) |