[轉]:xmake插件開發之import類庫

import的主要用於導入xmake的擴展類庫以及一些自定義的類庫模塊,通常用於 自定義腳本(on_build, on_run ..)、插件開發、模板開發、平臺擴展、自定義任務task等地方。git

導入機制以下:github

  1. 優先從當前腳本目錄下導入api

  2. 再從擴展類庫中導入ui

導入的語法規則:lua

基於.的類庫路徑規則,例如:.net

導入core核心擴展模塊插件

import("core.base.option")
import("core.project")
import("core.project.task")
import("core")

function main()
    
    -- 獲取參數選項
    print(option.get("version"))

    -- 運行任務和插件
    task.run("hello")
    project.task.run("hello")
    core.project.task.run("hello")
end

導入當前目錄下的自定義模塊:code

目錄結構:orm

plugin
  - xmake.lua
  - main.lua
  - modules
    - hello1.lua
    - hello2.lua

在main.lua中導入modules繼承

import("modules.hello1")
import("modules.hello2")

導入後就能夠直接使用裏面的全部公有接口,私有接口用_前綴標示,代表不會被導出,不會被外部調用到。。

除了當前目錄,咱們還能夠導入其餘指定目錄裏面的類庫,例如:

import("hello3", {rootdir = "/home/xxx/modules"})

爲了防止命名衝突,導入後還能夠指定的別名:

import("core.platform.platform", {alias = "p"})

function main()
 
    -- 這樣咱們就能夠使用p來調用platform模塊的plats接口,獲取全部xmake支持的平臺列表了
    table.dump(p.plats())
end

import不只能夠導入類庫,還支持導入的同時做爲繼承導入,實現模塊間的繼承關係

import("xxx.xxx", {inherit = true})

這樣導入的不是這個模塊的引用,而是導入的這個模塊的全部公有接口自己,這樣就會跟當前模塊的接口進行合併,實現模塊間的繼承


相關文章
相關標籤/搜索