build+ci: support macOS on arm64
This commit also syncs the CI config and scripts with ndn-cxx
Change-Id: Ifc174313f673bae21f5c06fffb5fd70913a2f9b8
diff --git a/.waf-tools/boost.py b/.waf-tools/boost.py
index 4b2ede5..a6cdabe 100644
--- a/.waf-tools/boost.py
+++ b/.waf-tools/boost.py
@@ -54,8 +54,8 @@
from waflib.Configure import conf
from waflib.TaskGen import feature, after_method
-BOOST_LIBS = ['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/sw/lib', '/lib']
-BOOST_INCLUDES = ['/usr/include', '/usr/local/include', '/opt/local/include', '/sw/include']
+BOOST_LIBS = ['/usr/lib', '/usr/local/lib', '/opt/homebrew/lib', '/opt/local/lib', '/sw/lib', '/lib']
+BOOST_INCLUDES = ['/usr/include', '/usr/local/include', '/opt/homebrew/include', '/opt/local/include', '/sw/include']
BOOST_VERSION_FILE = 'boost/version.hpp'
BOOST_VERSION_CODE = '''
diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py
index 7c6d282..3ba2dc3 100644
--- a/.waf-tools/default-compiler-flags.py
+++ b/.waf-tools/default-compiler-flags.py
@@ -33,7 +33,7 @@
'The minimum supported clang version is 6.0.')
conf.flags = ClangFlags()
else:
- warnmsg = '%s compiler is unsupported' % cxx
+ warnmsg = f'{cxx} compiler is unsupported'
conf.flags = CompilerFlags()
if errmsg:
@@ -200,7 +200,8 @@
flags = super(ClangFlags, self).getGeneralFlags(conf)
if Utils.unversioned_sys_platform() == 'darwin':
# Bug #4296
- flags['CXXFLAGS'] += [['-isystem', '/usr/local/include'], # for Homebrew
+ brewdir = '/opt/homebrew' if platform.machine() == 'arm64' else '/usr/local'
+ flags['CXXFLAGS'] += [['-isystem', f'{brewdir}/include'], # for Homebrew
['-isystem', '/opt/local/include']] # for MacPorts
elif Utils.unversioned_sys_platform() == 'freebsd':
# Bug #4790
diff --git a/.waf-tools/openssl.py b/.waf-tools/openssl.py
index 47bda66..51521c4 100644
--- a/.waf-tools/openssl.py
+++ b/.waf-tools/openssl.py
@@ -19,8 +19,11 @@
from waflib import Utils
from waflib.Configure import conf
-OPENSSL_DIR_OSX = ['/usr/local', '/opt/local', '/usr/local/opt/openssl']
OPENSSL_DIR = ['/usr', '/usr/local', '/opt/local', '/sw']
+OPENSSL_DIR_MACOS = ['/usr/local',
+ '/opt/homebrew/opt/openssl', # Homebrew on arm64
+ '/usr/local/opt/openssl', # Homebrew on x86_64
+ '/opt/local'] # MacPorts
def options(opt):
opt.add_option('--with-openssl', type='string', default=None, dest='openssl_dir',
@@ -43,7 +46,7 @@
openssl_dirs = OPENSSL_DIR
if Utils.unversioned_sys_platform() == 'darwin':
- openssl_dirs = OPENSSL_DIR_OSX
+ openssl_dirs = OPENSSL_DIR_MACOS
for dir in openssl_dirs:
file = self.__openssl_get_version_file(dir)