CMake继续学习

现在看到一个开源代码的CMakeLists文件,现在来学习里面的一些东西;

${PROJECT_SOURCE_DIR}
    文件里有多个这个,这是获取变量PROJECT_SOURCE_DIR的值;但是没看到PROJECT_SOURCE_DIR的定义;PROJECT_SOURCE_DIR是CMake的预定义
变量表示工程的根目录;
    我当前的代码在 D:\3dtile\Cesium3DTilesConverter-master 目录;是不是指这个目录;

    还有2个常用的预定义变量是,
    PROJECT_BINARY_DIR    运行 cmake 命令的目录,通常是 ${PROJECT_SOURCE_DIR}/build
    PROJECT_NAME    返回通过 project 命令定义的项目名称;

set(CMAKE_CXX_STANDARD 17)

    这是指定C++标准;这里指定了17,那么项目要在支持C++17的编译环境才能编译;

    C++标准有以下;
    C++98/C++03标准,C++11标准,C++14标准,C++17标准,C++20标准,C++23标准;


CMAKE_MODULE_PATH
    预定义变量;定义自己的 cmake 模块所在的路径,SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake),然后可以用INCLUDE命令来调
用自己的模块

CMAKE_CURRENT_SOURCE_DIR
    预定义变量;当前处理的 CMakeLists.txt 所在的路径;

EXECUTABLE_OUTPUT_PATH
    预定义变量;重新定义目标二进制可执行文件的存放位置;

LIBRARY_OUTPUT_PATH
    重新定义目标链接库文件的存放位置;

CMAKE_BUILD_TYPE
    CMake可以配置构建类型,例如:Debug、Release等,控制生成构建系统使用的配置变量 是 CMAKE_BUILD_TYPE 。该变量默认为空,CMake识别的值为:

    Debug:用于在没有优化的情况下,使用带有调试符号构建库或可执行文件。
    Release:用于构建的优化的库或可执行文件,不包含调试符号。
    RelWithDebInfo:用于构建较少的优化库或可执行文件,包含调试符号。
    MinSizeRel:用于不增加目标代码大小的优化方式,来构建库或可执行文件。


PROJECT_HEADERS
    里面还有个这个,还不知是啥;看上去是指头文件文件夹或者全部的头文件;


 

你可能感兴趣的:(VC++,c++,cmake)