mirror of https://github.com/alibaba/MNN.git
Fix Windows CI / Enhance iOS Build Script (#568)
* Add back MNN_BUILD_HARD option * Add simulator to buildiOS.sh
This commit is contained in:
parent
2b2d61046f
commit
2e3d5a318b
|
@ -357,8 +357,14 @@ include/MNN/backend/opengl/shaders/AllShader.h
|
||||||
source/backend/vulkan/compiler/AllShader.cpp
|
source/backend/vulkan/compiler/AllShader.cpp
|
||||||
include/MNN/backend/vulkan/shaders/AllShader.h
|
include/MNN/backend/vulkan/shaders/AllShader.h
|
||||||
.idea
|
.idea
|
||||||
project/ios/ios_64
|
project/ios/iOS_64
|
||||||
project/ios/ios_32
|
project/ios/iOS_32
|
||||||
project/ios/MNN.framework
|
project/ios/SIM_32
|
||||||
|
project/ios/SIM_64
|
||||||
|
project/ios/out/
|
||||||
|
project/ios/MNN_iOS64
|
||||||
|
project/ios/MNN_iOS32
|
||||||
|
project/ios/MNN_SIM_32
|
||||||
|
project/ios/MNN_SIM_64
|
||||||
|
|
||||||
pymnn_build/
|
pymnn_build/
|
||||||
|
|
|
@ -176,9 +176,18 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "^Android" OR (UNIX AND NOT APPLE))
|
||||||
endif()
|
endif()
|
||||||
if(CMAKE_SYSTEM_NAME MATCHES "^Android")
|
if(CMAKE_SYSTEM_NAME MATCHES "^Android")
|
||||||
add_definitions(-DMNN_BUILD_FOR_ANDROID)
|
add_definitions(-DMNN_BUILD_FOR_ANDROID)
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
|
endif()
|
||||||
add_definitions(-mfloat-abi=softfp -mfpu=neon)
|
|
||||||
endif()
|
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
|
||||||
|
if(CMAKE_SYSTEM_NAME MATCHES "^Android")
|
||||||
|
add_definitions(-mfloat-abi=softfp -mfpu=neon)
|
||||||
|
else()
|
||||||
|
IF(MNN_BUILD_HARD)
|
||||||
|
add_definitions(-mfloat-abi=hard)
|
||||||
|
ELSE()
|
||||||
|
add_definitions(-mfloat-abi=softfp)
|
||||||
|
ENDIF()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,30 +1,56 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
pushd ${SCRIPT_DIR}
|
pushd ${SCRIPT_DIR}
|
||||||
rm -rf ios_64
|
|
||||||
mkdir ios_64
|
rm -rf iOS_64
|
||||||
cd ios_64
|
mkdir iOS_64
|
||||||
cmake ../../../ -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../../../cmake/ios.toolchain.cmake -DMNN_METAL=ON -DIOS_ARCH="arm64" -DENABLE_BITCODE=0 -G Xcode
|
cd iOS_64
|
||||||
|
cmake ../../../ -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../../../cmake/ios.toolchain.cmake -DMNN_METAL=ON -DIOS_ARCH="arm64" -DMNN_AAPL_FMWK=ON -DENABLE_BITCODE=0 -G Xcode
|
||||||
echo "Building AArch64"
|
echo "Building AArch64"
|
||||||
xcodebuild ONLY_ACTIVE_ARCH=NO CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -configuration Release -scheme MNN -target MNN -sdk iphoneos -quiet -DMNN_AAPL_FMWK=ON
|
xcodebuild ONLY_ACTIVE_ARCH=NO CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -configuration Release -scheme MNN -target MNN -sdk iphoneos -quiet
|
||||||
cd ../
|
cd ../
|
||||||
|
|
||||||
rm -rf ios_32
|
rm -rf iOS_32
|
||||||
mkdir ios_32
|
mkdir iOS_32
|
||||||
cd ios_32
|
cd iOS_32
|
||||||
cmake ../../../ -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../../../cmake/ios.toolchain.cmake -DMNN_METAL=ON -DIOS_ARCH="armv7;armv7s" -DENABLE_BITCODE=0 -G Xcode
|
cmake ../../../ -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../../../cmake/ios.toolchain.cmake -DMNN_METAL=ON -DIOS_ARCH="armv7;armv7s" -DMNN_AAPL_FMWK=ON -DENABLE_BITCODE=0 -G Xcode
|
||||||
echo "Building AArch32"
|
echo "Building AArch32"
|
||||||
xcodebuild ONLY_ACTIVE_ARCH=NO CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -configuration Release -scheme MNN -target MNN -sdk iphoneos -quiet -DMNN_AAPL_FMWK=ON
|
xcodebuild ONLY_ACTIVE_ARCH=NO CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -configuration Release -scheme MNN -target MNN -sdk iphoneos -quiet
|
||||||
cd ../
|
cd ../
|
||||||
|
|
||||||
mv ios_32/Release-iphoneos/MNN.framework/MNN ios_32/Release-iphoneos/MNN.framework/MNN_32
|
rm -rf SIM_32
|
||||||
|
mkdir SIM_32
|
||||||
|
cd SIM_32
|
||||||
|
cmake ../../../ -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../../../cmake/ios.toolchain.cmake -DMNN_METAL=ON -DPLATFORM=SIMULATOR -DENABLE_BITCODE=0 -DMNN_AAPL_FMWK=ON -G Xcode
|
||||||
|
echo "Building Simulator32"
|
||||||
|
xcodebuild ONLY_ACTIVE_ARCH=NO CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -configuration Release -scheme MNN -target MNN -sdk iphonesimulator -quiet
|
||||||
|
cd ../
|
||||||
|
|
||||||
|
rm -rf SIM_64
|
||||||
|
mkdir SIM_64
|
||||||
|
cd SIM_64
|
||||||
|
cmake ../../../ -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../../../cmake/ios.toolchain.cmake -DMNN_METAL=ON -DPLATFORM=SIMULATOR64 -DENABLE_BITCODE=0 -DMNN_AAPL_FMWK=ON -G Xcode
|
||||||
|
echo "Building Simulator64"
|
||||||
|
xcodebuild ONLY_ACTIVE_ARCH=NO CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -configuration Release -scheme MNN -target MNN -sdk iphonesimulator -quiet
|
||||||
|
cd ../
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
echo "Moving Slices"
|
||||||
|
rm -rf output/
|
||||||
|
mkdir output
|
||||||
|
mv iOS_64/Release-iphoneos/MNN.framework/MNN ./MNN_iOS64
|
||||||
|
mv iOS_32/Release-iphoneos/MNN.framework/MNN ./MNN_iOS32
|
||||||
|
mv SIM_32/Release-iphonesimulator/MNN.framework/MNN ./MNN_SIM_32
|
||||||
|
mv SIM_64/Release-iphonesimulator/MNN.framework/MNN ./MNN_SIM_64
|
||||||
|
mv iOS_32/Release-iphoneos/MNN.framework output/
|
||||||
echo "Creating Fat Binary"
|
echo "Creating Fat Binary"
|
||||||
lipo -create ios_32/Release-iphoneos/MNN.framework/MNN_32 ios_64/Release-iphoneos/MNN.framework/MNN -output ios_32/Release-iphoneos/MNN.framework/MNN
|
lipo -create ./MNN_iOS64 ./MNN_iOS32 ./MNN_SIM_64 ./MNN_SIM_32 -output output/MNN.framework/MNN
|
||||||
rm ios_32/Release-iphoneos/MNN.framework/MNN_32
|
echo "Cleaning up"
|
||||||
echo "Patching Framework Headers"
|
rm ./MNN_iOS64 ./MNN_iOS32 ./MNN_SIM_64 ./MNN_SIM_32
|
||||||
rm -rf ./MNN.framework
|
echo "Patching framework Headers"
|
||||||
cp -R ios_32/Release-iphoneos/MNN.framework ./MNN.framework
|
cp -R ../../include/MNN/expr output/MNN.framework/Headers/expr
|
||||||
cp -R ../../include/MNN/expr ./MNN.framework/Headers/expr
|
echo "Unified Framework built at ${PWD}/output/"
|
||||||
|
|
||||||
popd
|
popd
|
||||||
|
|
|
@ -1,45 +1,47 @@
|
||||||
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/grad)
|
IF(MNN_BUILD_TRAIN)
|
||||||
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/optimizer)
|
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/grad)
|
||||||
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/parameters)
|
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/optimizer)
|
||||||
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/module)
|
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/parameters)
|
||||||
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/transformer)
|
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/module)
|
||||||
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/data)
|
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/transformer)
|
||||||
file(GLOB GRAD ${CMAKE_CURRENT_LIST_DIR}/source/grad/*)
|
include_directories(${CMAKE_CURRENT_LIST_DIR}/source/data)
|
||||||
file(GLOB TRANSFORMER ${CMAKE_CURRENT_LIST_DIR}/source/transformer/*)
|
file(GLOB GRAD ${CMAKE_CURRENT_LIST_DIR}/source/grad/*)
|
||||||
file(GLOB MODULES ${CMAKE_CURRENT_LIST_DIR}/source/module/*)
|
file(GLOB TRANSFORMER ${CMAKE_CURRENT_LIST_DIR}/source/transformer/*)
|
||||||
file(GLOB PARAMETER ${CMAKE_CURRENT_LIST_DIR}/source/parameters/*)
|
file(GLOB MODULES ${CMAKE_CURRENT_LIST_DIR}/source/module/*)
|
||||||
file(GLOB OPTIMIZER ${CMAKE_CURRENT_LIST_DIR}/source/optimizer/*)
|
file(GLOB PARAMETER ${CMAKE_CURRENT_LIST_DIR}/source/parameters/*)
|
||||||
file(GLOB DATALOADER ${CMAKE_CURRENT_LIST_DIR}/source/data/*)
|
file(GLOB OPTIMIZER ${CMAKE_CURRENT_LIST_DIR}/source/optimizer/*)
|
||||||
|
file(GLOB DATALOADER ${CMAKE_CURRENT_LIST_DIR}/source/data/*)
|
||||||
|
|
||||||
add_library(MNNTrain SHARED ${GRAD} ${BASIC_INCLUDE} ${PARAMETER} ${OPTIMIZER} ${MODULES} ${DATALOADER} ${TRANSFORMER})
|
add_library(MNNTrain SHARED ${GRAD} ${BASIC_INCLUDE} ${PARAMETER} ${OPTIMIZER} ${MODULES} ${DATALOADER} ${TRANSFORMER})
|
||||||
target_link_libraries(MNNTrain ${MNN_DEPS})
|
target_link_libraries(MNNTrain ${MNN_DEPS})
|
||||||
IF(CMAKE_BUILD_TYPE MATCHES Release)
|
IF(CMAKE_BUILD_TYPE MATCHES Release)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
add_executable(transformer.out ${CMAKE_CURRENT_LIST_DIR}/source/exec/transformerExecution.cpp)
|
||||||
|
target_link_libraries(transformer.out MNNTrain)
|
||||||
|
|
||||||
|
add_executable(train.out ${CMAKE_CURRENT_LIST_DIR}/source/exec/train.cpp ${SCHEMA} ${BASIC_INCLUDE})
|
||||||
|
target_link_libraries(train.out MNN)
|
||||||
|
|
||||||
|
|
||||||
|
add_executable(rawDataTransform.out ${CMAKE_CURRENT_LIST_DIR}/source/exec/rawDataTransform.cpp ${SCHEMA} ${BASIC_INCLUDE})
|
||||||
|
|
||||||
|
include_directories(../../3rd_party/imageHelper/)
|
||||||
|
add_executable(dataTransformer.out ${CMAKE_CURRENT_LIST_DIR}/source/exec/dataTransformer.cpp ${SCHEMA} ${BASIC_INCLUDE})
|
||||||
|
target_link_libraries(dataTransformer.out MNN)
|
||||||
|
|
||||||
|
option(MNN_USE_OPENCV "Use opencv" OFF)
|
||||||
|
|
||||||
|
file(GLOB DEMOSOURCE ${CMAKE_CURRENT_LIST_DIR}/source/demo/*)
|
||||||
|
add_executable(runTrainDemo.out ${DEMOSOURCE} ${BASIC_INCLUDE})
|
||||||
|
target_link_libraries(runTrainDemo.out MNNTrain)
|
||||||
|
if (MNN_USE_OPENCV)
|
||||||
|
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS_ORIGIN})
|
||||||
|
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS_ORIGIN})
|
||||||
|
find_package(OpenCV REQUIRED)
|
||||||
|
include_directories(${OpenCV_INCLUDE_DIRS})
|
||||||
|
add_definitions(-D MNN_USE_OPENCV)
|
||||||
|
target_link_libraries(runTrainDemo.out ${OpenCV_LIBS})
|
||||||
|
endif()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
add_executable(transformer.out ${CMAKE_CURRENT_LIST_DIR}/source/exec/transformerExecution.cpp)
|
|
||||||
target_link_libraries(transformer.out MNNTrain)
|
|
||||||
|
|
||||||
add_executable(train.out ${CMAKE_CURRENT_LIST_DIR}/source/exec/train.cpp ${SCHEMA} ${BASIC_INCLUDE})
|
|
||||||
target_link_libraries(train.out MNN)
|
|
||||||
|
|
||||||
|
|
||||||
add_executable(rawDataTransform.out ${CMAKE_CURRENT_LIST_DIR}/source/exec/rawDataTransform.cpp ${SCHEMA} ${BASIC_INCLUDE})
|
|
||||||
|
|
||||||
include_directories(../../3rd_party/imageHelper/)
|
|
||||||
add_executable(dataTransformer.out ${CMAKE_CURRENT_LIST_DIR}/source/exec/dataTransformer.cpp ${SCHEMA} ${BASIC_INCLUDE})
|
|
||||||
target_link_libraries(dataTransformer.out MNN)
|
|
||||||
|
|
||||||
option(MNN_USE_OPENCV "Use opencv" OFF)
|
|
||||||
|
|
||||||
file(GLOB DEMOSOURCE ${CMAKE_CURRENT_LIST_DIR}/source/demo/*)
|
|
||||||
add_executable(runTrainDemo.out ${DEMOSOURCE} ${BASIC_INCLUDE})
|
|
||||||
target_link_libraries(runTrainDemo.out MNNTrain)
|
|
||||||
if (MNN_USE_OPENCV)
|
|
||||||
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS_ORIGIN})
|
|
||||||
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS_ORIGIN})
|
|
||||||
find_package(OpenCV REQUIRED)
|
|
||||||
include_directories(${OpenCV_INCLUDE_DIRS})
|
|
||||||
add_definitions(-D MNN_USE_OPENCV)
|
|
||||||
target_link_libraries(runTrainDemo.out ${OpenCV_LIBS})
|
|
||||||
endif()
|
|
||||||
|
|
Loading…
Reference in New Issue