diff options
| author | ruki <[email protected]> | 2017-03-23 10:23:55 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-03-23 10:23:55 +0800 |
| commit | bf7680fde8a4d1c03ad1caabcb5a452437b33fef (patch) | |
| tree | e43c01c16213b501abab222862eb0f8f02d8dfaa /docs | |
| parent | dcf38006d36ec96bbc20be32f97ceb7b5f176821 (diff) | |
modify docs
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/manual.md | 60 | ||||
| -rw-r--r-- | docs/plugins.md | 24 | ||||
| -rwxr-xr-x | docs/zh/manual.md | 58 | ||||
| -rwxr-xr-x | docs/zh/plugins.md | 17 |
4 files changed, 159 insertions, 0 deletions
diff --git a/docs/manual.md b/docs/manual.md index d84b21a0c..e0e0d9390 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -215,6 +215,7 @@ The global interface affects the whole project description scope and all sub-pro | Interfaces | Description | Version | | ------------------------------------- | ----------------------------- | -------- | +| [set_modes](#set_modes) | Set project compilation modes | >= 2.1.2 | | [set_project](#set_project) | Set project name | >= 2.0.1 | | [set_version](#set_version) | Set project version | >= 2.0.1 | | [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 | [add_plugindirs](#add_plugindirs) | Add plugin directories | >= 2.0.1 | | [add_packagedirs](#add_packagedirs) | Add package directories | >= 2.0.1 | +##### set_modes + +###### Set project compilation modes + +This is an optional api, just to make it easy for the plugin to get mode configuration information now. + +```lua +set_modes("debug", "release") +``` + +If you set this configuration, you need not set them manually when generating vs201x project. + +```bash +$ xmake project -k vs2017 +``` + +Otherwise, you need to run: + +```bash +$ xmake project -k vs2017 -m "debug,release" +``` + +<p class="tip"> +If you do not set this configuration, [is_mode](#is_mode) can also be used normally. +</p> + ##### set_project ###### Set project name @@ -410,6 +437,7 @@ target("test2") | [set_strip](#targetset_strip) | 设置是否strip信息 | >= 1.0.1 | | [set_options](#targetset_options) | 设置关联选项 | >= 1.0.1 | | [set_symbols](#targetset_symbols) | 设置符号信息 | >= 1.0.1 | +| [set_basename](#targetset_basename) | 设置目标文件名 | >= 2.1.2 | | [set_warnings](#targetset_warnings) | 设置警告级别 | >= 1.0.1 | | [set_optimize](#targetset_optimize) | 设置优化级别 | >= 1.0.1 | | [set_languages](#targetset_languages) | 设置代码语言标准 | >= 1.0.1 | @@ -630,6 +658,38 @@ set_symbols("debug", "hidden") 如果没有调用这个api,默认是禁用调试符号的。。 +##### target:set_basename + +###### 设置目标文件名 + +默认情况下,生成的目标文件名基于`target("name")`中配置的值,例如: + +```lua +-- 目标文件名为:libxxx.a +target("xxx") + set_kind("static") + +-- 目标文件名为:libxxx2.so +target("xxx2") + set_kind("shared") +``` + +默认的命名方式,基本上可以满足大部分情况下的需求,但是如果有时候想要更加定制化目标文件名 + +例如,按编译模式和架构区分目标名,这个时候可以使用这个接口,来设置: + +```lua +target("xxx") + set_kind("static") + set_basename("xxx_$(mode)_$(arch)") +``` + +如果这个时候,编译配置为:`xmake f -m debug -a armv7`,那么生成的文件名为:`libxxx_debug_armv7.a` + +如果还想进一步定制目标文件的目录名,可参考:[set_targetdir](#targetset_targetdir)。 + +或者通过编写自定义脚本,实现更高级的逻辑,具体见:[after_build](#targetafter_build)和[os.mv](#os-mv)。 + ##### target:set_warnings ###### 设置警告级别 diff --git a/docs/plugins.md b/docs/plugins.md index bbeb90f46..0c81b2fbc 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -370,6 +370,30 @@ $ xmake project -k makefile $ xmake project -k [vs2008|vs2013|vs2015|..] ``` +v2.1.2 or later, it supports multi-mode and multi-architecture generation for vs201x project. + +For example: + +```bash +$ xmake project -k vs2017 -m "debug,release" +``` + +It will generate four project configurations: `debug|x86`, `debug|x64`, `release|x86`, `release|x64`. + +Or you can set modes to `xmake.lua`: + +```lua +set_modes("debug", "release") +``` + +Then, we run the following command: + +```bash +$ xmake project -k vs2017 +``` + +The effect is same. + #### Generate Doxygen Document Please ensure that the doxygen tool has been installed first. diff --git a/docs/zh/manual.md b/docs/zh/manual.md index ddeb67988..1d63edec7 100755 --- a/docs/zh/manual.md +++ b/docs/zh/manual.md @@ -225,6 +225,7 @@ end | 接口 | 描述 | 支持版本 | | ------------------------------------- | ----------------------------- | -------- | +| [set_modes](#set_modes) | 设置支持的编译模式 | >= 2.1.2 | | [set_project](#set_project) | 设置工程名 | >= 2.0.1 | | [set_version](#set_version) | 设置工程版本 | >= 2.0.1 | | [set_xmakever](#set_xmakever) | 设置最小xmake版本 | >= 2.1.1 | @@ -233,6 +234,30 @@ end | [add_plugindirs](#add_plugindirs) | 添加插件目录 | >= 2.0.1 | | [add_packagedirs](#add_packagedirs) | 添加包目录 | >= 2.0.1 | +##### set_modes + +###### 设置支持的编译模式 + +这个是可选接口,一般情况下不需要设置,目前仅用于对工程增加更加细致的描述信息,方便vs工程的多模式生成,以及其他xmake插件中获取模式信息。 + +例如: + +```lua +set_modes("debug", "release") +``` + +如果设置了这个,xmake就知道当前工程支持哪些编译模式,这样生成vs工程文件的时候,只需要: + +```bash +$ xmake project -k vs2017 +``` + +不再需要额外手动指定需要的编译模式了,此外其他一些想要获取工程信息的插件,也许也会需要这些设置信息。 + +<p class="tip"> +当然,对于[is_mode](#is_mode)接口,`set_modes`不是必须的,就算不设置,也是可以通过`is_mode`正常判断当前的编译模式。 +</p> + ##### set_project ###### 设置工程名 @@ -414,6 +439,7 @@ target("test2") | [set_strip](#targetset_strip) | 设置是否strip信息 | >= 1.0.1 | | [set_options](#targetset_options) | 设置关联选项 | >= 1.0.1 | | [set_symbols](#targetset_symbols) | 设置符号信息 | >= 1.0.1 | +| [set_basename](#targetset_basename) | 设置目标文件名 | >= 2.1.2 | | [set_warnings](#targetset_warnings) | 设置警告级别 | >= 1.0.1 | | [set_optimize](#targetset_optimize) | 设置优化级别 | >= 1.0.1 | | [set_languages](#targetset_languages) | 设置代码语言标准 | >= 1.0.1 | @@ -634,6 +660,38 @@ set_symbols("debug", "hidden") 如果没有调用这个api,默认是禁用调试符号的。。 +##### target:set_basename + +###### 设置目标文件名 + +默认情况下,生成的目标文件名基于`target("name")`中配置的值,例如: + +```lua +-- 目标文件名为:libxxx.a +target("xxx") + set_kind("static") + +-- 目标文件名为:libxxx2.so +target("xxx2") + set_kind("shared") +``` + +默认的命名方式,基本上可以满足大部分情况下的需求,但是如果有时候想要更加定制化目标文件名 + +例如,按编译模式和架构区分目标名,这个时候可以使用这个接口,来设置: + +```lua +target("xxx") + set_kind("static") + set_basename("xxx_$(mode)_$(arch)") +``` + +如果这个时候,编译配置为:`xmake f -m debug -a armv7`,那么生成的文件名为:`libxxx_debug_armv7.a` + +如果还想进一步定制目标文件的目录名,可参考:[set_targetdir](#targetset_targetdir)。 + +或者通过编写自定义脚本,实现更高级的逻辑,具体见:[after_build](#targetafter_build)和[os.mv](#os-mv)。 + ##### target:set_warnings ###### 设置警告级别 diff --git a/docs/zh/plugins.md b/docs/zh/plugins.md index 029a58f3d..5d33e0dcc 100755 --- a/docs/zh/plugins.md +++ b/docs/zh/plugins.md @@ -393,6 +393,23 @@ $ xmake project -k makefile $ xmake project -k [vs2008|vs2013|vs2015|..] ``` +v2.1.2以上版本,增强了vs201x版本工程的生成,支持多模式+多架构生成,生成的时候只需要指定: + +```bash +$ xmake project -k vs2017 -m "debug,release" +``` + +生成后的工程文件,同时支持`debug|x86`, `debug|x64`, `release|x86`, `release|x64`四种配置模式。 + +如果不想每次生成的时候,指定模式,可以把模式配置加到`xmake.lua`的中,例如: + +```lua +-- 配置当前的工程,支持哪些编译模式 +set_modes("debug", "release") +``` + +具体`set_modes`的使用,可以参考对应的接口手册文档。 + #### 生成doxygen文档 请先确保本机已安装`doxygen`工具,然后在工程目录下运行: |
