加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
CMakeLists.txt 2.00 KB
一键复制 编辑 原始数据 按行查看 历史
The-last-pieces 提交于 2022-04-02 23:51 . base framework
# lib文件输出的目录
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
# exe文件输出的目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# 项目名称
set(APP_NAME WebServer)
# cmake版本
cmake_minimum_required(VERSION 3.10.2)
# 项目版本
project(${APP_NAME} VERSION 1.0.0)
# 根目录
set(BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
# 入口文件
set(MAIN_CPP "${BASE_DIR}/main.cpp")
# .h文件
set(HEAD_FILES)
# .cpp文件
set(SRC_FILES)
# 递归搜索
file(GLOB_RECURSE HEAD_FILES "${BASE_DIR}/*.h")
file(GLOB_RECURSE SRC_FILES "${BASE_DIR}/*.cpp")
# 除去入口文件都编译为lib
list(REMOVE_ITEM SRC_FILES ${MAIN_CPP})
# 编译并链接lib
list(LENGTH SRC_FILES SRC_LENGTH)
if(${SRC_LENGTH})
add_library(serverlib ${SRC_FILES})
link_libraries(serverlib)
endif()
# 编译入口文件+所有头文件
function(include_sub_directories_recursively root_dir)
if (IS_DIRECTORY ${root_dir}) # 当前路径是一个目录吗,是的话就加入到包含目录
# list(APPEND INC_DIR ${root_dir})
message(${root_dir})
include_directories(${root_dir})
endif()
file(GLOB ALL_SUB RELATIVE ${root_dir} ${root_dir}/*) # 获得当前目录下的所有文件,让如ALL_SUB列表中
foreach(sub ${ALL_SUB})
if (IS_DIRECTORY ${root_dir}/${sub})
include_sub_directories_recursively(${root_dir}/${sub}) # 对子目录递归调用,包含
endif()
endforeach()
endfunction()
# set(INC_DIR)
message("entry : ${MAIN_CPP}")
message("includes : ")
include_sub_directories_recursively(${BASE_DIR})
# include_directories(
# "${BASE_DIR}/data"
# "${BASE_DIR}/protocal"
# "${BASE_DIR}/thread"
# "${BASE_DIR}/utils"
# "${BASE_DIR}/web"
# )
add_executable(server ${MAIN_CPP})
# 链接pthread
target_link_libraries(server pthread)
# 打印信息
message("headers : ")
foreach(_var ${HEAD_FILES})
message("${_var}")
endforeach()
message("libs : ")
foreach(_var ${SRC_FILES})
message("${_var}")
endforeach()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化