EricWF added a comment.

In http://reviews.llvm.org/D11963#236376, @jroelofs wrote:

> In http://reviews.llvm.org/D11963#236045, @EricWF wrote:
>
> > So that's not what happens but that's because libc++ builds using the 
> > headers in the source directory. During the build all of the macros in the 
> > __config_site file are manually defined on the command line so that we 
> > don't need to use the generated headers. NOTE: The tests still use the 
> > generated headers though.
>
>
> Oh, I didn't catch that you were setting this up to build from the headers in 
> the source directory.


Yeah, I worry this patch is very unclear. To sum the steps CMake takes:

Configuration time:

1. Configure CMake and detect if the configuration requires any "__config_site" 
defines.
2. Add each "__config_site" definition to the command line manually. These are 
used during the build.
3. Generate a `build/__config_site` file containing each required definition.
4. If any "__config_site" definitions are required setup the tests to use 
`build/include/c++/v1`. Otherwise the tests will use `src/include` as they 
currently do.

Build time:

1. Copy `src/include` to `build/include/c++/v1`.
2. If any "__config_site" defines are needed prepend `build/__config_site` to 
`build/include/c++/v1/__config`.
3. Build libc++ using the headers in `src/include` and the "__config_site" 
definitions added in Configuration step #2. Note that the actual build ignores 
the generated headers.

Install Time:

1. Do build steps including regenerating build headers.
2. Install headers in `build/include/c++/v1`.


http://reviews.llvm.org/D11963



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to