Skip to content

Files

Latest commit

d4fff53 · Oct 18, 2016

History

History

ios

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Oct 18, 2016

readme.md

Guild for iOS demo

Part 1: Compiling necessary libs

Check on compiling tools

Here you can have a check on the local iOS SDK version using xcodebuild which is integrated with Mac OS on terminal or iterm2.

xcodebuild -showsdks

For example, if the system is macOS 10.12 (16A323) the result might be like this:

iOS SDKs:
	iOS 10.0                      	-sdk iphoneos10.0

iOS Simulator SDKs:
	Simulator - iOS 10.0          	-sdk iphonesimulator10.0

macOS SDKs:
	macOS 10.12                   	-sdk macosx10.12

tvOS SDKs:
	tvOS 10.0                     	-sdk appletvos10.0

tvOS Simulator SDKs:
	Simulator - tvOS 10.0         	-sdk appletvsimulator10.0

watchOS SDKs:
	watchOS 3.0                   	-sdk watchos3.0

watchOS Simulator SDKs:
	Simulator - watchOS 3.0       	-sdk watchsimulator3.0

Here we can start the Xcode project building:

Create a hunter folder

tiny-dnn using hunter which is a CMake-driven cross-platform package manager for C++. Linux, Mac, Windows, iOS, Android, Raspberry Pi as the tool for generating 3rd party libraries like OpenCV and Protobuf.

git clone https://github.com/ruslo/hunter.git

And you also need Gate to Hunter packages and place it under the hunter root folder:

cd hunter
git clone https://github.com/hunter-packages/gate.git

Clone polly for iOS and android Developer

The next step is apply polly as CMake toolchain files and scripts:

git clone https://github.com/ruslo/polly.git

Building 3rd party libraries

  1. First, we can start with OpenCV. Here we can set environment variables.
export PROJECT_DIR=examples/OpenCV
export TOOLCHAIN=ios-nocodesign-10-0-wo-armv7s
export CXX=g++
export CC=gcc
export PATH="`pwd`/polly/bin:${PATH}"
export PATH="`pwd`/_ci/cmake/bin:${PATH}"
export XCODE_XCCONFIG_FILE="`pwd`/polly/scripts/NoCodeSign.xcconfig"
export HUNTER_ROOT="`pwd`/lib_ios_opencv/Hunter"
export TESTING_URL="`pwd`/lib_ios_opencv/hunter.tar.gz"

Then we can start the library compiling using cmake:

cmake -H`pwd`/${PROJECT_DIR} -B`pwd`/_testing/_builds/${TOOLCHAIN} -GXcode -DCMAKE_TOOLCHAIN_FILE=${HUNTER_ROOT}/polly/${TOOLCHAIN}.cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DPOLLY_STATUS_DEBUG=ON -DHUNTER_STATUS_DEBUG=ON -DHUNTER_ROOT=${HUNTER_ROOT} -DTESTING_URL=${DTESTING_URL} -DTESTING_SHA1=c5eced7e58ece8610d3340401b104900cf8a2183 -DHUNTER_RUN_INSTALL=ON

Mind that DTESTING_SHA1 might differs on your compiling environment, so you need to repalce it if there are such errors:

CMake Error at Build/Hunter-prefix/src/Hunter-stamp/verify-Hunter.cmake:40 (message):
  error: SHA1 hash of

    /Users/yidawang/Documents/buildboat/hunter/_testing/hunter.tar.gz

  does not match expected value

    expected: '6854b8abf9e391d3b40d23bbed298e3a36d9d050'
      actual: 'c5eced7e58ece8610d3340401b104900cf8a2183'
  1. Then continue with protobuf, the project directory should be changed:
export PROJECT_DIR=examples/Protobuf
export HUNTER_ROOT="`pwd`/lib_ios_protobuf/Hunter"
export TESTING_URL="`pwd`/lib_ios_protobuf/hunter.tar.gz"

Start compiling protobuf similarly to the OpenCV lib

cmake -H`pwd`/${PROJECT_DIR} -B`pwd`/_testing/_builds/${TOOLCHAIN} -GXcode -DCMAKE_TOOLCHAIN_FILE=${HUNTER_ROOT}/polly/${TOOLCHAIN}.cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DPOLLY_STATUS_DEBUG=ON -DHUNTER_STATUS_DEBUG=ON -DHUNTER_ROOT=${HUNTER_ROOT} -DTESTING_URL=${DTESTING_URL} -DTESTING_SHA1=b8b523e22b115f52b452b63fd9b6fe7c2e133aa6 -DHUNTER_RUN_INSTALL=ON