cmake_minimum_required(VERSION 3.5) #设置工程名 project(threadpool LANGUAGES C CXX) #设置生成的可执行文件名 set(traget_name "threadpool") #包含头文件,类似g++中的-I,CMAKE_SOURCE_DIR是cmake系统变量,指代项目根目录 include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/External/common/Logs ${CMAKE_SOURCE_DIR}/External/common ) #包含源文件,GLOB_RECURSE是不可缺少的 file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ${CMAKE_SOURCE_DIR}/External/common/Logs/*.cpp ${CMAKE_SOURCE_DIR}/External/common/ThreadPool/*.cpp ) #指定文件夹,生成可执行文件,类似g++中的-L add_executable(${traget_name} ${LOCAL_SRC}) #设置一些属性,这些属性只作用于traget_name这个目标,并且优先级高于全局选项 #set_target_properties(${traget_name} #PROPERTIES # C_STANDARD 11 #) target_link_libraries(${traget_name} PRIVATE fmt::fmt spdlog::spdlog ) #为target添加需要链接的共享库,相当于g++编译器的-l参数 #注意,这条命令要放到add_executable()之后 # target_link_libraries(${traget_name} pthread)