diff --git a/CMakeLists.txt b/CMakeLists.txt index 4bf1e6705..6c9272b2c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,10 +15,15 @@ endif() if(DEFINED ENV{EDGETX_VERSION_TAG}) set(VERSION_TAG "$ENV{EDGETX_VERSION_TAG}") else() - if(DEFINED ENV{EDGETX_VERSION_SUFFIX}) - set(VERSION_SUFFIX "$ENV{EDGETX_VERSION_SUFFIX}") + if(DEFINED ENV{EDGETX_VERSION_PREFIX}) + set(VERSION_PREFIX "$ENV{EDGETX_VERSION_PREFIX}-") else() - set(VERSION_SUFFIX "selfbuild") # If not defined, set suffix to selfbuild + set(VERSION_PREFIX "pre-") # Default prefix for when not tagged + endif() + if(DEFINED ENV{EDGETX_VERSION_SUFFIX}) + set(VERSION_SUFFIX "-$ENV{EDGETX_VERSION_SUFFIX}") + else() + set(VERSION_SUFFIX "-selfbuild") # Default suffix for when not in automated build environments endif() endif() @@ -135,7 +140,7 @@ include(GenericDefinitions) if (VERSION_TAG) message(STATUS "EdgeTX ${VERSION_TAG} @ ${GIT_STR}") else() - message(STATUS "EdgeTX ${VERSION}-${VERSION_SUFFIX} @ ${GIT_STR}") + message(STATUS "EdgeTX ${VERSION_PREFIX}${VERSION}${VERSION_SUFFIX} @ ${GIT_STR}") endif() if(NATIVE_BUILD) diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index 6038d6b71..31cdd5acb 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -392,6 +392,10 @@ if(IFLIGHT_RELEASE) add_definitions(-DIFLIGHT_RELEASE) endif() +if(BETAFPV_RELEASE) + add_definitions(-DBETAFPV_RELEASE) +endif() + if(HARDWARE_TRAINER_MULTI) add_definitions(-DHARDWARE_TRAINER_MULTI) endif() @@ -657,11 +661,17 @@ else() endif() if(FIRMWARE_FORMAT_UF2) + if(VERSION_TAG) + set(UF2_VERSION_STRING "edgetx-${VERSION_TAG} (${GIT_STR})") + else() + set(UF2_VERSION_STRING "edgetx-${VERSION_PREFIX}${VERSION}${VERSION_SUFFIX} (${GIT_STR})") + endif() + add_custom_command( TARGET firmware POST_BUILD COMMAND ${PYTHON_EXECUTABLE} ${RADIO_DIRECTORY}/util/elf2uf2.py --reboot auto --device "${FLAVOUR}" - --version "edgetx-${VERSION}-${VERSION_SUFFIX} (${GIT_STR})" + --version "${UF2_VERSION_STRING}" -i firmware.elf firmware.uf2 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} VERBATIM diff --git a/radio/src/bootloader/boot.h b/radio/src/bootloader/boot.h index 4313e0af3..5c740a5a8 100644 --- a/radio/src/bootloader/boot.h +++ b/radio/src/bootloader/boot.h @@ -31,13 +31,13 @@ #if defined(VERSION_TAG) #define BOOTLOADER_TITLE " Bootloader - " VERSION_TAG #else - #define BOOTLOADER_TITLE " Bootloader " VERSION "-" VERSION_SUFFIX + #define BOOTLOADER_TITLE " Bootl." VERSION_PREFIX VERSION VERSION_SUFFIX #endif #else #if defined(VERSION_TAG) #define BOOTLOADER_TITLE " EdgeTX Bootloader - " VERSION_TAG #else - #define BOOTLOADER_TITLE " EdgeTX Bootloader - " VERSION "-" VERSION_SUFFIX + #define BOOTLOADER_TITLE " EdgeTX Bootloader - " VERSION_PREFIX VERSION VERSION_SUFFIX #endif #endif diff --git a/radio/src/gui/128x64/view_about.cpp b/radio/src/gui/128x64/view_about.cpp index 5c5f44d98..85a72b721 100644 --- a/radio/src/gui/128x64/view_about.cpp +++ b/radio/src/gui/128x64/view_about.cpp @@ -27,7 +27,7 @@ #if defined(VERSION_TAG) const char ABOUT_VERSION_1[] = "EdgeTX " "(" VERSION_TAG ")" "\036\"" CODENAME "\""; #else -const char ABOUT_VERSION_1[] = "EdgeTX " "(" VERSION "-" VERSION_SUFFIX ")"; +const char ABOUT_VERSION_1[] = "EdgeTX " "(" VERSION_PREFIX VERSION VERSION_SUFFIX ")"; #endif const char ABOUT_VERSION_2[] = "Copyright (C) " BUILD_YEAR " EdgeTX"; const char ABOUT_VERSION_3[] = "https://edgetx.org"; diff --git a/radio/src/gui/212x64/view_about.cpp b/radio/src/gui/212x64/view_about.cpp index 5c07e98b6..19afd8be8 100644 --- a/radio/src/gui/212x64/view_about.cpp +++ b/radio/src/gui/212x64/view_about.cpp @@ -27,7 +27,7 @@ #if defined(VERSION_TAG) const char ABOUT_VERSION_1[] = "EdgeTX " "\"" CODENAME "\"" " (" VERSION_TAG ")"; #else -const char ABOUT_VERSION_1[] = "EdgeTX " "(" VERSION "-" VERSION_SUFFIX ")"; +const char ABOUT_VERSION_1[] = "EdgeTX " "(" VERSION_PREFIX VERSION VERSION_SUFFIX ")"; #endif const char ABOUT_VERSION_2[] = "Copyright (C) " BUILD_YEAR " EdgeTX"; const char ABOUT_VERSION_3[] = "https://edgetx.org"; diff --git a/radio/src/gui/colorlcd/mainview/view_about.cpp b/radio/src/gui/colorlcd/mainview/view_about.cpp index 2394624c4..12403cc16 100644 --- a/radio/src/gui/colorlcd/mainview/view_about.cpp +++ b/radio/src/gui/colorlcd/mainview/view_about.cpp @@ -33,7 +33,7 @@ const std::string about_str = #else const std::string about_str = "EdgeTX" - " (" VERSION "-" VERSION_SUFFIX ")"; + " (" VERSION_PREFIX VERSION VERSION_SUFFIX ")"; #endif const std::string copyright_str = "Copyright (C) " BUILD_YEAR " EdgeTX"; const std::string edgetx_url = "https://edgetx.org"; diff --git a/radio/src/gui/colorlcd/startup_shutdown.cpp b/radio/src/gui/colorlcd/startup_shutdown.cpp index 0b8ef52c4..f65ee9f4b 100644 --- a/radio/src/gui/colorlcd/startup_shutdown.cpp +++ b/radio/src/gui/colorlcd/startup_shutdown.cpp @@ -28,12 +28,16 @@ extern void checkSpeakerVolume(); +constexpr const char* strip_leading_hyphen(const char* str) { + return (str[0] == '-') ? str + 1 : str; +} + #if defined(VERSION_TAG) const std::string ver_str = "" VERSION_TAG; const std::string nam_str = "" CODENAME; #else -const std::string ver_str = "" VERSION; -const std::string nam_str = "" VERSION_SUFFIX; +const std::string ver_str = "" VERSION_PREFIX VERSION; +const std::string nam_str = strip_leading_hyphen("" VERSION_SUFFIX); const std::string git_str = "(" GIT_STR ")"; #endif diff --git a/radio/src/stamp.cpp b/radio/src/stamp.cpp index a68a88347..e92175dbb 100644 --- a/radio/src/stamp.cpp +++ b/radio/src/stamp.cpp @@ -31,45 +31,46 @@ #define TAB "\037\033" #if defined(FRSKY_RELEASE) -#define DISPLAY_VERSION "-frsky" +#define FACTORY_RELEASE "-frsky" #elif defined(JUMPER_RELEASE) -#define DISPLAY_VERSION "-jumper" +#define FACTORY_RELEASE "-jumper" #elif defined(RADIOMASTER_RELEASE) -#define DISPLAY_VERSION "-RM" +#define FACTORY_RELEASE "-RM" #elif defined(IFLIGHT_RELEASE) -#define DISPLAY_VERSION "-IF" +#define FACTORY_RELEASE "-IF" #elif defined(TBS_RELEASE) -#define DISPLAY_VERSION "-tbs" +#define FACTORY_RELEASE "-tbs" #elif defined(IMRC_RELEASE) -#define DISPLAY_VERSION "-imrc" +#define FACTORY_RELEASE "-imrc" +#elif defined(BETAFPV_RELEASE) +#define FACTORY_RELEASE "-betafpv" +#endif + +// If factory release, append mfg tag to version +#ifdef FACTORY_RELEASE +#define WITH_FACTORY_RELEASE(base) base FACTORY_RELEASE #else -#define DISPLAY_VERSION +#define WITH_FACTORY_RELEASE(base) base #endif #if defined(COLORLCD) const char fw_stamp[] = "FW" TAB ": edgetx-" FLAVOUR; - #if defined(RADIOMASTER_RELEASE) || defined(JUMPER_RELEASE) + #if defined(VERSION_TAG) // tagged release, possibly mfg build + const char vers_stamp[] = "VERS" TAB ": " WITH_FACTORY_RELEASE(VERSION_TAG) "\"" CODENAME "\""; + #elif defined(FACTORY_RELEASE) // mfg build of non-tagged release, show commit hash only const char vers_stamp[] = "VERS" TAB ": Factory firmware (" GIT_STR ")"; - #else - #if defined(VERSION_TAG) - const char vers_stamp[] = "VERS" TAB ": " VERSION_TAG DISPLAY_VERSION "\"" CODENAME "\""; - #else - const char vers_stamp[] = "VERS" TAB ": " VERSION "-" VERSION_SUFFIX DISPLAY_VERSION " (" GIT_STR ")"; - #endif + #else // any other build (e.g. self, cloud, PR, nightly) will have prefix/suffix + const char vers_stamp[] = "VERS" TAB ": " VERSION_PREFIX VERSION VERSION_SUFFIX " (" GIT_STR ")"; #endif const char date_stamp[] = "DATE" TAB ": " DATE; const char time_stamp[] = "TIME" TAB ": " TIME; -#elif defined(BOARD_NAME) - const char vers_stamp[] = "FW" TAB ": edgetx-" BOARD_NAME "\036VERS" TAB ": " VERSION DISPLAY_VERSION " (" GIT_STR ")" "\036DATE" TAB ": " DATE " " TIME; -#elif defined(RADIOMASTER_RELEASE) - const char vers_stamp[] = "FW" TAB ": edgetx-" FLAVOUR "\036VERS" TAB ": RM Factory (" GIT_STR ")" "\036BUILT BY : EdgeTX" "\036DATE" TAB ": " DATE " " TIME; -#elif defined(JUMPER_RELEASE) || defined(IFLIGHT_RELEASE) - const char vers_stamp[] = "FW" TAB ": edgetx-" FLAVOUR "\036VERS" TAB ": Factory (" GIT_STR ")" "\036BUILT BY : EdgeTX" "\036DATE" TAB ": " DATE " " TIME; -#else +#else // B&W / !COLOR_LCD #if defined(VERSION_TAG) - const char vers_stamp[] = "FW" TAB ": edgetx-" FLAVOUR "\036VERS" TAB ": " VERSION_TAG DISPLAY_VERSION "\036NAME" ": " CODENAME "\036DATE" TAB ": " DATE " " TIME; + const char vers_stamp[] = "FW" TAB ": edgetx-" FLAVOUR "\036VERS" TAB ": " WITH_FACTORY_RELEASE(VERSION_TAG) "\036NAME" ": " CODENAME "\036DATE" TAB ": " DATE " " TIME; + #elif defined(FACTORY_RELEASE) + const char vers_stamp[] = "FW" TAB ": edgetx-" FLAVOUR "\036VERS" TAB ": Factory (" GIT_STR ")" "\036BUILT BY : EdgeTX" "\036DATE" TAB ": " DATE " " TIME; #else - const char vers_stamp[] = "FW" TAB ": edgetx-" FLAVOUR "\036VERS" TAB ": " VERSION "-" VERSION_SUFFIX DISPLAY_VERSION "\036GIT#" TAB ": " GIT_STR "\036DATE" TAB ": " DATE " " TIME; + const char vers_stamp[] = "FW" TAB ": edgetx-" FLAVOUR "\036VERS" TAB ": " VERSION_PREFIX VERSION VERSION_SUFFIX "\036GIT#" TAB ": " GIT_STR "\036DATE" TAB ": " DATE " " TIME; #endif #endif @@ -80,16 +81,16 @@ #if defined(STM32) && !defined(SIMU) #if defined(COLORLCD) #if defined(VERSION_TAG) -__SECTION_USED(".fwversiondata") const char firmware_version[] = "edgetx-" FLAVOUR "-" VERSION_TAG DISPLAY_VERSION " (" GIT_STR ")"; -__SECTION_USED(".bootversiondata") const char boot_version[] = "edgetx-" FLAVOUR "-" VERSION_TAG DISPLAY_VERSION " (" GIT_STR ")"; +__SECTION_USED(".fwversiondata") const char firmware_version[] = "edgetx-" FLAVOUR "-" WITH_FACTORY_RELEASE(VERSION_TAG) " (" GIT_STR ")"; +__SECTION_USED(".bootversiondata") const char boot_version[] = "edgetx-" FLAVOUR "-" WITH_FACTORY_RELEASE(VERSION_TAG) " (" GIT_STR ")"; #else -__SECTION_USED(".fwversiondata") const char firmware_version[] = "edgetx-" FLAVOUR "-" VERSION "-" VERSION_SUFFIX DISPLAY_VERSION " (" GIT_STR ")"; -__SECTION_USED(".bootversiondata") const char boot_version[] = "edgetx-" FLAVOUR "-" VERSION "-" VERSION_SUFFIX DISPLAY_VERSION " (" GIT_STR ")"; +__SECTION_USED(".fwversiondata") const char firmware_version[] = "edgetx-" FLAVOUR "-" VERSION_PREFIX WITH_FACTORY_RELEASE(VERSION) VERSION_SUFFIX " (" GIT_STR ")"; +__SECTION_USED(".bootversiondata") const char boot_version[] = "edgetx-" FLAVOUR "-" VERSION_PREFIX WITH_FACTORY_RELEASE(VERSION) VERSION_SUFFIX " (" GIT_STR ")"; #endif - #else + #else // B&W / !COLOR_LCD /* 128x64 does not have enough real estate to display more than basic VERSION */ -__SECTION_USED(".fwversiondata") const char firmware_version[] = "edgetx-" FLAVOUR "-" VERSION DISPLAY_VERSION " (" GIT_STR ")"; -__SECTION_USED(".bootversiondata") const char boot_version[] = "edgetx-" FLAVOUR "-" VERSION DISPLAY_VERSION " (" GIT_STR ")"; +__SECTION_USED(".fwversiondata") const char firmware_version[] = "edgetx-" FLAVOUR "-" VERSION_PREFIX WITH_FACTORY_RELEASE(VERSION) " (" GIT_STR ")"; +__SECTION_USED(".bootversiondata") const char boot_version[] = "edgetx-" FLAVOUR "-" VERSION_PREFIX WITH_FACTORY_RELEASE(VERSION) " (" GIT_STR ")"; #endif /** diff --git a/radio/src/stamp.h.in b/radio/src/stamp.h.in index eae73f752..53d4398c8 100644 --- a/radio/src/stamp.h.in +++ b/radio/src/stamp.h.in @@ -1,6 +1,7 @@ #define DATE "@DATE@" #define TIME "@TIME@" #define VERSION "@VERSION@" +#define VERSION_PREFIX "@VERSION_PREFIX@" #define VERSION_SUFFIX "@VERSION_SUFFIX@" #cmakedefine VERSION_TAG "@VERSION_TAG@" #define CODENAME "@CODENAME@" diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index 4ceec6dc0..d5dfddaec 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -455,7 +455,6 @@ elseif(PCB STREQUAL X9LITE) set(CPU_TYPE_FULL STM32F205xE) set(HAPTIC YES) set(FLAVOUR x9lite) - add_definitions(-DBOARD_NAME="x9lite") add_definitions(-DPCBX9LITE -DPCBX9 -DSOFTWARE_VOLUME -DHARDWARE_POWER_MANAGEMENT_UNIT) add_definitions(-DPWR_BUTTON_${PWR_BUTTON}) set(PXX2 ON) @@ -476,7 +475,6 @@ elseif(PCB STREQUAL X9LITES) set(CPU_TYPE_FULL STM32F205xE) set(HAPTIC YES) set(FLAVOUR x9lites) - add_definitions(-DBOARD_NAME="x9lites") add_definitions(-DPCBX9LITES -DPCBX9LITE -DPCBX9 -DSOFTWARE_VOLUME -DHARDWARE_POWER_MANAGEMENT_UNIT) add_definitions(-DPWR_BUTTON_${PWR_BUTTON}) set(PXX2 ON) diff --git a/tools/build-betafpv.py b/tools/build-betafpv.py index 3c0304087..0240e7e33 100755 --- a/tools/build-betafpv.py +++ b/tools/build-betafpv.py @@ -32,7 +32,7 @@ def build(board, translation, srcdir): os.mkdir("output") path = tempfile.mkdtemp() os.chdir(path) - command = "cmake %s -DTRANSLATIONS=%s -DJUMPER_RELEASE=YES %s" % (cmake_options, translation, srcdir) + command = "cmake %s -DTRANSLATIONS=%s -DBETAFPV_RELEASE=YES %s" % (cmake_options, translation, srcdir) print(command) os.system(command) os.system("make firmware -j16")