build: Change HAVE_OSX_SECURITY to a more general HAVE_OSX_FRAMEWORKS
We are starting to use more macOS frameworks and define/build
environment constant name needs to be more general.
Change-Id: I893d436a34c3370a7f12ac681d1796ef5631cc0e
diff --git a/.waf-tools/osx-frameworks.py b/.waf-tools/osx-frameworks.py
new file mode 100644
index 0000000..881d3e1
--- /dev/null
+++ b/.waf-tools/osx-frameworks.py
@@ -0,0 +1,33 @@
+#! /usr/bin/env python
+# encoding: utf-8
+
+from waflib import Logs, Utils
+from waflib.Configure import conf
+
+OSX_SECURITY_CODE = '''
+#include <CoreFoundation/CoreFoundation.h>
+#include <Security/Security.h>
+#include <Security/SecRandom.h>
+#include <CoreServices/CoreServices.h>
+#include <Security/SecDigestTransform.h>
+int main() {}
+'''
+
+@conf
+def check_osx_frameworks(conf, *k, **kw):
+ if Utils.unversioned_sys_platform() == "darwin":
+ try:
+ conf.check_cxx(framework_name='CoreFoundation', uselib_store='OSX_COREFOUNDATION',
+ mandatory=True)
+ conf.check_cxx(framework_name='CoreServices', uselib_store='OSX_CORESERVICES',
+ mandatory=True)
+ conf.check_cxx(framework_name='Security', uselib_store='OSX_SECURITY',
+ use='OSX_COREFOUNDATION', fragment=OSX_SECURITY_CODE,
+ mandatory=True)
+
+ conf.define('HAVE_OSX_FRAMEWORKS', 1)
+ conf.env['HAVE_OSX_FRAMEWORKS'] = True
+ except:
+ Logs.warn("Compiling on OSX, but CoreFoundation, CoreServices, or Security " +
+ "framework is not functional.")
+ Logs.warn("The frameworks are known to work only with the Apple clang compiler")