# 定义要创建的库列表及其对应的目录 set(LIBRARIES HW_LIB_List src/list inc/list HW_LIB_Task src/task inc/task HW_LIB_Printf src/printf inc/printf HW_LIB_Utils src/utils inc/utils HW_LIB_Font src/font inc/font HW_LIB_Iic src/iic inc/iic HW_LIB_Spi src/spi inc/spi HW_LIB_Key src/key inc/key HW_LIB_Oled src/oled inc/oled HW_LIB_Tft src/tft inc/tft ) # 循环浏览库列表以创建它们 list(LENGTH LIBRARIES LIBRARIES_LENGTH) math(EXPR LIBRARIES_LENGTH "${LIBRARIES_LENGTH}-1") foreach (INDEX RANGE 0 ${LIBRARIES_LENGTH} 3) list(GET LIBRARIES ${INDEX} TARGET_NAME) MATH(EXPR SOURCE_DIR_INDEX "${INDEX}+1") MATH(EXPR INCLUDE_DIR_INDEX "${INDEX}+2") list(GET LIBRARIES ${SOURCE_DIR_INDEX} SOURCE_DIR) list(GET LIBRARIES ${INCLUDE_DIR_INDEX} INCLUDE_DIR) file(GLOB_RECURSE LIB_SOURCES "${SOURCE_DIR}/*.c" "${SOURCE_DIR}/*.cpp") add_library(${TARGET_NAME} STATIC ${LIB_SOURCES} src/tft/tft.cpp inc/tft/tft.h) target_include_directories(${TARGET_NAME} PUBLIC "${INCLUDE_DIR}") endforeach () # 链接必要的库 target_link_libraries(HW_LIB_Spi HW_LIB_Utils) target_link_libraries(HW_LIB_Oled HW_LIB_Font)