Lines Matching +full:release +full:- +full:workflow
12 combination of LLVM sub-project tools for distribution. This document covers
30 In deciding how to build your distribution there are a few trade-offs that you
53 workflow only. Due to design and implementation decisions, LLVM relies on
56 LLVM-based tools.
63 .. code-block:: console
65 $ cmake -G Ninja -C <path to clang>/cmake/caches/DistributionExample.cmake <path to LLVM source>
66 $ ninja stage2-distribution
67 $ ninja stage2-install-distribution
69 Difference between ``install`` and ``install-distribution``
70 -----------------------------------------------------------
73 and ``install-distribution`` targets. The ``install`` target is expected to
75 LLVM testing tools. Alternatively the ``install-distribution`` target, which is
90 .. _Multi-distribution configurations:
92 Multi-distribution configurations
93 ---------------------------------
95 The ``install-distribution`` target described above is for building a single
103 generates an ``install-${distribution}-distribution`` target, where
109 ``${project}-${distribution}-cmake-exports``, where ``${project}`` is the name
112 is just named ``${distribution}-cmake-exports``. These targets need to be
125 ``llvm-libraries`` to install all LLVM libraries); a target can appear in a
135 Special Notes for Library-only Distributions
136 --------------------------------------------
138 One of the most powerful features of LLVM is its library-first design mentality
151 setting *CMAKE_BUILD_TYPE* to ``Release`` for the stage-1 compiler. This is
153 stage-1 compiler is thrown away. All of the further options described should be
154 set on the stage-2 compiler either using a CMake cache file, or by prefixing the
158 *CMAKE_BUILD_TYPE* option. The main values of interest are ``Release`` or
159 ``RelWithDebInfo``. By default the ``Release`` option uses the ``-O3``
160 optimization level, and ``RelWithDebInfo`` uses ``-O2``. If you want to generate
161 debug information and use ``-O3`` you can override the
165 Another easy to use option is Link-Time-Optimization. You can set the
166 *LLVM_ENABLE_LTO* option on your stage-2 build to ``Thin`` or ``Full`` to enable
172 The :doc:`AdvancedBuilds` documentation describes the built-in tooling for
173 generating LLVM profiling information to drive Profile-Guided-Optimization. The
174 in-tree profiling tests are very limited, and generating the profile takes a
178 In addition to PGO profiling we also have limited support in-tree for generating
183 is worth noting that dtrace is non-deterministic, and so the order file
184 generation using dtrace is also non-deterministic.
195 optimization level to ``-Os`` which optimizes for binary size. This will have
200 between the LLVM-based tools. This can be done by setting the following two
218 compiler-rt, libcxxabi, libunwind...), it is important to build those projects
219 with the just-built compiler.
222 This variable can be set to a semi-colon separated list of LLVM build system
223 components to install. All LLVM-based tools are components, as well as most
228 This variable can be set to a semi-colon separated list of distributions. See
229 the :ref:`Multi-distribution configurations` section above for details on this
233 This variable can be set to a semi-colon separated list of runtime library
240 This variable can be set to a semi-colon separated name of LLVM library
245 #. ``all`` - All LLVM available component libraries
246 #. ``Native`` - The LLVM target for the Native system
247 #. ``AllTargetsAsmParsers`` - All the included target ASM parsers libraries
248 #. ``AllTargetsDescs`` - All the included target descriptions libraries
249 #. ``AllTargetsDisassemblers`` - All the included target dissassemblers libraries
250 #. ``AllTargetsInfos`` - All the included target info libraries