> On March 29, 2017, 6:54 p.m., Joseph Wu wrote:
> > cmake/CompilationConfigure.cmake
> > Lines 32 (patched)
> > <https://reviews.apache.org/r/58014/diff/1/?file=1678211#file1678211line32>
> >
> > You need to surround `WIN32` with `${}`. Otherwise, this will default
> > to `OFF` on Windows.
> >
> > You probably didn't catch this because CMake caches options. If you
> > call `cmake .. -DENABLE_PRECOMPILED_HEADERS=1` in the past, then all future
> > builds will use PCHs. The default values for options only take effect if
> > you delete the `CMakeCache.txt` file.
I remember saying we need to be sure to test this ;). Looking around the file
it's not clear to me if `${}` is required only in strings i.e. `"${VAR}"` or
everywhere (since there are certainly naked variables in use without the
braces).
Edit: I double checked [syntax
rules](https://cmake.org/Wiki/CMake/Language_Syntax). `${x}` is required for
substitution; otherwise definition is tested (is it set or unset, but not what
it is). Annoying, but now I know.
> On March 29, 2017, 6:54 p.m., Joseph Wu wrote:
> > cmake/CompilationConfigure.cmake
> > Lines 34-36 (patched)
> > <https://reviews.apache.org/r/58014/diff/1/?file=1678211#file1678211line34>
> >
> > I think we can remove this check, as it would block people that want to
> > fix the compilation issues on non-Windows + PCHs.
> >
> > For now, a WARNING should be sufficient.
Sure, but a dev fixing compilation issues would also need to disable the
warning when it's supported. What I'm saying is, they'll see it either way and
have to change it too. A `FATAL_ERROR` seems safer to keep people from
complaining.
> On March 29, 2017, 6:54 p.m., Joseph Wu wrote:
> > cmake/CompilationConfigure.cmake
> > Lines 39-40 (patched)
> > <https://reviews.apache.org/r/58014/diff/1/?file=1678211#file1678211line39>
> >
> > I'll add a comment explaining unity builds:
> > ```
> > # By default Cotire generates both precompiled headers and a "unity"
> > build.
> > # A unity build is where all the source files in a target are
> > combined into
> > # a single source file to reduce the number of files that need to be
> > opened
> > # and read. We disable "unity" builds for now.
> > ```
I'd also add why we don't use Unity builds (they're a terrible idea that should
never be used haha).
- Andrew
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/58014/#review170445
-----------------------------------------------------------
On March 29, 2017, 12:56 a.m., Jeff Coffler wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/58014/
> -----------------------------------------------------------
>
> (Updated March 29, 2017, 12:56 a.m.)
>
>
> Review request for mesos, Andrew Schwartzmeyer, John Kordich, Joseph Wu, and
> Li Li.
>
>
> Bugs: MESOS-7226
> https://issues.apache.org/jira/browse/MESOS-7226
>
>
> Repository: mesos
>
>
> Description
> -------
>
> This sets several cotire variables in the 'src' directory to enable
> pre-compiled headers for the 'mesos-agent' target. The excluded
> headers were removed due to namespace issues or breaking incremental
> builds.
>
> All cotire variables are conditionally set if option
> ENABLE_PRECOMPILED_HEADERS is set. In this commit, this is ON for
> WIN32 builds, off for all others.
>
>
> Diffs
> -----
>
> cmake/CompilationConfigure.cmake 5936be07557395ad08b06aa376b5a29f9b11c143
> src/CMakeLists.txt b67b512cafd90558abf712a872310ab913fa38ae
>
>
> Diff: https://reviews.apache.org/r/58014/diff/1/
>
>
> Testing
> -------
>
> Testing done at end of chain
>
>
> Thanks,
>
> Jeff Coffler
>
>