99 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
================
 | 
						|
Modularize Usage
 | 
						|
================
 | 
						|
 | 
						|
``modularize [<modularize-options>] [<module-map>|<include-files-list>]*
 | 
						|
[<front-end-options>...]``
 | 
						|
 | 
						|
``<modularize-options>`` is a place-holder for options
 | 
						|
specific to modularize, which are described below in
 | 
						|
`Modularize Command Line Options`.
 | 
						|
 | 
						|
``<module-map>`` specifies the path of a file name for an
 | 
						|
existing module map. The module map must be well-formed in
 | 
						|
terms of syntax. Modularize will extract the header file names
 | 
						|
from the map. Only normal headers are checked, assuming headers
 | 
						|
marked "private", "textual", or "exclude" are not to be checked
 | 
						|
as a top-level include, assuming they either are included by
 | 
						|
other headers which are checked, or they are not suitable for
 | 
						|
modules.
 | 
						|
 | 
						|
``<include-files-list>`` specifies the path of a file name for a
 | 
						|
file containing the newline-separated list of headers to check
 | 
						|
with respect to each other. Lines beginning with '#' and empty
 | 
						|
lines are ignored. Header file names followed by a colon and
 | 
						|
other space-separated file names will include those extra files
 | 
						|
as dependencies. The file names can be relative or full paths,
 | 
						|
but must be on the same line. For example::
 | 
						|
 | 
						|
  header1.h
 | 
						|
  header2.h
 | 
						|
  header3.h: header1.h header2.h
 | 
						|
 | 
						|
Note that unless a ``-prefix (header path)`` option is specified,
 | 
						|
non-absolute file paths in the header list file will be relative
 | 
						|
to the header list file directory. Use -prefix to specify a different
 | 
						|
directory.
 | 
						|
 | 
						|
``<front-end-options>`` is a place-holder for regular Clang
 | 
						|
front-end arguments, which must follow the <include-files-list>.
 | 
						|
Note that by default, modularize assumes .h files
 | 
						|
contain C++ source, so if you are using a different language,
 | 
						|
you might need to use a ``-x`` option to tell Clang that the
 | 
						|
header contains another language, i.e.:  ``-x c``
 | 
						|
 | 
						|
Note also that because modularize does not use the clang driver,
 | 
						|
you will likely need to pass in additional compiler front-end
 | 
						|
arguments to match those passed in by default by the driver.
 | 
						|
 | 
						|
Modularize Command Line Options
 | 
						|
===============================
 | 
						|
 | 
						|
.. option:: -prefix=<header-path>
 | 
						|
 | 
						|
  Prepend the given path to non-absolute file paths in the header list file.
 | 
						|
  By default, headers are assumed to be relative to the header list file
 | 
						|
  directory. Use ``-prefix`` to specify a different directory.
 | 
						|
 | 
						|
.. option:: -module-map-path=<module-map-path>
 | 
						|
 | 
						|
  Generate a module map and output it to the given file. See the description
 | 
						|
  in :ref:`module-map-generation`.
 | 
						|
 | 
						|
.. option:: -problem-files-list=<problem-files-list-file-name>
 | 
						|
 | 
						|
  For use only with module map assistant. Input list of files that
 | 
						|
  have problems with respect to modules. These will still be
 | 
						|
  included in the generated module map, but will be marked as
 | 
						|
  "excluded" headers.
 | 
						|
 | 
						|
.. option:: -root-module=<root-name>
 | 
						|
 | 
						|
  Put modules generated by the -module-map-path option in an enclosing
 | 
						|
  module with the given name. See the description in :ref:`module-map-generation`.
 | 
						|
 | 
						|
.. option:: -block-check-header-list-only
 | 
						|
 | 
						|
  Limit the #include-inside-extern-or-namespace-block
 | 
						|
  check to only those headers explicitly listed in the header list.
 | 
						|
  This is a work-around for avoiding error messages for private includes that
 | 
						|
  purposefully get included inside blocks.
 | 
						|
 | 
						|
.. option:: -no-coverage-check
 | 
						|
 | 
						|
  Don't do the coverage check for a module map.
 | 
						|
 | 
						|
.. option:: -coverage-check-only
 | 
						|
 | 
						|
  Only do the coverage check for a module map.
 | 
						|
 | 
						|
.. option:: -display-file-lists
 | 
						|
 | 
						|
  Display lists of good files (no compile errors), problem files,
 | 
						|
  and a combined list with problem files preceded by a '#'.
 | 
						|
  This can be used to quickly determine which files have problems.
 | 
						|
  The latter combined list might be useful in starting to modularize
 | 
						|
  a set of headers. You can start with a full list of headers,
 | 
						|
  use -display-file-lists option, and then use the combined list as
 | 
						|
  your intermediate list, uncommenting-out headers as you fix them.
 |