Skip to content

Commit bb1f275

Browse files
committed
when lipo lib copy pc file
1 parent 4c0d6c2 commit bb1f275

File tree

1 file changed

+46
-33
lines changed

1 file changed

+46
-33
lines changed

apple/do-compile/any.sh

+46-33
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ do_lipo_lib() {
4343
exit 1
4444
fi
4545
done
46-
46+
4747
xcrun lipo -create $LIPO_FLAGS -output $XC_UNI_PROD_DIR/$LIB_NAME/lib/$LIB_FILE
4848
xcrun lipo -info $XC_UNI_PROD_DIR/$LIB_NAME/lib/$LIB_FILE
4949
}
@@ -56,13 +56,26 @@ do_lipo_all() {
5656
for lib in $LIPO_LIBS; do
5757
do_lipo_lib "$lib.a" "$archs"
5858
done
59-
59+
6060
for arch in $archs; do
6161
local ARCH_INC_DIR="$XC_PRODUCT_ROOT/$LIB_NAME-$arch/include"
6262
local ARCH_OUT_DIR="$XC_UNI_PROD_DIR/$LIB_NAME/include"
63+
6364
if [[ -d "$ARCH_INC_DIR" && ! -d "$ARCH_OUT_DIR" ]]; then
6465
echo "copy include dir to $ARCH_OUT_DIR"
6566
cp -R "$ARCH_INC_DIR" "$ARCH_OUT_DIR"
67+
68+
local ARCH_PC_DIR="$XC_PRODUCT_ROOT/$LIB_NAME-$arch/lib/pkgconfig"
69+
if ls ${ARCH_PC_DIR}/*.pc >/dev/null 2>&1;then
70+
local UNI_PC_DIR="$XC_UNI_PROD_DIR/$LIB_NAME/lib/pkgconfig/"
71+
mkdir -p "$UNI_PC_DIR"
72+
echo "copy pkgconfig file to $UNI_PC_DIR"
73+
cp ${ARCH_PC_DIR}/*.pc "$UNI_PC_DIR"
74+
#fix prefix path
75+
p="$XC_UNI_PROD_DIR/$LIB_NAME"
76+
escaped_p=$(echo $p | sed 's/\//\\\//g')
77+
sed -i "" "s/^prefix=.*/prefix=$escaped_p/" "$UNI_PC_DIR/"*.pc
78+
fi
6679
break
6780
fi
6881
done
@@ -89,7 +102,7 @@ function do_compile() {
89102
echo ""
90103
exit 1
91104
fi
92-
105+
93106
mkdir -p "$XC_BUILD_PREFIX"
94107
./do-compile/$LIB_NAME.sh
95108
}
@@ -110,43 +123,43 @@ function do_clean() {
110123
}
111124

112125
function main() {
113-
126+
114127
local cmd="$XC_CMD"
115128
local archs="$XC_TARGET_ARCHS"
116-
129+
117130
case "$cmd" in
118-
'clean')
119-
for arch in $archs; do
120-
do_clean $arch
121-
done
122-
rm -rf $XC_UNI_PROD_DIR/$LIB_NAME
123-
echo 'done.'
131+
'clean')
132+
for arch in $archs; do
133+
do_clean $arch
134+
done
135+
rm -rf $XC_UNI_PROD_DIR/$LIB_NAME
136+
echo 'done.'
124137
;;
125-
'lipo')
126-
do_lipo_all "$archs"
138+
'lipo')
139+
do_lipo_all "$archs"
127140
;;
128-
'build')
129-
resolve_dep
130-
for arch in $archs; do
131-
init_env $arch
132-
do_compile $arch
133-
echo
134-
done
135-
136-
do_lipo_all "$archs"
141+
'build')
142+
resolve_dep
143+
for arch in $archs; do
144+
init_env $arch
145+
do_compile $arch
146+
echo
147+
done
148+
149+
do_lipo_all "$archs"
137150
;;
138-
'rebuild')
139-
echo '---clean for rebuild-----------------'
140-
XC_CMD='clean'
141-
main 1>/dev/null
142-
echo '---build for rebuild-----------------'
143-
XC_CMD='build'
144-
main
151+
'rebuild')
152+
echo '---clean for rebuild-----------------'
153+
XC_CMD='clean'
154+
main 1>/dev/null
155+
echo '---build for rebuild-----------------'
156+
XC_CMD='build'
157+
main
145158
;;
146-
*)
147-
echo "Usage:"
148-
echo " $0 [build|lipo|clean] [x86_64|arm64]"
149-
exit 1
159+
*)
160+
echo "Usage:"
161+
echo " $0 [build|lipo|clean] [x86_64|arm64]"
162+
exit 1
150163
;;
151164
esac
152165
}

0 commit comments

Comments
 (0)