mirror of
https://gitee.com/apaki/cmake_demo.git
synced 2025-05-17 20:01:36 +08:00
修改cmake结构,方便后续调试
This commit is contained in:
parent
c1f45b94a4
commit
a283d3bf14
@ -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)
|
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
#cmakedefine USE_DEMO
|
|
||||||
#cmakedefine VERSION "@VERSION@"
|
|
13
library/CMakelists.txt
Normal file
13
library/CMakelists.txt
Normal 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)
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user