I've created a project about a year ago that uses CMake only and not Ninja.
Coworkers followed instructions at https://docs.espressif.com/projects/esp ... setup.html an had problems building the project. So I was able to fix the problems and build successfully with Ninja, but not with the idf.py.
Problem: can not build/flash/monitor with idf.py with Ninja
Expected: Be able to use idf.py as before with Ninja
Suspected Cause: The 'cmake -G Ninja' command does not have the correct build directory setting. The generated files are being placed in the project directory not the build directory.
Here is what I did.
1. 'brew install cmake ninja dfu-util'
2. cd project root
3. idf.py clean
4. idf.py reconfigure
Now if I try to build with the idf.py I get an error:
brian@nova:~/local/motusi/dev/obc-app/app$ idf.py build
Executing action: all (aliases: build)
Running cmake in directory /Users/brian/local/motusi/dev/obc-app/app/build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DIDF_TARGET=esp32 -DCCACHE_ENABLE=0 /Users/brian/local/motusi/dev/obc-app/app"...
-- Component directory /Users/brian/local/motusi/esp-install-test/esp-idf/components/cmock does not contain a CMakeLists.txt file. No component will be added
-- Building ESP-IDF components for target esp32
Loading defaults file /Users/brian/local/motusi/dev/obc-app/app/sdkconfig.defaults...
** redact lots of lines **
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/brian/local/motusi/dev/obc-app/app
Running ninja in directory /Users/brian/local/motusi/dev/obc-app/app/build
Executing "ninja all"...
ninja: error: loading 'build.ninja': No such file or directory
ninja failed with exit code 1
If I follow the direct build with Ninja instructions Here is what I find:
brian@nova:~/local/motusi/dev/obc-app/app$ cd build
brian@nova:~/local/motusi/dev/obc-app/app/build$ cmake .. -G Ninja
-- Component directory /Users/brian/local/motusi/esp-install-test/esp-idf/components/cmock does not contain a CMakeLists.txt file. No component will be added
-- Building ESP-IDF components for target esp32
Loading defaults file /Users/brian/local/motusi/dev/obc-app/app/sdkconfig.defaults...
-- App "obc_app" version: 4
-- Adding linker script /Users/brian/local/motusi/esp-install-test/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-time.ld
-- Adding linker script /Users/brian/local/motusi/esp-install-test/esp-idf/components/esp_rom/esp32/ld/esp32.rom.ld
-- Adding linker script /Users/brian/local/motusi/esp-install-test/esp-idf/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
-- Adding linker script /Users/brian/local/motusi/esp-install-test/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-data.ld
-- Adding linker script /Users/brian/local/motusi/esp-install-test/esp-idf/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld
-- Adding linker script /Users/brian/local/motusi/esp-install-test/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
-- Adding linker script /Users/brian/local/motusi/dev/obc-app/app/esp-idf/esp32/esp32_out.ld
-- Adding linker script /Users/brian/local/motusi/esp-install-test/esp-idf/components/esp32/ld/esp32.project.ld.in
-- Adding linker script /Users/brian/local/motusi/esp-install-test/esp-idf/components/esp32/ld/esp32.peripherals.ld
-- Components: app_trace app_update asio bootloader bootloader_support bt cbor coap common console cxx driver efuse esp-tls esp32 esp_adc_cal esp_common esp_eth esp_event esp_gdbstub esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server
** redact lots of lines **
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/brian/local/motusi/dev/obc-app/app
brian@nova:~/local/motusi/dev/obc-app/app/build$ ninja
ninja: error: loading 'build.ninja': No such file or directory
brian@nova:~/local/motusi/dev/obc-app/app/build$ ls ../build.ninja
../build.ninja
Ninja uses project directory as build directory instead of ./build
-
- Posts: 4
- Joined: Mon Dec 28, 2020 9:52 pm
-
- Posts: 4
- Joined: Mon Dec 28, 2020 9:52 pm
Re: Ninja uses project directory as build directory instead of ./build
Fresh clone of my project fixed this problem.
Re: Ninja uses project directory as build directory instead of ./build
Hi brian,
I'm not sure what the cause of this could have been, maybe some path in the generated CMakeCache.txt file. However I'm glad you were able to fix it.
I'm not sure what the cause of this could have been, maybe some path in the generated CMakeCache.txt file. However I'm glad you were able to fix it.
Who is online
Users browsing this forum: No registered users and 331 guests