Commit Graph

146 Commits (f15f4fb76fc83f5176f17fbfce05cb5b761a2fac)

Author SHA1 Message Date
Russ Butler f15f4fb76f Only allow one thread on unsafe standard libs
When using a standard library which does not support multi-threading
allow only one thread to be used.  This allows the code to remain
safe.

This also pulls up on the mbed library to use this change:
df0c855df9...5acdad9fd7
2016-06-12 22:26:07 +01:00
Mihail Stoyanov c182b46fcd Ported changes from mbedmicro/mbed 2016-06-12 19:06:17 +01:00
Mihail Stoyanov 963892c83e Merge pull request #300 from geky/config-features
[build tools] Added support for cumulative attributes in configs directly
2016-06-12 00:13:09 +01:00
Christopher Haster 177f2930c2 [build tools] Added support for completely overriding cumulative attributes 2016-06-11 15:43:59 -05:00
Christopher Haster 2fa2e715fc [build tools] Moved cumulative attributes into target overrides
Attributes now get the filtering provided by target_overrides:
{
    "name": "cmsis-nodejs-SQL-x86",
    "target_overrides": {
        "*": {
            "device_has": ["SILLY_STRING", "FIRE"]
        },
        "SHOE": {
            "features_add": ["SMELLS_FUNNY"],
            "features_remove": ["SMELLS_NICE"],
        }
    }
}

per @screamerbg
2016-06-11 15:26:42 -05:00
Niklas Hauser 006f9c426c Wrap malloc_r, realloc_r and free_r functions for GCC 2016-06-11 15:42:47 +00:00
Mihail Stoyanov c1aab9ff84 Improve detected targets messages 2016-06-11 00:07:27 +01:00
Mihail Stoyanov fc04cfbb9d Add detect_targets.py script to list the connected target boards 2016-06-10 22:34:06 +01:00
Mihail Stoyanov 292fe9c0cf Add -S option to make.py to list all supported platforms 2016-06-10 22:14:08 +01:00
Mihail Stoyanov 4559dba014 Further unifications of exporters 2016-06-10 15:14:38 +01:00
Mihail Stoyanov aed88014af Unification of tools.
Ported changes from mbedmicro/mbed to ARMmbed/mbed-os
2016-06-10 15:13:52 +01:00
Christopher Haster 7678a16b39 [build tools] Added support for cumulative attributes in configs directly
in mbed_lib.json:
  {
    "name": "cmsis-nodejs-SQL-x86",
    "features_add": ["SMELLS_FUNNY"],
    "features_remove": ["SMELLS_NICE"],
    "device_has": ["SILLY_STRING", "FIRE"]
  }
2016-06-10 06:36:17 -05:00
Brian Daniels 6dbd39ca70 adding --continue-on-build-fail option to build_everything.py 2016-06-10 10:35:30 +01:00
Sam Grove 10936e2e5f Merge pull request #230 from mlnx/memap_improvements
Memap improvements
2016-06-09 22:16:44 +01:00
Sam Grove b3239a4da0 Merge pull request #221 from bridadan/test-building-changes
Test building behavior and log changes
2016-06-09 21:58:44 +01:00
Sam Grove 2d165d62a4 Merge pull request #262 from bridadan/update-test-walk-code
Adding .mbedignore logic to find_tests function
2016-06-09 21:00:48 +01:00
Mihail Stoyanov 92b88f4e4e Fixed all config tests to inherit the base Target 2016-06-09 17:20:02 +01:00
Mihail Stoyanov 76124f29a2 Rebase FEATURE_ functionality and apply device_has patch 2016-06-09 17:20:02 +01:00
Brian Daniels d101c74e25 Adding .mbedignore logic to find_tests function
Addresses issues #247 and #197
2016-06-09 17:09:23 +01:00
Bogdan Marinescu efed396682 Added support for configuration data in exporters
This commit integrates configuration data with exporters, in a similar
way to the integration in build_project or build_library in
tools/build_api.py.

