博客專欄

        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

        技術專區

        關閉
        主站蜘蛛池模板: 昭平县| 托克托县| 霍山县| 通化市| 莫力| 嘉祥县| 天镇县| 红原县| 游戏| 正阳县| 周至县| 千阳县| 阿坝县| 鄂托克旗| 庆安县| 阿鲁科尔沁旗| 财经| 乌什县| 叙永县| 海安县| 汾西县| 双柏县| 莱州市| 宁河县| 东兴市| 无锡市| 姚安县| 余干县| 三河市| 神农架林区| 尤溪县| 塔城市| 宁武县| 沁阳市| 南木林县| 江源县| 宝清县| 麻江县| 武安市| 镶黄旗| 腾冲县|