# 设置版本限制
cmake_minimum_required(VERSION 3.10)
# 设置项目名称
project(libecc C)
# 设置头文件目录
include_directories(include)
# 设置编译选项
add_compile_options(-Wall -pedantic -fno-builtin -std=c99)
# 交叉编译时启用
# 设置交叉编译器
#set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
# 设置库文件搜索根目 (交叉编译的链接库位于/usr/arm-linux-gnueabihf下)
#set(CMAKE_FIND_ROOT_PATH /usr/arm-linux-gnueabihf)
#set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
#set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
#set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
#set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
# 使用FILE(GLOB)来获取对应目录下所有源代码文件
FILE(GLOB FP src/fp/*.c)
FILE(GLOB CURVES src/curves/*.c)
FILE(GLOB NN src/nn/*.c)
FILE(GLOB SIG src/sig/*.c)
FILE(GLOB HASH src/hash/*.c)
FILE(GLOB UTILS src/utils/*.c)
# 使用MESSAGE可以打印消息
MESSAGE("source files in utils:${UTILS}")
# 生成静态库
add_library(ecc
${FP}
${CURVES}
${HASH}
${NN}
${SIG}
${UTILS}
)
# 生成动态库,参数为(目标名称 [SHARED] 源代码文件)
# 默认生成静态链接库,使用SHARED指定生成动态链接库
add_library(ec SHARED
${FP}
${CURVES}
${NN}
${UTILS})
# 生成可执行程序
add_executable(fp_test
src/fp/test.c
${FP}
${NN}
${UTILS})
# 搜索库文件,将路径保存到LIB_PTHREAD中
find_library(LIB_PTHREAD pthread)
# 链接指定库
target_link_library(fp_test ${LIB_PTHREAD})
CMAKE基础示例
最新推荐文章于 2022-08-19 21:11:15 发布