# -*- Python -*-

import os

# We specify the most commonly-used archs and platform versions in our tests
# here. Tests which need different settings can just append to this, as only
# the last value will be used.
#
# Note however that this does not apply to `-syslibroot`: each instance of that
# flag will append to the set of library roots. As such, we define a separate
# alias for each platform.

config.substitutions.append(('%lld-watchos',
    'ld64.lld -fatal_warnings -arch arm64_32 -platform_version watchos 7.0 8.0 -syslibroot ' +
    os.path.join(config.test_source_root, "MachO", "Inputs", "WatchOS.sdk")))

# Since most of our tests are written around x86_64, we give this platform the
# shortest substitution of "%lld".
lld = ('ld64.lld -arch x86_64 -platform_version macos 10.15 11.0 -syslibroot ' +
    os.path.join(config.test_source_root, "MachO", "Inputs", "MacOSX.sdk"))
config.substitutions.append(('%lld', lld + ' -fatal_warnings'))
config.substitutions.append(('%no_fatal_warnings_lld', lld))
