Commit Graph

103 Commits

Author SHA1 Message Date
Francisco Ferreira ff77000d93 waf: support changing board to build without re-configure
This allows to use the board option when building as long as it has been configured before

As we don't want to force configuration of all boards each single time, auto-configuration support now has to be done per-board
2018-11-13 10:30:34 +11:00
Andrew Tridgell 4eb867efc2 waf: always link AP_LandingGear
needed for RC_Channel
2018-11-09 14:35:14 +11:00
Peter Barker 7c0e5b9929 waf: include AC_Avoid on all vehicles 2018-10-30 12:10:42 +11:00
Michael du Breuil 5192376c85 Tools: Don't generally build scripting unless requested 2018-10-09 10:08:52 +11:00
Michael du Breuil 33d4e09d60 Tools: Add lua source to waf 2018-10-09 10:08:52 +11:00
Michael du Breuil 580c9d6ad9 Tools: Add waf scripting configure option 2018-10-09 10:08:52 +11:00
Peter Barker 4915c72f10 Tools: add sprayer to standard libraries 2018-08-17 15:33:35 +09:00
Andrew Tridgell f73ca2a6ba waf: speed up the bootloader build
don't need to build all libraries
2018-06-24 15:57:51 +10:00
Peter Barker 09a9abb3a8 Tools: include AP_RTC in all waf builds 2018-06-15 08:01:22 +10:00
Peter Barker 684482295e Tools: include Gripper in all builds 2018-06-11 19:07:39 +01:00
Michael du Breuil 82d486add0 Tools: Add proximity as a common library 2018-05-16 23:21:41 +01:00
Lucas De Marchi 73edda697d build: align help options
While it's aesthetically nice to start the help message in a new line
looking at the code, the first \n screws the output leaving them not
aligned.
2018-05-04 11:47:04 -07:00
Lucas De Marchi 4697089a82 build: move Linux configuration options to its own sections 2018-05-04 11:47:04 -07:00
Andrew Tridgell 5fb8fe927c waf: added AP_ROMFS to build 2018-04-17 08:44:44 +10:00
Andrew Tridgell 8eaac031af waf: added AP_BLHeli 2018-04-07 09:10:29 +10:00
Peter Barker 6dfdb19711 Tools: include VisualOdom in common vehicle libraries 2018-03-23 09:28:07 +09:00
Andrew Tridgell 5c259459ea waf: build with AP_TempCalibration 2018-02-08 17:36:33 +11:00
Andrew Tridgell 0258c5baf4 waf: added AP_Radio to build 2018-02-08 17:36:33 +11:00
Andrew Tridgell d7c62602ed waf: added AP_RCProtocol to list of libraries for all vehicles 2018-01-20 17:40:07 +11:00
Andrew Tridgell e026a408f3 waf: added AP_RAMTRON and AP_IOMCU to build 2018-01-15 11:46:02 +11:00
Andrew Tridgell 9869b98da3 waf: added ap_version_append_int()
used for date defines
2018-01-15 11:46:02 +11:00
Peter Barker c56529f39c Tools: waf: remove GCS_Console 2018-01-09 13:46:22 +00:00
Mark Whitehorn fd5039f8cd Tools: link SBusOut library 2017-11-30 10:20:04 +11:00
Andrew Tridgell 766a2a4bc0 Tools: link volz library 2017-11-21 14:10:54 +11:00
Lucas De Marchi cd81b27c05 build: protect ap_version.h from inclusion 2017-09-23 21:37:45 -07:00
Francisco Ferreira d41dd7e7e7
waf: add workaround for PE linker not removing unused methods 2017-08-15 21:51:08 +01:00
Peter Barker 7042d3e9c9 Global: all vehicles get AP_Relay and AP_ServoRelayEvent libraries 2017-07-17 00:06:31 +01:00
Andrew Tridgell d07d2d9a40 Tools: adapt to new RC_Channel API 2017-01-12 17:39:37 +11:00
Andrew Tridgell 35bed59bd4 Tools: Add EKF3 and remove EK1 2016-12-19 08:07:10 +11:00
Andrew Tridgell 7e0d904657 Tools: link in AP_FlashStorage 2016-12-02 09:49:39 +11:00
floaledm 8d0fd7cea8 Tools: add AP_Frsky_Telem 2016-11-08 07:42:39 +11:00
Gustavo Jose de Sousa 31965689cb waf: persist implicit dependency information across clean
Implicit dependency scanning takes significant time and, since it doesn't
produce files, it's okay to keep the resulting information across clean
commands as long as the scanner is triggered again if there's need to. This
commit accomplishes that.

The advantage of this approach can be observed by the following timings when
building the group "bin":

 Method                                                         Time
 ------------------------------------------------------------------------
 Fully clean build                                              5m18.633s
 Clean build with scanning result persisted                     4m23.346s
 Clean build with ccache but non-persistent scan results        1m40.125s
 Clean build with scanning results persisted and with ccache      14.843s

