首页 > 其他分享 >CMake通过外部传参执行不同逻辑的2种方案

CMake通过外部传参执行不同逻辑的2种方案

时间:2024-04-12 16:13:01浏览次数:26  
标签:传参 逻辑 cmake use AEC CMake message arm

CMake通过外部传参执行不同逻辑的2种方案

有时候一些场景需要在执行cmake指令时传入一些参数的值,使得CMakeLists.txt文件中的程序执行不同的逻辑,下面给出2种方案。

1、SET指令给参数默认值

SET(BUILD_PLATFORM "x86" CACHE STRING "select build cpu type")
 #外部用cmake . -DBUILD_PLATFORM=arm进行值传入,便可以执行不同的逻辑
if (BUILD_PLATFORM STREQUAL arm)
  message("this is arm platform")
else()
  message("this is x86 platform")
endif()

默认情况下会执行else,打印“this is x86 platform”,但可以更改,比如运行cmake指令时如下:

cmake . -DBUILD_PLATFORM=arm

那么打印出来的是“this is arm platform”。

2、OPTION指令开关

option(USE_AEC "Set to switch to build use AEC"  OFF)
# 外部用cmake . -DUSE_AEC=ON进行值传入,便可以执行不同的逻辑
if (USE_AEC) #根据宏开关判断逻辑
    message("use aec to restrict audio echo")
else()
    message("do not use aec")
endif()

默认情况下会执行else,打印“do not use aec”,但若运行cmake指令时如下:

    cmake . -DUSE_AEC=ON

则会打印出“use aec to restrict audio echo”。

注意option前面的“-D”字符!

标签:传参,逻辑,cmake,use,AEC,CMake,message,arm
From: https://www.cnblogs.com/HuangLiDi/p/18131525

相关文章

  • cmake 之make pack报错解决
    报错信息:看报错信息得知是一个名为control目录的权限有问题,尚未得知这个目录是在那个位置,姑且将build目录(cmake执行的目录)下的所有目录的权限都改一下chmod755*-R进行上述步骤后,仍然发生相同的报错。最后找了这个目录:这个目录的权限确实没有修改成功,重新验证了一下,发现......
  • python基础-函数(函数参数、返回值、执行、传参、作用域、函数名)
    前言!!!注意:本系列所写的文章全部是学习笔记,来自于观看视频的笔记记录,防止丢失。观看的视频笔记来自于:哔哩哔哩武沛齐老师的视频:2022Python的web开发(完整版)入门全套教程,零基础入门到项目实战1.初识函数函数就是一大堆代码的集合,这一堆的代码再起个名字。#定义函数def函数名......
  • 在远程windows上调试Cmake项目 C++
    记录一下CMake项目MSVC编译器远程调试方法参考资料  教程:在远程Windows计算机上调试CMake项目|MicrosoftLearn1.使用VS打开cmake项目2.右键main.cpp文件,添加调试配置选择C++ 3.会打开一个launch.vs.json文件 配置一下 注意:远程机器那里写需要运行的机器号 ......
  • 逻辑复制槽失效导致checkpoint卡住
    问题现象先是备份执行pg_basebackup时卡住超时,查看pg_stat_activity中备份进程被checkpoint进程阻塞,然后再检查checkpoint进程发现进程等待事件是IPC:CheckpointStart查看checkpointer进程的pstack:#pstackcheckpointer_pid#可以看到#3行,卡在了删除无效复制槽这一步#00x0......
  • cmake笔记
    demo1cmake_minimum_required(VERSION2.8)#cmake的最低版本project(test)#定义工程名称add_executable(mainadd.cppsub.cppmul.cppdiv.cppmain.cpp)#定义工程会生成一个可执行程序,格式:add_executable(可执行程序名源文件名称)#这里的可执行程序名和project中的项......
  • 操作系统综合题之“采用二级页表的分页存储管理方式,计算页目录号的位数 和 页大小,给定
    一、问题:某计算机系统的主存按字节编址,逻辑地址和物理地址都是32位,其内存管理采用两级页表的分页存储管理方式。逻辑地址中页号位10位,页内偏移地址为10位。该计算机系统的两级页表结构如下图所示,图中数值均为十进制数1.页目录号的位数为多少?页的大小为多少KB?2.如果页目录项大小......
  • 【Python】深入探究:if、elif、else语句如何塑造Python代码的逻辑魅力
    欢迎来CILMY23的博客本篇主题为深入探究:if、elif、else语句如何塑造Python代码的逻辑魅力个人主页:CILMY23-CSDN博客个人专栏系列:Python|C语言|数据结构与算法|C++感谢观看,支持的可以给个一键三连,点赞关注+收藏。 写在前头:本篇博客主要对各种的条件语句进行详......
  • 逻辑卷的建立
    逻辑卷的建立逻辑卷是什么:逻辑卷:卷组是一块逻辑硬盘,硬盘必须分区之后才能使用,我们把这个分区称作逻辑卷。逻辑卷可以被格式化和写入数据。我们可以把逻辑卷想象为分区。为什么要建立逻辑卷解决正常分区的缺点:没有备份功能,性能取决于硬盘本身如何建立逻辑卷#创建物理卷[ro......
  • R语言多元Logistic逻辑回归 应用案例
    原文链接:http://tecdat.cn/?p=2640  原文出处:拓端数据部落公众号 可以使用逐步回归过程确定多元逻辑回归。此函数选择模型以最小化AIC。如何进行多元逻辑回归可以使用step函数通过逐步回归过程确定多元逻辑回归。此函数选择模型以最小化AIC。通常建议不要盲目地遵循逐步......
  • 操作系统综合题之“采用二级页表的分页存储管理方式,计算页目录号的位数 和 页的大小,给
    一、问题:某计算机系统的主存按字节编址,逻辑地址和物理地址都是32位,其内存管理采用练级页表的分页存储管理方式。逻辑地址中页号为10位,页内偏移地址为12位。该计算机系统的两级页表结构如下图所示,图中数值均为十进制数1.页目录号的位数为多少?页的大小为多少KB?2.如果页目录项大小......