[笔记]Modern CMake 2:基本介绍

本文详细介绍了CMake的基本用法,包括设置最低版本、创建project、生成可执行程序和library、添加目标的包含目录、变量与缓存管理、CMake编程技巧如控制流、生成表达式、宏和函数的使用。强调了CMakeLists.txt的编写规范和最佳实践。
摘要由CSDN通过智能技术生成


Modern CMake 2:基本介绍

最低版本

CMakeLists.txt的第一行通常都是:

cmake_minimum_required(VERSION 3.1)

请注意,cmake_minimun_required是不区分大小写的,但根据Modern CMake 1:Modern CMake简介中的正确模式所言,函数名需要使用小写。在CMake3.12中,对最低版本的要求可以是一个区间,比如VERSION 3.1…3.12,因此,在新工程中我们应该这写:

cmake_minimun_requeired(VERSION 3.1...3.14)
if(${CMAKE_VERSION} VERSION_LESS 3.12)
    cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
endif()

设置project

设置project通常看起来像这样:

project(MyProject VERSION 1.0
    DESCRIPTION "Very nice project"
    LANGUAGES CXX
    )

可选语言有C,CXX,Fortran,CUDA(CMAKE3.7+)。默认的是C CXXDESCRIPTION是在CMake3.9引入的,可以对project进行描述。

生成可执行程序

add_executable(one two.cpp three.h)

one即时exe的名字,也是CMake target的名字。紧接着是源代码文件列表。

生成library

生成library,使用函数add_library,如:

add_library(one STATIC two.cpp three.h)

我们可以选择生成库的类型,如STATICSHAREDMODULE。默认选项是BUILD_SHARED_LIBS,将根据其值是否为真决定是STATIC还是SHARED

给target添加包含目录

target_include_directories(one PUBLIC include)

target_include_directories把include目录添加给target。PUBLIC关键字对exe来说没有太大的意义&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值