|  | # Copyright 2018 (c) Foundries.io. | 
|  | # | 
|  | # SPDX-License-Identifier: Apache-2.0 | 
|  |  | 
|  | '''Common definitions for building Zephyr applications. | 
|  |  | 
|  | This provides some default settings and convenience wrappers for | 
|  | building Zephyr applications needed by multiple commands. | 
|  |  | 
|  | See west.cmd.build for the build command itself. | 
|  | ''' | 
|  |  | 
|  | import cmake | 
|  | import log | 
|  |  | 
|  | DEFAULT_BUILD_DIR = 'build' | 
|  | '''Name of the default Zephyr build directory.''' | 
|  |  | 
|  | DEFAULT_CMAKE_GENERATOR = 'Ninja' | 
|  | '''Name of the default CMake generator.''' | 
|  |  | 
|  |  | 
|  | def is_zephyr_build(path): | 
|  | '''Return true if and only if `path` appears to be a valid Zephyr | 
|  | build directory. | 
|  |  | 
|  | "Valid" means the given path is a directory which contains a CMake | 
|  | cache with a 'ZEPHYR_TOOLCHAIN_VARIANT' key. | 
|  | ''' | 
|  | try: | 
|  | cache = cmake.CMakeCache.from_build_dir(path) | 
|  | except FileNotFoundError: | 
|  | cache = {} | 
|  |  | 
|  | if 'ZEPHYR_TOOLCHAIN_VARIANT' in cache: | 
|  | log.dbg('{} is a zephyr build directory'.format(path), | 
|  | level=log.VERBOSE_EXTREME) | 
|  | return True | 
|  | else: | 
|  | log.dbg('{} is NOT a valid zephyr build directory'.format(path), | 
|  | level=log.VERBOSE_EXTREME) | 
|  | return False |