Proper runtime executable install location
I thought I'd ask for official clarification here because I've seen conflicting information from different sources. Until recently, I understood that we should be placing node executables under lib/${PROJECT_NAME}
via the RUNTIME
category of the CMake install
command. This seems like the only place ros2 run
and ros2 launch
find them.
However, after doing some Windows development, I discovered shared libraries (.dll
s) have to go under bin/
in the install space, and they also fall under the RUNTIME
category. This is also recommended by the current ament_cmake documentation.
So what is the proper thing to do here? Is everything shifting to being installed under bin/
and the ros2
commands need to be updated to see those files? Or is the expectation now that executable and library targets should always be installed with separate install()
commands into the two different places?