]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boostcpp.jam
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boostcpp.jam
index 38113c46c6d6827dbf0263b8381b8be00f5f0cbd..85a4cb323fc9096be23383c8220d02a2c192b32e 100644 (file)
@@ -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 * )