# Building Tasmota in CLion with PlatformIO ## Setup Complete PlatformIO CLI has been installed and a CMake wrapper has been configured to integrate PlatformIO with CLion's native build system. ## Building from CLion UI CLion will now show PlatformIO targets in the build configurations dropdown: - **pio_build** - Build the default environment (tasmota) - **pio_clean** - Clean build files - **pio_upload** - Upload firmware to device - **pio_monitor** - Open serial monitor - **build_tasmota** - Build tasmota environment - **build_tasmota32** - Build tasmota32 environment - **build_tasmota-minimal** - Build minimal environment - **build_tasmota-sensors** - Build with sensors - **build_tasmota-display** - Build with display support - **build_tasmota-ir** - Build with IR support - **generate_compile_commands** - Update code intelligence Simply select a target from the dropdown and click the Build button (hammer icon) or press Ctrl+F9. ## Building from CLion Terminal You can also use the embedded terminal in CLion (View → Tool Windows → Terminal): ### List all available environments: ```bash pio run --list-targets ``` ### Build a specific environment: ```bash pio run -e tasmota # Build standard tasmota for ESP8266 pio run -e tasmota32 # Build for ESP32 pio run -e tasmota-minimal # Build minimal version ``` ### Clean build: ```bash pio run -e tasmota -t clean ``` ### Upload to device: ```bash pio run -e tasmota -t upload ``` ### Monitor serial output: ```bash pio device monitor ``` ## Code Intelligence The `compile_commands.json` file has been generated for CLion to provide proper code completion and navigation. The CMake configuration includes a `generate_compile_commands` target to regenerate it, or use: ```bash pio run -t compiledb -e tasmota ``` ## Available Environments See `platformio.ini` for the full list of build environments. Common ones include: - `tasmota` - Standard ESP8266 build - `tasmota32` - Standard ESP32 build - `tasmota-sensors` - Build with sensor support - `tasmota-display` - Build with display support - `tasmota-ir` - Build with IR support ## How It Works The `CMakeLists.txt` file is a wrapper that: - Defines custom CMake targets that invoke PlatformIO commands - Provides source file indexing for CLion's code intelligence - Integrates PlatformIO with CLion's native build system - Allows you to use CLion's build UI instead of terminal commands The actual compilation is still done by PlatformIO, but CLion can manage it through the CMake interface.