summaryrefslogtreecommitdiff
path: root/eclass/llvm.org.eclass
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-06-29 11:38:31 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-06-29 11:38:31 +0100
commit90c88731bd036e5698b281fbc0a5f3aa4c9983ac (patch)
tree83fc5facb6b12be510a37bc3d241cc63e965b13a /eclass/llvm.org.eclass
parentfeb0daf81d888e9160f9f94502de09b66f2a63fd (diff)
gentoo resync : 29.06.2020
Diffstat (limited to 'eclass/llvm.org.eclass')
-rw-r--r--eclass/llvm.org.eclass48
1 files changed, 48 insertions, 0 deletions
diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index b4b80df06d85..36c4f52650fd 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -63,6 +63,8 @@ fi
[[ ${PV} == ${_LLVM_MASTER_MAJOR}.* && ${_LLVM_SOURCE_TYPE} == tar ]] &&
die "${ECLASS}: Release ebuild for master branch?!"
+inherit multiprocessing
+
# == control variables ==
@@ -167,6 +169,11 @@ llvm.org_set_globals() {
fi
fi
+ # === useful defaults for cmake-based packages ===
+
+ # least intrusive of all
+ CMAKE_BUILD_TYPE=RelWithDebInfo
+
_LLVM_ORG_SET_GLOBALS_CALLED=1
}
@@ -174,6 +181,9 @@ llvm.org_set_globals() {
# == phase functions ==
EXPORT_FUNCTIONS src_unpack
+if ver_test -ge 10.0.1_rc; then
+ EXPORT_FUNCTIONS src_prepare
+fi
# @FUNCTION: llvm.org_src_unpack
# @DESCRIPTION:
@@ -217,3 +227,41 @@ llvm.org_src_unpack() {
fi
fi
}
+
+# @FUNCTION: llvm.org_src_prepare
+# @DESCRIPTION:
+# Call appropriate src_prepare (cmake or default) depending on inherited
+# eclasses. Make sure that PATCHES and user patches are applied in top
+# ${WORKDIR}, so that patches straight from llvm-project repository
+# work correctly with -p1.
+llvm.org_src_prepare() {
+ if declare -f cmake_src_prepare >/dev/null; then
+ # cmake eclasses force ${S} for default_src_prepare
+ # but use ${CMAKE_USE_DIR} for everything else
+ CMAKE_USE_DIR=${S} \
+ S=${WORKDIR} \
+ cmake_src_prepare
+ else
+ pushd "${WORKDIR}" >/dev/null || die
+ default_src_prepare
+ popd >/dev/null || die
+ fi
+}
+
+
+# == helper functions ==
+
+# @ECLASS-VARIABLE: LIT_JOBS
+# @USER_VARIABLE
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Number of test jobs to run simultaneously. If unset, defaults
+# to '-j' in MAKEOPTS. If that is not found, default to nproc.
+
+# @FUNCTION: get_lit_flags
+# @DESCRIPTION:
+# Get the standard recommended lit flags for running tests, in CMake
+# list form (;-separated).
+get_lit_flags() {
+ echo "-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
+}