blob: 881d3e1abd501f71cc0b7f4763cded388195ce1e [file] [log] [blame]
Alexander Afanasyev1160baa2014-04-10 18:50:29 -07001#! /usr/bin/env python
2# encoding: utf-8
3
4from waflib import Logs, Utils
5from waflib.Configure import conf
6
Alexander Afanasyev0cf887d2017-03-26 16:58:59 -05007OSX_SECURITY_CODE = '''
Alexander Afanasyev1160baa2014-04-10 18:50:29 -07008#include <CoreFoundation/CoreFoundation.h>
9#include <Security/Security.h>
10#include <Security/SecRandom.h>
11#include <CoreServices/CoreServices.h>
12#include <Security/SecDigestTransform.h>
Davide Pesavento7c02b472015-10-28 20:50:17 +010013int main() {}
Alexander Afanasyev1160baa2014-04-10 18:50:29 -070014'''
15
16@conf
Alexander Afanasyev0cf887d2017-03-26 16:58:59 -050017def check_osx_frameworks(conf, *k, **kw):
Alexander Afanasyev1160baa2014-04-10 18:50:29 -070018 if Utils.unversioned_sys_platform() == "darwin":
19 try:
20 conf.check_cxx(framework_name='CoreFoundation', uselib_store='OSX_COREFOUNDATION',
21 mandatory=True)
22 conf.check_cxx(framework_name='CoreServices', uselib_store='OSX_CORESERVICES',
23 mandatory=True)
24 conf.check_cxx(framework_name='Security', uselib_store='OSX_SECURITY',
Alexander Afanasyev0cf887d2017-03-26 16:58:59 -050025 use='OSX_COREFOUNDATION', fragment=OSX_SECURITY_CODE,
26 mandatory=True)
Alexander Afanasyev1160baa2014-04-10 18:50:29 -070027
Alexander Afanasyev0cf887d2017-03-26 16:58:59 -050028 conf.define('HAVE_OSX_FRAMEWORKS', 1)
29 conf.env['HAVE_OSX_FRAMEWORKS'] = True
Alexander Afanasyev1160baa2014-04-10 18:50:29 -070030 except:
Alexander Afanasyev0cf887d2017-03-26 16:58:59 -050031 Logs.warn("Compiling on OSX, but CoreFoundation, CoreServices, or Security " +
32 "framework is not functional.")
33 Logs.warn("The frameworks are known to work only with the Apple clang compiler")