REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
build_distributor Namespace Reference

Variables

list interesting_fields = ["BOARD", "BUILD_TYPE"]
 
dict build_system = { k: env.Dictionary(k) for k in interesting_fields }
 
 build_flags = env.Dictionary('BUILD_FLAGS')
 
 lib_dir = pathlib.Path("./").resolve()
 
 rel_src_dir = lib_dir / pathlib.Path("src/build")
 
print warn = lambda msg("build_distributor.py: WARN ", msg)
 
 firmware_version = subprocess.getoutput("which git >/dev/null && git describe --tags || echo no-git-avail").strip()
 
 firmware_version_useful = bool(re.match(r"v\d+\.\d+(-\d+.*)?", firmware_version))
 
str not_available = "N/A"
 
 unix_timestamp = subprocess.getoutput("which git >/dev/null && git log -1 --format=%ct || echo failure").strip()
 
 firmware_version_date = datetime.datetime.fromtimestamp(int(unix_timestamp)).isoformat()
 
str rename_keys = '': {prefix+k+suffix:v for k,v in dct.items()}
 
 distdb
 
 nl
 
 quote
 
esc = lambda s.replace(quote, '\\"')
 
str distdb_as_variables = "\n".join(f"const char {k}[] PROGMEM = {quote}{esc(v)}{quote};" for k,v in distdb.items())
 
str distdb_variable_lookup = "\n".join(f" if(strcmp_P(key, (PGM_P)F({quote}{k}{quote}) )) return {k};" for k,v in distdb.items())
 
str distdb_as_defines = "\n".join(f"#define {k} {quote}{esc(v)}{quote}" for k,v in distdb.items())
 
distdb_as_json_string_esc = esc(json.dumps(distdb));
 
str distdb_as_json_defines = "\n".join(f" target[{quote}{k}{quote}] = {k};" for k,v in distdb.items())
 
dict code_files = {}
 

Variable Documentation

◆ build_flags

list build_distributor.build_flags = env.Dictionary('BUILD_FLAGS')

Definition at line 27 of file build_distributor.py.

◆ build_system

dict build_distributor.build_system = { k: env.Dictionary(k) for k in interesting_fields }

Definition at line 26 of file build_distributor.py.

◆ code_files

dict build_distributor.code_files = {}

Definition at line 103 of file build_distributor.py.

◆ distdb

build_distributor.distdb
Initial value:
1= dict(
2 OEM = "anabrid",
3 OEM_MODEL_NAME = "LUCIDAC",
4
5 BUILD_SYSTEM_NAME = "pio",
6 **rename_keys(build_system, prefix="BUILD_SYSTEM_"),
7 BUILD_FLAGS = " ".join(build_flags),
8
9 FIRMWARE_VERSION = firmware_version,
10 FIRMWARE_DATE = firmware_version_date,
11
12 #PROTOCOL_VERSION = "0.0.2", # FIXME
13 #PROTOCOL_DATE = firmware_version_date, # FIXME
14)

Definition at line 73 of file build_distributor.py.

◆ distdb_as_defines

str build_distributor.distdb_as_defines = "\n".join(f"#define {k} {quote}{esc(v)}{quote}" for k,v in distdb.items())

Definition at line 99 of file build_distributor.py.

◆ distdb_as_json_defines

str build_distributor.distdb_as_json_defines = "\n".join(f" target[{quote}{k}{quote}] = {k};" for k,v in distdb.items())

Definition at line 101 of file build_distributor.py.

◆ distdb_as_json_string_esc

s build_distributor.distdb_as_json_string_esc = esc(json.dumps(distdb));

Definition at line 100 of file build_distributor.py.

◆ distdb_as_variables

str build_distributor.distdb_as_variables = "\n".join(f"const char {k}[] PROGMEM = {quote}{esc(v)}{quote};" for k,v in distdb.items())

Definition at line 97 of file build_distributor.py.

◆ distdb_variable_lookup

str build_distributor.distdb_variable_lookup = "\n".join(f" if(strcmp_P(key, (PGM_P)F({quote}{k}{quote}) )) return {k};" for k,v in distdb.items())

Definition at line 98 of file build_distributor.py.

◆ esc

s build_distributor.esc = lambda s.replace(quote, '\\"')

Definition at line 95 of file build_distributor.py.

◆ firmware_version

build_distributor.firmware_version = subprocess.getoutput("which git >/dev/null && git describe --tags || echo no-git-avail").strip()

Definition at line 51 of file build_distributor.py.

◆ firmware_version_date

str build_distributor.firmware_version_date = datetime.datetime.fromtimestamp(int(unix_timestamp)).isoformat()

Definition at line 60 of file build_distributor.py.

◆ firmware_version_useful

build_distributor.firmware_version_useful = bool(re.match(r"v\d+\.\d+(-\d+.*)?", firmware_version))

Definition at line 52 of file build_distributor.py.

◆ interesting_fields

list build_distributor.interesting_fields = ["BOARD", "BUILD_TYPE"]

Definition at line 25 of file build_distributor.py.

◆ lib_dir

build_distributor.lib_dir = pathlib.Path("./").resolve()

Definition at line 41 of file build_distributor.py.

◆ nl

build_distributor.nl

Definition at line 94 of file build_distributor.py.

◆ not_available

str build_distributor.not_available = "N/A"

Definition at line 53 of file build_distributor.py.

◆ quote

build_distributor.quote

Definition at line 94 of file build_distributor.py.

◆ rel_src_dir

build_distributor.rel_src_dir = lib_dir / pathlib.Path("src/build")

Definition at line 42 of file build_distributor.py.

◆ rename_keys

str build_distributor.rename_keys = '': {prefix+k+suffix:v for k,v in dct.items()}

Definition at line 66 of file build_distributor.py.

◆ unix_timestamp

build_distributor.unix_timestamp = subprocess.getoutput("which git >/dev/null && git log -1 --format=%ct || echo failure").strip()

Definition at line 59 of file build_distributor.py.

◆ warn

print build_distributor.warn = lambda msg("build_distributor.py: WARN ", msg)

Definition at line 46 of file build_distributor.py.