diff options
author | Dan Liew <dan@su-root.co.uk> | 2019-02-05 08:47:28 +0000 |
---|---|---|
committer | Dan Liew <dan@su-root.co.uk> | 2019-02-05 08:47:28 +0000 |
commit | de5220ed5e5ab1f7064e9bae57d7b4b8887277fa (patch) | |
tree | 00e810f6de537e5b611ad679ca57f9195812699a /lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc | |
parent | 02a2bb2f54659e7830946bd20ee121ce7d80ff65 (diff) | |
download | bcm5719-llvm-de5220ed5e5ab1f7064e9bae57d7b4b8887277fa.tar.gz bcm5719-llvm-de5220ed5e5ab1f7064e9bae57d7b4b8887277fa.zip |
Previously if the user configured their build but then changed
LLVM_ENABLED_PROJECT and reconfigured it had no effect on what
projects were actually built. This was very confusing behaviour. The
reason for this is that the value of the `LLVM_TOOL_<PROJECT>_BUILD`
variables are already set.
The problem here is that we have two sources of truth:
* The projects listed in LLVM_ENABLE_PROJECTS.
* The projects enabled/disabled with LLVM_TOOL_<PROJECT>_BUILD.
At configure time we have no real way of knowing which source of truth
the user wants so we apply the following heuristic:
If the user ever sets `LLVM_ENABLE_PROJECTS` in the CMakeCache then that
is used as the single source of truth and we force the
`LLVM_TOOL_<PROJECT>_BUILD` CMake cache variables to have the
appropriate values that match the contents of the
`LLVM_ENABLE_PROJECTS`. If the user never sets `LLVM_ENABLE_PROJECTS`
then they can continue to use and set the `LLVM_TOOL_<PROJECT>_BUILD`
variables as the "source of truth".
The problem with this approach is that if the user ever tries to use
both `LLVM_ENABLE_PROJECTS` and `LLVM_TOOL_<PROJECT>_BUILD` for the same
build directory then any user set value for `LLVM_TOOL_<PROJECT>_BUILD`
variables will get overwriten, likely without the user noticing.
Hopefully the above shouldn't matter in practice because the
LLVM_TOOL_<PROJECT>_BUILD variables are not documented, but
LLVM_ENABLE_PROJECTS is.
We should probably deprecate the `LLVM_TOOL_<PROJECT>_BUILD`
variables at some point by turning them into to regular CMake
variables that don't live in the CMake cache.
Differential Revision: https://reviews.llvm.org/D57535
llvm-svn: 353148
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc')
0 files changed, 0 insertions, 0 deletions