Commit Graph

222 Commits (eda75fd02a27d0d26bbed4953abb19ed778a5a8c)

Author SHA1 Message Date
Jimmy Brisson 2d8cf737e4 Move resource scanning into it's own module 2018-07-16 14:10:21 -05:00
Jens Alfke 5543849ba4 Recognize ".cc" and ".hh" source file extensions
".cc" --> C++ source code
".hh" --> header

This change allows existing source code with this naming
convention (e.g. my company's) to be used in mbed.os projects.
2018-07-06 10:10:22 -07:00
Jimmy Brisson 95c33f7807 Include symbols in dumped build profiles
This will make incremental compile more complete, taking device_has and
inheritance hierarchy into account.
2018-06-28 15:05:23 -05:00
Cruz Monrreal dec43922ee
Merge pull request #7247 from theotherjimmy/toolchain-version-check
Tools: Check compiler version
2018-06-27 18:42:49 -05:00
Jimmy Brisson a775e6992e Refactor via files to use a common method 2018-06-26 08:44:37 -05:00
Cruz Monrreal 95d2b3d55c
Merge pull request #7133 from OpenNuvoton/nuvoton_support_tz_partition
Override ROM/RAM start/size for TrustZone targets
2018-06-21 17:49:47 -05:00
Jimmy Brisson 52e640fc1d Add Rom config info getter and rom defines
* MBED_ROM_START = start of current rom (independent of BL modes)
 * MBED_ROM_SIZE = size of current rom (independent of BL modes)
2018-06-20 10:47:04 -05:00
Jimmy Brisson 6f54a8fdd7 Check version of Mbed CLI compile 2018-06-18 14:03:09 -05:00
Jimmy Brisson 1d9fd830af Compute ARM_STD and ARM_MICRO labels with target attrs 2018-06-12 09:54:34 -05:00
Jimmy Brisson 09cdc0631d Move from tc constructor to config vars 2018-06-08 09:59:19 -05:00
ccli8 ae16aa2fb7 Fix overridden MBED_ROM_START/MBED_ROM_SIZE/MBED_RAM_START/MBED_RAM_SIZE don't pass to linker 2018-06-08 18:03:56 +08:00
Cruz Monrreal a25b9f390f
Merge pull request #6999 from evva-sfw/feature/extend_error_warning_msg_as_link
Extend feature which displays errors/warnings as Link
2018-06-07 10:11:23 -05:00
ccli8 58f1521623 Pass fixed SRAM information (MBED_RAM_START/MBED_RAM_SIZE) to compiler/linker
This fix relies on target configuration options (mbed_ram_start/mbed_ram_size) defined.
2018-06-06 09:49:44 +08:00
ccli8 f48f30ceb2 Pass fixed flash information (MBED_ROM_START/MBED_ROM_SIZE) to compiler/linker
This fix relies on target configuration options (mbed_rom_start/mbed_rom_size) defined.
2018-06-06 09:46:59 +08:00
Cruz Monrreal 4fcaa56b77
Merge pull request #6914 from 0xc0170/fix_build_notifier
build: fix notifier typo and passing to builds API
2018-06-05 10:59:47 -05:00
Cruz Monrreal II e65537790e Modified LazyDict to inherit from object instead of dict, and removed iteration over values.
Py3 no longer supports dictionaries that self-modify their item lists during iteration.
2018-06-04 09:21:43 -05:00
PHST af1e482f52 Correct Bug 2018-05-23 16:19:14 +02:00
PHST b9217d6be0 correct imports 2018-05-23 16:13:50 +02:00
PHST 03422a9df5 Extend show error/warning as Link
PR #6270 added a parameter which allows the user to decide in case of an error or warning to print the output as a link.
This extension of this option also prints the ARM-GCC output in a link format.
2018-05-23 15:40:00 +02:00
Martin Kojtal 0bbfc6199c build: fix notifier typo and passing to builds API
Notifier should be passed to build libs functions, otherwise it's
none and fails.

Missing notify object in toolchain also fixed.
2018-05-16 13:30:06 +01:00
Bartek Szatkowski 00a321846d Rename __DOMAIN_NS to DOMAIN_NS to match CMSIS 2018-05-14 12:18:21 +01:00
Cruz Monrreal 53d3c4344f
Merge pull request #6781 from theotherjimmy/refactor-notify
tools: Refactor notification API
2018-05-07 10:48:48 -05:00
Jimmy Brisson d338e672de Apply subtract basepath to features
A bug, #6755, was the result of the `subtract_basepath` function not
being applied to a resources object's children (it's features). This PR
fixes this bug by moving this functionality into the resources class.
Then, I applied the `subtract_basepath` method to the children resource
objects recursively. This has been tested on Partnerbeta and is to
upstream the fix.
2018-05-03 08:54:55 -05:00
Jimmy Brisson fcf7dbf4c6 Use notification API in BL modes 2018-04-26 09:54:01 -05:00
Jimmy Brisson 56ec4677b5 Clean up notifier API usage in compilers 2018-04-26 09:35:47 -05:00
Jimmy Brisson 3bd691a342 Move terminal notifier to it's own file 2018-04-26 09:04:26 -05:00
Jimmy Brisson 72beee7e90 Refactor notification logic into it's own class 2018-04-26 09:04:26 -05:00
Jimmy Brisson 018596446e Exclude files like `.main.cpp` from builds 2018-04-03 11:23:42 -05:00
Cruz Monrreal 0828727643
Merge pull request #6270 from evva-sfw/error_warning_msg_as_link
Add parameter in tools settings to show error/warning as Link
2018-03-15 11:49:33 -05:00
Cruz Monrreal b84627feab
Merge pull request #6146 from theotherjimmy/fix-m33-fp
Correct gcc m33 floating point handling
2018-03-06 08:20:20 -06:00
PHST 3e59bdcbf5 Add parameter in tools settings to show error/warning as Link
Per default mbed compile prints errors/warnings on output not in a link format, therefore it is not possible to click, i.e. in an IDE, on the errors/warnings and jump to the position in the file.

