我在CMake中创建一个自定义目标,需要从潜在的多个bash脚本中设置它的环境。
function(create_ros_target NAME DIR DEPENDENCIES)
set(ament_deps "")
foreach(dep ${DEPENDENCIES})
get_target_property(dep_path dep BUILD_PATH)
LIST(APPEND ament_deps ${BUILD_PATH}/install/local_setup.bash)
endforeach(dep)
add_custom_target(${NAME}
COMMAND bash -c "echo ${ament_deps} | xargs -r source ; ament build --symlink-install ${DIR}"
)
set_target_properties(${NAME} PROPERTIES BUILD_PATH ${CMAKE_CURRENT_BINARY_DIR})
endfunction()
我明确地调用了bash,但是我从中得到的错误消息是:
/ bin / sh:xargs -r source:找不到命令
我认为这意味着使用的shell是sh,据我所知,它不知道source
。我该如何解决这个问题?