Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 32 additions & 1 deletion reference/commands/graph/build_order_merge.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,35 @@ When 2 or more "build-order" files are merged, the resulting merge contains a ``
}

With the ``build_order_win`` and ``build_order_nix`` being the "build-order" filenames that were used as inputs to the merge, and which will be referenced in the ``filenames`` field of every ``package`` in the build order. This way, it is easier to obtain the necessary command line arguments to build a specific package binary in the build-order when building multiple configurations.


Note that when a merged build order containing multilpe ``filenames`` something like:

.. code-block:: json

{
"package_id": "efa83b160a55b033c4ea706ddb980cd708e3ba1b",
"context": "build",
"binary": "Build",
"filenames": [
"build_order_win",
"build_order_nix"
],
"build_args": "--tool-requires=dep/0.1 --build=dep/0.1",
"info": {
"settings": {
"build_type": "Release"
}
}
}

"profiles": {
"build_order_win": {
"args": "-pr:h=\"profile1\" -s:h=\"os=Windows\" ..."
},
"build_order_nix": {
"args": "-pr:h=\"profile2\" -s:h=\"os=Linux\" ..."
}
}


Then, the ``filename`` to be used is the first one, in this case ``build_order_win``, because the ``context`` and ``build_args`` arguments matches this profile information. The other filenames are provided as a reference to which other individual build-order files had this ``package_id`` listed for build.