1#!/usr/bin/bash
2
3NAME=ncnn
4
5##### package android lib
6ANDROIDPKGNAME=${NAME}-android-lib
7rm -rf $ANDROIDPKGNAME
8mkdir -p $ANDROIDPKGNAME
9mkdir -p $ANDROIDPKGNAME/armeabi-v7a
10mkdir -p $ANDROIDPKGNAME/arm64-v8a
11mkdir -p $ANDROIDPKGNAME/x86
12mkdir -p $ANDROIDPKGNAME/x86_64
13mkdir -p $ANDROIDPKGNAME/include
14cp build-android-armv7/install/lib/lib*.a $ANDROIDPKGNAME/armeabi-v7a/
15cp build-android-aarch64/install/lib/lib*.a $ANDROIDPKGNAME/arm64-v8a/
16cp build-android-x86/install/lib/lib*.a $ANDROIDPKGNAME/x86/
17cp build-android-x86_64/install/lib/lib*.a $ANDROIDPKGNAME/x86_64/
18cp -r build-android-aarch64/install/include/* $ANDROIDPKGNAME/include/
19rm -f $ANDROIDPKGNAME.zip
20zip -9 -r $ANDROIDPKGNAME.zip $ANDROIDPKGNAME
21
22##### package ios framework
23IOSPKGNAME=${NAME}.framework
24rm -rf $IOSPKGNAME
25mkdir -p $IOSPKGNAME/Versions/A/Headers
26mkdir -p $IOSPKGNAME/Versions/A/Resources
27ln -s A $IOSPKGNAME/Versions/Current
28ln -s Versions/Current/Headers $IOSPKGNAME/Headers
29ln -s Versions/Current/Resources $IOSPKGNAME/Resources
30ln -s Versions/Current/${NAME} $IOSPKGNAME/${NAME}
31lipo -create \
32    build-ios/install/lib/lib${NAME}.a \
33    build-ios-sim/install/lib/lib${NAME}.a \
34    -o $IOSPKGNAME/Versions/A/${NAME}
35cp -r build-ios/install/include/* $IOSPKGNAME/Versions/A/Headers/
36cp Info.plist ${IOSPKGNAME}/Versions/A/Resources/
37rm -f $IOSPKGNAME.zip
38zip -9 -y -r $IOSPKGNAME.zip $IOSPKGNAME
39
40##### package ios framework bitcode
41IOSPKGNAME=${NAME}.framework
42rm -rf $IOSPKGNAME
43mkdir -p $IOSPKGNAME/Versions/A/Headers
44mkdir -p $IOSPKGNAME/Versions/A/Resources
45ln -s A $IOSPKGNAME/Versions/Current
46ln -s Versions/Current/Headers $IOSPKGNAME/Headers
47ln -s Versions/Current/Resources $IOSPKGNAME/Resources
48ln -s Versions/Current/${NAME} $IOSPKGNAME/${NAME}
49lipo -create \
50    build-ios-bitcode/install/lib/lib${NAME}.a \
51    build-ios-sim-bitcode/install/lib/lib${NAME}.a \
52    -o $IOSPKGNAME/Versions/A/${NAME}
53cp -r build-ios-bitcode/install/include/ncnn $IOSPKGNAME/Versions/A/Headers/
54cp Info.plist ${IOSPKGNAME}/Versions/A/Resources/
55rm -f $IOSPKGNAME-bitcode.zip
56zip -9 -y -r $IOSPKGNAME-bitcode.zip $IOSPKGNAME
57
58
59##### package android lib vulkan
60ANDROIDPKGNAME=${NAME}-android-vulkan-lib
61rm -rf $ANDROIDPKGNAME
62mkdir -p $ANDROIDPKGNAME
63mkdir -p $ANDROIDPKGNAME/armeabi-v7a
64mkdir -p $ANDROIDPKGNAME/arm64-v8a
65mkdir -p $ANDROIDPKGNAME/x86
66mkdir -p $ANDROIDPKGNAME/x86_64
67mkdir -p $ANDROIDPKGNAME/include
68cp build-android-armv7-vulkan/install/lib/lib*.a $ANDROIDPKGNAME/armeabi-v7a/
69cp build-android-aarch64-vulkan/install/lib/lib*.a $ANDROIDPKGNAME/arm64-v8a/
70cp build-android-x86-vulkan/install/lib/lib*.a $ANDROIDPKGNAME/x86/
71cp build-android-x86_64-vulkan/install/lib/lib*.a $ANDROIDPKGNAME/x86_64/
72cp -r build-android-aarch64-vulkan/install/include/* $ANDROIDPKGNAME/include/
73rm -f $ANDROIDPKGNAME.zip
74zip -9 -r $ANDROIDPKGNAME.zip $ANDROIDPKGNAME
75
76##### package ios framework vulkan
77IOSPKGNAME=${NAME}.framework
78rm -rf $IOSPKGNAME
79mkdir -p $IOSPKGNAME/Versions/A/Headers
80mkdir -p $IOSPKGNAME/Versions/A/Resources
81ln -s A $IOSPKGNAME/Versions/Current
82ln -s Versions/Current/Headers $IOSPKGNAME/Headers
83ln -s Versions/Current/Resources $IOSPKGNAME/Resources
84ln -s Versions/Current/${NAME} $IOSPKGNAME/${NAME}
85lipo -create \
86    build-ios-vulkan/install/lib/lib${NAME}.a \
87    build-ios-sim-vulkan/install/lib/lib${NAME}.a \
88    -o $IOSPKGNAME/Versions/A/${NAME}
89cp -r build-ios-vulkan/install/include/ncnn $IOSPKGNAME/Versions/A/Headers/
90cp Info.plist ${IOSPKGNAME}/Versions/A/Resources/
91rm -f $IOSPKGNAME-vulkan.zip
92zip -9 -y -r $IOSPKGNAME-vulkan.zip $IOSPKGNAME
93
94##### package ios framework vulkan bitcode
95IOSPKGNAME=${NAME}.framework
96rm -rf $IOSPKGNAME
97mkdir -p $IOSPKGNAME/Versions/A/Headers
98mkdir -p $IOSPKGNAME/Versions/A/Resources
99ln -s A $IOSPKGNAME/Versions/Current
100ln -s Versions/Current/Headers $IOSPKGNAME/Headers
101ln -s Versions/Current/Resources $IOSPKGNAME/Resources
102ln -s Versions/Current/${NAME} $IOSPKGNAME/${NAME}
103lipo -create \
104    build-ios-vulkan-bitcode/install/lib/lib${NAME}.a \
105    build-ios-sim-vulkan-bitcode/install/lib/lib${NAME}.a \
106    -o $IOSPKGNAME/Versions/A/${NAME}
107cp -r build-ios-vulkan-bitcode/install/include/ncnn $IOSPKGNAME/Versions/A/Headers/
108cp Info.plist ${IOSPKGNAME}/Versions/A/Resources/
109rm -f $IOSPKGNAME-vulkan-bitcode.zip
110zip -9 -y -r $IOSPKGNAME-vulkan-bitcode.zip $IOSPKGNAME
111
112
113##### package ios framework glslang
114IOSPKGNAME=glslang.framework
115rm -rf $IOSPKGNAME
116mkdir -p $IOSPKGNAME/Versions/A/Headers
117mkdir -p $IOSPKGNAME/Versions/A/Resources
118ln -s A $IOSPKGNAME/Versions/Current
119ln -s Versions/Current/Headers $IOSPKGNAME/Headers
120ln -s Versions/Current/Resources $IOSPKGNAME/Resources
121ln -s Versions/Current/glslang $IOSPKGNAME/glslang
122libtool -static \
123    build-ios-vulkan/install/lib/libglslang.a \
124    build-ios-vulkan/install/lib/libSPIRV.a \
125    build-ios-vulkan/install/lib/libOGLCompiler.a \
126    build-ios-vulkan/install/lib/libOSDependent.a \
127    -o build-ios-vulkan/install/lib/libglslang_combined.a
128libtool -static \
129    build-ios-sim-vulkan/install/lib/libglslang.a \
130    build-ios-sim-vulkan/install/lib/libSPIRV.a \
131    build-ios-sim-vulkan/install/lib/libOGLCompiler.a \
132    build-ios-sim-vulkan/install/lib/libOSDependent.a \
133    -o build-ios-sim-vulkan/install/lib/libglslang_combined.a
134lipo -create \
135    build-ios-vulkan/install/lib/libglslang_combined.a \
136    build-ios-sim-vulkan/install/lib/libglslang_combined.a \
137    -o $IOSPKGNAME/Versions/A/glslang
138cp -r build-ios-vulkan/install/include/glslang $IOSPKGNAME/Versions/A/Headers/
139cp Info.plist ${IOSPKGNAME}/Versions/A/Resources/
140rm -f $IOSPKGNAME.zip
141zip -9 -y -r $IOSPKGNAME.zip $IOSPKGNAME
142
143##### package ios framework glslang bitcode
144IOSPKGNAME=glslang.framework
145rm -rf $IOSPKGNAME
146mkdir -p $IOSPKGNAME/Versions/A/Headers
147mkdir -p $IOSPKGNAME/Versions/A/Resources
148ln -s A $IOSPKGNAME/Versions/Current
149ln -s Versions/Current/Headers $IOSPKGNAME/Headers
150ln -s Versions/Current/Resources $IOSPKGNAME/Resources
151ln -s Versions/Current/glslang $IOSPKGNAME/glslang
152libtool -static \
153    build-ios-vulkan-bitcode/install/lib/libglslang.a \
154    build-ios-vulkan-bitcode/install/lib/libSPIRV.a \
155    build-ios-vulkan-bitcode/install/lib/libOGLCompiler.a \
156    build-ios-vulkan-bitcode/install/lib/libOSDependent.a \
157    -o build-ios-vulkan-bitcode/install/lib/libglslang_combined.a
158libtool -static \
159    build-ios-sim-vulkan-bitcode/install/lib/libglslang.a \
160    build-ios-sim-vulkan-bitcode/install/lib/libSPIRV.a \
161    build-ios-sim-vulkan-bitcode/install/lib/libOGLCompiler.a \
162    build-ios-sim-vulkan-bitcode/install/lib/libOSDependent.a \
163    -o build-ios-sim-vulkan-bitcode/install/lib/libglslang_combined.a
164lipo -create \
165    build-ios-vulkan-bitcode/install/lib/libglslang_combined.a \
166    build-ios-sim-vulkan-bitcode/install/lib/libglslang_combined.a \
167    -o $IOSPKGNAME/Versions/A/glslang
168cp -r build-ios-vulkan-bitcode/install/include/glslang $IOSPKGNAME/Versions/A/Headers/
169cp Info.plist ${IOSPKGNAME}/Versions/A/Resources/
170rm -f $IOSPKGNAME-bitcode.zip
171zip -9 -y -r $IOSPKGNAME-bitcode.zip $IOSPKGNAME
172