AntennaTracker: move version to a static member

We should never include version.h or ap_version.h headers directly
on a header since this will trigger a complete rebuild of the
codebase when we commit to the repository. The ap_version.h header
is auto-generated containing information from the current commit.

If we include it in a header, every other file that ends up including
that header (directly or indirectly) will need to be rebuilt. No
ccache's cache beats having to do nothing when the header is just
not included.

version.h contains information that is kept on a struct inside
each vehicle. Rather than using the macros from each vehicle,
the getter should be preferred, which returns an AP_FWVersion
referente.
This commit is contained in:
Lucas De Marchi 2017-09-12 11:25:20 -07:00
parent 9e7bda83bf
commit ecd204c45c
3 changed files with 44 additions and 12 deletions

View File

@ -18,7 +18,10 @@
*/
#include "Tracker.h"
#define FORCE_VERSION_H_INCLUDE
#include "version.h"
#undef FORCE_VERSION_H_INCLUDE
#define SCHED_TASK(func, _interval_ticks, _max_time_micros) SCHED_TASK_CLASS(Tracker, &tracker, func, _interval_ticks, _max_time_micros)

View File

@ -70,7 +70,6 @@
#include "Parameters.h"
#include "GCS_Mavlink.h"
#include "GCS_Tracker.h"
#include "version.h"
#if CONFIG_HAL_BOARD == HAL_BOARD_SITL
#include <SITL/SITL.h>
@ -84,17 +83,7 @@ public:
Tracker(void);
const AP_FWVersion fwver {
major: FW_MAJOR,
minor: FW_MINOR,
patch: FW_PATCH,
fw_type: FW_TYPE,
#ifndef GIT_VERSION
fw_string: THISFIRMWARE
#else
fw_string: THISFIRMWARE " (" GIT_VERSION ")"
#endif
};
static const AP_FWVersion fwver;
// HAL::Callbacks implementation.
void setup() override;

View File

@ -0,0 +1,40 @@
/*
* This file is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This file is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Tracker.h"
#define FORCE_VERSION_H_INCLUDE
#include "version.h"
#undef FORCE_VERSION_H_INCLUDE
#include <AP_Common/AP_FWVersion.h>
const AP_FWVersion Tracker::fwver{
.major = FW_MAJOR,
.minor = FW_MINOR,
.patch = FW_PATCH,
.fw_type = FW_TYPE,
#ifndef GIT_VERSION
.fw_string = THISFIRMWARE,
#else
.fw_string = THISFIRMWARE " (" GIT_VERSION ")",
.fw_hash_str = GIT_VERSION,
#endif
#ifdef PX4_GIT_VERSION
.middleware_hash_str = PX4_GIT_VERSION,
#endif
#ifdef NUTTX_GIT_VERSION
.os_hash_str = NUTTX_GIT_VERSION,
#endif
};