Problem with 'extra_scripts'

I am getting the following messages when trying to build at project with pre-hooks, anyone know what the meaning is?:

warning: Calling missing SConscript without error is deprecated.
Transition by adding must_exist=False to SConscript calls.
Missing SConscript 'auto_firmware_version.py'
File "C:\Users\niels\.platformio\penv\lib\site-packages\platformio\builder\main.py", line 179, in <module>

platformio.ini:

[platformio]
default_envs = nodemcu-32s

[env:nodemcu-32s]
platform = espressif32
framework = espidf
;platform = https://github.com/platformio/platform-espressif32.git
board = nodemcu-32s
board_upload.flash_size = 4MB
board_upload.maximum_size = 4194304
board_build.partitions = ESP32_OTA_4M.csv
board_build.embed_files = src/cert/ca_cert.pem
monitor_speed = 115200
debug_tool = olimex-arm-usb-ocd-h
debug_speed = 8000
build_flags = -DCORE_DEBUG_LEVEL=5
extra_scripts = pre:auto_firmware_version.py

auto_firmware_version.py (placed in the src dir):

import subprocess

Import("env", "projenv")

def get_firmware_specifier_build_flag():
    #ret = subprocess.run(["git", "describe"], stdout=subprocess.PIPE, text=True) #Uses only annotated tags
    ret = subprocess.run(["git", "describe", "--tags"], stdout=subprocess.PIPE, text=True) #Uses any tags

    build_version = ret.stdout.strip()
    build_flag = "-D AUTO_VERSION=\\\"" + build_version + "\\\""
    print ("Firmware Revision: " + build_version)
    return (build_flag)

env.Append( BUILD_FLAGS=[get_firmware_specifier_build_flag()])

Should be in the root of project, or change to extra_scripts = pre:src/auto_firmware_version.py

@ivankravets Thanks that did it!
So for clarity, the messages actually meant that the script was “nowhere to be found”?

Just so you’re aware, in my experience, dynamically defining things on each build will result in riddiculous build times since the define change will also be applied to all the core files (or at least this happens with Arduino) and no cached object files will be reused since the compiler doesn’t know where the changed define is used necessarily.

I would instead recommend you dynamically create a firmware_version.h file and only include that where you need it

2 Likes

warning: Calling missing SConscript without error is deprecated.
Transition by adding must_exist=False to SConscript calls.
Missing SConscript ‘C:\Users\Jackson\Downloads\Marlin-2.1.2.1 2\buildroot\share\PlatformIO\scripts\configuration.py’
File “C:\Users\Jackson.platformio\penv\Lib\site-packages\platformio\builder\main.py”, line 167, in

warning: Ignoring missing SConscript ‘C:\Users\Jackson\Downloads\Marlin-2.1.2.1 2\buildroot\share\PlatformIO\scripts\common-dependencies.py’
File “C:\Users\Jackson.platformio\penv\Lib\site-packages\platformio\builder\main.py”, line 167, in

warning: Ignoring missing SConscript ‘C:\Users\Jackson\Downloads\Marlin-2.1.2.1 2\buildroot\share\PlatformIO\scripts\common-cxxflags.py’
File “C:\Users\Jackson.platformio\penv\Lib\site-packages\platformio\builder\main.py”, line 167, in

warning: Ignoring missing SConscript ‘C:\Users\Jackson\Downloads\Marlin-2.1.2.1 2\buildroot\share\PlatformIO\scripts\preflight-checks.py’
File “C:\Users\Jackson.platformio\penv\Lib\site-packages\platformio\builder\main.py”, line 167, in

warning: Ignoring missing SConscript ‘C:\Users\Jackson\Downloads\Marlin-2.1.2.1 2\buildroot\share\PlatformIO\scripts\stm32_serialbuffer.py’
File “C:\Users\Jackson.platformio\penv\Lib\site-packages\platformio\builder\main.py”, line 167, in
CONFIGURATION: Redirecting...
PLATFORM: ST STM32 (12.1.1) > STM32F103RE (64k RAM. 512k Flash)
HARDWARE: STM32F103RET6 72MHz, 64KB RAM, 512KB Flash
DEBUG: Current (blackmagic) External (blackmagic, cmsis-dap, jlink, stlink)
PACKAGES:

  • framework-arduinoststm32 @ 4.10900.200819 (1.9.0)
  • framework-cmsis @ 2.50501.200527 (5.5.1)
  • toolchain-gccarmnoneeabi @ 1.90201.191206 (9.2.1)
    LDF: Library Dependency Finder → Library Dependency Finder (LDF) — PlatformIO latest documentation
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 10 compatible libraries
    Scanning dependencies…
    No dependencies
    Building in release mode

warning: Ignoring missing SConscript ‘C:\Users\Jackson\Downloads\Marlin-2.1.2.1 2\buildroot\share\PlatformIO\scripts\common-dependencies-post.py’
File “C:\Users\Jackson.platformio\penv\Lib\site-packages\platformio\builder\main.py”, line 180, in
*** [C:\Users\Jackson\Downloads\Marlin-2.1.2.1 2.pio\build\STM32F103RE\FrameworkArduinoVariant\PeripheralPins.c.o] Source C:\Users\Jackson\Downloads\Marlin-2.1.2.1 2\.pio\build\STM32F103RE\FrameworkArduinoVariant\PeripheralPins.c' not found, needed by target C:\Users\Jackson\Downloads\Marlin-2.1.2.1 2.pio\build\STM32F103RE\FrameworkArduinoVariant\PeripheralPins.c.o’.
=================================================================== [FAILED] Took 2.30 seconds ===================================================================

Environment Status Duration


STM32F103RE FAILED 00:00:02.298
============================================================== 1 failed, 0 succeeded in 00:00:02.298 ==============================================================

  • The terminal process “C:\Users\Jackson.platformio\penv\Scripts\platformio.exe ‘run’” terminated with exit code: 1.
  • Terminal will be reused by tasks, press any key to close it.

This is what I got, but I don’t know what I’m supposed to do to fix the problem.

Nevermind, thanks, I just realized what I am supposed to do.

I found a different problem it shows me this instead.
extra_scripts =
pre:buildroot/share/PlatformIO/scripts/configuration.py
pre:buildroot/share/PlatformIO/scripts/common-dependencies.py
pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py
pre:buildroot/share/PlatformIO/scripts/preflight-checks.py
post:buildroot/share/PlatformIO/scripts/common-dependencies-post.py