# Using ARM compilers from Linux command line is tricky and
# not really well documented because they want you to use
# their IDE instead.
#
# First you need to do the full install with the IDE and set
# up license files et al. This may be possible from the command
# line.
#
# Then you need to do the following:
#
# Select toolchain by running /opt/arm/developmentstudio-2019.0/bin/select_default_toolchain
# Armcc is only available in toolchain version 5.
# Armclang is only available in toolchain version 6.
# Start shell with /opt/arm/developmentstudio-2019.0/bin/suite_exec zsh
# Now the compilers will work.

[binaries]
# we could set exe_wrapper = qemu-arm-static but to test the case
# when cross compiled binaries can't be run we don't do that
c = '/opt/arm/developmentstudio-2019.0/sw/ARMCompiler6.12/bin/armclang'
#c = '/opt/arm/developmentstudio-2019.0/sw/ARMCompiler5.06u6/bin/armcc'
#cpp = '/usr/bin/arm-linux-gnueabihf-g++'
ar = '/opt/arm/developmentstudio-2019.0/sw/ARMCompiler6.12/bin/armar'
#strip = '/usr/arm-linux-gnueabihf/bin/strip'
#pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'

[built-in options]
c_args = ['--target=aarch64-arm-none-eabi']

[host_machine]
system = 'baremetal'
cpu_family = 'arm'
cpu = 'armv7' # Not sure if correct.
endian = 'little'
