Gustavo Jose de Sousa
95848488e7
waf: boards: define PX4 boards
2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa
658bead862
waf: px4: add initial implementation
...
The initial implementation defines only the pre-build task generators.
2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa
7ba3df8c80
Tools: waf: build Replay only for linux boards
...
Other boards (like PX4 ones) aren't supported yet.
2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa
841771096d
waf: let toolchain loading in charge of the Board class
...
That allows boards (i.e. subclasses of Board) to use toolchain related
information for configuration. The upcoming PX4 build is an example.
2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa
b7e3071ba3
waf: gtest: disable for PX4 boards
...
Google Test code uses functions signatures not implemented by the current
toolchain for PX4.
2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa
6753b54b52
waf: git_submodule: support recursive submodules
2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa
d57851e2a9
waf: git_submodule: add function git_submodule_head_hash
2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa
33fce2bfe5
waf: ardupilotwaf: add option --upload
...
That option can (and will by PX4) be used by platforms that support uploading
programs to a connected device.
2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa
0329cb14ed
waf: ardupilotwaf: export program_name and program_group
...
Export those values to the task generators, so that other tools may use it.
2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa
45d1af8833
waf: ardupilotwaf: allow to build ap_program as a static library
...
In the upcoming build for PX4 boards, we will pass down the program a single
static library to PX4 Firmware's cmake build system. This patch is partially
providing a way to do that: the configuration for PX4 will define the
AP_PROGRAM_AS_STLIB environment variable.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
32402b93af
waf: ardupilotwaf: remove SITL from common libraries
...
Only SITL port uses it and using it for PX4 raises compilation errors.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
03c067921e
waf: ardupilotwaf: allow extra features for ap_program and ap_stlib
...
That allows tweak programs and static libraries builds for different
configurations.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
12946db4dc
waf: ardupilotwaf: remove common_features()
...
The function ap_program() was the only one that was using it, so let's just
inline it. Besides, the name was misleading, since the (only) feature added was
for programs instead of general task generators.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
9c5593ef09
waf: ardupilotwaf: don't use common_features() unnecessarily
...
That function is already used in ap_program().
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
8664c0344d
waf: allow boards to tweak build
...
We define a function build() that can be overrode by Board subclasses.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
1fe795f283
waf: boards: set Board as an abstract board
...
Let's have a unified way to do that - no need for checking the board name
anymore.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
93156e4325
waf: boards: allow defining abstract boards
...
That avoids instantiation of wrong board classes and also listing invalid board
names in the help message.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
b53f38bb02
waf: boards: cache board in a variable
...
That allows subsequent calls to get_board() to work nicely, with no need of
instantiating a board on every single call.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
36b49debf6
waf: boards: allow defining board name
...
If the name is not defined, then the class name will be used.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
4f55c75767
waf: boards: pass configure context to configure_env()
...
There will be cases when the configuration context will be needed.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
2f324c056f
waf: cmake: live output!
...
Waf buffers command output and spit it after the command is done. For external
builds, that might give the wrong impression that the build stalled.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
1f60e9e3e8
waf: cmake: refactor methods to accept cmake_config parameter
...
That makes methods more flexible for use.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
b0e7fe26d5
waf: cmake: fix target processing for cmake_build
...
Accept passing a single Node object to target option.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
07700a821c
waf: cmake: add method get_cmake_bldnode()
...
That allows a user to have access to the cmake build node before the configure
task generator is posted.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
b077613f28
waf: cmake: use BLUE color for cmake tasks
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
03146c5d15
waf: cmake: move cmake build task creation to a function
...
That enables other tools to create the task directly.
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
049abec55b
waf: cmake: add keyword parameter cmake_output_patterns
2016-03-14 11:54:30 -03:00
Gustavo Jose de Sousa
4f82120c8f
waf: cmake: improve documentation regarding target option
...
That feature can also be used within wscripts with no problem. The code added
in the example shows that.
2016-03-14 11:54:29 -03:00
Grant Morphett
0d9a3840d8
autotest: Added submodule update and removed old modules update
...
Firstly build.All was failing as the submodules had not been updated
so the 'git submodule update' in this commit resovles that.
Secondly, now that the dependant projects like PX4Firmware etc are git
submodules of ardupilot we no longer need to check them out separately
and update them so I have removed all those.
I left MAVProxy as it isn't a submodule of ardupilot.
2016-03-08 11:40:48 +11:00
Gustavo Jose de Sousa
86c1c6da5c
waf: fix environment boolean values
...
It is more natural to use `env.FOO = True` then `env.foo = [True]`.
2016-03-03 14:58:03 -03:00
Gustavo Jose de Sousa
79b724dce8
waf: ardupilotwaf: fix board env processing
...
Two things are fixed with this patch:
1. We sort dictionaries' keys if they aren't OrderedDict instances. Since
dict objects don't guarantee order, environment variables may have contents
in wrong order, causing unnecessary rebuilds.
2. We only use prepend_value() if there's already a value set for the key
and that value is list. Before this change, boards couldn't set
non-iterable values.
2016-03-03 14:58:03 -03:00
Lucas De Marchi
cca8a86962
Tools: Use GCC 4.9 as an Ubuntu prereq
...
This should actually use the install-prereq script so we don't duplicate
effort on the maintenance of these scripts. But let's at least install
the correct version for now.
2016-02-29 17:00:27 -03:00
Fredrik Hedberg
e88e8835b1
Tools: Use GCC 4.9 as an Ubuntu prereq as older version is no longer available.
2016-02-29 16:58:48 -03:00
Gustavo Jose de Sousa
1233022c78
waf: cmake: synchronize cmake build tasks of same configuration
...
Running cmake build tasks of the same configuration in parallel my cause race
condition.
2016-02-27 03:15:45 -03:00
Gustavo Jose de Sousa
8734432196
waf: ardupilotwaf: don't use Node object for ap_program target
...
That will make platform specific naming be ignored. We use a string instead, to
let Waf tweak the target name correctly for us. The '#' prefix is to tell Waf
that the path is relative to bld.bldnode (instead of bld.path, which is the
default).
2016-02-27 03:13:08 -03:00
Staroselskii Georgii
1107190656
waf: boards: add navio2
2016-02-27 03:06:50 -03:00
Andrew Tridgell
15945c50cb
scripts: ensure we have clean build for px4
2016-02-24 19:33:16 +11:00
Gustavo Jose de Sousa
181b6f5c2e
waf: cmake: do a clean configuration
...
We need to remove CMakeCache.txt, otherwise cached variables would remain the
old value when they are removed from cmake_vars parameter.
We use `os.remove()` instead of `Node.delete()` because the latter removes the
node instance from its parent's children list. That makes the node be ignored
when storing persistent information after the build, thus the node signature
wouldn't be saved with that approach, which would make waf always think that
the task should be executed.
2016-02-22 15:36:48 -03:00
Gustavo Jose de Sousa
eacf9d8a0e
waf: cmake: declare CMAKE_BLD_DIR as a value dependency
...
Since we set that value to the task's cwd property, we need to declare it as a
value dependency of cmake_configure_task.
2016-02-22 15:36:48 -03:00
Gustavo Jose de Sousa
6c914349d0
waf: cmake: define proper uid() functions
...
The default implementation takes into account the task's output and input
nodes. That isn't very well applicable for cmake tasks, so we define proper
uid() methods.
2016-02-22 15:36:48 -03:00
Gustavo Jose de Sousa
b5f20459e7
waf: cmake: set CMakeCache.txt as output of cmake_configure task
...
That provides the behavior we implemented in runnable_status(). Thus, we don't
have to override that method anymore.
2016-02-22 15:36:48 -03:00
Gustavo Jose de Sousa
ed288ed345
waf: cmake: ensure order of cmake_vars
...
We need to ensure the order in which the variables are defined to avoid
unnecessary execution of the configuration task.
2016-02-22 15:36:48 -03:00
Gustavo Jose de Sousa
c609b27afc
waf: gbenchmark: use cmake tool
...
A little addition in the root wscript was also necessary.
2016-02-22 15:36:48 -03:00
Gustavo Jose de Sousa
e883242c31
waf: cmake: add Waf tool
2016-02-22 15:36:48 -03:00
Gustavo Jose de Sousa
38da32853a
ci: use --enable-benchmarks in waf configure
2016-02-22 15:36:48 -03:00
Gustavo Jose de Sousa
662e45fda2
waf: move --check-verbose option declaration
...
We move it to the correct "scope", that is, ardupilotwaf.py, where it's really
used.
2016-02-22 15:36:48 -03:00
Gustavo Jose de Sousa
8c4d4f3f2a
waf: make options groups accessible for any tool
...
That allows options being declared where they're really used. Additionally, we
load ardupilotwaf after the other tools so that we can create our groups after
all non-ardupilot option groups are created. That makes our groups appear as
the last ones in the help message, which makes it easier to locate them.
2016-02-22 15:36:48 -03:00
Kevin Guest
17378bd42a
autotest: Add Rotherham
2016-02-22 16:21:16 +11:00
Andrew Tridgell
119cf6bb13
ci: added sitltest target
...
this adds some basic SITL testing to our CI
2016-02-22 12:34:32 +11:00
Gustavo Jose de Sousa
898c2faaab
waf: git_submodule: fix uid() method for python3
...
Python3's hashlib.md5() requires Unicode-objects to be encoded before hashing.
2016-02-19 20:28:03 -02:00