From 570653bc7b88b590c855359ff5f000bc5ea765de Mon Sep 17 00:00:00 2001 From: Roland Dobai Date: Thu, 5 Mar 2020 14:53:47 +0100 Subject: [PATCH] tools: fix idf.py to be able to select a generator for build --- tools/ci/test_build_system_cmake.sh | 13 +++++++++++++ tools/idf_py_actions/tools.py | 3 +++ 2 files changed, 16 insertions(+) diff --git a/tools/ci/test_build_system_cmake.sh b/tools/ci/test_build_system_cmake.sh index abc4a5a55..1a74a3d82 100755 --- a/tools/ci/test_build_system_cmake.sh +++ b/tools/ci/test_build_system_cmake.sh @@ -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 diff --git a/tools/idf_py_actions/tools.py b/tools/idf_py_actions/tools.py index ca1e6cb02..c1d1d907f 100644 --- a/tools/idf_py_actions/tools.py +++ b/tools/idf_py_actions/tools.py @@ -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: