Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Cc: "Michał Górny" <mgorny@g.o>
Subject: [gentoo-dev] [PATCH 01/18] llvm.org.eclass: Introduce llvm-project patch-friendly src_prepare
Date: Sat, 20 Jun 2020 21:17:20
Message-Id: 20200620211624.427466-2-mgorny@gentoo.org
In Reply to: [gentoo-dev] [PATCH 00/18] llvm.org.eclass: more deduplication with packages by "Michał Górny"
1 Introduce llvm.org_src_prepare() that calls appropriate src_prepare()
2 implementation (either cmake or default), causing patch application
3 to happen in ${WORKDIR} rather than ${S}. This makes it possible
4 to use patches made against llvm-project git repository out of the box.
5
6 Signed-off-by: Michał Górny <mgorny@g.o>
7 ---
8 eclass/llvm.org.eclass | 23 +++++++++++++++++++++++
9 1 file changed, 23 insertions(+)
10
11 diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
12 index b4b80df06d85..9fc975cd51cb 100644
13 --- a/eclass/llvm.org.eclass
14 +++ b/eclass/llvm.org.eclass
15 @@ -174,6 +174,9 @@ llvm.org_set_globals() {
16 # == phase functions ==
17
18 EXPORT_FUNCTIONS src_unpack
19 +if ver_test -ge 10.0.1_rc; then
20 + EXPORT_FUNCTIONS src_prepare
21 +fi
22
23 # @FUNCTION: llvm.org_src_unpack
24 # @DESCRIPTION:
25 @@ -217,3 +220,23 @@ llvm.org_src_unpack() {
26 fi
27 fi
28 }
29 +
30 +# @FUNCTION: llvm.org_src_prepare
31 +# @DESCRIPTION:
32 +# Call appropriate src_prepare (cmake or default) depending on inherited
33 +# eclasses. Make sure that PATCHES and user patches are applied in top
34 +# ${WORKDIR}, so that patches straight from llvm-project repository
35 +# work correctly with -p1.
36 +llvm.org_src_prepare() {
37 + if declare -f cmake_src_prepare >/dev/null; then
38 + # cmake eclasses force ${S} for default_src_prepare
39 + # but use ${CMAKE_USE_DIR} for everything else
40 + CMAKE_USE_DIR=${S} \
41 + S=${WORKDIR} \
42 + cmake_src_prepare
43 + else
44 + pushd "${WORKDIR}" >/dev/null || die
45 + default_src_prepare
46 + popd >/dev/null || die
47 + fi
48 +}
49 --
50 2.27.0