blob: 6ac5d53d0bd98ac52990128f6dc104341b8b426d [file] [log] [blame]
John Thompson02bad9f2013-09-23 17:57:00 +00001================
John Thompson26ecaf92013-10-16 13:44:21 +00002Modularize Usage
John Thompson02bad9f2013-09-23 17:57:00 +00003================
John Thompson2d2d45e2013-09-20 14:40:52 +00004
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,
John Thompson02bad9f2013-09-23 17:57:00 +000017but must be on the same line. For example::
John Thompson2d2d45e2013-09-20 14:40:52 +000018
John Thompson02bad9f2013-09-23 17:57:00 +000019 header1.h
20 header2.h
21 header3.h: header1.h header2.h
John Thompson2d2d45e2013-09-20 14:40:52 +000022
John Thompson26ecaf92013-10-16 13:44:21 +000023Note that unless a ``-prefix (header path)`` option is specified,
John Thompson2d2d45e2013-09-20 14:40:52 +000024non-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
John Thompson02bad9f2013-09-23 17:57:00 +000035===============================
John Thompson2d2d45e2013-09-20 14:40:52 +000036
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
John Thompson26ecaf92013-10-16 13:44:21 +000041 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`.
John Thompsonecd3b042015-02-11 16:58:36 +000052
53.. option:: -block-check-header-list-only
54
55 Limit the #include-inside-extern-or-namespace-block
56 check to only those headers explicitly listed in the header list.
57 This is a work-around for avoiding error messages for private includes that
58 purposefully get included inside blocks.