IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> CMake | cmake_parse_arguments详解 -> 正文阅读

[JavaScript知识库]CMake | cmake_parse_arguments详解

目录

一、参数解析

二、命令应用

1.定义函数

2.函数调用


????????使用cmake_parse_arguments可以定义一个带有命名参数的函数或宏。本文将改进文章使用宏重用代码中的宏。

一、参数解析

cmake_parse_arguments(<prefix> <options> <one_value_keywords>
                      <multi_value_keywords> <args>...)
  • <prefix>前缀:解析出的参数都会按照prefix_参数名的形式形成新的变量。这些变量将保存参数列表中的相应值,如果找不到相关选项,则这些变量将是未定义的。
  • <options>可选值:无论选项是否在参数列表中,它们都将被定义为TRUE或FALSE(选项在参数中为true)。
  • <one_value_keywords>: 单值关键词列表,每个关键词仅仅对应一个值。
  • <multi_value_keywords>: 多值关键词列表,每个关键词可对应多个值。
  • <args>...参数:?一般传入${ARGN}即可。

二、命令应用

1.定义函数

????????我们使用函数名( add_catch_test )选项(none)、单值参数( NAME 和 COST )和多值参数( LABELS 、 DEPENDS 和 REFERENCE_FILES )调用cmake_parse_arguments命令。

function(add_catch_test)
  set(options)
  set(oneValueArgs NAME COST)
  set(multiValueArgs LABELS DEPENDS REFERENCE_FILES)
  cmake_parse_arguments(add_catch_test
    "${options}"
    "${oneValueArgs}"
    "${multiValueArgs}"
    ${ARGN}
    )

  message(STATUS "defining a test ...")
  message(STATUS "    NAME: ${add_catch_test_NAME}")
  message(STATUS "    LABELS: ${add_catch_test_LABELS}")
  message(STATUS "    COST: ${add_catch_test_COST}")
  message(STATUS "    REFERENCE_FILES: ${add_catch_test_REFERENCE_FILES}")
  ...
endfunction()

2.函数调用

add_catch_test(
  NAME
    short
  LABELS
    short
    cpp_test
  COST
    1.5
  )

在cmake_parse_arguments调用后,将设置或取消定义以下变量:

  • add_catch_test_NAME:short
  • add_catch_test_COST:1.5
  • add_catch_test_LABELS:short;cpp_test
  • add_catch_test_DEPENDS
  • add_catch_test_REFERENCE_FILES
  • add_catch_test_OPTIONAL
  • add_catch_test_UNPARSED_ARGUMENTS:表示未被使用的参数变量( ${ARGN}里面)
  • add_catch_test_KEYWORDS_MISSING_VALUES:定义了关键词,但是没有对应的值。
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:22:38  更:2022-03-10 22:22:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:53:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码