Cmake注意就是一个CmakeLists.txt.

 

下面开始一个一个语法的研读

cmake_minimum_required(VERSION 3.5)   ///检查cmake的版本,至少为3.5

cmake_policy(SET CMP0025 NEW)  // 暂时步研究,看不懂

project(absl CXX)   指定项目的名称,一般和项目的文件夹名称对应  CXX表示为C++程序

add_subdirectory(absl) 可以将指定的文件夹加到build任务列表中

add_executable(main main.cpp) 将名为main.cpp的源文件编译成一个名称为 main 的可执行文件,可以增加多个

set(CMAKE_CXX_STANDARD 11) 设置支持C++11标准

INCLUDE_DIRECTORIES(absl/strings) 包含需要用到的文件夹路径

AUX_SOURCE_DIRECTORY(. SRC_LIST) 把当前目录(.)下所有源代码文件和头文件加入变量SRC_LIST

add_executable(main ${SRC_LIST}) 生成应用程序 main

message("1111111111")  输出111

${CMAKE_SOURCE_DIR} 显示变量的值

find_package(Threads REQUIRED) 寻找系统的线程库 

option(ABSL_RUN_TESTS "If ON, Abseil tests will be run." OFF) 设置值 默认为OFF

include(CTest)   CTest是CMake集成的一个测试工具 enable_testing() 之后 BUILD_TESTING 为true

LINK_LIBRARIES("/home/shenwei/mytt/abseil-tt0627/build/abseil-cpp-master/absl/strings/libabsl_absl_strings.a")

引入静态库

target_link_libraries(main /home/shenwei/mytt/abseil-tt0627/build/abseil-cpp-master/absl/strings/libabsl_absl_strings.a)

链接静态库