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")