platformio / platformio-core

Your Gateway to Embedded Software Development Excellence :alien:
https://platformio.org
Apache License 2.0
7.99k stars 800 forks source link

Project build failures when migrating to v6.0.1 #4286

Closed julianneswinoga closed 2 years ago

julianneswinoga commented 2 years ago

What kind of issue is this?

Configuration

Operating system: Tested on manjaro, debian

PlatformIO Version: 5.2.5 vs 6.0.1

Description of problem

Hi! I'm a developer on the Open Astro Tracker Firmware and we've recently found an uptick in build failures for our users when using PlatformIO. After some digging I've found that our firmware compiles fine with PIO 5.2.5 but not on 6.0.1. The reason I'm raising this is that it states on the 5.x to 6 migration guide:

PlatformIO Core 6.0 is FULLY BACKWARD COMPATIBLE* with PlatformIO 5.0 projects

Which doesn't seem to be the case for our firmware :sweat_smile:

The issue lies somewhere in applying build flags selectively to source files but not libraries. Basically we turn on a lot of compiler warnings for our source code but we don't want those warnings enabled for libraries (obviously).

Steps to Reproduce

git clone https://github.com/OpenAstroTech/OpenAstroTracker-Firmware
cd OpenAstroTracker-Firmware
python3 -m venv .pio_env
.pio_env/bin/pip install platformio==6.0.1

# basic configuration setup just to compile things
cat <<EOF >> Configuration_local.hpp
#define RA_STEPPER STEPPER_TYPE_ENABLED
#define RA_DRIVER TMC2209_UART
#define RA_MOTOR_CURRENT_RATING 1
#define RA_OPERATING_CURRENT_SETTING 1
#define DEC_STEPPER STEPPER_TYPE_ENABLED
#define DEC_DRIVER TMC2209_UART
#define DEC_MOTOR_CURRENT_RATING 1
#define DEC_OPERATING_CURRENT_SETTING 1
EOF
.pio_env/bin/platformio run -e mksgenlv21

Actual Results

Build failures from -Werror that should only be enabled on repo source files, but it's coming from libraries.

Expected Results

Builds passing, because 6.x is supposed to be backwards compatible :smiling_face_with_tear:

PamudithaSomarathne commented 2 years ago

I have also experienced this issue. VSCode had updated PlatformIO while I was away for a week and library imports stopped working with "Invalid simple block" error. Projects started working again after downgrading to PlatformIO core 5.2.5 OS: Windows 10

TD-er commented 2 years ago

In my project (ESPEasy), a number of users also report build issues. See for example: https://github.com/letscontrolit/ESPEasy/issues/4068#issuecomment-1134222604

I myself noticed on my laptop that I was also not able to build anymore. Each build varied from scons39.dblite not found, missing setup() and loop() and another one, all alternating on each build attempt. As suggested by one of my users, when building the default env. first, it seems to 'stabilize'

ivankravets commented 2 years ago

Thanks for the report! Could you try the latest Development version via pio upgrade --dev?

This is a bug and we fixed it. If the latest dev version works for you, we will release Core 6.0.2.

julianneswinoga commented 2 years ago

@ivankravets Yep confirmed fixed! Sorry for not trying the dev channel :sweat_smile:

ivankravets commented 2 years ago

Thanks, @julianneswinoga!

Yes, sorry that our "FULLY BACKWARD COMPATIBLE" didn't work with Core 6.0.0. Hope finally Core 6.0.2 will fix all compatibility issues.

It was the biggest release ever with a rich list of additions and changes. We would be thankful if you continue using DEV version of PlatformIO Core and report any issues. Typically, the DEV version is very stable, it is covered with a ton of integration and unit tests. However, planned refactoring might have some influence.

thomastech commented 2 years ago

Too bad this issue is closed.

The latest PlatformIO Dev release (6.0.2a2) is better, but builds are still randomly successful.

The common build error I see is scons39.dblite not found. I've noticed that when the problem occurs the .pio\build\device folder is not being populated. This folder is cleared at each new build.

Every time I launch VS Code the project's build fails. But eventually success if I perform Clean operations and keep trying. And after a build success the issue does not re-appear until the next time I launch VS Code.

These problems never occurred with Core 5.2.5.

TD-er commented 2 years ago

Yep, me too. I simply can't seem to get my laptop to complete a single build. I only had one build succeed, but that was when connected to power instead of running on battery. So maybe it is kinda timing related? A few of those build errors are related to the generated .cpp (Arduino code) being missing. So perhaps VS code is also inspecting other PIO envs which in turn also generate and delete the .cpp file?

On my desktop PC (roughly 10x as fast as the laptop when considering compiling) I didn't have as many build issues, but there I already moved back to PIO 5.2.5 as I simply need that one to work.

ivankravets commented 2 years ago

Does it work without VSCode using PlatformIO Core CLI?

thomastech commented 2 years ago

@ivankravets thanks for monitoring this closed issue. I'm sorry but I don't have any experience with building projects using the PlatformIO Core CLI. Maybe @TD-er can try this?

TD-er commented 2 years ago

Does it work without VSCode using PlatformIO Core CLI?

Can't remember if I tried this on the laptop. Will try within an hour as I go downstairs for another beer :) I do suspect you mean using the CLI in VS code, so we're sure it is exactly the same Python env?

TD-er commented 2 years ago

Cleaned everything on my laptop regarding PlatformIO, previously fetched lib_deps, etc. Then VScode reinstalled PlatformIO 6.0.1 and after that (restart inbetween) I updated to PIO 6.0.2a

After starting a build via CLI in VScode, I got this error: image This does suggest it is time based to retry to build an index. So that may explain why my laptop fails to build it over-and-over again as a build may easily take a few minutes (compared to 30 - 50 sec on my desktop PC)

Anyway, I now have these errors, suggesting some very strange lib_deps scan output, which I don't have on my desktop:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows

