[libc++][Android] Allow testing libc++ with clang-r536225 (#116149)
[llvm-project.git] / libc / docs / dev / cmake_build_rules.rst
blob2248ff40da237e2c2be6b132b4545b212a70ca60
1 .. _cmake_build_rules:
3 ===========================
4 The libc CMake build system
5 ===========================
7 At the cost of verbosity, we want to keep the build system of LLVM libc
8 as simple as possible. We also want to be highly modular with our build
9 targets. This makes picking and choosing desired pieces a straightforward
10 task.
12 Targets for entrypoints
13 -----------------------
15 Every entrypoint in LLVM-libc has its own build target. This target is listed
16 using the ``add_entrypoint_object`` rule. This rule generates a single object
17 file containing the implementation of the entrypoint.
19 Targets for redirecting entrypoints are also listed using the
20 ``add_entrypoint_object`` rule. However, one will have to additionally specify
21 the ``REDIRECTED`` option with the rule.
23 Targets for entrypoint libraries
24 --------------------------------
26 Standards like POSIX require that a libc provide certain library files like
27 ``libc.a``, ``libm.a``, etc. The targets for such library files are listed in
28 the ``lib`` directory as ``add_entrypoint_library`` targets. An
29 ``add_entrypoint_library`` target  takes a list of ``add_entrypoint_object``
30 targets and produces a static library containing the object files corresponding
31 to the ``add_entrypoint_targets``.