Improve build and integrate firmware versioning

This commit is contained in:
2026-01-14 14:45:54 +01:00
parent eb73c573b4
commit c03b393cf5
6 changed files with 182 additions and 7 deletions

View File

@@ -5,11 +5,12 @@ import sys
import inspect
import gzip
import shutil
from datetime import datetime
Import("env")
GEN_DIR = 'lib/generated'
OWN_FILE = "extra_script.py"
OWN_FILE = "extra_pre.py"
INDEXJS = "index.js"
INDEXCSS = "index.css"
@@ -118,6 +119,7 @@ def join_files(target, filename, dirlist):
def prebuild(env):
print("#prebuild running")
#versfmt = env.GetProjectOption('versionformat')
# directory for dynamically generated files
gendir = os.path.join(basePath(), GEN_DIR)
@@ -159,6 +161,29 @@ def prebuild(env):
content += 'EMBED_GZ_FILE("{}", {}, "{}");\n'.format(*entry)
write_file_if_changed(os.path.join(gendir, EMBEDDED_INCLUDE), content)
print("#prescript...")
# prepare version information
versfmt = env.GetProjectOption('custom_versionformat')
if versfmt == 'DEVELOP':
print("Develop version style")
version = "dev"+datetime.now().strftime("%Y%m%d")
else:
print("Production version style")
version = env.GetProjectOption('custom_version')
now = datetime.utcnow()
env.Append(
CPPDEFINES=[
('FWVERSION', version),
("FWBUILDDATE", f"{now:%Y-%m-%d}"),
("FWBUILDTIME", f"{now:%H:%M:%S}"),
]
)
print("##prescript...")
prebuild(env)
# We are using our custom ESP-IDF firmware descriptor
env.Append(
LINKFLAGS = [ "-u", "custom_app_desc" ]
)