博客專欄

        EEPW首頁 > 博客 > CMake通過外部傳參執行不同邏輯的2種方案

        CMake通過外部傳參執行不同邏輯的2種方案

        發布人:電子禪石 時間:2024-11-15 來源:工程師 發布文章

        有時候一些場景需要在執行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”。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: cmake

        技術專區

        關閉
        主站蜘蛛池模板: 杂多县| 闽清县| 海晏县| 佛坪县| 会理县| 留坝县| 来宾市| 泾川县| 尼玛县| 高要市| 南溪县| 大关县| 梁平县| 水城县| 永新县| 河北省| 夏邑县| 浦县| 海兴县| 石渠县| 斗六市| 威远县| 广西| 康平县| 衡阳市| 镶黄旗| 台安县| 阿拉善左旗| 喀喇沁旗| 鄂伦春自治旗| 海兴县| 桑植县| 明水县| 威信县| 卓资县| 曲水县| 阳西县| 永嘉县| 西乡县| 营口市| 毕节市|