1================
2Modularize Usage
3================
4
5``modularize [<modularize-options>] <include-files-list> [<front-end-options>...]``
6
7``<modularize-options>`` is a place-holder for options
8specific to modularize, which are described below in
9`Modularize Command Line Options`.
10
11``<include-files-list>`` specifies the path of a file name for a
12file containing the newline-separated list of headers to check
13with respect to each other. Lines beginning with '#' and empty
14lines are ignored. Header file names followed by a colon and
15other space-separated file names will include those extra files
16as dependencies. The file names can be relative or full paths,
17but must be on the same line. For example::
18
19  header1.h
20  header2.h
21  header3.h: header1.h header2.h
22
23Note that unless a ``-prefix (header path)`` option is specified,
24non-absolute file paths in the header list file will be relative
25to the header list file directory.  Use -prefix to specify a different
26directory.
27
28``<front-end-options>`` is a place-holder for regular Clang
29front-end arguments, which must follow the <include-files-list>.
30Note that by default, the underlying Clang front end assumes .h files
31contain C source, so you might need to specify the ``-x c++`` Clang option
32to tell Clang that the header contains C++ definitions.
33
34Modularize Command Line Options
35===============================
36
37.. option:: -prefix <header-path>
38
39  Prepend the given path to non-absolute file paths in the header list file.
40  By default, headers are assumed to be relative to the header list file
41  directory.  Use ``-prefix`` to specify a different directory.
42
43.. option:: -module-map-path=<module-map-path>
44
45  Generate a module map and output it to the given file.  See the description
46  in :ref:`module-map-generation`.
47
48.. option:: -root-module=<root-name>
49
50  Put modules generated by the -module-map-path option in an enclosing
51  module with the given name.  See the description in :ref:`module-map-generation`.
52