mirror of
https://gitee.com/apaki/cmake_demo.git
synced 2025-05-18 04:11:37 +08:00
cmake工程结构化
This commit is contained in:
parent
7d3cff8d7c
commit
31a8e9cacc
@ -1,7 +1,21 @@
|
|||||||
|
|
||||||
|
# cmake 最低版本号要求
|
||||||
cmake_minimum_required(VERSION 3.8)
|
cmake_minimum_required(VERSION 3.8)
|
||||||
|
|
||||||
|
# 项目信息
|
||||||
project(demo)
|
project(demo)
|
||||||
|
|
||||||
|
# 查找当前目录下的所有文件
|
||||||
|
# 并将名称保存在DIR_SRC中
|
||||||
aux_source_directory(. DIR_SRC)
|
aux_source_directory(. DIR_SRC)
|
||||||
|
|
||||||
|
# 添加子目录
|
||||||
|
add_subdirectory(src)
|
||||||
|
|
||||||
|
# 添加头文件路径
|
||||||
|
include_directories(src)
|
||||||
|
|
||||||
|
# 指定生成目标
|
||||||
add_executable(demo ${DIR_SRC})
|
add_executable(demo ${DIR_SRC})
|
||||||
|
|
||||||
|
target_link_libraries(demo list)
|
||||||
|
87
main.c
87
main.c
@ -3,68 +3,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
typedef struct list_t
|
#include "list.h"
|
||||||
{
|
|
||||||
uint8_t data;
|
|
||||||
struct list_t *next;
|
|
||||||
} list_t;
|
|
||||||
|
|
||||||
void list_init(struct list_t *list)
|
|
||||||
{
|
|
||||||
list->data = 0;
|
|
||||||
list->next = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
void list_add(struct list_t *list, uint8_t data)
|
|
||||||
{
|
|
||||||
struct list_t *p = NULL;
|
|
||||||
p = list;
|
|
||||||
while (p->next != NULL)
|
|
||||||
{
|
|
||||||
p = p->next;
|
|
||||||
if (p->data == data)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
p->next = (struct list_t *)malloc(sizeof(struct list_t));
|
|
||||||
p->next->data = data;
|
|
||||||
p->next->next = NULL;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void list_print(struct list_t *list)
|
|
||||||
{
|
|
||||||
struct list_t *p = NULL;
|
|
||||||
p = list;
|
|
||||||
while (p->next != NULL)
|
|
||||||
{
|
|
||||||
printf("%02d\n", p->data);
|
|
||||||
p = p->next;
|
|
||||||
if (p->next == NULL)
|
|
||||||
{
|
|
||||||
printf("%02d\n", p->data);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void list_free(struct list_t *list)
|
|
||||||
{
|
|
||||||
struct list_t *p = NULL;
|
|
||||||
p = list;
|
|
||||||
while (p->next != NULL)
|
|
||||||
{
|
|
||||||
p = p->next;
|
|
||||||
free(p->next);
|
|
||||||
p->next = NULL;
|
|
||||||
if (p->next == NULL)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void list_demo(void)
|
void list_demo(void)
|
||||||
{
|
{
|
||||||
@ -81,24 +20,16 @@ void list_demo(void)
|
|||||||
void main(int arg, char *argv[])
|
void main(int arg, char *argv[])
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
uint32_t i = 0;
|
struct list_t list;
|
||||||
for (i = 0; i < 10; ++i)
|
list_init(&list);
|
||||||
{
|
|
||||||
printf("%02d\n", i);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
printf("Hello World!\n");
|
list_add(&list, 1);
|
||||||
|
list_add(&list, 2);
|
||||||
|
list_add(&list, 3);
|
||||||
|
list_add(&list, 4);
|
||||||
|
|
||||||
|
list_print(&list);
|
||||||
#else
|
#else
|
||||||
// struct list_t list;
|
|
||||||
// list_init(&list);
|
|
||||||
// list_add(&list, 1);
|
|
||||||
// list_add(&list, 2);
|
|
||||||
// list_add(&list, 3);
|
|
||||||
// list_add(&list, 4);
|
|
||||||
|
|
||||||
// list_print(&list);
|
|
||||||
|
|
||||||
list_demo();
|
list_demo();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
6
src/CMakelists.txt
Normal file
6
src/CMakelists.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
# 当前目录下的文件 -> 写入变量
|
||||||
|
aux_source_directory(. DIR_LIB_SRC)
|
||||||
|
|
||||||
|
# 生成链接库
|
||||||
|
add_library(list ${DIR_LIB_SRC})
|
58
src/list.c
Normal file
58
src/list.c
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
|
||||||
|
#include "list.h"
|
||||||
|
|
||||||
|
void list_init(struct list_t *list)
|
||||||
|
{
|
||||||
|
list->data = 0;
|
||||||
|
list->next = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void list_add(struct list_t *list, uint8_t data)
|
||||||
|
{
|
||||||
|
struct list_t *p = NULL;
|
||||||
|
p = list;
|
||||||
|
while (p->next != NULL)
|
||||||
|
{
|
||||||
|
p = p->next;
|
||||||
|
if (p->data == data)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p->next = (struct list_t *)malloc(sizeof(struct list_t));
|
||||||
|
p->next->data = data;
|
||||||
|
p->next->next = NULL;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void list_print(struct list_t *list)
|
||||||
|
{
|
||||||
|
struct list_t *p = NULL;
|
||||||
|
p = list;
|
||||||
|
while (p->next != NULL)
|
||||||
|
{
|
||||||
|
printf("%02d\n", p->data);
|
||||||
|
p = p->next;
|
||||||
|
if (p->next == NULL)
|
||||||
|
{
|
||||||
|
printf("%02d\n", p->data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void list_free(struct list_t *list)
|
||||||
|
{
|
||||||
|
struct list_t *p = NULL;
|
||||||
|
p = list;
|
||||||
|
while (p->next != NULL)
|
||||||
|
{
|
||||||
|
p = p->next;
|
||||||
|
free(p->next);
|
||||||
|
p->next = NULL;
|
||||||
|
if (p->next == NULL)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
20
src/list.h
Normal file
20
src/list.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
#ifndef _LIST_H_
|
||||||
|
#define _LIST_H_
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
typedef struct list_t
|
||||||
|
{
|
||||||
|
uint8_t data;
|
||||||
|
struct list_t *next;
|
||||||
|
} list_t;
|
||||||
|
|
||||||
|
void list_init(struct list_t *list);
|
||||||
|
void list_add(struct list_t *list, uint8_t data);
|
||||||
|
void list_print(struct list_t *list);
|
||||||
|
void list_free(struct list_t *list);
|
||||||
|
|
||||||
|
#endif
|
@ -1,8 +0,0 @@
|
|||||||
|
|
||||||
#include "test.h"
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
void test()
|
|
||||||
{
|
|
||||||
printf("test\n");
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user