aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:42:53 +0800
committerruki <waruqi@gmail.com>2018-11-07 22:17:24 +0800
commitaa7f0199255277949790b41c56e8ec97dd4f0da4 (patch)
tree0d980ae72372cb4547b0601c0e8ca8dd0d108be8
parent26105034da4fcce7ac883c899d781f016559310d (diff)
downloadxmake-docs-aa7f0199255277949790b41c56e8ec97dd4f0da4.tar.gz
xmake-docs-aa7f0199255277949790b41c56e8ec97dd4f0da4.zip
modify get start page
-rw-r--r--node_modules/vuepress/lib/app/.temp/routes.js56
-rw-r--r--node_modules/vuepress/lib/app/.temp/siteData.js166
-rw-r--r--node_modules/vuepress/node_modules/.cache/vuepress/083e93c560786e8a6e89cdd8ec56e8c6.json2
-rw-r--r--node_modules/vuepress/node_modules/.cache/vuepress/3edaa3ec77ac0c03fec5665f634f27a2.json2
-rw-r--r--node_modules/vuepress/node_modules/.cache/vuepress/4bf8675bed9978b6176ad2a41c701ccb.json2
-rw-r--r--node_modules/vuepress/node_modules/.cache/vuepress/75cd6bf5303777798f2b0fa3e2492d9f.json2
-rw-r--r--node_modules/vuepress/node_modules/.cache/vuepress/a8b8b64fc0354d9f755f38966b9f5286.json2
-rw-r--r--node_modules/vuepress/node_modules/.cache/vuepress/b627beda6c28183f3a59c9d4d3d59e07.json2
-rw-r--r--node_modules/vuepress/node_modules/.cache/vuepress/b8f5ae09869bcfd93639853b8b0f2123.json2
-rw-r--r--src/guide/getting-started.md150
10 files changed, 248 insertions, 138 deletions
diff --git a/node_modules/vuepress/lib/app/.temp/routes.js b/node_modules/vuepress/lib/app/.temp/routes.js
index 625e7fb6..1c8d20d6 100644
--- a/node_modules/vuepress/lib/app/.temp/routes.js
+++ b/node_modules/vuepress/lib/app/.temp/routes.js
@@ -10,12 +10,12 @@ injectMixins(ThemeNotFound, rootMixins)
export const routes = [
{
- name: "v-ddf4be195b958",
+ name: "v-2614641d01439",
path: "/",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/README.md").then(comp => {
- Vue.component("v-ddf4be195b958", comp.default)
+ Vue.component("v-2614641d01439", comp.default)
next()
})
}
@@ -25,78 +25,78 @@ export const routes = [
redirect: "/"
},
{
- name: "v-8644851cf91dd",
+ name: "v-ca0d3c6d3b947",
path: "/api/introduction.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/api/introduction.md").then(comp => {
- Vue.component("v-8644851cf91dd", comp.default)
+ Vue.component("v-ca0d3c6d3b947", comp.default)
next()
})
}
},
{
- name: "v-b6ee77db64501",
+ name: "v-4cee7b9659743",
path: "/guide/faq.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/guide/faq.md").then(comp => {
- Vue.component("v-b6ee77db64501", comp.default)
+ Vue.component("v-4cee7b9659743", comp.default)
next()
})
}
},
{
- name: "v-fcba2a8896d43",
+ name: "v-209fc19462fa6",
path: "/guide/getting-started.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md").then(comp => {
- Vue.component("v-fcba2a8896d43", comp.default)
+ Vue.component("v-209fc19462fa6", comp.default)
next()
})
}
},
{
- name: "v-cda17500cdb0c",
+ name: "v-3ab176aebc1f4",
path: "/guide/introduction.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/guide/introduction.md").then(comp => {
- Vue.component("v-cda17500cdb0c", comp.default)
+ Vue.component("v-3ab176aebc1f4", comp.default)
next()
})
}
},
{
- name: "v-745d22bfe3ef4",
+ name: "v-3b936eb8ef4c1",
path: "/guide/sponsors.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/guide/sponsors.md").then(comp => {
- Vue.component("v-745d22bfe3ef4", comp.default)
+ Vue.component("v-3b936eb8ef4c1", comp.default)
next()
})
}
},
{
- name: "v-360e42fea8e33",
+ name: "v-ba9eb56bb695a",
path: "/plugin/introduction.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/plugin/introduction.md").then(comp => {
- Vue.component("v-360e42fea8e33", comp.default)
+ Vue.component("v-ba9eb56bb695a", comp.default)
next()
})
}
},
{
- name: "v-1856b116362c7",
+ name: "v-ed7962dcbc27f",
path: "/zh/",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/zh/README.md").then(comp => {
- Vue.component("v-1856b116362c7", comp.default)
+ Vue.component("v-ed7962dcbc27f", comp.default)
next()
})
}
@@ -106,67 +106,67 @@ export const routes = [
redirect: "/zh/"
},
{
- name: "v-6812df0250aa3",
+ name: "v-540f63bba413e",
path: "/zh/api/introduction.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/zh/api/introduction.md").then(comp => {
- Vue.component("v-6812df0250aa3", comp.default)
+ Vue.component("v-540f63bba413e", comp.default)
next()
})
}
},
{
- name: "v-d3636509f8935",
+ name: "v-02760b3923029",
path: "/zh/guide/faq.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/zh/guide/faq.md").then(comp => {
- Vue.component("v-d3636509f8935", comp.default)
+ Vue.component("v-02760b3923029", comp.default)
next()
})
}
},
{
- name: "v-53a48e3593d7c",
+ name: "v-60de9668a20a5",
path: "/zh/guide/getting-started.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/zh/guide/getting-started.md").then(comp => {
- Vue.component("v-53a48e3593d7c", comp.default)
+ Vue.component("v-60de9668a20a5", comp.default)
next()
})
}
},
{
- name: "v-cd45bc6f8fdb",
+ name: "v-0f1def6098c93",
path: "/zh/guide/introduction.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/zh/guide/introduction.md").then(comp => {
- Vue.component("v-cd45bc6f8fdb", comp.default)
+ Vue.component("v-0f1def6098c93", comp.default)
next()
})
}
},
{
- name: "v-bef402580c1cc",
+ name: "v-de6097dc9e908",
path: "/zh/guide/sponsors.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/zh/guide/sponsors.md").then(comp => {
- Vue.component("v-bef402580c1cc", comp.default)
+ Vue.component("v-de6097dc9e908", comp.default)
next()
})
}
},
{
- name: "v-faf113f1b77ae",
+ name: "v-06da4c6c1298e",
path: "/zh/plugin/introduction.html",
component: ThemeLayout,
beforeEnter: (to, from, next) => {
import("/Users/ruki/projects/personal/xmake-docs/src/zh/plugin/introduction.md").then(comp => {
- Vue.component("v-faf113f1b77ae", comp.default)
+ Vue.component("v-06da4c6c1298e", comp.default)
next()
})
}
diff --git a/node_modules/vuepress/lib/app/.temp/siteData.js b/node_modules/vuepress/lib/app/.temp/siteData.js
index 9af62f7a..6e6bc4c8 100644
--- a/node_modules/vuepress/lib/app/.temp/siteData.js
+++ b/node_modules/vuepress/lib/app/.temp/siteData.js
@@ -4,9 +4,9 @@ export const siteData = {
"base": "/",
"pages": [
{
- "key": "v-ddf4be195b958",
+ "key": "v-2614641d01439",
"path": "/",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "Home",
"headers": [
{
@@ -123,9 +123,9 @@ export const siteData = {
}
},
{
- "key": "v-8644851cf91dd",
+ "key": "v-ca0d3c6d3b947",
"path": "/api/introduction.html",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "Title1",
"headers": [
{
@@ -156,9 +156,9 @@ export const siteData = {
]
},
{
- "key": "v-b6ee77db64501",
+ "key": "v-4cee7b9659743",
"path": "/guide/faq.html",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "FAQ",
"headers": [
{
@@ -189,9 +189,9 @@ export const siteData = {
]
},
{
- "key": "v-fcba2a8896d43",
+ "key": "v-209fc19462fa6",
"path": "/guide/getting-started.html",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "Getting Started",
"headers": [
{
@@ -200,31 +200,141 @@ export const siteData = {
"slug": "installation"
},
{
+ "level": 3,
+ "title": "Master",
+ "slug": "master"
+ },
+ {
+ "level": 3,
+ "title": "Windows",
+ "slug": "windows"
+ },
+ {
+ "level": 3,
+ "title": "MacOS",
+ "slug": "macos"
+ },
+ {
+ "level": 3,
+ "title": "Linux",
+ "slug": "linux"
+ },
+ {
+ "level": 3,
+ "title": "Compilation",
+ "slug": "compilation"
+ },
+ {
"level": 2,
"title": "Quick Start",
"slug": "quick-start"
},
{
+ "level": 3,
+ "title": "Create Project",
+ "slug": "create-project"
+ },
+ {
+ "level": 3,
+ "title": "Build Project",
+ "slug": "build-project"
+ },
+ {
+ "level": 3,
+ "title": "Run Program",
+ "slug": "run-program"
+ },
+ {
+ "level": 3,
+ "title": "Debug Program",
+ "slug": "debug-program"
+ },
+ {
"level": 2,
"title": "Project Examples",
"slug": "project-examples"
},
{
+ "level": 3,
+ "title": "Executable Program",
+ "slug": "executable-program"
+ },
+ {
+ "level": 3,
+ "title": "Static Library Program",
+ "slug": "static-library-program"
+ },
+ {
+ "level": 3,
+ "title": "Share Library Program",
+ "slug": "share-library-program"
+ },
+ {
+ "level": 3,
+ "title": "Qt Program",
+ "slug": "qt-program"
+ },
+ {
+ "level": 3,
+ "title": "Cuda Program",
+ "slug": "cuda-program"
+ },
+ {
+ "level": 3,
+ "title": "WDK Driver Program",
+ "slug": "wdk-driver-program"
+ },
+ {
+ "level": 3,
+ "title": "WinSDK Application Program",
+ "slug": "winsdk-application-program"
+ },
+ {
"level": 2,
"title": "Configuration",
"slug": "configuration"
},
{
+ "level": 3,
+ "title": "Target Platforms",
+ "slug": "target-platforms"
+ },
+ {
+ "level": 3,
+ "title": "Global Configuration",
+ "slug": "global-configuration"
+ },
+ {
+ "level": 3,
+ "title": "Clean Configuration",
+ "slug": "clean-configuration"
+ },
+ {
"level": 2,
"title": "Dependency Package Management",
"slug": "dependency-package-management"
+ },
+ {
+ "level": 3,
+ "title": "Local Package Mode",
+ "slug": "local-package-mode"
+ },
+ {
+ "level": 3,
+ "title": "System Search Mode",
+ "slug": "system-search-mode"
+ },
+ {
+ "level": 3,
+ "title": "Remote dependency mode",
+ "slug": "remote-dependency-mode"
}
]
},
{
- "key": "v-cda17500cdb0c",
+ "key": "v-3ab176aebc1f4",
"path": "/guide/introduction.html",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "Introduction",
"headers": [
{
@@ -235,15 +345,15 @@ export const siteData = {
]
},
{
- "key": "v-745d22bfe3ef4",
+ "key": "v-3b936eb8ef4c1",
"path": "/guide/sponsors.html",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "Sponsors"
},
{
- "key": "v-360e42fea8e33",
+ "key": "v-ba9eb56bb695a",
"path": "/plugin/introduction.html",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "Title1",
"headers": [
{
@@ -274,9 +384,9 @@ export const siteData = {
]
},
{
- "key": "v-1856b116362c7",
+ "key": "v-ed7962dcbc27f",
"path": "/zh/",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "Home",
"headers": [
{
@@ -393,9 +503,9 @@ export const siteData = {
}
},
{
- "key": "v-6812df0250aa3",
+ "key": "v-540f63bba413e",
"path": "/zh/api/introduction.html",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "Title1",
"headers": [
{
@@ -426,14 +536,14 @@ export const siteData = {
]
},
{
- "key": "v-d3636509f8935",
+ "key": "v-02760b3923029",
"path": "/zh/guide/faq.html",
- "lastUpdated": null
+ "lastUpdated": 1541598789000
},
{
- "key": "v-53a48e3593d7c",
+ "key": "v-60de9668a20a5",
"path": "/zh/guide/getting-started.html",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "快速开始",
"headers": [
{
@@ -449,9 +559,9 @@ export const siteData = {
]
},
{
- "key": "v-cd45bc6f8fdb",
+ "key": "v-0f1def6098c93",
"path": "/zh/guide/introduction.html",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "简介",
"headers": [
{
@@ -472,14 +582,14 @@ export const siteData = {
]
},
{
- "key": "v-bef402580c1cc",
+ "key": "v-de6097dc9e908",
"path": "/zh/guide/sponsors.html",
- "lastUpdated": null
+ "lastUpdated": 1541598789000
},
{
- "key": "v-faf113f1b77ae",
+ "key": "v-06da4c6c1298e",
"path": "/zh/plugin/introduction.html",
- "lastUpdated": null,
+ "lastUpdated": 1541598789000,
"title": "Title1",
"headers": [
{
diff --git a/node_modules/vuepress/node_modules/.cache/vuepress/083e93c560786e8a6e89cdd8ec56e8c6.json b/node_modules/vuepress/node_modules/.cache/vuepress/083e93c560786e8a6e89cdd8ec56e8c6.json
index 15b64e17..28725b63 100644
--- a/node_modules/vuepress/node_modules/.cache/vuepress/083e93c560786e8a6e89cdd8ec56e8c6.json
+++ b/node_modules/vuepress/node_modules/.cache/vuepress/083e93c560786e8a6e89cdd8ec56e8c6.json
@@ -1 +1 @@
-{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js??ref--3-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/enhanceApp.js","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/enhanceApp.js","mtime":1541598695624},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js","mtime":1541484124240}],"contextDependencies":[],"result":["export { default } from \"/Users/ruki/projects/personal/xmake-docs/src/.vuepress/enhanceApp.js\";",{"version":3,"sources":["node_modules/vuepress/lib/app/.temp/enhanceApp.js"],"names":["default"],"mappings":"AAAA,SAASA,OAAT,QAAwB,sEAAxB","sourceRoot":"/Users/ruki/projects/personal/xmake-docs","sourcesContent":["export { default } from \"/Users/ruki/projects/personal/xmake-docs/src/.vuepress/enhanceApp.js\""]}]} \ No newline at end of file
+{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js??ref--3-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/enhanceApp.js","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/enhanceApp.js","mtime":1541599381658},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js","mtime":1541484124240}],"contextDependencies":[],"result":["import \"core-js/modules/es6.promise\";\nexport { default } from \"/Users/ruki/projects/personal/xmake-docs/src/.vuepress/enhanceApp.js\";",{"version":3,"sources":["node_modules/vuepress/lib/app/.temp/enhanceApp.js"],"names":["default"],"mappings":";AAAA,SAASA,OAAT,QAAwB,sEAAxB","sourceRoot":"/Users/ruki/projects/personal/xmake-docs","sourcesContent":["export { default } from \"/Users/ruki/projects/personal/xmake-docs/src/.vuepress/enhanceApp.js\""]}]} \ No newline at end of file
diff --git a/node_modules/vuepress/node_modules/.cache/vuepress/3edaa3ec77ac0c03fec5665f634f27a2.json b/node_modules/vuepress/node_modules/.cache/vuepress/3edaa3ec77ac0c03fec5665f634f27a2.json
index 144666b1..10323f56 100644
--- a/node_modules/vuepress/node_modules/.cache/vuepress/3edaa3ec77ac0c03fec5665f634f27a2.json
+++ b/node_modules/vuepress/node_modules/.cache/vuepress/3edaa3ec77ac0c03fec5665f634f27a2.json
@@ -1 +1 @@
-{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js??ref--1-0!/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js??ref--1-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js??ref--1-2!/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md?vue&type=template&id=d7bc09fe&","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md","mtime":1541598674687},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1541484125571},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js","mtime":1541484125571},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js","mtime":1541484147168}],"contextDependencies":[],"result":["var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"content\" }, [\n _vm._m(0),\n _vm._v(\" \"),\n _vm._m(1),\n _vm._v(\" \"),\n _vm._m(2),\n _vm._v(\" \"),\n _vm._m(3),\n _vm._v(\" \"),\n _vm._m(4),\n _vm._m(5),\n _vm._v(\" \"),\n _vm._m(6),\n _vm._m(7),\n _vm._v(\" \"),\n _vm._m(8),\n _vm._m(9),\n _vm._v(\" \"),\n _c(\"ol\", [\n _c(\"li\", [\n _vm._v(\"Download xmake windows installer from \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/releases\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"Releases\"), _c(\"OutboundLink\")],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"Run xmake-[version].exe\")])\n ]),\n _vm._v(\" \"),\n _vm._m(10),\n _vm._v(\" \"),\n _vm._m(11),\n _vm._m(12),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"On Archlinux:\")]),\n _vm._v(\" \"),\n _vm._m(13),\n _c(\"p\", [_vm._v(\"On Ubuntu:\")]),\n _vm._v(\" \"),\n _vm._m(14),\n _c(\"p\", [_vm._v(\"Or add xmake package source manually:\")]),\n _vm._v(\" \"),\n _vm._m(15),\n _c(\"p\", [_vm._v(\"Then we run:\")]),\n _vm._v(\" \"),\n _vm._m(16),\n _c(\"p\", [_vm._v(\"Or download deb package to install it:\")]),\n _vm._v(\" \"),\n _c(\"ol\", [\n _c(\"li\", [\n _vm._v(\"Download xmake \"),\n _c(\"code\", [_vm._v(\".deb\")]),\n _vm._v(\" install package from \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/releases\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"Releases\"), _c(\"OutboundLink\")],\n 1\n )\n ]),\n _vm._v(\" \"),\n _vm._m(17)\n ]),\n _vm._v(\" \"),\n _vm._m(18),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Compile and install:\")]),\n _vm._v(\" \"),\n _vm._m(19),\n _c(\"p\", [_vm._v(\"Only install and update lua scripts:\")]),\n _vm._v(\" \"),\n _vm._m(20),\n _c(\"p\", [_vm._v(\"Uninstall:\")]),\n _vm._v(\" \"),\n _vm._m(21),\n _c(\"p\", [_vm._v(\"Or compile and install via make:\")]),\n _vm._v(\" \"),\n _vm._m(22),\n _c(\"p\", [_vm._v(\"Install to other given directory:\")]),\n _vm._v(\" \"),\n _vm._m(23),\n _c(\"p\", [_vm._v(\"Uninstall:\")]),\n _vm._v(\" \"),\n _vm._m(24),\n _vm._m(25),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://asciinema.org/a/133693\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [\n _c(\"img\", {\n attrs: {\n src: \"https://asciinema.org/a/133693.png\",\n alt: \"asciicast\"\n }\n }),\n _c(\"OutboundLink\")\n ],\n 1\n )\n ]),\n _vm._v(\" \"),\n _vm._m(26),\n _vm._v(\" \"),\n _vm._m(27),\n _c(\"p\", [\n _vm._v(\"And xmake will generate some files for c language project:\")\n ]),\n _vm._v(\" \"),\n _vm._m(28),\n _vm._m(29),\n _vm._v(\" \"),\n _vm._m(30),\n _vm._v(\" \"),\n _vm._m(31),\n _c(\"p\", [_vm._v(\"Support languages:\")]),\n _vm._v(\" \"),\n _vm._m(32),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\n If you want to known more options, please run: `xmake create --help`\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(33),\n _vm._v(\" \"),\n _vm._m(34),\n _vm._m(35),\n _vm._v(\" \"),\n _vm._m(36),\n _vm._m(37),\n _vm._v(\" \"),\n _vm._m(38),\n _c(\"p\", [\n _vm._v(\n \"It will start the debugger (.e.g lldb, gdb, windbg, vsjitdebugger, ollydbg ..) to load our program.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(39),\n _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\n You can also use short command option, for exmaple: `xmake r` or `xmake run`\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(40),\n _vm._v(\" \"),\n _vm._m(41),\n _vm._v(\" \"),\n _vm._m(42),\n _vm._m(43),\n _vm._v(\" \"),\n _vm._m(44),\n _vm._m(45),\n _vm._v(\" \"),\n _vm._m(46),\n _vm._v(\" \"),\n _vm._m(47),\n _vm._m(48),\n _vm._v(\" \"),\n _vm._m(49),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Create an empty project:\")]),\n _vm._v(\" \"),\n _vm._m(50),\n _c(\"p\", [\n _vm._v(\n \"xmake will detect Qt SDK automatically and we can also set the SDK directory manually.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(51),\n _c(\"p\", [\n _vm._v(\n \"If you want to use the MinGW Qt environment on windows, you can set the MinGW platform configuration and specify the SDK path for the MinGW compilation environment, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(52),\n _c(\"p\", [\n _vm._v(\"If you want to known more information, you can see \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/issues/160\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"#160\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\".\")\n ]),\n _vm._v(\" \"),\n _vm._m(53),\n _vm._v(\" \"),\n _vm._m(54),\n _vm._m(55),\n _vm._v(\" \"),\n _vm._m(56),\n _vm._m(57),\n _vm._v(\" \"),\n _vm._m(58),\n _vm._m(59),\n _vm._v(\" \"),\n _vm._m(60),\n _vm._m(61),\n _vm._v(\" \"),\n _vm._m(62),\n _vm._m(63),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Create an empty project:\")]),\n _vm._v(\" \"),\n _vm._m(64),\n _vm._m(65),\n _c(\"p\", [\n _vm._v(\n \"xmake will detect Cuda SDK automatically and we can also set the SDK directory manually.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(66),\n _c(\"p\", [\n _vm._v(\"If you want to known more information, you can see \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/issues/158\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"#158\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\".\")\n ]),\n _vm._v(\" \"),\n _vm._m(67),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"xmake will detect WDK automatically and we can also set the WDK directory manually.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(68),\n _c(\"p\", [\n _vm._v(\"If you want to known more information, you can see \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/issues/159\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"#159\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\".\")\n ]),\n _vm._v(\" \"),\n _vm._m(69),\n _vm._v(\" \"),\n _vm._m(70),\n _vm._m(71),\n _vm._v(\" \"),\n _vm._m(72),\n _vm._m(73),\n _vm._v(\" \"),\n _vm._m(74),\n _vm._m(75),\n _vm._m(76),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"We can run the following command to generate a .cab driver package.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(77),\n _c(\"p\", [_vm._v(\"The output files like:\")]),\n _vm._v(\" \"),\n _vm._m(78),\n _vm._m(79),\n _vm._v(\" \"),\n _vm._m(80),\n _vm._v(\" \"),\n _vm._m(81),\n _vm._v(\" \"),\n _vm._m(82),\n _vm._v(\" \"),\n _vm._m(83),\n _c(\"p\", [\n _vm._v(\n \"Or we set a valid certificate thumbprint to do it in local machine.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(84),\n _c(\"p\", [\n _vm._v(\"We can also do testsign via setting store/company info.\")\n ]),\n _vm._v(\" \"),\n _vm._m(85),\n _vm._m(86),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"We can set a certificate file for release signing.\")]),\n _vm._v(\" \"),\n _vm._m(87),\n _vm._m(88),\n _vm._v(\" \"),\n _vm._m(89),\n _vm._v(\" \"),\n _vm._m(90),\n _c(\"p\", [\n _vm._v(\"We can also set windows version for WDK driver program:\")\n ]),\n _vm._v(\" \"),\n _vm._m(91),\n _vm._m(92),\n _vm._v(\" \"),\n _vm._m(93),\n _c(\"p\", [\n _vm._v(\"If you want to known more information, you can see \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/issues/173\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"#173\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\".\")\n ]),\n _vm._v(\" \"),\n _vm._m(94),\n _vm._v(\" \"),\n _vm._m(95),\n _vm._v(\" \"),\n _vm._m(96),\n _vm._v(\" \"),\n _vm._m(97),\n _vm._v(\" \"),\n _vm._m(98),\n _vm._v(\" \"),\n _vm._m(99),\n _vm._v(\" \"),\n _vm._m(100),\n _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\n XMake will detect the current host platform automatically and build project.\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(101),\n _vm._v(\" \"),\n _vm._m(102),\n _vm._m(103),\n _vm._v(\" \"),\n _vm._m(104),\n _vm._m(105),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"For example:\")]),\n _vm._v(\" \"),\n _vm._m(106),\n _vm._m(107),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\nPlease attempt to set `--arch=` option if it had failed to check compiler.\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(108),\n _vm._v(\" \"),\n _vm._m(109),\n _vm._m(110),\n _vm._v(\" \"),\n _vm._m(111),\n _vm._m(112),\n _vm._v(\" \"),\n _vm._m(113),\n _vm._m(114),\n _vm._v(\" \"),\n _vm._m(115),\n _vm._m(116),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"For linux platform:\")]),\n _vm._v(\" \"),\n _vm._m(117),\n _c(\"p\", [_vm._v(\"Fro other cross platform:\")]),\n _vm._v(\" \"),\n _vm._m(118),\n _vm._m(119),\n _vm._v(\" \"),\n _vm._m(120),\n _vm._m(121),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\nif you want to known more options, please run: `xmake f --help`。\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(122),\n _vm._v(\" \"),\n _vm._m(123),\n _vm._v(\" \"),\n _vm._m(124),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"As long as this toolchains meet the following directory structure:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(125),\n _c(\"p\", [\n _vm._v(\"Then,we can only configure the sdk directory and build it.\")\n ]),\n _vm._v(\" \"),\n _vm._m(126),\n _c(\"p\", [\n _vm._v(\n \"xmake will detect the prefix: arm-linux- and add the include and library search directory automatically.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(127),\n _vm._m(128),\n _vm._v(\" \"),\n _vm._m(129),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"We need set it manually if the toolchains /bin directory is in other places, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(130),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nBefore v2.2.1 version, this parameter name is `--toolchains`, exists more ambiguous, so we changed to `--bin=` to set the bin directory.\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(131),\n _vm._v(\" \"),\n _vm._m(132),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"For example, under the same toolchains directory at the same time, there are two different compilers:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(133),\n _vm._m(134),\n _vm._v(\" \"),\n _vm._m(135),\n _vm._m(136),\n _vm._v(\" \"),\n _vm._m(137),\n _vm._v(\" \"),\n _vm._m(138),\n _c(\"p\", [\n _vm._v(\n \"If the 'AS' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --as=gcc@/home/xxx/asmips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(139),\n _vm._v(\" \"),\n _vm._m(140),\n _vm._v(\" \"),\n _vm._m(141),\n _c(\"p\", [\n _vm._v(\n \"If the 'CC' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --cc=gcc@/home/xxx/ccmips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(142),\n _vm._v(\" \"),\n _vm._m(143),\n _vm._v(\" \"),\n _vm._m(144),\n _c(\"p\", [\n _vm._v(\n \"If the 'CXX' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --cxx=g++@/home/xxx/c++mips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(145),\n _vm._v(\" \"),\n _vm._m(146),\n _vm._v(\" \"),\n _vm._m(147),\n _c(\"p\", [\n _vm._v(\n \"If the 'LD' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-gcc/clang linker, .e.g `xmake f --ld=g++@/home/xxx/c++mips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(148),\n _vm._v(\" \"),\n _vm._m(149),\n _vm._v(\" \"),\n _vm._m(150),\n _c(\"p\", [\n _vm._v(\n \"If the 'SH' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-gcc/clang linker, .e.g `xmake f --sh=g++@/home/xxx/c++mips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(151),\n _vm._v(\" \"),\n _vm._m(152),\n _vm._v(\" \"),\n _vm._m(153),\n _c(\"p\", [\n _vm._v(\n \"If the 'AR' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-ar archiver, .e.g `xmake f --ar=ar@/home/xxx/armips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(154),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"You can save to the global configuration for simplfying operation.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"For example:\")]),\n _vm._v(\" \"),\n _vm._m(155),\n _c(\"p\", [_vm._v(\"Now, we config and build project for android again.\")]),\n _vm._v(\" \"),\n _vm._m(156),\n _vm._m(157),\n _vm._v(\" \"),\n _vm._m(158),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\"We can clean all cached configuration and re-configure projecct.\")\n ]),\n _vm._v(\" \"),\n _vm._m(159),\n _c(\"p\", [_vm._v(\"or\")]),\n _vm._v(\" \"),\n _vm._m(160),\n _vm._m(161),\n _vm._v(\" \"),\n _vm._m(162),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"By including a dependency package directory and a binary package file in the project, it is convenient to integrate some third-party dependency libraries. This method is relatively simple and straightforward, but the disadvantages are also obvious and inconvenient to manage.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Take the tbox project as an example. The dependency package is as follows:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(163),\n _c(\"p\", [\n _vm._v(\n \"If you want the current project to recognize loading these packages, you first need to specify the package directory path, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(164),\n _c(\"p\", [\n _vm._v(\n \"Once specified, you can add integration package dependencies in the target scope via the \"\n ),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://xmake.io/#/zh/manual?id=targetadd_packages\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"add_packages\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\" interface, for example:\")\n ]),\n _vm._v(\" \"),\n _vm._m(165),\n _c(\"p\", [\n _vm._v(\n \"So how to generate a *.pkg package, if it is based on xmake project, the generation method is very simple, only need:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(166),\n _c(\"p\", [\n _vm._v(\n \"You can generate a tbox.pkg cross-platform package in the build directory for use by third-party projects. I can also directly set the output directory and compile and generate it into the other project, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(167),\n _c(\"p\", [\n _vm._v(\"In this way, the test project can pass \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://xmake.io/#/zh/manual?id=targetadd_packages\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"add_packages\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\n \" and [add_packagedirs](https://xmake.io/#/zh/manual?id= add_packagedirs) to configure and use the tbox.pkg package.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"For a detailed description of the built-in package, you can also refer to the following related article, which is described in detail: [Dependency package addition and automatic detection mechanism] (http://tboox.org/cn/2016/08/06/add-package -and-autocheck/)\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(168),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"If you feel that the above built-in package management method is very inconvenient, you can use the extension interface [lib.detect.find_package] provided by xmake (https://xmake.io/#/zh/manual?id=detect-find_package) to find the system. Existing dependencies.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Currently this interface supports the following package management support:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(169),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"And through the system and third-party package management tools for the installation of the dependency package, and then integrated with xmake, for example, we look for an openssl package:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(170),\n _c(\"p\", [_vm._v(\"The returned results are as follows:\")]),\n _vm._v(\" \"),\n _vm._m(171),\n _c(\"p\", [\n _vm._v(\n \"If the search is successful, return a table containing all the package information, if it fails, return nil\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(172),\n _vm._v(\" \"),\n _vm._m(173),\n _vm._m(174),\n _vm._m(175),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"For a more complete description of the usage, please refer to the \"\n ),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://xmake.io/#/en/manual?id=detect-find_package\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"lib.detect.find_package\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\" interface documentation.\")\n ]),\n _vm._v(\" \"),\n _vm._m(176),\n _vm._v(\" \"),\n _vm._m(177),\n _vm._v(\" \"),\n _vm._m(178),\n _vm._v(\" \"),\n _vm._m(179),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Of course, we can also manually specify the root path of vcpkg to support:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(180),\n _c(\"p\", [\n _vm._v(\n \"Or we can set it to the global configuration to avoid repeating the settings each time we switch configurations:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(181),\n _vm._m(182),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"This has been initially supported after the 2.2.2 version, the usage is much simpler, just set the corresponding dependency package, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(183),\n _vm._m(184),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Then directly compile:\")]),\n _vm._v(\" \"),\n _vm._m(185),\n _c(\"p\", [\n _vm._v(\n \"xmake will remotely pull the relevant source package, then automatically compile and install, finally compile the project, and link the dependency package. The specific effect is shown in the following figure:\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"img\", {\n attrs: { src: \"/assets/img/index/package_manage.png\", width: \"80%\" }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"For more information and progress on package dependency management see the related issues: [Remote package management] (https://github.com/tboox/xmake/issues/69)\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(186),\n _vm._v(\" \"),\n _vm._m(187),\n _vm._v(\" \"),\n _vm._m(188),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Here we briefly introduce the processing mechanism of the entire dependency package:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(189),\n _vm._v(\" \"),\n _vm._m(190),\n _vm._v(\" \"),\n _vm._m(191),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n 'Xmake\\'s dependency package management fully supports semantic version selection, for example: \"~1.6.1\". For a detailed description of the semantic version, see: [http://semver.org/] (http://semver.org/)'\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Some semantic versions are written:\")]),\n _vm._v(\" \"),\n _vm._m(192),\n _c(\"p\", [\n _vm._v(\"The semantic version parser currently used by xmake is the \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/uael/sv\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"sv\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\" library contributed by \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/uael\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"uael\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\n \", which also has a description of the version. For detailed instructions, please refer to the following: [Version Description] (https://github.com/uael/sv#versions)\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Of course, if we have no special requirements for the current version of the dependency package, then we can write directly:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(193),\n _c(\"p\", [\n _vm._v(\n \"This will use the latest version of the package known, or the source code compiled by the master branch. If the current package has a git repo address, we can also specify a specific branch version:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(194),\n _vm._m(195),\n _vm._v(\" \"),\n _vm._m(196),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"If the specified dependency package is not supported by the current platform, or if the compilation and installation fails, then xmake will compile the error, which is reasonable for some projects that must rely on certain packages to work.\\nHowever, if some packages are optional dependencies, they can be set to optional packages even if they are not compiled properly.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(197),\n _vm._m(198),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"With the default settings, xmake will first check to see if the system library exists (if no version is required). If the user does not want to use the system library and the library provided by the third-party package management, then you can set:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(199),\n _vm._m(200),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"If we want to debug the dependencies at the same time, we can set them to use the debug version of the package (provided that this package supports debug compilation):\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(201),\n _c(\"p\", [\n _vm._v(\n \"If the current package does not support debug compilation, you can submit the modified compilation rules in the repository to support the debug, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(202),\n _vm._m(203),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Some packages have various compile options at compile time, and we can pass them in. Of course, the package itself supports:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(204),\n _vm._m(205),\n _vm._v(\" \"),\n _vm._m(206),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\"If the required package is not in the official repository \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake-repo\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"xmake-repo\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\n \", we can submit the contribution code to the repository for support.\\nBut if some packages are only for personal or private projects, we can create a private repository repo. The repository organization structure can be found at: \"\n ),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake-repo\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"xmake-repo\"), _c(\"OutboundLink\")],\n 1\n )\n ]),\n _vm._v(\" \"),\n _vm._m(207),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"We can add the repository with the following command:\")]),\n _vm._v(\" \"),\n _vm._m(208),\n _c(\"p\", [_vm._v(\"Or we write directly in xmake.lua:\")]),\n _vm._v(\" \"),\n _vm._m(209),\n _c(\"p\", [\n _vm._v(\n \"If we just want to add one or two private packages, this time to build a git repo is too big, we can directly put the package repository into the project, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(210),\n _c(\"p\", [\n _vm._v(\n \"The above myrepo directory is your own private package repository, built into your own project, and then add this repository location in xmake.lua:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(211),\n _c(\"p\", [\n _vm._v(\n \"This can be referred to [benchbox] (https://github.com/tboox/benchbox) project, which has a built-in private repository.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"We can even build a package without directly building a package description into the project xmake.lua, which is useful for relying on one or two packages, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(212),\n _vm._m(213),\n _vm._v(\" \"),\n _vm._m(214),\n _vm._v(\" \"),\n _vm._m(215),\n _vm._v(\" \"),\n _vm._m(216),\n _c(\"p\", [_vm._v(\"Install the specified version package:\")]),\n _vm._v(\" \"),\n _vm._m(217),\n _c(\"p\", [\n _vm._v(\n \"Force a re-download of the installation and display detailed installation information:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(218),\n _c(\"p\", [_vm._v(\"Pass additional setup information:\")]),\n _vm._v(\" \"),\n _vm._m(219),\n _vm._m(220),\n _vm._v(\" \"),\n _vm._m(221),\n _vm._v(\" \"),\n _vm._m(222),\n _c(\"p\", [\n _vm._v(\"This will completely uninstall the removal package file.\")\n ]),\n _vm._v(\" \"),\n _vm._m(223),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Only unlink specifies the package, it is not detected by the current project, but the package still exists locally. If it is reinstalled, it will be completed very quickly.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(224),\n _vm._m(225),\n _vm._v(\" \"),\n _vm._m(226),\n _vm._m(227),\n _vm._v(\" \"),\n _vm._m(228),\n _c(\"p\", [\n _vm._v(\"This is to support fuzzy search and lua pattern matching search:\")\n ]),\n _vm._v(\" \"),\n _vm._m(229),\n _c(\"p\", [_vm._v(\"Will also search for pcre, pcre2 and other packages.\")]),\n _vm._v(\" \"),\n _vm._m(230),\n _vm._v(\" \"),\n _vm._m(231),\n _vm._m(232),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"As mentioned above, adding a private repository is available (supporting local path addition):\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(233),\n _c(\"p\", [\n _vm._v(\"We can also remove a repository that has already been installed:\")\n ]),\n _vm._v(\" \"),\n _vm._m(234),\n _c(\"p\", [_vm._v(\"Or view all the added warehouses:\")]),\n _vm._v(\" \"),\n _vm._m(235),\n _c(\"p\", [\n _vm._v(\n \"If the remote repository has updates, you can manually perform a warehouse update to get more and the latest packages:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(236),\n _vm._m(237),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"If you need a package that is not supported by the current official repository, you can commit it to the official repository after local tuning: \"\n ),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake-repo\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"xmake-repo\"), _c(\"OutboundLink\")],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\"For detailed contribution descriptions, see: \"),\n _c(\n \"a\",\n {\n attrs: {\n href:\n \"https://github.com/tboox/xmake-repo/blob/master/CONTRIBUTING.md\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"CONTRIBUTING.md\"), _c(\"OutboundLink\")],\n 1\n )\n ])\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h1\", { attrs: { id: \"getting-started\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#getting-started\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Getting Started\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h2\", { attrs: { id: \"installation\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#installation\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Installation\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"master\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#master\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Master\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"via-curl\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#via-curl\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" via curl\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"bash\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\n \"curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh\"\n ),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"via-wget\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#via-wget\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" via wget\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"bash\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\n \"wget https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh -O -\"\n ),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"via-powershell\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#via-powershell\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" via powershell\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"Invoke-Expression \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"Invoke-Webrequest \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v(\n \"'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1'\"\n )\n ]),\n _vm._v(\" -UseBasicParsing\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\".Content\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"windows\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#windows\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Windows\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"macos\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#macos\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" MacOS\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ brew \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _vm._v(\" xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"linux\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#linux\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Linux\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ yaourt xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" add-apt-repository ppa:tboox/xmake\\n$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" apt update\\n$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" apt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _vm._v(\" xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \"deb http://ppa.launchpad.net/tboox/xmake/ubuntu yakkety main \\ndeb-src http://ppa.launchpad.net/tboox/xmake/ubuntu yakkety main \\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" apt update\\n$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" apt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _vm._v(\" xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"li\", [\n _vm._v(\"Run \"),\n _c(\"code\", [_vm._v(\"dpkg -i xmake-xxxx.deb\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"compilation\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#compilation\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Compilation\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"git\")]),\n _vm._v(\" clone https://github.com/tboox/xmake.git\\n$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cd\")]),\n _vm._v(\" ./xmake\\n$ ./scripts/get.sh __local__\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ ./scripts/get.sh __local__ __install_only__\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ ./scripts/get.sh __uninstall__\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"make\")]),\n _vm._v(\" build\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\";\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"make\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"make\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _vm._v(\" prefix\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"make\")]),\n _vm._v(\" uninstall\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h2\", { attrs: { id: \"quick-start\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#quick-start\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Quick Start\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"create-project\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#create-project\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Create Project\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake create -l c -P ./hello\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [_vm._v(\"hello\\n├── src\\n│ └── main.c\\n└── xmake.lua\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"It is a simple console program only for printing \"),\n _c(\"code\", [_vm._v(\"hello xmake!\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"The content of \"),\n _c(\"code\", [_vm._v(\"xmake.lua\")]),\n _vm._v(\" is very simple:\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"hello\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [_vm._v(\"c/c++\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"objc/c++\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"asm\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"swift\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"dlang\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"golang\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"rust\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"build-project\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#build-project\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Build Project\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"run-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#run-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Run Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake run hello\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"debug-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#debug-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Debug Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake run -d hello \\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"lldb\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _c(\"span\", { attrs: { class: \"token variable\" } }, [\n _vm._v(\"$target\")\n ]),\n _vm._v(\" create \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"build/hello\"')\n ]),\n _vm._v(\"\\nCurrent executable \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"set\")]),\n _vm._v(\" to \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v(\"'build/hello'\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"x86_64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\".\\n\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"lldb\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _c(\"span\", { attrs: { class: \"token variable\" } }, [_vm._v(\"$b\")]),\n _vm._v(\" main\\nBreakpoint 1: where \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" hello\"),\n _c(\"span\", { attrs: { class: \"token variable\" } }, [\n _c(\"span\", { attrs: { class: \"token variable\" } }, [_vm._v(\"`\")]),\n _vm._v(\"main, address \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" 0x0000000100000f50\\n\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [\n _vm._v(\"[\")\n ]),\n _vm._v(\"lldb\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [\n _vm._v(\"]\")\n ]),\n _vm._v(\"$r\\nProcess 7509 launched: \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v(\"'/private/tmp/hello/build/hello'\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [\n _vm._v(\"(\")\n ]),\n _vm._v(\"x86_64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [\n _vm._v(\")\")\n ]),\n _vm._v(\"\\nProcess 7509 stopped\\n* thread #1: tid \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" 0x435a2, 0x0000000100000f50 hello\"),\n _c(\"span\", { attrs: { class: \"token variable\" } }, [_vm._v(\"`\")])\n ]),\n _vm._v(\"main, queue \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v(\"'com.apple.main-thread'\")\n ]),\n _vm._v(\", stop reason \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" breakpoint 1.1\\n frame \"),\n _c(\"span\", { attrs: { class: \"token comment\" } }, [\n _vm._v(\"#0: 0x0000000100000f50 hello`main\")\n ]),\n _vm._v(\"\\nhello`main:\\n-\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\">\")]),\n _vm._v(\" 0x100000f50 \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _vm._v(\"+0\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\">\")]),\n _vm._v(\": pushq %rbp\\n 0x100000f51 \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _vm._v(\"+1\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\">\")]),\n _vm._v(\": movq %rsp, %rbp\\n 0x100000f54 \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _vm._v(\"+4\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\">\")]),\n _vm._v(\": leaq 0x2b\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"%rip\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\", %rdi \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\";\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"hello world!\"')\n ]),\n _vm._v(\"\\n 0x100000f5b \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _vm._v(\"+11\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\">\")]),\n _vm._v(\": callq 0x100000f64 \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\";\")]),\n _vm._v(\" symbol stub for: puts\\n\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"lldb\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"$\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h2\", { attrs: { id: \"project-examples\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#project-examples\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Project Examples\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"executable-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#executable-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Executable Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"static-library-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#static-library-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Static Library Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"static\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/library/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_deps\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"We use \"),\n _c(\"code\", [_vm._v(\"add_deps\")]),\n _vm._v(\" to link a static library to test target.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"share-library-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#share-library-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Share Library Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"shared\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/library/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_deps\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"We use \"),\n _c(\"code\", [_vm._v(\"add_deps\")]),\n _vm._v(\" to link a share library to test target.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"qt-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#qt-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Qt Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake create -l c++ -t console_qt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\"\\n$ xmake create -l c++ -t static_qt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\"\\n$ xmake create -l c++ -t shared_qt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\"\\n$ xmake create -l c++ -t quickapp_qt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f --qt\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"~/Qt/Qt5.9.1\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p mingw --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"C:\\\\Qt\\\\Qt5.10.1\\\\Tools\\\\mingw530_32 \\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"static-library\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#static-library\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Static Library\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt_static_library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt.static\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_frameworks\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"QtNetwork\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"QtGui\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"shared-library\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#shared-library\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Shared Library\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt_shared_library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt.shared\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_frameworks\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"QtNetwork\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"QtGui\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"console-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#console-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Console Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt_console\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt.console\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"quick-application\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#quick-application\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Quick Application\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt_quickapp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt.application\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/qml.qrc\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_frameworks\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"QtQuick\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"widgets-application\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#widgets-application\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Widgets Application\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt_widgetapp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt.application\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/mainwindow.ui\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/mainwindow.h\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token comment\" } }, [\n _vm._v(\"-- add files with Q_OBJECT meta (only for qt.moc)\")\n ]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_frameworks\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"QtWidgets\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"cuda-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#cuda-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Cuda Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake create -P \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\" -l cuda\\n$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cd\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"cuda_console\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cu\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token comment\" } }, [\n _vm._v(\"-- generate SASS code for each SM architecture\")\n ]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"for\")]),\n _vm._v(\" _\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" sm \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"in\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"ipairs\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"30\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"35\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"37\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"50\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"52\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"60\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"61\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"70\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"do\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_cuflags\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-gencode arch=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\",code=sm_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_ldflags\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-gencode arch=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\",code=sm_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token comment\" } }, [\n _vm._v(\n \"-- generate PTX code from the highest SM architecture to guarantee forward-compatibility\"\n )\n ]),\n _vm._v(\"\\n sm \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"70\"')]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_cuflags\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-gencode arch=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\",code=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_ldflags\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-gencode arch=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\",code=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f --cuda\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local/cuda-9.1/ \\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"wdk-driver-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#wdk-driver-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" WDK Driver Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f --wdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"G:\\\\Program Files\\\\Windows Kits\\\\10\"')\n ]),\n _vm._v(\" -c\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"umdf-driver-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#umdf-driver-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" UMDF Driver Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"echo\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.umdf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"driver/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"driver/*.inx\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_includedirs\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"exe\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"app\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.umdf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"exe/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"kmdf-driver-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#kmdf-driver-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" KMDF Driver Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"nonpnp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.kmdf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.tracewpp.flags\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-func:TraceEvents(LEVEL,FLAGS,MSG,...)\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-func:Hexdump((LEVEL,FLAGS,MSG,...))\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"driver/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"rule \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.tracewpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"driver/*.rc\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"app\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.kmdf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"exe/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"exe/*.inf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"wdm-driver-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#wdm-driver-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" WDM Driver Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"kcs\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.man.flags\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-prefix Kcs\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.man.resource\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"kcsCounters.rc\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.man.header\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"kcsCounters.h\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.man.counter_header\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"kcsCounters_counters.h\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.c\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.rc\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.man\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"msdsm\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.tracewpp.flags\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-func:TracePrint((LEVEL,FLAGS,MSG,...))\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.c\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"rule \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.tracewpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.rc\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.inf\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"*.mof|msdsm.mof\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"msdsm.mof\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"values \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"wdk_mof_header \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"msdsmwmi.h\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"package-driver\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#package-driver\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Package Driver\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"p\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"p\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\" -o outputdir\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \" - drivers\\n - sampledsm\\n - debug/x86/sampledsm.cab\\n - release/x64/sampledsm.cab\\n - debug/x86/sampledsm.cab\\n - release/x64/sampledsm.cab\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"driver-signing\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#driver-signing\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Driver Signing\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"The driver signing is disabled when we compile driver in default case,\\nbut we can add \"\n ),\n _c(\"code\", [_vm._v('set_values(\"wdk.sign.mode\")')]),\n _vm._v(\" to enable test/release sign.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"testsign\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#testsign\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" TestSign\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"We can use test certificate of xmake to do testsign, but please run \"\n ),\n _c(\"code\", [_vm._v(\"$xmake l utils.wdk.testcert\")]),\n _vm._v(\n \" install as admin to install a test certificate first (only once)!\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"msdsm\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.mode\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"msdsm\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.mode\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.thumbprint\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"032122545DCAA6167B1ADBE5F7FDF07AE2234AAA\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"msdsm\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.mode\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.store\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"PrivateCertStore\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.company\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"tboox.org(test)\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"releasesign\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#releasesign\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" ReleaseSign\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"msdsm\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.mode\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"release\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.company\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"xxxx\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.certfile\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" path\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"join\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"projectdir\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"xxxx.cer\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"support-low-version-system\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#support-low-version-system\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Support Low-version System\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"We can set \"),\n _c(\"code\", [_vm._v(\"wdk.env.winver\")]),\n _vm._v(\n \" to generate a driver package that is compatible with a low version system.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"win10\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win10_rs3\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"win81\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"win8\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"win7\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win7_sp1\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win7_sp2\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win7_sp3\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f --wdk_winver\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"win10_rs3\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"win8\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"win7\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"win7_sp1\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"winsdk-application-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#winsdk-application-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" WinSDK Application Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"usbview\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win.sdk.application\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.c\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.rc\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"xmlhelper.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"rule \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win.sdk.dotnet\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h2\", { attrs: { id: \"configuration\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#configuration\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Configuration\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"Set compilation configuration before building project with command \"\n ),\n _c(\"code\", [_vm._v(\"xmake f|config\")]),\n _vm._v(\".\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"And if you want to known more options, please run: \"),\n _c(\"code\", [_vm._v(\"xmake f --help\")]),\n _vm._v(\"。\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\"\\n You can use short or long command option, for exmaple: \"),\n _c(\"br\"),\n _vm._v(\"\\n `xmake f` or `xmake config`.\"),\n _c(\"br\"),\n _vm._v(\"\\n `xmake f -p linux` or `xmake config --plat=linux`.\\n\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"target-platforms\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#target-platforms\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Target Platforms\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"current-host\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#current-host\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Current Host\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"linux-2\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#linux-2\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Linux\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a i386\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"x86_64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"android\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#android\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Android\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p android --ndk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"~/files/android-ndk-r10e/ \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a armv5te\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"armv6\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"armv7-a\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"armv8-a\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"arm64-v8a\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"If you want to set the other android toolchains, you can use \"),\n _c(\"a\", { attrs: { href: \"#-bin\" } }, [_vm._v(\"--bin\")]),\n _vm._v(\" option.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p android --ndk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"~/files/android-ndk-r10e/ -a arm64-v8a --bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\n \"~/files/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"The \"),\n _c(\"a\", { attrs: { href: \"#-bin\" } }, [_vm._v(\"--bin\")]),\n _vm._v(\" option is used to set \"),\n _c(\"code\", [_vm._v(\"bin\")]),\n _vm._v(\" directory of toolchains.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"iphoneos\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#iphoneos\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" iPhoneOS\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p iphoneos \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a armv7\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"armv7s\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"arm64\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"i386\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"x86_64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"windows-2\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#windows-2\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Windows\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p windows \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a x86\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"x64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"mingw\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#mingw\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Mingw\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p mingw --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local/i386-mingw32-4.3.0/ \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a i386\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"x86_64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"apple-watchos\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#apple-watchos\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Apple WatchOS\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p watchos \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a i386\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"armv7k\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"cross-compilation\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#cross-compilation\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Cross Compilation\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local/arm-linux-gcc/ \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/sdk/bin\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--cross\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"arm-linux-\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p cross --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local/arm-xxx-gcc/ \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/sdk/bin\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--cross\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"arm-linux-\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"For custem cross platform (\"),\n _c(\"code\", [_vm._v('is_plat(\"myplat\")')]),\n _vm._v(\"):\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p myplat --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local/arm-xxx-gcc/ \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/sdk/bin\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--cross\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"arm-linux-\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"table\", [\n _c(\"thead\", [\n _c(\"tr\", [\n _c(\"th\", [_vm._v(\"Configuration Option\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Description\")])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tbody\", [\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-sdk\" } }, [_vm._v(\"--sdk\")])]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(\"Set the sdk root directory of toolchains\")])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-bin\" } }, [_vm._v(\"--bin\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set the \"),\n _c(\"code\", [_vm._v(\"bin\")]),\n _vm._v(\" directory of toolchains\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cross\" } }, [_vm._v(\"--cross\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(\"Set the prefix of compilation tools\")])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-as\" } }, [_vm._v(\"--as\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"asm\")]),\n _vm._v(\" assembler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-cc\" } }, [_vm._v(\"--cc\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-cxx\" } }, [_vm._v(\"--cxx\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c++\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-mm\" } }, [_vm._v(\"--mm\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"objc\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-mxx\" } }, [_vm._v(\"--mxx\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"objc++\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-sc\" } }, [_vm._v(\"--sc\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"swift\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-gc\" } }, [_vm._v(\"--gc\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"golang\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-dc\" } }, [_vm._v(\"--dc\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"dlang\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-rc\" } }, [_vm._v(\"--rc\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"rust\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-cu\" } }, [_vm._v(\"--cu\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"cuda\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-ld\" } }, [_vm._v(\"--ld\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-sh\" } }, [_vm._v(\"--sh\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" shared library linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-ar\" } }, [_vm._v(\"--ar\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" static library archiver\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-sc-ld\" } }, [_vm._v(\"--sc-ld\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"swift\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-sc-sh\" } }, [_vm._v(\"--sc-sh\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"swift\")]),\n _vm._v(\" shared library linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-gc-ld\" } }, [_vm._v(\"--gc-ld\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"golang\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-gc-ar\" } }, [_vm._v(\"--gc-ar\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"golang\")]),\n _vm._v(\" static library archiver\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-dc-ld\" } }, [_vm._v(\"--dc-ld\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"dlang\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-dc-sh\" } }, [_vm._v(\"--dc-sh\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"dlang\")]),\n _vm._v(\" shared library linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-dc-ar\" } }, [_vm._v(\"--dc-ar\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"dlang\")]),\n _vm._v(\" static library archiver\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-rc-ld\" } }, [_vm._v(\"--rc-ld\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"rust\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-rc-sh\" } }, [_vm._v(\"--rc-sh\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"rust\")]),\n _vm._v(\" shared library linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-rc-ar\" } }, [_vm._v(\"--rc-ar\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"rust\")]),\n _vm._v(\" static library archiver\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cu-ld\" } }, [_vm._v(\"--cu-ld\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"cuda\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cu-sh\" } }, [_vm._v(\"--cu-sh\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"cuda\")]),\n _vm._v(\" shared library linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cu-ar\" } }, [_vm._v(\"--cu-ar\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"cuda\")]),\n _vm._v(\" static library archiver\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-asflags\" } }, [_vm._v(\"--asflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"asm\")]),\n _vm._v(\" assembler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cflags\" } }, [_vm._v(\"--cflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cxflags\" } }, [_vm._v(\"--cxflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cxxflags\" } }, [_vm._v(\"--cxxflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c++\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-mflags\" } }, [_vm._v(\"--mflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"objc\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-mxflags\" } }, [_vm._v(\"--mxflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"objc/c++\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-mxxflags\" } }, [_vm._v(\"--mxxflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"objc++\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-scflags\" } }, [_vm._v(\"--scflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"swift\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-gcflags\" } }, [_vm._v(\"--gcflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"golang\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-dcflags\" } }, [_vm._v(\"--dcflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"dlang\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-rcflags\" } }, [_vm._v(\"--rcflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"rust\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cuflags\" } }, [_vm._v(\"--cuflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"cuda\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-ldflags\" } }, [_vm._v(\"--ldflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(\"Set linker option\")])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-shflags\" } }, [_vm._v(\"--shflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(\"Set shared library linker option\")])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-arflags\" } }, [_vm._v(\"--arflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(\"Set static library archiver option\")])\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"sdk\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#sdk\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --sdk\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [_vm._v(\"Set the sdk root directory of toolchains\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"xmake provides a convenient and flexible cross-compiling support.\\nIn most cases, we need not to configure complex toolchains prefix, for example: \"\n ),\n _c(\"code\", [_vm._v(\"arm-linux-\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \"/home/toolchains_sdkdir\\n - bin\\n - arm-linux-gcc\\n - arm-linux-ld\\n - ...\\n - lib\\n - libxxx.a\\n - include\\n - xxx.h\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/home/toolchains_sdkdir\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \"-I/home/toolchains_sdkdir/include -L/home/toolchains_sdkdir/lib\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"bin\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#bin\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --bin\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set the \"),\n _c(\"code\", [_vm._v(\"bin\")]),\n _vm._v(\" directory of toolchains\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/home/toolchains_sdkdir --bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/opt/bin\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"cross\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#cross\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --cross\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [_c(\"li\", [_vm._v(\"Set the prefix of compilation tools\")])])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\"/opt/bin\\n - armv7-linux-gcc\\n - aarch64-linux-gcc\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"If we want to use the \"),\n _c(\"code\", [_vm._v(\"armv7-linux-gcc\")]),\n _vm._v(\" compiler, we can run the following command:\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/toolsdk --bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/opt/bin --cross\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"as\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#as\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --as\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"asm\")]),\n _vm._v(\" assembler\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --as\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-as\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"cc\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#cc\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --cc\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [_c(\"li\", [_vm._v(\"Set c compiler\")])])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --cc\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-clang\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"cxx\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#cxx\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --cxx\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c++\")]),\n _vm._v(\" compiler\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --cxx\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-clang++\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"ld\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#ld\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --ld\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" linker\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --ld\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-clang++\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"sh\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#sh\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --sh\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" shared library linker\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --sh\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-clang++\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"ar\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#ar\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --ar\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" static library archiver\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --ar\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-ar\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"global-configuration\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#global-configuration\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Global Configuration\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake g --ndk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"~/files/android-ndk-r10e/\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake f -p android\\n$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\n You can use short or long command option, for exmaple: `xmake g` or `xmake global`.\"\n ),\n _c(\"br\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"clean-configuration\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#clean-configuration\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Clean Configuration\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake f -c\\n$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake f -p iphoneos -c\\n$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h2\", { attrs: { id: \"dependency-package-management\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#dependency-package-management\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Dependency Package Management\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"local-package-mode\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#local-package-mode\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Local Package Mode\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \"- base.pkg\\n- zlib.pkg\\n- polarssl.pkg\\n- openssl.pkg\\n- mysql.pkg\\n- pcre.pkg\\n- ...\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_packagedirs\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"packages\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_packages\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"polarssl\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"pcre\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"mysql\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cd\")]),\n _vm._v(\" tbox\\n$ xmake package\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cd\")]),\n _vm._v(\" tbox\\n$ xmake package -o \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"..\")]),\n _vm._v(\"/test/packages\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"system-search-mode\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#system-search-mode\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" System Search Mode\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [_vm._v(\"vcpkg\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"homebrew\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"pkg-config\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"import\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"lib.detect.find_package\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"local\")]),\n _vm._v(\" package \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"find_package\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"openssl\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"links \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"ssl\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"crypto\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"z\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" linkdirs \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"/usr/local/lib\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" includedirs \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"/usr/local/include\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"The return result here can be directly passed as the parameter of \"\n ),\n _c(\"code\", [_vm._v(\"target:add\")]),\n _vm._v(\", \"),\n _c(\"code\", [_vm._v(\"option:add\")]),\n _vm._v(\", which is used to dynamically increase the configuration of \"),\n _c(\"code\", [_vm._v(\"target/option\")]),\n _vm._v(\":\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"option\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_showmenu\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"true\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"before_check\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [\n _vm._v(\"function\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"option\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"import\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"lib.detect.find_package\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n option\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"add\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"find_package\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"on_load\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [\n _vm._v(\"function\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"target\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"import\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"lib.detect.find_package\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n target\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"add\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"find_package\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"If third-party tools such as \"),\n _c(\"code\", [_vm._v(\"homebrew\")]),\n _vm._v(\", \"),\n _c(\"code\", [_vm._v(\"pkg-config\")]),\n _vm._v(\n \" are installed on the system, then this interface will try to use them to improve the search results.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"homebrew-integration-support\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#homebrew-integration-support\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Homebrew Integration Support\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"Since homebrew is generally installed directly into the system, users do not need to do any integration work, \"\n ),\n _c(\"code\", [_vm._v(\"lib.detect.find_package\")]),\n _vm._v(\" has been natively seamlessly supported.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"vcpkg-integration-support\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#vcpkg-integration-support\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Vcpkg Integration Support\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"Currently xmake v2.2.2 version already supports vcpkg, users only need to install vcpkg, execute \"\n ),\n _c(\"code\", [_vm._v(\"$ vcpkg integrate install\")]),\n _vm._v(\n \", xmake will automatically detect the root path of vcpkg from the system, and then automatically adapt the bread.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f --vcpkg\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"f:\\\\vcpkg\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake g --vcpkg\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"f:\\\\vcpkg\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"remote-dependency-mode\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#remote-dependency-mode\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Remote dependency mode\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"tbox 1.6.*\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libpng ~1.16\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_packages\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libpng\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"The above \"),\n _c(\"code\", [_vm._v(\"add_requires\")]),\n _vm._v(\n \" is used to describe the dependencies required by the current project, and \"\n ),\n _c(\"code\", [_vm._v(\"add_packages\")]),\n _vm._v(\n \" is used to apply dependencies to the test target. Only settings will automatically add links, linkdirs, includedirs, etc.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"currently-supported-features\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#currently-supported-features\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Currently Supported Features\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\n 'Semantic version support, for example: \">= 1.1.0 < 1.2\", \"~1.6\", \"1.2.x\", \"1.*\"'\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _vm._v(\n \"Provide multi-warehouse management support such as official package warehouse, self-built private warehouse, project built-in warehouse, etc.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _vm._v(\n \"Cross-platform package compilation integration support (packages of different platforms and different architectures can be installed at the same time, fast switching use)\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _vm._v(\"Debug dependency package support, source code debugging\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h5\",\n { attrs: { id: \"dependency-package-processing-mechanism\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#dependency-package-processing-mechanism\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Dependency Package Processing Mechanism\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { attrs: { align: \"center\" } }, [\n _c(\"img\", {\n attrs: { src: \"/assets/img/index/package_arch.png\", width: \"80%\" }\n })\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ol\", [\n _c(\"li\", [\n _vm._v(\n \"Priority check for the current system directory, whether there is a specified package under the third-party package management, if there is a matching package, then you do not need to download and install (of course you can also set the system package)\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _vm._v(\n \"Retrieve the package matching the corresponding version, then download, compile, and install (Note: installed in a specific xmake directory, will not interfere with the system library environment)\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _vm._v(\n \"Compile the project, and finally automatically link the enabled dependencies\"\n )\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"semantic-version-settings\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#semantic-version-settings\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Semantic Version Settings\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"tbox 1.6.*\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"pcre 1.3.x\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libpng ^1.18\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libpng ~1.16\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"zlib 1.1.2 || >=1.2.11 <1.3.0\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libpng\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"tbox master\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"tbox dev\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"extra-package-information-settings\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#extra-package-information-settings\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Extra Package Information Settings\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"optional-package-settings\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#optional-package-settings\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Optional Package Settings\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"optional \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"true\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"disable-system-library\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#disable-system-library\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Disable System Library\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"system \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"false\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h6\",\n { attrs: { id: \"using-the-debug-version-of-the-package\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#using-the-debug-version-of-the-package\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Using the debug version of the package\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"debug \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"true\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"package\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"openssl\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"on_install\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"linux\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"macosx\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [\n _vm._v(\"function\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"vrun\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"./config %s --prefix=\\\\\"%s\\\\\"\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"debug\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"and\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"--debug\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"or\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"installdir\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"vrun\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"make -j4\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"vrun\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"make install\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h6\",\n {\n attrs: {\n id: \"passing-additional-compilation-information-to-the-package\"\n }\n },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href:\n \"#passing-additional-compilation-information-to-the-package\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Passing additional compilation information to the package\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"config \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"small\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"true\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"Pass \"),\n _c(\"code\", [_vm._v(\"--small=true\")]),\n _vm._v(\n \" to the tbox package so that compiling the installed tbox package is enabled.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h5\",\n { attrs: { id: \"using-self-built-private-package-warehouse\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#using-self-built-private-package-warehouse\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Using self-built private package warehouse\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"For example, now we have a private repository repo:\"),\n _c(\"code\", [_vm._v(\"git@github.com:myrepo/xmake-repo.git\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\n \"$ xmake repo --add myrepo git@github.com:myrepo/xmake-repo.git\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_repositories\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"my-repo git@github.com:myrepo/xmake-repo.git\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \"projectdir\\n - myrepo\\n - packages\\n - t/tbox/xmake.lua\\n - z/zlib/xmake.lua\\n - src\\n - main.c\\n - xmake.lua\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_repositories\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"my-repo myrepo\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"package\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libjpeg\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_urls\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"http://www.ijg.org/files/jpegsrc.$(version).tar.gz\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_versions\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"v9c\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v(\n '\"650250979303a649e21f87b5ccd02672af1ea6954b911342ea491f351ceb7122\"'\n )\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"on_install\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"windows\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [\n _vm._v(\"function\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"mv\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"jconfig.vc\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"jconfig.h\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"vrun\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"nmake -f makefile.vc\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cp\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.h\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"installdir\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"include\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cp\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libjpeg.lib\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"installdir\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"lib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"on_install\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"macosx\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"linux\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [\n _vm._v(\"function\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"import\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"package.tools.autoconf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"package_end\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libjpeg\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_packages\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libjpeg\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"package-management-command-use\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#package-management-command-use\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Package Management Command Use\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"The package management command \"),\n _c(\"code\", [_vm._v(\"$ xmake require\")]),\n _vm._v(\n \" can be used to manually display the download, install, uninstall, retrieve, and view package information.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"install-the-specified-package\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#install-the-specified-package\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Install the specified package\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require tbox\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake require tbox \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"~1.6\"')]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake require -f -v tbox \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"1.5.x\"')]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake require --extra\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"debug=true,config={small=true}\"')\n ]),\n _vm._v(\" tbox\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"Install the debug package and pass the compilation configuration information of \"\n ),\n _c(\"code\", [_vm._v(\"small=true\")]),\n _vm._v(\" to the package.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"uninstalling-the-specified-package\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#uninstalling-the-specified-package\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Uninstalling the specified package\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --uninstall tbox\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"remove-the-specified-package\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#remove-the-specified-package\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Remove the specified package\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --unlink tbox\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h6\", { attrs: { id: \"view-package-details\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#view-package-details\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" View package details\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --info tbox\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h6\",\n { attrs: { id: \"search-for-packages-in-the-current-warehouse\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#search-for-packages-in-the-current-warehouse\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Search for packages in the current warehouse\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --search tbox\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --search pcr\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h6\",\n { attrs: { id: \"list-the-currently-installed-packages\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#list-the-currently-installed-packages\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" List the currently installed packages\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --list\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"warehouse-management-command-use\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#warehouse-management-command-use\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Warehouse Management Command Use\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\n \"$ xmake repo --add myrepo git@github.com:myrepo/xmake-repo.git\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake repo --remove myrepo\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake repo --list\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake repo -u\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h5\",\n { attrs: { id: \"submit-the-package-to-the-official-warehouse\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#submit-the-package-to-the-official-warehouse\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Submit the package to the official warehouse\")\n ]\n )\n }\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }"]} \ No newline at end of file
+{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js??ref--1-0!/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js??ref--1-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js??ref--1-2!/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md?vue&type=template&id=d7bc09fe&","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md","mtime":1541599697727},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1541484125571},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js","mtime":1541484125571},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js","mtime":1541484147168}],"contextDependencies":[],"result":["var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"content\" }, [\n _vm._m(0),\n _vm._v(\" \"),\n _vm._m(1),\n _vm._v(\" \"),\n _vm._m(2),\n _vm._v(\" \"),\n _vm._m(3),\n _vm._v(\" \"),\n _vm._m(4),\n _vm._m(5),\n _vm._v(\" \"),\n _vm._m(6),\n _vm._m(7),\n _vm._v(\" \"),\n _vm._m(8),\n _vm._m(9),\n _vm._v(\" \"),\n _c(\"ol\", [\n _c(\"li\", [\n _vm._v(\"Download xmake windows installer from \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/releases\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"Releases\"), _c(\"OutboundLink\")],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"Run xmake-[version].exe\")])\n ]),\n _vm._v(\" \"),\n _vm._m(10),\n _vm._v(\" \"),\n _vm._m(11),\n _vm._m(12),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"On Archlinux:\")]),\n _vm._v(\" \"),\n _vm._m(13),\n _c(\"p\", [_vm._v(\"On Ubuntu:\")]),\n _vm._v(\" \"),\n _vm._m(14),\n _c(\"p\", [_vm._v(\"Or add xmake package source manually:\")]),\n _vm._v(\" \"),\n _vm._m(15),\n _c(\"p\", [_vm._v(\"Then we run:\")]),\n _vm._v(\" \"),\n _vm._m(16),\n _c(\"p\", [_vm._v(\"Or download deb package to install it:\")]),\n _vm._v(\" \"),\n _c(\"ol\", [\n _c(\"li\", [\n _vm._v(\"Download xmake \"),\n _c(\"code\", [_vm._v(\".deb\")]),\n _vm._v(\" install package from \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/releases\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"Releases\"), _c(\"OutboundLink\")],\n 1\n )\n ]),\n _vm._v(\" \"),\n _vm._m(17)\n ]),\n _vm._v(\" \"),\n _vm._m(18),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Compile and install:\")]),\n _vm._v(\" \"),\n _vm._m(19),\n _c(\"p\", [_vm._v(\"Only install and update lua scripts:\")]),\n _vm._v(\" \"),\n _vm._m(20),\n _c(\"p\", [_vm._v(\"Uninstall:\")]),\n _vm._v(\" \"),\n _vm._m(21),\n _c(\"p\", [_vm._v(\"Or compile and install via make:\")]),\n _vm._v(\" \"),\n _vm._m(22),\n _c(\"p\", [_vm._v(\"Install to other given directory:\")]),\n _vm._v(\" \"),\n _vm._m(23),\n _c(\"p\", [_vm._v(\"Uninstall:\")]),\n _vm._v(\" \"),\n _vm._m(24),\n _vm._m(25),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://asciinema.org/a/133693\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [\n _c(\"img\", {\n attrs: {\n src: \"https://asciinema.org/a/133693.png\",\n alt: \"asciicast\"\n }\n }),\n _c(\"OutboundLink\")\n ],\n 1\n )\n ]),\n _vm._v(\" \"),\n _vm._m(26),\n _vm._v(\" \"),\n _vm._m(27),\n _c(\"p\", [\n _vm._v(\"And xmake will generate some files for c language project:\")\n ]),\n _vm._v(\" \"),\n _vm._m(28),\n _vm._m(29),\n _vm._v(\" \"),\n _vm._m(30),\n _vm._v(\" \"),\n _vm._m(31),\n _c(\"p\", [_vm._v(\"Support languages:\")]),\n _vm._v(\" \"),\n _vm._m(32),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\n If you want to known more options, please run: `xmake create --help`\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(33),\n _vm._v(\" \"),\n _vm._m(34),\n _vm._m(35),\n _vm._v(\" \"),\n _vm._m(36),\n _vm._m(37),\n _vm._v(\" \"),\n _vm._m(38),\n _c(\"p\", [\n _vm._v(\n \"It will start the debugger (.e.g lldb, gdb, windbg, vsjitdebugger, ollydbg ..) to load our program.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(39),\n _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\n You can also use short command option, for exmaple: `xmake r` or `xmake run`\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(40),\n _vm._v(\" \"),\n _vm._m(41),\n _vm._v(\" \"),\n _vm._m(42),\n _vm._m(43),\n _vm._v(\" \"),\n _vm._m(44),\n _vm._m(45),\n _vm._v(\" \"),\n _vm._m(46),\n _vm._v(\" \"),\n _vm._m(47),\n _vm._m(48),\n _vm._v(\" \"),\n _vm._m(49),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Create an empty project:\")]),\n _vm._v(\" \"),\n _vm._m(50),\n _c(\"p\", [\n _vm._v(\n \"xmake will detect Qt SDK automatically and we can also set the SDK directory manually.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(51),\n _c(\"p\", [\n _vm._v(\n \"If you want to use the MinGW Qt environment on windows, you can set the MinGW platform configuration and specify the SDK path for the MinGW compilation environment, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(52),\n _c(\"p\", [\n _vm._v(\"If you want to known more information, you can see \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/issues/160\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"#160\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\".\")\n ]),\n _vm._v(\" \"),\n _vm._m(53),\n _vm._v(\" \"),\n _vm._m(54),\n _vm._m(55),\n _vm._v(\" \"),\n _vm._m(56),\n _vm._m(57),\n _vm._v(\" \"),\n _vm._m(58),\n _vm._m(59),\n _vm._v(\" \"),\n _vm._m(60),\n _vm._m(61),\n _vm._v(\" \"),\n _vm._m(62),\n _vm._m(63),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Create an empty project:\")]),\n _vm._v(\" \"),\n _vm._m(64),\n _vm._m(65),\n _c(\"p\", [\n _vm._v(\n \"xmake will detect Cuda SDK automatically and we can also set the SDK directory manually.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(66),\n _c(\"p\", [\n _vm._v(\"If you want to known more information, you can see \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/issues/158\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"#158\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\".\")\n ]),\n _vm._v(\" \"),\n _vm._m(67),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"xmake will detect WDK automatically and we can also set the WDK directory manually.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(68),\n _c(\"p\", [\n _vm._v(\"If you want to known more information, you can see \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/issues/159\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"#159\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\".\")\n ]),\n _vm._v(\" \"),\n _vm._m(69),\n _vm._v(\" \"),\n _vm._m(70),\n _vm._m(71),\n _vm._v(\" \"),\n _vm._m(72),\n _vm._m(73),\n _vm._v(\" \"),\n _vm._m(74),\n _vm._m(75),\n _vm._m(76),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"We can run the following command to generate a .cab driver package.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(77),\n _c(\"p\", [_vm._v(\"The output files like:\")]),\n _vm._v(\" \"),\n _vm._m(78),\n _vm._m(79),\n _vm._v(\" \"),\n _vm._m(80),\n _vm._v(\" \"),\n _vm._m(81),\n _vm._v(\" \"),\n _vm._m(82),\n _vm._v(\" \"),\n _vm._m(83),\n _c(\"p\", [\n _vm._v(\n \"Or we set a valid certificate thumbprint to do it in local machine.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(84),\n _c(\"p\", [\n _vm._v(\"We can also do testsign via setting store/company info.\")\n ]),\n _vm._v(\" \"),\n _vm._m(85),\n _vm._m(86),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"We can set a certificate file for release signing.\")]),\n _vm._v(\" \"),\n _vm._m(87),\n _vm._m(88),\n _vm._v(\" \"),\n _vm._m(89),\n _vm._v(\" \"),\n _vm._m(90),\n _c(\"p\", [\n _vm._v(\"We can also set windows version for WDK driver program:\")\n ]),\n _vm._v(\" \"),\n _vm._m(91),\n _vm._m(92),\n _vm._v(\" \"),\n _vm._m(93),\n _c(\"p\", [\n _vm._v(\"If you want to known more information, you can see \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake/issues/173\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"#173\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\".\")\n ]),\n _vm._v(\" \"),\n _vm._m(94),\n _vm._v(\" \"),\n _vm._m(95),\n _vm._v(\" \"),\n _vm._m(96),\n _vm._v(\" \"),\n _vm._m(97),\n _vm._v(\" \"),\n _vm._m(98),\n _vm._v(\" \"),\n _vm._m(99),\n _vm._v(\" \"),\n _vm._m(100),\n _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\n XMake will detect the current host platform automatically and build project.\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(101),\n _vm._v(\" \"),\n _vm._m(102),\n _vm._m(103),\n _vm._v(\" \"),\n _vm._m(104),\n _vm._m(105),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"For example:\")]),\n _vm._v(\" \"),\n _vm._m(106),\n _vm._m(107),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\nPlease attempt to set `--arch=` option if it had failed to check compiler.\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(108),\n _vm._v(\" \"),\n _vm._m(109),\n _vm._m(110),\n _vm._v(\" \"),\n _vm._m(111),\n _vm._m(112),\n _vm._v(\" \"),\n _vm._m(113),\n _vm._m(114),\n _vm._v(\" \"),\n _vm._m(115),\n _vm._m(116),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"For linux platform:\")]),\n _vm._v(\" \"),\n _vm._m(117),\n _c(\"p\", [_vm._v(\"Fro other cross platform:\")]),\n _vm._v(\" \"),\n _vm._m(118),\n _vm._m(119),\n _vm._v(\" \"),\n _vm._m(120),\n _vm._m(121),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\nif you want to known more options, please run: `xmake f --help`。\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(122),\n _vm._v(\" \"),\n _vm._m(123),\n _vm._v(\" \"),\n _vm._m(124),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"As long as this toolchains meet the following directory structure:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(125),\n _c(\"p\", [\n _vm._v(\"Then,we can only configure the sdk directory and build it.\")\n ]),\n _vm._v(\" \"),\n _vm._m(126),\n _c(\"p\", [\n _vm._v(\n \"xmake will detect the prefix: arm-linux- and add the include and library search directory automatically.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(127),\n _vm._m(128),\n _vm._v(\" \"),\n _vm._m(129),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"We need set it manually if the toolchains /bin directory is in other places, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(130),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nBefore v2.2.1 version, this parameter name is `--toolchains`, exists more ambiguous, so we changed to `--bin=` to set the bin directory.\\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(131),\n _vm._v(\" \"),\n _vm._m(132),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"For example, under the same toolchains directory at the same time, there are two different compilers:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(133),\n _vm._m(134),\n _vm._v(\" \"),\n _vm._m(135),\n _vm._m(136),\n _vm._v(\" \"),\n _vm._m(137),\n _vm._v(\" \"),\n _vm._m(138),\n _c(\"p\", [\n _vm._v(\n \"If the 'AS' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --as=gcc@/home/xxx/asmips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(139),\n _vm._v(\" \"),\n _vm._m(140),\n _vm._v(\" \"),\n _vm._m(141),\n _c(\"p\", [\n _vm._v(\n \"If the 'CC' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --cc=gcc@/home/xxx/ccmips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(142),\n _vm._v(\" \"),\n _vm._m(143),\n _vm._v(\" \"),\n _vm._m(144),\n _c(\"p\", [\n _vm._v(\n \"If the 'CXX' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --cxx=g++@/home/xxx/c++mips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(145),\n _vm._v(\" \"),\n _vm._m(146),\n _vm._v(\" \"),\n _vm._m(147),\n _c(\"p\", [\n _vm._v(\n \"If the 'LD' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-gcc/clang linker, .e.g `xmake f --ld=g++@/home/xxx/c++mips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(148),\n _vm._v(\" \"),\n _vm._m(149),\n _vm._v(\" \"),\n _vm._m(150),\n _c(\"p\", [\n _vm._v(\n \"If the 'SH' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-gcc/clang linker, .e.g `xmake f --sh=g++@/home/xxx/c++mips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(151),\n _vm._v(\" \"),\n _vm._m(152),\n _vm._v(\" \"),\n _vm._m(153),\n _c(\"p\", [\n _vm._v(\n \"If the 'AR' environment variable exists, it will use the values specified in the current environment variables.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"tips\" }, [\n _vm._v(\n \"\\nWe can set a unknown compiler as like-ar archiver, .e.g `xmake f --ar=ar@/home/xxx/armips.exe` \\n\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(154),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"You can save to the global configuration for simplfying operation.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"For example:\")]),\n _vm._v(\" \"),\n _vm._m(155),\n _c(\"p\", [_vm._v(\"Now, we config and build project for android again.\")]),\n _vm._v(\" \"),\n _vm._m(156),\n _vm._m(157),\n _vm._v(\" \"),\n _vm._m(158),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\"We can clean all cached configuration and re-configure projecct.\")\n ]),\n _vm._v(\" \"),\n _vm._m(159),\n _c(\"p\", [_vm._v(\"or\")]),\n _vm._v(\" \"),\n _vm._m(160),\n _vm._m(161),\n _vm._v(\" \"),\n _vm._m(162),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"By including a dependency package directory and a binary package file in the project, it is convenient to integrate some third-party dependency libraries. This method is relatively simple and straightforward, but the disadvantages are also obvious and inconvenient to manage.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Take the tbox project as an example. The dependency package is as follows:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(163),\n _c(\"p\", [\n _vm._v(\n \"If you want the current project to recognize loading these packages, you first need to specify the package directory path, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(164),\n _c(\"p\", [\n _vm._v(\n \"Once specified, you can add integration package dependencies in the target scope via the \"\n ),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://xmake.io/#/zh/manual?id=targetadd_packages\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"add_packages\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\" interface, for example:\")\n ]),\n _vm._v(\" \"),\n _vm._m(165),\n _c(\"p\", [\n _vm._v(\n \"So how to generate a *.pkg package, if it is based on xmake project, the generation method is very simple, only need:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(166),\n _c(\"p\", [\n _vm._v(\n \"You can generate a tbox.pkg cross-platform package in the build directory for use by third-party projects. I can also directly set the output directory and compile and generate it into the other project, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(167),\n _c(\"p\", [\n _vm._v(\"In this way, the test project can pass \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://xmake.io/#/zh/manual?id=targetadd_packages\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"add_packages\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\n \" and [add_packagedirs](https://xmake.io/#/zh/manual?id= add_packagedirs) to configure and use the tbox.pkg package.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"For a detailed description of the built-in package, you can also refer to the following related article, which is described in detail: [Dependency package addition and automatic detection mechanism] (http://tboox.org/cn/2016/08/06/add-package -and-autocheck/)\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(168),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"If you feel that the above built-in package management method is very inconvenient, you can use the extension interface [lib.detect.find_package] provided by xmake (https://xmake.io/#/zh/manual?id=detect-find_package) to find the system. Existing dependencies.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Currently this interface supports the following package management support:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(169),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"And through the system and third-party package management tools for the installation of the dependency package, and then integrated with xmake, for example, we look for an openssl package:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(170),\n _c(\"p\", [_vm._v(\"The returned results are as follows:\")]),\n _vm._v(\" \"),\n _vm._m(171),\n _c(\"p\", [\n _vm._v(\n \"If the search is successful, return a table containing all the package information, if it fails, return nil\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(172),\n _vm._v(\" \"),\n _vm._m(173),\n _vm._m(174),\n _vm._m(175),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"For a more complete description of the usage, please refer to the \"\n ),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://xmake.io/#/en/manual?id=detect-find_package\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"lib.detect.find_package\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\" interface documentation.\")\n ]),\n _vm._v(\" \"),\n _vm._m(176),\n _vm._v(\" \"),\n _vm._m(177),\n _vm._v(\" \"),\n _vm._m(178),\n _vm._v(\" \"),\n _vm._m(179),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Of course, we can also manually specify the root path of vcpkg to support:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(180),\n _c(\"p\", [\n _vm._v(\n \"Or we can set it to the global configuration to avoid repeating the settings each time we switch configurations:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(181),\n _vm._m(182),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"This has been initially supported after the 2.2.2 version, the usage is much simpler, just set the corresponding dependency package, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(183),\n _vm._m(184),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Then directly compile:\")]),\n _vm._v(\" \"),\n _vm._m(185),\n _c(\"p\", [\n _vm._v(\n \"xmake will remotely pull the relevant source package, then automatically compile and install, finally compile the project, and link the dependency package. The specific effect is shown in the following figure:\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"img\", {\n attrs: { src: \"/assets/img/index/package_manage.png\", width: \"80%\" }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"For more information and progress on package dependency management see the related issues: [Remote package management] (https://github.com/tboox/xmake/issues/69)\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(186),\n _vm._v(\" \"),\n _vm._m(187),\n _vm._v(\" \"),\n _vm._m(188),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Here we briefly introduce the processing mechanism of the entire dependency package:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(189),\n _vm._v(\" \"),\n _vm._m(190),\n _vm._v(\" \"),\n _vm._m(191),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n 'Xmake\\'s dependency package management fully supports semantic version selection, for example: \"~1.6.1\". For a detailed description of the semantic version, see: [http://semver.org/] (http://semver.org/)'\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Some semantic versions are written:\")]),\n _vm._v(\" \"),\n _vm._m(192),\n _c(\"p\", [\n _vm._v(\"The semantic version parser currently used by xmake is the \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/uael/sv\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"sv\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\" library contributed by \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/uael\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"uael\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\n \", which also has a description of the version. For detailed instructions, please refer to the following: [Version Description] (https://github.com/uael/sv#versions)\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Of course, if we have no special requirements for the current version of the dependency package, then we can write directly:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(193),\n _c(\"p\", [\n _vm._v(\n \"This will use the latest version of the package known, or the source code compiled by the master branch. If the current package has a git repo address, we can also specify a specific branch version:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(194),\n _vm._m(195),\n _vm._v(\" \"),\n _vm._m(196),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"If the specified dependency package is not supported by the current platform, or if the compilation and installation fails, then xmake will compile the error, which is reasonable for some projects that must rely on certain packages to work.\\nHowever, if some packages are optional dependencies, they can be set to optional packages even if they are not compiled properly.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(197),\n _vm._m(198),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"With the default settings, xmake will first check to see if the system library exists (if no version is required). If the user does not want to use the system library and the library provided by the third-party package management, then you can set:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(199),\n _vm._m(200),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"If we want to debug the dependencies at the same time, we can set them to use the debug version of the package (provided that this package supports debug compilation):\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(201),\n _c(\"p\", [\n _vm._v(\n \"If the current package does not support debug compilation, you can submit the modified compilation rules in the repository to support the debug, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(202),\n _vm._m(203),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Some packages have various compile options at compile time, and we can pass them in. Of course, the package itself supports:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(204),\n _vm._m(205),\n _vm._v(\" \"),\n _vm._m(206),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\"If the required package is not in the official repository \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake-repo\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"xmake-repo\"), _c(\"OutboundLink\")],\n 1\n ),\n _vm._v(\n \", we can submit the contribution code to the repository for support.\\nBut if some packages are only for personal or private projects, we can create a private repository repo. The repository organization structure can be found at: \"\n ),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake-repo\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"xmake-repo\"), _c(\"OutboundLink\")],\n 1\n )\n ]),\n _vm._v(\" \"),\n _vm._m(207),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"We can add the repository with the following command:\")]),\n _vm._v(\" \"),\n _vm._m(208),\n _c(\"p\", [_vm._v(\"Or we write directly in xmake.lua:\")]),\n _vm._v(\" \"),\n _vm._m(209),\n _c(\"p\", [\n _vm._v(\n \"If we just want to add one or two private packages, this time to build a git repo is too big, we can directly put the package repository into the project, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(210),\n _c(\"p\", [\n _vm._v(\n \"The above myrepo directory is your own private package repository, built into your own project, and then add this repository location in xmake.lua:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(211),\n _c(\"p\", [\n _vm._v(\n \"This can be referred to [benchbox] (https://github.com/tboox/benchbox) project, which has a built-in private repository.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"We can even build a package without directly building a package description into the project xmake.lua, which is useful for relying on one or two packages, for example:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(212),\n _vm._m(213),\n _vm._v(\" \"),\n _vm._m(214),\n _vm._v(\" \"),\n _vm._m(215),\n _vm._v(\" \"),\n _vm._m(216),\n _c(\"p\", [_vm._v(\"Install the specified version package:\")]),\n _vm._v(\" \"),\n _vm._m(217),\n _c(\"p\", [\n _vm._v(\n \"Force a re-download of the installation and display detailed installation information:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(218),\n _c(\"p\", [_vm._v(\"Pass additional setup information:\")]),\n _vm._v(\" \"),\n _vm._m(219),\n _vm._m(220),\n _vm._v(\" \"),\n _vm._m(221),\n _vm._v(\" \"),\n _vm._m(222),\n _c(\"p\", [\n _vm._v(\"This will completely uninstall the removal package file.\")\n ]),\n _vm._v(\" \"),\n _vm._m(223),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Only unlink specifies the package, it is not detected by the current project, but the package still exists locally. If it is reinstalled, it will be completed very quickly.\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(224),\n _vm._m(225),\n _vm._v(\" \"),\n _vm._m(226),\n _vm._m(227),\n _vm._v(\" \"),\n _vm._m(228),\n _c(\"p\", [\n _vm._v(\"This is to support fuzzy search and lua pattern matching search:\")\n ]),\n _vm._v(\" \"),\n _vm._m(229),\n _c(\"p\", [_vm._v(\"Will also search for pcre, pcre2 and other packages.\")]),\n _vm._v(\" \"),\n _vm._m(230),\n _vm._v(\" \"),\n _vm._m(231),\n _vm._m(232),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"As mentioned above, adding a private repository is available (supporting local path addition):\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(233),\n _c(\"p\", [\n _vm._v(\"We can also remove a repository that has already been installed:\")\n ]),\n _vm._v(\" \"),\n _vm._m(234),\n _c(\"p\", [_vm._v(\"Or view all the added warehouses:\")]),\n _vm._v(\" \"),\n _vm._m(235),\n _c(\"p\", [\n _vm._v(\n \"If the remote repository has updates, you can manually perform a warehouse update to get more and the latest packages:\"\n )\n ]),\n _vm._v(\" \"),\n _vm._m(236),\n _vm._m(237),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"If you need a package that is not supported by the current official repository, you can commit it to the official repository after local tuning: \"\n ),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/tboox/xmake-repo\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"xmake-repo\"), _c(\"OutboundLink\")],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\"For detailed contribution descriptions, see: \"),\n _c(\n \"a\",\n {\n attrs: {\n href:\n \"https://github.com/tboox/xmake-repo/blob/master/CONTRIBUTING.md\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }\n },\n [_vm._v(\"CONTRIBUTING.md\"), _c(\"OutboundLink\")],\n 1\n )\n ])\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h1\", { attrs: { id: \"getting-started\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#getting-started\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Getting Started\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h2\", { attrs: { id: \"installation\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#installation\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Installation\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"master\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#master\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Master\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"via-curl\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#via-curl\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" via curl\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"bash\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\n \"curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh\"\n ),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"via-wget\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#via-wget\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" via wget\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"bash\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\n \"wget https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh -O -\"\n ),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"via-powershell\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#via-powershell\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" via powershell\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"Invoke-Expression \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"Invoke-Webrequest \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v(\n \"'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1'\"\n )\n ]),\n _vm._v(\" -UseBasicParsing\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\".Content\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"windows\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#windows\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Windows\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"macos\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#macos\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" MacOS\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ brew \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _vm._v(\" xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"linux\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#linux\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Linux\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ yaourt xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" add-apt-repository ppa:tboox/xmake\\n$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" apt update\\n$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" apt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _vm._v(\" xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \"deb http://ppa.launchpad.net/tboox/xmake/ubuntu yakkety main \\ndeb-src http://ppa.launchpad.net/tboox/xmake/ubuntu yakkety main \\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" apt update\\n$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" apt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _vm._v(\" xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"li\", [\n _vm._v(\"Run \"),\n _c(\"code\", [_vm._v(\"dpkg -i xmake-xxxx.deb\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"compilation\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#compilation\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Compilation\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"git\")]),\n _vm._v(\" clone https://github.com/tboox/xmake.git\\n$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cd\")]),\n _vm._v(\" ./xmake\\n$ ./scripts/get.sh __local__\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ ./scripts/get.sh __local__ __install_only__\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ ./scripts/get.sh __uninstall__\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"make\")]),\n _vm._v(\" build\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\";\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"make\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"make\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _vm._v(\" prefix\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"sudo\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"make\")]),\n _vm._v(\" uninstall\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h2\", { attrs: { id: \"quick-start\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#quick-start\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Quick Start\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"create-project\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#create-project\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Create Project\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake create -l c -P ./hello\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [_vm._v(\"hello\\n├── src\\n│ └── main.c\\n└── xmake.lua\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"It is a simple console program only for printing \"),\n _c(\"code\", [_vm._v(\"hello xmake!\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"The content of \"),\n _c(\"code\", [_vm._v(\"xmake.lua\")]),\n _vm._v(\" is very simple:\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"hello\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [_vm._v(\"c/c++\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"objc/c++\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"asm\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"swift\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"dlang\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"golang\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"rust\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"build-project\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#build-project\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Build Project\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"run-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#run-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Run Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake run hello\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"debug-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#debug-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Debug Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake run -d hello \\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"lldb\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _c(\"span\", { attrs: { class: \"token variable\" } }, [\n _vm._v(\"$target\")\n ]),\n _vm._v(\" create \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"build/hello\"')\n ]),\n _vm._v(\"\\nCurrent executable \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"set\")]),\n _vm._v(\" to \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v(\"'build/hello'\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"x86_64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\".\\n\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"lldb\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _c(\"span\", { attrs: { class: \"token variable\" } }, [_vm._v(\"$b\")]),\n _vm._v(\" main\\nBreakpoint 1: where \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" hello\"),\n _c(\"span\", { attrs: { class: \"token variable\" } }, [\n _c(\"span\", { attrs: { class: \"token variable\" } }, [_vm._v(\"`\")]),\n _vm._v(\"main, address \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" 0x0000000100000f50\\n\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [\n _vm._v(\"[\")\n ]),\n _vm._v(\"lldb\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [\n _vm._v(\"]\")\n ]),\n _vm._v(\"$r\\nProcess 7509 launched: \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v(\"'/private/tmp/hello/build/hello'\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [\n _vm._v(\"(\")\n ]),\n _vm._v(\"x86_64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [\n _vm._v(\")\")\n ]),\n _vm._v(\"\\nProcess 7509 stopped\\n* thread #1: tid \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" 0x435a2, 0x0000000100000f50 hello\"),\n _c(\"span\", { attrs: { class: \"token variable\" } }, [_vm._v(\"`\")])\n ]),\n _vm._v(\"main, queue \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v(\"'com.apple.main-thread'\")\n ]),\n _vm._v(\", stop reason \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" breakpoint 1.1\\n frame \"),\n _c(\"span\", { attrs: { class: \"token comment\" } }, [\n _vm._v(\"#0: 0x0000000100000f50 hello`main\")\n ]),\n _vm._v(\"\\nhello`main:\\n-\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\">\")]),\n _vm._v(\" 0x100000f50 \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _vm._v(\"+0\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\">\")]),\n _vm._v(\": pushq %rbp\\n 0x100000f51 \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _vm._v(\"+1\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\">\")]),\n _vm._v(\": movq %rsp, %rbp\\n 0x100000f54 \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _vm._v(\"+4\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\">\")]),\n _vm._v(\": leaq 0x2b\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"%rip\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\", %rdi \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\";\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"hello world!\"')\n ]),\n _vm._v(\"\\n 0x100000f5b \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"<\")]),\n _vm._v(\"+11\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\">\")]),\n _vm._v(\": callq 0x100000f64 \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\";\")]),\n _vm._v(\" symbol stub for: puts\\n\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"lldb\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"$\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h2\", { attrs: { id: \"project-examples\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#project-examples\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Project Examples\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"executable-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#executable-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Executable Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"static-library-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#static-library-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Static Library Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"static\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/library/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_deps\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"We use \"),\n _c(\"code\", [_vm._v(\"add_deps\")]),\n _vm._v(\" to link a static library to test target.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"share-library-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#share-library-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Share Library Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"shared\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/library/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_deps\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"We use \"),\n _c(\"code\", [_vm._v(\"add_deps\")]),\n _vm._v(\" to link a share library to test target.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"qt-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#qt-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Qt Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake create -l c++ -t console_qt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\"\\n$ xmake create -l c++ -t static_qt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\"\\n$ xmake create -l c++ -t shared_qt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\"\\n$ xmake create -l c++ -t quickapp_qt \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f --qt\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"~/Qt/Qt5.9.1\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p mingw --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"C:\\\\Qt\\\\Qt5.10.1\\\\Tools\\\\mingw530_32 \\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"static-library\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#static-library\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Static Library\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt_static_library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt.static\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_frameworks\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"QtNetwork\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"QtGui\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"shared-library\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#shared-library\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Shared Library\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt_shared_library\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt.shared\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_frameworks\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"QtNetwork\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"QtGui\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"console-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#console-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Console Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt_console\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt.console\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"quick-application\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#quick-application\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Quick Application\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt_quickapp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt.application\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/qml.qrc\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_frameworks\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"QtQuick\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"widgets-application\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#widgets-application\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Widgets Application\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt_widgetapp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"qt.application\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/mainwindow.ui\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/mainwindow.h\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token comment\" } }, [\n _vm._v(\"-- add files with Q_OBJECT meta (only for qt.moc)\")\n ]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_frameworks\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"QtWidgets\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"cuda-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#cuda-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Cuda Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake create -P \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\" -l cuda\\n$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cd\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"test\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"cuda_console\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.cu\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token comment\" } }, [\n _vm._v(\"-- generate SASS code for each SM architecture\")\n ]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"for\")]),\n _vm._v(\" _\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" sm \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"in\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"ipairs\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"30\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"35\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"37\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"50\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"52\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"60\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"61\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"70\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"do\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_cuflags\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-gencode arch=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\",code=sm_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_ldflags\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-gencode arch=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\",code=sm_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token comment\" } }, [\n _vm._v(\n \"-- generate PTX code from the highest SM architecture to guarantee forward-compatibility\"\n )\n ]),\n _vm._v(\"\\n sm \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"70\"')]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_cuflags\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-gencode arch=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\",code=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_ldflags\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-gencode arch=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\",code=compute_\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"..\")]),\n _vm._v(\" sm\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f --cuda\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local/cuda-9.1/ \\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"wdk-driver-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#wdk-driver-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" WDK Driver Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f --wdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"G:\\\\Program Files\\\\Windows Kits\\\\10\"')\n ]),\n _vm._v(\" -c\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"umdf-driver-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#umdf-driver-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" UMDF Driver Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"echo\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.umdf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"driver/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"driver/*.inx\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_includedirs\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"exe\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"app\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.umdf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"exe/*.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"kmdf-driver-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#kmdf-driver-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" KMDF Driver Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"nonpnp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.kmdf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.tracewpp.flags\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-func:TraceEvents(LEVEL,FLAGS,MSG,...)\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-func:Hexdump((LEVEL,FLAGS,MSG,...))\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"driver/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"rule \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.tracewpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"driver/*.rc\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"app\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.kmdf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"exe/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"exe/*.inf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"wdm-driver-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#wdm-driver-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" WDM Driver Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"kcs\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.man.flags\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-prefix Kcs\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.man.resource\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"kcsCounters.rc\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.man.header\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"kcsCounters.h\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.man.counter_header\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"kcsCounters_counters.h\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.c\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.rc\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.man\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"msdsm\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.tracewpp.flags\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"-func:TracePrint((LEVEL,FLAGS,MSG,...))\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.c\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"rule \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.tracewpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.rc\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.inf\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"*.mof|msdsm.mof\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"msdsm.mof\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"values \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"wdk_mof_header \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"msdsmwmi.h\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"package-driver\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#package-driver\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Package Driver\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"p\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"p\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\" -o outputdir\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \" - drivers\\n - sampledsm\\n - debug/x86/sampledsm.cab\\n - release/x64/sampledsm.cab\\n - debug/x86/sampledsm.cab\\n - release/x64/sampledsm.cab\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"driver-signing\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#driver-signing\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Driver Signing\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"The driver signing is disabled when we compile driver in default case,\\nbut we can add \"\n ),\n _c(\"code\", [_vm._v('set_values(\"wdk.sign.mode\")')]),\n _vm._v(\" to enable test/release sign.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"testsign\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#testsign\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" TestSign\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"We can use test certificate of xmake to do testsign, but please run \"\n ),\n _c(\"code\", [_vm._v(\"$xmake l utils.wdk.testcert\")]),\n _vm._v(\n \" install as admin to install a test certificate first (only once)!\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"msdsm\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.mode\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"msdsm\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.mode\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.thumbprint\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"032122545DCAA6167B1ADBE5F7FDF07AE2234AAA\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"msdsm\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.mode\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.store\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"PrivateCertStore\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.company\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"tboox.org(test)\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"releasesign\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#releasesign\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" ReleaseSign\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"msdsm\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.driver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.wdm\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.mode\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"release\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.company\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"xxxx\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.sign.certfile\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" path\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"join\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"projectdir\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"xxxx.cer\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"support-low-version-system\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#support-low-version-system\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Support Low-version System\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"We can set \"),\n _c(\"code\", [_vm._v(\"wdk.env.winver\")]),\n _vm._v(\n \" to generate a driver package that is compatible with a low version system.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"win10\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win10_rs3\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"win81\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"win8\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"win7\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win7_sp1\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win7_sp2\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_values\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"wdk.env.winver\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win7_sp3\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f --wdk_winver\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"win10_rs3\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"win8\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"win7\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"win7_sp1\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"winsdk-application-program\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#winsdk-application-program\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" WinSDK Application Program\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"usbview\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_rules\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win.sdk.application\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.c\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.rc\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"xmlhelper.cpp\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"rule \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"win.sdk.dotnet\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h2\", { attrs: { id: \"configuration\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#configuration\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Configuration\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"Set compilation configuration before building project with command \"\n ),\n _c(\"code\", [_vm._v(\"xmake f|config\")]),\n _vm._v(\".\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"And if you want to known more options, please run: \"),\n _c(\"code\", [_vm._v(\"xmake f --help\")]),\n _vm._v(\"。\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\"\\n You can use short or long command option, for exmaple: \"),\n _c(\"br\"),\n _vm._v(\"\\n `xmake f` or `xmake config`.\"),\n _c(\"br\"),\n _vm._v(\"\\n `xmake f -p linux` or `xmake config --plat=linux`.\\n\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"target-platforms\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#target-platforms\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Target Platforms\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"current-host\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#current-host\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Current Host\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"linux-2\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#linux-2\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Linux\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a i386\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"x86_64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"android\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#android\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Android\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p android --ndk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"~/files/android-ndk-r10e/ \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a armv5te\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"armv6\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"armv7-a\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"armv8-a\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"arm64-v8a\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"If you want to set the other android toolchains, you can use \"),\n _c(\"a\", { attrs: { href: \"#-bin\" } }, [_vm._v(\"--bin\")]),\n _vm._v(\" option.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p android --ndk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"~/files/android-ndk-r10e/ -a arm64-v8a --bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\n \"~/files/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"The \"),\n _c(\"a\", { attrs: { href: \"#-bin\" } }, [_vm._v(\"--bin\")]),\n _vm._v(\" option is used to set \"),\n _c(\"code\", [_vm._v(\"bin\")]),\n _vm._v(\" directory of toolchains.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"iphoneos\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#iphoneos\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" iPhoneOS\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p iphoneos \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a armv7\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"armv7s\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"arm64\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"i386\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"x86_64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"windows-2\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#windows-2\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Windows\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p windows \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a x86\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"x64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"mingw\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#mingw\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Mingw\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p mingw --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local/i386-mingw32-4.3.0/ \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a i386\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"x86_64\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"apple-watchos\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#apple-watchos\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Apple WatchOS\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p watchos \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"-a i386\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"|\")]),\n _vm._v(\"armv7k\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"cross-compilation\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#cross-compilation\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Cross Compilation\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local/arm-linux-gcc/ \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/sdk/bin\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--cross\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"arm-linux-\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p cross --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local/arm-xxx-gcc/ \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/sdk/bin\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--cross\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"arm-linux-\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"For custem cross platform (\"),\n _c(\"code\", [_vm._v('is_plat(\"myplat\")')]),\n _vm._v(\"):\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p myplat --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/local/arm-xxx-gcc/ \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/sdk/bin\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"[\")]),\n _vm._v(\"--cross\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"arm-linux-\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"]\")]),\n _vm._v(\"\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"table\", [\n _c(\"thead\", [\n _c(\"tr\", [\n _c(\"th\", [_vm._v(\"Configuration Option\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Description\")])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tbody\", [\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-sdk\" } }, [_vm._v(\"--sdk\")])]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(\"Set the sdk root directory of toolchains\")])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-bin\" } }, [_vm._v(\"--bin\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set the \"),\n _c(\"code\", [_vm._v(\"bin\")]),\n _vm._v(\" directory of toolchains\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cross\" } }, [_vm._v(\"--cross\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(\"Set the prefix of compilation tools\")])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-as\" } }, [_vm._v(\"--as\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"asm\")]),\n _vm._v(\" assembler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-cc\" } }, [_vm._v(\"--cc\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-cxx\" } }, [_vm._v(\"--cxx\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c++\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-mm\" } }, [_vm._v(\"--mm\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"objc\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-mxx\" } }, [_vm._v(\"--mxx\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"objc++\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-sc\" } }, [_vm._v(\"--sc\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"swift\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-gc\" } }, [_vm._v(\"--gc\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"golang\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-dc\" } }, [_vm._v(\"--dc\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"dlang\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-rc\" } }, [_vm._v(\"--rc\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"rust\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-cu\" } }, [_vm._v(\"--cu\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"cuda\")]),\n _vm._v(\" compiler\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-ld\" } }, [_vm._v(\"--ld\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-sh\" } }, [_vm._v(\"--sh\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" shared library linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_c(\"a\", { attrs: { href: \"#-ar\" } }, [_vm._v(\"--ar\")])]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" static library archiver\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-sc-ld\" } }, [_vm._v(\"--sc-ld\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"swift\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-sc-sh\" } }, [_vm._v(\"--sc-sh\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"swift\")]),\n _vm._v(\" shared library linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-gc-ld\" } }, [_vm._v(\"--gc-ld\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"golang\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-gc-ar\" } }, [_vm._v(\"--gc-ar\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"golang\")]),\n _vm._v(\" static library archiver\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-dc-ld\" } }, [_vm._v(\"--dc-ld\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"dlang\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-dc-sh\" } }, [_vm._v(\"--dc-sh\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"dlang\")]),\n _vm._v(\" shared library linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-dc-ar\" } }, [_vm._v(\"--dc-ar\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"dlang\")]),\n _vm._v(\" static library archiver\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-rc-ld\" } }, [_vm._v(\"--rc-ld\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"rust\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-rc-sh\" } }, [_vm._v(\"--rc-sh\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"rust\")]),\n _vm._v(\" shared library linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-rc-ar\" } }, [_vm._v(\"--rc-ar\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"rust\")]),\n _vm._v(\" static library archiver\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cu-ld\" } }, [_vm._v(\"--cu-ld\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"cuda\")]),\n _vm._v(\" linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cu-sh\" } }, [_vm._v(\"--cu-sh\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"cuda\")]),\n _vm._v(\" shared library linker\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cu-ar\" } }, [_vm._v(\"--cu-ar\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"cuda\")]),\n _vm._v(\" static library archiver\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-asflags\" } }, [_vm._v(\"--asflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"asm\")]),\n _vm._v(\" assembler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cflags\" } }, [_vm._v(\"--cflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cxflags\" } }, [_vm._v(\"--cxflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cxxflags\" } }, [_vm._v(\"--cxxflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c++\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-mflags\" } }, [_vm._v(\"--mflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"objc\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-mxflags\" } }, [_vm._v(\"--mxflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"objc/c++\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-mxxflags\" } }, [_vm._v(\"--mxxflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"objc++\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-scflags\" } }, [_vm._v(\"--scflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"swift\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-gcflags\" } }, [_vm._v(\"--gcflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"golang\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-dcflags\" } }, [_vm._v(\"--dcflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"dlang\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-rcflags\" } }, [_vm._v(\"--rcflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"rust\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-cuflags\" } }, [_vm._v(\"--cuflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"cuda\")]),\n _vm._v(\" compiler option\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-ldflags\" } }, [_vm._v(\"--ldflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(\"Set linker option\")])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-shflags\" } }, [_vm._v(\"--shflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(\"Set shared library linker option\")])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"a\", { attrs: { href: \"#-arflags\" } }, [_vm._v(\"--arflags\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(\"Set static library archiver option\")])\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"sdk\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#sdk\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --sdk\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [_vm._v(\"Set the sdk root directory of toolchains\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"xmake provides a convenient and flexible cross-compiling support.\\nIn most cases, we need not to configure complex toolchains prefix, for example: \"\n ),\n _c(\"code\", [_vm._v(\"arm-linux-\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \"/home/toolchains_sdkdir\\n - bin\\n - arm-linux-gcc\\n - arm-linux-ld\\n - ...\\n - lib\\n - libxxx.a\\n - include\\n - xxx.h\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/home/toolchains_sdkdir\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \"-I/home/toolchains_sdkdir/include -L/home/toolchains_sdkdir/lib\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"bin\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#bin\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --bin\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set the \"),\n _c(\"code\", [_vm._v(\"bin\")]),\n _vm._v(\" directory of toolchains\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/home/toolchains_sdkdir --bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/opt/bin\\n$ xmake\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"cross\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#cross\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --cross\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [_c(\"li\", [_vm._v(\"Set the prefix of compilation tools\")])])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\"/opt/bin\\n - armv7-linux-gcc\\n - aarch64-linux-gcc\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"If we want to use the \"),\n _c(\"code\", [_vm._v(\"armv7-linux-gcc\")]),\n _vm._v(\" compiler, we can run the following command:\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/usr/toolsdk --bin\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/opt/bin --cross\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"as\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#as\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --as\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"asm\")]),\n _vm._v(\" assembler\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --as\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-as\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"cc\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#cc\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --cc\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [_c(\"li\", [_vm._v(\"Set c compiler\")])])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --cc\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-clang\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"cxx\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#cxx\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --cxx\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c++\")]),\n _vm._v(\" compiler\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --cxx\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-clang++\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"ld\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#ld\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --ld\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" linker\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --ld\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-clang++\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"sh\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#sh\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --sh\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" shared library linker\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --sh\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-clang++\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"ar\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#ar\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" --ar\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\"Set \"),\n _c(\"code\", [_vm._v(\"c/c++/objc/asm\")]),\n _vm._v(\" static library archiver\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f -p linux --sdk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"/user/toolsdk --ar\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"armv7-linux-ar\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"global-configuration\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#global-configuration\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Global Configuration\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake g --ndk\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"~/files/android-ndk-r10e/\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake f -p android\\n$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", { staticClass: \"tip\" }, [\n _vm._v(\n \"\\n You can use short or long command option, for exmaple: `xmake g` or `xmake global`.\"\n ),\n _c(\"br\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"clean-configuration\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#clean-configuration\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Clean Configuration\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake f -c\\n$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake f -p iphoneos -c\\n$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h2\", { attrs: { id: \"dependency-package-management\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#dependency-package-management\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Dependency Package Management\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"local-package-mode\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#local-package-mode\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Local Package Mode\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \"- base.pkg\\n- zlib.pkg\\n- polarssl.pkg\\n- openssl.pkg\\n- mysql.pkg\\n- pcre.pkg\\n- ...\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_packagedirs\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"packages\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_packages\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"polarssl\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"pcre\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"mysql\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cd\")]),\n _vm._v(\" tbox\\n$ xmake package\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cd\")]),\n _vm._v(\" tbox\\n$ xmake package -o \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"..\")]),\n _vm._v(\"/test/packages\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"system-search-mode\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#system-search-mode\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" System Search Mode\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [_vm._v(\"vcpkg\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"homebrew\")]),\n _vm._v(\" \"),\n _c(\"li\", [_vm._v(\"pkg-config\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"import\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"lib.detect.find_package\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"local\")]),\n _vm._v(\" package \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"find_package\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"openssl\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"links \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"ssl\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"crypto\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"z\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" linkdirs \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"/usr/local/lib\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" includedirs \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"/usr/local/include\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"The return result here can be directly passed as the parameter of \"\n ),\n _c(\"code\", [_vm._v(\"target:add\")]),\n _vm._v(\", \"),\n _c(\"code\", [_vm._v(\"option:add\")]),\n _vm._v(\", which is used to dynamically increase the configuration of \"),\n _c(\"code\", [_vm._v(\"target/option\")]),\n _vm._v(\":\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"option\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_showmenu\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"true\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"before_check\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [\n _vm._v(\"function\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"option\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"import\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"lib.detect.find_package\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n option\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"add\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"find_package\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"on_load\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [\n _vm._v(\"function\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"target\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"import\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"lib.detect.find_package\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n target\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"add\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"find_package\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"If third-party tools such as \"),\n _c(\"code\", [_vm._v(\"homebrew\")]),\n _vm._v(\", \"),\n _c(\"code\", [_vm._v(\"pkg-config\")]),\n _vm._v(\n \" are installed on the system, then this interface will try to use them to improve the search results.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"homebrew-integration-support\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#homebrew-integration-support\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Homebrew Integration Support\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"Since homebrew is generally installed directly into the system, users do not need to do any integration work, \"\n ),\n _c(\"code\", [_vm._v(\"lib.detect.find_package\")]),\n _vm._v(\" has been natively seamlessly supported.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"vcpkg-integration-support\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#vcpkg-integration-support\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Vcpkg Integration Support\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"Currently xmake v2.2.2 version already supports vcpkg, users only need to install vcpkg, execute \"\n ),\n _c(\"code\", [_vm._v(\"$ vcpkg integrate install\")]),\n _vm._v(\n \", xmake will automatically detect the root path of vcpkg from the system, and then automatically adapt the bread.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake f --vcpkg\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"f:\\\\vcpkg\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake g --vcpkg\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\"f:\\\\vcpkg\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h3\", { attrs: { id: \"remote-dependency-mode\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#remote-dependency-mode\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Remote dependency mode\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"tbox 1.6.*\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libpng ~1.16\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_packages\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libpng\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"The above \"),\n _c(\"code\", [_vm._v(\"add_requires\")]),\n _vm._v(\n \" is used to describe the dependencies required by the current project, and \"\n ),\n _c(\"code\", [_vm._v(\"add_packages\")]),\n _vm._v(\n \" is used to apply dependencies to the test target. Only settings will automatically add links, linkdirs, includedirs, etc.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"currently-supported-features\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#currently-supported-features\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Currently Supported Features\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ul\", [\n _c(\"li\", [\n _vm._v(\n 'Semantic version support, for example: \">= 1.1.0 < 1.2\", \"~1.6\", \"1.2.x\", \"1.*\"'\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _vm._v(\n \"Provide multi-warehouse management support such as official package warehouse, self-built private warehouse, project built-in warehouse, etc.\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _vm._v(\n \"Cross-platform package compilation integration support (packages of different platforms and different architectures can be installed at the same time, fast switching use)\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _vm._v(\"Debug dependency package support, source code debugging\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h4\",\n { attrs: { id: \"dependency-package-processing-mechanism\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#dependency-package-processing-mechanism\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Dependency Package Processing Mechanism\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { attrs: { align: \"center\" } }, [\n _c(\"img\", {\n attrs: { src: \"/assets/img/index/package_arch.png\", width: \"80%\" }\n })\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"ol\", [\n _c(\"li\", [\n _vm._v(\n \"Priority check for the current system directory, whether there is a specified package under the third-party package management, if there is a matching package, then you do not need to download and install (of course you can also set the system package)\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _vm._v(\n \"Retrieve the package matching the corresponding version, then download, compile, and install (Note: installed in a specific xmake directory, will not interfere with the system library environment)\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _vm._v(\n \"Compile the project, and finally automatically link the enabled dependencies\"\n )\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"semantic-version-settings\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#semantic-version-settings\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Semantic Version Settings\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"tbox 1.6.*\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"pcre 1.3.x\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libpng ^1.18\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libpng ~1.16\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"zlib 1.1.2 || >=1.2.11 <1.3.0\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libpng\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"zlib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"tbox master\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"tbox dev\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"extra-package-information-settings\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#extra-package-information-settings\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Extra Package Information Settings\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"optional-package-settings\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#optional-package-settings\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Optional Package Settings\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"optional \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"true\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"disable-system-library\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#disable-system-library\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Disable System Library\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"system \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"false\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h5\",\n { attrs: { id: \"using-the-debug-version-of-the-package\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#using-the-debug-version-of-the-package\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Using the debug version of the package\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"debug \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"true\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"package\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"openssl\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"on_install\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"linux\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"macosx\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [\n _vm._v(\"function\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"vrun\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"./config %s --prefix=\\\\\"%s\\\\\"\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"debug\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"and\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"--debug\"')\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"or\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"installdir\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"vrun\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"make -j4\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"vrun\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"make install\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h5\",\n {\n attrs: {\n id: \"passing-additional-compilation-information-to-the-package\"\n }\n },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href:\n \"#passing-additional-compilation-information-to-the-package\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Passing additional compilation information to the package\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"tbox\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"config \"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"{\")]),\n _vm._v(\"small\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"true\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"}\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"Pass \"),\n _c(\"code\", [_vm._v(\"--small=true\")]),\n _vm._v(\n \" to the tbox package so that compiling the installed tbox package is enabled.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h4\",\n { attrs: { id: \"using-self-built-private-package-warehouse\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#using-self-built-private-package-warehouse\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Using self-built private package warehouse\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"For example, now we have a private repository repo:\"),\n _c(\"code\", [_vm._v(\"git@github.com:myrepo/xmake-repo.git\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\n \"$ xmake repo --add myrepo git@github.com:myrepo/xmake-repo.git\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_repositories\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"my-repo git@github.com:myrepo/xmake-repo.git\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language- extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-text\" } }, [\n _c(\"code\", [\n _vm._v(\n \"projectdir\\n - myrepo\\n - packages\\n - t/tbox/xmake.lua\\n - z/zlib/xmake.lua\\n - src\\n - main.c\\n - xmake.lua\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_repositories\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"my-repo myrepo\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-lua extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-lua\" } }, [\n _c(\"code\", [\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"package\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libjpeg\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_urls\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"http://www.ijg.org/files/jpegsrc.$(version).tar.gz\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_versions\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"v9c\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v(\n '\"650250979303a649e21f87b5ccd02672af1ea6954b911342ea491f351ceb7122\"'\n )\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"on_install\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"windows\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [\n _vm._v(\"function\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"mv\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"jconfig.vc\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"jconfig.h\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"vrun\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"nmake -f makefile.vc\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cp\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"*.h\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"installdir\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"include\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n os\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [_vm._v(\"cp\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libjpeg.lib\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\":\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"installdir\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"lib\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"on_install\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"macosx\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"linux\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\",\")]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [\n _vm._v(\"function\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"import\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"package.tools.autoconf\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\".\")]),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"install\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _vm._v(\"package\"),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token keyword\" } }, [_vm._v(\"end\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"package_end\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_requires\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libjpeg\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\\n\"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"target\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"test\"')]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"set_kind\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"binary\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_files\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"src/*.c\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n \"),\n _c(\"span\", { attrs: { class: \"token function\" } }, [\n _vm._v(\"add_packages\")\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\"(\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"libjpeg\"')\n ]),\n _c(\"span\", { attrs: { class: \"token punctuation\" } }, [_vm._v(\")\")]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"package-management-command-use\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#package-management-command-use\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Package Management Command Use\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"The package management command \"),\n _c(\"code\", [_vm._v(\"$ xmake require\")]),\n _vm._v(\n \" can be used to manually display the download, install, uninstall, retrieve, and view package information.\"\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"install-the-specified-package\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#install-the-specified-package\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Install the specified package\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require tbox\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake require tbox \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"~1.6\"')]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake require -f -v tbox \"),\n _c(\"span\", { attrs: { class: \"token string\" } }, [_vm._v('\"1.5.x\"')]),\n _vm._v(\"\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\"$ xmake require --extra\"),\n _c(\"span\", { attrs: { class: \"token operator\" } }, [_vm._v(\"=\")]),\n _c(\"span\", { attrs: { class: \"token string\" } }, [\n _vm._v('\"debug=true,config={small=true}\"')\n ]),\n _vm._v(\" tbox\\n\")\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"Install the debug package and pass the compilation configuration information of \"\n ),\n _c(\"code\", [_vm._v(\"small=true\")]),\n _vm._v(\" to the package.\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"uninstalling-the-specified-package\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#uninstalling-the-specified-package\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Uninstalling the specified package\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --uninstall tbox\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"remove-the-specified-package\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#remove-the-specified-package\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Remove the specified package\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --unlink tbox\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h5\", { attrs: { id: \"view-package-details\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: { href: \"#view-package-details\", \"aria-hidden\": \"true\" }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" View package details\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --info tbox\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h5\",\n { attrs: { id: \"search-for-packages-in-the-current-warehouse\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#search-for-packages-in-the-current-warehouse\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Search for packages in the current warehouse\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --search tbox\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --search pcr\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h5\",\n { attrs: { id: \"list-the-currently-installed-packages\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#list-the-currently-installed-packages\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" List the currently installed packages\")\n ]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake require --list\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"h4\", { attrs: { id: \"warehouse-management-command-use\" } }, [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#warehouse-management-command-use\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Warehouse Management Command Use\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [\n _vm._v(\n \"$ xmake repo --add myrepo git@github.com:myrepo/xmake-repo.git\\n\"\n )\n ])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake repo --remove myrepo\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake repo --list\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"language-bash extra-class\" }, [\n _c(\"pre\", { pre: true, attrs: { class: \"language-bash\" } }, [\n _c(\"code\", [_vm._v(\"$ xmake repo -u\\n\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"h4\",\n { attrs: { id: \"submit-the-package-to-the-official-warehouse\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"header-anchor\",\n attrs: {\n href: \"#submit-the-package-to-the-official-warehouse\",\n \"aria-hidden\": \"true\"\n }\n },\n [_vm._v(\"#\")]\n ),\n _vm._v(\" Submit the package to the official warehouse\")\n ]\n )\n }\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }"]} \ No newline at end of file
diff --git a/node_modules/vuepress/node_modules/.cache/vuepress/4bf8675bed9978b6176ad2a41c701ccb.json b/node_modules/vuepress/node_modules/.cache/vuepress/4bf8675bed9978b6176ad2a41c701ccb.json
index 9fc790cb..c0baad69 100644
--- a/node_modules/vuepress/node_modules/.cache/vuepress/4bf8675bed9978b6176ad2a41c701ccb.json
+++ b/node_modules/vuepress/node_modules/.cache/vuepress/4bf8675bed9978b6176ad2a41c701ccb.json
@@ -1 +1 @@
-{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js??ref--3-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/routes.js","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/routes.js","mtime":1541598695621},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js","mtime":1541484124240}],"contextDependencies":[],"result":["import Vue from 'vue';\nimport ThemeLayout from '@themeLayout';\nimport ThemeNotFound from '@themeNotFound';\nimport { injectMixins } from '@app/util';\nimport rootMixins from '@app/root-mixins';\ninjectMixins(ThemeLayout, rootMixins);\ninjectMixins(ThemeNotFound, rootMixins);\nexport var routes = [{\n name: \"v-ddf4be195b958\",\n path: \"/\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/README.md\").then(function (comp) {\n Vue.component(\"v-ddf4be195b958\", comp.default);\n next();\n });\n }\n}, {\n path: \"/index.html\",\n redirect: \"/\"\n}, {\n name: \"v-8644851cf91dd\",\n path: \"/api/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/api/introduction.md\").then(function (comp) {\n Vue.component(\"v-8644851cf91dd\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-b6ee77db64501\",\n path: \"/guide/faq.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/faq.md\").then(function (comp) {\n Vue.component(\"v-b6ee77db64501\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-fcba2a8896d43\",\n path: \"/guide/getting-started.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md\").then(function (comp) {\n Vue.component(\"v-fcba2a8896d43\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-cda17500cdb0c\",\n path: \"/guide/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/introduction.md\").then(function (comp) {\n Vue.component(\"v-cda17500cdb0c\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-745d22bfe3ef4\",\n path: \"/guide/sponsors.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/sponsors.md\").then(function (comp) {\n Vue.component(\"v-745d22bfe3ef4\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-360e42fea8e33\",\n path: \"/plugin/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/plugin/introduction.md\").then(function (comp) {\n Vue.component(\"v-360e42fea8e33\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-1856b116362c7\",\n path: \"/zh/\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/README.md\").then(function (comp) {\n Vue.component(\"v-1856b116362c7\", comp.default);\n next();\n });\n }\n}, {\n path: \"/zh/index.html\",\n redirect: \"/zh/\"\n}, {\n name: \"v-6812df0250aa3\",\n path: \"/zh/api/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/api/introduction.md\").then(function (comp) {\n Vue.component(\"v-6812df0250aa3\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-d3636509f8935\",\n path: \"/zh/guide/faq.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/faq.md\").then(function (comp) {\n Vue.component(\"v-d3636509f8935\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-53a48e3593d7c\",\n path: \"/zh/guide/getting-started.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/getting-started.md\").then(function (comp) {\n Vue.component(\"v-53a48e3593d7c\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-cd45bc6f8fdb\",\n path: \"/zh/guide/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/introduction.md\").then(function (comp) {\n Vue.component(\"v-cd45bc6f8fdb\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-bef402580c1cc\",\n path: \"/zh/guide/sponsors.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/sponsors.md\").then(function (comp) {\n Vue.component(\"v-bef402580c1cc\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-faf113f1b77ae\",\n path: \"/zh/plugin/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/plugin/introduction.md\").then(function (comp) {\n Vue.component(\"v-faf113f1b77ae\", comp.default);\n next();\n });\n }\n}, {\n path: '*',\n component: ThemeNotFound\n}];",{"version":3,"sources":["node_modules/vuepress/lib/app/.temp/routes.js"],"names":["Vue","ThemeLayout","ThemeNotFound","injectMixins","rootMixins","routes","name","path","component","beforeEnter","to","from","next","then","comp","default","redirect"],"mappings":"AAAA,OAAOA,GAAP,MAAgB,KAAhB;AAEA,OAAOC,WAAP,MAAwB,cAAxB;AACA,OAAOC,aAAP,MAA0B,gBAA1B;AACA,SAASC,YAAT,QAA6B,WAA7B;AACA,OAAOC,UAAP,MAAuB,kBAAvB;AAEAD,aAAaF,WAAb,EAA0BG,UAA1B;AACAD,aAAaD,aAAb,EAA4BE,UAA5B;AAEA,OAAO,IAAMC,SAAS,CACpB;AACEC,QAAM,iBADR;AAEEC,QAAM,GAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,wDAAP,EAAiEC,IAAjE,CAAsE,gBAAQ;AAC5Eb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CADoB,EAYpB;AACEL,QAAM,aADR;AAEES,YAAU;AAFZ,CAZoB,EAgBpB;AACEV,QAAM,iBADR;AAEEC,QAAM,wBAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,kEAAP,EAA2EC,IAA3E,CAAgF,gBAAQ;AACtFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAhBoB,EA2BpB;AACEN,QAAM,iBADR;AAEEC,QAAM,iBAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,2DAAP,EAAoEC,IAApE,CAAyE,gBAAQ;AAC/Eb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CA3BoB,EAsCpB;AACEN,QAAM,iBADR;AAEEC,QAAM,6BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,uEAAP,EAAgFC,IAAhF,CAAqF,gBAAQ;AAC3Fb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAtCoB,EAiDpB;AACEN,QAAM,iBADR;AAEEC,QAAM,0BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,oEAAP,EAA6EC,IAA7E,CAAkF,gBAAQ;AACxFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAjDoB,EA4DpB;AACEN,QAAM,iBADR;AAEEC,QAAM,sBAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,gEAAP,EAAyEC,IAAzE,CAA8E,gBAAQ;AACpFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CA5DoB,EAuEpB;AACEN,QAAM,iBADR;AAEEC,QAAM,2BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,qEAAP,EAA8EC,IAA9E,CAAmF,gBAAQ;AACzFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAvEoB,EAkFpB;AACEN,QAAM,iBADR;AAEEC,QAAM,MAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,2DAAP,EAAoEC,IAApE,CAAyE,gBAAQ;AAC/Eb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAlFoB,EA6FpB;AACEL,QAAM,gBADR;AAEES,YAAU;AAFZ,CA7FoB,EAiGpB;AACEV,QAAM,iBADR;AAEEC,QAAM,2BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,qEAAP,EAA8EC,IAA9E,CAAmF,gBAAQ;AACzFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAjGoB,EA4GpB;AACEN,QAAM,iBADR;AAEEC,QAAM,oBAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,8DAAP,EAAuEC,IAAvE,CAA4E,gBAAQ;AAClFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CA5GoB,EAuHpB;AACEN,QAAM,iBADR;AAEEC,QAAM,gCAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,0EAAP,EAAmFC,IAAnF,CAAwF,gBAAQ;AAC9Fb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAvHoB,EAkIpB;AACEN,QAAM,gBADR;AAEEC,QAAM,6BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,uEAAP,EAAgFC,IAAhF,CAAqF,gBAAQ;AAC3Fb,UAAIQ,SAAJ,CAAc,gBAAd,EAAgCM,KAAKC,OAArC;AACAH;AACD,KAHD;AAID;AATH,CAlIoB,EA6IpB;AACEN,QAAM,iBADR;AAEEC,QAAM,yBAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,mEAAP,EAA4EC,IAA5E,CAAiF,gBAAQ;AACvFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CA7IoB,EAwJpB;AACEN,QAAM,iBADR;AAEEC,QAAM,8BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,wEAAP,EAAiFC,IAAjF,CAAsF,gBAAQ;AAC5Fb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAxJoB,EAmKpB;AACEL,QAAM,GADR;AAEEC,aAAWN;AAFb,CAnKoB,CAAf","sourceRoot":"/Users/ruki/projects/personal/xmake-docs","sourcesContent":["import Vue from 'vue'\n\nimport ThemeLayout from '@themeLayout'\nimport ThemeNotFound from '@themeNotFound'\nimport { injectMixins } from '@app/util'\nimport rootMixins from '@app/root-mixins'\n\ninjectMixins(ThemeLayout, rootMixins)\ninjectMixins(ThemeNotFound, rootMixins)\n\nexport const routes = [\n {\n name: \"v-ddf4be195b958\",\n path: \"/\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/README.md\").then(comp => {\n Vue.component(\"v-ddf4be195b958\", comp.default)\n next()\n })\n }\n },\n {\n path: \"/index.html\",\n redirect: \"/\"\n },\n {\n name: \"v-8644851cf91dd\",\n path: \"/api/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/api/introduction.md\").then(comp => {\n Vue.component(\"v-8644851cf91dd\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-b6ee77db64501\",\n path: \"/guide/faq.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/faq.md\").then(comp => {\n Vue.component(\"v-b6ee77db64501\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-fcba2a8896d43\",\n path: \"/guide/getting-started.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md\").then(comp => {\n Vue.component(\"v-fcba2a8896d43\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-cda17500cdb0c\",\n path: \"/guide/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/introduction.md\").then(comp => {\n Vue.component(\"v-cda17500cdb0c\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-745d22bfe3ef4\",\n path: \"/guide/sponsors.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/sponsors.md\").then(comp => {\n Vue.component(\"v-745d22bfe3ef4\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-360e42fea8e33\",\n path: \"/plugin/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/plugin/introduction.md\").then(comp => {\n Vue.component(\"v-360e42fea8e33\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-1856b116362c7\",\n path: \"/zh/\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/README.md\").then(comp => {\n Vue.component(\"v-1856b116362c7\", comp.default)\n next()\n })\n }\n },\n {\n path: \"/zh/index.html\",\n redirect: \"/zh/\"\n },\n {\n name: \"v-6812df0250aa3\",\n path: \"/zh/api/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/api/introduction.md\").then(comp => {\n Vue.component(\"v-6812df0250aa3\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-d3636509f8935\",\n path: \"/zh/guide/faq.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/faq.md\").then(comp => {\n Vue.component(\"v-d3636509f8935\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-53a48e3593d7c\",\n path: \"/zh/guide/getting-started.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/getting-started.md\").then(comp => {\n Vue.component(\"v-53a48e3593d7c\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-cd45bc6f8fdb\",\n path: \"/zh/guide/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/introduction.md\").then(comp => {\n Vue.component(\"v-cd45bc6f8fdb\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-bef402580c1cc\",\n path: \"/zh/guide/sponsors.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/sponsors.md\").then(comp => {\n Vue.component(\"v-bef402580c1cc\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-faf113f1b77ae\",\n path: \"/zh/plugin/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/plugin/introduction.md\").then(comp => {\n Vue.component(\"v-faf113f1b77ae\", comp.default)\n next()\n })\n }\n },\n {\n path: '*',\n component: ThemeNotFound\n }\n]"]}]} \ No newline at end of file
+{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js??ref--3-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/routes.js","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/routes.js","mtime":1541599681817},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js","mtime":1541484124240}],"contextDependencies":[],"result":["import Vue from 'vue';\nimport ThemeLayout from '@themeLayout';\nimport ThemeNotFound from '@themeNotFound';\nimport { injectMixins } from '@app/util';\nimport rootMixins from '@app/root-mixins';\ninjectMixins(ThemeLayout, rootMixins);\ninjectMixins(ThemeNotFound, rootMixins);\nexport var routes = [{\n name: \"v-2614641d01439\",\n path: \"/\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/README.md\").then(function (comp) {\n Vue.component(\"v-2614641d01439\", comp.default);\n next();\n });\n }\n}, {\n path: \"/index.html\",\n redirect: \"/\"\n}, {\n name: \"v-ca0d3c6d3b947\",\n path: \"/api/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/api/introduction.md\").then(function (comp) {\n Vue.component(\"v-ca0d3c6d3b947\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-4cee7b9659743\",\n path: \"/guide/faq.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/faq.md\").then(function (comp) {\n Vue.component(\"v-4cee7b9659743\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-209fc19462fa6\",\n path: \"/guide/getting-started.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md\").then(function (comp) {\n Vue.component(\"v-209fc19462fa6\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-3ab176aebc1f4\",\n path: \"/guide/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/introduction.md\").then(function (comp) {\n Vue.component(\"v-3ab176aebc1f4\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-3b936eb8ef4c1\",\n path: \"/guide/sponsors.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/sponsors.md\").then(function (comp) {\n Vue.component(\"v-3b936eb8ef4c1\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-ba9eb56bb695a\",\n path: \"/plugin/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/plugin/introduction.md\").then(function (comp) {\n Vue.component(\"v-ba9eb56bb695a\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-ed7962dcbc27f\",\n path: \"/zh/\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/README.md\").then(function (comp) {\n Vue.component(\"v-ed7962dcbc27f\", comp.default);\n next();\n });\n }\n}, {\n path: \"/zh/index.html\",\n redirect: \"/zh/\"\n}, {\n name: \"v-540f63bba413e\",\n path: \"/zh/api/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/api/introduction.md\").then(function (comp) {\n Vue.component(\"v-540f63bba413e\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-02760b3923029\",\n path: \"/zh/guide/faq.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/faq.md\").then(function (comp) {\n Vue.component(\"v-02760b3923029\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-60de9668a20a5\",\n path: \"/zh/guide/getting-started.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/getting-started.md\").then(function (comp) {\n Vue.component(\"v-60de9668a20a5\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-0f1def6098c93\",\n path: \"/zh/guide/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/introduction.md\").then(function (comp) {\n Vue.component(\"v-0f1def6098c93\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-de6097dc9e908\",\n path: \"/zh/guide/sponsors.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/sponsors.md\").then(function (comp) {\n Vue.component(\"v-de6097dc9e908\", comp.default);\n next();\n });\n }\n}, {\n name: \"v-06da4c6c1298e\",\n path: \"/zh/plugin/introduction.html\",\n component: ThemeLayout,\n beforeEnter: function beforeEnter(to, from, next) {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/plugin/introduction.md\").then(function (comp) {\n Vue.component(\"v-06da4c6c1298e\", comp.default);\n next();\n });\n }\n}, {\n path: '*',\n component: ThemeNotFound\n}];",{"version":3,"sources":["node_modules/vuepress/lib/app/.temp/routes.js"],"names":["Vue","ThemeLayout","ThemeNotFound","injectMixins","rootMixins","routes","name","path","component","beforeEnter","to","from","next","then","comp","default","redirect"],"mappings":"AAAA,OAAOA,GAAP,MAAgB,KAAhB;AAEA,OAAOC,WAAP,MAAwB,cAAxB;AACA,OAAOC,aAAP,MAA0B,gBAA1B;AACA,SAASC,YAAT,QAA6B,WAA7B;AACA,OAAOC,UAAP,MAAuB,kBAAvB;AAEAD,aAAaF,WAAb,EAA0BG,UAA1B;AACAD,aAAaD,aAAb,EAA4BE,UAA5B;AAEA,OAAO,IAAMC,SAAS,CACpB;AACEC,QAAM,iBADR;AAEEC,QAAM,GAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,wDAAP,EAAiEC,IAAjE,CAAsE,gBAAQ;AAC5Eb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CADoB,EAYpB;AACEL,QAAM,aADR;AAEES,YAAU;AAFZ,CAZoB,EAgBpB;AACEV,QAAM,iBADR;AAEEC,QAAM,wBAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,kEAAP,EAA2EC,IAA3E,CAAgF,gBAAQ;AACtFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAhBoB,EA2BpB;AACEN,QAAM,iBADR;AAEEC,QAAM,iBAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,2DAAP,EAAoEC,IAApE,CAAyE,gBAAQ;AAC/Eb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CA3BoB,EAsCpB;AACEN,QAAM,iBADR;AAEEC,QAAM,6BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,uEAAP,EAAgFC,IAAhF,CAAqF,gBAAQ;AAC3Fb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAtCoB,EAiDpB;AACEN,QAAM,iBADR;AAEEC,QAAM,0BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,oEAAP,EAA6EC,IAA7E,CAAkF,gBAAQ;AACxFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAjDoB,EA4DpB;AACEN,QAAM,iBADR;AAEEC,QAAM,sBAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,gEAAP,EAAyEC,IAAzE,CAA8E,gBAAQ;AACpFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CA5DoB,EAuEpB;AACEN,QAAM,iBADR;AAEEC,QAAM,2BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,qEAAP,EAA8EC,IAA9E,CAAmF,gBAAQ;AACzFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAvEoB,EAkFpB;AACEN,QAAM,iBADR;AAEEC,QAAM,MAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,2DAAP,EAAoEC,IAApE,CAAyE,gBAAQ;AAC/Eb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAlFoB,EA6FpB;AACEL,QAAM,gBADR;AAEES,YAAU;AAFZ,CA7FoB,EAiGpB;AACEV,QAAM,iBADR;AAEEC,QAAM,2BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,qEAAP,EAA8EC,IAA9E,CAAmF,gBAAQ;AACzFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAjGoB,EA4GpB;AACEN,QAAM,iBADR;AAEEC,QAAM,oBAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,8DAAP,EAAuEC,IAAvE,CAA4E,gBAAQ;AAClFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CA5GoB,EAuHpB;AACEN,QAAM,iBADR;AAEEC,QAAM,gCAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,0EAAP,EAAmFC,IAAnF,CAAwF,gBAAQ;AAC9Fb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAvHoB,EAkIpB;AACEN,QAAM,iBADR;AAEEC,QAAM,6BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,uEAAP,EAAgFC,IAAhF,CAAqF,gBAAQ;AAC3Fb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAlIoB,EA6IpB;AACEN,QAAM,iBADR;AAEEC,QAAM,yBAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,mEAAP,EAA4EC,IAA5E,CAAiF,gBAAQ;AACvFb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CA7IoB,EAwJpB;AACEN,QAAM,iBADR;AAEEC,QAAM,8BAFR;AAGEC,aAAWP,WAHb;AAIEQ,eAAa,qBAACC,EAAD,EAAKC,IAAL,EAAWC,IAAX,EAAoB;AAC/B,WAAO,wEAAP,EAAiFC,IAAjF,CAAsF,gBAAQ;AAC5Fb,UAAIQ,SAAJ,CAAc,iBAAd,EAAiCM,KAAKC,OAAtC;AACAH;AACD,KAHD;AAID;AATH,CAxJoB,EAmKpB;AACEL,QAAM,GADR;AAEEC,aAAWN;AAFb,CAnKoB,CAAf","sourceRoot":"/Users/ruki/projects/personal/xmake-docs","sourcesContent":["import Vue from 'vue'\n\nimport ThemeLayout from '@themeLayout'\nimport ThemeNotFound from '@themeNotFound'\nimport { injectMixins } from '@app/util'\nimport rootMixins from '@app/root-mixins'\n\ninjectMixins(ThemeLayout, rootMixins)\ninjectMixins(ThemeNotFound, rootMixins)\n\nexport const routes = [\n {\n name: \"v-2614641d01439\",\n path: \"/\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/README.md\").then(comp => {\n Vue.component(\"v-2614641d01439\", comp.default)\n next()\n })\n }\n },\n {\n path: \"/index.html\",\n redirect: \"/\"\n },\n {\n name: \"v-ca0d3c6d3b947\",\n path: \"/api/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/api/introduction.md\").then(comp => {\n Vue.component(\"v-ca0d3c6d3b947\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-4cee7b9659743\",\n path: \"/guide/faq.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/faq.md\").then(comp => {\n Vue.component(\"v-4cee7b9659743\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-209fc19462fa6\",\n path: \"/guide/getting-started.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md\").then(comp => {\n Vue.component(\"v-209fc19462fa6\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-3ab176aebc1f4\",\n path: \"/guide/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/introduction.md\").then(comp => {\n Vue.component(\"v-3ab176aebc1f4\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-3b936eb8ef4c1\",\n path: \"/guide/sponsors.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/guide/sponsors.md\").then(comp => {\n Vue.component(\"v-3b936eb8ef4c1\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-ba9eb56bb695a\",\n path: \"/plugin/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/plugin/introduction.md\").then(comp => {\n Vue.component(\"v-ba9eb56bb695a\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-ed7962dcbc27f\",\n path: \"/zh/\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/README.md\").then(comp => {\n Vue.component(\"v-ed7962dcbc27f\", comp.default)\n next()\n })\n }\n },\n {\n path: \"/zh/index.html\",\n redirect: \"/zh/\"\n },\n {\n name: \"v-540f63bba413e\",\n path: \"/zh/api/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/api/introduction.md\").then(comp => {\n Vue.component(\"v-540f63bba413e\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-02760b3923029\",\n path: \"/zh/guide/faq.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/faq.md\").then(comp => {\n Vue.component(\"v-02760b3923029\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-60de9668a20a5\",\n path: \"/zh/guide/getting-started.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/getting-started.md\").then(comp => {\n Vue.component(\"v-60de9668a20a5\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-0f1def6098c93\",\n path: \"/zh/guide/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/introduction.md\").then(comp => {\n Vue.component(\"v-0f1def6098c93\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-de6097dc9e908\",\n path: \"/zh/guide/sponsors.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/guide/sponsors.md\").then(comp => {\n Vue.component(\"v-de6097dc9e908\", comp.default)\n next()\n })\n }\n },\n {\n name: \"v-06da4c6c1298e\",\n path: \"/zh/plugin/introduction.html\",\n component: ThemeLayout,\n beforeEnter: (to, from, next) => {\n import(\"/Users/ruki/projects/personal/xmake-docs/src/zh/plugin/introduction.md\").then(comp => {\n Vue.component(\"v-06da4c6c1298e\", comp.default)\n next()\n })\n }\n },\n {\n path: '*',\n component: ThemeNotFound\n }\n]"]}]} \ No newline at end of file
diff --git a/node_modules/vuepress/node_modules/.cache/vuepress/75cd6bf5303777798f2b0fa3e2492d9f.json b/node_modules/vuepress/node_modules/.cache/vuepress/75cd6bf5303777798f2b0fa3e2492d9f.json
index 53f4618b..d8c2f6c4 100644
--- a/node_modules/vuepress/node_modules/.cache/vuepress/75cd6bf5303777798f2b0fa3e2492d9f.json
+++ b/node_modules/vuepress/node_modules/.cache/vuepress/75cd6bf5303777798f2b0fa3e2492d9f.json
@@ -1 +1 @@
-{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js??ref--3-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/themeEnhanceApp.js","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/themeEnhanceApp.js","mtime":1541598695625},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js","mtime":1541484124240}],"contextDependencies":[],"result":["import \"core-js/modules/es6.promise\";\nexport default function () {}",{"version":3,"sources":["node_modules/vuepress/lib/app/.temp/themeEnhanceApp.js"],"names":[],"mappings":";AAAA,eAAe,YAAY,CAAE","sourceRoot":"/Users/ruki/projects/personal/xmake-docs","sourcesContent":["export default function () {}"]}]} \ No newline at end of file
+{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js??ref--3-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/themeEnhanceApp.js","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/themeEnhanceApp.js","mtime":1541599381659},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js","mtime":1541484124240}],"contextDependencies":[],"result":["export default function () {}",{"version":3,"sources":["node_modules/vuepress/lib/app/.temp/themeEnhanceApp.js"],"names":[],"mappings":"AAAA,eAAe,YAAY,CAAE","sourceRoot":"/Users/ruki/projects/personal/xmake-docs","sourcesContent":["export default function () {}"]}]} \ No newline at end of file
diff --git a/node_modules/vuepress/node_modules/.cache/vuepress/a8b8b64fc0354d9f755f38966b9f5286.json b/node_modules/vuepress/node_modules/.cache/vuepress/a8b8b64fc0354d9f755f38966b9f5286.json
index 342add66..7ddaa685 100644
--- a/node_modules/vuepress/node_modules/.cache/vuepress/a8b8b64fc0354d9f755f38966b9f5286.json
+++ b/node_modules/vuepress/node_modules/.cache/vuepress/a8b8b64fc0354d9f755f38966b9f5286.json
@@ -1 +1 @@
-{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js??ref--3-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/siteData.js","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/siteData.js","mtime":1541598695622},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js","mtime":1541484124240}],"contextDependencies":[],"result":["export var siteData = {\n \"title\": \"\",\n \"description\": \"\",\n \"base\": \"/\",\n \"pages\": [{\n \"key\": \"v-ddf4be195b958\",\n \"path\": \"/\",\n \"lastUpdated\": null,\n \"title\": \"Home\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Simple description\",\n \"slug\": \"simple-description\"\n }, {\n \"level\": 2,\n \"title\": \"Package dependences\",\n \"slug\": \"package-dependences\"\n }, {\n \"level\": 2,\n \"title\": \"Build project\",\n \"slug\": \"build-project\"\n }, {\n \"level\": 2,\n \"title\": \"Run target\",\n \"slug\": \"run-target\"\n }, {\n \"level\": 2,\n \"title\": \"Debug target\",\n \"slug\": \"debug-target\"\n }, {\n \"level\": 2,\n \"title\": \"Configure platform\",\n \"slug\": \"configure-platform\"\n }, {\n \"level\": 2,\n \"title\": \"Menu configuration\",\n \"slug\": \"menu-configuration\"\n }, {\n \"level\": 2,\n \"title\": \"Package management\",\n \"slug\": \"package-management\"\n }, {\n \"level\": 2,\n \"title\": \"Supported platforms\",\n \"slug\": \"supported-platforms\"\n }, {\n \"level\": 2,\n \"title\": \"Supported Languages\",\n \"slug\": \"supported-languages\"\n }, {\n \"level\": 2,\n \"title\": \"Supported Projects\",\n \"slug\": \"supported-projects\"\n }, {\n \"level\": 2,\n \"title\": \"Builtin Plugins\",\n \"slug\": \"builtin-plugins\"\n }, {\n \"level\": 2,\n \"title\": \"More Plugins\",\n \"slug\": \"more-plugins\"\n }, {\n \"level\": 2,\n \"title\": \"IDE/Editor Integration\",\n \"slug\": \"ide-editor-integration\"\n }, {\n \"level\": 2,\n \"title\": \"More Examples\",\n \"slug\": \"more-examples\"\n }, {\n \"level\": 2,\n \"title\": \"Project Examples\",\n \"slug\": \"project-examples\"\n }, {\n \"level\": 2,\n \"title\": \"Example Video\",\n \"slug\": \"example-video\"\n }, {\n \"level\": 2,\n \"title\": \"Contacts\",\n \"slug\": \"contacts\"\n }],\n \"frontmatter\": {\n \"home\": true,\n \"heroImage\": \"/hero.png\",\n \"actionText\": \"Get Started →\",\n \"actionLink\": \"/guide/getting-started\",\n \"features\": [{\n \"title\": \"Why\",\n \"details\": \"Making development and building easier, so that any developer can quickly pick it up and enjoy the productivity boost when developing and building project.\"\n }, {\n \"title\": \"Powerful\",\n \"details\": \"Provides lots of features (e.g. package, install, plugin, macro, action, option, task and etc).\"\n }, {\n \"title\": \"Cross-platform\",\n \"details\": \"Supports windows, macOS, linux, android, ios.\"\n }],\n \"footer\": \"Apache-2.0 Licensed | Copyright © 2015-present tboox.org\"\n }\n }, {\n \"key\": \"v-8644851cf91dd\",\n \"path\": \"/api/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"Title1\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n }, {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }]\n }, {\n \"key\": \"v-b6ee77db64501\",\n \"path\": \"/guide/faq.html\",\n \"lastUpdated\": null,\n \"title\": \"FAQ\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"How to get verbose command-line arguments info?\",\n \"slug\": \"how-to-get-verbose-command-line-arguments-info\"\n }, {\n \"level\": 2,\n \"title\": \"How to suppress all output info?\",\n \"slug\": \"how-to-suppress-all-output-info\"\n }, {\n \"level\": 2,\n \"title\": \"How to do if xmake fails?\",\n \"slug\": \"how-to-do-if-xmake-fails\"\n }, {\n \"level\": 2,\n \"title\": \"How to see verbose compiling warnings?\",\n \"slug\": \"how-to-see-verbose-compiling-warnings\"\n }, {\n \"level\": 2,\n \"title\": \"How to scan source code and generate xmake.lua automaticlly\",\n \"slug\": \"how-to-scan-source-code-and-generate-xmake-lua-automaticlly\"\n }]\n }, {\n \"key\": \"v-fcba2a8896d43\",\n \"path\": \"/guide/getting-started.html\",\n \"lastUpdated\": null,\n \"title\": \"Getting Started\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Installation\",\n \"slug\": \"installation\"\n }, {\n \"level\": 2,\n \"title\": \"Quick Start\",\n \"slug\": \"quick-start\"\n }, {\n \"level\": 2,\n \"title\": \"Project Examples\",\n \"slug\": \"project-examples\"\n }, {\n \"level\": 2,\n \"title\": \"Configuration\",\n \"slug\": \"configuration\"\n }, {\n \"level\": 2,\n \"title\": \"Dependency Package Management\",\n \"slug\": \"dependency-package-management\"\n }]\n }, {\n \"key\": \"v-cda17500cdb0c\",\n \"path\": \"/guide/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"Introduction\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Introduction\",\n \"slug\": \"introduction\"\n }]\n }, {\n \"key\": \"v-745d22bfe3ef4\",\n \"path\": \"/guide/sponsors.html\",\n \"lastUpdated\": null,\n \"title\": \"Sponsors\"\n }, {\n \"key\": \"v-360e42fea8e33\",\n \"path\": \"/plugin/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"Title1\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n }, {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }]\n }, {\n \"key\": \"v-1856b116362c7\",\n \"path\": \"/zh/\",\n \"lastUpdated\": null,\n \"title\": \"Home\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"简单的工程描述\",\n \"slug\": \"简单的工程描述\"\n }, {\n \"level\": 2,\n \"title\": \"包依赖描述\",\n \"slug\": \"包依赖描述\"\n }, {\n \"level\": 2,\n \"title\": \"构建工程\",\n \"slug\": \"构建工程\"\n }, {\n \"level\": 2,\n \"title\": \"运行目标\",\n \"slug\": \"运行目标\"\n }, {\n \"level\": 2,\n \"title\": \"调试程序\",\n \"slug\": \"调试程序\"\n }, {\n \"level\": 2,\n \"title\": \"配置平台\",\n \"slug\": \"配置平台\"\n }, {\n \"level\": 2,\n \"title\": \"图形化菜单配置\",\n \"slug\": \"图形化菜单配置\"\n }, {\n \"level\": 2,\n \"title\": \"包依赖管理\",\n \"slug\": \"包依赖管理\"\n }, {\n \"level\": 2,\n \"title\": \"支持平台\",\n \"slug\": \"支持平台\"\n }, {\n \"level\": 2,\n \"title\": \"支持语言\",\n \"slug\": \"支持语言\"\n }, {\n \"level\": 2,\n \"title\": \"工程类型\",\n \"slug\": \"工程类型\"\n }, {\n \"level\": 2,\n \"title\": \"内置插件\",\n \"slug\": \"内置插件\"\n }, {\n \"level\": 2,\n \"title\": \"更多插件\",\n \"slug\": \"更多插件\"\n }, {\n \"level\": 2,\n \"title\": \"IDE和编辑器插件\",\n \"slug\": \"ide和编辑器插件\"\n }, {\n \"level\": 2,\n \"title\": \"更多例子\",\n \"slug\": \"更多例子\"\n }, {\n \"level\": 2,\n \"title\": \"项目例子\",\n \"slug\": \"项目例子\"\n }, {\n \"level\": 2,\n \"title\": \"演示视频\",\n \"slug\": \"演示视频\"\n }, {\n \"level\": 2,\n \"title\": \"联系方式\",\n \"slug\": \"联系方式\"\n }],\n \"frontmatter\": {\n \"home\": true,\n \"heroImage\": \"/hero.png\",\n \"actionText\": \"快速上手 →\",\n \"actionLink\": \"/zh/guide/getting-started\",\n \"features\": [{\n \"title\": \"为什么使用\",\n \"details\": \"让开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得一次编写,随处构建\"\n }, {\n \"title\": \"强大\",\n \"details\": \"提供大量的实用特性(例如:插件扩展、脚本宏记录、批量打包、自动文档生成等常用插件)\"\n }, {\n \"title\": \"跨平台\",\n \"details\": \"支持windows, macOS, linux, android, ios\"\n }],\n \"footer\": \"Apache-2.0 Licensed | Copyright © 2015-present tboox.org\"\n }\n }, {\n \"key\": \"v-6812df0250aa3\",\n \"path\": \"/zh/api/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"Title1\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n }, {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }]\n }, {\n \"key\": \"v-d3636509f8935\",\n \"path\": \"/zh/guide/faq.html\",\n \"lastUpdated\": null\n }, {\n \"key\": \"v-53a48e3593d7c\",\n \"path\": \"/zh/guide/getting-started.html\",\n \"lastUpdated\": null,\n \"title\": \"快速开始\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"编译\",\n \"slug\": \"编译\"\n }, {\n \"level\": 2,\n \"title\": \"例子\",\n \"slug\": \"例子\"\n }]\n }, {\n \"key\": \"v-cd45bc6f8fdb\",\n \"path\": \"/zh/guide/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"简介\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"特性\",\n \"slug\": \"特性\"\n }, {\n \"level\": 2,\n \"title\": \"项目例子\",\n \"slug\": \"项目例子\"\n }, {\n \"level\": 2,\n \"title\": \"联系方式\",\n \"slug\": \"联系方式\"\n }]\n }, {\n \"key\": \"v-bef402580c1cc\",\n \"path\": \"/zh/guide/sponsors.html\",\n \"lastUpdated\": null\n }, {\n \"key\": \"v-faf113f1b77ae\",\n \"path\": \"/zh/plugin/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"Title1\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n }, {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }]\n }],\n \"themeConfig\": {\n \"repo\": \"tboox/xmake\",\n \"docsRepo\": \"tboox/xmake-docs\",\n \"docsDir\": \"src\",\n \"editLinks\": true,\n \"sidebarDepth\": 2,\n \"locales\": {\n \"/\": {\n \"label\": \"English\",\n \"selectText\": \"Languages\",\n \"editLinkText\": \"Edit this page on GitHub\",\n \"lastUpdated\": \"Last Updated\",\n \"nav\": [{\n \"text\": \"Guide\",\n \"link\": \"/guide/introduction\"\n }, {\n \"text\": \"Plugin\",\n \"link\": \"/plugin/introduction\"\n }, {\n \"text\": \"API\",\n \"link\": \"/api/introduction\"\n }, {\n \"text\": \"Articles\",\n \"link\": \"http://www.tboox.org/category/#xmake\"\n }, {\n \"text\": \"Feedback\",\n \"link\": \"https://github.com/tboox/xmake/issues\"\n }, {\n \"text\": \"Community\",\n \"link\": \"https://www.reddit.com/r/tboox/\"\n }, {\n \"text\": \"Donation\",\n \"link\": \"http://tboox.org/cn/donation/\"\n }],\n \"sidebar\": {\n \"/guide/\": [\"introduction\", \"getting-started\", \"faq\", \"sponsors\"],\n \"/plugin/\": [\"introduction\"],\n \"/api/\": [\"introduction\"]\n }\n },\n \"/zh/\": {\n \"label\": \"简体中文\",\n \"selectText\": \"选择语言\",\n \"editLinkText\": \"在 GitHub 上编辑此页\",\n \"lastUpdated\": \"上次更新\",\n \"nav\": [{\n \"text\": \"指南\",\n \"link\": \"/zh/guide/introduction\"\n }, {\n \"text\": \"插件\",\n \"link\": \"/zh/plugin/introduction\"\n }, {\n \"text\": \"接口\",\n \"link\": \"/zh/api/introduction\"\n }, {\n \"text\": \"文章\",\n \"link\": \"http://www.tboox.org/cn/category/#xmake\"\n }, {\n \"text\": \"反馈\",\n \"link\": \"https://github.com/tboox/xmake/issues\"\n }, {\n \"text\": \"社区\",\n \"link\": \"https://www.reddit.com/r/tboox/\"\n }, {\n \"text\": \"捐助\",\n \"link\": \"http://tboox.org/cn/donation/\"\n }],\n \"sidebar\": {\n \"/zh/guide/\": [\"introduction\", \"getting-started\", \"faq\", \"sponsors\"],\n \"/zh/plugin/\": [\"introduction\"],\n \"/zh/api/\": [\"introduction\"]\n }\n }\n }\n },\n \"locales\": {\n \"/\": {\n \"lang\": \"en-US\",\n \"title\": \"xmake\",\n \"description\": \"A cross-platform build utility based on Lua\"\n },\n \"/zh/\": {\n \"lang\": \"zh-CN\",\n \"title\": \"xmake\",\n \"description\": \"一个基于Lua的轻量级跨平台自动构建工具\"\n }\n }\n};",{"version":3,"sources":["node_modules/vuepress/lib/app/.temp/siteData.js"],"names":["siteData"],"mappings":"AAAA,OAAO,IAAMA,WAAW;AACtB,WAAS,EADa;AAEtB,iBAAe,EAFO;AAGtB,UAAQ,GAHc;AAItB,WAAS,CACP;AACE,WAAO,iBADT;AAEE,YAAQ,GAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS,MAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,qBAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,eAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,YAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,cAFX;AAGE,cAAQ;AAHV,KArBS,EA0BT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KA1BS,EA+BT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KA/BS,EAoCT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KApCS,EAyCT;AACE,eAAS,CADX;AAEE,eAAS,qBAFX;AAGE,cAAQ;AAHV,KAzCS,EA8CT;AACE,eAAS,CADX;AAEE,eAAS,qBAFX;AAGE,cAAQ;AAHV,KA9CS,EAmDT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KAnDS,EAwDT;AACE,eAAS,CADX;AAEE,eAAS,iBAFX;AAGE,cAAQ;AAHV,KAxDS,EA6DT;AACE,eAAS,CADX;AAEE,eAAS,cAFX;AAGE,cAAQ;AAHV,KA7DS,EAkET;AACE,eAAS,CADX;AAEE,eAAS,wBAFX;AAGE,cAAQ;AAHV,KAlES,EAuET;AACE,eAAS,CADX;AAEE,eAAS,eAFX;AAGE,cAAQ;AAHV,KAvES,EA4ET;AACE,eAAS,CADX;AAEE,eAAS,kBAFX;AAGE,cAAQ;AAHV,KA5ES,EAiFT;AACE,eAAS,CADX;AAEE,eAAS,eAFX;AAGE,cAAQ;AAHV,KAjFS,EAsFT;AACE,eAAS,CADX;AAEE,eAAS,UAFX;AAGE,cAAQ;AAHV,KAtFS,CALb;AAiGE,mBAAe;AACb,cAAQ,IADK;AAEb,mBAAa,WAFA;AAGb,oBAAc,eAHD;AAIb,oBAAc,wBAJD;AAKb,kBAAY,CACV;AACE,iBAAS,KADX;AAEE,mBAAW;AAFb,OADU,EAKV;AACE,iBAAS,UADX;AAEE,mBAAW;AAFb,OALU,EASV;AACE,iBAAS,gBADX;AAEE,mBAAW;AAFb,OATU,CALC;AAmBb,gBAAU;AAnBG;AAjGjB,GADO,EAwHP;AACE,WAAO,iBADT;AAEE,YAAQ,wBAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS,QAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KArBS;AALb,GAxHO,EAyJP;AACE,WAAO,iBADT;AAEE,YAAQ,iBAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS,KAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,iDAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,kCAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,2BAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,wCAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,6DAFX;AAGE,cAAQ;AAHV,KArBS;AALb,GAzJO,EA0LP;AACE,WAAO,iBADT;AAEE,YAAQ,6BAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS,iBAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,cAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,aAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,kBAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,eAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,+BAFX;AAGE,cAAQ;AAHV,KArBS;AALb,GA1LO,EA2NP;AACE,WAAO,iBADT;AAEE,YAAQ,0BAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS,cAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,cAFX;AAGE,cAAQ;AAHV,KADS;AALb,GA3NO,EAwOP;AACE,WAAO,iBADT;AAEE,YAAQ,sBAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS;AAJX,GAxOO,EA8OP;AACE,WAAO,iBADT;AAEE,YAAQ,2BAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS,QAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KArBS;AALb,GA9OO,EA+QP;AACE,WAAO,iBADT;AAEE,YAAQ,MAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS,MAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,SAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,OAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KArBS,EA0BT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KA1BS,EA+BT;AACE,eAAS,CADX;AAEE,eAAS,SAFX;AAGE,cAAQ;AAHV,KA/BS,EAoCT;AACE,eAAS,CADX;AAEE,eAAS,OAFX;AAGE,cAAQ;AAHV,KApCS,EAyCT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAzCS,EA8CT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KA9CS,EAmDT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAnDS,EAwDT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAxDS,EA6DT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KA7DS,EAkET;AACE,eAAS,CADX;AAEE,eAAS,WAFX;AAGE,cAAQ;AAHV,KAlES,EAuET;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAvES,EA4ET;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KA5ES,EAiFT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAjFS,EAsFT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAtFS,CALb;AAiGE,mBAAe;AACb,cAAQ,IADK;AAEb,mBAAa,WAFA;AAGb,oBAAc,QAHD;AAIb,oBAAc,2BAJD;AAKb,kBAAY,CACV;AACE,iBAAS,OADX;AAEE,mBAAW;AAFb,OADU,EAKV;AACE,iBAAS,IADX;AAEE,mBAAW;AAFb,OALU,EASV;AACE,iBAAS,KADX;AAEE,mBAAW;AAFb,OATU,CALC;AAmBb,gBAAU;AAnBG;AAjGjB,GA/QO,EAsYP;AACE,WAAO,iBADT;AAEE,YAAQ,2BAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS,QAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KArBS;AALb,GAtYO,EAuaP;AACE,WAAO,iBADT;AAEE,YAAQ,oBAFV;AAGE,mBAAe;AAHjB,GAvaO,EA4aP;AACE,WAAO,iBADT;AAEE,YAAQ,gCAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS,MAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,IAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,IAFX;AAGE,cAAQ;AAHV,KANS;AALb,GA5aO,EA8bP;AACE,WAAO,gBADT;AAEE,YAAQ,6BAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS,IAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,IAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAXS;AALb,GA9bO,EAqdP;AACE,WAAO,iBADT;AAEE,YAAQ,yBAFV;AAGE,mBAAe;AAHjB,GArdO,EA0dP;AACE,WAAO,iBADT;AAEE,YAAQ,8BAFV;AAGE,mBAAe,IAHjB;AAIE,aAAS,QAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KArBS;AALb,GA1dO,CAJa;AAggBtB,iBAAe;AACb,YAAQ,aADK;AAEb,gBAAY,kBAFC;AAGb,eAAW,KAHE;AAIb,iBAAa,IAJA;AAKb,oBAAgB,CALH;AAMb,eAAW;AACT,WAAK;AACH,iBAAS,SADN;AAEH,sBAAc,WAFX;AAGH,wBAAgB,0BAHb;AAIH,uBAAe,cAJZ;AAKH,eAAO,CACL;AACE,kBAAQ,OADV;AAEE,kBAAQ;AAFV,SADK,EAKL;AACE,kBAAQ,QADV;AAEE,kBAAQ;AAFV,SALK,EASL;AACE,kBAAQ,KADV;AAEE,kBAAQ;AAFV,SATK,EAaL;AACE,kBAAQ,UADV;AAEE,kBAAQ;AAFV,SAbK,EAiBL;AACE,kBAAQ,UADV;AAEE,kBAAQ;AAFV,SAjBK,EAqBL;AACE,kBAAQ,WADV;AAEE,kBAAQ;AAFV,SArBK,EAyBL;AACE,kBAAQ,UADV;AAEE,kBAAQ;AAFV,SAzBK,CALJ;AAmCH,mBAAW;AACT,qBAAW,CACT,cADS,EAET,iBAFS,EAGT,KAHS,EAIT,UAJS,CADF;AAOT,sBAAY,CACV,cADU,CAPH;AAUT,mBAAS,CACP,cADO;AAVA;AAnCR,OADI;AAmDT,cAAQ;AACN,iBAAS,MADH;AAEN,sBAAc,MAFR;AAGN,wBAAgB,gBAHV;AAIN,uBAAe,MAJT;AAKN,eAAO,CACL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SADK,EAKL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SALK,EASL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SATK,EAaL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SAbK,EAiBL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SAjBK,EAqBL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SArBK,EAyBL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SAzBK,CALD;AAmCN,mBAAW;AACT,wBAAc,CACZ,cADY,EAEZ,iBAFY,EAGZ,KAHY,EAIZ,UAJY,CADL;AAOT,yBAAe,CACb,cADa,CAPN;AAUT,sBAAY,CACV,cADU;AAVH;AAnCL;AAnDC;AANE,GAhgBO;AA6mBtB,aAAW;AACT,SAAK;AACH,cAAQ,OADL;AAEH,eAAS,OAFN;AAGH,qBAAe;AAHZ,KADI;AAMT,YAAQ;AACN,cAAQ,OADF;AAEN,eAAS,OAFH;AAGN,qBAAe;AAHT;AANC;AA7mBW,CAAjB","sourceRoot":"/Users/ruki/projects/personal/xmake-docs","sourcesContent":["export const siteData = {\n \"title\": \"\",\n \"description\": \"\",\n \"base\": \"/\",\n \"pages\": [\n {\n \"key\": \"v-ddf4be195b958\",\n \"path\": \"/\",\n \"lastUpdated\": null,\n \"title\": \"Home\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Simple description\",\n \"slug\": \"simple-description\"\n },\n {\n \"level\": 2,\n \"title\": \"Package dependences\",\n \"slug\": \"package-dependences\"\n },\n {\n \"level\": 2,\n \"title\": \"Build project\",\n \"slug\": \"build-project\"\n },\n {\n \"level\": 2,\n \"title\": \"Run target\",\n \"slug\": \"run-target\"\n },\n {\n \"level\": 2,\n \"title\": \"Debug target\",\n \"slug\": \"debug-target\"\n },\n {\n \"level\": 2,\n \"title\": \"Configure platform\",\n \"slug\": \"configure-platform\"\n },\n {\n \"level\": 2,\n \"title\": \"Menu configuration\",\n \"slug\": \"menu-configuration\"\n },\n {\n \"level\": 2,\n \"title\": \"Package management\",\n \"slug\": \"package-management\"\n },\n {\n \"level\": 2,\n \"title\": \"Supported platforms\",\n \"slug\": \"supported-platforms\"\n },\n {\n \"level\": 2,\n \"title\": \"Supported Languages\",\n \"slug\": \"supported-languages\"\n },\n {\n \"level\": 2,\n \"title\": \"Supported Projects\",\n \"slug\": \"supported-projects\"\n },\n {\n \"level\": 2,\n \"title\": \"Builtin Plugins\",\n \"slug\": \"builtin-plugins\"\n },\n {\n \"level\": 2,\n \"title\": \"More Plugins\",\n \"slug\": \"more-plugins\"\n },\n {\n \"level\": 2,\n \"title\": \"IDE/Editor Integration\",\n \"slug\": \"ide-editor-integration\"\n },\n {\n \"level\": 2,\n \"title\": \"More Examples\",\n \"slug\": \"more-examples\"\n },\n {\n \"level\": 2,\n \"title\": \"Project Examples\",\n \"slug\": \"project-examples\"\n },\n {\n \"level\": 2,\n \"title\": \"Example Video\",\n \"slug\": \"example-video\"\n },\n {\n \"level\": 2,\n \"title\": \"Contacts\",\n \"slug\": \"contacts\"\n }\n ],\n \"frontmatter\": {\n \"home\": true,\n \"heroImage\": \"/hero.png\",\n \"actionText\": \"Get Started →\",\n \"actionLink\": \"/guide/getting-started\",\n \"features\": [\n {\n \"title\": \"Why\",\n \"details\": \"Making development and building easier, so that any developer can quickly pick it up and enjoy the productivity boost when developing and building project.\"\n },\n {\n \"title\": \"Powerful\",\n \"details\": \"Provides lots of features (e.g. package, install, plugin, macro, action, option, task and etc).\"\n },\n {\n \"title\": \"Cross-platform\",\n \"details\": \"Supports windows, macOS, linux, android, ios.\"\n }\n ],\n \"footer\": \"Apache-2.0 Licensed | Copyright © 2015-present tboox.org\"\n }\n },\n {\n \"key\": \"v-8644851cf91dd\",\n \"path\": \"/api/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"Title1\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n },\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }\n ]\n },\n {\n \"key\": \"v-b6ee77db64501\",\n \"path\": \"/guide/faq.html\",\n \"lastUpdated\": null,\n \"title\": \"FAQ\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"How to get verbose command-line arguments info?\",\n \"slug\": \"how-to-get-verbose-command-line-arguments-info\"\n },\n {\n \"level\": 2,\n \"title\": \"How to suppress all output info?\",\n \"slug\": \"how-to-suppress-all-output-info\"\n },\n {\n \"level\": 2,\n \"title\": \"How to do if xmake fails?\",\n \"slug\": \"how-to-do-if-xmake-fails\"\n },\n {\n \"level\": 2,\n \"title\": \"How to see verbose compiling warnings?\",\n \"slug\": \"how-to-see-verbose-compiling-warnings\"\n },\n {\n \"level\": 2,\n \"title\": \"How to scan source code and generate xmake.lua automaticlly\",\n \"slug\": \"how-to-scan-source-code-and-generate-xmake-lua-automaticlly\"\n }\n ]\n },\n {\n \"key\": \"v-fcba2a8896d43\",\n \"path\": \"/guide/getting-started.html\",\n \"lastUpdated\": null,\n \"title\": \"Getting Started\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Installation\",\n \"slug\": \"installation\"\n },\n {\n \"level\": 2,\n \"title\": \"Quick Start\",\n \"slug\": \"quick-start\"\n },\n {\n \"level\": 2,\n \"title\": \"Project Examples\",\n \"slug\": \"project-examples\"\n },\n {\n \"level\": 2,\n \"title\": \"Configuration\",\n \"slug\": \"configuration\"\n },\n {\n \"level\": 2,\n \"title\": \"Dependency Package Management\",\n \"slug\": \"dependency-package-management\"\n }\n ]\n },\n {\n \"key\": \"v-cda17500cdb0c\",\n \"path\": \"/guide/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"Introduction\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Introduction\",\n \"slug\": \"introduction\"\n }\n ]\n },\n {\n \"key\": \"v-745d22bfe3ef4\",\n \"path\": \"/guide/sponsors.html\",\n \"lastUpdated\": null,\n \"title\": \"Sponsors\"\n },\n {\n \"key\": \"v-360e42fea8e33\",\n \"path\": \"/plugin/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"Title1\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n },\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }\n ]\n },\n {\n \"key\": \"v-1856b116362c7\",\n \"path\": \"/zh/\",\n \"lastUpdated\": null,\n \"title\": \"Home\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"简单的工程描述\",\n \"slug\": \"简单的工程描述\"\n },\n {\n \"level\": 2,\n \"title\": \"包依赖描述\",\n \"slug\": \"包依赖描述\"\n },\n {\n \"level\": 2,\n \"title\": \"构建工程\",\n \"slug\": \"构建工程\"\n },\n {\n \"level\": 2,\n \"title\": \"运行目标\",\n \"slug\": \"运行目标\"\n },\n {\n \"level\": 2,\n \"title\": \"调试程序\",\n \"slug\": \"调试程序\"\n },\n {\n \"level\": 2,\n \"title\": \"配置平台\",\n \"slug\": \"配置平台\"\n },\n {\n \"level\": 2,\n \"title\": \"图形化菜单配置\",\n \"slug\": \"图形化菜单配置\"\n },\n {\n \"level\": 2,\n \"title\": \"包依赖管理\",\n \"slug\": \"包依赖管理\"\n },\n {\n \"level\": 2,\n \"title\": \"支持平台\",\n \"slug\": \"支持平台\"\n },\n {\n \"level\": 2,\n \"title\": \"支持语言\",\n \"slug\": \"支持语言\"\n },\n {\n \"level\": 2,\n \"title\": \"工程类型\",\n \"slug\": \"工程类型\"\n },\n {\n \"level\": 2,\n \"title\": \"内置插件\",\n \"slug\": \"内置插件\"\n },\n {\n \"level\": 2,\n \"title\": \"更多插件\",\n \"slug\": \"更多插件\"\n },\n {\n \"level\": 2,\n \"title\": \"IDE和编辑器插件\",\n \"slug\": \"ide和编辑器插件\"\n },\n {\n \"level\": 2,\n \"title\": \"更多例子\",\n \"slug\": \"更多例子\"\n },\n {\n \"level\": 2,\n \"title\": \"项目例子\",\n \"slug\": \"项目例子\"\n },\n {\n \"level\": 2,\n \"title\": \"演示视频\",\n \"slug\": \"演示视频\"\n },\n {\n \"level\": 2,\n \"title\": \"联系方式\",\n \"slug\": \"联系方式\"\n }\n ],\n \"frontmatter\": {\n \"home\": true,\n \"heroImage\": \"/hero.png\",\n \"actionText\": \"快速上手 →\",\n \"actionLink\": \"/zh/guide/getting-started\",\n \"features\": [\n {\n \"title\": \"为什么使用\",\n \"details\": \"让开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得一次编写,随处构建\"\n },\n {\n \"title\": \"强大\",\n \"details\": \"提供大量的实用特性(例如:插件扩展、脚本宏记录、批量打包、自动文档生成等常用插件)\"\n },\n {\n \"title\": \"跨平台\",\n \"details\": \"支持windows, macOS, linux, android, ios\"\n }\n ],\n \"footer\": \"Apache-2.0 Licensed | Copyright © 2015-present tboox.org\"\n }\n },\n {\n \"key\": \"v-6812df0250aa3\",\n \"path\": \"/zh/api/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"Title1\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n },\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }\n ]\n },\n {\n \"key\": \"v-d3636509f8935\",\n \"path\": \"/zh/guide/faq.html\",\n \"lastUpdated\": null\n },\n {\n \"key\": \"v-53a48e3593d7c\",\n \"path\": \"/zh/guide/getting-started.html\",\n \"lastUpdated\": null,\n \"title\": \"快速开始\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"编译\",\n \"slug\": \"编译\"\n },\n {\n \"level\": 2,\n \"title\": \"例子\",\n \"slug\": \"例子\"\n }\n ]\n },\n {\n \"key\": \"v-cd45bc6f8fdb\",\n \"path\": \"/zh/guide/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"简介\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"特性\",\n \"slug\": \"特性\"\n },\n {\n \"level\": 2,\n \"title\": \"项目例子\",\n \"slug\": \"项目例子\"\n },\n {\n \"level\": 2,\n \"title\": \"联系方式\",\n \"slug\": \"联系方式\"\n }\n ]\n },\n {\n \"key\": \"v-bef402580c1cc\",\n \"path\": \"/zh/guide/sponsors.html\",\n \"lastUpdated\": null\n },\n {\n \"key\": \"v-faf113f1b77ae\",\n \"path\": \"/zh/plugin/introduction.html\",\n \"lastUpdated\": null,\n \"title\": \"Title1\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n },\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }\n ]\n }\n ],\n \"themeConfig\": {\n \"repo\": \"tboox/xmake\",\n \"docsRepo\": \"tboox/xmake-docs\",\n \"docsDir\": \"src\",\n \"editLinks\": true,\n \"sidebarDepth\": 2,\n \"locales\": {\n \"/\": {\n \"label\": \"English\",\n \"selectText\": \"Languages\",\n \"editLinkText\": \"Edit this page on GitHub\",\n \"lastUpdated\": \"Last Updated\",\n \"nav\": [\n {\n \"text\": \"Guide\",\n \"link\": \"/guide/introduction\"\n },\n {\n \"text\": \"Plugin\",\n \"link\": \"/plugin/introduction\"\n },\n {\n \"text\": \"API\",\n \"link\": \"/api/introduction\"\n },\n {\n \"text\": \"Articles\",\n \"link\": \"http://www.tboox.org/category/#xmake\"\n },\n {\n \"text\": \"Feedback\",\n \"link\": \"https://github.com/tboox/xmake/issues\"\n },\n {\n \"text\": \"Community\",\n \"link\": \"https://www.reddit.com/r/tboox/\"\n },\n {\n \"text\": \"Donation\",\n \"link\": \"http://tboox.org/cn/donation/\"\n }\n ],\n \"sidebar\": {\n \"/guide/\": [\n \"introduction\",\n \"getting-started\",\n \"faq\",\n \"sponsors\"\n ],\n \"/plugin/\": [\n \"introduction\"\n ],\n \"/api/\": [\n \"introduction\"\n ]\n }\n },\n \"/zh/\": {\n \"label\": \"简体中文\",\n \"selectText\": \"选择语言\",\n \"editLinkText\": \"在 GitHub 上编辑此页\",\n \"lastUpdated\": \"上次更新\",\n \"nav\": [\n {\n \"text\": \"指南\",\n \"link\": \"/zh/guide/introduction\"\n },\n {\n \"text\": \"插件\",\n \"link\": \"/zh/plugin/introduction\"\n },\n {\n \"text\": \"接口\",\n \"link\": \"/zh/api/introduction\"\n },\n {\n \"text\": \"文章\",\n \"link\": \"http://www.tboox.org/cn/category/#xmake\"\n },\n {\n \"text\": \"反馈\",\n \"link\": \"https://github.com/tboox/xmake/issues\"\n },\n {\n \"text\": \"社区\",\n \"link\": \"https://www.reddit.com/r/tboox/\"\n },\n {\n \"text\": \"捐助\",\n \"link\": \"http://tboox.org/cn/donation/\"\n }\n ],\n \"sidebar\": {\n \"/zh/guide/\": [\n \"introduction\",\n \"getting-started\",\n \"faq\",\n \"sponsors\"\n ],\n \"/zh/plugin/\": [\n \"introduction\"\n ],\n \"/zh/api/\": [\n \"introduction\"\n ]\n }\n }\n }\n },\n \"locales\": {\n \"/\": {\n \"lang\": \"en-US\",\n \"title\": \"xmake\",\n \"description\": \"A cross-platform build utility based on Lua\"\n },\n \"/zh/\": {\n \"lang\": \"zh-CN\",\n \"title\": \"xmake\",\n \"description\": \"一个基于Lua的轻量级跨平台自动构建工具\"\n }\n }\n}"]}]} \ No newline at end of file
+{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js??ref--3-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/siteData.js","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/app/.temp/siteData.js","mtime":1541599681818},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/babel-loader/lib/index.js","mtime":1541484124240}],"contextDependencies":[],"result":["export var siteData = {\n \"title\": \"\",\n \"description\": \"\",\n \"base\": \"/\",\n \"pages\": [{\n \"key\": \"v-2614641d01439\",\n \"path\": \"/\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Home\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Simple description\",\n \"slug\": \"simple-description\"\n }, {\n \"level\": 2,\n \"title\": \"Package dependences\",\n \"slug\": \"package-dependences\"\n }, {\n \"level\": 2,\n \"title\": \"Build project\",\n \"slug\": \"build-project\"\n }, {\n \"level\": 2,\n \"title\": \"Run target\",\n \"slug\": \"run-target\"\n }, {\n \"level\": 2,\n \"title\": \"Debug target\",\n \"slug\": \"debug-target\"\n }, {\n \"level\": 2,\n \"title\": \"Configure platform\",\n \"slug\": \"configure-platform\"\n }, {\n \"level\": 2,\n \"title\": \"Menu configuration\",\n \"slug\": \"menu-configuration\"\n }, {\n \"level\": 2,\n \"title\": \"Package management\",\n \"slug\": \"package-management\"\n }, {\n \"level\": 2,\n \"title\": \"Supported platforms\",\n \"slug\": \"supported-platforms\"\n }, {\n \"level\": 2,\n \"title\": \"Supported Languages\",\n \"slug\": \"supported-languages\"\n }, {\n \"level\": 2,\n \"title\": \"Supported Projects\",\n \"slug\": \"supported-projects\"\n }, {\n \"level\": 2,\n \"title\": \"Builtin Plugins\",\n \"slug\": \"builtin-plugins\"\n }, {\n \"level\": 2,\n \"title\": \"More Plugins\",\n \"slug\": \"more-plugins\"\n }, {\n \"level\": 2,\n \"title\": \"IDE/Editor Integration\",\n \"slug\": \"ide-editor-integration\"\n }, {\n \"level\": 2,\n \"title\": \"More Examples\",\n \"slug\": \"more-examples\"\n }, {\n \"level\": 2,\n \"title\": \"Project Examples\",\n \"slug\": \"project-examples\"\n }, {\n \"level\": 2,\n \"title\": \"Example Video\",\n \"slug\": \"example-video\"\n }, {\n \"level\": 2,\n \"title\": \"Contacts\",\n \"slug\": \"contacts\"\n }],\n \"frontmatter\": {\n \"home\": true,\n \"heroImage\": \"/hero.png\",\n \"actionText\": \"Get Started →\",\n \"actionLink\": \"/guide/getting-started\",\n \"features\": [{\n \"title\": \"Why\",\n \"details\": \"Making development and building easier, so that any developer can quickly pick it up and enjoy the productivity boost when developing and building project.\"\n }, {\n \"title\": \"Powerful\",\n \"details\": \"Provides lots of features (e.g. package, install, plugin, macro, action, option, task and etc).\"\n }, {\n \"title\": \"Cross-platform\",\n \"details\": \"Supports windows, macOS, linux, android, ios.\"\n }],\n \"footer\": \"Apache-2.0 Licensed | Copyright © 2015-present tboox.org\"\n }\n }, {\n \"key\": \"v-ca0d3c6d3b947\",\n \"path\": \"/api/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Title1\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n }, {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }]\n }, {\n \"key\": \"v-4cee7b9659743\",\n \"path\": \"/guide/faq.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"FAQ\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"How to get verbose command-line arguments info?\",\n \"slug\": \"how-to-get-verbose-command-line-arguments-info\"\n }, {\n \"level\": 2,\n \"title\": \"How to suppress all output info?\",\n \"slug\": \"how-to-suppress-all-output-info\"\n }, {\n \"level\": 2,\n \"title\": \"How to do if xmake fails?\",\n \"slug\": \"how-to-do-if-xmake-fails\"\n }, {\n \"level\": 2,\n \"title\": \"How to see verbose compiling warnings?\",\n \"slug\": \"how-to-see-verbose-compiling-warnings\"\n }, {\n \"level\": 2,\n \"title\": \"How to scan source code and generate xmake.lua automaticlly\",\n \"slug\": \"how-to-scan-source-code-and-generate-xmake-lua-automaticlly\"\n }]\n }, {\n \"key\": \"v-209fc19462fa6\",\n \"path\": \"/guide/getting-started.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Getting Started\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Installation\",\n \"slug\": \"installation\"\n }, {\n \"level\": 3,\n \"title\": \"Master\",\n \"slug\": \"master\"\n }, {\n \"level\": 3,\n \"title\": \"Windows\",\n \"slug\": \"windows\"\n }, {\n \"level\": 3,\n \"title\": \"MacOS\",\n \"slug\": \"macos\"\n }, {\n \"level\": 3,\n \"title\": \"Linux\",\n \"slug\": \"linux\"\n }, {\n \"level\": 3,\n \"title\": \"Compilation\",\n \"slug\": \"compilation\"\n }, {\n \"level\": 2,\n \"title\": \"Quick Start\",\n \"slug\": \"quick-start\"\n }, {\n \"level\": 3,\n \"title\": \"Create Project\",\n \"slug\": \"create-project\"\n }, {\n \"level\": 3,\n \"title\": \"Build Project\",\n \"slug\": \"build-project\"\n }, {\n \"level\": 3,\n \"title\": \"Run Program\",\n \"slug\": \"run-program\"\n }, {\n \"level\": 3,\n \"title\": \"Debug Program\",\n \"slug\": \"debug-program\"\n }, {\n \"level\": 2,\n \"title\": \"Project Examples\",\n \"slug\": \"project-examples\"\n }, {\n \"level\": 3,\n \"title\": \"Executable Program\",\n \"slug\": \"executable-program\"\n }, {\n \"level\": 3,\n \"title\": \"Static Library Program\",\n \"slug\": \"static-library-program\"\n }, {\n \"level\": 3,\n \"title\": \"Share Library Program\",\n \"slug\": \"share-library-program\"\n }, {\n \"level\": 3,\n \"title\": \"Qt Program\",\n \"slug\": \"qt-program\"\n }, {\n \"level\": 3,\n \"title\": \"Cuda Program\",\n \"slug\": \"cuda-program\"\n }, {\n \"level\": 3,\n \"title\": \"WDK Driver Program\",\n \"slug\": \"wdk-driver-program\"\n }, {\n \"level\": 3,\n \"title\": \"WinSDK Application Program\",\n \"slug\": \"winsdk-application-program\"\n }, {\n \"level\": 2,\n \"title\": \"Configuration\",\n \"slug\": \"configuration\"\n }, {\n \"level\": 3,\n \"title\": \"Target Platforms\",\n \"slug\": \"target-platforms\"\n }, {\n \"level\": 3,\n \"title\": \"Global Configuration\",\n \"slug\": \"global-configuration\"\n }, {\n \"level\": 3,\n \"title\": \"Clean Configuration\",\n \"slug\": \"clean-configuration\"\n }, {\n \"level\": 2,\n \"title\": \"Dependency Package Management\",\n \"slug\": \"dependency-package-management\"\n }, {\n \"level\": 3,\n \"title\": \"Local Package Mode\",\n \"slug\": \"local-package-mode\"\n }, {\n \"level\": 3,\n \"title\": \"System Search Mode\",\n \"slug\": \"system-search-mode\"\n }, {\n \"level\": 3,\n \"title\": \"Remote dependency mode\",\n \"slug\": \"remote-dependency-mode\"\n }]\n }, {\n \"key\": \"v-3ab176aebc1f4\",\n \"path\": \"/guide/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Introduction\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Introduction\",\n \"slug\": \"introduction\"\n }]\n }, {\n \"key\": \"v-3b936eb8ef4c1\",\n \"path\": \"/guide/sponsors.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Sponsors\"\n }, {\n \"key\": \"v-ba9eb56bb695a\",\n \"path\": \"/plugin/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Title1\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n }, {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }]\n }, {\n \"key\": \"v-ed7962dcbc27f\",\n \"path\": \"/zh/\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Home\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"简单的工程描述\",\n \"slug\": \"简单的工程描述\"\n }, {\n \"level\": 2,\n \"title\": \"包依赖描述\",\n \"slug\": \"包依赖描述\"\n }, {\n \"level\": 2,\n \"title\": \"构建工程\",\n \"slug\": \"构建工程\"\n }, {\n \"level\": 2,\n \"title\": \"运行目标\",\n \"slug\": \"运行目标\"\n }, {\n \"level\": 2,\n \"title\": \"调试程序\",\n \"slug\": \"调试程序\"\n }, {\n \"level\": 2,\n \"title\": \"配置平台\",\n \"slug\": \"配置平台\"\n }, {\n \"level\": 2,\n \"title\": \"图形化菜单配置\",\n \"slug\": \"图形化菜单配置\"\n }, {\n \"level\": 2,\n \"title\": \"包依赖管理\",\n \"slug\": \"包依赖管理\"\n }, {\n \"level\": 2,\n \"title\": \"支持平台\",\n \"slug\": \"支持平台\"\n }, {\n \"level\": 2,\n \"title\": \"支持语言\",\n \"slug\": \"支持语言\"\n }, {\n \"level\": 2,\n \"title\": \"工程类型\",\n \"slug\": \"工程类型\"\n }, {\n \"level\": 2,\n \"title\": \"内置插件\",\n \"slug\": \"内置插件\"\n }, {\n \"level\": 2,\n \"title\": \"更多插件\",\n \"slug\": \"更多插件\"\n }, {\n \"level\": 2,\n \"title\": \"IDE和编辑器插件\",\n \"slug\": \"ide和编辑器插件\"\n }, {\n \"level\": 2,\n \"title\": \"更多例子\",\n \"slug\": \"更多例子\"\n }, {\n \"level\": 2,\n \"title\": \"项目例子\",\n \"slug\": \"项目例子\"\n }, {\n \"level\": 2,\n \"title\": \"演示视频\",\n \"slug\": \"演示视频\"\n }, {\n \"level\": 2,\n \"title\": \"联系方式\",\n \"slug\": \"联系方式\"\n }],\n \"frontmatter\": {\n \"home\": true,\n \"heroImage\": \"/hero.png\",\n \"actionText\": \"快速上手 →\",\n \"actionLink\": \"/zh/guide/getting-started\",\n \"features\": [{\n \"title\": \"为什么使用\",\n \"details\": \"让开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得一次编写,随处构建\"\n }, {\n \"title\": \"强大\",\n \"details\": \"提供大量的实用特性(例如:插件扩展、脚本宏记录、批量打包、自动文档生成等常用插件)\"\n }, {\n \"title\": \"跨平台\",\n \"details\": \"支持windows, macOS, linux, android, ios\"\n }],\n \"footer\": \"Apache-2.0 Licensed | Copyright © 2015-present tboox.org\"\n }\n }, {\n \"key\": \"v-540f63bba413e\",\n \"path\": \"/zh/api/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Title1\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n }, {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }]\n }, {\n \"key\": \"v-02760b3923029\",\n \"path\": \"/zh/guide/faq.html\",\n \"lastUpdated\": 1541598789000\n }, {\n \"key\": \"v-60de9668a20a5\",\n \"path\": \"/zh/guide/getting-started.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"快速开始\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"编译\",\n \"slug\": \"编译\"\n }, {\n \"level\": 2,\n \"title\": \"例子\",\n \"slug\": \"例子\"\n }]\n }, {\n \"key\": \"v-0f1def6098c93\",\n \"path\": \"/zh/guide/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"简介\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"特性\",\n \"slug\": \"特性\"\n }, {\n \"level\": 2,\n \"title\": \"项目例子\",\n \"slug\": \"项目例子\"\n }, {\n \"level\": 2,\n \"title\": \"联系方式\",\n \"slug\": \"联系方式\"\n }]\n }, {\n \"key\": \"v-de6097dc9e908\",\n \"path\": \"/zh/guide/sponsors.html\",\n \"lastUpdated\": 1541598789000\n }, {\n \"key\": \"v-06da4c6c1298e\",\n \"path\": \"/zh/plugin/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Title1\",\n \"headers\": [{\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n }, {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n }, {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }]\n }],\n \"themeConfig\": {\n \"repo\": \"tboox/xmake\",\n \"docsRepo\": \"tboox/xmake-docs\",\n \"docsDir\": \"src\",\n \"editLinks\": true,\n \"sidebarDepth\": 2,\n \"locales\": {\n \"/\": {\n \"label\": \"English\",\n \"selectText\": \"Languages\",\n \"editLinkText\": \"Edit this page on GitHub\",\n \"lastUpdated\": \"Last Updated\",\n \"nav\": [{\n \"text\": \"Guide\",\n \"link\": \"/guide/introduction\"\n }, {\n \"text\": \"Plugin\",\n \"link\": \"/plugin/introduction\"\n }, {\n \"text\": \"API\",\n \"link\": \"/api/introduction\"\n }, {\n \"text\": \"Articles\",\n \"link\": \"http://www.tboox.org/category/#xmake\"\n }, {\n \"text\": \"Feedback\",\n \"link\": \"https://github.com/tboox/xmake/issues\"\n }, {\n \"text\": \"Community\",\n \"link\": \"https://www.reddit.com/r/tboox/\"\n }, {\n \"text\": \"Donation\",\n \"link\": \"http://tboox.org/cn/donation/\"\n }],\n \"sidebar\": {\n \"/guide/\": [\"introduction\", \"getting-started\", \"faq\", \"sponsors\"],\n \"/plugin/\": [\"introduction\"],\n \"/api/\": [\"introduction\"]\n }\n },\n \"/zh/\": {\n \"label\": \"简体中文\",\n \"selectText\": \"选择语言\",\n \"editLinkText\": \"在 GitHub 上编辑此页\",\n \"lastUpdated\": \"上次更新\",\n \"nav\": [{\n \"text\": \"指南\",\n \"link\": \"/zh/guide/introduction\"\n }, {\n \"text\": \"插件\",\n \"link\": \"/zh/plugin/introduction\"\n }, {\n \"text\": \"接口\",\n \"link\": \"/zh/api/introduction\"\n }, {\n \"text\": \"文章\",\n \"link\": \"http://www.tboox.org/cn/category/#xmake\"\n }, {\n \"text\": \"反馈\",\n \"link\": \"https://github.com/tboox/xmake/issues\"\n }, {\n \"text\": \"社区\",\n \"link\": \"https://www.reddit.com/r/tboox/\"\n }, {\n \"text\": \"捐助\",\n \"link\": \"http://tboox.org/cn/donation/\"\n }],\n \"sidebar\": {\n \"/zh/guide/\": [\"introduction\", \"getting-started\", \"faq\", \"sponsors\"],\n \"/zh/plugin/\": [\"introduction\"],\n \"/zh/api/\": [\"introduction\"]\n }\n }\n }\n },\n \"locales\": {\n \"/\": {\n \"lang\": \"en-US\",\n \"title\": \"xmake\",\n \"description\": \"A cross-platform build utility based on Lua\"\n },\n \"/zh/\": {\n \"lang\": \"zh-CN\",\n \"title\": \"xmake\",\n \"description\": \"一个基于Lua的轻量级跨平台自动构建工具\"\n }\n }\n};",{"version":3,"sources":["node_modules/vuepress/lib/app/.temp/siteData.js"],"names":["siteData"],"mappings":"AAAA,OAAO,IAAMA,WAAW;AACtB,WAAS,EADa;AAEtB,iBAAe,EAFO;AAGtB,UAAQ,GAHc;AAItB,WAAS,CACP;AACE,WAAO,iBADT;AAEE,YAAQ,GAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS,MAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,qBAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,eAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,YAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,cAFX;AAGE,cAAQ;AAHV,KArBS,EA0BT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KA1BS,EA+BT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KA/BS,EAoCT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KApCS,EAyCT;AACE,eAAS,CADX;AAEE,eAAS,qBAFX;AAGE,cAAQ;AAHV,KAzCS,EA8CT;AACE,eAAS,CADX;AAEE,eAAS,qBAFX;AAGE,cAAQ;AAHV,KA9CS,EAmDT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KAnDS,EAwDT;AACE,eAAS,CADX;AAEE,eAAS,iBAFX;AAGE,cAAQ;AAHV,KAxDS,EA6DT;AACE,eAAS,CADX;AAEE,eAAS,cAFX;AAGE,cAAQ;AAHV,KA7DS,EAkET;AACE,eAAS,CADX;AAEE,eAAS,wBAFX;AAGE,cAAQ;AAHV,KAlES,EAuET;AACE,eAAS,CADX;AAEE,eAAS,eAFX;AAGE,cAAQ;AAHV,KAvES,EA4ET;AACE,eAAS,CADX;AAEE,eAAS,kBAFX;AAGE,cAAQ;AAHV,KA5ES,EAiFT;AACE,eAAS,CADX;AAEE,eAAS,eAFX;AAGE,cAAQ;AAHV,KAjFS,EAsFT;AACE,eAAS,CADX;AAEE,eAAS,UAFX;AAGE,cAAQ;AAHV,KAtFS,CALb;AAiGE,mBAAe;AACb,cAAQ,IADK;AAEb,mBAAa,WAFA;AAGb,oBAAc,eAHD;AAIb,oBAAc,wBAJD;AAKb,kBAAY,CACV;AACE,iBAAS,KADX;AAEE,mBAAW;AAFb,OADU,EAKV;AACE,iBAAS,UADX;AAEE,mBAAW;AAFb,OALU,EASV;AACE,iBAAS,gBADX;AAEE,mBAAW;AAFb,OATU,CALC;AAmBb,gBAAU;AAnBG;AAjGjB,GADO,EAwHP;AACE,WAAO,iBADT;AAEE,YAAQ,wBAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS,QAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KArBS;AALb,GAxHO,EAyJP;AACE,WAAO,iBADT;AAEE,YAAQ,iBAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS,KAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,iDAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,kCAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,2BAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,wCAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,6DAFX;AAGE,cAAQ;AAHV,KArBS;AALb,GAzJO,EA0LP;AACE,WAAO,iBADT;AAEE,YAAQ,6BAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS,iBAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,cAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,SAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,OAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,OAFX;AAGE,cAAQ;AAHV,KArBS,EA0BT;AACE,eAAS,CADX;AAEE,eAAS,aAFX;AAGE,cAAQ;AAHV,KA1BS,EA+BT;AACE,eAAS,CADX;AAEE,eAAS,aAFX;AAGE,cAAQ;AAHV,KA/BS,EAoCT;AACE,eAAS,CADX;AAEE,eAAS,gBAFX;AAGE,cAAQ;AAHV,KApCS,EAyCT;AACE,eAAS,CADX;AAEE,eAAS,eAFX;AAGE,cAAQ;AAHV,KAzCS,EA8CT;AACE,eAAS,CADX;AAEE,eAAS,aAFX;AAGE,cAAQ;AAHV,KA9CS,EAmDT;AACE,eAAS,CADX;AAEE,eAAS,eAFX;AAGE,cAAQ;AAHV,KAnDS,EAwDT;AACE,eAAS,CADX;AAEE,eAAS,kBAFX;AAGE,cAAQ;AAHV,KAxDS,EA6DT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KA7DS,EAkET;AACE,eAAS,CADX;AAEE,eAAS,wBAFX;AAGE,cAAQ;AAHV,KAlES,EAuET;AACE,eAAS,CADX;AAEE,eAAS,uBAFX;AAGE,cAAQ;AAHV,KAvES,EA4ET;AACE,eAAS,CADX;AAEE,eAAS,YAFX;AAGE,cAAQ;AAHV,KA5ES,EAiFT;AACE,eAAS,CADX;AAEE,eAAS,cAFX;AAGE,cAAQ;AAHV,KAjFS,EAsFT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KAtFS,EA2FT;AACE,eAAS,CADX;AAEE,eAAS,4BAFX;AAGE,cAAQ;AAHV,KA3FS,EAgGT;AACE,eAAS,CADX;AAEE,eAAS,eAFX;AAGE,cAAQ;AAHV,KAhGS,EAqGT;AACE,eAAS,CADX;AAEE,eAAS,kBAFX;AAGE,cAAQ;AAHV,KArGS,EA0GT;AACE,eAAS,CADX;AAEE,eAAS,sBAFX;AAGE,cAAQ;AAHV,KA1GS,EA+GT;AACE,eAAS,CADX;AAEE,eAAS,qBAFX;AAGE,cAAQ;AAHV,KA/GS,EAoHT;AACE,eAAS,CADX;AAEE,eAAS,+BAFX;AAGE,cAAQ;AAHV,KApHS,EAyHT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KAzHS,EA8HT;AACE,eAAS,CADX;AAEE,eAAS,oBAFX;AAGE,cAAQ;AAHV,KA9HS,EAmIT;AACE,eAAS,CADX;AAEE,eAAS,wBAFX;AAGE,cAAQ;AAHV,KAnIS;AALb,GA1LO,EAyUP;AACE,WAAO,iBADT;AAEE,YAAQ,0BAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS,cAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,cAFX;AAGE,cAAQ;AAHV,KADS;AALb,GAzUO,EAsVP;AACE,WAAO,iBADT;AAEE,YAAQ,sBAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS;AAJX,GAtVO,EA4VP;AACE,WAAO,iBADT;AAEE,YAAQ,2BAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS,QAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KArBS;AALb,GA5VO,EA6XP;AACE,WAAO,iBADT;AAEE,YAAQ,MAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS,MAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,SAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,OAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KArBS,EA0BT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KA1BS,EA+BT;AACE,eAAS,CADX;AAEE,eAAS,SAFX;AAGE,cAAQ;AAHV,KA/BS,EAoCT;AACE,eAAS,CADX;AAEE,eAAS,OAFX;AAGE,cAAQ;AAHV,KApCS,EAyCT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAzCS,EA8CT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KA9CS,EAmDT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAnDS,EAwDT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAxDS,EA6DT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KA7DS,EAkET;AACE,eAAS,CADX;AAEE,eAAS,WAFX;AAGE,cAAQ;AAHV,KAlES,EAuET;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAvES,EA4ET;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KA5ES,EAiFT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAjFS,EAsFT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAtFS,CALb;AAiGE,mBAAe;AACb,cAAQ,IADK;AAEb,mBAAa,WAFA;AAGb,oBAAc,QAHD;AAIb,oBAAc,2BAJD;AAKb,kBAAY,CACV;AACE,iBAAS,OADX;AAEE,mBAAW;AAFb,OADU,EAKV;AACE,iBAAS,IADX;AAEE,mBAAW;AAFb,OALU,EASV;AACE,iBAAS,KADX;AAEE,mBAAW;AAFb,OATU,CALC;AAmBb,gBAAU;AAnBG;AAjGjB,GA7XO,EAofP;AACE,WAAO,iBADT;AAEE,YAAQ,2BAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS,QAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KArBS;AALb,GApfO,EAqhBP;AACE,WAAO,iBADT;AAEE,YAAQ,oBAFV;AAGE,mBAAe;AAHjB,GArhBO,EA0hBP;AACE,WAAO,iBADT;AAEE,YAAQ,gCAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS,MAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,IAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,IAFX;AAGE,cAAQ;AAHV,KANS;AALb,GA1hBO,EA4iBP;AACE,WAAO,iBADT;AAEE,YAAQ,6BAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS,IAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,IAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,MAFX;AAGE,cAAQ;AAHV,KAXS;AALb,GA5iBO,EAmkBP;AACE,WAAO,iBADT;AAEE,YAAQ,yBAFV;AAGE,mBAAe;AAHjB,GAnkBO,EAwkBP;AACE,WAAO,iBADT;AAEE,YAAQ,8BAFV;AAGE,mBAAe,aAHjB;AAIE,aAAS,QAJX;AAKE,eAAW,CACT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KADS,EAMT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KANS,EAWT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAXS,EAgBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KAhBS,EAqBT;AACE,eAAS,CADX;AAEE,eAAS,QAFX;AAGE,cAAQ;AAHV,KArBS;AALb,GAxkBO,CAJa;AA8mBtB,iBAAe;AACb,YAAQ,aADK;AAEb,gBAAY,kBAFC;AAGb,eAAW,KAHE;AAIb,iBAAa,IAJA;AAKb,oBAAgB,CALH;AAMb,eAAW;AACT,WAAK;AACH,iBAAS,SADN;AAEH,sBAAc,WAFX;AAGH,wBAAgB,0BAHb;AAIH,uBAAe,cAJZ;AAKH,eAAO,CACL;AACE,kBAAQ,OADV;AAEE,kBAAQ;AAFV,SADK,EAKL;AACE,kBAAQ,QADV;AAEE,kBAAQ;AAFV,SALK,EASL;AACE,kBAAQ,KADV;AAEE,kBAAQ;AAFV,SATK,EAaL;AACE,kBAAQ,UADV;AAEE,kBAAQ;AAFV,SAbK,EAiBL;AACE,kBAAQ,UADV;AAEE,kBAAQ;AAFV,SAjBK,EAqBL;AACE,kBAAQ,WADV;AAEE,kBAAQ;AAFV,SArBK,EAyBL;AACE,kBAAQ,UADV;AAEE,kBAAQ;AAFV,SAzBK,CALJ;AAmCH,mBAAW;AACT,qBAAW,CACT,cADS,EAET,iBAFS,EAGT,KAHS,EAIT,UAJS,CADF;AAOT,sBAAY,CACV,cADU,CAPH;AAUT,mBAAS,CACP,cADO;AAVA;AAnCR,OADI;AAmDT,cAAQ;AACN,iBAAS,MADH;AAEN,sBAAc,MAFR;AAGN,wBAAgB,gBAHV;AAIN,uBAAe,MAJT;AAKN,eAAO,CACL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SADK,EAKL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SALK,EASL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SATK,EAaL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SAbK,EAiBL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SAjBK,EAqBL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SArBK,EAyBL;AACE,kBAAQ,IADV;AAEE,kBAAQ;AAFV,SAzBK,CALD;AAmCN,mBAAW;AACT,wBAAc,CACZ,cADY,EAEZ,iBAFY,EAGZ,KAHY,EAIZ,UAJY,CADL;AAOT,yBAAe,CACb,cADa,CAPN;AAUT,sBAAY,CACV,cADU;AAVH;AAnCL;AAnDC;AANE,GA9mBO;AA2tBtB,aAAW;AACT,SAAK;AACH,cAAQ,OADL;AAEH,eAAS,OAFN;AAGH,qBAAe;AAHZ,KADI;AAMT,YAAQ;AACN,cAAQ,OADF;AAEN,eAAS,OAFH;AAGN,qBAAe;AAHT;AANC;AA3tBW,CAAjB","sourceRoot":"/Users/ruki/projects/personal/xmake-docs","sourcesContent":["export const siteData = {\n \"title\": \"\",\n \"description\": \"\",\n \"base\": \"/\",\n \"pages\": [\n {\n \"key\": \"v-2614641d01439\",\n \"path\": \"/\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Home\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Simple description\",\n \"slug\": \"simple-description\"\n },\n {\n \"level\": 2,\n \"title\": \"Package dependences\",\n \"slug\": \"package-dependences\"\n },\n {\n \"level\": 2,\n \"title\": \"Build project\",\n \"slug\": \"build-project\"\n },\n {\n \"level\": 2,\n \"title\": \"Run target\",\n \"slug\": \"run-target\"\n },\n {\n \"level\": 2,\n \"title\": \"Debug target\",\n \"slug\": \"debug-target\"\n },\n {\n \"level\": 2,\n \"title\": \"Configure platform\",\n \"slug\": \"configure-platform\"\n },\n {\n \"level\": 2,\n \"title\": \"Menu configuration\",\n \"slug\": \"menu-configuration\"\n },\n {\n \"level\": 2,\n \"title\": \"Package management\",\n \"slug\": \"package-management\"\n },\n {\n \"level\": 2,\n \"title\": \"Supported platforms\",\n \"slug\": \"supported-platforms\"\n },\n {\n \"level\": 2,\n \"title\": \"Supported Languages\",\n \"slug\": \"supported-languages\"\n },\n {\n \"level\": 2,\n \"title\": \"Supported Projects\",\n \"slug\": \"supported-projects\"\n },\n {\n \"level\": 2,\n \"title\": \"Builtin Plugins\",\n \"slug\": \"builtin-plugins\"\n },\n {\n \"level\": 2,\n \"title\": \"More Plugins\",\n \"slug\": \"more-plugins\"\n },\n {\n \"level\": 2,\n \"title\": \"IDE/Editor Integration\",\n \"slug\": \"ide-editor-integration\"\n },\n {\n \"level\": 2,\n \"title\": \"More Examples\",\n \"slug\": \"more-examples\"\n },\n {\n \"level\": 2,\n \"title\": \"Project Examples\",\n \"slug\": \"project-examples\"\n },\n {\n \"level\": 2,\n \"title\": \"Example Video\",\n \"slug\": \"example-video\"\n },\n {\n \"level\": 2,\n \"title\": \"Contacts\",\n \"slug\": \"contacts\"\n }\n ],\n \"frontmatter\": {\n \"home\": true,\n \"heroImage\": \"/hero.png\",\n \"actionText\": \"Get Started →\",\n \"actionLink\": \"/guide/getting-started\",\n \"features\": [\n {\n \"title\": \"Why\",\n \"details\": \"Making development and building easier, so that any developer can quickly pick it up and enjoy the productivity boost when developing and building project.\"\n },\n {\n \"title\": \"Powerful\",\n \"details\": \"Provides lots of features (e.g. package, install, plugin, macro, action, option, task and etc).\"\n },\n {\n \"title\": \"Cross-platform\",\n \"details\": \"Supports windows, macOS, linux, android, ios.\"\n }\n ],\n \"footer\": \"Apache-2.0 Licensed | Copyright © 2015-present tboox.org\"\n }\n },\n {\n \"key\": \"v-ca0d3c6d3b947\",\n \"path\": \"/api/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Title1\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n },\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }\n ]\n },\n {\n \"key\": \"v-4cee7b9659743\",\n \"path\": \"/guide/faq.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"FAQ\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"How to get verbose command-line arguments info?\",\n \"slug\": \"how-to-get-verbose-command-line-arguments-info\"\n },\n {\n \"level\": 2,\n \"title\": \"How to suppress all output info?\",\n \"slug\": \"how-to-suppress-all-output-info\"\n },\n {\n \"level\": 2,\n \"title\": \"How to do if xmake fails?\",\n \"slug\": \"how-to-do-if-xmake-fails\"\n },\n {\n \"level\": 2,\n \"title\": \"How to see verbose compiling warnings?\",\n \"slug\": \"how-to-see-verbose-compiling-warnings\"\n },\n {\n \"level\": 2,\n \"title\": \"How to scan source code and generate xmake.lua automaticlly\",\n \"slug\": \"how-to-scan-source-code-and-generate-xmake-lua-automaticlly\"\n }\n ]\n },\n {\n \"key\": \"v-209fc19462fa6\",\n \"path\": \"/guide/getting-started.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Getting Started\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Installation\",\n \"slug\": \"installation\"\n },\n {\n \"level\": 3,\n \"title\": \"Master\",\n \"slug\": \"master\"\n },\n {\n \"level\": 3,\n \"title\": \"Windows\",\n \"slug\": \"windows\"\n },\n {\n \"level\": 3,\n \"title\": \"MacOS\",\n \"slug\": \"macos\"\n },\n {\n \"level\": 3,\n \"title\": \"Linux\",\n \"slug\": \"linux\"\n },\n {\n \"level\": 3,\n \"title\": \"Compilation\",\n \"slug\": \"compilation\"\n },\n {\n \"level\": 2,\n \"title\": \"Quick Start\",\n \"slug\": \"quick-start\"\n },\n {\n \"level\": 3,\n \"title\": \"Create Project\",\n \"slug\": \"create-project\"\n },\n {\n \"level\": 3,\n \"title\": \"Build Project\",\n \"slug\": \"build-project\"\n },\n {\n \"level\": 3,\n \"title\": \"Run Program\",\n \"slug\": \"run-program\"\n },\n {\n \"level\": 3,\n \"title\": \"Debug Program\",\n \"slug\": \"debug-program\"\n },\n {\n \"level\": 2,\n \"title\": \"Project Examples\",\n \"slug\": \"project-examples\"\n },\n {\n \"level\": 3,\n \"title\": \"Executable Program\",\n \"slug\": \"executable-program\"\n },\n {\n \"level\": 3,\n \"title\": \"Static Library Program\",\n \"slug\": \"static-library-program\"\n },\n {\n \"level\": 3,\n \"title\": \"Share Library Program\",\n \"slug\": \"share-library-program\"\n },\n {\n \"level\": 3,\n \"title\": \"Qt Program\",\n \"slug\": \"qt-program\"\n },\n {\n \"level\": 3,\n \"title\": \"Cuda Program\",\n \"slug\": \"cuda-program\"\n },\n {\n \"level\": 3,\n \"title\": \"WDK Driver Program\",\n \"slug\": \"wdk-driver-program\"\n },\n {\n \"level\": 3,\n \"title\": \"WinSDK Application Program\",\n \"slug\": \"winsdk-application-program\"\n },\n {\n \"level\": 2,\n \"title\": \"Configuration\",\n \"slug\": \"configuration\"\n },\n {\n \"level\": 3,\n \"title\": \"Target Platforms\",\n \"slug\": \"target-platforms\"\n },\n {\n \"level\": 3,\n \"title\": \"Global Configuration\",\n \"slug\": \"global-configuration\"\n },\n {\n \"level\": 3,\n \"title\": \"Clean Configuration\",\n \"slug\": \"clean-configuration\"\n },\n {\n \"level\": 2,\n \"title\": \"Dependency Package Management\",\n \"slug\": \"dependency-package-management\"\n },\n {\n \"level\": 3,\n \"title\": \"Local Package Mode\",\n \"slug\": \"local-package-mode\"\n },\n {\n \"level\": 3,\n \"title\": \"System Search Mode\",\n \"slug\": \"system-search-mode\"\n },\n {\n \"level\": 3,\n \"title\": \"Remote dependency mode\",\n \"slug\": \"remote-dependency-mode\"\n }\n ]\n },\n {\n \"key\": \"v-3ab176aebc1f4\",\n \"path\": \"/guide/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Introduction\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Introduction\",\n \"slug\": \"introduction\"\n }\n ]\n },\n {\n \"key\": \"v-3b936eb8ef4c1\",\n \"path\": \"/guide/sponsors.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Sponsors\"\n },\n {\n \"key\": \"v-ba9eb56bb695a\",\n \"path\": \"/plugin/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Title1\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n },\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }\n ]\n },\n {\n \"key\": \"v-ed7962dcbc27f\",\n \"path\": \"/zh/\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Home\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"简单的工程描述\",\n \"slug\": \"简单的工程描述\"\n },\n {\n \"level\": 2,\n \"title\": \"包依赖描述\",\n \"slug\": \"包依赖描述\"\n },\n {\n \"level\": 2,\n \"title\": \"构建工程\",\n \"slug\": \"构建工程\"\n },\n {\n \"level\": 2,\n \"title\": \"运行目标\",\n \"slug\": \"运行目标\"\n },\n {\n \"level\": 2,\n \"title\": \"调试程序\",\n \"slug\": \"调试程序\"\n },\n {\n \"level\": 2,\n \"title\": \"配置平台\",\n \"slug\": \"配置平台\"\n },\n {\n \"level\": 2,\n \"title\": \"图形化菜单配置\",\n \"slug\": \"图形化菜单配置\"\n },\n {\n \"level\": 2,\n \"title\": \"包依赖管理\",\n \"slug\": \"包依赖管理\"\n },\n {\n \"level\": 2,\n \"title\": \"支持平台\",\n \"slug\": \"支持平台\"\n },\n {\n \"level\": 2,\n \"title\": \"支持语言\",\n \"slug\": \"支持语言\"\n },\n {\n \"level\": 2,\n \"title\": \"工程类型\",\n \"slug\": \"工程类型\"\n },\n {\n \"level\": 2,\n \"title\": \"内置插件\",\n \"slug\": \"内置插件\"\n },\n {\n \"level\": 2,\n \"title\": \"更多插件\",\n \"slug\": \"更多插件\"\n },\n {\n \"level\": 2,\n \"title\": \"IDE和编辑器插件\",\n \"slug\": \"ide和编辑器插件\"\n },\n {\n \"level\": 2,\n \"title\": \"更多例子\",\n \"slug\": \"更多例子\"\n },\n {\n \"level\": 2,\n \"title\": \"项目例子\",\n \"slug\": \"项目例子\"\n },\n {\n \"level\": 2,\n \"title\": \"演示视频\",\n \"slug\": \"演示视频\"\n },\n {\n \"level\": 2,\n \"title\": \"联系方式\",\n \"slug\": \"联系方式\"\n }\n ],\n \"frontmatter\": {\n \"home\": true,\n \"heroImage\": \"/hero.png\",\n \"actionText\": \"快速上手 →\",\n \"actionLink\": \"/zh/guide/getting-started\",\n \"features\": [\n {\n \"title\": \"为什么使用\",\n \"details\": \"让开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得一次编写,随处构建\"\n },\n {\n \"title\": \"强大\",\n \"details\": \"提供大量的实用特性(例如:插件扩展、脚本宏记录、批量打包、自动文档生成等常用插件)\"\n },\n {\n \"title\": \"跨平台\",\n \"details\": \"支持windows, macOS, linux, android, ios\"\n }\n ],\n \"footer\": \"Apache-2.0 Licensed | Copyright © 2015-present tboox.org\"\n }\n },\n {\n \"key\": \"v-540f63bba413e\",\n \"path\": \"/zh/api/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Title1\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n },\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }\n ]\n },\n {\n \"key\": \"v-02760b3923029\",\n \"path\": \"/zh/guide/faq.html\",\n \"lastUpdated\": 1541598789000\n },\n {\n \"key\": \"v-60de9668a20a5\",\n \"path\": \"/zh/guide/getting-started.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"快速开始\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"编译\",\n \"slug\": \"编译\"\n },\n {\n \"level\": 2,\n \"title\": \"例子\",\n \"slug\": \"例子\"\n }\n ]\n },\n {\n \"key\": \"v-0f1def6098c93\",\n \"path\": \"/zh/guide/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"简介\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"特性\",\n \"slug\": \"特性\"\n },\n {\n \"level\": 2,\n \"title\": \"项目例子\",\n \"slug\": \"项目例子\"\n },\n {\n \"level\": 2,\n \"title\": \"联系方式\",\n \"slug\": \"联系方式\"\n }\n ]\n },\n {\n \"key\": \"v-de6097dc9e908\",\n \"path\": \"/zh/guide/sponsors.html\",\n \"lastUpdated\": 1541598789000\n },\n {\n \"key\": \"v-06da4c6c1298e\",\n \"path\": \"/zh/plugin/introduction.html\",\n \"lastUpdated\": 1541598789000,\n \"title\": \"Title1\",\n \"headers\": [\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-2\"\n },\n {\n \"level\": 2,\n \"title\": \"Title2\",\n \"slug\": \"title2-2\"\n },\n {\n \"level\": 3,\n \"title\": \"Title3\",\n \"slug\": \"title3-3\"\n }\n ]\n }\n ],\n \"themeConfig\": {\n \"repo\": \"tboox/xmake\",\n \"docsRepo\": \"tboox/xmake-docs\",\n \"docsDir\": \"src\",\n \"editLinks\": true,\n \"sidebarDepth\": 2,\n \"locales\": {\n \"/\": {\n \"label\": \"English\",\n \"selectText\": \"Languages\",\n \"editLinkText\": \"Edit this page on GitHub\",\n \"lastUpdated\": \"Last Updated\",\n \"nav\": [\n {\n \"text\": \"Guide\",\n \"link\": \"/guide/introduction\"\n },\n {\n \"text\": \"Plugin\",\n \"link\": \"/plugin/introduction\"\n },\n {\n \"text\": \"API\",\n \"link\": \"/api/introduction\"\n },\n {\n \"text\": \"Articles\",\n \"link\": \"http://www.tboox.org/category/#xmake\"\n },\n {\n \"text\": \"Feedback\",\n \"link\": \"https://github.com/tboox/xmake/issues\"\n },\n {\n \"text\": \"Community\",\n \"link\": \"https://www.reddit.com/r/tboox/\"\n },\n {\n \"text\": \"Donation\",\n \"link\": \"http://tboox.org/cn/donation/\"\n }\n ],\n \"sidebar\": {\n \"/guide/\": [\n \"introduction\",\n \"getting-started\",\n \"faq\",\n \"sponsors\"\n ],\n \"/plugin/\": [\n \"introduction\"\n ],\n \"/api/\": [\n \"introduction\"\n ]\n }\n },\n \"/zh/\": {\n \"label\": \"简体中文\",\n \"selectText\": \"选择语言\",\n \"editLinkText\": \"在 GitHub 上编辑此页\",\n \"lastUpdated\": \"上次更新\",\n \"nav\": [\n {\n \"text\": \"指南\",\n \"link\": \"/zh/guide/introduction\"\n },\n {\n \"text\": \"插件\",\n \"link\": \"/zh/plugin/introduction\"\n },\n {\n \"text\": \"接口\",\n \"link\": \"/zh/api/introduction\"\n },\n {\n \"text\": \"文章\",\n \"link\": \"http://www.tboox.org/cn/category/#xmake\"\n },\n {\n \"text\": \"反馈\",\n \"link\": \"https://github.com/tboox/xmake/issues\"\n },\n {\n \"text\": \"社区\",\n \"link\": \"https://www.reddit.com/r/tboox/\"\n },\n {\n \"text\": \"捐助\",\n \"link\": \"http://tboox.org/cn/donation/\"\n }\n ],\n \"sidebar\": {\n \"/zh/guide/\": [\n \"introduction\",\n \"getting-started\",\n \"faq\",\n \"sponsors\"\n ],\n \"/zh/plugin/\": [\n \"introduction\"\n ],\n \"/zh/api/\": [\n \"introduction\"\n ]\n }\n }\n }\n },\n \"locales\": {\n \"/\": {\n \"lang\": \"en-US\",\n \"title\": \"xmake\",\n \"description\": \"A cross-platform build utility based on Lua\"\n },\n \"/zh/\": {\n \"lang\": \"zh-CN\",\n \"title\": \"xmake\",\n \"description\": \"一个基于Lua的轻量级跨平台自动构建工具\"\n }\n }\n}"]}]} \ No newline at end of file
diff --git a/node_modules/vuepress/node_modules/.cache/vuepress/b627beda6c28183f3a59c9d4d3d59e07.json b/node_modules/vuepress/node_modules/.cache/vuepress/b627beda6c28183f3a59c9d4d3d59e07.json
index a0bee299..500a42df 100644
--- a/node_modules/vuepress/node_modules/.cache/vuepress/b627beda6c28183f3a59c9d4d3d59e07.json
+++ b/node_modules/vuepress/node_modules/.cache/vuepress/b627beda6c28183f3a59c9d4d3d59e07.json
@@ -1 +1 @@
-{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js??ref--1-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js??ref--1-2!/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md?vue&type=template&id=d7bc09fe&","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md","mtime":1541598674687},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1541484125571},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js","mtime":1541484125571},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js","mtime":1541484147168}],"contextDependencies":[],"result":["\n<div class=\"content\"><h1 id=\"getting-started\"><a class=\"header-anchor\" href=\"#getting-started\" aria-hidden=\"true\">#</a> Getting Started</h1>\n<h2 id=\"installation\"><a class=\"header-anchor\" href=\"#installation\" aria-hidden=\"true\">#</a> Installation</h2>\n<h4 id=\"master\"><a class=\"header-anchor\" href=\"#master\" aria-hidden=\"true\">#</a> Master</h4>\n<h5 id=\"via-curl\"><a class=\"header-anchor\" href=\"#via-curl\" aria-hidden=\"true\">#</a> via curl</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code><span class=\"token function\">bash</span> <span class=\"token operator\">&lt;</span><span class=\"token punctuation\">(</span>curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh<span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"via-wget\"><a class=\"header-anchor\" href=\"#via-wget\" aria-hidden=\"true\">#</a> via wget</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code><span class=\"token function\">bash</span> <span class=\"token operator\">&lt;</span><span class=\"token punctuation\">(</span>wget https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh -O -<span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"via-powershell\"><a class=\"header-anchor\" href=\"#via-powershell\" aria-hidden=\"true\">#</a> via powershell</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>Invoke-Expression <span class=\"token punctuation\">(</span>Invoke-Webrequest <span class=\"token string\">'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1'</span> -UseBasicParsing<span class=\"token punctuation\">)</span>.Content\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"windows\"><a class=\"header-anchor\" href=\"#windows\" aria-hidden=\"true\">#</a> Windows</h4>\n<ol>\n<li>Download xmake windows installer from <a href=\"https://github.com/tboox/xmake/releases\" target=\"_blank\" rel=\"noopener noreferrer\">Releases<OutboundLink/></a></li>\n<li>Run xmake-[version].exe</li>\n</ol>\n<h4 id=\"macos\"><a class=\"header-anchor\" href=\"#macos\" aria-hidden=\"true\">#</a> MacOS</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ brew <span class=\"token function\">install</span> xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"linux\"><a class=\"header-anchor\" href=\"#linux\" aria-hidden=\"true\">#</a> Linux</h4>\n<p>On Archlinux:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ yaourt xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>On Ubuntu:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">sudo</span> add-apt-repository ppa:tboox/xmake\n$ <span class=\"token function\">sudo</span> apt update\n$ <span class=\"token function\">sudo</span> apt <span class=\"token function\">install</span> xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or add xmake package source manually:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>deb http://ppa.launchpad.net/tboox/xmake/ubuntu yakkety main \ndeb-src http://ppa.launchpad.net/tboox/xmake/ubuntu yakkety main \n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Then we run:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">sudo</span> apt update\n$ <span class=\"token function\">sudo</span> apt <span class=\"token function\">install</span> xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or download deb package to install it:</p>\n<ol>\n<li>Download xmake <code>.deb</code> install package from <a href=\"https://github.com/tboox/xmake/releases\" target=\"_blank\" rel=\"noopener noreferrer\">Releases<OutboundLink/></a></li>\n<li>Run <code>dpkg -i xmake-xxxx.deb</code></li>\n</ol>\n<h4 id=\"compilation\"><a class=\"header-anchor\" href=\"#compilation\" aria-hidden=\"true\">#</a> Compilation</h4>\n<p>Compile and install:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">git</span> clone https://github.com/tboox/xmake.git\n$ <span class=\"token function\">cd</span> ./xmake\n$ ./scripts/get.sh __local__\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Only install and update lua scripts:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ ./scripts/get.sh __local__ __install_only__\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Uninstall:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ ./scripts/get.sh __uninstall__\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or compile and install via make:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">make</span> build<span class=\"token punctuation\">;</span> <span class=\"token function\">sudo</span> <span class=\"token function\">make</span> <span class=\"token function\">install</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Install to other given directory:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">sudo</span> <span class=\"token function\">make</span> <span class=\"token function\">install</span> prefix<span class=\"token operator\">=</span>/usr/local\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Uninstall:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">sudo</span> <span class=\"token function\">make</span> uninstall\n</code></pre>\n<!--beforeend--></div><!--afterend--><h2 id=\"quick-start\"><a class=\"header-anchor\" href=\"#quick-start\" aria-hidden=\"true\">#</a> Quick Start</h2>\n<p><a href=\"https://asciinema.org/a/133693\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://asciinema.org/a/133693.png\" alt=\"asciicast\"><OutboundLink/></a></p>\n<h4 id=\"create-project\"><a class=\"header-anchor\" href=\"#create-project\" aria-hidden=\"true\">#</a> Create Project</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake create -l c -P ./hello\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>And xmake will generate some files for c language project:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>hello\n├── src\n│ └── main.c\n└── xmake.lua\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>It is a simple console program only for printing <code>hello xmake!</code></p>\n<p>The content of <code>xmake.lua</code> is very simple:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"hello\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.c\"</span><span class=\"token punctuation\">)</span> \n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Support languages:</p>\n<ul>\n<li>c/c++</li>\n<li>objc/c++</li>\n<li>asm</li>\n<li>swift</li>\n<li>dlang</li>\n<li>golang</li>\n<li>rust</li>\n</ul>\n<p class=\"tip\">\n If you want to known more options, please run: `xmake create --help`\n</p>\n<h4 id=\"build-project\"><a class=\"header-anchor\" href=\"#build-project\" aria-hidden=\"true\">#</a> Build Project</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"run-program\"><a class=\"header-anchor\" href=\"#run-program\" aria-hidden=\"true\">#</a> Run Program</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake run hello\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"debug-program\"><a class=\"header-anchor\" href=\"#debug-program\" aria-hidden=\"true\">#</a> Debug Program</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake run -d hello \n</code></pre>\n<!--beforeend--></div><!--afterend--><p>It will start the debugger (.e.g lldb, gdb, windbg, vsjitdebugger, ollydbg ..) to load our program.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code><span class=\"token punctuation\">[</span>lldb<span class=\"token punctuation\">]</span><span class=\"token variable\">$target</span> create <span class=\"token string\">\"build/hello\"</span>\nCurrent executable <span class=\"token keyword\">set</span> to <span class=\"token string\">'build/hello'</span> <span class=\"token punctuation\">(</span>x86_64<span class=\"token punctuation\">)</span>.\n<span class=\"token punctuation\">[</span>lldb<span class=\"token punctuation\">]</span><span class=\"token variable\">$b</span> main\nBreakpoint 1: where <span class=\"token operator\">=</span> hello<span class=\"token variable\"><span class=\"token variable\">`</span>main, address <span class=\"token operator\">=</span> 0x0000000100000f50\n<span class=\"token punctuation\">[</span>lldb<span class=\"token punctuation\">]</span>$r\nProcess 7509 launched: <span class=\"token string\">'/private/tmp/hello/build/hello'</span> <span class=\"token punctuation\">(</span>x86_64<span class=\"token punctuation\">)</span>\nProcess 7509 stopped\n* thread #1: tid <span class=\"token operator\">=</span> 0x435a2, 0x0000000100000f50 hello<span class=\"token variable\">`</span></span>main, queue <span class=\"token operator\">=</span> <span class=\"token string\">'com.apple.main-thread'</span>, stop reason <span class=\"token operator\">=</span> breakpoint 1.1\n frame <span class=\"token comment\">#0: 0x0000000100000f50 hello`main</span>\nhello`main:\n-<span class=\"token operator\">></span> 0x100000f50 <span class=\"token operator\">&lt;</span>+0<span class=\"token operator\">></span>: pushq %rbp\n 0x100000f51 <span class=\"token operator\">&lt;</span>+1<span class=\"token operator\">></span>: movq %rsp, %rbp\n 0x100000f54 <span class=\"token operator\">&lt;</span>+4<span class=\"token operator\">></span>: leaq 0x2b<span class=\"token punctuation\">(</span>%rip<span class=\"token punctuation\">)</span>, %rdi <span class=\"token punctuation\">;</span> <span class=\"token string\">\"hello world!\"</span>\n 0x100000f5b <span class=\"token operator\">&lt;</span>+11<span class=\"token operator\">></span>: callq 0x100000f64 <span class=\"token punctuation\">;</span> symbol stub for: puts\n<span class=\"token punctuation\">[</span>lldb<span class=\"token punctuation\">]</span>$\n</code></pre>\n<!--beforeend--></div><!--afterend--><p class=\"tip\">\n You can also use short command option, for exmaple: `xmake r` or `xmake run`\n</p>\n<h2 id=\"project-examples\"><a class=\"header-anchor\" href=\"#project-examples\" aria-hidden=\"true\">#</a> Project Examples</h2>\n<h4 id=\"executable-program\"><a class=\"header-anchor\" href=\"#executable-program\" aria-hidden=\"true\">#</a> Executable Program</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*c\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"static-library-program\"><a class=\"header-anchor\" href=\"#static-library-program\" aria-hidden=\"true\">#</a> Static Library Program</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"library\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"static\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/library/*.c\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*c\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_deps</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"library\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>We use <code>add_deps</code> to link a static library to test target.</p>\n<h4 id=\"share-library-program\"><a class=\"header-anchor\" href=\"#share-library-program\" aria-hidden=\"true\">#</a> Share Library Program</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"library\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"shared\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/library/*.c\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*c\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_deps</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"library\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>We use <code>add_deps</code> to link a share library to test target.</p>\n<h4 id=\"qt-program\"><a class=\"header-anchor\" href=\"#qt-program\" aria-hidden=\"true\">#</a> Qt Program</h4>\n<p>Create an empty project:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake create -l c++ -t console_qt <span class=\"token function\">test</span>\n$ xmake create -l c++ -t static_qt <span class=\"token function\">test</span>\n$ xmake create -l c++ -t shared_qt <span class=\"token function\">test</span>\n$ xmake create -l c++ -t quickapp_qt <span class=\"token function\">test</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>xmake will detect Qt SDK automatically and we can also set the SDK directory manually.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f --qt<span class=\"token operator\">=</span>~/Qt/Qt5.9.1\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to use the MinGW Qt environment on windows, you can set the MinGW platform configuration and specify the SDK path for the MinGW compilation environment, for example:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p mingw --sdk<span class=\"token operator\">=</span>C:\\Qt\\Qt5.10.1\\Tools\\mingw530_32 \n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to known more information, you can see <a href=\"https://github.com/tboox/xmake/issues/160\" target=\"_blank\" rel=\"noopener noreferrer\">#160<OutboundLink/></a>.</p>\n<h5 id=\"static-library\"><a class=\"header-anchor\" href=\"#static-library\" aria-hidden=\"true\">#</a> Static Library</h5>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt_static_library\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt.static\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cpp\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_frameworks</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"QtNetwork\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"QtGui\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"shared-library\"><a class=\"header-anchor\" href=\"#shared-library\" aria-hidden=\"true\">#</a> Shared Library</h5>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt_shared_library\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt.shared\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cpp\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_frameworks</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"QtNetwork\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"QtGui\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"console-program\"><a class=\"header-anchor\" href=\"#console-program\" aria-hidden=\"true\">#</a> Console Program</h5>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt_console\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt.console\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cpp\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"quick-application\"><a class=\"header-anchor\" href=\"#quick-application\" aria-hidden=\"true\">#</a> Quick Application</h5>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt_quickapp\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt.application\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cpp\"</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/qml.qrc\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_frameworks</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"QtQuick\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"widgets-application\"><a class=\"header-anchor\" href=\"#widgets-application\" aria-hidden=\"true\">#</a> Widgets Application</h5>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt_widgetapp\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt.application\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cpp\"</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/mainwindow.ui\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/mainwindow.h\"</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">-- add files with Q_OBJECT meta (only for qt.moc)</span>\n <span class=\"token function\">add_frameworks</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"QtWidgets\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"cuda-program\"><a class=\"header-anchor\" href=\"#cuda-program\" aria-hidden=\"true\">#</a> Cuda Program</h4>\n<p>Create an empty project:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake create -P <span class=\"token function\">test</span> -l cuda\n$ <span class=\"token function\">cd</span> <span class=\"token function\">test</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"cuda_console\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cu\"</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token comment\">-- generate SASS code for each SM architecture</span>\n <span class=\"token keyword\">for</span> _<span class=\"token punctuation\">,</span> sm <span class=\"token keyword\">in</span> <span class=\"token function\">ipairs</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span><span class=\"token string\">\"30\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"35\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"37\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"50\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"52\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"60\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"61\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"70\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">do</span>\n <span class=\"token function\">add_cuflags</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"-gencode arch=compute_\"</span> <span class=\"token operator\">..</span> sm <span class=\"token operator\">..</span> <span class=\"token string\">\",code=sm_\"</span> <span class=\"token operator\">..</span> sm<span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_ldflags</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"-gencode arch=compute_\"</span> <span class=\"token operator\">..</span> sm <span class=\"token operator\">..</span> <span class=\"token string\">\",code=sm_\"</span> <span class=\"token operator\">..</span> sm<span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span>\n\n <span class=\"token comment\">-- generate PTX code from the highest SM architecture to guarantee forward-compatibility</span>\n sm <span class=\"token operator\">=</span> <span class=\"token string\">\"70\"</span>\n <span class=\"token function\">add_cuflags</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"-gencode arch=compute_\"</span> <span class=\"token operator\">..</span> sm <span class=\"token operator\">..</span> <span class=\"token string\">\",code=compute_\"</span> <span class=\"token operator\">..</span> sm<span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_ldflags</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"-gencode arch=compute_\"</span> <span class=\"token operator\">..</span> sm <span class=\"token operator\">..</span> <span class=\"token string\">\",code=compute_\"</span> <span class=\"token operator\">..</span> sm<span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>xmake will detect Cuda SDK automatically and we can also set the SDK directory manually.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f --cuda<span class=\"token operator\">=</span>/usr/local/cuda-9.1/ \n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to known more information, you can see <a href=\"https://github.com/tboox/xmake/issues/158\" target=\"_blank\" rel=\"noopener noreferrer\">#158<OutboundLink/></a>.</p>\n<h4 id=\"wdk-driver-program\"><a class=\"header-anchor\" href=\"#wdk-driver-program\" aria-hidden=\"true\">#</a> WDK Driver Program</h4>\n<p>xmake will detect WDK automatically and we can also set the WDK directory manually.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f --wdk<span class=\"token operator\">=</span><span class=\"token string\">\"G:\\Program Files\\Windows Kits\\10\"</span> -c\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to known more information, you can see <a href=\"https://github.com/tboox/xmake/issues/159\" target=\"_blank\" rel=\"noopener noreferrer\">#159<OutboundLink/></a>.</p>\n<h5 id=\"umdf-driver-program\"><a class=\"header-anchor\" href=\"#umdf-driver-program\" aria-hidden=\"true\">#</a> UMDF Driver Program</h5>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"echo\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.umdf\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"driver/*.c\"</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"driver/*.inx\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_includedirs</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"exe\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"app\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.binary\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.umdf\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"exe/*.cpp\"</span><span class=\"token punctuation\">)</span> \n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"kmdf-driver-program\"><a class=\"header-anchor\" href=\"#kmdf-driver-program\" aria-hidden=\"true\">#</a> KMDF Driver Program</h5>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"nonpnp\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.kmdf\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.tracewpp.flags\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"-func:TraceEvents(LEVEL,FLAGS,MSG,...)\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"-func:Hexdump((LEVEL,FLAGS,MSG,...))\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"driver/*.c\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>rule <span class=\"token operator\">=</span> <span class=\"token string\">\"wdk.tracewpp\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"driver/*.rc\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"app\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.binary\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.kmdf\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"exe/*.c\"</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"exe/*.inf\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"wdm-driver-program\"><a class=\"header-anchor\" href=\"#wdm-driver-program\" aria-hidden=\"true\">#</a> WDM Driver Program</h5>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"kcs\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.man.flags\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"-prefix Kcs\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.man.resource\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"kcsCounters.rc\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.man.header\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"kcsCounters.h\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.man.counter_header\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"kcsCounters_counters.h\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.c\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"*.rc\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"*.man\"</span><span class=\"token punctuation\">)</span> \n</code></pre>\n<!--beforeend--></div><!--afterend--><!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.tracewpp.flags\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"-func:TracePrint((LEVEL,FLAGS,MSG,...))\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.c\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>rule <span class=\"token operator\">=</span> <span class=\"token string\">\"wdk.tracewpp\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.rc\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"*.inf\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.mof|msdsm.mof\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm.mof\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>values <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>wdk_mof_header <span class=\"token operator\">=</span> <span class=\"token string\">\"msdsmwmi.h\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> \n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"package-driver\"><a class=\"header-anchor\" href=\"#package-driver\" aria-hidden=\"true\">#</a> Package Driver</h5>\n<p>We can run the following command to generate a .cab driver package.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake <span class=\"token punctuation\">[</span>p<span class=\"token operator\">|</span>package<span class=\"token punctuation\">]</span>\n$ xmake <span class=\"token punctuation\">[</span>p<span class=\"token operator\">|</span>package<span class=\"token punctuation\">]</span> -o outputdir\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The output files like:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code> - drivers\n - sampledsm\n - debug/x86/sampledsm.cab\n - release/x64/sampledsm.cab\n - debug/x86/sampledsm.cab\n - release/x64/sampledsm.cab\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"driver-signing\"><a class=\"header-anchor\" href=\"#driver-signing\" aria-hidden=\"true\">#</a> Driver Signing</h5>\n<p>The driver signing is disabled when we compile driver in default case,\nbut we can add <code>set_values(&quot;wdk.sign.mode&quot;)</code> to enable test/release sign.</p>\n<h6 id=\"testsign\"><a class=\"header-anchor\" href=\"#testsign\" aria-hidden=\"true\">#</a> TestSign</h6>\n<p>We can use test certificate of xmake to do testsign, but please run <code>$xmake l utils.wdk.testcert</code> install as admin to install a test certificate first (only once)!</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.mode\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or we set a valid certificate thumbprint to do it in local machine.</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.mode\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.thumbprint\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"032122545DCAA6167B1ADBE5F7FDF07AE2234AAA\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>We can also do testsign via setting store/company info.</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.mode\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.store\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"PrivateCertStore\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.company\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"tboox.org(test)\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h6 id=\"releasesign\"><a class=\"header-anchor\" href=\"#releasesign\" aria-hidden=\"true\">#</a> ReleaseSign</h6>\n<p>We can set a certificate file for release signing.</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.mode\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"release\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.company\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"xxxx\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.certfile\"</span><span class=\"token punctuation\">,</span> path<span class=\"token punctuation\">.</span><span class=\"token function\">join</span><span class=\"token punctuation\">(</span>os<span class=\"token punctuation\">.</span><span class=\"token function\">projectdir</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"xxxx.cer\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"support-low-version-system\"><a class=\"header-anchor\" href=\"#support-low-version-system\" aria-hidden=\"true\">#</a> Support Low-version System</h5>\n<p>We can set <code>wdk.env.winver</code> to generate a driver package that is compatible with a low version system.</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win10\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win10_rs3\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win81\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win8\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win7\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win7_sp1\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win7_sp2\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win7_sp3\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>We can also set windows version for WDK driver program:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f --wdk_winver<span class=\"token operator\">=</span><span class=\"token punctuation\">[</span>win10_rs3<span class=\"token operator\">|</span>win8<span class=\"token operator\">|</span>win7<span class=\"token operator\">|</span>win7_sp1<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"winsdk-application-program\"><a class=\"header-anchor\" href=\"#winsdk-application-program\" aria-hidden=\"true\">#</a> WinSDK Application Program</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"usbview\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"win.sdk.application\"</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.c\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"*.rc\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"xmlhelper.cpp\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>rule <span class=\"token operator\">=</span> <span class=\"token string\">\"win.sdk.dotnet\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to known more information, you can see <a href=\"https://github.com/tboox/xmake/issues/173\" target=\"_blank\" rel=\"noopener noreferrer\">#173<OutboundLink/></a>.</p>\n<h2 id=\"configuration\"><a class=\"header-anchor\" href=\"#configuration\" aria-hidden=\"true\">#</a> Configuration</h2>\n<p>Set compilation configuration before building project with command <code>xmake f|config</code>.</p>\n<p>And if you want to known more options, please run: <code>xmake f --help</code>。</p>\n<p class=\"tip\">\n You can use short or long command option, for exmaple: <br>\n `xmake f` or `xmake config`.<br>\n `xmake f -p linux` or `xmake config --plat=linux`.\n</p>\n<h4 id=\"target-platforms\"><a class=\"header-anchor\" href=\"#target-platforms\" aria-hidden=\"true\">#</a> Target Platforms</h4>\n<h5 id=\"current-host\"><a class=\"header-anchor\" href=\"#current-host\" aria-hidden=\"true\">#</a> Current Host</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p class=\"tip\">\n XMake will detect the current host platform automatically and build project.\n</p>\n<h5 id=\"linux-2\"><a class=\"header-anchor\" href=\"#linux-2\" aria-hidden=\"true\">#</a> Linux</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux <span class=\"token punctuation\">[</span>-a i386<span class=\"token operator\">|</span>x86_64<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"android\"><a class=\"header-anchor\" href=\"#android\" aria-hidden=\"true\">#</a> Android</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p android --ndk<span class=\"token operator\">=</span>~/files/android-ndk-r10e/ <span class=\"token punctuation\">[</span>-a armv5te<span class=\"token operator\">|</span>armv6<span class=\"token operator\">|</span>armv7-a<span class=\"token operator\">|</span>armv8-a<span class=\"token operator\">|</span>arm64-v8a<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to set the other android toolchains, you can use <a href=\"#-bin\">--bin</a> option.</p>\n<p>For example:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p android --ndk<span class=\"token operator\">=</span>~/files/android-ndk-r10e/ -a arm64-v8a --bin<span class=\"token operator\">=</span>~/files/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The <a href=\"#-bin\">--bin</a> option is used to set <code>bin</code> directory of toolchains.</p>\n<p class=\"tip\">\nPlease attempt to set `--arch=` option if it had failed to check compiler.\n</p>\n<h5 id=\"iphoneos\"><a class=\"header-anchor\" href=\"#iphoneos\" aria-hidden=\"true\">#</a> iPhoneOS</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p iphoneos <span class=\"token punctuation\">[</span>-a armv7<span class=\"token operator\">|</span>armv7s<span class=\"token operator\">|</span>arm64<span class=\"token operator\">|</span>i386<span class=\"token operator\">|</span>x86_64<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"windows-2\"><a class=\"header-anchor\" href=\"#windows-2\" aria-hidden=\"true\">#</a> Windows</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p windows <span class=\"token punctuation\">[</span>-a x86<span class=\"token operator\">|</span>x64<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"mingw\"><a class=\"header-anchor\" href=\"#mingw\" aria-hidden=\"true\">#</a> Mingw</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p mingw --sdk<span class=\"token operator\">=</span>/usr/local/i386-mingw32-4.3.0/ <span class=\"token punctuation\">[</span>-a i386<span class=\"token operator\">|</span>x86_64<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"apple-watchos\"><a class=\"header-anchor\" href=\"#apple-watchos\" aria-hidden=\"true\">#</a> Apple WatchOS</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p watchos <span class=\"token punctuation\">[</span>-a i386<span class=\"token operator\">|</span>armv7k<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"cross-compilation\"><a class=\"header-anchor\" href=\"#cross-compilation\" aria-hidden=\"true\">#</a> Cross Compilation</h5>\n<p>For linux platform:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/usr/local/arm-linux-gcc/ <span class=\"token punctuation\">[</span>--bin<span class=\"token operator\">=</span>/sdk/bin<span class=\"token punctuation\">]</span> <span class=\"token punctuation\">[</span>--cross<span class=\"token operator\">=</span>arm-linux-<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Fro other cross platform:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p cross --sdk<span class=\"token operator\">=</span>/usr/local/arm-xxx-gcc/ <span class=\"token punctuation\">[</span>--bin<span class=\"token operator\">=</span>/sdk/bin<span class=\"token punctuation\">]</span> <span class=\"token punctuation\">[</span>--cross<span class=\"token operator\">=</span>arm-linux-<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>For custem cross platform (<code>is_plat(&quot;myplat&quot;)</code>):</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p myplat --sdk<span class=\"token operator\">=</span>/usr/local/arm-xxx-gcc/ <span class=\"token punctuation\">[</span>--bin<span class=\"token operator\">=</span>/sdk/bin<span class=\"token punctuation\">]</span> <span class=\"token punctuation\">[</span>--cross<span class=\"token operator\">=</span>arm-linux-<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><table>\n<thead>\n<tr>\n<th>Configuration Option</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"#-sdk\">--sdk</a></td>\n<td>Set the sdk root directory of toolchains</td>\n</tr>\n<tr>\n<td><a href=\"#-bin\">--bin</a></td>\n<td>Set the <code>bin</code> directory of toolchains</td>\n</tr>\n<tr>\n<td><a href=\"#-cross\">--cross</a></td>\n<td>Set the prefix of compilation tools</td>\n</tr>\n<tr>\n<td><a href=\"#-as\">--as</a></td>\n<td>Set <code>asm</code> assembler</td>\n</tr>\n<tr>\n<td><a href=\"#-cc\">--cc</a></td>\n<td>Set <code>c</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-cxx\">--cxx</a></td>\n<td>Set <code>c++</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-mm\">--mm</a></td>\n<td>Set <code>objc</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-mxx\">--mxx</a></td>\n<td>Set <code>objc++</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-sc\">--sc</a></td>\n<td>Set <code>swift</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-gc\">--gc</a></td>\n<td>Set <code>golang</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-dc\">--dc</a></td>\n<td>Set <code>dlang</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-rc\">--rc</a></td>\n<td>Set <code>rust</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-cu\">--cu</a></td>\n<td>Set <code>cuda</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-ld\">--ld</a></td>\n<td>Set <code>c/c++/objc/asm</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-sh\">--sh</a></td>\n<td>Set <code>c/c++/objc/asm</code> shared library linker</td>\n</tr>\n<tr>\n<td><a href=\"#-ar\">--ar</a></td>\n<td>Set <code>c/c++/objc/asm</code> static library archiver</td>\n</tr>\n<tr>\n<td><a href=\"#-sc-ld\">--sc-ld</a></td>\n<td>Set <code>swift</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-sc-sh\">--sc-sh</a></td>\n<td>Set <code>swift</code> shared library linker</td>\n</tr>\n<tr>\n<td><a href=\"#-gc-ld\">--gc-ld</a></td>\n<td>Set <code>golang</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-gc-ar\">--gc-ar</a></td>\n<td>Set <code>golang</code> static library archiver</td>\n</tr>\n<tr>\n<td><a href=\"#-dc-ld\">--dc-ld</a></td>\n<td>Set <code>dlang</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-dc-sh\">--dc-sh</a></td>\n<td>Set <code>dlang</code> shared library linker</td>\n</tr>\n<tr>\n<td><a href=\"#-dc-ar\">--dc-ar</a></td>\n<td>Set <code>dlang</code> static library archiver</td>\n</tr>\n<tr>\n<td><a href=\"#-rc-ld\">--rc-ld</a></td>\n<td>Set <code>rust</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-rc-sh\">--rc-sh</a></td>\n<td>Set <code>rust</code> shared library linker</td>\n</tr>\n<tr>\n<td><a href=\"#-rc-ar\">--rc-ar</a></td>\n<td>Set <code>rust</code> static library archiver</td>\n</tr>\n<tr>\n<td><a href=\"#-cu-ld\">--cu-ld</a></td>\n<td>Set <code>cuda</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-cu-sh\">--cu-sh</a></td>\n<td>Set <code>cuda</code> shared library linker</td>\n</tr>\n<tr>\n<td><a href=\"#-cu-ar\">--cu-ar</a></td>\n<td>Set <code>cuda</code> static library archiver</td>\n</tr>\n<tr>\n<td><a href=\"#-asflags\">--asflags</a></td>\n<td>Set <code>asm</code> assembler option</td>\n</tr>\n<tr>\n<td><a href=\"#-cflags\">--cflags</a></td>\n<td>Set <code>c</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-cxflags\">--cxflags</a></td>\n<td>Set <code>c/c++</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-cxxflags\">--cxxflags</a></td>\n<td>Set <code>c++</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-mflags\">--mflags</a></td>\n<td>Set <code>objc</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-mxflags\">--mxflags</a></td>\n<td>Set <code>objc/c++</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-mxxflags\">--mxxflags</a></td>\n<td>Set <code>objc++</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-scflags\">--scflags</a></td>\n<td>Set <code>swift</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-gcflags\">--gcflags</a></td>\n<td>Set <code>golang</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-dcflags\">--dcflags</a></td>\n<td>Set <code>dlang</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-rcflags\">--rcflags</a></td>\n<td>Set <code>rust</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-cuflags\">--cuflags</a></td>\n<td>Set <code>cuda</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-ldflags\">--ldflags</a></td>\n<td>Set linker option</td>\n</tr>\n<tr>\n<td><a href=\"#-shflags\">--shflags</a></td>\n<td>Set shared library linker option</td>\n</tr>\n<tr>\n<td><a href=\"#-arflags\">--arflags</a></td>\n<td>Set static library archiver option</td>\n</tr>\n</tbody>\n</table>\n<p class=\"tip\">\nif you want to known more options, please run: `xmake f --help`。\n</p>\n<h6 id=\"sdk\"><a class=\"header-anchor\" href=\"#sdk\" aria-hidden=\"true\">#</a> --sdk</h6>\n<ul>\n<li>Set the sdk root directory of toolchains</li>\n</ul>\n<p>xmake provides a convenient and flexible cross-compiling support.\nIn most cases, we need not to configure complex toolchains prefix, for example: <code>arm-linux-</code></p>\n<p>As long as this toolchains meet the following directory structure:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>/home/toolchains_sdkdir\n - bin\n - arm-linux-gcc\n - arm-linux-ld\n - ...\n - lib\n - libxxx.a\n - include\n - xxx.h\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Then,we can only configure the sdk directory and build it.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/home/toolchains_sdkdir\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>xmake will detect the prefix: arm-linux- and add the include and library search directory automatically.</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>-I/home/toolchains_sdkdir/include -L/home/toolchains_sdkdir/lib\n</code></pre>\n<!--beforeend--></div><!--afterend--><h6 id=\"bin\"><a class=\"header-anchor\" href=\"#bin\" aria-hidden=\"true\">#</a> --bin</h6>\n<ul>\n<li>Set the <code>bin</code> directory of toolchains</li>\n</ul>\n<p>We need set it manually if the toolchains /bin directory is in other places, for example:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/home/toolchains_sdkdir --bin<span class=\"token operator\">=</span>/usr/opt/bin\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p class=\"tips\">\nBefore v2.2.1 version, this parameter name is `--toolchains`, exists more ambiguous, so we changed to `--bin=` to set the bin directory.\n</p>\n<h6 id=\"cross\"><a class=\"header-anchor\" href=\"#cross\" aria-hidden=\"true\">#</a> --cross</h6>\n<ul>\n<li>Set the prefix of compilation tools</li>\n</ul>\n<p>For example, under the same toolchains directory at the same time, there are two different compilers:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>/opt/bin\n - armv7-linux-gcc\n - aarch64-linux-gcc\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If we want to use the <code>armv7-linux-gcc</code> compiler, we can run the following command:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/usr/toolsdk --bin<span class=\"token operator\">=</span>/opt/bin --cross<span class=\"token operator\">=</span>armv7-linux-\n</code></pre>\n<!--beforeend--></div><!--afterend--><h6 id=\"as\"><a class=\"header-anchor\" href=\"#as\" aria-hidden=\"true\">#</a> --as</h6>\n<ul>\n<li>Set <code>asm</code> assembler</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --as<span class=\"token operator\">=</span>armv7-linux-as\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'AS' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --as=gcc@/home/xxx/asmips.exe` \n</p>\n<h6 id=\"cc\"><a class=\"header-anchor\" href=\"#cc\" aria-hidden=\"true\">#</a> --cc</h6>\n<ul>\n<li>Set c compiler</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --cc<span class=\"token operator\">=</span>armv7-linux-clang\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'CC' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --cc=gcc@/home/xxx/ccmips.exe` \n</p>\n<h6 id=\"cxx\"><a class=\"header-anchor\" href=\"#cxx\" aria-hidden=\"true\">#</a> --cxx</h6>\n<ul>\n<li>Set <code>c++</code> compiler</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --cxx<span class=\"token operator\">=</span>armv7-linux-clang++\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'CXX' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --cxx=g++@/home/xxx/c++mips.exe` \n</p>\n<h6 id=\"ld\"><a class=\"header-anchor\" href=\"#ld\" aria-hidden=\"true\">#</a> --ld</h6>\n<ul>\n<li>Set <code>c/c++/objc/asm</code> linker</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --ld<span class=\"token operator\">=</span>armv7-linux-clang++\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'LD' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-gcc/clang linker, .e.g `xmake f --ld=g++@/home/xxx/c++mips.exe` \n</p>\n<h6 id=\"sh\"><a class=\"header-anchor\" href=\"#sh\" aria-hidden=\"true\">#</a> --sh</h6>\n<ul>\n<li>Set <code>c/c++/objc/asm</code> shared library linker</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --sh<span class=\"token operator\">=</span>armv7-linux-clang++\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'SH' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-gcc/clang linker, .e.g `xmake f --sh=g++@/home/xxx/c++mips.exe` \n</p>\n<h6 id=\"ar\"><a class=\"header-anchor\" href=\"#ar\" aria-hidden=\"true\">#</a> --ar</h6>\n<ul>\n<li>Set <code>c/c++/objc/asm</code> static library archiver</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --ar<span class=\"token operator\">=</span>armv7-linux-ar\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'AR' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-ar archiver, .e.g `xmake f --ar=ar@/home/xxx/armips.exe` \n</p>\n<h4 id=\"global-configuration\"><a class=\"header-anchor\" href=\"#global-configuration\" aria-hidden=\"true\">#</a> Global Configuration</h4>\n<p>You can save to the global configuration for simplfying operation.</p>\n<p>For example:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake g --ndk<span class=\"token operator\">=</span>~/files/android-ndk-r10e/\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Now, we config and build project for android again.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p android\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p class=\"tip\">\n You can use short or long command option, for exmaple: `xmake g` or `xmake global`.<br>\n</p>\n<h4 id=\"clean-configuration\"><a class=\"header-anchor\" href=\"#clean-configuration\" aria-hidden=\"true\">#</a> Clean Configuration</h4>\n<p>We can clean all cached configuration and re-configure projecct.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -c\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>or</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p iphoneos -c\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h2 id=\"dependency-package-management\"><a class=\"header-anchor\" href=\"#dependency-package-management\" aria-hidden=\"true\">#</a> Dependency Package Management</h2>\n<h4 id=\"local-package-mode\"><a class=\"header-anchor\" href=\"#local-package-mode\" aria-hidden=\"true\">#</a> Local Package Mode</h4>\n<p>By including a dependency package directory and a binary package file in the project, it is convenient to integrate some third-party dependency libraries. This method is relatively simple and straightforward, but the disadvantages are also obvious and inconvenient to manage.</p>\n<p>Take the tbox project as an example. The dependency package is as follows:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>- base.pkg\n- zlib.pkg\n- polarssl.pkg\n- openssl.pkg\n- mysql.pkg\n- pcre.pkg\n- ...\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want the current project to recognize loading these packages, you first need to specify the package directory path, for example:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_packagedirs</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"packages\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Once specified, you can add integration package dependencies in the target scope via the <a href=\"https://xmake.io/#/zh/manual?id=targetadd_packages\" target=\"_blank\" rel=\"noopener noreferrer\">add_packages<OutboundLink/></a> interface, for example:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_packages</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"polarssl\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"pcre\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"mysql\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>So how to generate a *.pkg package, if it is based on xmake project, the generation method is very simple, only need:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">cd</span> tbox\n$ xmake package\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>You can generate a tbox.pkg cross-platform package in the build directory for use by third-party projects. I can also directly set the output directory and compile and generate it into the other project, for example:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">cd</span> tbox\n$ xmake package -o <span class=\"token punctuation\">..</span>/test/packages\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>In this way, the test project can pass <a href=\"https://xmake.io/#/zh/manual?id=targetadd_packages\" target=\"_blank\" rel=\"noopener noreferrer\">add_packages<OutboundLink/></a> and [add_packagedirs](https://xmake.io/#/zh/manual?id= add_packagedirs) to configure and use the tbox.pkg package.</p>\n<p>For a detailed description of the built-in package, you can also refer to the following related article, which is described in detail: [Dependency package addition and automatic detection mechanism] (http://tboox.org/cn/2016/08/06/add-package -and-autocheck/)</p>\n<h4 id=\"system-search-mode\"><a class=\"header-anchor\" href=\"#system-search-mode\" aria-hidden=\"true\">#</a> System Search Mode</h4>\n<p>If you feel that the above built-in package management method is very inconvenient, you can use the extension interface [lib.detect.find_package] provided by xmake (https://xmake.io/#/zh/manual?id=detect-find_package) to find the system. Existing dependencies.</p>\n<p>Currently this interface supports the following package management support:</p>\n<ul>\n<li>vcpkg</li>\n<li>homebrew</li>\n<li>pkg-config</li>\n</ul>\n<p>And through the system and third-party package management tools for the installation of the dependency package, and then integrated with xmake, for example, we look for an openssl package:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"lib.detect.find_package\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">local</span> package <span class=\"token operator\">=</span> <span class=\"token function\">find_package</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"openssl\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The returned results are as follows:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token punctuation\">{</span>links <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token string\">\"ssl\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"crypto\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"z\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> linkdirs <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token string\">\"/usr/local/lib\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> includedirs <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token string\">\"/usr/local/include\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the search is successful, return a table containing all the package information, if it fails, return nil</p>\n<p>The return result here can be directly passed as the parameter of <code>target:add</code>, <code>option:add</code>, which is used to dynamically increase the configuration of <code>target/option</code>:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">option</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_showmenu</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">true</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">before_check</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span>option<span class=\"token punctuation\">)</span>\n <span class=\"token function\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"lib.detect.find_package\"</span><span class=\"token punctuation\">)</span>\n option<span class=\"token punctuation\">:</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token function\">find_package</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">on_load</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span>target<span class=\"token punctuation\">)</span>\n <span class=\"token function\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"lib.detect.find_package\"</span><span class=\"token punctuation\">)</span>\n target<span class=\"token punctuation\">:</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token function\">find_package</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If third-party tools such as <code>homebrew</code>, <code>pkg-config</code> are installed on the system, then this interface will try to use them to improve the search results.</p>\n<p>For a more complete description of the usage, please refer to the <a href=\"https://xmake.io/#/en/manual?id=detect-find_package\" target=\"_blank\" rel=\"noopener noreferrer\">lib.detect.find_package<OutboundLink/></a> interface documentation.</p>\n<h5 id=\"homebrew-integration-support\"><a class=\"header-anchor\" href=\"#homebrew-integration-support\" aria-hidden=\"true\">#</a> Homebrew Integration Support</h5>\n<p>Since homebrew is generally installed directly into the system, users do not need to do any integration work, <code>lib.detect.find_package</code> has been natively seamlessly supported.</p>\n<h5 id=\"vcpkg-integration-support\"><a class=\"header-anchor\" href=\"#vcpkg-integration-support\" aria-hidden=\"true\">#</a> Vcpkg Integration Support</h5>\n<p>Currently xmake v2.2.2 version already supports vcpkg, users only need to install vcpkg, execute <code>$ vcpkg integrate install</code>, xmake will automatically detect the root path of vcpkg from the system, and then automatically adapt the bread.</p>\n<p>Of course, we can also manually specify the root path of vcpkg to support:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f --vcpkg<span class=\"token operator\">=</span>f:\\vcpkg\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or we can set it to the global configuration to avoid repeating the settings each time we switch configurations:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake g --vcpkg<span class=\"token operator\">=</span>f:\\vcpkg\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"remote-dependency-mode\"><a class=\"header-anchor\" href=\"#remote-dependency-mode\" aria-hidden=\"true\">#</a> Remote dependency mode</h4>\n<p>This has been initially supported after the 2.2.2 version, the usage is much simpler, just set the corresponding dependency package, for example:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox 1.6.*\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"libpng ~1.16\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.c\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_packages</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"libpng\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The above <code>add_requires</code> is used to describe the dependencies required by the current project, and <code>add_packages</code> is used to apply dependencies to the test target. Only settings will automatically add links, linkdirs, includedirs, etc.</p>\n<p>Then directly compile:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>xmake will remotely pull the relevant source package, then automatically compile and install, finally compile the project, and link the dependency package. The specific effect is shown in the following figure:</p>\n<img src=\"/assets/img/index/package_manage.png\" width=\"80%\" />\n<p>For more information and progress on package dependency management see the related issues: [Remote package management] (https://github.com/tboox/xmake/issues/69)</p>\n<h5 id=\"currently-supported-features\"><a class=\"header-anchor\" href=\"#currently-supported-features\" aria-hidden=\"true\">#</a> Currently Supported Features</h5>\n<ul>\n<li>Semantic version support, for example: &quot;&gt;= 1.1.0 &lt; 1.2&quot;, &quot;~1.6&quot;, &quot;1.2.x&quot;, &quot;1.*&quot;</li>\n<li>Provide multi-warehouse management support such as official package warehouse, self-built private warehouse, project built-in warehouse, etc.</li>\n<li>Cross-platform package compilation integration support (packages of different platforms and different architectures can be installed at the same time, fast switching use)</li>\n<li>Debug dependency package support, source code debugging</li>\n</ul>\n<h5 id=\"dependency-package-processing-mechanism\"><a class=\"header-anchor\" href=\"#dependency-package-processing-mechanism\" aria-hidden=\"true\">#</a> Dependency Package Processing Mechanism</h5>\n<p>Here we briefly introduce the processing mechanism of the entire dependency package:</p>\n<div align=\"center\">\n<img src=\"/assets/img/index/package_arch.png\" width=\"80%\" />\n</div>\n<ol>\n<li>Priority check for the current system directory, whether there is a specified package under the third-party package management, if there is a matching package, then you do not need to download and install (of course you can also set the system package)</li>\n<li>Retrieve the package matching the corresponding version, then download, compile, and install (Note: installed in a specific xmake directory, will not interfere with the system library environment)</li>\n<li>Compile the project, and finally automatically link the enabled dependencies</li>\n</ol>\n<h5 id=\"semantic-version-settings\"><a class=\"header-anchor\" href=\"#semantic-version-settings\" aria-hidden=\"true\">#</a> Semantic Version Settings</h5>\n<p>Xmake's dependency package management fully supports semantic version selection, for example: &quot;~1.6.1&quot;. For a detailed description of the semantic version, see: [http://semver.org/] (http://semver.org/)</p>\n<p>Some semantic versions are written:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox 1.6.*\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"pcre 1.3.x\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"libpng ^1.18\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"libpng ~1.16\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"zlib 1.1.2 || >=1.2.11 &lt;1.3.0\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The semantic version parser currently used by xmake is the <a href=\"https://github.com/uael/sv\" target=\"_blank\" rel=\"noopener noreferrer\">sv<OutboundLink/></a> library contributed by <a href=\"https://github.com/uael\" target=\"_blank\" rel=\"noopener noreferrer\">uael<OutboundLink/></a>, which also has a description of the version. For detailed instructions, please refer to the following: [Version Description] (https://github.com/uael/sv#versions)</p>\n<p>Of course, if we have no special requirements for the current version of the dependency package, then we can write directly:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"libpng\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>This will use the latest version of the package known, or the source code compiled by the master branch. If the current package has a git repo address, we can also specify a specific branch version:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox master\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox dev\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"extra-package-information-settings\"><a class=\"header-anchor\" href=\"#extra-package-information-settings\" aria-hidden=\"true\">#</a> Extra Package Information Settings</h5>\n<h6 id=\"optional-package-settings\"><a class=\"header-anchor\" href=\"#optional-package-settings\" aria-hidden=\"true\">#</a> Optional Package Settings</h6>\n<p>If the specified dependency package is not supported by the current platform, or if the compilation and installation fails, then xmake will compile the error, which is reasonable for some projects that must rely on certain packages to work.\nHowever, if some packages are optional dependencies, they can be set to optional packages even if they are not compiled properly.</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>optional <span class=\"token operator\">=</span> <span class=\"token keyword\">true</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h6 id=\"disable-system-library\"><a class=\"header-anchor\" href=\"#disable-system-library\" aria-hidden=\"true\">#</a> Disable System Library</h6>\n<p>With the default settings, xmake will first check to see if the system library exists (if no version is required). If the user does not want to use the system library and the library provided by the third-party package management, then you can set:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>system <span class=\"token operator\">=</span> <span class=\"token keyword\">false</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h6 id=\"using-the-debug-version-of-the-package\"><a class=\"header-anchor\" href=\"#using-the-debug-version-of-the-package\" aria-hidden=\"true\">#</a> Using the debug version of the package</h6>\n<p>If we want to debug the dependencies at the same time, we can set them to use the debug version of the package (provided that this package supports debug compilation):</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>debug <span class=\"token operator\">=</span> <span class=\"token keyword\">true</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the current package does not support debug compilation, you can submit the modified compilation rules in the repository to support the debug, for example:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">package</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"openssl\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">on_install</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"linux\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"macosx\"</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span>package<span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">vrun</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"./config %s --prefix=\\\"%s\\\"\"</span><span class=\"token punctuation\">,</span> package<span class=\"token punctuation\">:</span><span class=\"token function\">debug</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">and</span> <span class=\"token string\">\"--debug\"</span> <span class=\"token keyword\">or</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span> package<span class=\"token punctuation\">:</span><span class=\"token function\">installdir</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">vrun</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"make -j4\"</span><span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">vrun</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"make install\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h6 id=\"passing-additional-compilation-information-to-the-package\"><a class=\"header-anchor\" href=\"#passing-additional-compilation-information-to-the-package\" aria-hidden=\"true\">#</a> Passing additional compilation information to the package</h6>\n<p>Some packages have various compile options at compile time, and we can pass them in. Of course, the package itself supports:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>config <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>small<span class=\"token operator\">=</span><span class=\"token keyword\">true</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Pass <code>--small=true</code> to the tbox package so that compiling the installed tbox package is enabled.</p>\n<h5 id=\"using-self-built-private-package-warehouse\"><a class=\"header-anchor\" href=\"#using-self-built-private-package-warehouse\" aria-hidden=\"true\">#</a> Using self-built private package warehouse</h5>\n<p>If the required package is not in the official repository <a href=\"https://github.com/tboox/xmake-repo\" target=\"_blank\" rel=\"noopener noreferrer\">xmake-repo<OutboundLink/></a>, we can submit the contribution code to the repository for support.\nBut if some packages are only for personal or private projects, we can create a private repository repo. The repository organization structure can be found at: <a href=\"https://github.com/tboox/xmake-repo\" target=\"_blank\" rel=\"noopener noreferrer\">xmake-repo<OutboundLink/></a></p>\n<p>For example, now we have a private repository repo:<code>git@github.com:myrepo/xmake-repo.git</code></p>\n<p>We can add the repository with the following command:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake repo --add myrepo git@github.com:myrepo/xmake-repo.git\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or we write directly in xmake.lua:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_repositories</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"my-repo git@github.com:myrepo/xmake-repo.git\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If we just want to add one or two private packages, this time to build a git repo is too big, we can directly put the package repository into the project, for example:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>projectdir\n - myrepo\n - packages\n - t/tbox/xmake.lua\n - z/zlib/xmake.lua\n - src\n - main.c\n - xmake.lua\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The above myrepo directory is your own private package repository, built into your own project, and then add this repository location in xmake.lua:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_repositories</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"my-repo myrepo\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>This can be referred to [benchbox] (https://github.com/tboox/benchbox) project, which has a built-in private repository.</p>\n<p>We can even build a package without directly building a package description into the project xmake.lua, which is useful for relying on one or two packages, for example:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">package</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"libjpeg\"</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token function\">set_urls</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"http://www.ijg.org/files/jpegsrc.$(version).tar.gz\"</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token function\">add_versions</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"v9c\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"650250979303a649e21f87b5ccd02672af1ea6954b911342ea491f351ceb7122\"</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token function\">on_install</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"windows\"</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span>package<span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">mv</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"jconfig.vc\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"jconfig.h\"</span><span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">vrun</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"nmake -f makefile.vc\"</span><span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">cp</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.h\"</span><span class=\"token punctuation\">,</span> package<span class=\"token punctuation\">:</span><span class=\"token function\">installdir</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"include\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">cp</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"libjpeg.lib\"</span><span class=\"token punctuation\">,</span> package<span class=\"token punctuation\">:</span><span class=\"token function\">installdir</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"lib\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token function\">on_install</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"macosx\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"linux\"</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span>package<span class=\"token punctuation\">)</span>\n <span class=\"token function\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"package.tools.autoconf\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">install</span><span class=\"token punctuation\">(</span>package<span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">package_end</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"libjpeg\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.c\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_packages</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"libjpeg\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"package-management-command-use\"><a class=\"header-anchor\" href=\"#package-management-command-use\" aria-hidden=\"true\">#</a> Package Management Command Use</h5>\n<p>The package management command <code>$ xmake require</code> can be used to manually display the download, install, uninstall, retrieve, and view package information.</p>\n<h6 id=\"install-the-specified-package\"><a class=\"header-anchor\" href=\"#install-the-specified-package\" aria-hidden=\"true\">#</a> Install the specified package</h6>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Install the specified version package:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require tbox <span class=\"token string\">\"~1.6\"</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Force a re-download of the installation and display detailed installation information:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require -f -v tbox <span class=\"token string\">\"1.5.x\"</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Pass additional setup information:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --extra<span class=\"token operator\">=</span><span class=\"token string\">\"debug=true,config={small=true}\"</span> tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Install the debug package and pass the compilation configuration information of <code>small=true</code> to the package.</p>\n<h6 id=\"uninstalling-the-specified-package\"><a class=\"header-anchor\" href=\"#uninstalling-the-specified-package\" aria-hidden=\"true\">#</a> Uninstalling the specified package</h6>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --uninstall tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>This will completely uninstall the removal package file.</p>\n<h6 id=\"remove-the-specified-package\"><a class=\"header-anchor\" href=\"#remove-the-specified-package\" aria-hidden=\"true\">#</a> Remove the specified package</h6>\n<p>Only unlink specifies the package, it is not detected by the current project, but the package still exists locally. If it is reinstalled, it will be completed very quickly.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --unlink tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><h6 id=\"view-package-details\"><a class=\"header-anchor\" href=\"#view-package-details\" aria-hidden=\"true\">#</a> View package details</h6>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --info tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><h6 id=\"search-for-packages-in-the-current-warehouse\"><a class=\"header-anchor\" href=\"#search-for-packages-in-the-current-warehouse\" aria-hidden=\"true\">#</a> Search for packages in the current warehouse</h6>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --search tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>This is to support fuzzy search and lua pattern matching search:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --search pcr\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Will also search for pcre, pcre2 and other packages.</p>\n<h6 id=\"list-the-currently-installed-packages\"><a class=\"header-anchor\" href=\"#list-the-currently-installed-packages\" aria-hidden=\"true\">#</a> List the currently installed packages</h6>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --list\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"warehouse-management-command-use\"><a class=\"header-anchor\" href=\"#warehouse-management-command-use\" aria-hidden=\"true\">#</a> Warehouse Management Command Use</h5>\n<p>As mentioned above, adding a private repository is available (supporting local path addition):</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake repo --add myrepo git@github.com:myrepo/xmake-repo.git\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>We can also remove a repository that has already been installed:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake repo --remove myrepo\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or view all the added warehouses:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake repo --list\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the remote repository has updates, you can manually perform a warehouse update to get more and the latest packages:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake repo -u\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"submit-the-package-to-the-official-warehouse\"><a class=\"header-anchor\" href=\"#submit-the-package-to-the-official-warehouse\" aria-hidden=\"true\">#</a> Submit the package to the official warehouse</h5>\n<p>If you need a package that is not supported by the current official repository, you can commit it to the official repository after local tuning: <a href=\"https://github.com/tboox/xmake-repo\" target=\"_blank\" rel=\"noopener noreferrer\">xmake-repo<OutboundLink/></a></p>\n<p>For detailed contribution descriptions, see: <a href=\"https://github.com/tboox/xmake-repo/blob/master/CONTRIBUTING.md\" target=\"_blank\" rel=\"noopener noreferrer\">CONTRIBUTING.md<OutboundLink/></a></p>\n</div>\n",null]} \ No newline at end of file
+{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js??ref--1-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js??ref--1-2!/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md?vue&type=template&id=d7bc09fe&","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md","mtime":1541599697727},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1541484125571},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js","mtime":1541484125571},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js","mtime":1541484147168}],"contextDependencies":[],"result":["\n<div class=\"content\"><h1 id=\"getting-started\"><a class=\"header-anchor\" href=\"#getting-started\" aria-hidden=\"true\">#</a> Getting Started</h1>\n<h2 id=\"installation\"><a class=\"header-anchor\" href=\"#installation\" aria-hidden=\"true\">#</a> Installation</h2>\n<h3 id=\"master\"><a class=\"header-anchor\" href=\"#master\" aria-hidden=\"true\">#</a> Master</h3>\n<h4 id=\"via-curl\"><a class=\"header-anchor\" href=\"#via-curl\" aria-hidden=\"true\">#</a> via curl</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code><span class=\"token function\">bash</span> <span class=\"token operator\">&lt;</span><span class=\"token punctuation\">(</span>curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh<span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"via-wget\"><a class=\"header-anchor\" href=\"#via-wget\" aria-hidden=\"true\">#</a> via wget</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code><span class=\"token function\">bash</span> <span class=\"token operator\">&lt;</span><span class=\"token punctuation\">(</span>wget https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh -O -<span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"via-powershell\"><a class=\"header-anchor\" href=\"#via-powershell\" aria-hidden=\"true\">#</a> via powershell</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>Invoke-Expression <span class=\"token punctuation\">(</span>Invoke-Webrequest <span class=\"token string\">'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1'</span> -UseBasicParsing<span class=\"token punctuation\">)</span>.Content\n</code></pre>\n<!--beforeend--></div><!--afterend--><h3 id=\"windows\"><a class=\"header-anchor\" href=\"#windows\" aria-hidden=\"true\">#</a> Windows</h3>\n<ol>\n<li>Download xmake windows installer from <a href=\"https://github.com/tboox/xmake/releases\" target=\"_blank\" rel=\"noopener noreferrer\">Releases<OutboundLink/></a></li>\n<li>Run xmake-[version].exe</li>\n</ol>\n<h3 id=\"macos\"><a class=\"header-anchor\" href=\"#macos\" aria-hidden=\"true\">#</a> MacOS</h3>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ brew <span class=\"token function\">install</span> xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h3 id=\"linux\"><a class=\"header-anchor\" href=\"#linux\" aria-hidden=\"true\">#</a> Linux</h3>\n<p>On Archlinux:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ yaourt xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>On Ubuntu:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">sudo</span> add-apt-repository ppa:tboox/xmake\n$ <span class=\"token function\">sudo</span> apt update\n$ <span class=\"token function\">sudo</span> apt <span class=\"token function\">install</span> xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or add xmake package source manually:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>deb http://ppa.launchpad.net/tboox/xmake/ubuntu yakkety main \ndeb-src http://ppa.launchpad.net/tboox/xmake/ubuntu yakkety main \n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Then we run:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">sudo</span> apt update\n$ <span class=\"token function\">sudo</span> apt <span class=\"token function\">install</span> xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or download deb package to install it:</p>\n<ol>\n<li>Download xmake <code>.deb</code> install package from <a href=\"https://github.com/tboox/xmake/releases\" target=\"_blank\" rel=\"noopener noreferrer\">Releases<OutboundLink/></a></li>\n<li>Run <code>dpkg -i xmake-xxxx.deb</code></li>\n</ol>\n<h3 id=\"compilation\"><a class=\"header-anchor\" href=\"#compilation\" aria-hidden=\"true\">#</a> Compilation</h3>\n<p>Compile and install:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">git</span> clone https://github.com/tboox/xmake.git\n$ <span class=\"token function\">cd</span> ./xmake\n$ ./scripts/get.sh __local__\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Only install and update lua scripts:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ ./scripts/get.sh __local__ __install_only__\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Uninstall:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ ./scripts/get.sh __uninstall__\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or compile and install via make:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">make</span> build<span class=\"token punctuation\">;</span> <span class=\"token function\">sudo</span> <span class=\"token function\">make</span> <span class=\"token function\">install</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Install to other given directory:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">sudo</span> <span class=\"token function\">make</span> <span class=\"token function\">install</span> prefix<span class=\"token operator\">=</span>/usr/local\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Uninstall:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">sudo</span> <span class=\"token function\">make</span> uninstall\n</code></pre>\n<!--beforeend--></div><!--afterend--><h2 id=\"quick-start\"><a class=\"header-anchor\" href=\"#quick-start\" aria-hidden=\"true\">#</a> Quick Start</h2>\n<p><a href=\"https://asciinema.org/a/133693\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://asciinema.org/a/133693.png\" alt=\"asciicast\"><OutboundLink/></a></p>\n<h3 id=\"create-project\"><a class=\"header-anchor\" href=\"#create-project\" aria-hidden=\"true\">#</a> Create Project</h3>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake create -l c -P ./hello\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>And xmake will generate some files for c language project:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>hello\n├── src\n│ └── main.c\n└── xmake.lua\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>It is a simple console program only for printing <code>hello xmake!</code></p>\n<p>The content of <code>xmake.lua</code> is very simple:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"hello\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.c\"</span><span class=\"token punctuation\">)</span> \n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Support languages:</p>\n<ul>\n<li>c/c++</li>\n<li>objc/c++</li>\n<li>asm</li>\n<li>swift</li>\n<li>dlang</li>\n<li>golang</li>\n<li>rust</li>\n</ul>\n<p class=\"tip\">\n If you want to known more options, please run: `xmake create --help`\n</p>\n<h3 id=\"build-project\"><a class=\"header-anchor\" href=\"#build-project\" aria-hidden=\"true\">#</a> Build Project</h3>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h3 id=\"run-program\"><a class=\"header-anchor\" href=\"#run-program\" aria-hidden=\"true\">#</a> Run Program</h3>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake run hello\n</code></pre>\n<!--beforeend--></div><!--afterend--><h3 id=\"debug-program\"><a class=\"header-anchor\" href=\"#debug-program\" aria-hidden=\"true\">#</a> Debug Program</h3>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake run -d hello \n</code></pre>\n<!--beforeend--></div><!--afterend--><p>It will start the debugger (.e.g lldb, gdb, windbg, vsjitdebugger, ollydbg ..) to load our program.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code><span class=\"token punctuation\">[</span>lldb<span class=\"token punctuation\">]</span><span class=\"token variable\">$target</span> create <span class=\"token string\">\"build/hello\"</span>\nCurrent executable <span class=\"token keyword\">set</span> to <span class=\"token string\">'build/hello'</span> <span class=\"token punctuation\">(</span>x86_64<span class=\"token punctuation\">)</span>.\n<span class=\"token punctuation\">[</span>lldb<span class=\"token punctuation\">]</span><span class=\"token variable\">$b</span> main\nBreakpoint 1: where <span class=\"token operator\">=</span> hello<span class=\"token variable\"><span class=\"token variable\">`</span>main, address <span class=\"token operator\">=</span> 0x0000000100000f50\n<span class=\"token punctuation\">[</span>lldb<span class=\"token punctuation\">]</span>$r\nProcess 7509 launched: <span class=\"token string\">'/private/tmp/hello/build/hello'</span> <span class=\"token punctuation\">(</span>x86_64<span class=\"token punctuation\">)</span>\nProcess 7509 stopped\n* thread #1: tid <span class=\"token operator\">=</span> 0x435a2, 0x0000000100000f50 hello<span class=\"token variable\">`</span></span>main, queue <span class=\"token operator\">=</span> <span class=\"token string\">'com.apple.main-thread'</span>, stop reason <span class=\"token operator\">=</span> breakpoint 1.1\n frame <span class=\"token comment\">#0: 0x0000000100000f50 hello`main</span>\nhello`main:\n-<span class=\"token operator\">></span> 0x100000f50 <span class=\"token operator\">&lt;</span>+0<span class=\"token operator\">></span>: pushq %rbp\n 0x100000f51 <span class=\"token operator\">&lt;</span>+1<span class=\"token operator\">></span>: movq %rsp, %rbp\n 0x100000f54 <span class=\"token operator\">&lt;</span>+4<span class=\"token operator\">></span>: leaq 0x2b<span class=\"token punctuation\">(</span>%rip<span class=\"token punctuation\">)</span>, %rdi <span class=\"token punctuation\">;</span> <span class=\"token string\">\"hello world!\"</span>\n 0x100000f5b <span class=\"token operator\">&lt;</span>+11<span class=\"token operator\">></span>: callq 0x100000f64 <span class=\"token punctuation\">;</span> symbol stub for: puts\n<span class=\"token punctuation\">[</span>lldb<span class=\"token punctuation\">]</span>$\n</code></pre>\n<!--beforeend--></div><!--afterend--><p class=\"tip\">\n You can also use short command option, for exmaple: `xmake r` or `xmake run`\n</p>\n<h2 id=\"project-examples\"><a class=\"header-anchor\" href=\"#project-examples\" aria-hidden=\"true\">#</a> Project Examples</h2>\n<h3 id=\"executable-program\"><a class=\"header-anchor\" href=\"#executable-program\" aria-hidden=\"true\">#</a> Executable Program</h3>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*c\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h3 id=\"static-library-program\"><a class=\"header-anchor\" href=\"#static-library-program\" aria-hidden=\"true\">#</a> Static Library Program</h3>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"library\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"static\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/library/*.c\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*c\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_deps</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"library\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>We use <code>add_deps</code> to link a static library to test target.</p>\n<h3 id=\"share-library-program\"><a class=\"header-anchor\" href=\"#share-library-program\" aria-hidden=\"true\">#</a> Share Library Program</h3>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"library\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"shared\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/library/*.c\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*c\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_deps</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"library\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>We use <code>add_deps</code> to link a share library to test target.</p>\n<h3 id=\"qt-program\"><a class=\"header-anchor\" href=\"#qt-program\" aria-hidden=\"true\">#</a> Qt Program</h3>\n<p>Create an empty project:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake create -l c++ -t console_qt <span class=\"token function\">test</span>\n$ xmake create -l c++ -t static_qt <span class=\"token function\">test</span>\n$ xmake create -l c++ -t shared_qt <span class=\"token function\">test</span>\n$ xmake create -l c++ -t quickapp_qt <span class=\"token function\">test</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>xmake will detect Qt SDK automatically and we can also set the SDK directory manually.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f --qt<span class=\"token operator\">=</span>~/Qt/Qt5.9.1\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to use the MinGW Qt environment on windows, you can set the MinGW platform configuration and specify the SDK path for the MinGW compilation environment, for example:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p mingw --sdk<span class=\"token operator\">=</span>C:\\Qt\\Qt5.10.1\\Tools\\mingw530_32 \n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to known more information, you can see <a href=\"https://github.com/tboox/xmake/issues/160\" target=\"_blank\" rel=\"noopener noreferrer\">#160<OutboundLink/></a>.</p>\n<h4 id=\"static-library\"><a class=\"header-anchor\" href=\"#static-library\" aria-hidden=\"true\">#</a> Static Library</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt_static_library\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt.static\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cpp\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_frameworks</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"QtNetwork\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"QtGui\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"shared-library\"><a class=\"header-anchor\" href=\"#shared-library\" aria-hidden=\"true\">#</a> Shared Library</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt_shared_library\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt.shared\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cpp\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_frameworks</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"QtNetwork\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"QtGui\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"console-program\"><a class=\"header-anchor\" href=\"#console-program\" aria-hidden=\"true\">#</a> Console Program</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt_console\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt.console\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cpp\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"quick-application\"><a class=\"header-anchor\" href=\"#quick-application\" aria-hidden=\"true\">#</a> Quick Application</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt_quickapp\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt.application\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cpp\"</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/qml.qrc\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_frameworks</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"QtQuick\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"widgets-application\"><a class=\"header-anchor\" href=\"#widgets-application\" aria-hidden=\"true\">#</a> Widgets Application</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt_widgetapp\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"qt.application\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cpp\"</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/mainwindow.ui\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/mainwindow.h\"</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">-- add files with Q_OBJECT meta (only for qt.moc)</span>\n <span class=\"token function\">add_frameworks</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"QtWidgets\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h3 id=\"cuda-program\"><a class=\"header-anchor\" href=\"#cuda-program\" aria-hidden=\"true\">#</a> Cuda Program</h3>\n<p>Create an empty project:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake create -P <span class=\"token function\">test</span> -l cuda\n$ <span class=\"token function\">cd</span> <span class=\"token function\">test</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"cuda_console\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.cu\"</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token comment\">-- generate SASS code for each SM architecture</span>\n <span class=\"token keyword\">for</span> _<span class=\"token punctuation\">,</span> sm <span class=\"token keyword\">in</span> <span class=\"token function\">ipairs</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span><span class=\"token string\">\"30\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"35\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"37\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"50\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"52\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"60\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"61\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"70\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">do</span>\n <span class=\"token function\">add_cuflags</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"-gencode arch=compute_\"</span> <span class=\"token operator\">..</span> sm <span class=\"token operator\">..</span> <span class=\"token string\">\",code=sm_\"</span> <span class=\"token operator\">..</span> sm<span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_ldflags</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"-gencode arch=compute_\"</span> <span class=\"token operator\">..</span> sm <span class=\"token operator\">..</span> <span class=\"token string\">\",code=sm_\"</span> <span class=\"token operator\">..</span> sm<span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span>\n\n <span class=\"token comment\">-- generate PTX code from the highest SM architecture to guarantee forward-compatibility</span>\n sm <span class=\"token operator\">=</span> <span class=\"token string\">\"70\"</span>\n <span class=\"token function\">add_cuflags</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"-gencode arch=compute_\"</span> <span class=\"token operator\">..</span> sm <span class=\"token operator\">..</span> <span class=\"token string\">\",code=compute_\"</span> <span class=\"token operator\">..</span> sm<span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_ldflags</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"-gencode arch=compute_\"</span> <span class=\"token operator\">..</span> sm <span class=\"token operator\">..</span> <span class=\"token string\">\",code=compute_\"</span> <span class=\"token operator\">..</span> sm<span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>xmake will detect Cuda SDK automatically and we can also set the SDK directory manually.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f --cuda<span class=\"token operator\">=</span>/usr/local/cuda-9.1/ \n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to known more information, you can see <a href=\"https://github.com/tboox/xmake/issues/158\" target=\"_blank\" rel=\"noopener noreferrer\">#158<OutboundLink/></a>.</p>\n<h3 id=\"wdk-driver-program\"><a class=\"header-anchor\" href=\"#wdk-driver-program\" aria-hidden=\"true\">#</a> WDK Driver Program</h3>\n<p>xmake will detect WDK automatically and we can also set the WDK directory manually.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f --wdk<span class=\"token operator\">=</span><span class=\"token string\">\"G:\\Program Files\\Windows Kits\\10\"</span> -c\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to known more information, you can see <a href=\"https://github.com/tboox/xmake/issues/159\" target=\"_blank\" rel=\"noopener noreferrer\">#159<OutboundLink/></a>.</p>\n<h4 id=\"umdf-driver-program\"><a class=\"header-anchor\" href=\"#umdf-driver-program\" aria-hidden=\"true\">#</a> UMDF Driver Program</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"echo\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.umdf\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"driver/*.c\"</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"driver/*.inx\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_includedirs</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"exe\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"app\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.binary\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.umdf\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"exe/*.cpp\"</span><span class=\"token punctuation\">)</span> \n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"kmdf-driver-program\"><a class=\"header-anchor\" href=\"#kmdf-driver-program\" aria-hidden=\"true\">#</a> KMDF Driver Program</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"nonpnp\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.kmdf\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.tracewpp.flags\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"-func:TraceEvents(LEVEL,FLAGS,MSG,...)\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"-func:Hexdump((LEVEL,FLAGS,MSG,...))\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"driver/*.c\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>rule <span class=\"token operator\">=</span> <span class=\"token string\">\"wdk.tracewpp\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"driver/*.rc\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"app\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.binary\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.kmdf\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"exe/*.c\"</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"exe/*.inf\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"wdm-driver-program\"><a class=\"header-anchor\" href=\"#wdm-driver-program\" aria-hidden=\"true\">#</a> WDM Driver Program</h4>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"kcs\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.man.flags\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"-prefix Kcs\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.man.resource\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"kcsCounters.rc\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.man.header\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"kcsCounters.h\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.man.counter_header\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"kcsCounters_counters.h\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.c\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"*.rc\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"*.man\"</span><span class=\"token punctuation\">)</span> \n</code></pre>\n<!--beforeend--></div><!--afterend--><!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.tracewpp.flags\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"-func:TracePrint((LEVEL,FLAGS,MSG,...))\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.c\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>rule <span class=\"token operator\">=</span> <span class=\"token string\">\"wdk.tracewpp\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> \n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.rc\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"*.inf\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.mof|msdsm.mof\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm.mof\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>values <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>wdk_mof_header <span class=\"token operator\">=</span> <span class=\"token string\">\"msdsmwmi.h\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> \n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"package-driver\"><a class=\"header-anchor\" href=\"#package-driver\" aria-hidden=\"true\">#</a> Package Driver</h4>\n<p>We can run the following command to generate a .cab driver package.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake <span class=\"token punctuation\">[</span>p<span class=\"token operator\">|</span>package<span class=\"token punctuation\">]</span>\n$ xmake <span class=\"token punctuation\">[</span>p<span class=\"token operator\">|</span>package<span class=\"token punctuation\">]</span> -o outputdir\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The output files like:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code> - drivers\n - sampledsm\n - debug/x86/sampledsm.cab\n - release/x64/sampledsm.cab\n - debug/x86/sampledsm.cab\n - release/x64/sampledsm.cab\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"driver-signing\"><a class=\"header-anchor\" href=\"#driver-signing\" aria-hidden=\"true\">#</a> Driver Signing</h4>\n<p>The driver signing is disabled when we compile driver in default case,\nbut we can add <code>set_values(&quot;wdk.sign.mode&quot;)</code> to enable test/release sign.</p>\n<h5 id=\"testsign\"><a class=\"header-anchor\" href=\"#testsign\" aria-hidden=\"true\">#</a> TestSign</h5>\n<p>We can use test certificate of xmake to do testsign, but please run <code>$xmake l utils.wdk.testcert</code> install as admin to install a test certificate first (only once)!</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.mode\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or we set a valid certificate thumbprint to do it in local machine.</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.mode\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.thumbprint\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"032122545DCAA6167B1ADBE5F7FDF07AE2234AAA\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>We can also do testsign via setting store/company info.</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.mode\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.store\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"PrivateCertStore\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.company\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"tboox.org(test)\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"releasesign\"><a class=\"header-anchor\" href=\"#releasesign\" aria-hidden=\"true\">#</a> ReleaseSign</h5>\n<p>We can set a certificate file for release signing.</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"msdsm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.driver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"wdk.env.wdm\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.mode\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"release\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.company\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"xxxx\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.sign.certfile\"</span><span class=\"token punctuation\">,</span> path<span class=\"token punctuation\">.</span><span class=\"token function\">join</span><span class=\"token punctuation\">(</span>os<span class=\"token punctuation\">.</span><span class=\"token function\">projectdir</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"xxxx.cer\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"support-low-version-system\"><a class=\"header-anchor\" href=\"#support-low-version-system\" aria-hidden=\"true\">#</a> Support Low-version System</h4>\n<p>We can set <code>wdk.env.winver</code> to generate a driver package that is compatible with a low version system.</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win10\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win10_rs3\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win81\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win8\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win7\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win7_sp1\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win7_sp2\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">set_values</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wdk.env.winver\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"win7_sp3\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>We can also set windows version for WDK driver program:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f --wdk_winver<span class=\"token operator\">=</span><span class=\"token punctuation\">[</span>win10_rs3<span class=\"token operator\">|</span>win8<span class=\"token operator\">|</span>win7<span class=\"token operator\">|</span>win7_sp1<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h3 id=\"winsdk-application-program\"><a class=\"header-anchor\" href=\"#winsdk-application-program\" aria-hidden=\"true\">#</a> WinSDK Application Program</h3>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"usbview\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_rules</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"win.sdk.application\"</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.c\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"*.rc\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"xmlhelper.cpp\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>rule <span class=\"token operator\">=</span> <span class=\"token string\">\"win.sdk.dotnet\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to known more information, you can see <a href=\"https://github.com/tboox/xmake/issues/173\" target=\"_blank\" rel=\"noopener noreferrer\">#173<OutboundLink/></a>.</p>\n<h2 id=\"configuration\"><a class=\"header-anchor\" href=\"#configuration\" aria-hidden=\"true\">#</a> Configuration</h2>\n<p>Set compilation configuration before building project with command <code>xmake f|config</code>.</p>\n<p>And if you want to known more options, please run: <code>xmake f --help</code>。</p>\n<p class=\"tip\">\n You can use short or long command option, for exmaple: <br>\n `xmake f` or `xmake config`.<br>\n `xmake f -p linux` or `xmake config --plat=linux`.\n</p>\n<h3 id=\"target-platforms\"><a class=\"header-anchor\" href=\"#target-platforms\" aria-hidden=\"true\">#</a> Target Platforms</h3>\n<h4 id=\"current-host\"><a class=\"header-anchor\" href=\"#current-host\" aria-hidden=\"true\">#</a> Current Host</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p class=\"tip\">\n XMake will detect the current host platform automatically and build project.\n</p>\n<h4 id=\"linux-2\"><a class=\"header-anchor\" href=\"#linux-2\" aria-hidden=\"true\">#</a> Linux</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux <span class=\"token punctuation\">[</span>-a i386<span class=\"token operator\">|</span>x86_64<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"android\"><a class=\"header-anchor\" href=\"#android\" aria-hidden=\"true\">#</a> Android</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p android --ndk<span class=\"token operator\">=</span>~/files/android-ndk-r10e/ <span class=\"token punctuation\">[</span>-a armv5te<span class=\"token operator\">|</span>armv6<span class=\"token operator\">|</span>armv7-a<span class=\"token operator\">|</span>armv8-a<span class=\"token operator\">|</span>arm64-v8a<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want to set the other android toolchains, you can use <a href=\"#-bin\">--bin</a> option.</p>\n<p>For example:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p android --ndk<span class=\"token operator\">=</span>~/files/android-ndk-r10e/ -a arm64-v8a --bin<span class=\"token operator\">=</span>~/files/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The <a href=\"#-bin\">--bin</a> option is used to set <code>bin</code> directory of toolchains.</p>\n<p class=\"tip\">\nPlease attempt to set `--arch=` option if it had failed to check compiler.\n</p>\n<h4 id=\"iphoneos\"><a class=\"header-anchor\" href=\"#iphoneos\" aria-hidden=\"true\">#</a> iPhoneOS</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p iphoneos <span class=\"token punctuation\">[</span>-a armv7<span class=\"token operator\">|</span>armv7s<span class=\"token operator\">|</span>arm64<span class=\"token operator\">|</span>i386<span class=\"token operator\">|</span>x86_64<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"windows-2\"><a class=\"header-anchor\" href=\"#windows-2\" aria-hidden=\"true\">#</a> Windows</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p windows <span class=\"token punctuation\">[</span>-a x86<span class=\"token operator\">|</span>x64<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"mingw\"><a class=\"header-anchor\" href=\"#mingw\" aria-hidden=\"true\">#</a> Mingw</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p mingw --sdk<span class=\"token operator\">=</span>/usr/local/i386-mingw32-4.3.0/ <span class=\"token punctuation\">[</span>-a i386<span class=\"token operator\">|</span>x86_64<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"apple-watchos\"><a class=\"header-anchor\" href=\"#apple-watchos\" aria-hidden=\"true\">#</a> Apple WatchOS</h4>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p watchos <span class=\"token punctuation\">[</span>-a i386<span class=\"token operator\">|</span>armv7k<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"cross-compilation\"><a class=\"header-anchor\" href=\"#cross-compilation\" aria-hidden=\"true\">#</a> Cross Compilation</h4>\n<p>For linux platform:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/usr/local/arm-linux-gcc/ <span class=\"token punctuation\">[</span>--bin<span class=\"token operator\">=</span>/sdk/bin<span class=\"token punctuation\">]</span> <span class=\"token punctuation\">[</span>--cross<span class=\"token operator\">=</span>arm-linux-<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Fro other cross platform:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p cross --sdk<span class=\"token operator\">=</span>/usr/local/arm-xxx-gcc/ <span class=\"token punctuation\">[</span>--bin<span class=\"token operator\">=</span>/sdk/bin<span class=\"token punctuation\">]</span> <span class=\"token punctuation\">[</span>--cross<span class=\"token operator\">=</span>arm-linux-<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>For custem cross platform (<code>is_plat(&quot;myplat&quot;)</code>):</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p myplat --sdk<span class=\"token operator\">=</span>/usr/local/arm-xxx-gcc/ <span class=\"token punctuation\">[</span>--bin<span class=\"token operator\">=</span>/sdk/bin<span class=\"token punctuation\">]</span> <span class=\"token punctuation\">[</span>--cross<span class=\"token operator\">=</span>arm-linux-<span class=\"token punctuation\">]</span>\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><table>\n<thead>\n<tr>\n<th>Configuration Option</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"#-sdk\">--sdk</a></td>\n<td>Set the sdk root directory of toolchains</td>\n</tr>\n<tr>\n<td><a href=\"#-bin\">--bin</a></td>\n<td>Set the <code>bin</code> directory of toolchains</td>\n</tr>\n<tr>\n<td><a href=\"#-cross\">--cross</a></td>\n<td>Set the prefix of compilation tools</td>\n</tr>\n<tr>\n<td><a href=\"#-as\">--as</a></td>\n<td>Set <code>asm</code> assembler</td>\n</tr>\n<tr>\n<td><a href=\"#-cc\">--cc</a></td>\n<td>Set <code>c</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-cxx\">--cxx</a></td>\n<td>Set <code>c++</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-mm\">--mm</a></td>\n<td>Set <code>objc</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-mxx\">--mxx</a></td>\n<td>Set <code>objc++</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-sc\">--sc</a></td>\n<td>Set <code>swift</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-gc\">--gc</a></td>\n<td>Set <code>golang</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-dc\">--dc</a></td>\n<td>Set <code>dlang</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-rc\">--rc</a></td>\n<td>Set <code>rust</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-cu\">--cu</a></td>\n<td>Set <code>cuda</code> compiler</td>\n</tr>\n<tr>\n<td><a href=\"#-ld\">--ld</a></td>\n<td>Set <code>c/c++/objc/asm</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-sh\">--sh</a></td>\n<td>Set <code>c/c++/objc/asm</code> shared library linker</td>\n</tr>\n<tr>\n<td><a href=\"#-ar\">--ar</a></td>\n<td>Set <code>c/c++/objc/asm</code> static library archiver</td>\n</tr>\n<tr>\n<td><a href=\"#-sc-ld\">--sc-ld</a></td>\n<td>Set <code>swift</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-sc-sh\">--sc-sh</a></td>\n<td>Set <code>swift</code> shared library linker</td>\n</tr>\n<tr>\n<td><a href=\"#-gc-ld\">--gc-ld</a></td>\n<td>Set <code>golang</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-gc-ar\">--gc-ar</a></td>\n<td>Set <code>golang</code> static library archiver</td>\n</tr>\n<tr>\n<td><a href=\"#-dc-ld\">--dc-ld</a></td>\n<td>Set <code>dlang</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-dc-sh\">--dc-sh</a></td>\n<td>Set <code>dlang</code> shared library linker</td>\n</tr>\n<tr>\n<td><a href=\"#-dc-ar\">--dc-ar</a></td>\n<td>Set <code>dlang</code> static library archiver</td>\n</tr>\n<tr>\n<td><a href=\"#-rc-ld\">--rc-ld</a></td>\n<td>Set <code>rust</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-rc-sh\">--rc-sh</a></td>\n<td>Set <code>rust</code> shared library linker</td>\n</tr>\n<tr>\n<td><a href=\"#-rc-ar\">--rc-ar</a></td>\n<td>Set <code>rust</code> static library archiver</td>\n</tr>\n<tr>\n<td><a href=\"#-cu-ld\">--cu-ld</a></td>\n<td>Set <code>cuda</code> linker</td>\n</tr>\n<tr>\n<td><a href=\"#-cu-sh\">--cu-sh</a></td>\n<td>Set <code>cuda</code> shared library linker</td>\n</tr>\n<tr>\n<td><a href=\"#-cu-ar\">--cu-ar</a></td>\n<td>Set <code>cuda</code> static library archiver</td>\n</tr>\n<tr>\n<td><a href=\"#-asflags\">--asflags</a></td>\n<td>Set <code>asm</code> assembler option</td>\n</tr>\n<tr>\n<td><a href=\"#-cflags\">--cflags</a></td>\n<td>Set <code>c</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-cxflags\">--cxflags</a></td>\n<td>Set <code>c/c++</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-cxxflags\">--cxxflags</a></td>\n<td>Set <code>c++</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-mflags\">--mflags</a></td>\n<td>Set <code>objc</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-mxflags\">--mxflags</a></td>\n<td>Set <code>objc/c++</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-mxxflags\">--mxxflags</a></td>\n<td>Set <code>objc++</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-scflags\">--scflags</a></td>\n<td>Set <code>swift</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-gcflags\">--gcflags</a></td>\n<td>Set <code>golang</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-dcflags\">--dcflags</a></td>\n<td>Set <code>dlang</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-rcflags\">--rcflags</a></td>\n<td>Set <code>rust</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-cuflags\">--cuflags</a></td>\n<td>Set <code>cuda</code> compiler option</td>\n</tr>\n<tr>\n<td><a href=\"#-ldflags\">--ldflags</a></td>\n<td>Set linker option</td>\n</tr>\n<tr>\n<td><a href=\"#-shflags\">--shflags</a></td>\n<td>Set shared library linker option</td>\n</tr>\n<tr>\n<td><a href=\"#-arflags\">--arflags</a></td>\n<td>Set static library archiver option</td>\n</tr>\n</tbody>\n</table>\n<p class=\"tip\">\nif you want to known more options, please run: `xmake f --help`。\n</p>\n<h5 id=\"sdk\"><a class=\"header-anchor\" href=\"#sdk\" aria-hidden=\"true\">#</a> --sdk</h5>\n<ul>\n<li>Set the sdk root directory of toolchains</li>\n</ul>\n<p>xmake provides a convenient and flexible cross-compiling support.\nIn most cases, we need not to configure complex toolchains prefix, for example: <code>arm-linux-</code></p>\n<p>As long as this toolchains meet the following directory structure:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>/home/toolchains_sdkdir\n - bin\n - arm-linux-gcc\n - arm-linux-ld\n - ...\n - lib\n - libxxx.a\n - include\n - xxx.h\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Then,we can only configure the sdk directory and build it.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/home/toolchains_sdkdir\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>xmake will detect the prefix: arm-linux- and add the include and library search directory automatically.</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>-I/home/toolchains_sdkdir/include -L/home/toolchains_sdkdir/lib\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"bin\"><a class=\"header-anchor\" href=\"#bin\" aria-hidden=\"true\">#</a> --bin</h5>\n<ul>\n<li>Set the <code>bin</code> directory of toolchains</li>\n</ul>\n<p>We need set it manually if the toolchains /bin directory is in other places, for example:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/home/toolchains_sdkdir --bin<span class=\"token operator\">=</span>/usr/opt/bin\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p class=\"tips\">\nBefore v2.2.1 version, this parameter name is `--toolchains`, exists more ambiguous, so we changed to `--bin=` to set the bin directory.\n</p>\n<h5 id=\"cross\"><a class=\"header-anchor\" href=\"#cross\" aria-hidden=\"true\">#</a> --cross</h5>\n<ul>\n<li>Set the prefix of compilation tools</li>\n</ul>\n<p>For example, under the same toolchains directory at the same time, there are two different compilers:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>/opt/bin\n - armv7-linux-gcc\n - aarch64-linux-gcc\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If we want to use the <code>armv7-linux-gcc</code> compiler, we can run the following command:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/usr/toolsdk --bin<span class=\"token operator\">=</span>/opt/bin --cross<span class=\"token operator\">=</span>armv7-linux-\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"as\"><a class=\"header-anchor\" href=\"#as\" aria-hidden=\"true\">#</a> --as</h5>\n<ul>\n<li>Set <code>asm</code> assembler</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --as<span class=\"token operator\">=</span>armv7-linux-as\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'AS' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --as=gcc@/home/xxx/asmips.exe` \n</p>\n<h5 id=\"cc\"><a class=\"header-anchor\" href=\"#cc\" aria-hidden=\"true\">#</a> --cc</h5>\n<ul>\n<li>Set c compiler</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --cc<span class=\"token operator\">=</span>armv7-linux-clang\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'CC' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --cc=gcc@/home/xxx/ccmips.exe` \n</p>\n<h5 id=\"cxx\"><a class=\"header-anchor\" href=\"#cxx\" aria-hidden=\"true\">#</a> --cxx</h5>\n<ul>\n<li>Set <code>c++</code> compiler</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --cxx<span class=\"token operator\">=</span>armv7-linux-clang++\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'CXX' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --cxx=g++@/home/xxx/c++mips.exe` \n</p>\n<h5 id=\"ld\"><a class=\"header-anchor\" href=\"#ld\" aria-hidden=\"true\">#</a> --ld</h5>\n<ul>\n<li>Set <code>c/c++/objc/asm</code> linker</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --ld<span class=\"token operator\">=</span>armv7-linux-clang++\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'LD' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-gcc/clang linker, .e.g `xmake f --ld=g++@/home/xxx/c++mips.exe` \n</p>\n<h5 id=\"sh\"><a class=\"header-anchor\" href=\"#sh\" aria-hidden=\"true\">#</a> --sh</h5>\n<ul>\n<li>Set <code>c/c++/objc/asm</code> shared library linker</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --sh<span class=\"token operator\">=</span>armv7-linux-clang++\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'SH' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-gcc/clang linker, .e.g `xmake f --sh=g++@/home/xxx/c++mips.exe` \n</p>\n<h5 id=\"ar\"><a class=\"header-anchor\" href=\"#ar\" aria-hidden=\"true\">#</a> --ar</h5>\n<ul>\n<li>Set <code>c/c++/objc/asm</code> static library archiver</li>\n</ul>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p linux --sdk<span class=\"token operator\">=</span>/user/toolsdk --ar<span class=\"token operator\">=</span>armv7-linux-ar\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the 'AR' environment variable exists, it will use the values specified in the current environment variables.</p>\n<p class=\"tips\">\nWe can set a unknown compiler as like-ar archiver, .e.g `xmake f --ar=ar@/home/xxx/armips.exe` \n</p>\n<h3 id=\"global-configuration\"><a class=\"header-anchor\" href=\"#global-configuration\" aria-hidden=\"true\">#</a> Global Configuration</h3>\n<p>You can save to the global configuration for simplfying operation.</p>\n<p>For example:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake g --ndk<span class=\"token operator\">=</span>~/files/android-ndk-r10e/\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Now, we config and build project for android again.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p android\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p class=\"tip\">\n You can use short or long command option, for exmaple: `xmake g` or `xmake global`.<br>\n</p>\n<h3 id=\"clean-configuration\"><a class=\"header-anchor\" href=\"#clean-configuration\" aria-hidden=\"true\">#</a> Clean Configuration</h3>\n<p>We can clean all cached configuration and re-configure projecct.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -c\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>or</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f -p iphoneos -c\n$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><h2 id=\"dependency-package-management\"><a class=\"header-anchor\" href=\"#dependency-package-management\" aria-hidden=\"true\">#</a> Dependency Package Management</h2>\n<h3 id=\"local-package-mode\"><a class=\"header-anchor\" href=\"#local-package-mode\" aria-hidden=\"true\">#</a> Local Package Mode</h3>\n<p>By including a dependency package directory and a binary package file in the project, it is convenient to integrate some third-party dependency libraries. This method is relatively simple and straightforward, but the disadvantages are also obvious and inconvenient to manage.</p>\n<p>Take the tbox project as an example. The dependency package is as follows:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>- base.pkg\n- zlib.pkg\n- polarssl.pkg\n- openssl.pkg\n- mysql.pkg\n- pcre.pkg\n- ...\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If you want the current project to recognize loading these packages, you first need to specify the package directory path, for example:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_packagedirs</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"packages\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Once specified, you can add integration package dependencies in the target scope via the <a href=\"https://xmake.io/#/zh/manual?id=targetadd_packages\" target=\"_blank\" rel=\"noopener noreferrer\">add_packages<OutboundLink/></a> interface, for example:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_packages</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"polarssl\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"pcre\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"mysql\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>So how to generate a *.pkg package, if it is based on xmake project, the generation method is very simple, only need:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">cd</span> tbox\n$ xmake package\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>You can generate a tbox.pkg cross-platform package in the build directory for use by third-party projects. I can also directly set the output directory and compile and generate it into the other project, for example:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ <span class=\"token function\">cd</span> tbox\n$ xmake package -o <span class=\"token punctuation\">..</span>/test/packages\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>In this way, the test project can pass <a href=\"https://xmake.io/#/zh/manual?id=targetadd_packages\" target=\"_blank\" rel=\"noopener noreferrer\">add_packages<OutboundLink/></a> and [add_packagedirs](https://xmake.io/#/zh/manual?id= add_packagedirs) to configure and use the tbox.pkg package.</p>\n<p>For a detailed description of the built-in package, you can also refer to the following related article, which is described in detail: [Dependency package addition and automatic detection mechanism] (http://tboox.org/cn/2016/08/06/add-package -and-autocheck/)</p>\n<h3 id=\"system-search-mode\"><a class=\"header-anchor\" href=\"#system-search-mode\" aria-hidden=\"true\">#</a> System Search Mode</h3>\n<p>If you feel that the above built-in package management method is very inconvenient, you can use the extension interface [lib.detect.find_package] provided by xmake (https://xmake.io/#/zh/manual?id=detect-find_package) to find the system. Existing dependencies.</p>\n<p>Currently this interface supports the following package management support:</p>\n<ul>\n<li>vcpkg</li>\n<li>homebrew</li>\n<li>pkg-config</li>\n</ul>\n<p>And through the system and third-party package management tools for the installation of the dependency package, and then integrated with xmake, for example, we look for an openssl package:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"lib.detect.find_package\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">local</span> package <span class=\"token operator\">=</span> <span class=\"token function\">find_package</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"openssl\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The returned results are as follows:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token punctuation\">{</span>links <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token string\">\"ssl\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"crypto\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"z\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> linkdirs <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token string\">\"/usr/local/lib\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> includedirs <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token string\">\"/usr/local/include\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the search is successful, return a table containing all the package information, if it fails, return nil</p>\n<p>The return result here can be directly passed as the parameter of <code>target:add</code>, <code>option:add</code>, which is used to dynamically increase the configuration of <code>target/option</code>:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">option</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_showmenu</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">true</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">before_check</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span>option<span class=\"token punctuation\">)</span>\n <span class=\"token function\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"lib.detect.find_package\"</span><span class=\"token punctuation\">)</span>\n option<span class=\"token punctuation\">:</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token function\">find_package</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">on_load</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span>target<span class=\"token punctuation\">)</span>\n <span class=\"token function\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"lib.detect.find_package\"</span><span class=\"token punctuation\">)</span>\n target<span class=\"token punctuation\">:</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token function\">find_package</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If third-party tools such as <code>homebrew</code>, <code>pkg-config</code> are installed on the system, then this interface will try to use them to improve the search results.</p>\n<p>For a more complete description of the usage, please refer to the <a href=\"https://xmake.io/#/en/manual?id=detect-find_package\" target=\"_blank\" rel=\"noopener noreferrer\">lib.detect.find_package<OutboundLink/></a> interface documentation.</p>\n<h4 id=\"homebrew-integration-support\"><a class=\"header-anchor\" href=\"#homebrew-integration-support\" aria-hidden=\"true\">#</a> Homebrew Integration Support</h4>\n<p>Since homebrew is generally installed directly into the system, users do not need to do any integration work, <code>lib.detect.find_package</code> has been natively seamlessly supported.</p>\n<h4 id=\"vcpkg-integration-support\"><a class=\"header-anchor\" href=\"#vcpkg-integration-support\" aria-hidden=\"true\">#</a> Vcpkg Integration Support</h4>\n<p>Currently xmake v2.2.2 version already supports vcpkg, users only need to install vcpkg, execute <code>$ vcpkg integrate install</code>, xmake will automatically detect the root path of vcpkg from the system, and then automatically adapt the bread.</p>\n<p>Of course, we can also manually specify the root path of vcpkg to support:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake f --vcpkg<span class=\"token operator\">=</span>f:\\vcpkg\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or we can set it to the global configuration to avoid repeating the settings each time we switch configurations:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake g --vcpkg<span class=\"token operator\">=</span>f:\\vcpkg\n</code></pre>\n<!--beforeend--></div><!--afterend--><h3 id=\"remote-dependency-mode\"><a class=\"header-anchor\" href=\"#remote-dependency-mode\" aria-hidden=\"true\">#</a> Remote dependency mode</h3>\n<p>This has been initially supported after the 2.2.2 version, the usage is much simpler, just set the corresponding dependency package, for example:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox 1.6.*\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"libpng ~1.16\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.c\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_packages</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"libpng\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The above <code>add_requires</code> is used to describe the dependencies required by the current project, and <code>add_packages</code> is used to apply dependencies to the test target. Only settings will automatically add links, linkdirs, includedirs, etc.</p>\n<p>Then directly compile:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>xmake will remotely pull the relevant source package, then automatically compile and install, finally compile the project, and link the dependency package. The specific effect is shown in the following figure:</p>\n<img src=\"/assets/img/index/package_manage.png\" width=\"80%\" />\n<p>For more information and progress on package dependency management see the related issues: [Remote package management] (https://github.com/tboox/xmake/issues/69)</p>\n<h4 id=\"currently-supported-features\"><a class=\"header-anchor\" href=\"#currently-supported-features\" aria-hidden=\"true\">#</a> Currently Supported Features</h4>\n<ul>\n<li>Semantic version support, for example: &quot;&gt;= 1.1.0 &lt; 1.2&quot;, &quot;~1.6&quot;, &quot;1.2.x&quot;, &quot;1.*&quot;</li>\n<li>Provide multi-warehouse management support such as official package warehouse, self-built private warehouse, project built-in warehouse, etc.</li>\n<li>Cross-platform package compilation integration support (packages of different platforms and different architectures can be installed at the same time, fast switching use)</li>\n<li>Debug dependency package support, source code debugging</li>\n</ul>\n<h4 id=\"dependency-package-processing-mechanism\"><a class=\"header-anchor\" href=\"#dependency-package-processing-mechanism\" aria-hidden=\"true\">#</a> Dependency Package Processing Mechanism</h4>\n<p>Here we briefly introduce the processing mechanism of the entire dependency package:</p>\n<div align=\"center\">\n<img src=\"/assets/img/index/package_arch.png\" width=\"80%\" />\n</div>\n<ol>\n<li>Priority check for the current system directory, whether there is a specified package under the third-party package management, if there is a matching package, then you do not need to download and install (of course you can also set the system package)</li>\n<li>Retrieve the package matching the corresponding version, then download, compile, and install (Note: installed in a specific xmake directory, will not interfere with the system library environment)</li>\n<li>Compile the project, and finally automatically link the enabled dependencies</li>\n</ol>\n<h4 id=\"semantic-version-settings\"><a class=\"header-anchor\" href=\"#semantic-version-settings\" aria-hidden=\"true\">#</a> Semantic Version Settings</h4>\n<p>Xmake's dependency package management fully supports semantic version selection, for example: &quot;~1.6.1&quot;. For a detailed description of the semantic version, see: [http://semver.org/] (http://semver.org/)</p>\n<p>Some semantic versions are written:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox 1.6.*\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"pcre 1.3.x\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"libpng ^1.18\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"libpng ~1.16\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"zlib 1.1.2 || >=1.2.11 &lt;1.3.0\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The semantic version parser currently used by xmake is the <a href=\"https://github.com/uael/sv\" target=\"_blank\" rel=\"noopener noreferrer\">sv<OutboundLink/></a> library contributed by <a href=\"https://github.com/uael\" target=\"_blank\" rel=\"noopener noreferrer\">uael<OutboundLink/></a>, which also has a description of the version. For detailed instructions, please refer to the following: [Version Description] (https://github.com/uael/sv#versions)</p>\n<p>Of course, if we have no special requirements for the current version of the dependency package, then we can write directly:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"libpng\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"zlib\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>This will use the latest version of the package known, or the source code compiled by the master branch. If the current package has a git repo address, we can also specify a specific branch version:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox master\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox dev\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"extra-package-information-settings\"><a class=\"header-anchor\" href=\"#extra-package-information-settings\" aria-hidden=\"true\">#</a> Extra Package Information Settings</h4>\n<h5 id=\"optional-package-settings\"><a class=\"header-anchor\" href=\"#optional-package-settings\" aria-hidden=\"true\">#</a> Optional Package Settings</h5>\n<p>If the specified dependency package is not supported by the current platform, or if the compilation and installation fails, then xmake will compile the error, which is reasonable for some projects that must rely on certain packages to work.\nHowever, if some packages are optional dependencies, they can be set to optional packages even if they are not compiled properly.</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>optional <span class=\"token operator\">=</span> <span class=\"token keyword\">true</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"disable-system-library\"><a class=\"header-anchor\" href=\"#disable-system-library\" aria-hidden=\"true\">#</a> Disable System Library</h5>\n<p>With the default settings, xmake will first check to see if the system library exists (if no version is required). If the user does not want to use the system library and the library provided by the third-party package management, then you can set:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>system <span class=\"token operator\">=</span> <span class=\"token keyword\">false</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"using-the-debug-version-of-the-package\"><a class=\"header-anchor\" href=\"#using-the-debug-version-of-the-package\" aria-hidden=\"true\">#</a> Using the debug version of the package</h5>\n<p>If we want to debug the dependencies at the same time, we can set them to use the debug version of the package (provided that this package supports debug compilation):</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>debug <span class=\"token operator\">=</span> <span class=\"token keyword\">true</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the current package does not support debug compilation, you can submit the modified compilation rules in the repository to support the debug, for example:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">package</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"openssl\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">on_install</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"linux\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"macosx\"</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span>package<span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">vrun</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"./config %s --prefix=\\\"%s\\\"\"</span><span class=\"token punctuation\">,</span> package<span class=\"token punctuation\">:</span><span class=\"token function\">debug</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">and</span> <span class=\"token string\">\"--debug\"</span> <span class=\"token keyword\">or</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span> package<span class=\"token punctuation\">:</span><span class=\"token function\">installdir</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">vrun</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"make -j4\"</span><span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">vrun</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"make install\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"passing-additional-compilation-information-to-the-package\"><a class=\"header-anchor\" href=\"#passing-additional-compilation-information-to-the-package\" aria-hidden=\"true\">#</a> Passing additional compilation information to the package</h5>\n<p>Some packages have various compile options at compile time, and we can pass them in. Of course, the package itself supports:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"tbox\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>config <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>small<span class=\"token operator\">=</span><span class=\"token keyword\">true</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Pass <code>--small=true</code> to the tbox package so that compiling the installed tbox package is enabled.</p>\n<h4 id=\"using-self-built-private-package-warehouse\"><a class=\"header-anchor\" href=\"#using-self-built-private-package-warehouse\" aria-hidden=\"true\">#</a> Using self-built private package warehouse</h4>\n<p>If the required package is not in the official repository <a href=\"https://github.com/tboox/xmake-repo\" target=\"_blank\" rel=\"noopener noreferrer\">xmake-repo<OutboundLink/></a>, we can submit the contribution code to the repository for support.\nBut if some packages are only for personal or private projects, we can create a private repository repo. The repository organization structure can be found at: <a href=\"https://github.com/tboox/xmake-repo\" target=\"_blank\" rel=\"noopener noreferrer\">xmake-repo<OutboundLink/></a></p>\n<p>For example, now we have a private repository repo:<code>git@github.com:myrepo/xmake-repo.git</code></p>\n<p>We can add the repository with the following command:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake repo --add myrepo git@github.com:myrepo/xmake-repo.git\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or we write directly in xmake.lua:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_repositories</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"my-repo git@github.com:myrepo/xmake-repo.git\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If we just want to add one or two private packages, this time to build a git repo is too big, we can directly put the package repository into the project, for example:</p>\n<!--beforebegin--><div class=\"language- extra-class\"><!--afterbegin--><pre v-pre class=\"language-text\"><code>projectdir\n - myrepo\n - packages\n - t/tbox/xmake.lua\n - z/zlib/xmake.lua\n - src\n - main.c\n - xmake.lua\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>The above myrepo directory is your own private package repository, built into your own project, and then add this repository location in xmake.lua:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">add_repositories</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"my-repo myrepo\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>This can be referred to [benchbox] (https://github.com/tboox/benchbox) project, which has a built-in private repository.</p>\n<p>We can even build a package without directly building a package description into the project xmake.lua, which is useful for relying on one or two packages, for example:</p>\n<!--beforebegin--><div class=\"language-lua extra-class\"><!--afterbegin--><pre v-pre class=\"language-lua\"><code><span class=\"token function\">package</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"libjpeg\"</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token function\">set_urls</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"http://www.ijg.org/files/jpegsrc.$(version).tar.gz\"</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token function\">add_versions</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"v9c\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"650250979303a649e21f87b5ccd02672af1ea6954b911342ea491f351ceb7122\"</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token function\">on_install</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"windows\"</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span>package<span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">mv</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"jconfig.vc\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"jconfig.h\"</span><span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">vrun</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"nmake -f makefile.vc\"</span><span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">cp</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"*.h\"</span><span class=\"token punctuation\">,</span> package<span class=\"token punctuation\">:</span><span class=\"token function\">installdir</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"include\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n os<span class=\"token punctuation\">.</span><span class=\"token function\">cp</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"libjpeg.lib\"</span><span class=\"token punctuation\">,</span> package<span class=\"token punctuation\">:</span><span class=\"token function\">installdir</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"lib\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token function\">on_install</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"macosx\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"linux\"</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span>package<span class=\"token punctuation\">)</span>\n <span class=\"token function\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"package.tools.autoconf\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">install</span><span class=\"token punctuation\">(</span>package<span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">end</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">package_end</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">add_requires</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"libjpeg\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token function\">target</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"test\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">set_kind</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"binary\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_files</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"src/*.c\"</span><span class=\"token punctuation\">)</span>\n <span class=\"token function\">add_packages</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"libjpeg\"</span><span class=\"token punctuation\">)</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"package-management-command-use\"><a class=\"header-anchor\" href=\"#package-management-command-use\" aria-hidden=\"true\">#</a> Package Management Command Use</h4>\n<p>The package management command <code>$ xmake require</code> can be used to manually display the download, install, uninstall, retrieve, and view package information.</p>\n<h5 id=\"install-the-specified-package\"><a class=\"header-anchor\" href=\"#install-the-specified-package\" aria-hidden=\"true\">#</a> Install the specified package</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Install the specified version package:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require tbox <span class=\"token string\">\"~1.6\"</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Force a re-download of the installation and display detailed installation information:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require -f -v tbox <span class=\"token string\">\"1.5.x\"</span>\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Pass additional setup information:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --extra<span class=\"token operator\">=</span><span class=\"token string\">\"debug=true,config={small=true}\"</span> tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Install the debug package and pass the compilation configuration information of <code>small=true</code> to the package.</p>\n<h5 id=\"uninstalling-the-specified-package\"><a class=\"header-anchor\" href=\"#uninstalling-the-specified-package\" aria-hidden=\"true\">#</a> Uninstalling the specified package</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --uninstall tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>This will completely uninstall the removal package file.</p>\n<h5 id=\"remove-the-specified-package\"><a class=\"header-anchor\" href=\"#remove-the-specified-package\" aria-hidden=\"true\">#</a> Remove the specified package</h5>\n<p>Only unlink specifies the package, it is not detected by the current project, but the package still exists locally. If it is reinstalled, it will be completed very quickly.</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --unlink tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"view-package-details\"><a class=\"header-anchor\" href=\"#view-package-details\" aria-hidden=\"true\">#</a> View package details</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --info tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><h5 id=\"search-for-packages-in-the-current-warehouse\"><a class=\"header-anchor\" href=\"#search-for-packages-in-the-current-warehouse\" aria-hidden=\"true\">#</a> Search for packages in the current warehouse</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --search tbox\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>This is to support fuzzy search and lua pattern matching search:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --search pcr\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Will also search for pcre, pcre2 and other packages.</p>\n<h5 id=\"list-the-currently-installed-packages\"><a class=\"header-anchor\" href=\"#list-the-currently-installed-packages\" aria-hidden=\"true\">#</a> List the currently installed packages</h5>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake require --list\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"warehouse-management-command-use\"><a class=\"header-anchor\" href=\"#warehouse-management-command-use\" aria-hidden=\"true\">#</a> Warehouse Management Command Use</h4>\n<p>As mentioned above, adding a private repository is available (supporting local path addition):</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake repo --add myrepo git@github.com:myrepo/xmake-repo.git\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>We can also remove a repository that has already been installed:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake repo --remove myrepo\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>Or view all the added warehouses:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake repo --list\n</code></pre>\n<!--beforeend--></div><!--afterend--><p>If the remote repository has updates, you can manually perform a warehouse update to get more and the latest packages:</p>\n<!--beforebegin--><div class=\"language-bash extra-class\"><!--afterbegin--><pre v-pre class=\"language-bash\"><code>$ xmake repo -u\n</code></pre>\n<!--beforeend--></div><!--afterend--><h4 id=\"submit-the-package-to-the-official-warehouse\"><a class=\"header-anchor\" href=\"#submit-the-package-to-the-official-warehouse\" aria-hidden=\"true\">#</a> Submit the package to the official warehouse</h4>\n<p>If you need a package that is not supported by the current official repository, you can commit it to the official repository after local tuning: <a href=\"https://github.com/tboox/xmake-repo\" target=\"_blank\" rel=\"noopener noreferrer\">xmake-repo<OutboundLink/></a></p>\n<p>For detailed contribution descriptions, see: <a href=\"https://github.com/tboox/xmake-repo/blob/master/CONTRIBUTING.md\" target=\"_blank\" rel=\"noopener noreferrer\">CONTRIBUTING.md<OutboundLink/></a></p>\n</div>\n",null]} \ No newline at end of file
diff --git a/node_modules/vuepress/node_modules/.cache/vuepress/b8f5ae09869bcfd93639853b8b0f2123.json b/node_modules/vuepress/node_modules/.cache/vuepress/b8f5ae09869bcfd93639853b8b0f2123.json
index 96f59f15..c995cbc5 100644
--- a/node_modules/vuepress/node_modules/.cache/vuepress/b8f5ae09869bcfd93639853b8b0f2123.json
+++ b/node_modules/vuepress/node_modules/.cache/vuepress/b8f5ae09869bcfd93639853b8b0f2123.json
@@ -1 +1 @@
-{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js??ref--1-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js??ref--1-2!/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md","mtime":1541598674687},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js","mtime":1541484125571},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js","mtime":1541484147168}],"contextDependencies":[],"result":["import { render, staticRenderFns } from \"./getting-started.md?vue&type=template&id=d7bc09fe&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('d7bc09fe', component.options)\n } else {\n api.reload('d7bc09fe', component.options)\n }\n module.hot.accept(\"./getting-started.md?vue&type=template&id=d7bc09fe&\", function () {\n api.rerender('d7bc09fe', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/guide/getting-started.md\"\nexport default component.exports"]} \ No newline at end of file
+{"remainingRequest":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js??ref--1-1!/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js??ref--1-2!/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md","dependencies":[{"path":"/Users/ruki/projects/personal/xmake-docs/src/guide/getting-started.md","mtime":1541599697727},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/cache-loader/dist/cjs.js","mtime":1541484124233},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-loader/lib/index.js","mtime":1541484125571},{"path":"/Users/ruki/projects/personal/xmake-docs/node_modules/vuepress/lib/webpack/markdownLoader.js","mtime":1541484147168}],"contextDependencies":[],"result":["import { render, staticRenderFns } from \"./getting-started.md?vue&type=template&id=d7bc09fe&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/ruki/projects/personal/xmake-docs/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('d7bc09fe', component.options)\n } else {\n api.reload('d7bc09fe', component.options)\n }\n module.hot.accept(\"./getting-started.md?vue&type=template&id=d7bc09fe&\", function () {\n api.rerender('d7bc09fe', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/guide/getting-started.md\"\nexport default component.exports"]} \ No newline at end of file
diff --git a/src/guide/getting-started.md b/src/guide/getting-started.md
index 61c6e4a1..90fcd103 100644
--- a/src/guide/getting-started.md
+++ b/src/guide/getting-started.md
@@ -2,38 +2,38 @@
## Installation
-#### Master
+### Master
-##### via curl
+#### via curl
```bash
bash <(curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh)
```
-##### via wget
+#### via wget
```bash
bash <(wget https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh -O -)
```
-##### via powershell
+#### via powershell
```bash
Invoke-Expression (Invoke-Webrequest 'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1' -UseBasicParsing).Content
```
-#### Windows
+### Windows
1. Download xmake windows installer from [Releases](https://github.com/tboox/xmake/releases)
2. Run xmake-[version].exe
-#### MacOS
+### MacOS
```bash
$ brew install xmake
```
-#### Linux
+### Linux
On Archlinux:
@@ -68,7 +68,7 @@ Or download deb package to install it:
1. Download xmake `.deb` install package from [Releases](https://github.com/tboox/xmake/releases)
2. Run `dpkg -i xmake-xxxx.deb`
-#### Compilation
+### Compilation
Compile and install:
@@ -112,7 +112,7 @@ $ sudo make uninstall
[![asciicast](https://asciinema.org/a/133693.png)](https://asciinema.org/a/133693)
-#### Create Project
+### Create Project
```bash
$ xmake create -l c -P ./hello
@@ -151,19 +151,19 @@ Support languages:
If you want to known more options, please run: `xmake create --help`
</p>
-#### Build Project
+### Build Project
```bash
$ xmake
```
-#### Run Program
+### Run Program
```bash
$ xmake run hello
```
-#### Debug Program
+### Debug Program
```bash
$ xmake run -d hello
@@ -195,7 +195,7 @@ hello`main:
## Project Examples
-#### Executable Program
+### Executable Program
```lua
target("test")
@@ -203,7 +203,7 @@ target("test")
add_files("src/*c")
```
-#### Static Library Program
+### Static Library Program
```lua
target("library")
@@ -218,7 +218,7 @@ target("test")
We use `add_deps` to link a static library to test target.
-#### Share Library Program
+### Share Library Program
```lua
target("library")
@@ -233,7 +233,7 @@ target("test")
We use `add_deps` to link a share library to test target.
-#### Qt Program
+### Qt Program
Create an empty project:
@@ -258,7 +258,7 @@ $ xmake f -p mingw --sdk=C:\Qt\Qt5.10.1\Tools\mingw530_32
If you want to known more information, you can see [#160](https://github.com/tboox/xmake/issues/160).
-##### Static Library
+#### Static Library
```lua
target("qt_static_library")
@@ -267,7 +267,7 @@ target("qt_static_library")
add_frameworks("QtNetwork", "QtGui")
```
-##### Shared Library
+#### Shared Library
```lua
target("qt_shared_library")
@@ -276,7 +276,7 @@ target("qt_shared_library")
add_frameworks("QtNetwork", "QtGui")
```
-##### Console Program
+#### Console Program
```lua
target("qt_console")
@@ -284,7 +284,7 @@ target("qt_console")
add_files("src/*.cpp")
```
-##### Quick Application
+#### Quick Application
```lua
target("qt_quickapp")
@@ -294,7 +294,7 @@ target("qt_quickapp")
add_frameworks("QtQuick")
```
-##### Widgets Application
+#### Widgets Application
```lua
target("qt_widgetapp")
@@ -305,7 +305,7 @@ target("qt_widgetapp")
add_frameworks("QtWidgets")
```
-#### Cuda Program
+### Cuda Program
Create an empty project:
@@ -341,7 +341,7 @@ $ xmake
If you want to known more information, you can see [#158](https://github.com/tboox/xmake/issues/158).
-#### WDK Driver Program
+### WDK Driver Program
xmake will detect WDK automatically and we can also set the WDK directory manually.
@@ -352,7 +352,7 @@ $ xmake
If you want to known more information, you can see [#159](https://github.com/tboox/xmake/issues/159).
-##### UMDF Driver Program
+#### UMDF Driver Program
```lua
target("echo")
@@ -366,7 +366,7 @@ target("app")
add_files("exe/*.cpp")
```
-##### KMDF Driver Program
+#### KMDF Driver Program
```lua
target("nonpnp")
@@ -381,7 +381,7 @@ target("app")
add_files("exe/*.inf")
```
-##### WDM Driver Program
+#### WDM Driver Program
```lua
target("kcs")
@@ -403,7 +403,7 @@ target("msdsm")
add_files("msdsm.mof", {values = {wdk_mof_header = "msdsmwmi.h"}})
```
-##### Package Driver
+#### Package Driver
We can run the following command to generate a .cab driver package.
@@ -423,12 +423,12 @@ The output files like:
- release/x64/sampledsm.cab
```
-##### Driver Signing
+#### Driver Signing
The driver signing is disabled when we compile driver in default case,
but we can add `set_values("wdk.sign.mode")` to enable test/release sign.
-###### TestSign
+##### TestSign
We can use test certificate of xmake to do testsign, but please run `$xmake l utils.wdk.testcert` install as admin to install a test certificate first (only once)!
@@ -457,7 +457,7 @@ target("msdsm")
set_values("wdk.sign.company", "tboox.org(test)")
```
-###### ReleaseSign
+##### ReleaseSign
We can set a certificate file for release signing.
@@ -469,7 +469,7 @@ target("msdsm")
set_values("wdk.sign.certfile", path.join(os.projectdir(), "xxxx.cer"))
```
-##### Support Low-version System
+#### Support Low-version System
We can set `wdk.env.winver` to generate a driver package that is compatible with a low version system.
@@ -491,7 +491,7 @@ $ xmake f --wdk_winver=[win10_rs3|win8|win7|win7_sp1]
$ xmake
```
-#### WinSDK Application Program
+### WinSDK Application Program
```lua
target("usbview")
@@ -515,9 +515,9 @@ And if you want to known more options, please run: `xmake f --help`。
`xmake f -p linux` or `xmake config --plat=linux`.
</p>
-#### Target Platforms
+### Target Platforms
-##### Current Host
+#### Current Host
```bash
$ xmake
@@ -527,14 +527,14 @@ $ xmake
XMake will detect the current host platform automatically and build project.
</p>
-##### Linux
+#### Linux
```bash
$ xmake f -p linux [-a i386|x86_64]
$ xmake
```
-##### Android
+#### Android
```bash
$ xmake f -p android --ndk=~/files/android-ndk-r10e/ [-a armv5te|armv6|armv7-a|armv8-a|arm64-v8a]
@@ -555,35 +555,35 @@ The [--bin](#-bin) option is used to set `bin` directory of toolchains.
Please attempt to set `--arch=` option if it had failed to check compiler.
</p>
-##### iPhoneOS
+#### iPhoneOS
```bash
$ xmake f -p iphoneos [-a armv7|armv7s|arm64|i386|x86_64]
$ xmake
```
-##### Windows
+#### Windows
```bash
$ xmake f -p windows [-a x86|x64]
$ xmake
```
-##### Mingw
+#### Mingw
```bash
$ xmake f -p mingw --sdk=/usr/local/i386-mingw32-4.3.0/ [-a i386|x86_64]
$ xmake
```
-##### Apple WatchOS
+#### Apple WatchOS
```bash
$ xmake f -p watchos [-a i386|armv7k]
$ xmake
```
-##### Cross Compilation
+#### Cross Compilation
For linux platform:
@@ -657,7 +657,7 @@ $ xmake
if you want to known more options, please run: `xmake f --help`。
</p>
-###### --sdk
+##### --sdk
- Set the sdk root directory of toolchains
@@ -691,7 +691,7 @@ xmake will detect the prefix: arm-linux- and add the include and library search
-I/home/toolchains_sdkdir/include -L/home/toolchains_sdkdir/lib
```
-###### --bin
+##### --bin
- Set the `bin` directory of toolchains
@@ -706,7 +706,7 @@ $ xmake
Before v2.2.1 version, this parameter name is `--toolchains`, exists more ambiguous, so we changed to `--bin=` to set the bin directory.
</p>
-###### --cross
+##### --cross
- Set the prefix of compilation tools
@@ -724,7 +724,7 @@ If we want to use the `armv7-linux-gcc` compiler, we can run the following comma
$ xmake f -p linux --sdk=/usr/toolsdk --bin=/opt/bin --cross=armv7-linux-
```
-###### --as
+##### --as
- Set `asm` assembler
@@ -738,7 +738,7 @@ If the 'AS' environment variable exists, it will use the values specified in the
We can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --as=gcc@/home/xxx/asmips.exe`
</p>
-###### --cc
+##### --cc
- Set c compiler
@@ -752,7 +752,7 @@ If the 'CC' environment variable exists, it will use the values specified in the
We can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --cc=gcc@/home/xxx/ccmips.exe`
</p>
-###### --cxx
+##### --cxx
- Set `c++` compiler
@@ -766,7 +766,7 @@ If the 'CXX' environment variable exists, it will use the values specified in th
We can set a unknown compiler as like-gcc/clang compiler, .e.g `xmake f --cxx=g++@/home/xxx/c++mips.exe`
</p>
-###### --ld
+##### --ld
- Set `c/c++/objc/asm` linker
@@ -780,7 +780,7 @@ If the 'LD' environment variable exists, it will use the values specified in the
We can set a unknown compiler as like-gcc/clang linker, .e.g `xmake f --ld=g++@/home/xxx/c++mips.exe`
</p>
-###### --sh
+##### --sh
- Set `c/c++/objc/asm` shared library linker
@@ -794,7 +794,7 @@ If the 'SH' environment variable exists, it will use the values specified in the
We can set a unknown compiler as like-gcc/clang linker, .e.g `xmake f --sh=g++@/home/xxx/c++mips.exe`
</p>
-###### --ar
+##### --ar
- Set `c/c++/objc/asm` static library archiver
@@ -808,7 +808,7 @@ If the 'AR' environment variable exists, it will use the values specified in the
We can set a unknown compiler as like-ar archiver, .e.g `xmake f --ar=ar@/home/xxx/armips.exe`
</p>
-#### Global Configuration
+### Global Configuration
You can save to the global configuration for simplfying operation.
@@ -829,7 +829,7 @@ $ xmake
You can use short or long command option, for exmaple: `xmake g` or `xmake global`.<br>
</p>
-#### Clean Configuration
+### Clean Configuration
We can clean all cached configuration and re-configure projecct.
@@ -847,7 +847,7 @@ $ xmake
## Dependency Package Management
-#### Local Package Mode
+### Local Package Mode
By including a dependency package directory and a binary package file in the project, it is convenient to integrate some third-party dependency libraries. This method is relatively simple and straightforward, but the disadvantages are also obvious and inconvenient to manage.
@@ -894,7 +894,7 @@ In this way, the test project can pass [add_packages](https://xmake.io/#/zh/manu
For a detailed description of the built-in package, you can also refer to the following related article, which is described in detail: [Dependency package addition and automatic detection mechanism] (http://tboox.org/cn/2016/08/06/add-package -and-autocheck/)
-#### System Search Mode
+### System Search Mode
If you feel that the above built-in package management method is very inconvenient, you can use the extension interface [lib.detect.find_package] provided by xmake (https://xmake.io/#/zh/manual?id=detect-find_package) to find the system. Existing dependencies.
@@ -943,11 +943,11 @@ If third-party tools such as `homebrew`, `pkg-config` are installed on the syste
For a more complete description of the usage, please refer to the [lib.detect.find_package](https://xmake.io/#/en/manual?id=detect-find_package) interface documentation.
-##### Homebrew Integration Support
+#### Homebrew Integration Support
Since homebrew is generally installed directly into the system, users do not need to do any integration work, `lib.detect.find_package` has been natively seamlessly supported.
-##### Vcpkg Integration Support
+#### Vcpkg Integration Support
Currently xmake v2.2.2 version already supports vcpkg, users only need to install vcpkg, execute `$ vcpkg integrate install`, xmake will automatically detect the root path of vcpkg from the system, and then automatically adapt the bread.
@@ -963,7 +963,7 @@ Or we can set it to the global configuration to avoid repeating the settings eac
$ xmake g --vcpkg=f:\vcpkg
```
-#### Remote dependency mode
+### Remote dependency mode
This has been initially supported after the 2.2.2 version, the usage is much simpler, just set the corresponding dependency package, for example:
@@ -990,14 +990,14 @@ xmake will remotely pull the relevant source package, then automatically compile
For more information and progress on package dependency management see the related issues: [Remote package management] (https://github.com/tboox/xmake/issues/69)
-##### Currently Supported Features
+#### Currently Supported Features
* Semantic version support, for example: ">= 1.1.0 < 1.2", "~1.6", "1.2.x", "1.*"
* Provide multi-warehouse management support such as official package warehouse, self-built private warehouse, project built-in warehouse, etc.
* Cross-platform package compilation integration support (packages of different platforms and different architectures can be installed at the same time, fast switching use)
* Debug dependency package support, source code debugging
-##### Dependency Package Processing Mechanism
+#### Dependency Package Processing Mechanism
Here we briefly introduce the processing mechanism of the entire dependency package:
@@ -1009,7 +1009,7 @@ Here we briefly introduce the processing mechanism of the entire dependency pack
2. Retrieve the package matching the corresponding version, then download, compile, and install (Note: installed in a specific xmake directory, will not interfere with the system library environment)
3. Compile the project, and finally automatically link the enabled dependencies
-##### Semantic Version Settings
+#### Semantic Version Settings
Xmake's dependency package management fully supports semantic version selection, for example: "~1.6.1". For a detailed description of the semantic version, see: [http://semver.org/] (http://semver.org/)
@@ -1035,9 +1035,9 @@ add_requires("tbox master")
add_requires("tbox dev")
```
-##### Extra Package Information Settings
+#### Extra Package Information Settings
-###### Optional Package Settings
+##### Optional Package Settings
If the specified dependency package is not supported by the current platform, or if the compilation and installation fails, then xmake will compile the error, which is reasonable for some projects that must rely on certain packages to work.
However, if some packages are optional dependencies, they can be set to optional packages even if they are not compiled properly.
@@ -1046,7 +1046,7 @@ However, if some packages are optional dependencies, they can be set to optional
add_requires("tbox", {optional = true})
```
-###### Disable System Library
+##### Disable System Library
With the default settings, xmake will first check to see if the system library exists (if no version is required). If the user does not want to use the system library and the library provided by the third-party package management, then you can set:
@@ -1054,7 +1054,7 @@ With the default settings, xmake will first check to see if the system library e
add_requires("tbox", {system = false})
```
-###### Using the debug version of the package
+##### Using the debug version of the package
If we want to debug the dependencies at the same time, we can set them to use the debug version of the package (provided that this package supports debug compilation):
@@ -1073,7 +1073,7 @@ package("openssl")
end)
```
-###### Passing additional compilation information to the package
+##### Passing additional compilation information to the package
Some packages have various compile options at compile time, and we can pass them in. Of course, the package itself supports:
@@ -1082,7 +1082,7 @@ add_requires("tbox", {config = {small=true}})
```
Pass `--small=true` to the tbox package so that compiling the installed tbox package is enabled.
-##### Using self-built private package warehouse
+#### Using self-built private package warehouse
If the required package is not in the official repository [xmake-repo](https://github.com/tboox/xmake-repo), we can submit the contribution code to the repository for support.
But if some packages are only for personal or private projects, we can create a private repository repo. The repository organization structure can be found at: [xmake-repo](https://github.com/tboox/xmake-repo)
@@ -1152,11 +1152,11 @@ target("test")
add_packages("libjpeg")
```
-##### Package Management Command Use
+#### Package Management Command Use
The package management command `$ xmake require` can be used to manually display the download, install, uninstall, retrieve, and view package information.
-###### Install the specified package
+##### Install the specified package
```bash
$ xmake require tbox
@@ -1182,7 +1182,7 @@ $ xmake require --extra="debug=true,config={small=true}" tbox
Install the debug package and pass the compilation configuration information of `small=true` to the package.
-###### Uninstalling the specified package
+##### Uninstalling the specified package
```bash
$ xmake require --uninstall tbox
@@ -1190,7 +1190,7 @@ $ xmake require --uninstall tbox
This will completely uninstall the removal package file.
-###### Remove the specified package
+##### Remove the specified package
Only unlink specifies the package, it is not detected by the current project, but the package still exists locally. If it is reinstalled, it will be completed very quickly.
@@ -1198,13 +1198,13 @@ Only unlink specifies the package, it is not detected by the current project, bu
$ xmake require --unlink tbox
```
-###### View package details
+##### View package details
```bash
$ xmake require --info tbox
```
-###### Search for packages in the current warehouse
+##### Search for packages in the current warehouse
```bash
$ xmake require --search tbox
@@ -1218,13 +1218,13 @@ $ xmake require --search pcr
Will also search for pcre, pcre2 and other packages.
-###### List the currently installed packages
+##### List the currently installed packages
```bash
$ xmake require --list
```
-##### Warehouse Management Command Use
+#### Warehouse Management Command Use
As mentioned above, adding a private repository is available (supporting local path addition):
@@ -1250,7 +1250,7 @@ If the remote repository has updates, you can manually perform a warehouse updat
$ xmake repo -u
```
-##### Submit the package to the official warehouse
+#### Submit the package to the official warehouse
If you need a package that is not supported by the current official repository, you can commit it to the official repository after local tuning: [xmake-repo](https://github.com/tboox/xmake-repo)