xmake高級特性之選項綁定

什麼是選項的綁定呢?mysql

例如我想在命令行中配置一個smallest的參數:xmake f --smallest=ygit

這個時候,須要同時禁用多個其餘的選項開關,來禁止編譯多個模塊,就是這個需求,至關於一個選項 與其餘 多個選項之間 是有聯動效應的。。github

那如何實現呢,能夠經過下面兩個api來實現:sql

  • add_bindings: 添加正向綁定
  • add_rbindings: 添加反向綁定

咱們看下如何實現smallest的這個效果:api

-- 定義選項開關: --smallest=y|n
option("smallest")

    -- 默認不啓用
    set_enable(false)

    -- 在命令行菜單中顯示描述,而且可手動配置
    set_showmenu(true)
    
    -- 設置描述
    set_description("Enable the smallest compile mode and disable all modules.")

    -- 添加反向綁定,若是smallest被啓用,下面的全部模塊所有禁用
    add_rbindings("xml", "zip", "asio", "regex", "object", "thread", "network", "charset", "database")
    add_rbindings("zlib", "mysql", "sqlite3", "openssl", "polarssl", "pcre2", "pcre", "base")

須要注意的是,命令行配置是有順序的,你能夠先經過啓用smallest禁用全部模塊,而後添加其餘選項,逐一啓用,例如:lua

-- 禁用全部模塊,而後僅僅啓用xml和zip模塊
xmake f --smallest=y --xml=y --zip=y

相關文章
相關標籤/搜索