build_framework.py 1.52 KB
Newer Older
wester committed
1 2 3 4 5 6
#!/usr/bin/env python
"""
The script builds OpenCV.framework for OSX.
"""

from __future__ import print_function
a  
Kai Westerkamp committed
7
import os, os.path, sys, argparse, traceback
wester committed
8 9 10 11 12 13 14 15 16 17

# import common code
sys.path.insert(0, os.path.abspath(os.path.abspath(os.path.dirname(__file__))+'/../ios'))
from build_framework import Builder

class OSXBuilder(Builder):

    def getToolchain(self, arch, target):
        return None

a  
Kai Westerkamp committed
18
    def getBuildCommand(self, arch, target):
wester committed
19 20
        buildcmd = [
            "xcodebuild",
a  
Kai Westerkamp committed
21
            "ARCHS=%s" % arch,
wester committed
22 23 24
            "-sdk", target.lower(),
            "-configuration", "Release",
            "-parallelizeTargets",
a  
Kai Westerkamp committed
25
            "-jobs", "4"
wester committed
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
        ]
        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)')
    args = parser.parse_args()

a  
Kai Westerkamp committed
41
    b = OSXBuilder(args.opencv, args.contrib,
wester committed
42
        [
a  
Kai Westerkamp committed
43
            ("x86_64", "MacOSX")
wester committed
44 45
        ])
    b.build(args.out)