File: build_and_test.rst

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (81 lines) | stat: -rw-r--r-- 2,386 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
.. _build_and_test:

=============================
Building and Testing the libc
=============================

Build modes
===========

The libc can be built and tested in two different modes:

#. **The overlay mode** - In this mode, one uses the static archive from LLVM's
   libc along with the system libc. See :ref:`overlay_mode` for more details
   on building and using the libc in this mode. You can only run the libc
   unittests in this mode. To run them, one simply does:

   .. code-block:: sh

     $> ninja check-libc

   Note that, unittests for only those functions which are part of the overlay
   static archive will be run with the above command.

#. **The full build mode** - In this mode, the libc is used as the only libc
   for the user's application. See :ref:`fullbuild_mode` for more details on
   building and using the libc in this mode. Once configured for a full libc
   build, you can run three kinds of tests:

   #. Unit tests - You can run unittests by the command:

      .. code-block:: sh

        $> ninja check-libc

   #. Integration tests - You can run integration tests by the command:

      .. code-block:: sh

        $> ninja libc-integration-tests

   #. API verification test - See :ref:`api_test` for more information about
      the API test. It can be run by the command:

      .. code-block:: sh

        $> ninja libc-api-test

Building with VSCode
====================

As a quickstart to using VSCode for development, install the cmake extension
and put the following in your settings.json file:

.. code-block:: javascript

   {
     "cmake.sourceDirectory": "${workspaceFolder}/llvm",
     "cmake.configureSettings": {
         "LLVM_ENABLE_PROJECTS" : "libc",
         "LLVM_LIBC_FULL_BUILD" : true,
         "LLVM_ENABLE_SPHINX" : true,
         "LIBC_INCLUDE_DOCS" : true
     }
   }

Building with Bazel
===================

#. To build with Bazel, use the following command:

  .. code-block:: sh

    $> bazel build --config=generic_clang @llvm-project//libc/...

#. To run the unit tests with bazel, use the following command:

  .. code-block:: sh

    $> bazel test --config=generic_clang @llvm-project//libc/...

#. The bazel target layout of `libc` is located at: `utils/bazel/llvm-project-overlay/libc/BUILD.bazel <https://github.com/llvm/llvm-project/tree/main/utils/bazel/llvm-project-overlay/libc/BUILD.bazel>`_.