build: Add build dir to LIBPATH globally
[platform/upstream/iotivity.git] / build_common / darwin / SConscript
1 # -*- mode: python; python-indent-offset: 4; indent-tabs-mode: nil -*-
2 ##
3 # This script sets darwin specific flags (GNU GCC)
4 #
5 ##
6 import os
7 import platform
8 import commands
9 from distutils.version import StrictVersion
10
11 Import('env')
12
13 target_arch = env.get('TARGET_ARCH')
14 target_os = env.get('TARGET_OS')
15
16 tc_path = commands.getoutput('xcode-select -p')
17
18 tc_sdks = commands.getoutput('xcodebuild -showsdks')
19
20 # Find the SDK's that are installed
21 sdks = []
22 for line in tc_sdks.split('\n'):
23     if (line == ''):
24         bIn = False
25     if (line[:10] == 'OS X SDKs:'):
26         bIn = (target_os == 'darwin')
27     elif (line[:9] == 'iOS SDKs:'):
28         bIn = (target_os == 'ios')
29     elif bIn:
30         sdks.append(line[:14].strip())
31
32 # find the latest sdk
33 maxsdk = '0.0'
34 if len(sdks) > 0:
35     for sdk in sdks:
36         p = sdk.rsplit(' ', 1)[1]
37         if (StrictVersion(p)) > StrictVersion(maxsdk):
38             maxsdk = p
39
40 # SYS_VERSION build option
41 help_vars = Variables()
42 help_vars.Add('SYS_VERSION', 'MAC OS X SDK version / IOS SDK version',
43               os.environ.get('SYS_VERSION'))
44 help_vars.Update(env)
45 Help(help_vars.GenerateHelpText(env))
46
47 sys_version = env.get('SYS_VERSION')
48
49 # if they didn't explictly set it use the auto-detected one
50 if sys_version is None:
51     sys_version = maxsdk
52
53 env['SYS_VERSION'] = sys_version
54
55 # Set release/debug flags
56 if env.get('RELEASE'):
57     env.AppendUnique(CCFLAGS=['-Os'])
58     env.AppendUnique(CPPDEFINES=['NDEBUG'])
59 else:
60     env.AppendUnique(CCFLAGS=['-g'])
61     env.AppendUnique(LINKFLAGS=['-g'])
62
63 if env.get('LOGGING'):
64     env.AppendUnique(CPPDEFINES=['TB_LOG'])
65
66 if env.get('SECURED') == '1':
67     env.AppendUnique(LIBS=['mbedtls', 'mbedx509', 'mbedcrypto'])
68
69 if target_os == 'darwin':
70     sys_root = tc_path + '/Platforms/MacOSX.platform/Developer/SDKs/MacOSX' + sys_version + '.sdk/'
71 else:
72     if target_arch in ['i386', 'x86_64']:
73         sys_root = tc_path + '/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator' + sys_version + '.sdk/'
74     else:
75         sys_root = tc_path + '/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS' + sys_version + '.sdk/'
76
77 # Set arch flags
78 env.AppendUnique(CCFLAGS=['-arch', target_arch, '-isysroot', sys_root])
79 env.AppendUnique(LINKFLAGS=['-arch', target_arch, '-isysroot', sys_root])
80
81 if target_os == 'darwin':
82     flag = '-mmacosx-version-min=' + sys_version
83     env.AppendUnique(CCFLAGS=[flag])
84     env.AppendUnique(LINKFLAGS=[flag])