PS C:\GitHub\TD-er\ESPEasy> pio run -e max_ESP32_16M8M_LittleFS
Processing max_ESP32_16M8M_LittleFS (board: esp32_16M8M; framework: arduino; platform: https://github.com/tasmota/platform-espressif32/releases/download/v.2.0.3/platform-espressif32-v.2.0.3.zip)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Tool Manager: Installing platformio/tool-scons @ ~4.40300.0
Unpacking  [####################################]  100%
[WinError 145] The directory is not empty: 'C:\\Users\\gijsn\\.platformio\\packages\\tool-scons\\scons-local-4.3.0\\SCons' 
Please manually remove the file `C:\Users\gijsn\.platformio\packages\tool-scons\scons-local-4.3.0\SCons`
[WinError 145] The directory is not empty: 'C:\\Users\\gijsn\\.platformio\\packages\\tool-scons\\scons-local-4.3.0' 
Please manually remove the file `C:\Users\gijsn\.platformio\packages\tool-scons\scons-local-4.3.0`
[WinError 145] The directory is not empty: 'C:\\Users\\gijsn\\.platformio\\packages\\tool-scons'
Please manually remove the file `C:\Users\gijsn\.platformio\packages\tool-scons`
Tool Manager: Warning! Package Mirror: [WinError 183] Cannot create a file when that file already exists: 'C:\\Users\\gijsn\\.platformio\\packages\\tool-scons'
Tool Manager: Looking for another mirror...
Unpacking  [####################################]  100%
Tool Manager: tool-scons@4.40300.1 has been installed!
Verbose mode can be enabled via `-v, --verbose` option
 Concat ./src/src/Commands/*.cpp to ./src/src/Commands_tmp\__tmpfile.cpp 
 Add:   ./src/src/Commands\Blynk.cpp
 Add:   ./src/src/Commands\Common.cpp
 Add:   ./src/src/Commands\Controller.cpp
 Add:   ./src/src/Commands\Diagnostic.cpp
 Add:   ./src/src/Commands\GPIO.cpp
 Add:   ./src/src/Commands\HTTP.cpp
 Add:   ./src/src/Commands\i2c.cpp
 Add:   ./src/src/Commands\InternalCommands.cpp
 Add:   ./src/src/Commands\MQTT.cpp
 Add:   ./src/src/Commands\Networks.cpp
 Add:   ./src/src/Commands\Notifications.cpp
 Add:   ./src/src/Commands\Provisioning.cpp
 Add:   ./src/src/Commands\RTC.cpp
 Add:   ./src/src/Commands\Rules.cpp
 Add:   ./src/src/Commands\SDCARD.cpp
 Add:   ./src/src/Commands\Servo.cpp
 Add:   ./src/src/Commands\Settings.cpp
 Add:   ./src/src/Commands\System.cpp
 Add:   ./src/src/Commands\Tasks.cpp
 Add:   ./src/src/Commands\Time.cpp
 Add:   ./src/src/Commands\Timer.cpp
 Add:   ./src/src/Commands\UDP.cpp
 Add:   ./src/src/Commands\wd.cpp
 Add:   ./src/src/Commands\WiFi.cpp
 Files not changed, will not touch __tmpfile.cpp
 -------------------------------
 Concat ./src/src/ControllerQueue/*.cpp to ./src/src/ControllerQueue_tmp\__tmpfile.cpp
 Add:   ./src/src/ControllerQueue\C011_queue_element.cpp
 Add:   ./src/src/ControllerQueue\C015_queue_element.cpp
 Add:   ./src/src/ControllerQueue\C016_queue_element.cpp
 Add:   ./src/src/ControllerQueue\C018_queue_element.cpp
 Add:   ./src/src/ControllerQueue\DelayQueueElements.cpp
 Add:   ./src/src/ControllerQueue\MQTT_queue_element.cpp
 Add:   ./src/src/ControllerQueue\queue_element_formatted_uservar.cpp
 Add:   ./src/src/ControllerQueue\queue_element_single_value_base.cpp
 Add:   ./src/src/ControllerQueue\SimpleQueueElement_string_only.cpp
 Files not changed, will not touch __tmpfile.cpp
 -------------------------------
 Concat ./src/src/DataStructs/*.cpp to ./src/src/DataStructs_tmp\__tmpfile.cpp
 Add:   ./src/src/DataStructs\C013_p2p_dataStructs.cpp
 Add:   ./src/src/DataStructs\Caches.cpp
 Add:   ./src/src/DataStructs\ControllerSettingsStruct.cpp
 Add:   ./src/src/DataStructs\CRCStruct.cpp
 Add:   ./src/src/DataStructs\DeviceStruct.cpp
 Add:   ./src/src/DataStructs\ESPeasyControllerCache.cpp
 Add:   ./src/src/DataStructs\ESPEasy_EventStruct.cpp
 Add:   ./src/src/DataStructs\ESPEasy_packed_raw_data.cpp
 Add:   ./src/src/DataStructs\EthernetEventData.cpp
 Add:   ./src/src/DataStructs\EventQueue.cpp
 Add:   ./src/src/DataStructs\ExtendedControllerCredentialsStruct.cpp
 Add:   ./src/src/DataStructs\ExtraTaskSettingsStruct.cpp
 Add:   ./src/src/DataStructs\FactoryDefaultPref.cpp
 Add:   ./src/src/DataStructs\GpioFactorySettingsStruct.cpp
 Add:   ./src/src/DataStructs\I2CTypes.cpp
 Add:   ./src/src/DataStructs\LogStruct.cpp
 Add:   ./src/src/DataStructs\MAC_address.cpp
 Add:   ./src/src/DataStructs\Modbus.cpp
 Add:   ./src/src/DataStructs\NodeStruct.cpp
 Add:   ./src/src/DataStructs\NotificationSettingsStruct.cpp
 Add:   ./src/src/DataStructs\PortStatusStruct.cpp
 Add:   ./src/src/DataStructs\ProtocolStruct.cpp
 Add:   ./src/src/DataStructs\ProvisioningStruct.cpp
 Add:   ./src/src/DataStructs\RTCStruct.cpp
 Add:   ./src/src/DataStructs\RTC_cache_handler_struct.cpp
 Add:   ./src/src/DataStructs\RulesEventCache.cpp
 Add:   ./src/src/DataStructs\SecurityStruct.cpp
 Add:   ./src/src/DataStructs\SystemTimerStruct.cpp
 Add:   ./src/src/DataStructs\tcp_cleanup.cpp
 Add:   ./src/src/DataStructs\TimeChangeRule.cpp
 Add:   ./src/src/DataStructs\timer_id_couple.cpp
 Add:   ./src/src/DataStructs\TimingStats.cpp
 Add:   ./src/src/DataStructs\UnitMessageCount.cpp
 Add:   ./src/src/DataStructs\UserVarStruct.cpp
 Add:   ./src/src/DataStructs\Web_StreamingBuffer.cpp
 Add:   ./src/src/DataStructs\WiFiEventData.cpp
 Add:   ./src/src/DataStructs\WiFi_AP_Candidate.cpp
 Files not changed, will not touch __tmpfile.cpp
 -------------------------------
 Concat ./src/src/DataTypes/*.cpp to ./src/src/DataTypes_tmp\__tmpfile.cpp
 Add:   ./src/src/DataTypes\ControllerIndex.cpp
 Add:   ./src/src/DataTypes\CPluginID.cpp
 Add:   ./src/src/DataTypes\DeviceIndex.cpp
 Add:   ./src/src/DataTypes\ESPEasyFileType.cpp
 Add:   ./src/src/DataTypes\ESPEasyTimeSource.cpp
 Add:   ./src/src/DataTypes\EthernetParameters.cpp
 Add:   ./src/src/DataTypes\NetworkMedium.cpp
 Add:   ./src/src/DataTypes\NotifierIndex.cpp
 Add:   ./src/src/DataTypes\NPluginID.cpp
 Add:   ./src/src/DataTypes\PluginID.cpp
 Add:   ./src/src/DataTypes\ProtocolIndex.cpp
 Add:   ./src/src/DataTypes\SettingsType.cpp
 Add:   ./src/src/DataTypes\SPI_options.cpp
 Add:   ./src/src/DataTypes\TaskIndex.cpp
 Add:   ./src/src/DataTypes\TimeSource.cpp
 Add:   ./src/src/DataTypes\WiFiConnectionProtocol.cpp
 Files not changed, will not touch __tmpfile.cpp
 -------------------------------
 Concat ./src/src/Globals/*.cpp to ./src/src/Globals_tmp\__tmpfile.cpp
 Add:   ./src/src/Globals\C016_ControllerCache.cpp
 Add:   ./src/src/Globals\Cache.cpp
 Add:   ./src/src/Globals\CPlugins.cpp
 Add:   ./src/src/Globals\CRCValues.cpp
 Add:   ./src/src/Globals\Device.cpp
 Add:   ./src/src/Globals\ESPEasyWiFi.cpp
 Add:   ./src/src/Globals\ESPEasyWiFiEvent.cpp
 Add:   ./src/src/Globals\ESPEasy_Scheduler.cpp
 Add:   ./src/src/Globals\ESPEasy_time.cpp
 Add:   ./src/src/Globals\EventQueue.cpp
 Add:   ./src/src/Globals\ExtraTaskSettings.cpp
 Add:   ./src/src/Globals\GlobalMapPortStatus.cpp
 Add:   ./src/src/Globals\I2Cdev.cpp
 Add:   ./src/src/Globals\Logging.cpp
 Add:   ./src/src/Globals\MainLoopCommand.cpp
 Add:   ./src/src/Globals\MQTT.cpp
 Add:   ./src/src/Globals\NetworkState.cpp
 Add:   ./src/src/Globals\Nodes.cpp
 Add:   ./src/src/Globals\NPlugins.cpp
 Add:   ./src/src/Globals\Plugins.cpp
 Add:   ./src/src/Globals\Plugins_other.cpp
 Add:   ./src/src/Globals\Protocol.cpp
 Add:   ./src/src/Globals\RamTracker.cpp
 Add:   ./src/src/Globals\ResetFactDefaultPref.cpp
 Add:   ./src/src/Globals\RTC.cpp
 Add:   ./src/src/Globals\RuntimeData.cpp
 Add:   ./src/src/Globals\SecuritySettings.cpp
 Add:   ./src/src/Globals\Services.cpp
 Add:   ./src/src/Globals\Settings.cpp
 Add:   ./src/src/Globals\Statistics.cpp
 Add:   ./src/src/Globals\TimeZone.cpp
 Add:   ./src/src/Globals\TXBuffer.cpp
 Add:   ./src/src/Globals\WiFi_AP_Candidates.cpp
 Files not changed, will not touch __tmpfile.cpp
 ------------------------------- 
 Concat ./src/src/Helpers/*.cpp to ./src/src/Helpers_tmp\__tmpfile.cpp
 Add:   ./src/src/Helpers\AdafruitGFX_helper.cpp
 Add:   ./src/src/Helpers\Audio.cpp
 Add:   ./src/src/Helpers\Convert.cpp
 Add:   ./src/src/Helpers\CRC_functions.cpp
 Add:   ./src/src/Helpers\Dallas1WireHelper.cpp
 Add:   ./src/src/Helpers\DeepSleep.cpp
 Add:   ./src/src/Helpers\ESPEasyRTC.cpp
 Add:   ./src/src/Helpers\ESPEasyStatistics.cpp
 Add:   ./src/src/Helpers\ESPEasy_checks.cpp
 Add:   ./src/src/Helpers\ESPEasy_FactoryDefault.cpp
 Add:   ./src/src/Helpers\ESPEasy_math.cpp
 Add:   ./src/src/Helpers\ESPEasy_Storage.cpp
 Add:   ./src/src/Helpers\ESPEasy_time.cpp
 Add:   ./src/src/Helpers\ESPEasy_time_calc.cpp
 Add:   ./src/src/Helpers\ESPEasy_time_zone.cpp
 Add:   ./src/src/Helpers\Hardware.cpp
 Add:   ./src/src/Helpers\I2C_access.cpp
 Add:   ./src/src/Helpers\LongTermTimer.cpp
 Add:   ./src/src/Helpers\MDNS_Helper.cpp
 Add:   ./src/src/Helpers\Memory.cpp
 Add:   ./src/src/Helpers\Misc.cpp
 Add:   ./src/src/Helpers\Modbus_RTU.cpp
 Add:   ./src/src/Helpers\msecTimerHandlerStruct.cpp
 Add:   ./src/src/Helpers\Network.cpp
 Add:   ./src/src/Helpers\Networking.cpp
 Add:   ./src/src/Helpers\Numerical.cpp
 Add:   ./src/src/Helpers\OTA.cpp
 Add:   ./src/src/Helpers\PeriodicalActions.cpp
 Add:   ./src/src/Helpers\PortStatus.cpp
 Add:   ./src/src/Helpers\RulesHelper.cpp
 Add:   ./src/src/Helpers\RulesMatcher.cpp
 Add:   ./src/src/Helpers\Rules_calculate.cpp
 Add:   ./src/src/Helpers\Scheduler.cpp
 Add:   ./src/src/Helpers\StringConverter.cpp
 Add:   ./src/src/Helpers\StringGenerator_GPIO.cpp
 Add:   ./src/src/Helpers\StringGenerator_System.cpp
 Add:   ./src/src/Helpers\StringGenerator_WiFi.cpp
 Add:   ./src/src/Helpers\StringParser.cpp
 Add:   ./src/src/Helpers\StringProvider.cpp
 Add:   ./src/src/Helpers\SystemVariables.cpp
 Add:   ./src/src/Helpers\WebServer_commandHelper.cpp
 Add:   ./src/src/Helpers\WiFi_AP_CandidatesList.cpp
 Add:   ./src/src/Helpers\_CPlugin_DomoticzHelper.cpp
 Add:   ./src/src/Helpers\_CPlugin_Helper.cpp
 Add:   ./src/src/Helpers\_CPlugin_Helper_webform.cpp
 Add:   ./src/src/Helpers\_CPlugin_init.cpp
 Add:   ./src/src/Helpers\_CPlugin_LoRa_TTN_helper.cpp
 Add:   ./src/src/Helpers\_Internal_GPIO_pulseHelper.cpp
 Add:   ./src/src/Helpers\_NPlugin_init.cpp
 Add:   ./src/src/Helpers\_Plugin_Helper_serial.cpp
 Add:   ./src/src/Helpers\_Plugin_init.cpp
 Add:   ./src/src/Helpers\_Plugin_SensorTypeHelper.cpp
 Files not changed, will not touch __tmpfile.cpp
 -------------------------------
 Concat ./src/src/PluginStructs/*.cpp to ./src/src/PluginStructs_tmp\__tmpfile.cpp
 Add:   ./src/src/PluginStructs\P002_data_struct.cpp
 Add:   ./src/src/PluginStructs\P003_data_struct.cpp
 Add:   ./src/src/PluginStructs\P004_data_struct.cpp
 Add:   ./src/src/PluginStructs\P006_data_struct.cpp
 Add:   ./src/src/PluginStructs\P012_data_struct.cpp
 Add:   ./src/src/PluginStructs\P015_data_struct.cpp
 Add:   ./src/src/PluginStructs\P016_data_struct.cpp
 Add:   ./src/src/PluginStructs\P020_data_struct.cpp
 Add:   ./src/src/PluginStructs\P022_data_struct.cpp
 Add:   ./src/src/PluginStructs\P023_data_struct.cpp
 Add:   ./src/src/PluginStructs\P024_data_struct.cpp
 Add:   ./src/src/PluginStructs\P025_data_struct.cpp
 Add:   ./src/src/PluginStructs\P027_data_struct.cpp
 Add:   ./src/src/PluginStructs\P028_data_struct.cpp
 Add:   ./src/src/PluginStructs\P032_data_struct.cpp
 Add:   ./src/src/PluginStructs\P035_data_struct.cpp
 Add:   ./src/src/PluginStructs\P036_data_struct.cpp
 Add:   ./src/src/PluginStructs\P037_data_struct.cpp
 Add:   ./src/src/PluginStructs\P038_data_struct.cpp
 Add:   ./src/src/PluginStructs\P039_data_struct.cpp
 Add:   ./src/src/PluginStructs\P044_data_struct.cpp
 Add:   ./src/src/PluginStructs\P045_data_struct.cpp
 Add:   ./src/src/PluginStructs\P050_data_struct.cpp
 Add:   ./src/src/PluginStructs\P053_data_struct.cpp
 Add:   ./src/src/PluginStructs\P057_data_struct.cpp
 Add:   ./src/src/PluginStructs\P058_data_struct.cpp
 Add:   ./src/src/PluginStructs\P060_data_struct.cpp
 Add:   ./src/src/PluginStructs\P061_data_struct.cpp
 Add:   ./src/src/PluginStructs\P062_data_struct.cpp
 Add:   ./src/src/PluginStructs\P064_data_struct.cpp
 Add:   ./src/src/PluginStructs\P069_data_struct.cpp
 Add:   ./src/src/PluginStructs\P073_data_struct.cpp
 Add:   ./src/src/PluginStructs\P079_data_struct.cpp
 Add:   ./src/src/PluginStructs\P082_data_struct.cpp
 Add:   ./src/src/PluginStructs\P083_data_struct.cpp
 Add:   ./src/src/PluginStructs\P087_data_struct.cpp
 Add:   ./src/src/PluginStructs\P090_data_struct.cpp
 Add:   ./src/src/PluginStructs\P092_data_struct.cpp
 Add:   ./src/src/PluginStructs\P094_data_struct.cpp
 Add:   ./src/src/PluginStructs\P095_data_struct.cpp
 Add:   ./src/src/PluginStructs\P096_data_struct.cpp
 Add:   ./src/src/PluginStructs\P098_data_struct.cpp
 Add:   ./src/src/PluginStructs\P099_data_struct.cpp
 Add:   ./src/src/PluginStructs\P104_data_struct.cpp
 Add:   ./src/src/PluginStructs\P105_data_struct.cpp
 Add:   ./src/src/PluginStructs\P106_data_struct.cpp
 Add:   ./src/src/PluginStructs\P107_data_struct.cpp
 Add:   ./src/src/PluginStructs\P110_data_struct.cpp
 Add:   ./src/src/PluginStructs\P111_data_struct.cpp
 Add:   ./src/src/PluginStructs\P112_data_struct.cpp
 Add:   ./src/src/PluginStructs\P113_data_struct.cpp
 Add:   ./src/src/PluginStructs\P114_data_struct.cpp
 Add:   ./src/src/PluginStructs\P115_data_struct.cpp
 Add:   ./src/src/PluginStructs\P116_data_struct.cpp
 Add:   ./src/src/PluginStructs\P117_data_struct.cpp
 Add:   ./src/src/PluginStructs\P119_data_struct.cpp
 Add:   ./src/src/PluginStructs\P120_data_struct.cpp
 Add:   ./src/src/PluginStructs\P121_data_struct.cpp
 Add:   ./src/src/PluginStructs\P124_data_struct.cpp
 Add:   ./src/src/PluginStructs\P126_data_struct.cpp
 Add:   ./src/src/PluginStructs\P127_data_struct.cpp
 Files not changed, will not touch __tmpfile.cpp
 ------------------------------- 
 Concat ./src/src/WebServer/*.cpp to ./src/src/WebServer_tmp\__tmpfile.cpp
 Add:   ./src/src/WebServer\404.cpp
 Add:   ./src/src/WebServer\AccessControl.cpp
 Add:   ./src/src/WebServer\AdvancedConfigPage.cpp
 Add:   ./src/src/WebServer\CacheControllerPages.cpp
 Add:   ./src/src/WebServer\ConfigPage.cpp
 Add:   ./src/src/WebServer\ControllerPage.cpp
 Add:   ./src/src/WebServer\ControlPage.cpp
 Add:   ./src/src/WebServer\CustomPage.cpp
 Add:   ./src/src/WebServer\DevicesPage.cpp
 Add:   ./src/src/WebServer\DownloadPage.cpp
 Add:   ./src/src/WebServer\FactoryResetPage.cpp
 Add:   ./src/src/WebServer\Favicon.cpp
 Add:   ./src/src/WebServer\FileList.cpp
 Add:   ./src/src/WebServer\HardwarePage.cpp
 Add:   ./src/src/WebServer\HTML_wrappers.cpp
 Add:   ./src/src/WebServer\I2C_Scanner.cpp
 Add:   ./src/src/WebServer\JSON.cpp
 Add:   ./src/src/WebServer\LoadFromFS.cpp
 Add:   ./src/src/WebServer\Log.cpp
 Add:   ./src/src/WebServer\Markup.cpp
 Add:   ./src/src/WebServer\Markup_Buttons.cpp
 Add:   ./src/src/WebServer\Markup_Forms.cpp
 Add:   ./src/src/WebServer\Metrics.cpp
 Add:   ./src/src/WebServer\NotificationPage.cpp
 Add:   ./src/src/WebServer\PinStates.cpp
 Add:   ./src/src/WebServer\RootPage.cpp
 Add:   ./src/src/WebServer\Rules.cpp
 Add:   ./src/src/WebServer\SettingsArchive.cpp
 Add:   ./src/src/WebServer\SetupPage.cpp
 Add:   ./src/src/WebServer\SysInfoPage.cpp
 Add:   ./src/src/WebServer\SysVarPage.cpp
 Add:   ./src/src/WebServer\TimingStats.cpp
 Add:   ./src/src/WebServer\ToolsPage.cpp
 Add:   ./src/src/WebServer\UploadPage.cpp
 Add:   ./src/src/WebServer\WebServer.cpp
 Add:   ./src/src/WebServer\WebTemplateParser.cpp
 Add:   ./src/src/WebServer\WiFiScanner.cpp
 Files not changed, will not touch __tmpfile.cpp
 -------------------------------
 Compile time defines
 File System:      LittleFS
 PROGNAME:         ESP_Easy_mega_20220524_max_ESP32_16M8M_LittleFS
 BUILD_PLATFORM:   Windows-10-10.0.22000-SP0
 GIT_HEAD:         pygit2_not_installed
 ------------------------------- 
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32_16M8M.html
PLATFORM: Espressif 32 (2.0.3) > Espressif Generic ESP32 16M Flash, ESPEasy 4M Code/OTA, 8M FS
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 @ 2.0.3
 - tool-esptoolpy @ 1.30300.0 (3.3.0)
 - tool-mklittlefs @ 1.203.210628 (2.3)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - toolchain-esp32ulp @ 1.22851.191205 (2.28.51)
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
Converting ESPEasy.ino
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 94 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Adafruit_ST77xx @ 1.7.3
|   |-- Adafruit GFX Library @ 1.11.1
|   |   |-- SPI @ 2.0.0
|   |   |-- Adafruit BusIO @ 1.11.6
|   |   |   |-- Wire @ 2.0.0
|   |   |   |-- SPI @ 2.0.0
|   |   |-- Wire @ 2.0.0
|   |-- SPI @ 2.0.0
|-- ArduinoOTA @ 2.0.0
|   |-- Update @ 2.0.0
|   |-- WiFi @ 2.0.0
|   |-- ESPmDNS @ 2.0.0
|   |   |-- WiFi @ 2.0.0
|-- ESP32HTTPUpdateServer
|   |-- FS @ 2.0.0
|   |-- Update @ 2.0.0
|   |-- WebServer @ 2.0.0
|   |   |-- WiFi @ 2.0.0
|   |   |-- FS @ 2.0.0
|   |-- WiFi @ 2.0.0
|-- FrogmoreScd30 @ 1.0
|   |-- Wire @ 2.0.0
|-- I2Cdevlib-Core
|   |-- Wire @ 2.0.0
|-- ITG3205 @ 1.0
|   |-- Wire @ 2.0.0
|-- LOLIN_EPD @ 1.0.0
|   |-- Adafruit GFX Library @ 1.11.1
|   |   |-- SPI @ 2.0.0
|   |   |-- Adafruit BusIO @ 1.11.6
|   |   |   |-- Wire @ 2.0.0
|   |   |   |-- SPI @ 2.0.0
|   |   |-- Wire @ 2.0.0
|   |-- SPI @ 2.0.0
|-- Multi Channel Relay Arduino Library @ 1.1.0
|   |-- Wire @ 2.0.0
|-- ShiftRegister74HC595_NonTemplate @ 1.3.1
|-- SparkFun ADXL345 Arduino Library @ 1.0.0
|   |-- SPI @ 2.0.0
|   |-- Wire @ 2.0.0
|-- SparkFun VL53L1X 4m Laser Distance Sensor @ 1.2.9
|   |-- Wire @ 2.0.0
|-- VL53L0X @ 1.3.0
|   |-- Wire @ 2.0.0
|-- Adafruit BusIO @ 1.11.6
|   |-- Wire @ 2.0.0
|   |-- SPI @ 2.0.0
|-- Adafruit GFX Library @ 1.11.1
|   |-- SPI @ 2.0.0
|   |-- Adafruit BusIO @ 1.11.6
|   |   |-- Wire @ 2.0.0
|   |   |-- SPI @ 2.0.0
|   |-- Wire @ 2.0.0
|-- Adafruit ILI9341 @ 1.5.10
|   |-- Adafruit GFX Library @ 1.11.1
|   |   |-- SPI @ 2.0.0
|   |   |-- Adafruit BusIO @ 1.11.6
|   |   |   |-- Wire @ 2.0.0
|   |   |   |-- SPI @ 2.0.0
|   |   |-- Wire @ 2.0.0
|   |-- SPI @ 2.0.0
|-- ESPeasySerial @ 2.0.8
|   |-- SC16IS752 @ 1.0.1
|   |   |-- SPI @ 2.0.0
|   |   |-- Wire @ 2.0.0
|-- SparkFun MAX1704x Fuel Gauge Arduino Library @ 1.0.1
|   |-- Wire @ 2.0.0
|-- LittleFS @ 2.0.0
|   |-- FS @ 2.0.0
|-- Adafruit TSL2591 Library @ 1.0.2
|   |-- Adafruit Unified Sensor @ 1.0.2
|   |-- Wire @ 2.0.0
|-- ccronexpr
|-- ESP8266_SSD1306 @ 3.2.7
|   |-- Wire @ 2.0.0
|   |-- SPI @ 2.0.0
|-- Itho
|   |-- SPI @ 2.0.0
|-- Adafruit HMC5883 Unified @ 1.2.0
|   |-- Adafruit Unified Sensor @ 1.0.2
|   |-- Wire @ 2.0.0
|-- Adafruit Motor Shield V2 Library @ 1.0.4
|   |-- Wire @ 2.0.0
|-- Adafruit NeoPixel @ 1.8.7
|-- Adafruit Unified Sensor @ 1.0.2
|-- AM2320
|   |-- Wire @ 2.0.0
|-- ArduinoJson @ 6.16.1
|-- AS_BH1750
|   |-- Wire @ 2.0.0
|-- HeatpumpIR
|   |-- IRremoteESP8266 @ 2.8.1
|-- HLW8012 @ 1.1.1
|-- IRremoteESP8266 @ 2.8.1
|-- SerialSensors @ 0.0.1
|   |-- ESPeasySerial @ 2.0.8
|   |   |-- SC16IS752 @ 1.0.1
|   |   |   |-- SPI @ 2.0.0
|   |   |   |-- Wire @ 2.0.0
|-- NewPingESP8266
|-- PZEM-004T-v30 @ 1.0.0
|   |-- ESPeasySerial @ 2.0.8
|   |   |-- SC16IS752 @ 1.0.1
|   |   |   |-- SPI @ 2.0.0
|   |   |   |-- Wire @ 2.0.0
|-- MechInputs @ 0.0.1
|-- Regexp @ 0.1.0
|-- SDM @ 2.0.0
|   |-- ESPeasySerial @ 2.0.8
|   |   |-- SC16IS752 @ 1.0.1
|   |   |   |-- SPI @ 2.0.0
|   |   |   |-- Wire @ 2.0.0
|-- SPI @ 2.0.0
|-- TinyGPSPlus @ 1.0.2
|-- WakeOnLan @ 1.1.6
|   |-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- SD @ 2.0.0
|   |-- FS @ 2.0.0
|   |-- SPI @ 2.0.0
|-- SPIFFS @ 2.0.0
|   |-- FS @ 2.0.0
|-- WiFi @ 2.0.0
|-- Wire @ 2.0.0
|-- Blynk @ 1.0.1
|   |-- WiFi @ 2.0.0
|   |-- WiFiClientSecure @ 2.0.0
|   |   |-- WiFi @ 2.0.0
|   |-- SD @ 2.0.0
|   |   |-- FS @ 2.0.0
|   |   |-- SPI @ 2.0.0
|-- RN2xx3 Arduino Library @ 1.0.2
|-- Ethernet @ 2.0.0
|   |-- WiFi @ 2.0.0
|-- ServoESP32 @ 1.0.3
|-- DNSServer @ 2.0.0
|   |-- WiFi @ 2.0.0
|-- WebServer @ 2.0.0
|   |-- WiFi @ 2.0.0
|   |-- FS @ 2.0.0
|-- HTTPClient @ 2.0.0
|   |-- WiFi @ 2.0.0
|   |-- WiFiClientSecure @ 2.0.0
|   |   |-- WiFi @ 2.0.0
|-- PubSubClient @ 2.7
|   |-- WiFi @ 2.0.0
|-- RTClib @ 1.13.0
|   |-- Wire @ 2.0.0
|-- Adafruit BME680 Library @ 1.1.1
|   |-- Adafruit Unified Sensor @ 1.0.2
|   |-- SPI @ 2.0.0
|   |-- Wire @ 2.0.0
|-- Adafruit MPR121 @ 1.0.0
|   |-- Wire @ 2.0.0
|-- Adafruit SGP30 Sensor @ 1.0.5
|   |-- Wire @ 2.0.0
|-- Adafruit SI1145 Library @ 1.1.1
|   |-- Wire @ 2.0.0
|-- Adafruit TCS34725 @ 1.0.1
|   |-- Wire @ 2.0.0
|-- CHT16K33 LED Matrix Library @ 0.0.1
|   |-- Wire @ 2.0.0
|-- LiquidCrystal_I2C
|   |-- Wire @ 2.0.0
|-- MD_MAX72XX @ 3.3.0
|   |-- SPI @ 2.0.0
|-- MD_Parola @ 3.5.6
|   |-- MD_MAX72XX @ 3.3.0
|   |   |-- SPI @ 2.0.0
|-- MFRC522
|   |-- SPI @ 2.0.0
|-- SparkFun APDS9960 RGB and Gesture Sensor @ 1.4.2
|   |-- Wire @ 2.0.0
|-- SparkFun_AS7265x
|   |-- Wire @ 2.0.0
|-- XPT2046_Touchscreen
|   |-- SPI @ 2.0.0
Building in release mode
Compiling .pio\build\max_ESP32_16M8M_LittleFS\lib07e\SPI\SPI.cpp.o
In file included from C:/Users/gijsn/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src/SPI.cpp:22:
C:/Users/gijsn/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src/SPI.h:25:10: fatal error: pins_arduino.h: No such file or directory

**********************************************************************
* Looking for pins_arduino.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:pins_arduino.h"
* Web  > https://registry.platformio.org/search?q=header:pins_arduino.h
*
**********************************************************************

 #include "pins_arduino.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
Compiling .pio\build\max_ESP32_16M8M_LittleFS\libc23\Wire\Wire.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\lib03b\Adafruit BusIO\Adafruit_BusIO_Register.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\lib03b\Adafruit BusIO\Adafruit_I2CDevice.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\lib03b\Adafruit BusIO\Adafruit_SPIDevice.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\lib345\Adafruit GFX Library\Adafruit_GFX.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\lib345\Adafruit GFX Library\Adafruit_GrayOLED.cpp.o
*** [.pio\build\max_ESP32_16M8M_LittleFS\lib07e\SPI\SPI.cpp.o] Error 1
Compiling .pio\build\max_ESP32_16M8M_LittleFS\lib345\Adafruit GFX Library\Adafruit_SPITFT.cpp.o
In file included from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit BusIO/Adafruit_I2CDevice.h:4,
                 from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit BusIO/Adafruit_I2CDevice.cpp:1:
C:/Users/gijsn/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:209:10: fatal error: pins_arduino.h: No such file or directory        

**********************************************************************
* Looking for pins_arduino.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:pins_arduino.h"
* Web  > https://registry.platformio.org/search?q=header:pins_arduino.h
*
**********************************************************************

 #include "pins_arduino.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
In file included from C:/Users/gijsn/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src/Wire.cpp:35:
C:/Users/gijsn/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:209:10: fatal error: pins_arduino.h: No such file or directory        

**********************************************************************
* Looking for pins_arduino.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:pins_arduino.h"
* Web  > https://registry.platformio.org/search?q=header:pins_arduino.h
*
**********************************************************************

 #include "pins_arduino.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
In file included from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit BusIO/Adafruit_SPIDevice.h:4,
                 from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit BusIO/Adafruit_SPIDevice.cpp:1:
C:/Users/gijsn/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:209:10: fatal error: pins_arduino.h: No such file or directory        

**********************************************************************
* Looking for pins_arduino.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:pins_arduino.h"
* Web  > https://registry.platformio.org/search?q=header:pins_arduino.h
*
**********************************************************************

 #include "pins_arduino.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
In file included from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit BusIO/Adafruit_BusIO_Register.h:4,
                 from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit BusIO/Adafruit_BusIO_Register.cpp:1:
C:/Users/gijsn/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:209:10: fatal error: pins_arduino.h: No such file or directory        

**********************************************************************
* Looking for pins_arduino.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:pins_arduino.h"
* Web  > https://registry.platformio.org/search?q=header:pins_arduino.h
*
**********************************************************************

 #include "pins_arduino.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio\build\max_ESP32_16M8M_LittleFS\lib03b\Adafruit BusIO\Adafruit_I2CDevice.cpp.o] Error 1
*** [.pio\build\max_ESP32_16M8M_LittleFS\libc23\Wire\Wire.cpp.o] Error 1
*** [.pio\build\max_ESP32_16M8M_LittleFS\lib03b\Adafruit BusIO\Adafruit_SPIDevice.cpp.o] Error 1
*** [.pio\build\max_ESP32_16M8M_LittleFS\lib03b\Adafruit BusIO\Adafruit_BusIO_Register.cpp.o] Error 1
In file included from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit GFX Library/Adafruit_GFX.h:5,
                 from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit GFX Library/Adafruit_GrayOLED.h:29,
                 from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit GFX Library/Adafruit_GrayOLED.cpp:20:
C:/Users/gijsn/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:209:10: fatal error: pins_arduino.h: No such file or directory        

**********************************************************************
* Looking for pins_arduino.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:pins_arduino.h"
* Web  > https://registry.platformio.org/search?q=header:pins_arduino.h
*
**********************************************************************

 #include "pins_arduino.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio\build\max_ESP32_16M8M_LittleFS\lib345\Adafruit GFX Library\Adafruit_GrayOLED.cpp.o] Error 1
In file included from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit GFX Library/Adafruit_GFX.h:5,
                 from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit GFX Library/Adafruit_GFX.cpp:34:
C:/Users/gijsn/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:209:10: fatal error: pins_arduino.h: No such file or directory        

**********************************************************************
* Looking for pins_arduino.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:pins_arduino.h"
* Web  > https://registry.platformio.org/search?q=header:pins_arduino.h
*
**********************************************************************

 #include "pins_arduino.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
In file included from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit GFX Library/Adafruit_GFX.h:5,
                 from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit GFX Library/Adafruit_SPITFT.h:25,
                 from .pio/libdeps/max_ESP32_16M8M_LittleFS/Adafruit GFX Library/Adafruit_SPITFT.cpp:36:
C:/Users/gijsn/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:209:10: fatal error: pins_arduino.h: No such file or directory        

**********************************************************************
* Looking for pins_arduino.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:pins_arduino.h"
* Web  > https://registry.platformio.org/search?q=header:pins_arduino.h
*
**********************************************************************

 #include "pins_arduino.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio\build\max_ESP32_16M8M_LittleFS\lib345\Adafruit GFX Library\Adafruit_GFX.cpp.o] Error 1
*** [.pio\build\max_ESP32_16M8M_LittleFS\lib345\Adafruit GFX Library\Adafruit_SPITFT.cpp.o] Error 1
================================================================ [FAILED] Took 95.82 seconds ================================================================

Environment               Status    Duration
------------------------  --------  ------------
max_ESP32_16M8M_LittleFS  FAILED    00:01:35.825
=========================================================== 1 failed, 0 succeeded in 00:01:35.825 ===========================================================
PS C:\GitHub\TD-er\ESPEasy> 
thomastech commented 2 years ago

@TD-er, you mentioned the problem affects the laptop more than your desktop. Maybe this bug involves the folder order in the PC's path environment?

If you don't mind, please compare the two machines' path environments. Are the VSCode, PlatformIO, and Python related paths in the same order?

For reference, my path has these related folders appended to it:

;D:\Lang\nodejs\;C:\Program Files (x86)\dotnet\;C:\Users\Tom\AppData\Local\Microsoft\WindowsApps;C:\Users\Tom\.platformio\penv\Scripts;D:\Lang\VSCode\bin;C:\Users\Tom\AppData\Roaming\npm

I have no idea if there is an optimum folder order for PlatformIO. But perhaps it matters?

ivankravets commented 2 years ago

@TD-er could you reproduce this issue WITHOUT VSCode? Bare PIO Core.

TD-er commented 2 years ago

@TD-er could you reproduce this issue WITHOUT VSCode? Bare PIO Core.

You mean not even having VS code open at all? I did run it in the VS code CLI, but of course this does have VScode open.

If so, then I can collect my laptop from downstairs to test it.

ivankravets commented 2 years ago

Yes, please close VSCode completely. Open Windows cmd.exe, and type

cd C:/Users/{NAME}
.platformio\penv\Scripts\activate
pio --version
pio run -d /path/to/project
TD-er commented 2 years ago

OK, will collect my laptop now (and some beer) and start testing. (was still on a call, so late response from my side)

TD-er commented 2 years ago

Just to make sure there were no half built things in the PIO folder, I did a clean of the PlatformIO stuff. Also moved back to the PIO 6.0.2 and built via the command line as you mentioned. This build was successful in the first run. Will now try to build a few other envs in my config to see if that will succeed too, but first I will try this same env to build from within VS code.

TD-er commented 2 years ago

And the same env building in VScode failed (not even did a clean, just built it again, but now from within VScode)

...
Compiling .pio\build\max_ESP32_16M8M_LittleFS\libe1b\MD_Parola\MD_Parola_Random.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\libe1b\MD_Parola\MD_Parola_Scan.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\libe1b\MD_Parola\MD_Parola_Slice.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\libe1b\MD_Parola\MD_Parola_Sprite.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\libe1b\MD_Parola\MD_Parola_VScroll.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\libe1b\MD_Parola\MD_Parola_Wipe.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\lib681\MFRC522\MFRC522.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\lib412\SparkFun_APDS-9960_Sensor_Arduino_Library\SparkFun_APDS9960.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\lib637\SparkFun_AS7265x\SparkFun_AS7265X.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\lib30a\XPT2046_Touchscreen\XPT2046_Touchscreen.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\src\ESPEasy-Globals.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\src\ESPEasy.ino.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\src\ESPEasy_common.cpp.o
xtensa-esp32-elf-g++: error: src/ESPEasy.ino.cpp: No such file or directory
xtensa-esp32-elf-g++: fatal error: no input files
compilation terminated.
Compiling .pio\build\max_ESP32_16M8M_LittleFS\src\_C001.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\src\_C002.cpp.o
Compiling .pio\build\max_ESP32_16M8M_LittleFS\src\_C003.cpp.o
*** [.pio\build\max_ESP32_16M8M_LittleFS\src\ESPEasy.ino.cpp.o] Error 1
=============================================================== [FAILED] Took 336.20 seconds ===============================================================

Environment               Status    Duration
------------------------  --------  ------------
max_ESP32_16M8M_LittleFS  FAILED    00:05:36.195
=========================================================== 1 failed, 0 succeeded in 00:05:36.195 ===========================================================
The terminal process "C:\Users\gijsn\.platformio\penv\Scripts\platformio.exe 'run', '--environment', 'max_ESP32_16M8M_LittleFS'" terminated with exit code: 1.
TD-er commented 2 years ago

I have tried to build a number of other envs in VS code and also via the command line without VS code active. All seem to work now, so not sure what you did to 6.0.2 compared to the previous dev version, but it seems to have helped here. Apart from the occasional missing ESPEasy.cpp file as shown above, it all seems to build. But this missing ESPEasy.cpp (and sometimes missing setup() and loop()) was already an issue on previous PIO versions.

thomastech commented 2 years ago

+1 Using the IDE I'm able to build again. "Clean" builds are OK too. pio --version reports: PlatformIO Core, version 6.0.2rc2

All seem to work now, so not sure what you did to 6.0.2 compared to the previous dev version, but it seems to have helped here.

Same here. The recent 6.0.x dev releases did not help me, but today's Core release is so far a winner. Thank you!

@ivankravets, Just curious, what was causing all this hair pulling?

TD-er commented 2 years ago

Just curious, what was causing all this hair pulling?

Well I managed to only pull out the grey ones :)

ivankravets commented 2 years ago

Glad to hear that it works from CLI. The 6.0.2 should improve support for VSCode. Please upgrade to 6.0.2 and restart VSCode.

But! The main problem is using INO files. PlatformIO converts them to the dynamic CPP, and Windows OS very often does not like it. To avoid potential issues, we DO NOT recommend using of INO files. See guide https://docs.platformio.org/faq/ino-to-cpp.html

If you need INO files, it may be better to use classic Arduino IDE for these projects.

TD-er commented 2 years ago

Wel "need" is a matter of "not yet converted" for ESPEasy at least. One thing is that it makes it a bit harder for others to incorporate "plugins" which are not officially part of the repo, but posted elsewhere (e.g. on a blog) to copy/paste into the project and build it.

But I will consider changing the last (about 100+) files into .cpp/.h if that takes away most of these issues.

If you need INO files, it may be better to use classic Arduino IDE for these projects.

That's a very good incentive to convert those files if the only alternative is to use the Arduino IDE.

ivankravets commented 2 years ago

We supply PlatformIO Core as Python scripts, not a single binary. Very often different espionage “antivirus tools” treat PlatformIO Core as malware (because it generates files on the fly: INO -> CPP).

If you don’t use INO files, we don’t apply any transformations.

TD-er commented 2 years ago

Just one more question... If I change the main source file (ESPEasy.ino) into .cpp/.h (or main.cpp), can other files then still be .ino files?

ivankravets commented 2 years ago

No. INO files are fake C++ files and can’t be passed directly to the compiler. I don’t know who invented this shit.

TD-er commented 2 years ago

Well if it isn't known who did invent it, then I guess he or she already feels too ashamed to admit it ;)

thomastech commented 2 years ago

FWIW, the project I'm building does not contain ino files. No issues with 5.2.5, but wacky problems with the 6.0.x releases. Mostly reported that .sconsign39.dblite file or its folder was missing with random other errors tossed in on occasion.

My observation was that the .pio device folder would be cleared at the start of a build and would not repopulate. BTW, sometimes the projects would build after I deleted the .pio folder. But mostly joyless episodes of hair pulling.

But 6.0.2rc2 is a winner. No problems after this upgrade was auto installed yesterday. So whatever you did to fix the ino related issue had the extra benefit of fixing my builds. The perfect BOGO deal.

Thanks again! Thomas

ivankravets commented 2 years ago

Yes, the 6.0.2 fixes project rebuilding. Please upgrade to the stable PIO Core 6.0.2

thomastech commented 2 years ago

Please upgrade to the stable PIO Core 6.0.2

My apologies for needing more advice: I just executed a "pio upgrade" and now the version is 6.0.3a1. Is this a stable release or have I updated to a dev version?

ivankravets commented 2 years ago

It is stable, just includes extra fixes. See https://github.com/platformio/platformio-core/blob/develop/HISTORY.rst