Browse Source

Update iOS Package build script.

pull/299/head
Canming Huang 6 years ago
parent
commit
41424ebdbd
  1. 5
      Emgu.CV.Test/CMakeLists.txt
  2. 46
      Emgu.CV.World/iOS/CMakeLists.txt
  3. 10
      Emgu.CV.World/iOS/Emgu.CV.World.IOS.csproj
  4. 8
      cmake/modules/FindCSharp.cmake
  5. 65
      platforms/ios/build.sh

5
Emgu.CV.Test/CMakeLists.txt

@ -10,8 +10,9 @@ IF(APPLE)
BUILD_CSPROJ_IN_SOLUTION(${PROJECT_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/../Solution/Windows.Desktop/Emgu.CV.Test.Netcore.sln" "" "" ALL)
ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME}
PRE_BUILD
COMMAND mono "${CMAKE_CURRENT_SOURCE_DIR}/../miscellaneous/nuget.exe" restore "${CMAKE_CURRENT_SOURCE_DIR}/Emgu.CV.Test.Netcore/Emgu.CV.Test.Netcore.csproj"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
#COMMAND mono "${CMAKE_CURRENT_SOURCE_DIR}/../miscellaneous/nuget.exe" restore "${CMAKE_CURRENT_SOURCE_DIR}/Emgu.CV.Test.Netcore/Emgu.CV.Test.Netcore.csproj"
COMMAND ${MSBUILD_EXECUTABLE} -t:restore
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/Emgu.CV.Test.Netcore")
ELSE()
BUILD_DOTNET_PROJ(${PROJECT_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/Emgu.CV.Test.Netcore/Emgu.CV.Test.Netcore.csproj" "${EXTRA_BUILD_FLAGS}" ALL)
ENDIF()

46
Emgu.CV.World/iOS/CMakeLists.txt

@ -4,24 +4,34 @@
IF(EMGU_CV_BUILD OR EMGU_CV_EXAMPLE_BUILD)
# IF (DOTNET_FOUND)
IF (APPLE)
PROJECT(Emgu.CV.World.IOS)
BUILD_CSPROJ_IN_SOLUTION(${PROJECT_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/../../Solution/iOS/Emgu.CV.iOS.sln" "" "" ALL)
INSTALL(
FILES
${CMAKE_CURRENT_SOURCE_DIR}/../../libs/${PROJECT_NAME}.xml
${CMAKE_CURRENT_SOURCE_DIR}/../../libs/${PROJECT_NAME}.dll
DESTINATION ${CPACK_PACKAGE_CLI_FOLDER}
COMPONENT emgucv_binary)
ADD_DEPENDENCIES(${PROJECT_NAME} cvextern)
if(ENABLE_SOLUTION_FOLDERS)
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER "emgu")
endif()
ENDIF()
# IF (APPLE AND MSBUILD_FOUND)
# PROJECT(Emgu.CV.World.IOS)
#
# ADD_CUSTOM_TARGET(${PROJECT_NAME} ALL)
# ADD_CUSTOM_COMMAND(
# TARGET ${PROJECT_NAME}
# #COMMAND "${MSBUILD_EXECUTABLE}" Emgu.CV.iOS.sln -p:TargetFrameworkRootPath="/Library/Frameworks/Xamarin.iOS.framework/Versions/Current" -p:MSBuildExtensionsPath="/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/msbuild/iOS" -p:Configuration=Release -p:OutputPath="../libs/ios_build" -p:GeneratedSourcesDir="../libs/ios_build"
# #COMMAND "${MSBUILD_EXECUTABLE}" Emgu.CV.World.IOS.csproj -p:TargetFrameworkRootPath="/Library/Frameworks/Xamarin.iOS.framework/Versions/Current" -p:MSBuildExtensionsPath="/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/msbuild/iOS" -p:Configuration=Release -p:Platform=AnyCPU
# COMMAND "${VSTOOL_EXECUTABLE}" build -t:Build -c:"Release|iPhone" Emgu.CV.iOS.sln
# #WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
# WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../Solution/iOS"
# COMMENT "BUILDING ${PROJECT_NAME}")
#
# #BUILD_CSPROJ_IN_SOLUTION(${PROJECT_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/../../Solution/iOS/Emgu.CV.iOS.sln" "" "" ALL)
#
# INSTALL(
# FILES
# ${CMAKE_CURRENT_SOURCE_DIR}/../../libs/${PROJECT_NAME}.xml
# ${CMAKE_CURRENT_SOURCE_DIR}/../../libs/${PROJECT_NAME}.dll
# DESTINATION ${CPACK_PACKAGE_CLI_FOLDER}
# COMPONENT emgucv_binary)
#
# ADD_DEPENDENCIES(${PROJECT_NAME} cvextern Emgu.CV.World.Netstandard)
# if(ENABLE_SOLUTION_FOLDERS)
# set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER "emgu")
# endif()
#
# ENDIF()
INSTALL(
DIRECTORY

10
Emgu.CV.World/iOS/Emgu.CV.World.IOS.csproj

@ -35,6 +35,16 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DocumentationFile>$(OutputPath)$(AssemblyName).xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\libs\iOS_build\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DocumentationFile>$(OutputPath)$(AssemblyName).xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="OpenTK-1.0" />
<Reference Include="System" />

8
cmake/modules/FindCSharp.cmake

@ -217,6 +217,12 @@ ENDIF()
#FIND_PROGRAM (MSBUILD_EXECUTABLE xbuild)
#ENDIF(WIN32)
IF (MSBUILD_EXECUTABLE)
SET (MSBUILD_FOUND TRUE)
ELSE()
SET (MSBUILD_FOUND FALSE)
ENDIF()
FIND_PROGRAM (GACUTIL_EXECUTABLE gacutil
"$ENV{${PROGRAM_FILES_X86_ENV_STR}}/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.6.1 Tools"
@ -345,6 +351,6 @@ ELSE (CSharp_FOUND)
ENDIF (CSharp_FIND_REQUIRED)
ENDIF (CSharp_FOUND)
MARK_AS_ADVANCED(CSC_EXECUTABLE VSTOOL_EXECUTABLE AL_EXECUTABLE GACUTIL_EXECUTABLE MSBUILD_EXECUTABLE DOTNET_EXECUTABLE DOTNET_FOUND VSTOOLS_FOUND)
MARK_AS_ADVANCED(CSC_EXECUTABLE VSTOOL_EXECUTABLE AL_EXECUTABLE GACUTIL_EXECUTABLE MSBUILD_EXECUTABLE DOTNET_EXECUTABLE DOTNET_FOUND MSBUILD_FOUND VSTOOLS_FOUND)

65
platforms/ios/build.sh

@ -19,37 +19,19 @@ if [ \( "$1" != "simulator" \) -a \( "$1" != "simulator_x86_64" \) ]; then
mkdir -p platforms/ios/armv7s
cd platforms/ios/armv7s
../configure-device_xcode.sh -DIOS_ARCH="armv7s" $*
./xcodebuild_wrapper BITCODE_GENERATION_MODE=bitcode -parallelizeTargets -jobs 8 -configuration Release -target package build
# cp -r ../../../libs/Release/* bin/Release
# cp -r opencv/3rdparty/lib/Release/* bin/Release
# cp -r opencv/lib/Release/* bin/Release
# cp -r freetype2/Release-iphoneos/* bin/Release
# cp -r harfbuzz/Release-iphoneos/* bin/Release
# libtool -static -o libemgucv_armv7s.a bin/Release/*.a
./xcodebuild_wrapper BITCODE_GENERATION_MODE=bitcode -parallelizeTargets -jobs 8 -configuration Release -target ALL_BUILD clean build
cd ../../..
mkdir -p platforms/ios/armv7
cd platforms/ios/armv7
../configure-device_xcode.sh -DIOS_ARCH="armv7" $*
./xcodebuild_wrapper BITCODE_GENERATION_MODE=bitcode -parallelizeTargets -jobs 8 -configuration Release -target package build
# cp -r ../../../libs/Release/* bin/Release
# cp -r opencv/3rdparty/lib/Release/* bin/Release
# cp -r opencv/lib/Release/* bin/Release
# cp -r freetype2/Release-iphoneos/* bin/Release
# cp -r harfbuzz/Release-iphoneos/* bin/Release
# libtool -static -o libemgucv_armv7.a bin/Release/*.a
./xcodebuild_wrapper BITCODE_GENERATION_MODE=bitcode -parallelizeTargets -jobs 8 -configuration Release -target ALL_BUILD clean build
cd ../../..
mkdir -p platforms/ios/arm64
cd platforms/ios/arm64
../configure-device_xcode.sh -DIOS_ARCH="arm64" $*
./xcodebuild_wrapper BITCODE_GENERATION_MODE=bitcode -parallelizeTargets -jobs 8 -configuration Release -target package build
# cp -r ../../../libs/Release/* bin/Release
# cp -r opencv/3rdparty/lib/Release/* bin/Release
# cp -r opencv/lib/Release/* bin/Release
# cp -r freetype2/Release-iphoneos/* bin/Release
# cp -r harfbuzz/Release-iphoneos/* bin/Release
# libtool -static -o libemgucv_arm64.a bin/Release/*.a
./xcodebuild_wrapper BITCODE_GENERATION_MODE=bitcode -parallelizeTargets -jobs 8 -configuration Release -target ALL_BUILD clean build
cd ../../..
fi
@ -62,15 +44,7 @@ if [ "$1" != "simulator_x86_64" ]; then
else
../configure-simulator_xcode.sh -DIOS_ARCH="i386" -DBUILD_IPP_IW:BOOL=FALSE -DWITH_IPP:BOOL=FALSE $*
fi
./xcodebuild_wrapper -parallelizeTargets -jobs 8 -configuration Release -target package build
# cp -r ../../../libs/Release/* bin/Release
# cp -r opencv/3rdparty/lib/Release/* bin/Release
# cp -r opencv/lib/Release/* bin/Release
# cp -r freetype2/Release-iphonesimulator/* bin/Release
# cp -r harfbuzz/Release-iphonesimulator/* bin/Release
#cp -r opencv/3rdparty/ippicv/ippiw_mac/lib/ia32/* bin/Release
#cp -r opencv/3rdparty/ippicv/ippicv_mac/lib/ia32/* bin/Release
# libtool -static -o libemgucv_i386.a bin/Release/*.a
./xcodebuild_wrapper -parallelizeTargets -jobs 8 -configuration Release -target ALL_BUILD clean build
cd ../../..
fi
@ -82,31 +56,16 @@ if [ \( "$1" = "simulator" \) -o \( "$1" = "simulator_x86_64" \) ]; then
else
../configure-simulator_xcode.sh -DIOS_ARCH="x86_64" -DBUILD_IPP_IW:BOOL=FALSE -DWITH_IPP:BOOL=FALSE $*
fi
./xcodebuild_wrapper WARNING_CFLAGS=-Wno-implicit-function-declaration -parallelizeTargets -jobs 8 -configuration Release -target package build
#cp -r ../../../libs/Release/* bin/Release
#cp -r opencv/3rdparty/lib/Release/* bin/Release
#cp -r opencv/lib/Release/* bin/Release
#cp -r freetype2/Release-iphonesimulator/* bin/Release
#cp -r harfbuzz/Release-iphonesimulator/* bin/Release
#cp -r opencv/3rdparty/ippicv/ippiw_mac/lib/intel64/* bin/Release
#cp -r opencv/3rdparty/ippicv/ippicv_mac/lib/intel64/* bin/Release
./xcodebuild_wrapper WARNING_CFLAGS=-Wno-implicit-function-declaration -parallelizeTargets -jobs 8 -configuration Release -target ALL_BUILD clean build
#libtool -static -o libemgucv_x86_64.a bin/Release/*.a
cd ../../..
#rm -rf platforms/ios/universal
#mkdir -p platforms/ios/universal
#if [ "$1" == "simulator" ]; then
#skip the first parameter
# lipo -create -output platforms/ios/universal/libemgucv.a platforms/ios/i386/libemgucv_i386.a platforms/ios/x86_64/libemgucv_x86_64.a
#elif [ "$1" == "simulator_x86_64" ]; then
# cp -f platforms/ios/x86_64/libemgucv_x86_64.a platforms/ios/universal/libemgucv.a
#else
# lipo -create -output platforms/ios/universal/libemgucv.a platforms/ios/armv7/libemgucv_armv7.a platforms/ios/armv7s/libemgucv_armv7s.a platforms/ios/arm64/libemgucv_arm64.a platforms/ios/i386/libemgucv_i386.a platforms/ios/x86_64/libemgucv_x86_64.a
#fi
#mkdir -p libs/iOS
#cp -f platforms/ios/universal/libemgucv.a libs/iOS/libcvextern.a
cd Emgu.CV.World/iOS
#compile Emgu.CV.World.iOS.dll
msbuild
cd ../../platforms/ios/x86_64
#build the package this time
./xcodebuild_wrapper WARNING_CFLAGS=-Wno-implicit-function-declaration -parallelizeTargets -jobs 8 -configuration Release -target package build
cd platforms/ios
cd ..
Loading…
Cancel
Save