#
4dc71835 |
| 12-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Set umbrella directory correctly when we infer a framework module
llvm-svn: 146451
|
#
7033127b |
| 09-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement the notion of umbrella directories, which implicity cover all of the headers below that particular directory. Use umbrella directories as a clean way to deal with (1) directories/frameworks
Implement the notion of umbrella directories, which implicity cover all of the headers below that particular directory. Use umbrella directories as a clean way to deal with (1) directories/frameworks that don't have an umbrella header, but don't want to enumerate all of their headers, and (2) PrivateHeaders, which we never want to enumerate and want to keep separate from the main umbrella header.
This also eliminates a little more of the "magic" for private headers, and frameworks in general.
llvm-svn: 146235
show more ...
|
#
524e33e1 |
| 08-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement umbrella directories for modules, which are similar to umbrella headers in the sense that all of the headers within that directory (and eventually its subdirectories) are considered to be p
Implement umbrella directories for modules, which are similar to umbrella headers in the sense that all of the headers within that directory (and eventually its subdirectories) are considered to be part of the module with that umbrella directory. However, unlike umbrella headers, which are expected to include all of the headers within their subdirectories, Clang will automatically include all of the headers it finds in the named subdirectory.
The intent here is to allow a module map to trivially turn a subdirectory into a module, where the module's structure can mimic the directory structure.
llvm-svn: 146165
show more ...
|
#
322f633c |
| 08-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Tweak the syntax of umbrella headers, so that "umbrella" is treated as a modifier for a header declarartion, e.g.,
umbrella header "headername"
Collapse the umbrella-handling code in the parser i
Tweak the syntax of umbrella headers, so that "umbrella" is treated as a modifier for a header declarartion, e.g.,
umbrella header "headername"
Collapse the umbrella-handling code in the parser into the header-handling code, so we don't duplicate the header-search logic.
llvm-svn: 146159
show more ...
|
#
73141fa9 |
| 08-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Within the module representation, generalize the notion of an umbrella header to also support umbrella directories. The umbrella directory for an umbrella header is the directory in which the umbrell
Within the module representation, generalize the notion of an umbrella header to also support umbrella directories. The umbrella directory for an umbrella header is the directory in which the umbrella header resides.
No functionality change yet, but it's coming.
llvm-svn: 146158
show more ...
|
#
ddaa69cb |
| 08-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Convert paths to native format before constructing a directory_iterator for them.
llvm-svn: 146154
|
#
9458f82d |
| 07-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement inference for the "Private" submodule corresponding to private headers in a framework.
llvm-svn: 146082
|
#
e7ab3669 |
| 07-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement basic support for private headers in frameworks. In essence, when we load a module map (module.map) from a directory, also load a private module map (module_private.map) for that directory,
Implement basic support for private headers in frameworks. In essence, when we load a module map (module.map) from a directory, also load a private module map (module_private.map) for that directory, if present. That private module map can inject a new submodule that captures private headers.
llvm-svn: 146012
show more ...
|
#
d6343c99 |
| 06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove misleading error message
llvm-svn: 145958
|
#
e89dbc1d |
| 06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When inferring a module map for a framework, infer subframework modules for each of its subframeworks.
llvm-svn: 145957
|
#
dd005f69 |
| 06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Allow inferred submodules for any (sub)module that has an umbrella header
llvm-svn: 145945
|
#
f2161a70 |
| 06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement modules support for subframeworks (aka embedded frameworks). A submodule can now be labeled as a "framework", and header search will look into the appropriate Headers/PrivateHeaders subdire
Implement modules support for subframeworks (aka embedded frameworks). A submodule can now be labeled as a "framework", and header search will look into the appropriate Headers/PrivateHeaders subdirectories for named headers.
llvm-svn: 145941
show more ...
|
#
930a85cc |
| 06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Minor tweak to prepare for submodules with umbrella headers. No actual functionality change yet.
llvm-svn: 145938
|
#
a89c5ac4 |
| 06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement inferred submodules support, which (when requested) implicitly generates submodules corresponding to the headers that fall within a module.
llvm-svn: 145887
|
#
73441091 |
| 05-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Parse inferred submodules in module maps, track their contents in Module, and (de-)serialize this information. Semantics of inferred submodules to follow.
llvm-svn: 145864
|
#
d8bd7537 |
| 05-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Inferred framework modules automatically export anything they import (i.e., 'export *'), to better match the semantics of headers.
llvm-svn: 145813
|
#
f5eedd05 |
| 05-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement support for wildcard exports in modules, allowing a module to re-export anything that it imports. This opt-in feature makes a module behave more like a header, because it can be used to re-
Implement support for wildcard exports in modules, allowing a module to re-export anything that it imports. This opt-in feature makes a module behave more like a header, because it can be used to re-export the transitive closure of a (sub)module's dependencies.
llvm-svn: 145811
show more ...
|
#
0093b3c7 |
| 05-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When writing a module file, keep track of the set of (sub)modules that it imports, establishing dependencies at the (sub)module granularity. This is not a user-visible change (yet).
llvm-svn: 145808
|
#
2b82c2a5 |
| 02-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implementing parsing and resolution of module export declarations within module maps, which will (eventually) be used to re-export a module from another module. There are still some pieces missing, h
Implementing parsing and resolution of module export declarations within module maps, which will (eventually) be used to re-export a module from another module. There are still some pieces missing, however.
llvm-svn: 145665
show more ...
|
#
ef42154c |
| 30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Unbreak build with GCC. Clang is too lame to diagnose this particular ill-formedness
llvm-svn: 145539
|
#
de3ef502 |
| 30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Promote ModuleMap::Module to a namespace-scope class in the Basic library, since modules cut across all of the libraries. Rename serialization::Module to serialization::ModuleFile to side-step the an
Promote ModuleMap::Module to a namespace-scope class in the Basic library, since modules cut across all of the libraries. Rename serialization::Module to serialization::ModuleFile to side-step the annoying naming conflict. Prune a bunch of ModuleMap.h includes that are no longer needed (most files only needed the Module type).
llvm-svn: 145538
show more ...
|
#
69021974 |
| 30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement (de-)serialization of the description of a module and its submodules. This information will eventually be used for name hiding when dealing with submodules. For now, we only use it to ensur
Implement (de-)serialization of the description of a module and its submodules. This information will eventually be used for name hiding when dealing with submodules. For now, we only use it to ensure that the module "key" returned when loading a module will always be a module (rather than occasionally being a FileEntry).
llvm-svn: 145497
show more ...
|
#
382eaada |
| 30-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use raw_ostream::indent.
llvm-svn: 145492
|
#
4f3fa713 |
| 30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch the module map printer over to raw_ostream::write_escaped. Thanks, Benjamin!
llvm-svn: 145491
|
#
fe96ee03 |
| 29-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Escape strings when printing module maps, for silly operating systems that use \ as a separator.
llvm-svn: 145439
|