@@ -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
0 commit comments