mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-06-19 04:15:06 +00:00
When platform changes, clean build dirs
This commit is contained in:
parent
a35c88c8fd
commit
8099312fbc
32
device.py
32
device.py
@ -1,5 +1,7 @@
|
|||||||
import configparser
|
import configparser
|
||||||
|
import glob
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
from configparser import ConfigParser
|
from configparser import ConfigParser
|
||||||
|
|
||||||
@ -392,14 +394,42 @@ def write_properties(output_file, device_properties: ConfigParser, device_id: st
|
|||||||
write_custom_sdkconfig(output_file, device_properties)
|
write_custom_sdkconfig(output_file, device_properties)
|
||||||
write_lvgl_variables(output_file, device_properties)
|
write_lvgl_variables(output_file, device_properties)
|
||||||
|
|
||||||
|
def get_current_sdkconfig_target(sdkconfig_path: str):
|
||||||
|
if not os.path.isfile(sdkconfig_path):
|
||||||
|
return None
|
||||||
|
with open(sdkconfig_path, "r") as f:
|
||||||
|
for line in f:
|
||||||
|
if line.startswith("CONFIG_IDF_TARGET="):
|
||||||
|
return line.split("=", 1)[1].strip().strip('"')
|
||||||
|
return None
|
||||||
|
|
||||||
|
def clean_build_dirs_on_platform_change(previous_target: str, new_target: str):
|
||||||
|
if previous_target is None or previous_target == new_target:
|
||||||
|
return
|
||||||
|
dirs_to_remove = []
|
||||||
|
if os.path.isdir("build"):
|
||||||
|
dirs_to_remove.append("build")
|
||||||
|
for d in glob.glob("cmake-build-*/"):
|
||||||
|
dirs_to_remove.append(d.rstrip("/"))
|
||||||
|
if not dirs_to_remove:
|
||||||
|
return
|
||||||
|
print(f"Platform changed ({previous_target} -> {new_target}), removing build dirs:")
|
||||||
|
for d in dirs_to_remove:
|
||||||
|
print(f" {d}")
|
||||||
|
shutil.rmtree(d)
|
||||||
|
|
||||||
def main(device_id: str, is_dev: bool):
|
def main(device_id: str, is_dev: bool):
|
||||||
device_properties_path = get_properties_file_path(device_id)
|
device_properties_path = get_properties_file_path(device_id)
|
||||||
if not os.path.isfile(device_properties_path):
|
if not os.path.isfile(device_properties_path):
|
||||||
exit_with_error(f"{device_id} is not a valid device identifier (could not found {device_properties_path})")
|
exit_with_error(f"{device_id} is not a valid device identifier (could not found {device_properties_path})")
|
||||||
output_file_path = "sdkconfig"
|
output_file_path = "sdkconfig"
|
||||||
|
# Clean build dirs if target changes
|
||||||
|
device_properties = read_device_properties(device_id)
|
||||||
|
new_target = get_property_or_exit(device_properties, "hardware", "target").lower()
|
||||||
|
sdkconfig_target = get_current_sdkconfig_target(output_file_path)
|
||||||
|
clean_build_dirs_on_platform_change(sdkconfig_target, new_target)
|
||||||
if os.path.isfile(output_file_path):
|
if os.path.isfile(output_file_path):
|
||||||
os.remove(output_file_path)
|
os.remove(output_file_path)
|
||||||
device_properties = read_device_properties(device_id)
|
|
||||||
with open(output_file_path, "w") as output_file:
|
with open(output_file_path, "w") as output_file:
|
||||||
write_properties(output_file, device_properties, device_id, is_dev)
|
write_properties(output_file, device_properties, device_id, is_dev)
|
||||||
if is_dev:
|
if is_dev:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user