system/microros: Wire libmicroros include layout and sim final link.

libmicroros is installed by colcon under include/<pkg>/<pkg>/file.h
for ament-packaged headers (e.g. rcl, rmw, rosidl) and the flat
include/<pkg>/file.h for a few others (e.g. rclc). A single
-I include/ therefore resolves <rclc/rclc.h> but not <rcl/rcl.h>.

Enumerate every immediate subdirectory of include/ in addition to
include/ itself so both layouts resolve.

Switch the library hand-off from LDLIBS to EXTRA_LIBS. The sim
target's final link pulls EXTRA_LIBS, not LDLIBS, so the previous
form left rcl/rclc/rcutils symbols unresolved.

Signed-off-by: Arjav Patel <arjav1528@gmail.com>
This commit is contained in:
Arjav Patel 2026-05-31 10:11:14 +05:30 committed by Xiang Xiao
parent 3d6ea0ccec
commit 0a0118b93c

View file

@ -23,8 +23,10 @@
ifneq ($(CONFIG_SYSTEM_MICROROS),)
CONFIGURED_APPS += $(APPDIR)/system/microros
CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/system/microros/include
CXXFLAGS += ${INCDIR_PREFIX}$(APPDIR)/system/microros/include
MICROROS_INC_DIRS := $(APPDIR)/system/microros/include \
$(wildcard $(APPDIR)/system/microros/include/*)
CFLAGS += $(foreach d,$(MICROROS_INC_DIRS),${INCDIR_PREFIX}$(d))
CXXFLAGS += $(foreach d,$(MICROROS_INC_DIRS),${INCDIR_PREFIX}$(d))
LDLIBS += $(APPDIR)/system/microros/libmicroros.a
EXTRA_LIBS += $(APPDIR)/system/microros/libmicroros.a
endif