Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
This commit is contained in:
66
tools/EVerest-main/applications/utils/scripts/config2cmake.py
Executable file
66
tools/EVerest-main/applications/utils/scripts/config2cmake.py
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright Pionix GmbH and Contributors to EVerest
|
||||
#
|
||||
"""
|
||||
author: kai-uwe.hermann@pionix.de
|
||||
Parse a EVerest config and return a CMake command line to build only those modules
|
||||
"""
|
||||
import argparse
|
||||
import yaml
|
||||
import sys
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def get_modules(config_yaml_path: Path):
|
||||
try:
|
||||
config = yaml.safe_load(config_yaml_path.read_text())
|
||||
module_names = set()
|
||||
for _key, value in config['active_modules'].items():
|
||||
module_names.add(value['module'])
|
||||
modules = ';'.join(sorted(module_names))
|
||||
return f'-DEVEREST_INCLUDE_MODULES="{modules}"'
|
||||
except yaml.YAMLError as err:
|
||||
raise Exception(f'Could not parse config file {config_yaml_path}') from err
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = argparse.ArgumentParser(
|
||||
description='parse EVerest configs and extract modules')
|
||||
|
||||
parser.add_argument('config',
|
||||
help='Path to EVerest config',
|
||||
nargs=1)
|
||||
parser.add_argument('--full',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='Set this flag if you want a full cmake command line (with "build" as default build-dir)')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
config_path = Path(args.config[0]).expanduser().resolve()
|
||||
|
||||
try:
|
||||
modules = get_modules(config_path)
|
||||
if args.full:
|
||||
print(f'cmake -S . -B build {modules}')
|
||||
else:
|
||||
print(modules)
|
||||
except Exception as err:
|
||||
print(f'Could not generate CMake command line: {err}')
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
return_value = 1
|
||||
try:
|
||||
return_value = main()
|
||||
except Exception as e:
|
||||
print(f'Error: {e}')
|
||||
return_value = 1
|
||||
sys.exit(return_value)
|
||||
Reference in New Issue
Block a user