summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorDavid Seifert <soap@gentoo.org>2018-07-14 17:03:00 -0700
committerAndreas Sturmlechner <asturm@gentoo.org>2018-12-10 22:54:03 +0100
commit40d24edc8aa68a8a1ce5978330513a1c07c91ab1 (patch)
treefd20034002122bf3b78cd47e38ce3cc0d6c9c8c3 /eclass
parentcmake-utils.eclass: Use BDEPEND (diff)
downloadgentoo-40d24edc8aa68a8a1ce5978330513a1c07c91ab1.tar.gz
gentoo-40d24edc8aa68a8a1ce5978330513a1c07c91ab1.tar.bz2
gentoo-40d24edc8aa68a8a1ce5978330513a1c07c91ab1.zip
cmake-utils.eclass: Make ninja default backend in EAPI >= 7
* Using the ninja backend as a default is the only way to massively improve src_compile core utilization, given that it seems unlikely that CMake will ever produce non-recursive Makefiles. See also: http://www.kaizou.org/2016/09/build-benchmark-large-c-project/ Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r--eclass/cmake-utils.eclass12
1 files changed, 10 insertions, 2 deletions
diff --git a/eclass/cmake-utils.eclass b/eclass/cmake-utils.eclass
index 73e7f0b73ae6..30ee97b99a36 100644
--- a/eclass/cmake-utils.eclass
+++ b/eclass/cmake-utils.eclass
@@ -50,10 +50,12 @@ _CMAKE_UTILS_ECLASS=1
# Set to enable in-source build.
# @ECLASS-VARIABLE: CMAKE_MAKEFILE_GENERATOR
+# @DEFAULT_UNSET
# @DESCRIPTION:
# Specify a makefile generator to be used by cmake.
# At this point only "emake" and "ninja" are supported.
-: ${CMAKE_MAKEFILE_GENERATOR:=emake}
+# In EAPI 7 and above, the default is set to "ninja",
+# whereas in EAPIs below 7, it is set to "emake".
# @ECLASS-VARIABLE: CMAKE_MIN_VERSION
# @DESCRIPTION:
@@ -112,7 +114,13 @@ esac
inherit toolchain-funcs ninja-utils flag-o-matic multiprocessing xdg-utils
case ${EAPI} in
- 5|6) inherit eutils multilib ;;
+ [56])
+ : ${CMAKE_MAKEFILE_GENERATOR:=emake}
+ inherit eutils multilib
+ ;;
+ *)
+ : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+ ;;
esac
EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install