espressif / vscode-esp-idf-extension

Visual Studio Code extension for ESP-IDF projects
Apache License 2.0
1.03k stars 301 forks source link

[Feature Request]: Add CCache setting for faster rebuilds (VSC-747) #512

Closed meltdown03 closed 3 years ago

meltdown03 commented 3 years ago

Would it be possible to add an option to enable CCache for faster rebuilds? I manually added the option to the tasks.json files, but it only works with the Project Tasks and not the built-in commands, and it's not very convenient.

meltdown03 commented 3 years ago

Here is a portion of the build command output:

Executing action: all (aliases: build)
Running cmake in directory /home/neal/esp/esp-adf/examples/recorder/pipeline_raw_http/build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DIDF_TARGET=esp32s2 -DCCACHE_ENABLE=0 /home/neal/esp/esp-adf/examples/recorder/pipeline_raw_http"...
-- Found Git: /usr/bin/git (found version "2.33.0") 
-- The C compiler identification is GNU 8.4.0
-- The CXX compiler identification is GNU 8.4.0
-- The ASM compiler identification is GNU

I don't think CCache is working. I tried with both the Project Task and the built-in build command and both seem to take a long time to rebuild. As you can see above, -DCCACHE_ENABLE=0 is set even thought enabled CCache in the settings.json file

brianignacio5 commented 3 years ago

And you set idf.enableCCache to true on settings.json ? Default is false.

You might want to delete the build folder before rebuild.

meltdown03 commented 3 years ago

And you set idf.enableCCache to true on settings.json ? Default is false.

You might want to delete the build folder before rebuild.

Yeah, I set it to true in the global settings.json. I tried deleting it multiple times so i could tell if it was using ccache. EDIT: I tried setting in the local settings.json file also and it still says -DCCACHE_ENABLE=0 and is slow when rebuilding the same project. I am comparing it to running idf.py --ccache build from the terminal after deleting the build folder

meltdown03 commented 3 years ago

Thanks, it's working with the built-in build command, but not the Tasks. I can just change the template before building the extension. Any plans to add DFU flashing, I see Arduino IDE has it for arduino-esp32?

brianignacio5 commented 3 years ago

For the task you just need to add --cache flag. Since CCache is optional for MacOS/Linux we could had added it to Windows but due to time constraint was not part of yesterday release. Apologies for that.

Yes we are planning to add DFU flashing as extension command (coming soon) but this is already available in command line with idf.py dfu and idf.py dfu-flash for ESP32-S2 and ESP32-S3 targets.

meltdown03 commented 3 years ago

In messing around, I found it easier to set the CCACHE_ENABLE option in the CMakeLists.txt file. I like using the tasks because I can click monitor and it will build, flash and monitor all with one click. If I want to use ccache, I have to set it for all three tasks.

On Thu, Sep 9, 2021, 11:05 PM Brian A. Ignacio @.***> wrote:

For the task you just need to add --cache flag. Since CCache is optional for MacOS/Linux we could had added it to Windows but due to time constraint was not part of yesterday release. Apologies for that.

Yes we are planning to add DFU flashing but this is already available in command line with idf.py dfu and idf.py dfu-flash for ESP32-S2 and ESP32-S3 targets.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/espressif/vscode-esp-idf-extension/issues/512#issuecomment-916612973, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABPBQCALKYV6433ZHH7XJMDUBF7XPANCNFSM5DLVIWZQ .