假设我们有场景同一套代码需要引入sqlite分别编译成rv1126和horizion

方案一、SET指令给参数默认值

CMakeLists.txt中定义

if (BUILD_PLATFORM STREQUAL rv1126)message("this is rv1126 platform")link_directories(${CMAKE_SOURCE_DIR}/lib)
else()message("this is horizon platform")link_directories(${CMAKE_SOURCE_DIR}/lib_horizon)
endif()

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

cmake . -DBUILD_PLATFORM=rv1126

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

例如我们在build.sh中只需要定义如下:


cd ${BUILD_DIR}
cmake .. \-DBUILD_PLATFORM=horizon \-DCMAKE_C_COMPILER=${GCC_COMPILER}-gcc \-DCMAKE_CXX_COMPILER=${GCC_COMPILER}-g++
make -j4

方案二、OPTION指令开关

option(USE_AEC "Set to switch to build use AEC" OFF)
# 外部用cmake . -DUSE_AEC=ON进行值传入,便可以执行不同的逻辑
if (DUSE_AEC)message("this is rv1126 platform")link_directories(${CMAKE_SOURCE_DIR}/lib)
else()message("this is horizon platform")link_directories(${CMAKE_SOURCE_DIR}/lib_horizon)
endif()

默认情况下会执行else,打印“this is horizon platform”,但若运行cmake指令时如下:

    cmake . -DUSE_AEC=ON则会打印出“this is rv1126 platform”。

CMake通过外部传参执行不同逻辑的方案比如瑞芯微(1126)地平线(horizon)相关推荐

  1. 【瑞芯微Rockchip Linux平台】SoftAp需求实现(2)根据传参修改SSID和密码,SSID以wifi MAC地址后四位对结尾

    [瑞芯微Rockchip Linux平台]SoftAp需求实现(2)根据传参修改SSID和密码 1. main 函数实现 2. set_hostap_ssid 函数,配置修改hostapd.conf文 ...

  2. linux 动态传参执行shell脚本

    举个栗子: 我想执行的命令如下 /usr/bin/soffice --headless --invisible --convert-to pdf 3.doc 但是这样命令就写死了,如何动态传参数,执行 ...

  3. 外部传参,关于ExternalInterface.addCallback的使用。

    由于昨天把模板做好了,而且测试了下,已经没有问题. 今天遇到的是安全. 由于公司网站是用C#写的,所以C#要调用flash里面的函数,主要是安全. 原本我推荐boss使用安全证书,但是他一口否决了我的 ...

  4. 瑞芯微SDK环境+docker环境外部访问

    原因:由于docker两个容器,里面开了samba.和ssh以及后续可能会建其它服务 ,因此做端口映射不太好.需要公司电脑能像访问正常服务器一样访问两个docker容器 服务器是CentOS .里面安 ...

  5. waterdrop 配置文件传参

    waterdrop应用提交命令 ./bin/start-waterdrop.sh --master yarn --deploy-mode client --config ./config/test.c ...

  6. python脚本传参

    在Linux环境调用python脚本,需要从外部传参,python提供了两种传参方式: 1.顺序传参 import sys 它封装了与python解释器相关的数据,在脚本里面使用使用参数的顺序必须和传 ...

  7. js中关于带数字类型参数传参丢失首位数字0问题

    最近在项目中遇到一个问题,js中传带有数字的参数时,如果参数开头有数字0,会把0给去掉. 例如: 方法abc(0123456,789); 方法abc中获取的参数0123456就会变为123456. 原 ...

  8. java feign同时传对象和其他参数_关于Spirng Cloud的Feign传参问题:

    Feign传参注意: 使用Feign客户端组件来调用微服务,经常出现参数传不过去变成null的问题,网上查了一下发现feign在参数上的使用还是有一定的限制的,主要是要注意: 1. 当参数比较复杂时, ...

  9. 关于url传参中文乱码问题

    之前都一直很不了解中文编码得问题,之前在做项目中没碰到那么头痛的问题.所以一直没有了解中文乱码的问题. 问题描述: 地址: http://localhost:8080/sun-government/c ...

最新文章

  1. 网络分布式软件bonic清除
  2. PyCharm Python3操作数据库MySQL增删改查
  3. slider_wap
  4. WCF入门(六)——回调
  5. 如果你没有考上985,没有考上211……
  6. Jmeter中使用循环如何保证数据不重复
  7. Ivan and Powers of Two CodeForces - 305C(set)
  8. C语言封顶,我们的大屋顶|阳光方舟2.0--C-HOUSE正式封顶
  9. GitHub的SSH免密连接
  10. 你只管打开这个视频,剩下的交给「卧槽」
  11. 继续:Racket网络编程
  12. 防御ddos攻击的免费防火墙
  13. 聊聊前端框架——尤雨溪
  14. ps动感映像插件ImageMotion 1.3全新功能介绍
  15. border边框部分不显示
  16. 派大汤的数据结构错题本
  17. s32k144 isystem linux,S32k144 简易 Bootloader
  18. 服务器如何选择备案产品类型?
  19. Brave vs Google Chrome:哪个浏览器更适合你?
  20. MySQL数据库密码配置

热门文章

  1. Centos下升级git版本
  2. python 变量 r_在python中为每个预测变量调整R平方
  3. 第一条台电子计算机,2001年4月全国计算机等级考试一级笔试试题Windows
  4. MFC CEdit 中不能使用ctrl+v进行粘贴解决办法
  5. Feign 原理解析
  6. Java Type类
  7. 开源:一款基于.Net开发提升开发效率的强大多功能工具箱
  8. 黄一老师告诉你信用卡背后的百万财富
  9. “xxx” already disposed
  10. 基于VScode的golang安装和配置(详细)