* ``cd llvm/tools``
* ``svn co http://llvm.org/svn/llvm-project/cfe/trunk clang``
-#. Checkout Compiler-RT (required to build the sanitisers):
+#. Checkout Compiler-RT (required to build the sanitizers):
* ``cd where-you-want-llvm-to-live``
* ``cd llvm/projects``
* ``svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt``
-#. Checkout libcxx and libcxxabi (required if you want to use the sanitisers
- on C++ code):
+#. Checkout Libomp (required for OpenMP support):
+
+ * ``cd where-you-want-llvm-to-live``
+ * ``cd llvm/projects``
+ * ``svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp``
+
+#. Checkout libcxx and libcxxabi **[Optional]**:
* ``cd where-you-want-llvm-to-live``
* ``cd llvm/projects``
The usual build uses `CMake <CMake.html>`_. If you would rather use
autotools, see `Building LLVM with autotools <BuildingLLVMWithAutotools.html>`_.
+ Although the build is known to work with CMake >= 2.8.8, we recommend CMake
+ >= v3.2, especially if you're generating Ninja build files.
* ``cd where you want to build llvm``
* ``mkdir build``
* ``Unix Makefiles`` --- for generating make-compatible parallel makefiles.
* ``Ninja`` --- for generating `Ninja <http://martine.github.io/ninja/>`
- build files.
+ build files. Most llvm developers use Ninja.
* ``Visual Studio`` --- for generating Visual Studio projects and
solutions.
* ``Xcode`` --- for generating Xcode projects.
% cd llvm/tools
% git clone http://llvm.org/git/clang.git
-If you want to check out compiler-rt (required to build the sanitisers), run:
+If you want to check out compiler-rt (required to build the sanitizers), run:
.. code-block:: console
% cd llvm/projects
% git clone http://llvm.org/git/compiler-rt.git
-If you want to check out libcxx and libcxxabi (required if you want to use the
-sanitisers on C++ code), run:
+If you want to check out libomp (required for OpenMP support), run:
+
+.. code-block:: console
+
+ % cd llvm/projects
+ % git clone http://llvm.org/git/openmp.git
+
+If you want to check out libcxx and libcxxabi (optional), run:
.. code-block:: console
% git config svn-remote.svn.fetch :refs/remotes/origin/master
% git svn rebase -l
-Likewise for compiler-rt and test-suite.
+Likewise for compiler-rt, libomp and test-suite.
To update this clone without generating git-svn tags that conflict with the
upstream Git repo, run:
git checkout master &&
git svn rebase -l)
-Likewise for compiler-rt and test-suite.
+Likewise for compiler-rt, libomp and test-suite.
This leaves your working directories on their master branches, so you'll need to
``checkout`` each working branch individually and ``rebase`` it on top of its
| | the configure script. The default list is defined |
| | as ``LLVM_ALL_TARGETS``, and can be set to include |
| | out-of-tree targets. The default value includes: |
-| | ``AArch64, ARM, CppBackend, Hexagon, |
-| | Mips, MSP430, NVPTX, PowerPC, AMDGPU, Sparc, |
-| | SystemZ, X86, XCore``. |
+| | ``AArch64, AMDGPU, ARM, BPF, CppBackend, Hexagon, |
+| | Mips, MSP430, NVPTX, PowerPC, Sparc, SystemZ |
+| | X86, XCore``. |
+-------------------------+----------------------------------------------------+
| LLVM_ENABLE_DOXYGEN | Build doxygen-based documentation from the source |
| | code This is disabled by default because it is |
.. code-block:: console
- % cmake -G "Ninja" -DCMAKE_OSX_ARCHITECTURES=“armv7;armv7s;arm64"
+ % cmake -G "Ninja" -DCMAKE_OSX_ARCHITECTURES="armv7;armv7s;arm64"
-DCMAKE_TOOLCHAIN_FILE=<PATH_TO_LLVM>/cmake/platforms/iOS.cmake
-DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_RUNTIME=Off -DLLVM_INCLUDE_TESTS=Off
-DLLVM_INCLUDE_EXAMPLES=Off -DLLVM_ENABLE_BACKTRACES=Off [options]