1#!/usr/bin/env python 2""" 3This script runs OpenCV.framework tests for OSX. 4""" 5 6from __future__ import print_function 7import os, os.path, sys, argparse, traceback, multiprocessing 8 9# import common code 10sys.path.insert(0, os.path.abspath(os.path.abspath(os.path.dirname(__file__))+'/../ios')) 11from run_tests import TestRunner 12 13MACOSX_DEPLOYMENT_TARGET='10.12' # default, can be changed via command line options or environment variable 14 15class OSXTestRunner(TestRunner): 16 17 def getToolchain(self): 18 return None 19 20 def getCMakeArgs(self): 21 args = TestRunner.getCMakeArgs(self) 22 args = args + [ 23 '-DMACOSX_DEPLOYMENT_TARGET=%s' % os.environ['MACOSX_DEPLOYMENT_TARGET'] 24 ] 25 return args 26 27 28if __name__ == "__main__": 29 script_dir = os.path.abspath(os.path.dirname(sys.argv[0])) 30 parser = argparse.ArgumentParser(description='The script builds OpenCV.framework for OSX.') 31 parser.add_argument('tests_dir', metavar='TEST_DIR', help='folder where test files are located') 32 parser.add_argument('--build_dir', default=None, help='folder where test will be built (default is "../test_build" relative to tests_dir)') 33 parser.add_argument('--framework_dir', default=None, help='folder where OpenCV framework is located') 34 parser.add_argument('--framework_name', default='opencv2', help='Name of OpenCV framework (default: opencv2, will change to OpenCV in future version)') 35 parser.add_argument('--macosx_deployment_target', default=os.environ.get('MACOSX_DEPLOYMENT_TARGET', MACOSX_DEPLOYMENT_TARGET), help='specify MACOSX_DEPLOYMENT_TARGET') 36 parser.add_argument('--platform', default='macOS,arch=x86_64', help='xcodebuild platform parameter (default is macOS)') 37 38 args = parser.parse_args() 39 os.environ['MACOSX_DEPLOYMENT_TARGET'] = args.macosx_deployment_target 40 arch = "x86_64" 41 target = "macOS" 42 43 r = OSXTestRunner(script_dir, args.tests_dir, args.build_dir if args.build_dir else os.path.join(args.tests_dir, "../test_build"), args.framework_dir, args.framework_name, arch, target, args.platform) 44 r.run() 45