#module名称 set(MODULE_NAME "viz_can_sample") #调用函数,把src,generated的子目录分别保存在变量中,filters可用于过滤包含指定字符串的文件夹 list(APPEND filters "") #调用函数,把src子目录保存在SRC_DIRS变量中 #list_sub_dir(SRC_DIRS ${CMAKE_CURRENT_SOURCE_DIR} "${filters}") #调用函数,把generated子目录保存在GENERATED_DIRS变量中 #list_sub_dir(GENERATED_DIRS ${CMAKE_SOURCE_DIR}/generated "${filters}") #把目录下的c和c++所有源文件分别保存在变量中 file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.c ${CMAKE_CURRENT_SOURCE_DIR}/*.cxx ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/*.cc ${CMAKE_SOURCE_DIR}/generated/*.cpp) #默认编译c和c++文件 add_executable(${MODULE_NAME} ${SOURCES}) target_message_generation(TARGET ${MODULE_NAME} MESSAGE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/can) #用户可在此添加编译选项 #eg: target_compile_options(${MODULE_NAME} PRIVATE -Wall USER_COMPILE_OPTIONS) target_compile_options(${MODULE_NAME} PRIVATE -Wall) #用户可在此添加头文件路径 target_include_directories(${MODULE_NAME} PRIVATE ${SRC_DIRS} ${GENERATED_DIRS} ${AP_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/ap-cm-wrapper ${CMAKE_SOURCE_DIR}/generated/includes ) #用户可在此添加链接库 target_link_libraries(${MODULE_NAME} PRIVATE ${AP_LIBRARIES} visual jsoncpp yaml-cpp pthread) #用户可在此添加链接参数 #eg: set_target_properties(${MODULE_NAME} PROPERTIES LINK_FLAGS_ "-Wl,--as-needed USER_LINK_OPTIONS") set_target_properties(${MODULE_NAME} PROPERTIES LINK_FLAGS "-Wl,--as-needed") set_target_properties(${MODULE_NAME} PROPERTIES LINK_FLAGS_RELEASE "-s") #用户添加module依赖 #add_dependencies(${MODULE_NAME} USER_DEPENDENCIES)