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

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

假设我们有场景同一套代码需要引入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”。

Read more

超棒的雅思资源!

超棒的雅思资源!

雅思真题材料地址: https://github.com/zeeklog/IETLS 感谢所有人。材料来自:@shah0150 & @kbtxwer * 超棒的雅思资源 * 雅思简介 * 听力 * 阅读 * 写作 * 口语 * 词汇 * 其他 * YouTube 频道 * [播客] (#podcasts) 雅思简介 * 什么是雅思 - 了解什么是雅思 听力 * 高级听力 * 雅思官方网站 * 考试英语 * 英国广播公司节目 * 乔治梅森大学口音学习网站 - 学习不同的口音 * 英国广播公司播客 * 英国文化协会听力练习 阅读 * 雅思提升阅读 写作 * 雅思提升写作 * 雅思从 6 分到 9 分 * 迷你雅思 口语 * Verbling 提供在线英语家教服务

By Ne0inhk
🚀Zeek.ai一款基于 Electron 和 Vite 打造的跨平台(支持 Windows、macOS 和 Linux) AI 浏览器

🚀Zeek.ai一款基于 Electron 和 Vite 打造的跨平台(支持 Windows、macOS 和 Linux) AI 浏览器

是一款基于 Electron 和 Vite 打造的跨平台(支持 Windows、macOS 和 Linux) AI 浏览器。 集成了 SearXNG AI 搜索、开发工具集合、 市面上最流行的 AI 工具门户,以及代码编写和桌面快捷工具等功能, 通过模块化的 Monorepo 架构,提供轻量级、可扩展且高效的桌面体验, 助力 AI 驱动的日常工作流程。

By Ne0inhk