From a257928204ce9dc33cc3ac7385be56cc7255a591 Mon Sep 17 00:00:00 2001 From: JiXieShi Date: Fri, 21 Jun 2024 17:42:02 +0800 Subject: [PATCH] =?UTF-8?q?UP=20=E5=BA=93=E5=AF=BC=E5=85=A5=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 20 ++++++++------------ lib/CMakeLists.txt | 28 ++++++++++++++++++++++++++++ lib/HW_Lib.h | 13 ------------- lib/HW_Lib_conf.h | 8 -------- lib/inc/{arg => utils}/argpase.h | 0 lib/inc/{ => utils}/log.h | 0 lib/inc/{ => utils}/tool.h | 0 lib/src/{arg => utils}/argpase.cpp | 0 lib/src/{ => utils}/tool.cpp | 0 main.c | 19 ++++++++++--------- 10 files changed, 46 insertions(+), 42 deletions(-) delete mode 100644 lib/HW_Lib.h delete mode 100644 lib/HW_Lib_conf.h rename lib/inc/{arg => utils}/argpase.h (100%) rename lib/inc/{ => utils}/log.h (100%) rename lib/inc/{ => utils}/tool.h (100%) rename lib/src/{arg => utils}/argpase.cpp (100%) rename lib/src/{ => utils}/tool.cpp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index f3d3f2e..b377f9a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,22 +2,18 @@ cmake_minimum_required(VERSION 3.27) project(HW_Lib CXX C) set(CMAKE_C_STANDARD 23) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++23") #设置c++的编译选项 -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") #设置c的编译选项 -include_directories( - lib/inc -) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++23") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") -file(GLOB LIB_SUBDIRS "lib/inc/*") -foreach (LIB_SUBDIR ${LIB_SUBDIRS}) - include_directories(${LIB_SUBDIR}) -endforeach () file(GLOB DEMO_SUBDIRS "demo/*") foreach (DEMO_SUBDIR ${DEMO_SUBDIRS}) include_directories(${DEMO_SUBDIR}) endforeach () -file(GLOB_RECURSE SOURCES - "lib/src/*.*" - "demo/*/*.*") + +file(GLOB_RECURSE SOURCES "demo/*/*.*") add_executable(HW_Lib main.c ${SOURCES}) + +add_subdirectory(lib) # 添加子包的CMake配置 +set(LIB_TARGETS_LIST CACHE INTERNAL "List of added libraries" FORCE) +target_link_libraries(HW_Lib HW_LIB_List HW_LIB_Task HW_LIB_Printf HW_LIB_Utils HW_LIB_Iic HW_LIB_Spi) \ No newline at end of file diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index e69de29..bbcf9b6 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -0,0 +1,28 @@ +# 定义要创建的库列表及其对应的目录 +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_Iic src/iic inc/iic + HW_LIB_Spi src/spi inc/spi +) + +# 循环浏览库列表以创建它们 +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}) + target_include_directories(${TARGET_NAME} PUBLIC "${INCLUDE_DIR}") +endforeach () + +# 链接必要的库 +target_link_libraries(HW_LIB_Spi HW_LIB_Utils) \ No newline at end of file diff --git a/lib/HW_Lib.h b/lib/HW_Lib.h deleted file mode 100644 index 489093e..0000000 --- a/lib/HW_Lib.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// Created by lydxh on 2024/5/20. -// - -#ifndef HW_LIB_HW_LIB_H -#define HW_LIB_HW_LIB_H - -#ifdef SW_SPI -#include "" -#endif - - -#endif //HW_LIB_HW_LIB_H diff --git a/lib/HW_Lib_conf.h b/lib/HW_Lib_conf.h deleted file mode 100644 index a559eb1..0000000 --- a/lib/HW_Lib_conf.h +++ /dev/null @@ -1,8 +0,0 @@ -// -// Created by lydxh on 2024/5/20. -// - -#ifndef HW_LIB_CONF_H -#define HW_LIB_CONF_H - -#endif //HW_LIB_CONF_H diff --git a/lib/inc/arg/argpase.h b/lib/inc/utils/argpase.h similarity index 100% rename from lib/inc/arg/argpase.h rename to lib/inc/utils/argpase.h diff --git a/lib/inc/log.h b/lib/inc/utils/log.h similarity index 100% rename from lib/inc/log.h rename to lib/inc/utils/log.h diff --git a/lib/inc/tool.h b/lib/inc/utils/tool.h similarity index 100% rename from lib/inc/tool.h rename to lib/inc/utils/tool.h diff --git a/lib/src/arg/argpase.cpp b/lib/src/utils/argpase.cpp similarity index 100% rename from lib/src/arg/argpase.cpp rename to lib/src/utils/argpase.cpp diff --git a/lib/src/tool.cpp b/lib/src/utils/tool.cpp similarity index 100% rename from lib/src/tool.cpp rename to lib/src/utils/tool.cpp diff --git a/main.c b/main.c index 5c19c3e..a17b1d7 100644 --- a/main.c +++ b/main.c @@ -13,16 +13,17 @@ int main() { srand((unsigned) time(NULL)); int i = 1; -// POUT((++i) + (++i)); + POUT((++i) + (++i)); -// char str[] = "123.456"; -// float result = Str2Float(str); -// printf("Result: %.3f\n", result); -// Test_RunTime("SPI", Test_spi); -// Test_RunTime("IIC", Test_iic); -// Test_RunTime("ArgPase", Test_argpase); -// Test_RunTime("Task", Test_task); -// Test_RunTime("List", Test_List); + char str[] = "123.456"; + float result = Str2Float(str); + printf("Result: %.3f\n", result); + Test_RunTime("SPI", Test_spi); + Test_RunTime("IIC", Test_iic); + Test_RunTime("ArgPase", Test_argpase); + Test_RunTime("List", Test_List); Test_RunTime("Queue", Test_Queue); + Test_RunTime("Task", Test_task); + return 0; }