-
Notifications
You must be signed in to change notification settings - Fork 111
Description
Issue template
- Hardware description: esp32 dev
- Installation type: platformIO CLI
- Version or commit hash: kilted
Steps to reproduce the issue
Running library installation in terminal
$ pio lib install
platformio.ini
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
board_microros_transport = serial
lib_deps =
https://github.com/micro-ROS/micro_ros_platformioExpected behavior
Successful build
Actual behavior
Building micro-ROS for ESP32 fails because the build system tries to compile rmw_test_fixture which seemingly requires desktop ROS 2 dependencies not available in PlatformIO environment.
Build fails with rmw_test_fixture error:
Start of build:
Resolving esp32dev dependencies...
Already up-to-date.
Updating metadata for the vscode IDE...
UserSideException: Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)
--------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (6.12.0) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, 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 @ 3.20017.241212+sha.dcc1105b
- tool-esptoolpy @ 2.40900.250804 (4.9.0)
- toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Installing importlib-resources with pip at PlatformIO environment
. . .
Configuring esp32dev with transport serial
Downloading micro-ROS dev dependencies
- Downloaded ament_cmake
- Downloaded ament_lint
- Downloaded ament_package
- Downloaded googletest
- Downloaded ament_cmake_ros
- Downloaded ament_index
Building micro-ROS dev dependencies
Build dev micro-ROS environment failed:
/home/kristijan/.platformio/penv/lib/python3.12/site-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'tests_require'
warnings.warn(msg)
/home/kristijan/.platformio/penv/lib/python3.12/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.Actual error:
!!
self._finalize_license_expression()
---
--- stderr: rmw_test_fixture
CMake Error at CMakeLists.txt:6 (find_package):
By not providing "Findrmw.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "rmw", but
CMake did not find one.
Could not find a package configuration file provided by "rmw" with any of
the following names:
rmwConfig.cmake
rmw-config.cmake
Add the installation prefix of "rmw" to CMAKE_PREFIX_PATH or set "rmw_DIR"
to a directory containing one of the above files. If "rmw" provides a
separate development package or SDK, be sure it has been installed.
---
Failed <<< rmw_test_fixture [0.17s, exited with code 1]Full build log:
https://gist.github.com/KristijanPruzinac/232e40f7eb1288f643e02b3601738d73
Additional information
The issue only presented itself when i tried to enable multithreading by adding
board_microros_user_meta = microros_multithread.metato platformio.ini
and creating a microros_multithread.meta file at same directory level as ini file
{
"names": {
"microxrcedds_client": {
"cmake-args": [
"-DUCLIENT_PROFILE_MULTITHREAD=ON"
]
}
}
}It seems the multithreading also enables some tests which mess up the colcon build. Since doing this the issue remained and I have not been able to build the library without the option. It was working before trying this. Im not sure if something is corrupted in some library cache or not. I tried full clean, deleting cache, manually removing .pio and .vscode directories, pio pkg uninstall, and full PlatformIO rm -rf and reinstall but the issue persists.
I have also tried disabling tests by doing
{
"names": {
"microxrcedds_client": {
"cmake-args": [
"-DUCLIENT_BUILD_TESTS=OFF",
"-DUCLIENT_BUILD_EXAMPLES=OFF",
"-DUCLIENT_BUILD_CI_TESTS=OFF"
]
},
"rmw_microxrcedds": {
"cmake-args": [
"-DBUILD_TESTING=OFF",
"-DRMW_UXRCE_BUILD_TESTS=OFF"
]
},
"rcl": {
"cmake-args": [
"-DBUILD_TESTING=OFF"
]
},
"rcutils": {
"cmake-args": [
"-DENABLE_TESTING=OFF"
]
}
}
}but to no avail.
My original goal was to enable multithreading so i can use multiple concurrent nodes in my system.