diff --git a/APMrover2/Rover.cpp b/APMrover2/Rover.cpp
index 3f3b9a60e5..f4ecf65387 100644
--- a/APMrover2/Rover.cpp
+++ b/APMrover2/Rover.cpp
@@ -17,7 +17,10 @@
*/
#include "Rover.h"
+
+#define FORCE_VERSION_H_INCLUDE
#include "version.h"
+#undef FORCE_VERSION_H_INCLUDE
Rover::Rover(void) :
param_loader(var_info),
diff --git a/APMrover2/Rover.h b/APMrover2/Rover.h
index 099d94bd6a..1b123aba2f 100644
--- a/APMrover2/Rover.h
+++ b/APMrover2/Rover.h
@@ -92,7 +92,6 @@
#include "Parameters.h"
#include "GCS_Mavlink.h"
#include "GCS_Rover.h"
-#include "version.h"
class Rover : public AP_HAL::HAL::Callbacks {
public:
@@ -119,18 +118,7 @@ public:
void loop(void) override;
private:
-
- 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;
// must be the first AP_Param variable declared to ensure its
// constructor runs before the constructors of the other AP_Param
diff --git a/APMrover2/version.cpp b/APMrover2/version.cpp
new file mode 100644
index 0000000000..9f6c7a2ce0
--- /dev/null
+++ b/APMrover2/version.cpp
@@ -0,0 +1,41 @@
+/*
+ * 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 .
+ */
+
+#include "Rover.h"
+
+#define FORCE_VERSION_H_INCLUDE
+#include "version.h"
+#undef FORCE_VERSION_H_INCLUDE
+
+#include
+
+const AP_FWVersion Rover::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
+};