# 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'

[properties]

#c_args = ['--target=aarch64-arm-none-eabi']

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