Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
3523e0a5
Commit
3523e0a5
authored
Oct 24, 2018
by
Alexander Alekhin
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #12921 from alalek:ios_xcode10
parents
2933b58a
9a76322e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
9 deletions
+27
-9
CMakeLists.txt
CMakeLists.txt
+2
-0
build_framework.py
platforms/ios/build_framework.py
+15
-5
common-ios-toolchain.cmake
platforms/ios/cmake/Toolchains/common-ios-toolchain.cmake
+10
-4
No files found.
CMakeLists.txt
View file @
3523e0a5
...
...
@@ -324,8 +324,10 @@ OCV_OPTION(ENABLE_OMIT_FRAME_POINTER "Enable -fomit-frame-pointer for GCC"
OCV_OPTION
(
ENABLE_POWERPC
"Enable PowerPC for GCC"
ON
IF
(
CV_GCC AND CMAKE_SYSTEM_PROCESSOR MATCHES powerpc.*
)
)
OCV_OPTION
(
ENABLE_VSX
"Enable POWER8 and above VSX (64-bit little-endian)"
ON
IF
((
CV_GCC OR CV_CLANG
)
AND PPC64LE
)
)
OCV_OPTION
(
ENABLE_FAST_MATH
"Enable -ffast-math (not recommended for GCC 4.6.x)"
OFF
IF
(
CV_GCC
AND
(
X86 OR X86_64
))
)
if
(
NOT IOS
)
# Use CPU_BASELINE instead
OCV_OPTION
(
ENABLE_NEON
"Enable NEON instructions"
(
NEON OR ANDROID_ARM_NEON OR AARCH64
)
IF
(
CV_GCC OR CV_CLANG
)
AND
(
ARM OR AARCH64 OR IOS
)
)
OCV_OPTION
(
ENABLE_VFPV3
"Enable VFPv3-D32 instructions"
OFF
IF
(
CV_GCC OR CV_CLANG
)
AND
(
ARM OR AARCH64 OR IOS
)
)
endif
()
OCV_OPTION
(
ENABLE_NOISY_WARNINGS
"Show all warnings even if they are too noisy"
OFF
)
OCV_OPTION
(
OPENCV_WARNINGS_ARE_ERRORS
"Treat warnings as errors"
OFF
)
OCV_OPTION
(
ANDROID_EXAMPLES_WITH_LIBS
"Build binaries of Android examples with native libraries"
OFF IF ANDROID
)
...
...
platforms/ios/build_framework.py
View file @
3523e0a5
...
...
@@ -31,8 +31,11 @@ from __future__ import print_function
import
glob
,
re
,
os
,
os
.
path
,
shutil
,
string
,
sys
,
argparse
,
traceback
,
multiprocessing
from
subprocess
import
check_call
,
check_output
,
CalledProcessError
IPHONEOS_DEPLOYMENT_TARGET
=
'8.0'
# default, can be changed via command line options or environemnt variable
def
execute
(
cmd
,
cwd
=
None
):
print
(
"Executing:
%
s in
%
s"
%
(
cmd
,
cwd
),
file
=
sys
.
stderr
)
print
(
'Executing: '
+
' '
.
join
(
cmd
))
retcode
=
check_call
(
cmd
,
cwd
=
cwd
)
if
retcode
!=
0
:
raise
Exception
(
"Child returned:"
,
retcode
)
...
...
@@ -149,7 +152,7 @@ class Builder:
if
self
.
dynamic
:
buildcmd
+=
[
"IPHONEOS_DEPLOYMENT_TARGET=
8.0"
,
"IPHONEOS_DEPLOYMENT_TARGET=
"
+
os
.
environ
[
'IPHONEOS_DEPLOYMENT_TARGET'
]
,
"ONLY_ACTIVE_ARCH=NO"
,
]
...
...
@@ -162,7 +165,7 @@ class Builder:
else
:
arch
=
";"
.
join
(
archs
)
buildcmd
+=
[
"IPHONEOS_DEPLOYMENT_TARGET=
6.0"
,
"IPHONEOS_DEPLOYMENT_TARGET=
"
+
os
.
environ
[
'IPHONEOS_DEPLOYMENT_TARGET'
]
,
"ARCHS=
%
s"
%
arch
,
]
...
...
@@ -184,7 +187,7 @@ class Builder:
cmakecmd
=
self
.
getCMakeArgs
(
arch
,
target
)
+
\
([
"-DCMAKE_TOOLCHAIN_FILE=
%
s"
%
toolchain
]
if
toolchain
is
not
None
else
[])
if
target
.
lower
()
.
startswith
(
"iphoneos"
):
cmakecmd
.
append
(
"-DCPU_BASELINE=
NEON;FP16
"
)
cmakecmd
.
append
(
"-DCPU_BASELINE=
DETECT
"
)
cmakecmd
.
append
(
self
.
opencv
)
cmakecmd
.
extend
(
cmakeargs
)
execute
(
cmakecmd
,
cwd
=
builddir
)
...
...
@@ -278,14 +281,21 @@ if __name__ == "__main__":
parser
.
add_argument
(
'--without'
,
metavar
=
'MODULE'
,
default
=
[],
action
=
'append'
,
help
=
'OpenCV modules to exclude from the framework'
)
parser
.
add_argument
(
'--dynamic'
,
default
=
False
,
action
=
'store_true'
,
help
=
'build dynamic framework (default is "False" - builds static framework)'
)
parser
.
add_argument
(
'--disable-bitcode'
,
default
=
False
,
dest
=
'bitcodedisabled'
,
action
=
'store_true'
,
help
=
'disable bitcode (enabled by default)'
)
parser
.
add_argument
(
'--iphoneos_deployment_target'
,
default
=
os
.
environ
.
get
(
'IPHONEOS_DEPLOYMENT_TARGET'
,
IPHONEOS_DEPLOYMENT_TARGET
),
help
=
'specify IPHONEOS_DEPLOYMENT_TARGET'
)
parser
.
add_argument
(
'--iphoneos_archs'
,
default
=
'armv7,armv7s,arm64'
,
help
=
'select iPhoneOS target ARCHS'
)
args
=
parser
.
parse_args
()
os
.
environ
[
'IPHONEOS_DEPLOYMENT_TARGET'
]
=
args
.
iphoneos_deployment_target
print
(
'Using IPHONEOS_DEPLOYMENT_TARGET='
+
os
.
environ
[
'IPHONEOS_DEPLOYMENT_TARGET'
])
iphoneos_archs
=
args
.
iphoneos_archs
.
split
(
','
)
print
(
'Using iPhoneOS ARCHS='
+
str
(
iphoneos_archs
))
b
=
iOSBuilder
(
args
.
opencv
,
args
.
contrib
,
args
.
dynamic
,
args
.
bitcodedisabled
,
args
.
without
,
[
(
[
"armv7s"
,
"arm64"
]
,
"iPhoneOS"
),
(
iphoneos_archs
,
"iPhoneOS"
),
]
if
os
.
environ
.
get
(
'BUILD_PRECOMMIT'
,
None
)
else
[
(
[
"armv7"
,
"armv7s"
,
"arm64"
]
,
"iPhoneOS"
),
(
iphoneos_archs
,
"iPhoneOS"
),
([
"i386"
,
"x86_64"
],
"iPhoneSimulator"
),
])
b
.
build
(
args
.
out
)
platforms/ios/cmake/Toolchains/common-ios-toolchain.cmake
View file @
3523e0a5
...
...
@@ -90,6 +90,13 @@ if(APPLE_FRAMEWORK AND NOT BUILD_SHARED_LIBS)
set
(
CMAKE_OSX_ARCHITECTURES
"
${
IOS_ARCH
}
"
CACHE INTERNAL
"Build architecture for iOS"
FORCE
)
endif
()
if
(
NOT DEFINED IPHONEOS_DEPLOYMENT_TARGET
)
if
(
NOT DEFINED ENV{IPHONEOS_DEPLOYMENT_TARGET}
)
message
(
FATAL_ERROR
"IPHONEOS_DEPLOYMENT_TARGET is not specified"
)
endif
()
set
(
IPHONEOS_DEPLOYMENT_TARGET
"$ENV{IPHONEOS_DEPLOYMENT_TARGET}"
)
endif
()
if
(
NOT __IN_TRY_COMPILE
)
set
(
_xcodebuild_wrapper
"
${
CMAKE_BINARY_DIR
}
/xcodebuild_wrapper"
)
if
(
NOT DEFINED CMAKE_MAKE_PROGRAM
)
# empty since CMake 3.10
...
...
@@ -103,14 +110,14 @@ if(NOT __IN_TRY_COMPILE)
if
(
APPLE_FRAMEWORK AND BUILD_SHARED_LIBS
)
set
(
_xcodebuild_wrapper_tmp
"
${
CMAKE_BINARY_DIR
}${
CMAKE_FILES_DIRECTORY
}
/xcodebuild_wrapper"
)
file
(
WRITE
"
${
_xcodebuild_wrapper_tmp
}
"
"#!/bin/sh
${
CMAKE_MAKE_PROGRAM
}
IPHONEOS_DEPLOYMENT_TARGET=
8.0
-sdk
${
CMAKE_OSX_SYSROOT
}
\$
*"
)
${
CMAKE_MAKE_PROGRAM
}
IPHONEOS_DEPLOYMENT_TARGET=
${
IPHONEOS_DEPLOYMENT_TARGET
}
-sdk
${
CMAKE_OSX_SYSROOT
}
\$
*"
)
# Make executable
file
(
COPY
"
${
_xcodebuild_wrapper_tmp
}
"
DESTINATION
${
CMAKE_BINARY_DIR
}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
set
(
CMAKE_MAKE_PROGRAM
"
${
_xcodebuild_wrapper
}
"
CACHE INTERNAL
""
FORCE
)
else
()
set
(
_xcodebuild_wrapper_tmp
"
${
CMAKE_BINARY_DIR
}${
CMAKE_FILES_DIRECTORY
}
/xcodebuild_wrapper"
)
file
(
WRITE
"
${
_xcodebuild_wrapper_tmp
}
"
"#!/bin/sh
${
CMAKE_MAKE_PROGRAM
}
IPHONEOS_DEPLOYMENT_TARGET=
6.0
ARCHS=
${
IOS_ARCH
}
-sdk
${
CMAKE_OSX_SYSROOT
}
\$
*"
)
${
CMAKE_MAKE_PROGRAM
}
IPHONEOS_DEPLOYMENT_TARGET=
${
IPHONEOS_DEPLOYMENT_TARGET
}
ARCHS=
${
IOS_ARCH
}
-sdk
${
CMAKE_OSX_SYSROOT
}
\$
*"
)
# Make executable
file
(
COPY
"
${
_xcodebuild_wrapper_tmp
}
"
DESTINATION
${
CMAKE_BINARY_DIR
}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
set
(
CMAKE_MAKE_PROGRAM
"
${
_xcodebuild_wrapper
}
"
CACHE INTERNAL
""
FORCE
)
...
...
@@ -162,4 +169,4 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
toolchain_save_config
(
IOS_ARCH
)
\ No newline at end of file
toolchain_save_config
(
IOS_ARCH IPHONEOS_DEPLOYMENT_TARGET
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment