修改cmake结构,方便后续调试

This commit is contained in:
建峰 2024-09-01 17:05:05 +08:00
parent c1f45b94a4
commit a283d3bf14
7 changed files with 24 additions and 73 deletions

View File

@ -1,69 +1,12 @@
# 0. cmake 最低版本号要求
cmake_minimum_required(VERSION 3.8) cmake_minimum_required(VERSION 3.8)
# 0. 项目信息
project(demo) project(demo)
# 2. 添加当前路径
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# 2. 配置项目
option(USE_DEMO "use demo application interface" ON)
set(VERSION "1.0")
# 2. 配置文件
configure_file(
"${PROJECT_SOURCE_DIR}/config.h.in"
"${PROJECT_BINARY_DIR}/config.h"
)
# 2. 配置条件
if(USE_DEMO)
# include_directories(.)
# else()
# pass
endif(USE_DEMO)
# 0. 查找当前目录下的所有文件并将名称保存在DIR_SRC中
aux_source_directory(. DIR_SRC)
# 1. 添加子目录
add_subdirectory(src)
# 1. 添加头文件路径
include_directories(src)
# 0. 指定生成目标
add_executable(demo ${DIR_SRC})
# 1. 添加链接库
# 1.A 如果是动态库修改了安装路径之后exe就找不到了怎么破
# link_directories(${PROJECT_SOURCE_DIR}/lib)
# target_link_libraries(demo list_d)
# 1.B 静态库
target_link_libraries(demo list)
# 3. 配置安装路径
set(CMAKE_INSTALL_PREFIX "./release") 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_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall") set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
# add_subdirectory(library)
# 构建一个 CPack 安装包windows还得添加打包工具 add_subdirectory(src)
#
# include (InstallRequiredSystemLibraries)
# set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
# set (CPACK_PACKAGE_VERSION_MAJOR "${VERSION}")
# include (CPack)

View File

@ -1,2 +0,0 @@
#cmakedefine USE_DEMO
#cmakedefine VERSION "@VERSION@"

13
library/CMakelists.txt Normal file
View File

@ -0,0 +1,13 @@
project(class)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# 当前目录下的文件 -> 写入变量
aux_source_directory(. SRCS)
# 生成链接库
add_library(${PROJECT_NAME} SHARED ${SRCS})
# 配置安装库
install (TARGETS ${PROJECT_NAME} DESTINATION bin)

View File

@ -1,17 +1,14 @@
# 当前目录下的文件 -> 写入变量 project(demo)
aux_source_directory(. DIR_LIB_SRC) set(CMAKE_INCLUDE_CURRENT_DIR ON)
# 生成链接库 aux_source_directory(. SRCS)
# add_library(list ${DIR_LIB_SRC})
add_library(list STATIC ${DIR_LIB_SRC})
add_library(list_d SHARED ${DIR_LIB_SRC})
# 配置安装头文件 add_executable(${PROJECT_NAME} ${SRCS})
install (FILES list.h DESTINATION include)
# 配置安装库
install (TARGETS list DESTINATION bin)
# install (TARGETS list_d DESTINATION bin) target_link_libraries(
# install (TARGETS list_d DESTINATION lib) ${PROJECT_NAME}
class
)
install(TARGETS ${PROJECT_NAME} DESTINATION bin)

View File