Skip to content

Commit 92f221b

Browse files
committed
update script for vulkan-enabled build, add ios 64bit-only toolchain file
1 parent c1c72ec commit 92f221b

File tree

4 files changed

+139
-0
lines changed

4 files changed

+139
-0
lines changed

build.sh

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ make
2424
make install
2525
popd
2626

27+
##### android armv7 vulkan
28+
mkdir -p build-android-armv7-vulkan
29+
pushd build-android-armv7-vulkan
30+
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-24 -DNCNN_VULKAN=ON ..
31+
make
32+
make install
33+
popd
34+
35+
##### android aarch64 vulkan
36+
mkdir -p build-android-aarch64-vulkan
37+
pushd build-android-aarch64-vulkan
38+
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-24 -DNCNN_VULKAN=ON ..
39+
make
40+
make install
41+
popd
42+
2743
##### linux of hisiv300 (forgot the chip name) toolchain with neon and openmp
2844
mkdir -p build-hisiv300-linux
2945
pushd build-hisiv300-linux
@@ -96,6 +112,22 @@ make
96112
make install
97113
popd
98114

115+
##### ios arm64 vulkan
116+
mkdir -p build-ios-vulkan
117+
pushd build-ios-vulkan
118+
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/iosxc-arm64.toolchain.cmake -DVulkan_INCLUDE_DIR=${VULKAN_SDK}/MoltenVK/include -DVulkan_LIBRARY=${VULKAN_SDK}/MoltenVK/iOS/MoltenVK.framework/MoltenVK -DNCNN_VULKAN=ON ..
119+
make
120+
make install
121+
popd
122+
123+
##### ios simulator x86_64 vulkan
124+
mkdir -p build-ios-sim-vulkan
125+
pushd build-ios-sim-vulkan
126+
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/iossimxc-x64.toolchain.cmake -DVulkan_INCLUDE_DIR=${VULKAN_SDK}/MoltenVK/include -DVulkan_LIBRARY=${VULKAN_SDK}/MoltenVK/iOS/MoltenVK.framework/MoltenVK -DNCNN_VULKAN=ON ..
127+
make
128+
make install
129+
popd
130+
99131
##### MacOS
100132
mkdir -p build-mac
101133
pushd build-mac

package.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,34 @@ cp Info.plist ${IOSPKGNAME}/Versions/A/Resources/
3333
rm -f $IOSPKGNAME.zip
3434
zip -9 -y -r $IOSPKGNAME.zip $IOSPKGNAME
3535

