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 |