Skip to content

Commit 39530fe

Browse files
committed
fix pc file lib path bug
1 parent 7565ec6 commit 39530fe

4 files changed

Lines changed: 26 additions & 11 deletions

File tree

do-compile/apple/any.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ do_lipo_all() {
9393
#-L/Users/runner/work/MRFFToolChainBuildShell/MRFFToolChainBuildShell/build/product/macos/opus-arch/lib
9494
#->
9595
#-L/Users/runner/work/MRFFToolChainBuildShell/MRFFToolChainBuildShell/build/product/macos/universal/opus/lib
96-
# my_sed_i "s|${LIB_NAME}-${arch}|universal/${LIB_NAME}|g" "$pc_dst_dir/"*.pc
96+
#my_sed_i "s|${LIB_NAME}-${arch}|universal/${LIB_NAME}|g" "$pc_dst_dir/"*.pc
9797

9898
#fix prefix path
9999
p="$uni_dir/$LIB_NAME"
@@ -186,7 +186,6 @@ function do_compile() {
186186

187187
mkdir -p "$MR_BUILD_PREFIX"
188188
./$LIB_NAME.sh
189-
do_fix_pc
190189
}
191190

192191
function resolve_dep() {

do-install/correct-pc.sh

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,37 @@ function correct_pc_file(){
2626

2727
echo "fix pc files in folder: $fix_path"
2828
cd "$fix_path"
29-
3029
for pc in `find . -type f -name "*.pc"` ;
3130
do
3231
local pkgconfig=$(cd $(dirname "$pc"); pwd)
3332
local lib_dir=$(cd $(dirname "$pkgconfig"); pwd)
3433
local base_dir=$(cd $(dirname "$lib_dir"); pwd)
3534
local include_dir="${base_dir}/include"
3635
local bin_dir="${base_dir}/bin"
36+
37+
# 全局替换 prefix= 开头后面的内容
38+
old_base=$(sed -n 's/^prefix=//p' "$pc")
39+
my_sed_i "s|$old_base|$base_dir|g" "$pc"
40+
41+
# 具有局限性,比如 includedir=/Users/matt/GitWorkspace/fsplayer/FFToolChain/build/product/ios/universal-simulator/bluray
42+
# my_sed_i "s|^prefix=.*|prefix=$base_dir|" "$pc"
43+
# my_sed_i "s|^exec_prefix=[^$].*|exec_prefix=$bin_dir|" $pc
44+
# my_sed_i "s|^libdir=[^$].*|libdir=$lib_dir|" "$pc"
45+
# my_sed_i "s|^includedir=[^$].*include|includedir=$include_dir|" "$pc"
46+
47+
# fix absolute path which contains arch suffix bug,such as /path/to/opus-arch/lib
48+
#-L/Users/runner/work/MRFFToolChainBuildShell/MRFFToolChainBuildShell/build/product/macos/opus-arch/lib
49+
#->
50+
#-L/Users/runner/work/MRFFToolChainBuildShell/MRFFToolChainBuildShell/build/product/macos/universal/opus/lib
51+
# my_sed_i "s|${LIB_NAME}-arm64[^/]*/|universal/${LIB_NAME}/|g" "$pc"
52+
# 匹配逻辑:
53+
# 1. 匹配 [^/]* -> 路径中最后一个斜杠后的字符(即 LIB_NAME)
54+
# 2. 匹配 -(arm64|x86) -> 紧跟其后的架构标识
55+
# 3. 匹配 [^/]* -> 架构后的剩余后缀(如 _simulator)
56+
# 4. 替换为 universal/\1 -> \1 就是第一对括号捕获到的 LIB_NAME
3757

38-
my_sed_i "s|^prefix=.*|prefix=$base_dir|" "$pc"
39-
my_sed_i "s|^exec_prefix=[^$].*|exec_prefix=$bin_dir|" $pc
40-
my_sed_i "s|^libdir=[^$].*|libdir=$lib_dir|" "$pc"
41-
my_sed_i "s|^includedir=[^$].*include|includedir=$include_dir|" "$pc"
58+
my_sed_i "s|\([^/]*\)-arm64[^/]*|universal/\1|g" "$pc"
59+
my_sed_i "s|\([^/]*\)-x86[^/]*|universal/\1|g" "$pc"
4260

4361
# Fix absolute paths to other internal dependencies
4462
# Pattern: -L/any/path/PRODUCT_NAME/PLATFORM/universal/LIB_NAME/lib

do-install/install-pre-lib.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ function install_plat() {
3838
export MR_UNCOMPRESS_DIR="$MR_WORKSPACE/product/$MR_PLAT/universal${join}"
3939

4040
./download-uncompress.sh
41+
#由于解压后可能包含依赖库,所以保险起见修正全部的pc文件
42+
./correct-pc.sh "${MR_UNCOMPRESS_DIR}"
4143
}
4244

4345
if [[ "$MR_PLAT" == 'ios' || "$MR_PLAT" == 'tvos' ]];then

do-install/main.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,6 @@ function install_libs()
6464
fi
6565
echo "===================================="
6666
done
67-
68-
if [[ ! "$FORCE_XCFRAMEWORK" ]];then
69-
./correct-pc.sh "$MR_WORKSPACE/product/$MR_PLAT"
70-
fi
7167
}
7268

7369
if [[ -n $MR_PC_FILE_DIR ]];then

0 commit comments

Comments
 (0)