import的主要用於導入xmake的擴展類庫以及一些自定義的類庫模塊,通常用於 自定義腳本(on_build, on_run ..)、插件開發、模板開發、平臺擴展、自定義任務task等地方。git
導入機制以下:github
優先從當前腳本目錄下導入api
再從擴展類庫中導入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})
這樣導入的不是這個模塊的引用,而是導入的這個模塊的全部公有接口自己,這樣就會跟當前模塊的接口進行合併,實現模塊間的繼承