The settings parameter lets you decide in witch format do you want to have it.
If it is enabled then the output will look like:
[Error/Warning] [absolute\path\to\file.ext]:[line]:[column]: [msg]

with this format nearly every common known IDE can deal with this link and lets you jump to the file
2018-03-05 15:44:49 +01:00
Jimmy Brisson c29207a4f4 Correct gcc m33 floating point handling 2018-03-01 09:40:47 -06:00
Cruz Monrreal 8b6a7aacc5
Merge pull request #6229 from hug-dev/fix-elf-output-extension
Fix a bug using ELF as output extension
2018-02-27 16:32:40 -06:00
Hugues de Valon b0027c1e81 Fix a bug using ELF as output extension
When overriding the OUTPUT_EXT variable in compilation configuration,
bugs appear:

* The bin variable is not None as the 'elf' string is not interned.
* When that is fixed, the function returns None instead of returning the
path of the ELF file.

Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
2018-02-27 14:08:02 +00:00
Jimmy Brisson 166a463639 Correct single file excludes for some exporters 2018-02-20 12:09:11 -06:00
Jimmy Brisson db4c380b2b Python2+3: build_travis.py and Travis tests 2018-02-05 11:07:37 -06:00
Jimmy Brisson 1dd39fbe80 Python2+3: mbed test --compile 2018-02-05 11:07:37 -06:00
Jimmy Brisson c93a2bfa4c Python2+3: Use absolute import where possible 2018-02-05 11:07:37 -06:00
Jimmy Brisson cca4425af6 Python2+3: iteritems -> items 2018-02-05 11:04:36 -06:00
Jimmy Brisson 7abeec9744 Python2+3: clean argparse 2018-02-05 11:04:35 -06:00
Jimmy Brisson 10a91216f5 Python2+3: The rest of mbed compile 2018-02-05 11:04:01 -06:00
Jimmy Brisson 380ecb1b0e Python2+3: working through many has_attr exceptions 2018-02-05 11:04:01 -06:00
Jimmy Brisson 68737f2762 Python2+3: Things import 2018-02-05 11:03:44 -06:00
Jimmy Brisson a92d0df4ae Move region adding to mbedToolchain 2018-01-31 10:04:34 -06:00
Joris Aerts d3f6ea4ed2 Fix for #5676 make.py generates duplicate file entries in link_files.txt 2017-12-21 13:53:19 +01:00
Christopher Haster 9fd6c5ae56 Fix behaviour of empty .mbedignore
Should ignore nothing, currently ignores everything
An empty .mbedignore is easy to create when tinkering with a local repo
2017-10-13 11:52:13 -05:00
Jimmy Brisson 58372d3fdf Allow ARMC6 to run post-binary-hooks marked for ARM 2017-09-13 14:50:06 -05:00
Anna Bridge 7b428916f5 Merge pull request #4949 from theotherjimmy/feature-armc5+armc6
NEW TOOLCHAIN: Add the ARMC6 Compiler
2017-09-13 10:39:15 +01:00
Jimmy Brisson e9d3166a5e Expose present get_compile_options API in Toolcahins 2017-09-11 13:20:32 -05:00
Jimmy Brisson 1fef5553b4 Parse deps the same for GCC_ARM and ARMC6 2017-09-11 13:17:54 -05:00
Jimmy Brisson 98b4768434 Initial toolchain class for ARMC6
While ARMC6 does use the same linker (armlink) as ARM Compiler 5, it
is not compatible.

