summaryrefslogtreecommitdiff
path: root/docs/Modules.rst
diff options
context:
space:
mode:
authorLawrence Crowl <crowl@google.com>2013-06-20 21:14:14 +0000
committerLawrence Crowl <crowl@google.com>2013-06-20 21:14:14 +0000
commitbc3f628815b3841dc99109e7f67f9afa7793bc94 (patch)
tree97656d39cb726219914fd26e9e092c863fc74ce7 /docs/Modules.rst
parentf462b0152f10eed0b989b07bcf457b6fb0d83bdb (diff)
downloadclang-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.rst7
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).