mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.9 KiB
58 lines
2.9 KiB
#!/usr/bin/env python |
|
""" |
|
The script builds OpenCV.framework for OSX. |
|
""" |
|
|
|
from __future__ import print_function |
|
import os, os.path, sys, argparse, traceback, multiprocessing |
|
|
|
# import common code |
|
sys.path.insert(0, os.path.abspath(os.path.abspath(os.path.dirname(__file__))+'/../ios')) |
|
from build_framework import Builder |
|
|
|
MACOSX_DEPLOYMENT_TARGET='10.12' # default, can be changed via command line options or environment variable |
|
|
|
class OSXBuilder(Builder): |
|
|
|
def getToolchain(self, arch, target): |
|
return None |
|
|
|
def getBuildCommand(self, archs, target): |
|
buildcmd = [ |
|
"xcodebuild", |
|
"MACOSX_DEPLOYMENT_TARGET=" + os.environ['MACOSX_DEPLOYMENT_TARGET'], |
|
"ARCHS=%s" % archs[0], |
|
"-sdk", target.lower(), |
|
"-configuration", "Debug" if self.debug else "Release", |
|
"-parallelizeTargets", |
|
"-jobs", str(multiprocessing.cpu_count()) |
|
] |
|
return buildcmd |
|
|
|
def getInfoPlist(self, builddirs): |
|
return os.path.join(builddirs[0], "osx", "Info.plist") |
|
|
|
|
|
if __name__ == "__main__": |
|
folder = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), "../..")) |
|
parser = argparse.ArgumentParser(description='The script builds OpenCV.framework for OSX.') |
|
parser.add_argument('out', metavar='OUTDIR', help='folder to put built framework') |
|
parser.add_argument('--opencv', metavar='DIR', default=folder, help='folder with opencv repository (default is "../.." relative to script location)') |
|
parser.add_argument('--contrib', metavar='DIR', default=None, help='folder with opencv_contrib repository (default is "None" - build only main framework)') |
|
parser.add_argument('--without', metavar='MODULE', default=[], action='append', help='OpenCV modules to exclude from the framework') |
|
parser.add_argument('--disable', metavar='FEATURE', default=[], action='append', help='OpenCV features to disable (add WITH_*=OFF)') |
|
parser.add_argument('--enable_nonfree', default=False, dest='enablenonfree', action='store_true', help='enable non-free modules (disabled by default)') |
|
parser.add_argument('--macosx_deployment_target', default=os.environ.get('MACOSX_DEPLOYMENT_TARGET', MACOSX_DEPLOYMENT_TARGET), help='specify MACOSX_DEPLOYMENT_TARGET') |
|
parser.add_argument('--debug', action='store_true', help='Build "Debug" binaries (CMAKE_BUILD_TYPE=Debug)') |
|
parser.add_argument('--debug_info', action='store_true', help='Build with debug information (useful for Release mode: BUILD_WITH_DEBUG_INFO=ON)') |
|
|
|
args = parser.parse_args() |
|
|
|
os.environ['MACOSX_DEPLOYMENT_TARGET'] = args.macosx_deployment_target |
|
print('Using MACOSX_DEPLOYMENT_TARGET=' + os.environ['MACOSX_DEPLOYMENT_TARGET']) |
|
|
|
b = OSXBuilder(args.opencv, args.contrib, False, False, args.without, args.disable, args.enablenonfree, |
|
[ |
|
(["x86_64"], "MacOSX") |
|
], args.debug, args.debug_info) |
|
b.build(args.out)
|
|
|