修改catkin_simple以适应单个repo中多个action
原相关代码块
# add action files if available
set(${PROJECT_NAME}_LOCAL_ACTION_DIR ${CMAKE_CURRENT_SOURCE_DIR}/action)
if(NOT IS_DIRECTORY ${${PROJECT_NAME}_LOCAL_ACTION_DIR})
set(${PROJECT_NAME}_LOCAL_ACTION_DIR)
endif()
if(${PROJECT_NAME}_LOCAL_ACTION_DIR)
add_action_files(DIRECTORY action)
set(${PROJECT_NAME}_DO_MESSAGE_GENERATION TRUE)
endif()
改为
# add action files if available
set(${PROJECT_NAME}_LOCAL_ACTION_DIR ${CMAKE_CURRENT_SOURCE_DIR}/action)
message("The value of ${PROJECT_NAME}_LOCAL_ACTION_DIR is: ${${PROJECT_NAME}_LOCAL_ACTION_DIR}")
message(${CMAKE_CURRENT_SOURCE_DIR})
if(NOT IS_DIRECTORY ${${PROJECT_NAME}_LOCAL_ACTION_DIR})
set(${PROJECT_NAME}_LOCAL_ACTION_DIR)
endif()
if(${PROJECT_NAME}_LOCAL_ACTION_DIR)
message("Adding action files from directory: ${${PROJECT_NAME}_LOCAL_ACTION_DIR}")
file(GLOB_RECURSE ACTION_FILES "${${PROJECT_NAME}_LOCAL_ACTION_DIR}/*.action")
message("Found the following .action files:")
foreach(ACTION_FILE IN LISTS ACTION_FILES)
message("action file: ${ACTION_FILE}")
get_filename_component(ACTION_FILE_DIR ${ACTION_FILE} DIRECTORY)
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" ACTION_FILE_DIR ${ACTION_FILE_DIR})
message("Adding action in dir: ${ACTION_FILE_DIR}")
add_action_files(DIRECTORY ${ACTION_FILE_DIR})
endforeach()
set(${PROJECT_NAME}_DO_MESSAGE_GENERATION TRUE)
endif()
原catkin_simple只支持在包下面名为action文件夹下存在的.action文件, 修改后action文件夹下可以新建比如test_action文件夹, 其内存放相关.action文件, 可使用catkin_simple自动编译