39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
# Copyright (c) 2021 The Linux Foundation
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
from west import log
|
|
|
|
# Parse a CMakeCache file and return a dict of key:value (discarding
|
|
# type hints).
|
|
def parseCMakeCacheFile(filePath):
|
|
log.dbg(f"parsing CMake cache file at {filePath}")
|
|
kv = {}
|
|
try:
|
|
with open(filePath, "r") as f:
|
|
# should be a short file, so we'll use readlines
|
|
lines = f.readlines()
|
|
|
|
# walk through and look for non-comment, non-empty lines
|
|
for line in lines:
|
|
sline = line.strip()
|
|
if sline == "":
|
|
continue
|
|
if sline.startswith("#") or sline.startswith("//"):
|
|
continue
|
|
|
|
# parse out : and = characters
|
|
pline1 = sline.split(":", maxsplit=1)
|
|
if len(pline1) != 2:
|
|
continue
|
|
pline2 = pline1[1].split("=", maxsplit=1)
|
|
if len(pline2) != 2:
|
|
continue
|
|
kv[pline1[0]] = pline2[1]
|
|
|
|
return kv
|
|
|
|
except OSError as e:
|
|
log.err(f"Error loading {filePath}: {str(e)}")
|
|
return {}
|