spack/var
Chris Green ae3eac0b19 root: Rationalize and improve version, variant and ROOT option handling. (#14203)
* root: Rationalize and improve version, variant and ROOT option handling.

* Completely re-vamp CMake option handling for readability and maintainability:
  * Three categories of option: control, builtin and feature, alphabetically sorted.
  * Each option is described as a list: an option name followed by an optional value which is either Boolean or a string representing the name of a variant. If the value is omitted, it defaults to the option name.
  * New functions `_process_opts()` and `_process_opt()` (nested) to turn all supplied option/value specifications into CMake arguments.
  * Remove overly-terse per-option comments in favor of (much) more comprehensive notes in README.md.
* Variants and conflicts:
  * Remove `test` variant in favor of pegging ROOT `testing` option to the value of `self.run_tests` since the install is unaffected, per ROOT developer.
  * Remove commented-out and never-functional variants: `asimage`, `avahi`, `kerberos`, `ldap`, `libcxx`, `odbc`, `oracle`, `pythia8`, `xinetd`.
  * New variant `vmc` (default `OFF`) to control the Virtual Monte Carlo interface.
  * Conflict: `+opengl` is incompatible with `~x`.
  * Conflict: `http` is now an unconditional conflict due to dependency issues (see README.md).
* Remove commented-out and non-existent dependencies `avahi`, `kerberos`, `ldap`, `libcxx`, `odbc`, `oracle`, `pythia`, `veccore` (per #13949).
* New and changed options:
  * Option `pch` was inadvertently set to `OFF` due to its dependence on a nonexistent variant `pch`. As it happens its value is ignored in the ROOT configuration handling, so there was no deleterious effect. It has been fixed to `ON` to better reflect actual behavior pending enablement of tuntime C++ modules.
* Add new versions 6.18.0{0,2,4}:
  * Require CMake 3.9 for 6.18.00+.
  * Add conflicts for variants `qt4` and `table` representing ROOT build options for which support was discontinued. Remove redundant conflict on \@master.
  * C++ standard is now specified with `-DCMAKE_CXX_STANDARD=X` rather than `-Dcxx=X`.
* Remove old version 5.34.38 (wrong build system).

See README.md for more details of option-related changes.

* Flake8

* `rpath` option is a control option rather than a feature.
2019-12-18 11:14:47 -06:00
..
spack root: Rationalize and improve version, variant and ROOT option handling. (#14203) 2019-12-18 11:14:47 -06:00