The reason for this incompatibility are twofold:
 * armlink may invoke the C preprocessor by adding a shebang
   (`#!`) to the top of their input files.
 * ARMC6 and ARMC5 differ in how you invoke the preprocessor:
   * ARMC5: `#! armcc -E`
   * ARMC6: `#! armclang -E`

This forces the tools to rewrite the shebang if it's wrong.

This does not yet handle dependencies properly
2017-09-11 13:17:54 -05:00
Deepika 9422c351e4 Initial RTX and tools support for Cortex M-23/M-33 devices 2017-09-11 11:43:26 -05:00
Marcelo Salazar 5469be4de0 Fix to generate memory_usage key in report 2017-08-06 14:03:09 +01:00
Jimmy Brisson 8b31078d58 Add missing collect_include passing 2017-08-01 10:29:11 -05:00
Jimmy Brisson 2305a8c7e4 Merge pull request #4783 from theotherjimmy/refactor-exporter-ignores
Collect ignored directories in scan and use in exporters
2017-07-31 15:25:07 +00:00
Jimmy Brisson c8e6cf5bdd Collect ignores from scan resources and use in exporetrs 2017-07-26 14:31:22 -05:00
Jimmy Brisson 10a06a7083 Merge pull request #4733 from theotherjimmy/fix-old-builds
Prevent double define in very old builds
2017-07-17 11:07:59 -05:00
Martin Kojtal 441fda979d tools: fix toolchain extend inc paths
inc paths might be a list or might not be (just single string). If they don't, we are ending up with non valid include paths (one letter include paths).
This as result would not compile.
2017-07-12 16:24:06 +01:00
Jimmy Brisson d25560324c Prevent double define in very old builds
Partially reverts 2ddf4b33cb
2017-07-10 15:59:54 -05:00
Jimmy Brisson 99b37b28bb Merge pull request #4468 from moonchen/quote-include-paths
Put quotes around include files
2017-07-06 10:13:27 -05:00
Mo Chen 1b63202c27 Put quotes around include files
This fixes a problem when the path to include files have spaces.
See https://github.com/ARMmbed/mbed-os-example-uvisor/issues/31 for an
example of this problem.

