commit: 0593f945a6a1aaed13f6e3eb5938ab50d31c7c0a Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Sat Jun 20 18:56:39 2020 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Tue Jun 23 18:30:36 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0593f945
llvm.org.eclass: Introduce llvm-project patch-friendly src_prepare Introduce llvm.org_src_prepare() that calls appropriate src_prepare() implementation (either cmake or default), causing patch application to happen in ${WORKDIR} rather than ${S}. This makes it possible to use patches made against llvm-project git repository out of the box. Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> eclass/llvm.org.eclass | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass index b4b80df06d8..9fc975cd51c 100644 --- a/eclass/llvm.org.eclass +++ b/eclass/llvm.org.eclass @@ -174,6 +174,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 +220,23 @@ 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 +}