@@ -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
112125function 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