From c4709707c52a44dfe894c9441c70ac31c9771594 Mon Sep 17 00:00:00 2001 From: jf_HS Date: Mon, 25 Dec 2023 13:22:24 +0800 Subject: [PATCH] =?UTF-8?q?1.=E9=85=8D=E7=BD=AE=E5=AE=89=E8=A3=85=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=202.=E5=90=AF=E7=94=A8=E6=B5=8B=E8=AF=95=203.?= =?UTF-8?q?=E6=94=AF=E6=8C=81gdb=E4=BB=A5=E5=8F=8A=E9=85=8D=E7=BD=AEgcc?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakelists.txt | 17 +++++++++++++++++ config.h.in | 3 ++- main.c | 14 ++++++++++++-- mk.bat | 2 ++ src/CMakelists.txt | 4 ++++ 5 files changed, 37 insertions(+), 3 deletions(-) diff --git a/CMakelists.txt b/CMakelists.txt index 01a0e29..a3a7db8 100644 --- a/CMakelists.txt +++ b/CMakelists.txt @@ -10,6 +10,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) # 2. 配置项目 option(USE_DEMO "use demo application interface" ON) +set(VERSION "1.0") # 2. 配置文件 configure_file( @@ -38,3 +39,19 @@ add_executable(demo ${DIR_SRC}) # 1. 添加链接库 target_link_libraries(demo list) + +# 3. 配置安装路径 +set(CMAKE_INSTALL_PREFIX "./release") +install(TARGETS demo DESTINATION bin) +install (FILES "${PROJECT_BINARY_DIR}/config.h" + DESTINATION include) + +# 4. 启用测试 +enable_testing() +# 测试程序是否成功运行 +add_test (NAME test_demo COMMAND demo 1 2 3 5 8) + +# 5. 支持GDB +set(CMAKE_BUILD_TYPE "Debug") +set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") +set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall") diff --git a/config.h.in b/config.h.in index 58faf5d..458ea57 100644 --- a/config.h.in +++ b/config.h.in @@ -1 +1,2 @@ -#cmakedefine USE_DEMO \ No newline at end of file +#cmakedefine USE_DEMO +#cmakedefine VERSION "@VERSION@" \ No newline at end of file diff --git a/main.c b/main.c index 8d4948c..092b0e3 100644 --- a/main.c +++ b/main.c @@ -17,9 +17,19 @@ void list_demo(void) list_print(&list); } - -void main(int arg, char *argv[]) +int main(int argc, char *argv[]) { + printf("----- Version = %s -----\n", VERSION); + + if(argc != 1) + { + printf("# Program = [%s]\n", argv[0]); + for(uint32_t i = 1; i < argc; i++) + { + printf("# Param[%d] = %s\n", i ,argv[i]); + } + } + #ifndef USE_DEMO printf("list test!\n"); struct list_t list; diff --git a/mk.bat b/mk.bat index 9eb6d2a..8eee1f1 100644 --- a/mk.bat +++ b/mk.bat @@ -2,3 +2,5 @@ cmake . -G "MinGW Makefiles" -B build make -C build +make -C build install +make -C build test diff --git a/src/CMakelists.txt b/src/CMakelists.txt index 29f2e5a..405094d 100644 --- a/src/CMakelists.txt +++ b/src/CMakelists.txt @@ -4,3 +4,7 @@ aux_source_directory(. DIR_LIB_SRC) # 生成链接库 add_library(list ${DIR_LIB_SRC}) + +# 配置安装路径 +install (TARGETS list DESTINATION bin) +install (FILES list.h DESTINATION include)