NameDateSize

..01-Oct-201825

MAINTAINERSH A D01-Oct-201860

README.mdH A D01-Oct-20181.2 KiB

README.md

1# GN integration for Zircon
2
3This directory hosts generated GN files for Zircon. These files are created
4automatically as part of the build by `//build/zircon/create_gn_rules.py` and
5should never be manually edited.
6
7In order to expose a Zircon module to GN, set the `MODULE_PACKAGE` attribute in
8its `rules.mk` build file. The possible values are:
9 - `bin`: the module is exposed as a host application;
10 - `src`: the module's sources are published;
11 - `shared`: the module is exposed as a precompiled shared library;
12 - `static`: the module is exposed as a precompiled static library;
13Note that this currently only applies to `ulib` and `hostapp` modules.
14
15Libraries that expose a C++ *interface* (C++ classes, functions, etc in public headers) *must* be
16published as `src`, since there is no safe way to support a binary interface (ABI) in C++.
17
18Libraries that expose a C interface (they may be *implemented* in C++) should be exposed as
19`static` or `shared` precompiled libraries.
20
21Small helper libraries are usually exported as `static`.  Larger libraries, especially ones that
22we'd expect to stabilize and be used by a wide variety of packages, generally should be shared, for
23better de-duplication during packaging and installation.
24