1234567891011121314151617181920212223242526272829303132333435363738 |
- # 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 {}
|