36+
37+
##### package android lib vulkan
38+
ANDROIDPKGNAME=${NAME}-android-vulkan-lib
39+
rm -rf $ANDROIDPKGNAME
40+
mkdir -p $ANDROIDPKGNAME
41+
mkdir -p $ANDROIDPKGNAME/armeabi-v7a
42+
mkdir -p $ANDROIDPKGNAME/arm64-v8a
43+
mkdir -p $ANDROIDPKGNAME/include
44+
cp build-android-armv7-vulkan/install/lib/lib${NAME}.a $ANDROIDPKGNAME/armeabi-v7a/
45+
cp build-android-aarch64-vulkan/install/lib/lib${NAME}.a $ANDROIDPKGNAME/arm64-v8a/
46+
cp build-android-aarch64-vulkan/install/include/* $ANDROIDPKGNAME/include/
47+
rm -f $ANDROIDPKGNAME.zip
48+
zip -9 -r $ANDROIDPKGNAME.zip $ANDROIDPKGNAME
49+
50+
##### package ios framework vulkan
51+
IOSPKGNAME=${NAME}-vulkan.framework
52+
rm -rf $IOSPKGNAME
53+
mkdir -p $IOSPKGNAME/Versions/A/Headers
54+
mkdir -p $IOSPKGNAME/Versions/A/Resources
55+
ln -s A $IOSPKGNAME/Versions/Current
56+
ln -s Versions/Current/Headers $IOSPKGNAME/Headers
57+
ln -s Versions/Current/Resources $IOSPKGNAME/Resources
58+
ln -s Versions/Current/${NAME} $IOSPKGNAME/${NAME}
59+
lipo -create \
60+
build-ios-vulkan/install/lib/lib${NAME}.a \
61+
build-ios-sim-vulkan/install/lib/lib${NAME}.a \
62+
-o $IOSPKGNAME/Versions/A/${NAME}
63+
cp -r build-ios-vulkan/install/include/* $IOSPKGNAME/Versions/A/Headers/
64+
cp Info.plist ${IOSPKGNAME}/Versions/A/Resources/
65+
rm -f $IOSPKGNAME.zip
66+
zip -9 -y -r $IOSPKGNAME.zip $IOSPKGNAME
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Standard settings
2+
# set(UNIX True)
3+
# set(Darwin True)
4+
# set(IOS True)
5+
set (CMAKE_SYSTEM_NAME Darwin)
6+
set (CMAKE_SYSTEM_VERSION 1)
7+
set (UNIX True)
8+
set (APPLE True)
9+
set (IOS True)
10+
11+
# suppress -rdynamic
12+
# set(CMAKE_SYSTEM_NAME Generic)
13+
14+
set(CMAKE_C_COMPILER i386-apple-darwin11-clang)
15+
set(CMAKE_CXX_COMPILER i386-apple-darwin11-clang++)
16+
17+
set(_CMAKE_TOOLCHAIN_PREFIX i386-apple-darwin11-)
18+
19+
set(CMAKE_IOS_SDK_ROOT "/home/nihui/osd/cctools-port/usage_examples/ios_toolchain/target-sim/SDK/iPhoneSimulator10.2.sdk")
20+
21+
# Set the sysroot default to the most recent SDK
22+
set(CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS Simulator support")
23+
24+
# set the architecture for iOS
25+
set(IOS_ARCH x86_64)
26+
27+
set(CMAKE_OSX_ARCHITECTURES ${IOS_ARCH} CACHE string "Build architecture for iOS Simulator")
28+
29+
# Set the find root to the iOS developer roots and to user defined paths
30+
set(CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_IOS_SDK_ROOT} ${CMAKE_PREFIX_PATH} CACHE string "iOS Simulator find search path root")
31+
32+
# searching for frameworks only
33+
set(CMAKE_FIND_FRAMEWORK FIRST)
34+
35+
# set up the default search directories for frameworks
36+
set(CMAKE_SYSTEM_FRAMEWORK_PATH
37+
${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks
38+
)
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Standard settings
2+
# set(UNIX True)
3+
# set(Darwin True)
4+
# set(IOS True)
5+
set (CMAKE_SYSTEM_NAME Darwin)
6+
set (CMAKE_SYSTEM_VERSION 1)
7+
set (UNIX True)
8+
set (APPLE True)
9+
set (IOS True)
10+
11+
# suppress -rdynamic
12+
# set(CMAKE_SYSTEM_NAME Generic)
13+
14+
set(CMAKE_C_COMPILER arm-apple-darwin11-clang)
15+
set(CMAKE_CXX_COMPILER arm-apple-darwin11-clang++)
16+
17+
set(_CMAKE_TOOLCHAIN_PREFIX arm-apple-darwin11-)
18+
19+
set(CMAKE_IOS_SDK_ROOT "/home/nihui/osd/cctools-port/usage_examples/ios_toolchain/target/SDK/iPhoneOS10.2.sdk")
20+
21+
# Set the sysroot default to the most recent SDK
22+
set(CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS support")
23+
24+
# set the architecture for iOS
25+
set(IOS_ARCH arm64)
26+
27+
set(CMAKE_OSX_ARCHITECTURES ${IOS_ARCH} CACHE string "Build architecture for iOS")
28+
29+
# Set the find root to the iOS developer roots and to user defined paths
30+
set(CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_IOS_SDK_ROOT} ${CMAKE_PREFIX_PATH} CACHE string "iOS find search path root")
31+
32+
# searching for frameworks only
33+
set(CMAKE_FIND_FRAMEWORK FIRST)
34+
35+
# set up the default search directories for frameworks
36+
set(CMAKE_SYSTEM_FRAMEWORK_PATH
37+
${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks
38+
)

0 commit comments

Comments
 (0)