Only a very simple test was done for this PR: define a configuration
parameter in the mbed_app.json of a blinky example, export it to uvision
and check if the corresponding macro made it into the project file. If
there are better tests to be performed, please let me know.
2016-06-08 18:13:10 +03:00
Marcelo Salazar ebb3f785ba Adding export in CSV format for the CI 2016-06-08 13:51:05 +01:00
Bogdan Marinescu 785699e1ca Automatically define uVisor labels
If the target doesn't specify that it supports uVisor, a special label
is defined to indicate the lack of uVisor support.
2016-06-08 12:28:34 +03:00
Marcelo Salazar f754b4325a Split Misc module into Misc/Fill 2016-06-08 01:37:25 +01:00
Marcelo Salazar 36f446b673 Simplified interface to memap 2016-06-08 01:34:31 +01:00
Marcelo Salazar aafd19992b Fixed pylint issues 2016-06-08 00:02:26 +01:00
Brian Daniels 71fe5e8665 Printing build summary at the end of build, as well as build log for failures 2016-06-07 13:24:25 +01:00
Brian Daniels da4a169752 Fixing issue with non-verbose error message for GCC
There was an issue when compiling with GCC_ARM, the tools would
print the incorrect file where the error was present. This modifies the
regular expression and matching logic used to find the error. This was
tested with the 4.9 q2 release of GCC ARM.
2016-06-07 13:17:59 +01:00
Brian Daniels 68cb86f61f Adding entry to build report, even if no update was needed 2016-06-07 13:17:58 +01:00
Brian Daniels e0c7e5fd89 Compiling tests stops on first failure by default, with option to continue 2016-06-07 13:17:51 +01:00
Martin Kojtal 07c3a108ef Merge pull request #218 from screamerbg/use-memap
Add memory analysis to mbed-os build system
2016-06-07 12:57:59 +01:00
Martin Kojtal 9b707292a4 Merge pull request #211 from bridadan/fix-test-list
Fix test listing
2016-06-07 12:55:03 +01:00
Bogdan Marinescu 9bbc532f4f Merge pull request #186 from screamerbg/library-build-fix
Fix the differences between how projects and libraries are built
2016-06-07 12:35:52 +01:00
Mihail Stoyanov 647ba3da89 Add memory analysis via https://github.com/ARMmbed/memap for every successful compile. Memap generates thorough output of the memory map files generated by ARMCC5, GCC_ARM and IAR. Also save json file of the printed data.
Deprecate the use of elftools which are no longer needed
2016-06-07 10:22:06 +01:00
Brian Daniels 9e012bb2c2 Fixing traceback when listing tests 2016-06-06 22:41:15 +01:00
Brian Daniels 427664c789 Passing verbose option to build apis in test.py 2016-06-06 12:31:13 +01:00
Martin Kojtal c6b51d7fe3 Merge pull request #204 from theotherjimmy/1830-counterpart
added support for features array to build tools
2016-06-06 10:23:02 +01:00
Martin Kojtal b1aba7f3c4 Merge pull request #170 from bridadan/build_everything
Adding a "build everything" script
2016-06-06 10:00:11 +01:00
Jimmy Brisson 90ecda6b73 added support for features array to toolchains 2016-06-03 16:18:59 -05:00
Bogdan Marinescu 6f1298b02b Added support for viewing the configuration
get_config.py can be used to view the configuration of the mbed project
that's being compiled:

- without '-v' it displays a simple list of configuration parameters and
  their values
- with '-v' it displays additional data for each configuration parameter
  (like the place of definition and the last place that set a value for
   the configuration parameter).

Tested by running "get_config.py" on a few tests from
tools/test/config_test.
2016-06-03 19:06:21 +03:00
Mihail Stoyanov 4060efc830 This fixes the differences between how projects and libraries are built (build_project() vs build_library()). Issue #181 2016-06-02 15:51:31 +01:00
Bogdan Marinescu 0549b1e7c5 Added tests for the configuration mechanism
The tests check a number of features of the configuration mechanism
(mostly the inheritance and overriding of configuration parameters), as
well as the behavarious in various abnormal situations.
2016-06-02 15:09:56 +03:00
Bogdan Marinescu d83dc27fcf Add configuration mechanism
This commit adds the implementation of the configuration mechanism and
applies it for two uses cases:

- building a program (build_project in build_api.py)
- building a library (build_library in build_api.py)

There's also a new method 'get_config' in build_api.py that's used to
return the configuration of a project. Currently, it's used only for
testing, the intention is to use it for the implementation of the 'mbed
config' command.

Tested with various test configurations on the "blinky" example and also
with its own set of tests (to be added in a separate commit).

'make.py' was modified to send the target *name* to build_project, as
opposed to the target *instance*. This is needed because the
coniguration mechanism allows for creating custom targets, but these
targets are not available until the configuration file
mbed_app_config.json is parsed, which happens in build_project (so
before make.py calls 'build_project'). The API of build_project didn't
change, it now accepts both target names and target instances for the
'target' argument.

Known issues:

- doesn't currently work when doing binary builds of the SDK. Currently,
  building the SDK is broken in mbed-os, so this will be added later.
- when building tests, the build process ends up calling
  'build_project', so the configuration mechanism should play well with
  tests. However, this wasn't tested.

A later commit will all documentation for the configuration mechanism.
2016-06-02 15:09:52 +03:00
Bogdan Marinescu 031cc7fbc5 Added scanning for JSON files in the resource scanner
Also added a method to add new macros to the toolchain instance.
Both of these changes are needed by the configuration mechanism.
2016-06-02 11:32:58 +03:00
Bogdan Marinescu 7c920259cc Improvements to the targets implementation
- added a method that can be used to new targets dynamically (this
  will be used by the configuration mechanism).
- the JSON parser now keeps the order of the keys read from the JSON
  file (will also be used by the configuration mechanism).
- there's now a global target cache in targets.py, so that a target
  with a given name will only be created once.
2016-06-02 11:32:58 +03:00
Brian Daniels f649a2a2a8 Making the default number of build jobs 0 (auto/fully parallel) 2016-06-01 09:07:20 -05:00
Brian Daniels 8877ac40f6 Adding a script to build mbed OS and all tests for all targets and toolchains 2016-05-31 17:34:02 -05:00
Brian Daniels a333ec8ef0 Fixing issue with binary name.
There was an issue where the binary name was incorrectly set when building
from any directory that isn't the project root. This fixes that issue by
first getting the absolute path, then finding the binary name using that.
2016-05-31 12:41:12 -05:00
Martin Kojtal 583ed4320d Merge pull request #155 from bridadan/fix-binary-naming
Fixing issue where project_name was an empty string
2016-05-30 10:36:32 +01:00
Russ Butler 3dac400d38 Pull in mbedmicro/mbed
Pull in mbedmicro/mbed.  Make the following changes in addition:
- Ignore unused directories in mbed
- Add stub mbed-drivers/mbed.h for backwards compatibility
- Remove targets.json and instead use mbed's version
2016-05-28 00:40:59 -05:00
Russ Butler aa3c0deb70 Merge pull request #156 from theotherjimmy/mbedignore-fix
check for .mbedignore in root of source folders
2016-05-27 15:36:25 -05:00