13
0

Add build support for macOS/Sonoma

At some point in the not-too-distant-future we need
to simplify this and simply require Mojave/XCode 10 or later.
This commit is contained in:
Robin Gareus 2024-09-17 00:01:51 +02:00
parent 2d99ff9703
commit 09e9d7781b
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

16
wscript
View File

@ -471,6 +471,8 @@ int main() { return 0; }''',
conf.env['build_host'] = 'ventura'
elif re.search ("^23[.]", version) is not None:
conf.env['build_host'] = 'sonoma'
elif re.search ("^24[.]", version) is not None:
conf.env['build_host'] = 'sequoia'
else:
conf.env['build_host'] = 'irrelevant'
@ -512,6 +514,8 @@ int main() { return 0; }''',
conf.env['build_target'] = 'ventura'
elif re.search ("^23[.]", version) is not None:
conf.env['build_target'] = 'sonoma'
elif re.search ("^24[.]", version) is not None:
conf.env['build_target'] = 'sequoia'
else:
conf.env['build_target'] = 'catalina'
else:
@ -572,20 +576,20 @@ int main() { return 0; }''',
elif conf.options.cxx11:
conf.check_cxx(cxxflags=["-std=c++11"])
cxx_flags.append('-std=c++11')
elif conf.env['build_host'] in [ 'bigsur', 'monterey', 'ventura', 'sonoma' ]:
elif conf.env['build_host'] in [ 'bigsur', 'monterey', 'ventura', 'sonoma', 'sequoia' ]:
conf.check_cxx(cxxflags=["-std=c++17"])
cxx_flags.append('-std=c++17')
elif conf.env['build_host'] in [ 'mavericks', 'yosemite', 'el_capitan', 'sierra', 'high_sierra', 'mojave', 'catalina' ]:
conf.check_cxx(cxxflags=["-std=c++11"])
cxx_flags.append('-std=c++11')
if conf.options.cxx11 or conf.options.cxx17 or conf.env['build_host'] in [ 'mavericks', 'yosemite', 'el_capitan', 'sierra', 'high_sierra', 'mojave', 'catalina' , 'bigsur', 'monterey', 'ventura', 'sonoma' ]:
if conf.options.cxx11 or conf.options.cxx17 or conf.env['build_host'] in [ 'mavericks', 'yosemite', 'el_capitan', 'sierra', 'high_sierra', 'mojave', 'catalina' , 'bigsur', 'monterey', 'ventura', 'sonoma', 'sequoia' ]:
if platform == "darwin":
# Mavericks and later changed the syntax to be used when including Carbon headers,
# from requiring a full path to requiring just the header name.
cxx_flags.append('-DCARBON_FLAT_HEADERS')
if not opt.use_libcpp and not conf.env['build_host'] in [ 'yosemite', 'el_capitan', 'sierra', 'high_sierra', 'mojave', 'catalina', 'bigsur', 'monterey', 'ventura', 'sonoma' ]:
if not opt.use_libcpp and not conf.env['build_host'] in [ 'yosemite', 'el_capitan', 'sierra', 'high_sierra', 'mojave', 'catalina', 'bigsur', 'monterey', 'ventura', 'sonoma', 'sequoia' ]:
cxx_flags.append('--stdlib=libstdc++')
linker_flags.append('--stdlib=libstdc++')
# Prevents visibility issues in standard headers
@ -597,7 +601,7 @@ int main() { return 0; }''',
cxx_flags.append('-DBOOST_NO_AUTO_PTR')
cxx_flags.append('-DBOOST_BIND_GLOBAL_PLACEHOLDERS')
if (is_clang and platform == "darwin") or conf.env['build_host'] in [ 'mavericks', 'yosemite', 'el_capitan', 'sierra', 'high_sierra', 'mojave', 'catalina' , 'bigsur', 'monterey', 'ventura', 'sonoma' ]:
if (is_clang and platform == "darwin") or conf.env['build_host'] in [ 'mavericks', 'yosemite', 'el_capitan', 'sierra', 'high_sierra', 'mojave', 'catalina' , 'bigsur', 'monterey', 'ventura', 'sonoma', 'sequoia' ]:
# Silence warnings about the non-existing osx clang compiler flags
# -compatibility_version and -current_version. These are Waf
# generated and not needed with clang
@ -727,7 +731,7 @@ int main() { return 0; }''',
"-mmacosx-version-min=10.11"))
linker_flags.append("-mmacosx-version-min=10.11")
elif conf.env['build_target'] in ['bigsur', 'monterey', 'ventura', 'sonoma']:
elif conf.env['build_target'] in ['bigsur', 'monterey', 'ventura', 'sonoma', 'sequoia']:
compiler_flags.extend(
("-DMAC_OS_X_VERSION_MAX_ALLOWED=110000",
"-mmacosx-version-min=11.0"))
@ -1509,7 +1513,7 @@ int main () { __int128 x = 0; return 0; }
set_compiler_flags (conf, Options.options)
if sys.platform == 'darwin':
if conf.env['build_host'] not in [ 'mojave', 'catalina', 'bigsur', 'monterey', 'ventura', 'sonoma']:
if conf.env['build_host'] not in [ 'mojave', 'catalina', 'bigsur', 'monterey', 'ventura', 'sonoma', 'sequoia']:
conf.env.append_value('CXXFLAGS_OSX', '-F/System/Library/Frameworks')
conf.env.append_value('CXXFLAGS_OSX', '-F/Library/Frameworks')