@@ -43,7 +43,7 @@ do_lipo_lib() {
43
43
exit 1
44
44
fi
45
45
done
46
-
46
+
47
47
xcrun lipo -create $LIPO_FLAGS -output $XC_UNI_PROD_DIR /$LIB_NAME /lib/$LIB_FILE
48
48
xcrun lipo -info $XC_UNI_PROD_DIR /$LIB_NAME /lib/$LIB_FILE
49
49
}
@@ -56,13 +56,26 @@ do_lipo_all() {
56
56
for lib in $LIPO_LIBS ; do
57
57
do_lipo_lib " $lib .a" " $archs "
58
58
done
59
-
59
+
60
60
for arch in $archs ; do
61
61
local ARCH_INC_DIR=" $XC_PRODUCT_ROOT /$LIB_NAME -$arch /include"
62
62
local ARCH_OUT_DIR=" $XC_UNI_PROD_DIR /$LIB_NAME /include"
63
+
63
64
if [[ -d " $ARCH_INC_DIR " && ! -d " $ARCH_OUT_DIR " ]]; then
64
65
echo " copy include dir to $ARCH_OUT_DIR "
65
66
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
66
79
break
67
80
fi
68
81
done
@@ -89,7 +102,7 @@ function do_compile() {
89
102
echo " "
90
103
exit 1
91
104
fi
92
-
105
+
93
106
mkdir -p " $XC_BUILD_PREFIX "
94
107
./do-compile/$LIB_NAME .sh
95
108
}
@@ -110,43 +123,43 @@ function do_clean() {
110
123
}
111
124
112
125
function main() {
113
-
126
+
114
127
local cmd=" $XC_CMD "
115
128
local archs=" $XC_TARGET_ARCHS "
116
-
129
+
117
130
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.'
124
137
;;
125
- ' lipo' )
126
- do_lipo_all " $archs "
138
+ ' lipo' )
139
+ do_lipo_all " $archs "
127
140
;;
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 "
137
150
;;
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
145
158
;;
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
150
163
;;
151
164
esac
152
165
}
0 commit comments