Signed-off-by: Mo Chen <mo.chen@arm.com>
2017-06-20 14:00:38 -05:00
Jimmy Brisson bf1a69b9be Fill out remainder of LazyDict dict compatibility 2017-06-16 15:52:30 -05:00
Jimmy Brisson 7513d4f897 Correct len and iter operators for LazyDict 2017-06-16 15:28:10 -05:00
Jimmy Brisson 27c55d5c8d Delay relative_to and win_to_unix operations over features 2017-06-16 15:16:24 -05:00
Jimmy Brisson 85748dbd21 Delay feature scan until it's rquired 2017-06-16 14:58:58 -05:00
Jimmy Brisson 55801b619d Improve speed of .mbedignore processing 2017-06-16 13:36:56 -05:00
Jimmy Brisson 4806229090 Fix bug in dependency handling 2017-05-31 09:54:09 -05:00
Jimmy Brisson 3123a1d394 Switch dependencies to their respective CIL flags 2017-05-19 16:30:49 -05:00
Jimmy Brisson 5152c1c7ac Make object files depend on compiler flags 2017-05-19 16:29:55 -05:00
Sam Grove 94b67de439 Merge pull request #4202 from theotherjimmy/rom-size-injection
Add support for Unmanaged Bootloader
2017-05-18 09:34:13 -05:00
Sam Grove 943ef8648b Merge pull request #4325 from theotherjimmy/fix-unicode
Decode STDERR from compiler
2017-05-18 09:26:06 -05:00
Jimmy Brisson 4ed87e2f3c Decode STDERR from compiler 2017-05-15 14:13:50 -05:00
Bartek Szatkowski 2ddf4b33cb CMSIS5: Remove ARM7 support and targets 2017-05-12 13:48:43 -05:00
Jimmy Brisson 58167a2071 All C files depend on mbed_app.json 2017-05-11 14:20:09 -05:00
Jimmy Brisson bbde3797cb Make binary depend on config directly 2017-05-08 13:33:37 -05:00
Jimmy Brisson da9c10be48 Expand build reports in the tools 2017-04-20 11:03:15 -05:00
Jimmy Brisson 7c40343e74 Fix include paths for Windows builds 2017-04-11 14:26:14 -05:00
Sam Grove cef31a7fa6 Merge pull request #4106 from theotherjimmy/fix-typo-toolchain
Fix a scoping typo in toolchains
2017-04-10 10:51:07 -05:00
Jimmy Brisson d5ecd7adf8 Fix a scoping typo in toolchains 2017-04-03 15:43:22 -05:00
Jimmy Brisson 09afe23762 Upgrade OUTPUT_EXT and use it to pick binary type
targets.json contained a key for some targets, `OUTPUT_EXT`, which I
moved to `Target`, the root of all targets. Following on that, the tools
now use this extension provided by `OUTPUT_EXT` to determine the file
type of the output executable.
2017-03-29 16:46:21 -05:00
Jimmy Brisson d20bcba89b Remove static analysis scan
An earlier patch in this series relies on the assumption that all
toolchain construction goes through `prepare_toolchain`. This is still
not the case. The only remaining user of the `mbedToolchain` object that
does not go through `prepare_toolchain` is the static analysis scanner.
It's basically dead-code at this point. I say we remove it. So this
patch removes it.
2017-03-06 18:29:46 -06:00
Jimmy Brisson fbb6f71be8 Ignore build directory from scan resources
This is a bug fix for the following bug (Github issue #437):

If two builds were run specifying a non-default build folder, the second
build would fail to link with duplicate symbols and may not fit on the
device. The root of this problem is that these non-default build folders
are not ignored by scan-resources, and therefore included in the build.

We fix this bug by ignoring the build directory passed into the tools.
2017-03-06 17:10:57 -06:00
Jimmy Brisson 1d95604275 Remove GCC_CR
It has not worked since the introduction of build profiles
2017-02-16 15:03:24 -06:00
Jimmy Brisson c0f27597ec Add redirect support to toolchains
We create an API for generating the linker flags needed to redirect
functions in an application
2017-02-08 17:34:35 -06:00
Martin Kojtal 7316b89c1d Merge pull request #3600 from theotherjimmy/refactor-sys-libs
[toolchains] Refactor sys libs
2017-01-26 10:30:27 +02:00
Jimmy Brisson 81df273849 Move sys_libs into mbedToolchain class 2017-01-17 11:57:35 -06:00
Jimmy Brisson c14a5b94ec Add docstrings 2017-01-13 12:01:26 -06:00
Jimmy Brisson 39a5caacab Refactor scan resources to account for base_paths 2017-01-13 12:01:19 -06:00
Martin Kojtal 9a61ef0368 Fix DEBUG target keyword for GCC_ARM
Fixes mbed-cli#402 bug. -g flag was changed to g3, thus this caused
a regression in producing TARGET_DEBUG for GCC_ARM.
2016-12-06 11:32:45 +00:00
Jimmy Brisson c3915215e4 Allow dependency parsing to fail, gracefully continuing 2016-11-10 10:04:36 -06:00
Brian Daniels 0e4b841cb3 Removing need for memap to printed through toolchains 2016-10-11 18:24:01 -05:00
Brian Daniels 655c37715c Handling output of parallelized test building.
This makes use of the reports generated by the building of tests to
prevent output from interleaving when the build is parallelized. This
required some changes to memap to return a generated string from
the 'generate_output' function. I also had an option to stop the prints
from memap to prevent text from interleaving
2016-10-11 15:34:20 -05:00
Brian Daniels 14aff069b1 Modifying behavior of 'silent' option in toolchains
The 'silent' option has always been present in the toolchains API, however
it did not actually stop anything from being printed. Instead, it just
changed what was added to the build log. This make the 'silent' stop all
prints, but ensures that the output for the toolchain is still preserved
and accessible via the 'get_output' function.
2016-10-11 14:31:06 -05:00
Sam Grove 872363d809 Merge pull request #2854 from theotherjimmy/find-duplicates
[Tools] Find and report duplicates
2016-09-30 18:30:00 -05:00
Jimmy Brisson 5f8fbac56f Add documentation of exposed functions 2016-09-30 15:14:22 -05:00
Jimmy Brisson e012185602 Use toolchain notify for printing when finding dupes 2016-09-30 15:14:22 -05:00
Jimmy Brisson 9f7c82a37f Deduplicate find-duplicate functionality 2016-09-30 15:13:53 -05:00
Jimmy Brisson a85a384973 Add duplicate detection to project compilation 2016-09-30 15:13:53 -05:00
Jimmy Brisson e2b248a4aa Correct percent printing 2016-09-30 15:09:54 -05:00
Sam Grove 1047ab4562 Merge pull request #2834 from bridadan/memap-consolidate
[tools] Making memap output consistent across output formats
2016-09-30 14:59:31 -05:00