Files
arcs/arcs-sdk/cmake/docs/extensions.MD
2026-08-13 16:50:52 +08:00

4.8 KiB
Raw Blame History

ListenAI Cmake扩展说明文档

listenai_library_named

简介: 定义一个名称为_name的静态库

参数:

  • _name 指定该静态库的名称

listenai_library_sources

简介: 为当前的目标添加源文件

提示: 必须在使用listenai_library_named之后使用

参数:

  • source 源文件

  • ${ARGN} 可不參數

使用示例:


listenai_library_sources(test.c test1.c test2.c test3.c)

listenai_library_sources_ifdef

简介: 当配置有效时,为当前的目标添加源文件

提示: 必须在使用listenai_library_named之后使用

参数:

  • feature_toggle 配置选项

  • ${ARGN} 可不參數

使用示例:

CONFIG_TEST有效时,将添加源文件


listenai_library_sources_ifdef(CONFIG_TEST test.c test1.c test2.c test3.c)

listenai_library_compile_options

简介: 为当前的目标提添加编译选项

提示: 必须在使用listenai_library_named之后使用

参数:

  • scope 作用范围, 可选择:PRIVATE, PUBLIC

  • option 编译选项

  • ${ARGN} 可不參數

listenai_library_compile_options_ifdef

简介: 当配置项有效时, 为当前的目标提添加编译选项

提示: 必须在使用listenai_library_named之后使用

参数:

  • feature_toggle 配置项

  • scope 作用范围, 可选择:PRIVATE, PUBLIC

  • option 编译选项

  • ${ARGN} 可不參數

listenai_append_cmake_library

简介: 将指定的目标添加到LISTENAI_LIBS属性中

参数:

  • library 待添加的目标

listenai_add_subdirectory_ifdef

简介: 当配置有效时, 添加子目录

参数:

  • feature_toggle 配置项

  • dir 子目录

listenai_target_sources_ifdef

简介: 当配置有效时, 为指定的目标添加源文件

参数:

  • feature_toggle 配置项

  • target 指定的目标

  • scope 作用范围,PRIVATE PUBLIC INTERFACE

  • item 源文件

  • ${ARGN} 可不參數

listenai_target_compile_definitions_ifdef

简介: 当配置有效时, 为指定的目标添添加宏定义

参数:

  • feature_toggle 配置项

  • target 指定的目标

  • scope 作用范围 PRIVATE, PUBLIC, INTERFACE

  • item 宏定义

  • ${ARGV} 可变参数

listenai_target_include_directories_ifdef

简介: 当配置有效时, 为指定的目标添加头文件路径

参数:

  • feature_toggle 配置项

  • target 指定的目标

  • scope 作用范围 PRIVATE, PUBLIC, INTERFACE

  • item 待被链接的目标

  • ${ARGV} 可变参数

简介: 当配置有效时, 为指定的目标连接其他目标

参数:

  • feature_toggle 配置项

  • target 指定的目标

  • item 待被链接的目标

  • ${ARGV} 可变参数

listenai_add_compile_option_ifdef

简介: 当配置有效时, 添加全局的编译选项

参数:

  • feature_toggle 配置项

  • option 编译选项

  • ${ARGV} 可变参数

listenai_target_compile_option_ifdef

简介: 当配置有效时, 为指定的目标添加编译选项

参数:

  • feature_toggle 配置项

  • target 指定的目标

  • scope 作用范围

  • option 编译选项

  • ${ARGV} 可变参数

listenai_compile_options

简介: 为listenai_interface添加编译选项

参数:

  • ${ARGV} 可变参数

listenai_compile_definitions

简介: 为listenai_interface添加宏定义

参数:

  • ${ARGV} 可变参数

listenai_compile_definitions_ifdef

简介: 当配置有效时, 为listenai_interface添加宏定义

参数:

  • feature_toggle 配置项

  • ${ARGV} 可变参数

简介: 将目标链接到listenai_interface中

参数:

  • item 被连接的目标

listenai_include_directories

简介: 将头文件加入listenai_interface中

参数:

  • target_name 目标

listenai_generate_bin

简介: 为目标生成bin文件

参数:

  • target_name 目标

listenai_generate_hex

简介: 为目标生成hex文件

参数:

  • target_name 目标

listenai_generate_lst

简介: 为目标生成lst文件

参数:

  • target_name 目标

简介: 将所有通过listenai cmake扩展定义的目标连接到指定的目标中

参数:

  • target_name 将要链接到的目标

注意: 此函数通常不需要手动调用,会在 listenai_add_executable 中自动延迟调用

listenai_add_executable

添加可执行文件

此宏会自动为可执行文件添加bin,hex,lst文件输出

此宏会自动扫描LISTENAI_MODULES_DIR_LIST 列表中的目录, 并添加模块到构建系统中

重要特性:

  • 使用延迟链接机制(需要 CMake 3.19+
  • 用户可以在 listenai_add_executable 之前或之后调用 add_subdirectory 添加库
  • 所有库会被自动包含在 --whole-archive 链接选项中,确保未被引用的符号不被丢弃

CMake 版本要求:

  • 最低版本: CMake 3.19
  • 低于此版本会报 FATAL_ERROR

为可执行文件设置链接脚本

listenai_generate_boot_header

为可执行文件添加listenai boot header