tools: fix idf.py to be able to select a generator for build

This commit is contained in:
Roland Dobai 2020-03-05 14:53:47 +01:00
parent 2241dda536
commit 570653bc7b
2 changed files with 16 additions and 0 deletions

View file

@ -234,6 +234,19 @@ function run_tests()
(cd build && cmake -G "Unix Makefiles" .. && make) || failure "Make build failed"
assert_built ${APP_BINS} ${BOOTLOADER_BINS} ${PARTITION_BIN}
print_status "idf.py can build with Ninja"
clean_build_dir
idf.py -G Ninja build || failure "idf.py cannot build with Ninja"
grep "CMAKE_GENERATOR:INTERNAL=Ninja" build/CMakeCache.txt || failure "Ninja is not set in CMakeCache.txt"
assert_built ${APP_BINS} ${BOOTLOADER_BINS} ${PARTITION_BIN}
print_status "idf.py can build with Unix Makefiles"
clean_build_dir
mkdir build
idf.py -G "Unix Makefiles" build || failure "idf.py cannot build with Unix Makefiles"
grep "CMAKE_GENERATOR:INTERNAL=Unix Makefiles" build/CMakeCache.txt || failure "Unix Makefiles are not set in CMakeCache.txt"
assert_built ${APP_BINS} ${BOOTLOADER_BINS} ${PARTITION_BIN}
print_status "Can build with IDF_PATH set via cmake cache not environment"
clean_build_dir
${SED} -i.bak 's/ENV{IDF_PATH}/{IDF_PATH}/' CMakeLists.txt

View file

@ -193,6 +193,9 @@ def ensure_build_directory(args, prog_name, always_run_cmake=False):
os.remove(cache_path)
raise
# need to update cache so subsequent access in this method would reflect the result of the previous cmake run
cache = _parse_cmakecache(cache_path) if os.path.exists(cache_path) else {}
try:
generator = cache["CMAKE_GENERATOR"]
except KeyError: