Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > 9cb465b43d7d9d0502376cd911c5ab45 > files > 63

qbs-doc-1.12.2-2.mga7.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qbs.qdoc -->
  <title>Multiplexing | Qbs Manual</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="index.html">Qbs Manual</a></td><td >Multiplexing</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right">Qbs 1.12.2</td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
  <link rel="prev" href="generators.html" />
  <link rel="next" href="custom-modules.html" />
<p class="naviNextPrevious headerNavi">
<a class="prevPage" href="generators.html">Generators</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="custom-modules.html">Custom Modules and Items</a>
</p><p/>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">Multiplexing</h1>
<span class="subtitle"></span>
<!-- $$$multiplexing.html-description -->
<div class="descr"> <a name="details"></a>
<p>Multiplexing is an advanced Qbs feature that allows a product to be transparently built in multiple <i>passes</i> along with an optional, final <i>aggregate</i> pass that allows the output artifacts of the initial passes to be combined or otherwise operated on in some way.</p>
<p>The multiplexing feature is used to implement certain platform-specific behavior: specifically, it allows applications and libraries on Apple platforms to be compiled into <i>fat</i> binaries containing multiple CPU architectures, the creation of Apple frameworks containing multiple <i>variants</i> (for example, combined debug and release builds), and the creation of Android application and library packages containing native code built for multiple Android ABIs.</p>
<p>A product can be multiplexed over the <a href="qml-qbsmodules-qbs.html#architectures-prop">qbs.architectures</a> property (which maps to <a href="qml-qbsmodules-qbs.html#architecture-prop">qbs.architecture</a>), <a href="qml-qbsmodules-qbs.html#buildVariants-prop">qbs.buildVariants</a> property (which maps to <a href="qml-qbsmodules-qbs.html#buildVariant-prop">qbs.buildVariant</a>), and <a href="qml-qbsmodules-qbs.html#profiles-prop">qbs.profiles</a> (which maps to <a href="qml-qbslanguageitems-project.html#profile-prop">Project.profile</a>).</p>
<p><b>Note: </b>The implementation details around multiplexing are subject to change.</p><p>Product multiplexing works by examining the <a href="qml-qbslanguageitems-product.html#multiplexByQbsProperties-prop">Product.multiplexByQbsProperties</a> property, which can be set to the list of properties your product should multiplex over. For example, <code>multiplexByQbsProperties</code> might contain two strings, <code>&quot;architectures&quot;</code> and <code>&quot;buildVariants&quot;</code>. Qbs evaluates the values of <code>qbs.architectures</code> and <code>qbs.buildVariants</code>, which in turn might contain the values <code>[&quot;x86&quot;, &quot;x86_64&quot;]</code> and <code>[&quot;debug&quot;, &quot;release&quot;]</code>. Qbs will build all the possible configurations of the product: <code>(x86, debug)</code>, <code>(x86, release)</code>, <code>(x86_64, debug)</code>, and <code>(x86_64, release)</code>.</p>
<p>If the <a href="qml-qbslanguageitems-product.html#aggregate-prop">Product.aggregate</a> property is <code>true</code>, the product will also be built a fifth time, with the values of the multiplexed properties left undefined. The aggregate product will have an automatic dependency on the original four instances of the product, allowing it to collect their output artifacts and to operate on them.</p>
<p>The aggregate product is used in situations where the target artifacts of the individually multiplexed instances must be combined into one final aggregate artifact that makes up the overall product. Bundle products on Apple platforms use the aggregate product to create the bundle artifacts (such as <code>Info.plist</code> and <code>PkgInfo</code>) that are independent of a particular architecture or build variant. In addition, they use the <code>lipo</code> tool to join together the built native code for different architectures (such as <code>x86</code> and <code>x86_64</code>) into the final, multi-architecture fat binary that the app bundle contains.</p>
</div>
<!-- @@@multiplexing.html -->
<p class="naviNextPrevious footerNavi">
<a class="prevPage" href="generators.html">Generators</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="custom-modules.html">Custom Modules and Items</a>
</p>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2019 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>