Closed ar7eniyan closed 1 year ago
Maybe build_src_flags = -DTHIS_MACRO_WONT_WORK=42
?
Maybe
build_src_flags = -DTHIS_MACRO_WONT_WORK=42
?
This doesn't build either. It's not just macro definitions that don't work, but any compiler options as well.
Macros can be tricky. This one works
[env:esp32dev]
platform = espressif32 @ 6.1.0
board = esp32dev
framework = espidf
build_flags = -DTHIS_MACRO_WONT_WORK='42'
build_flags = -DTHIS_MACRO_WONT_WORK='42'
Not build_flags
, but build_src_flags
. The point is that the first one works and the second one doesn't.
Your orig. example is not correct at all. Without escaping the value it shouldnt work.
But yes there is a bug with build_src_flags = -DTHIS_MACRO_WONT_WORK='42'
Strange why it should work for atmelavr
imho this is in Platformio Core
Here https://github.com/platformio/platformio-core/blob/develop/platformio/builder/tools/piolib.py#L942
Found a workaround by using target_compile_options() in a main component's cmakelists (\<project>/src/CMakeLists.txt):
target_compile_options(${COMPONENT_LIB} PRIVATE <options>)
Defines and include search directories can be added using more specific commands: target_compile_definitions()/target_include_directories()
Can someone mark this issue as a bug?
Thanks for reporting, should be fixed in the dev branch.
I'm not sure if my problem is related but I used build_src_flags in platformio.ini specific board sections to include appropriate header file based on the board used. Here is a short example :
...
[env:lilygo-t-display-s3]
...
build_src_flags =
${env.build_src_flags}
-include lib/boards/Lilygo-T-Display-S3.hpp
[env:makerfabs-s3-35]
...
build_src_flags =
${env.build_src_flags}
-include lib/boards/MakerFabs_Parallel_S3.hpp
...
But it seems that the appropriate #include is not considered in src/main.cpp as expected when building. A specific function is not found with this method (but is found when I add the #include directly in the main.cpp).
Or is it me who don't understand how to implement the behavior I need ?
@udem1234, just run your project in verbose mode and check if your -include
flag is correctly passed to the compiler.
Setting
build_src_flags
to anything doesn't pass the flags to the compiler on esp32 boards. Creating the issue here because the same configuration does compile onplatform = atmelavr
andboard = uno
.platformio.ini
main.c
Verbose build log