Provide a function in each build profile module to set the toolchain
options. All the functions have the same interface therefore the
CMake source file including the module always calls the same
function regardless of which build profile module is actually
included.
When the `mbed-os` target is broken up into multiple libraries,
a library other than `mbed-os` might need to set the toolchain
options. This will be possible by simply including the module
and calling the function with the target and toolchain for which
to set the options.
Provide a function in each toolchain module to set the toolchain
specific options. All the functions have the same interface
therefore the CMake source file including the module always calls
the same function regardless of which toolchain module is actually
included.
When the `mbed-os` target is broken up into multiple libraries, a
library other than `mbed-os` might need to set the toolchain options.
This will be possible by simply including the module and calling the
function with the target for which to set the options.
Set `CMAKE_SYSTEM_PROCESSOR` in toolchain.cmake based on
`MBED_CPU_CORE`.
This information is needed by the ARM toolchain (and possibly other
toolchains), it therefore makes sense to set in `toolchain.cmake`.
Provide a function in each CPU core module to set toolchain options.
All the functions have the same interface therefore the CMake source
file including the module always calls the same function regardless
of which cpu core module is actually included.
When the `mbed-os` target is broken up into multiple libraries, a
library other than `mbed-os` might need to set the toolchain options.
This will be possible by simply including the module and calling the
function with the target and toolchain for which to set the options.
Use retarged version (nosys.specs) for Mbed OS. To resolve an issue with debug/develop profiles.
Otherwise we get kill or getpid errors from linker, as we use nosys lib but no specs defined.
This module was doing things that mbed-os and the application were supposed to do.
Moved the statements form the module to `mbed-os/CMakeLists.txt` and to
`<APPLICATION_ROOT>/CMakeLists.txt` .
Mbed OS also ensures the executable produced uses whatever name the application has set.
Added a command line option `-DMBEDIDE=ON` which allows using Arm
compiler shipped with Mbed Studio on local machines.
Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
Update arm compiler flags which were causing build failures.
Remove `-MMD` flag as it is not recognised by the Arm compiler.
There are no common flags between compiler, assembler and linker. The
compiler expects `-mcpu` whereas assembler and linker expects `--cpu`.
The `COMMON_FLAGS` in `cmake/toolchains/ARM.cmake` are not recognised by
assembler and linker.
Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
The script `cmake/env.cmake` enables languages and in the case of Arm
compiler, `CMAKE_SYSTEM_PROCESSOR` is expected to be set before a
language is enabled. `CMAKE_SYSTEM_PROCESSOR` is set in
`cmake/core.cmake`. Therefore, `cmake/core.cmake` is included before
`cmake/env.cmake`.
Similarly, `cmake/profile.cmake` sets compiler options, hence it is
included before enabling languages in `cmake/env.cmake`.
Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
The version number was required previously when ARM Compiler 5
and ARM Compiler 6 were both supported. There was a significant
underlying change between the two that justified having distinct
build options settinfgs. It is very unlikely that such a major change will happen
between ARM Compiler 6 and future versions. It is therefore also very unlikely
that distinct option settings for future versions will be needed.
We should therefore avoid appending version number the same way we do not
append it to GCC toolchain configuration settings.