Hello, everyone.

Here's a bunch of scons-utils.eclass patches for review. This includes
EAPI 6 support with some API changes, MAKEOPTS parsing cleanup
and improved documentation.

Fighting dev-db/mongodb lately, I've decided to explain a few common
issues with SCons in the eclass. This will hopefully help developers
noticing common QA issues like complete disrespect of CC, CXX or PATH,
turning distcc setup into a dumb OOM-killer.

EAPI 6 simplifies the eclass API and makes it more explicit.

The confusing myesconsargs variable is no longer used in EAPI 6 and all
custom arguments need to passed explicitly to each escons call. This
makes it more consistent with emake. And like emake, escons starts truly
respecting nonfatal in EAPI 6.

The use_scons function is completely banned in EAPI 6. Already since
EAPI 5, usex was a cleaner alternative. As a result, USE_SCONS_TRUE
and USE_SCONS_FALSE variables are no longer used (not that anybody used
them anyway).

Finally, the MAKEOPTS parsing and transforming has been improved a bit.
It has been redesigned so that the caching mechanism could actually
work. --jobs lacking argument are now replaced by no-of-cpus+1
(obtained using nproc or python) rather than random, fixed number.

Please review.


Michał Górny (15):
  scons-utils.eclass: Modernize the example not to rely on myescons...
  scons-utils.eclass: Modernize the example to use usex
  scons-utils.eclass: Describe common issues with scons
  scons-utils.eclass: escons doc, 'die' does not respect nonfatal
  scons-utils.eclass: escons, invert EAPI check to cover future EAPIs
  scons-utils.eclass: escons, respect nonfatal in EAPI 6
  scons-utils.eclass: Deprecate myesconsargs, and kill it in EAPI 6
  scons-utils.eclass: Deprecate use_scons, ban it in EAPI 6
  scons-utils.eclass: tests, be more verbose on tests being performed
  scons-utils.eclass: scons_clean_makeopts, mark internal
  scons-utils.eclass: _scons_clean_makeopts, fix result caching
  scons-utils.eclass: _scons_clean_makeopts, stop exporting cache vars
  scons-utils.eclass: _scons_clean_makeopts, clean up and simplify
  scons-utils.eclass: Use nproc when --jobs is used without an argument
  scons-utils.eclass: Enable EAPI 6

 eclass/scons-utils.eclass   | 138 +++++++++++++++++++++++++++++++++-----------
 eclass/tests/scons-utils.sh |  21 ++++---
 2 files changed, 114 insertions(+), 45 deletions(-)

-- 
2.6.4


Reply via email to