CMakeList_first - shigaopb/doc GitHub Wiki
add_library(llt_motion_lib STATIC) target_link_libraries(llt_motion_lib PUBLIC $<BUILD_INTERFACE:intf_llt_src> PRIVATE llt_comm_stub_obj ) target_include_directories(llt_motion_lib PRIVATE ${TOP_DIR}/src/inc ) file(GLOB_RECURSE MOTION_FILE_LIST ) target_sources(llt_motion_lib PRIVATE ${MOTION_FILE_LIST} )
静态库合并
set(ECS_MOTION_COMB_LIB_FILE ${CMAKE_CURRENT_BINARY_DIR}/llt_motion_comb.a) set(ECS_MOTION_COMB_FILE_LIST $<TARGET_FILE:llt_motion_lib> )
static_lib_combine("llt_motion_comb" "${ECS_MOTION_COMB_LIB_FILE}" "${ECS_MOTION_COMB_FILE_LIST}") gen_symblist_file("${ECS_MOTION_COMB_LIB_FILE}") message(STATUS "symb list file: ${SYMBLIST_FILE}")
声明合并的lib
add_library(llt_motion_comb_lib STATIC IMPORTED GLOBAL) set_target_properties(llt_motion_comb_lib PROPERTIES IMPORTED_LOCATION ${ECS_MOTION_COMB_LIB_FILE} ) add_dependencies(llt_motion_comb_lib llt_motion_comb) INSTALL(FILES ${ECS_MOTION_COMB_LIB_FILE} DESTINATION ${TOP_DIR}/llt/motion OPTIONAL)
add_executable(llt_motion_elf ${TOP_DIR}/llt/test_prj/test/main.cc ${SYMBLIST_FILE} ) set_target_properties(llt_motion_elf PROPERTIES OUTPUT_NAME llt_motion.elf )
target_include_directories(llt_motion_elf PRIVATE ${TOP_DIR}/src/inc )
target_link_options(llt_motion_elf PRIVATE -Wno-reorder -Wl,--start-group )
target_link_libraries(llt_motion_elf PRIVATE $<BUILD_INTERFACE:intf_llt_pub> llt_helper_obj xml2 )
INSTALL(TARGETS llt_motion_elf RUNTIME DESTINATION ${TOP_DIR}/llt/motion OPTIONAL) add_subdirectory(PMAC) add_subdirectory(lift) add_subdirectory(vacrobot)