@@ -13,6 +13,14 @@ if [ ! -v IOS_AARCH64_PATH ]; then # AARCH64用のモジュールのディレク
13
13
echo " IOS_AARCH64_PATHが未定義です"
14
14
exit 1
15
15
fi
16
+ if [ ! -v MACOS_ARM64_PATH ]; then # MACOS_ARM64用のモジュールのディレクトリ
17
+ echo " MACOS_ARM64_PATHが未定義です"
18
+ exit 1
19
+ fi
20
+ if [ ! -v MACOS_X64_PATH ]; then # MACOS_X64用のモジュールのディレクトリ
21
+ echo " MACOS_X64_PATHが未定義です"
22
+ exit 1
23
+ fi
16
24
if [ ! -v OUTPUT_ASSET_PATH ]; then # 出力するASSETのディレクトリ
17
25
echo " OUTPUT_ASSET_PATHが未定義です"
18
26
exit 1
37
45
echo " Original onnx dylib file name: $dylib_string "
38
46
39
47
echo " * Copy Framework template"
40
- arches=(" aarch64" " sim" )
41
- artifacts=(" ${IOS_AARCH64_PATH} " " ${IOS_AARCH64_SIM_PATH} " )
42
- for i in " ${! arches[@]} " ; do
43
- arch=" ${arches[$i]} "
48
+ platforms=(" ios" " sim" " macos" )
49
+ artifacts=(" ${IOS_AARCH64_PATH} " " ${IOS_AARCH64_SIM_PATH} " " ${MACOS_ARM64_PATH} " )
50
+
51
+ declare -a link_onnxruntime_platform=()
52
+ # ONNXRUNTIMEのリンクが必要なプラットフォームを確認
53
+ for i in " ${! platforms[@]} " ; do
54
+ platform=" ${platforms[$i]} "
44
55
artifact=" ${artifacts[$i]} "
45
- echo " * Copy Framework-${arch} template"
46
- mkdir -p " Framework-${arch} /voicevox_core.framework/Headers"
47
- cp -vr " crates/voicevox_core_c_api/xcframework/Frameworks/${arch} /" " Framework-${arch} /"
56
+ if grep -q -e ' ^#define VOICEVOX_LINK_ONNXRUNTIME$' -e ' ^//#define VOICEVOX_LOAD_ONNXRUNTIME$' " ${artifact} /include/voicevox_core.h" ; then
57
+ link_onnxruntime_platform+=(" ${platform} " )
58
+ fi
59
+ done
60
+
61
+ for i in " ${! platforms[@]} " ; do
62
+ platform=" ${platforms[$i]} "
63
+ artifact=" ${artifacts[$i]} "
64
+ echo " * Copy Framework-${platform} template"
65
+ mkdir -p " Framework-${platform} /voicevox_core.framework/Headers"
66
+ cp -vr " crates/voicevox_core_c_api/xcframework/Frameworks/${platform} /" " Framework-${platform} /"
48
67
cp -v " ${artifact} /include/voicevox_core.h" \
49
- " Framework-${arch } /voicevox_core.framework/Headers/voicevox_core.h"
68
+ " Framework-${platform } /voicevox_core.framework/Headers/voicevox_core.h"
50
69
done
51
70
52
71
echo " * Create dylib"
53
- # aarch64はdylibをコピー
72
+ # iosはdylibをコピー
54
73
cp -v " ${IOS_AARCH64_PATH} /lib/libvoicevox_core.dylib" \
55
- " Framework-aarch64 /voicevox_core.framework/voicevox_core"
74
+ " Framework-ios /voicevox_core.framework/voicevox_core"
56
75
57
76
# simはx86_64とarrch64を合わせてdylib作成
58
77
lipo -create " ${IOS_X86_64_PATH} /lib/libvoicevox_core.dylib" \
59
78
" ${IOS_AARCH64_SIM_PATH} /lib/libvoicevox_core.dylib" \
60
79
-output " Framework-sim/voicevox_core.framework/voicevox_core"
61
80
62
- for arch in " ${arches[@]} " ; do
63
- echo " * Change ${arch} @rpath"
81
+ # macosはx64とarrch64を合わせてdylib作成
82
+ lipo -create " ${MACOS_X64_PATH} /lib/libvoicevox_core.dylib" \
83
+ " ${MACOS_ARM64_PATH} /lib/libvoicevox_core.dylib" \
84
+ -output " Framework-macos/voicevox_core.framework/voicevox_core"
85
+
86
+ for platform in " ${platforms[@]} " ; do
87
+ echo " * Change ${platform} @rpath"
64
88
# 自身への@rpathを変更
65
89
install_name_tool -id " @rpath/voicevox_core.framework/voicevox_core" \
66
- " Framework-${arch} /voicevox_core.framework/voicevox_core"
90
+ " Framework-${platform} /voicevox_core.framework/voicevox_core"
91
+ done
67
92
93
+ for platform in " ${link_onnxruntime_platform[@]} " ; do
94
+ echo " * Change ${platform} onnxruntime @rpath"
68
95
# onnxruntimeへの@rpathを、voicevox_onnxruntimeのXCFrameworkに変更
69
96
install_name_tool -change " @rpath/$dylib_string " \
70
97
" @rpath/voicevox_onnxruntime.framework/voicevox_onnxruntime" \
71
- " Framework-${arch } /voicevox_core.framework/voicevox_core"
98
+ " Framework-${platform } /voicevox_core.framework/voicevox_core"
72
99
done
73
100
74
101
echo " * Create XCFramework"
75
102
mkdir -p " ${OUTPUT_ASSET_PATH} "
76
103
xcodebuild -create-xcframework \
77
104
-framework " Framework-sim/voicevox_core.framework" \
78
- -framework " Framework-aarch64/voicevox_core.framework" \
105
+ -framework " Framework-ios/voicevox_core.framework" \
106
+ -framework " Framework-macos/voicevox_core.framework" \
79
107
-output " ${OUTPUT_ASSET_PATH} /voicevox_core.xcframework"
0 commit comments