Skip to content

Commit bf7680f

Browse files
committed
modify docs
1 parent dcf3800 commit bf7680f

File tree

4 files changed

+159
-0
lines changed

4 files changed

+159
-0
lines changed

docs/manual.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ The global interface affects the whole project description scope and all sub-pro
215215

216216
| Interfaces | Description | Version |
217217
| ------------------------------------- | ----------------------------- | -------- |
218+
| [set_modes](#set_modes) | Set project compilation modes | >= 2.1.2 |
218219
| [set_project](#set_project) | Set project name | >= 2.0.1 |
219220
| [set_version](#set_version) | Set project version | >= 2.0.1 |
220221
| [set_xmakever](#set_xmakever) | Set minimal xmake version | >= 2.1.1 |
@@ -223,6 +224,32 @@ The global interface affects the whole project description scope and all sub-pro
223224
| [add_plugindirs](#add_plugindirs) | Add plugin directories | >= 2.0.1 |
224225
| [add_packagedirs](#add_packagedirs) | Add package directories | >= 2.0.1 |
225226

227+
##### set_modes
228+
229+
###### Set project compilation modes
230+
231+
This is an optional api, just to make it easy for the plugin to get mode configuration information now.
232+
233+
```lua
234+
set_modes("debug", "release")
235+
```
236+
237+
If you set this configuration, you need not set them manually when generating vs201x project.
238+
239+
```bash
240+
$ xmake project -k vs2017
241+
```
242+
243+
Otherwise, you need to run:
244+
245+
```bash
246+
$ xmake project -k vs2017 -m "debug,release"
247+
```
248+
249+
<p class="tip">
250+
If you do not set this configuration, [is_mode](#is_mode) can also be used normally.
251+
</p>
252+
226253
##### set_project
227254

228255
###### Set project name
@@ -410,6 +437,7 @@ target("test2")
410437
| [set_strip](#targetset_strip) | 设置是否strip信息 | >= 1.0.1 |
411438
| [set_options](#targetset_options) | 设置关联选项 | >= 1.0.1 |
412439
| [set_symbols](#targetset_symbols) | 设置符号信息 | >= 1.0.1 |
440+
| [set_basename](#targetset_basename) | 设置目标文件名 | >= 2.1.2 |
413441
| [set_warnings](#targetset_warnings) | 设置警告级别 | >= 1.0.1 |
414442
| [set_optimize](#targetset_optimize) | 设置优化级别 | >= 1.0.1 |
415443
| [set_languages](#targetset_languages) | 设置代码语言标准 | >= 1.0.1 |
@@ -630,6 +658,38 @@ set_symbols("debug", "hidden")
630658
631659
如果没有调用这个api,默认是禁用调试符号的。。
632660
661+
##### target:set_basename
662+
663+
###### 设置目标文件名
664+
665+
默认情况下,生成的目标文件名基于`target("name")`中配置的值,例如:
666+
667+
```lua
668+
-- 目标文件名为:libxxx.a
669+
target("xxx")
670+
set_kind("static")
671+
672+
-- 目标文件名为:libxxx2.so
673+
target("xxx2")
674+
set_kind("shared")
675+
```
676+
677+
默认的命名方式,基本上可以满足大部分情况下的需求,但是如果有时候想要更加定制化目标文件名
678+
679+
例如,按编译模式和架构区分目标名,这个时候可以使用这个接口,来设置:
680+
681+
```lua
682+
target("xxx")
683+
set_kind("static")
684+
set_basename("xxx_$(mode)_$(arch)")
685+
```
686+
687+
如果这个时候,编译配置为:`xmake f -m debug -a armv7`,那么生成的文件名为:`libxxx_debug_armv7.a`
688+
689+
如果还想进一步定制目标文件的目录名,可参考:[set_targetdir](#targetset_targetdir)。
690+
691+
或者通过编写自定义脚本,实现更高级的逻辑,具体见:[after_build](#targetafter_build)和[os.mv](#os-mv)。
692+
633693
##### target:set_warnings
634694
635695
###### 设置警告级别

docs/plugins.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,30 @@ $ xmake project -k makefile
370370
$ xmake project -k [vs2008|vs2013|vs2015|..]
371371
```
372372

373+
v2.1.2 or later, it supports multi-mode and multi-architecture generation for vs201x project.
374+
375+
For example:
376+
377+
```bash
378+
$ xmake project -k vs2017 -m "debug,release"
379+
```
380+
381+
It will generate four project configurations: `debug|x86`, `debug|x64`, `release|x86`, `release|x64`.
382+
383+
Or you can set modes to `xmake.lua`:
384+
385+
```lua
386+
set_modes("debug", "release")
387+
```
388+
389+
Then, we run the following command:
390+
391+
```bash
392+
$ xmake project -k vs2017
393+
```
394+
395+
The effect is same.
396+
373397
#### Generate Doxygen Document
374398

375399
Please ensure that the doxygen tool has been installed first.

docs/zh/manual.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ end
225225

226226
| 接口 | 描述 | 支持版本 |
227227
| ------------------------------------- | ----------------------------- | -------- |
228+
| [set_modes](#set_modes) | 设置支持的编译模式 | >= 2.1.2 |
228229
| [set_project](#set_project) | 设置工程名 | >= 2.0.1 |
229230
| [set_version](#set_version) | 设置工程版本 | >= 2.0.1 |
230231
| [set_xmakever](#set_xmakever) | 设置最小xmake版本 | >= 2.1.1 |
@@ -233,6 +234,30 @@ end
233234
| [add_plugindirs](#add_plugindirs) | 添加插件目录 | >= 2.0.1 |
234235
| [add_packagedirs](#add_packagedirs) | 添加包目录 | >= 2.0.1 |
235236

237+
##### set_modes
238+
239+
###### 设置支持的编译模式
240+
241+
这个是可选接口,一般情况下不需要设置,目前仅用于对工程增加更加细致的描述信息,方便vs工程的多模式生成,以及其他xmake插件中获取模式信息。
242+
243+
例如:
244+
245+
```lua
246+
set_modes("debug", "release")
247+
```
248+
249+
如果设置了这个,xmake就知道当前工程支持哪些编译模式,这样生成vs工程文件的时候,只需要:
250+
251+
```bash
252+
$ xmake project -k vs2017
253+
```
254+
255+
不再需要额外手动指定需要的编译模式了,此外其他一些想要获取工程信息的插件,也许也会需要这些设置信息。
256+
257+
<p class="tip">
258+
当然,对于[is_mode](#is_mode)接口,`set_modes`不是必须的,就算不设置,也是可以通过`is_mode`正常判断当前的编译模式。
259+
</p>
260+
236261
##### set_project
237262

238263
###### 设置工程名
@@ -414,6 +439,7 @@ target("test2")
414439
| [set_strip](#targetset_strip) | 设置是否strip信息 | >= 1.0.1 |
415440
| [set_options](#targetset_options) | 设置关联选项 | >= 1.0.1 |
416441
| [set_symbols](#targetset_symbols) | 设置符号信息 | >= 1.0.1 |
442+
| [set_basename](#targetset_basename) | 设置目标文件名 | >= 2.1.2 |
417443
| [set_warnings](#targetset_warnings) | 设置警告级别 | >= 1.0.1 |
418444
| [set_optimize](#targetset_optimize) | 设置优化级别 | >= 1.0.1 |
419445
| [set_languages](#targetset_languages) | 设置代码语言标准 | >= 1.0.1 |
@@ -634,6 +660,38 @@ set_symbols("debug", "hidden")
634660
635661
如果没有调用这个api,默认是禁用调试符号的。。
636662
663+
##### target:set_basename
664+
665+
###### 设置目标文件名
666+
667+
默认情况下,生成的目标文件名基于`target("name")`中配置的值,例如:
668+
669+
```lua
670+
-- 目标文件名为:libxxx.a
671+
target("xxx")
672+
set_kind("static")
673+
674+
-- 目标文件名为:libxxx2.so
675+
target("xxx2")
676+
set_kind("shared")
677+
```
678+
679+
默认的命名方式,基本上可以满足大部分情况下的需求,但是如果有时候想要更加定制化目标文件名
680+
681+
例如,按编译模式和架构区分目标名,这个时候可以使用这个接口,来设置:
682+
683+
```lua
684+
target("xxx")
685+
set_kind("static")
686+
set_basename("xxx_$(mode)_$(arch)")
687+
```
688+
689+
如果这个时候,编译配置为:`xmake f -m debug -a armv7`,那么生成的文件名为:`libxxx_debug_armv7.a`
690+
691+
如果还想进一步定制目标文件的目录名,可参考:[set_targetdir](#targetset_targetdir)。
692+
693+
或者通过编写自定义脚本,实现更高级的逻辑,具体见:[after_build](#targetafter_build)和[os.mv](#os-mv)。
694+
637695
##### target:set_warnings
638696
639697
###### 设置警告级别

docs/zh/plugins.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,23 @@ $ xmake project -k makefile
393393
$ xmake project -k [vs2008|vs2013|vs2015|..]
394394
```
395395

396+
v2.1.2以上版本,增强了vs201x版本工程的生成,支持多模式+多架构生成,生成的时候只需要指定:
397+
398+
```bash
399+
$ xmake project -k vs2017 -m "debug,release"
400+
```
401+
402+
生成后的工程文件,同时支持`debug|x86`, `debug|x64`, `release|x86`, `release|x64`四种配置模式。
403+
404+
如果不想每次生成的时候,指定模式,可以把模式配置加到`xmake.lua`的中,例如:
405+
406+
```lua
407+
-- 配置当前的工程,支持哪些编译模式
408+
set_modes("debug", "release")
409+
```
410+
411+
具体`set_modes`的使用,可以参考对应的接口手册文档。
412+
396413
#### 生成doxygen文档
397414

398415
请先确保本机已安装`doxygen`工具,然后在工程目录下运行:

0 commit comments

Comments
 (0)