CMake Practice 学习笔记五--cmake常用变量

news/2024/12/22 23:49:50/

这里列举一些cmake常用变量,后面带**表示常用,了解下,不用全部记住。

1、CMAKE_BINARY_DIR

PROJECT_BINARY_DIR **

<projectname>_BINARY_DIR

这三个变量指代的内容是一样的,如果是 in source 编译,指的就是工程顶层目录,如果是out-ofosource编译,指的就是工程编译发生的目录。

2、CMAKE_SOURCE_DIR

PROJECT_SOURCE_DIR **

<projectname>_SOURCE_DIR

这三个变量指代的内容是一样的。不论采用何种编译方式,都是工程顶层目录。

3、CMAKE_CURRENT_SOURCE_DIR

指的是当前处理CMakeLists.txt所在的路径,比如上面我们提到的src子目录。

4、CMAKE_CURRENT_BINARY_DIR

如果是in-source边柜,它和CMAKE_CURRENT_DIR一样,如果是out-of-source编译,他指的是target编译目录。

使用ADD_SUBDIRECTORY(src bin)可以更改这个变量的值。

使用SET(EXECUTABLE_OUTPUT_PATH <新路径>)并不会对这个变量造成影响,它仅仅是修改了最终目标文件存放的路径。

5、CMAKE_CURRENT_LIST_FILE

输出调用这个变量的CMakLists.txt的完整路径

6、CMAKE_CURRENT_LIST_LINE

输出这个变量所在行

7、CMAKE_CURRENT_PATH

这个变量用来定义自己的cmake模块所在的路径,如下

SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

然后就可以通过INCLUDE指令来调用自己的模块。

8、EXECUTABLE_OUTPUT_PATH和LIBRARY_OUTPUT_PATH **

分别用来重新定义最终结果的存放目录。

9、PROJECT_NAME **

返回通过PORJECT指定定义的项目名称


http://www.ppmy.cn/news/75279.html

相关文章

Python中的apply和lambda函数应用

Python中的apply和lambda函数应用 在pandas中&#xff0c;apply和lambda两个函数的使用方法简介和测试用例。 1、apply Pandas 的 apply() 方法是用来调用一个函数(Python method)&#xff0c;让此函数对数据对象进行批量处理。Pandas 的很多对象都可以使用 apply() 来调用函…

什么是 Schnorr 签名?

在密码学中&#xff0c;Schnorr 签名是由 Schnorr 签名算法生成的数字签名。 与大多数区块链不同&#xff0c;BTC自其早期以来基本保持不变&#xff0c;大多数升级都是有限的&#xff0c;并旨在增强网络的效率而不是功能。BTC协议的更新是非常罕见的&#xff0c;并且通常用于技…

SpringBoot 一个注解,优雅的实现重试机制retry

1&#xff1a;POM配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.…

Godot4节点树右键菜单添加自定义选项

前言 查看godot的源码推荐使用在线版vscode直接从github上看。&#xff08;直接把网址的com改成dev即可&#xff09; 重点查看以下源码 scene_tree_dock.h scene_tree_dock.cpp 开始 tool extends EditorPluginvar window var scene_menustatic func find_child_by_class(no…

C语言中链表经典面试题目——设计循环队列

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;数据结构 &#x1f525;座右铭&#xff1a;“不要等到什么都没…

【Unity】UGUI基础控件的使用介绍

UGUI基础控件的使用 一、基本介绍二、UI控件介绍1. Text(文本)2. Image(图片)3. Button(按钮)4. Input Field(输入框)5. Toggle(开关)6. Slider(滑动条)7. ScrollBar(滚动条)8. DropDown(下拉列表)9. Panel(面板)10. ScrollRect(滚动视图)一、基本介绍 Un…

Chatbot UI老外在用的gpt网页版 搭建方法分享!

新建了一个网站 https://ai.weoknow.com/ 每天给大家更新可用的国内可用chatGPT资源 Chatbot UI 高仿ChatGPT官网&#xff0c;中文还支持贼好&#xff0c;界面美观度间距还需要打磨。是老外做的吗&#xff1f; ​ 环境部署 更新环境 apt update -y && apt upg…

SpringCloud学习-实用篇04

以下内容的代码可见&#xff1a;SpringCloud_learn/day04 1.初始MQ 同步通讯和异步通讯 微服务间通讯有同步和异步两种方式&#xff0c;同步通讯就像打电话需要实时响应&#xff0c;异步通讯就像发邮件不需要马上回复。两种方式各有优劣&#xff0c;比如打电话能立即得到响应&a…