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})
这样导入的不是这个模块的引用,而是导入的这个模块的全部公有接口自己,这样就会跟当前模块的接口进行合并,实现模块间的继承