xmake 提供了一些內置的比較實用的插件,其中宏腳本插件是最具備表明性和實用性的,也是xmake比較推薦的一款插件,那它有哪些使用功能呢?linux
咱們先來看下:xmake macro --help
android
Usage: xmake macro|m [options] [name] [arguments] Run the given macro. Options: --backtrace Print backtrace information for debugging. --version Print the version number and exit. -h, --help Print this help message and exit. -F FILE, --file=FILE Read a given xmake.lua file. -P PROJECT, --project=PROJECT Change to the given project directory. Search priority: 1. The Given Command Argument 2. The Envirnoment Variable: XMAKE_PROJECT_DIR 3. The Current Directory -v, --verbose Print lots of verbose information. -b, --begin Start to record macro. .e.g Record macro with name: test xmake macro --begin xmake config --plat=macosx xmake clean xmake -r xmake package xmake macro --end test -e, --end Stop to record macro. --show Show the content of the given macro. -l, --list List all macros. -d, --delete Delete the given macro. -c, --clear Clear the all macros. --import=IMPORT Import the given macro file or directory. .e.g xmake macro --import=/xxx/macro.lua test xmake macro --import=/xxx/macrodir --export=EXPORT Export the given macro to file or directory. .e.g xmake macro --export=/xxx/macro.lua test xmake macro --export=/xxx/macrodir name Set the macro name. (default: .) .e.g Run the given macro: xmake macro test Run the anonymous macro: xmake macro . arguments ... Set the macro arguments.
看幫助菜單描述,它提供了一些功能:git
手動記錄和回放多條執行過的xmake命令github
支持快速的匿名宏建立和回放macos
支持命名宏的長久記錄和重用api
支持宏腳本的批量導入和導出bash
支持宏腳本的刪除、顯示等管理功能架構
支持自定義高級宏腳本,以及參數配置iphone
看功能仍是蠻多的,那這個宏腳本主要用於哪些場景呢,好比:this
咱們須要編譯打包各個平臺的全部架構的庫,若是按照每次:
xmake f -p android --ndk=/xxx/ndk -a armv7-a xmake p xmake f -p mingw --sdk=/mingwsdk xmake p xmake f -p linux --sdk=/toolsdk --toolchains=/xxxx/bin xmake p xmake f -p iphoneos -a armv7 xmake p xmake f -p iphoneos -a arm64 xmake p xmake f -p iphoneos -a armv7s xmake p xmake f -p iphoneos -a i386 xmake p xmake f -p iphoneos -a x86_64 xmake p
那仍是至關累人的,並且這些命令有可能須要重複執行,每次都這麼敲一遍多累啊,若是像交叉編譯這種,配置參數更多更復雜的狀況,那麼會更累
這個時候就須要宏腳本出場了,並且這些宏記錄下來後,你能夠導出它們,提供給其餘人使用,而不須要每次叫他們如何去配置,如何去編譯打包了
閒話少說,咱們先來看下如何記錄一個簡單宏腳本。。
# 開始記錄宏 xmake macro --begin # 執行一些xmake命令 xmake f -p android --ndk=/xxx/ndk -a armv7-a xmake p xmake f -p mingw --sdk=/mingwsdk xmake p xmake f -p linux --sdk=/toolsdk --toolchains=/xxxx/bin xmake p xmake f -p iphoneos -a armv7 xmake p xmake f -p iphoneos -a arm64 xmake p xmake f -p iphoneos -a armv7s xmake p xmake f -p iphoneos -a i386 xmake p xmake f -p iphoneos -a x86_64 xmake p # 結束宏記錄,這裏不設置宏名字,因此記錄的是一個匿名宏 xmake macro --end
好了,接下來咱們就開始回放執行這個宏了。。
# 以前最近記錄的一次匿名宏 xmake macro .
匿名宏的好處就是快速記錄,快速回放,若是須要長久保存,就須要給宏去個名字,也很簡單:
-- 結束記錄,而且命名爲test宏 xmake macro --end test -- 回放這個test宏 xmake macro test
宏的管理:刪除、導入、導出這些比較簡單,能夠敲:xmake macro --help
自行看下
咱們來看下宏腳本記錄下來的內容:xmake macro --show test
function main() os.exec("xmake f -p android --ndk=/xxx/ndk -a armv7-a") os.exec("xmake p") os.exec("xmake f -p mingw --sdk=/mingwsdk") os.exec("xmake p") os.exec("xmake f -p linux --sdk=/toolsdk --toolchains=/xxxx/bin") os.exec("xmake p") os.exec("xmake f -p iphoneos -a armv7") os.exec("xmake p") os.exec("xmake f -p iphoneos -a arm64") os.exec("xmake p") os.exec("xmake f -p iphoneos -a armv7s") os.exec("xmake p") os.exec("xmake f -p iphoneos -a i386") os.exec("xmake p") os.exec("xmake f -p iphoneos -a x86_64") os.exec("xmake p") end
其實就是個lua的腳本,裏面你可使用一切插件開發中使用的類庫和內建api,你能夠經過import導入他們來使用,並編寫一些高級的宏腳本。。
更加高級的宏腳本寫法能夠參考:插件使用之批量打包