While at it, move management of information persisted across clean commands to
a separate module.
2016-08-24 10:46:23 -03:00
Gustavo Jose de Sousa ef4fd0e2d3 waf: add --clean-all-sigs option
Explanation on the option help string.
2016-08-24 10:46:23 -03:00
Gustavo Jose de Sousa 0b7a98d40c waf: allow persisting tasks signatures across clean commands
That allows some time consuming tasks that don't really produce anything on the
file system to keep their signature after a clean command is issued.
2016-08-24 10:46:23 -03:00
Gustavo Jose de Sousa a98c42fef9 waf: define ap_groups in ardupilotwaf tool
That makes more sense, since that module is supposed to have basic Ardupilot
specific features. The root wscript should be a mere user of those features.
2016-08-24 10:46:23 -03:00
Gustavo Jose de Sousa b8e518a533 waf: use ap_library tool
That way we avoid recompiling source files that don't depend on vehicles.
Change notes:
- UTILITY_SOURCE_EXTS: moved to ap_library
- Task generators indexes: ap_library handles that now and in a better way
- Use of AP_STLIB_FEATURES: it doesn't make sense anymore, since the stlib
  taskgen has empty source list
- Flags and defines: passed down to ap_library through AP_LIBRARIES_OBJECTS_KW
- Set use='mavlink' in AP_LIBRARIES_OBJECTS_KW instead of calls to
  bld.ap_stlib().
2016-08-24 10:46:23 -03:00
Gustavo Jose de Sousa 2e1ac0de8d waf: make get_legacy_defines() "public"
That function will be used by an upcoming separate tool.
2016-08-01 22:04:16 -03:00
Gustavo Jose de Sousa f2dec971e7 waf: add "ap_" prefix to keywords "libraries" and "vehicle"
As an effort to keep things specific to ardupilot API in the build system
consistent and easy way to identify.
2016-08-01 22:04:16 -03:00
Andrew Tridgell db8bf48747 build: added AP_ICEngine to build 2016-07-25 10:06:03 +10:00
Andrew Tridgell 241b6edfcf Build: added AP_Button to build 2016-07-22 15:01:20 +10:00
Andrew Tridgell d25db426a3 waf: added AP_Module to the build 2016-07-14 13:39:47 +10:00
Gustavo Jose de Sousa afcabda21c waf: use better style for add_option() calls
Setting the "help" keyword argument may not fit in one line sometimes. This
patch adds the following convention to calls to add_option() in order to
address that issue in a better way:

    1) The "help" keyword must always be the last argument to be passed.

    2) If the help string is a literal string or a literal string with some
    operation (e.g. "%" operator) and setting the "help" keyword in the code
    doesn't fit a line (considering the limit of characters in a line), then
    the help string must be a triple-quoted string. That has the advantage of
    not having to have several "+" operations for long help strings. In that
    case, the help message must start on the next line and the closing
    triple-quotes must be on a separate line together with the closing
    parenthesis.

The requirement (1) makes it easier to make the style exception in (2)
acceptable.
2016-05-25 17:47:00 -03:00
Gustavo Jose de Sousa 64b8ec61c7 waf: set lib as output dir for static libraries 2016-05-25 17:47:00 -03:00
Gustavo Jose de Sousa 236a62f4b9 waf: create program_dir directory
There's an upcoming patch that moves all static libraries to
`build/<board>/lib/`. That way, the program directory won't be created
automatically by the build system and that will cause problems for PX4 builds,
since it builds ardupilot programs as static libraries and copies stuff to the
program directory.
2016-05-25 17:47:00 -03:00
Gustavo Jose de Sousa 4529028c8a waf: ardupilotwaf: ap_get_all_libraries: ignore non-directory files
Each library in ardupilot is a folder with the source in. That avoids build
failures when there are files in libraries/. That fixes #4099 ("waf doesn't
seem to like TAGS files") and #4093 ("sim_vehicle.py /w waf /w eclipse project
broken on Cygwin").

That problem can be reproduced by just creating a file in libraries/ and trying
to build with waf.

There should be a better way to confirm a path is an ardupilot library. That
can be done later.
2016-05-12 13:47:44 -03:00
Andrew Tridgell fcd7611248 waf: ensure we don't build a library twice 2016-05-10 14:21:43 +10:00
Andrew Tridgell 9653aae21f waf: fixed link of antennatracker on windows 2016-05-10 12:48:41 +10:00
Andrew Tridgell 5ef0c4d3fe waf: added AP_RPM to build 2016-05-10 12:20:44 +10:00
Andrew Tridgell d1a2749317 waf: fixed build for AP_Tuning 2016-05-07 18:34:11 +10:00
Lucas De Marchi 9e3ec3a16d waf: define git versions in a generated ap_version.h header 2016-05-06 13:11:28 -03:00