diff options
author | Lawrence Crowl <crowl@google.com> | 2013-06-20 21:14:14 +0000 |
---|---|---|
committer | Lawrence Crowl <crowl@google.com> | 2013-06-20 21:14:14 +0000 |
commit | bc3f628815b3841dc99109e7f67f9afa7793bc94 (patch) | |
tree | 97656d39cb726219914fd26e9e092c863fc74ce7 /docs/Modules.rst | |
parent | f462b0152f10eed0b989b07bcf457b6fb0d83bdb (diff) | |
download | clang-bc3f628815b3841dc99109e7f67f9afa7793bc94.tar.gz clang-bc3f628815b3841dc99109e7f67f9afa7793bc94.tar.bz2 clang-bc3f628815b3841dc99109e7f67f9afa7793bc94.tar.xz |
This patch adds new private headers to the module map. Private
headers may be included from within the module, but not from outside
the module.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184471 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/Modules.rst')
-rw-r--r-- | docs/Modules.rst | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/docs/Modules.rst b/docs/Modules.rst index fdf597a5a9..cd430a2ad2 100644 --- a/docs/Modules.rst +++ b/docs/Modules.rst @@ -231,8 +231,8 @@ Module map files use a simplified form of the C99 lexer, with the same rules for ``config_macros`` ``export`` ``module`` ``conflict`` ``framework`` ``requires`` - ``exclude`` ``header`` ``umbrella`` - ``explicit`` ``link`` + ``exclude`` ``header`` ``private`` + ``explicit`` ``link`` ``umbrella`` Module map file --------------- @@ -360,6 +360,7 @@ A header declaration specifies that a particular header is associated with the e *header-declaration*: ``umbrella``:sub:`opt` ``header`` *string-literal* + ``private`` ``header`` *string-literal* ``exclude`` ``header`` *string-literal* A header declaration that does not contain ``exclude`` specifies a header that contributes to the enclosing module. Specifically, when the module is built, the named header will be parsed and its declarations will be (logically) placed into the enclosing submodule. @@ -372,6 +373,8 @@ A header with the ``umbrella`` specifier is called an umbrella header. An umbrel ``-Wincomplete-umbrella`` warning option to ask Clang to complain about headers not covered by the umbrella header or the module map. +A header with the ``private`` specifier may not be included from outside the module itself. + A header with the ``exclude`` specifier is excluded from the module. It will not be included when the module is built, nor will it be considered to be part of the module. **Example**: The C header ``assert.h`` is an excellent candidate for an excluded header, because it is meant to be included multiple times (possibly with different ``NDEBUG`` settings). |