diff options
| author | ruki <waruqi@gmail.com> | 2017-11-10 21:00:00 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2017-11-10 00:00:01 +0800 |
| commit | b293a24dcd69088f467d51262658f2346616036e (patch) | |
| tree | e3fd0ca1b2310bb2b0be0330f053850d513f09a8 /zh | |
| parent | eadcb396b9aeff6fd90b098468e153431b4fc1c5 (diff) | |
| download | xmake-docs-b293a24dcd69088f467d51262658f2346616036e.tar.gz xmake-docs-b293a24dcd69088f467d51262658f2346616036e.zip | |
update docs and add del_files api
Diffstat (limited to 'zh')
| -rw-r--r-- | zh/README.md | 36 | ||||
| -rw-r--r-- | zh/manual.md | 30 |
2 files changed, 66 insertions, 0 deletions
diff --git a/zh/README.md b/zh/README.md index ffbc6c0e..2cb2e1ef 100644 --- a/zh/README.md +++ b/zh/README.md @@ -549,6 +549,12 @@ $ xmake f -p linux --sdk=/user/toolsdk --as=armv7-linux-as 如果存在`AS`环境变量的话,会优先使用当前环境变量中指定的值。 +<p class="tips"> +如果指定的编译器名不是那些xmake内置可识别的名字(带有gcc, clang等字样),那么编译器工具检测就会失败。 +这个时候我们可以通过:`xmake f --as=gcc@/home/xxx/asmips.exe` 设置ccmips.exe编译器作为类gcc的使用方式来编译。 +也就是说,在指定编译器为`asmips.exe`的同时,告诉xmake,它跟gcc用法和参数选项基本相同。 +</p> + ###### --cc - 设置c编译器 @@ -561,6 +567,12 @@ $ xmake f -p linux --sdk=/user/toolsdk --cc=armv7-linux-clang 如果存在`CC`环境变量的话,会优先使用当前环境变量中指定的值。 +<p class="tips"> +如果指定的编译器名不是那些xmake内置可识别的名字(带有gcc, clang等字样),那么编译器工具检测就会失败。 +这个时候我们可以通过:`xmake f --cc=gcc@/home/xxx/ccmips.exe` 设置ccmips.exe编译器作为类gcc的使用方式来编译。 +也就是说,在指定编译器为`ccmips.exe`的同时,告诉xmake,它跟gcc用法和参数选项基本相同。 +</p> + ###### --cxx - 设置`c++`编译器 @@ -573,6 +585,12 @@ $ xmake f -p linux --sdk=/user/toolsdk --cxx=armv7-linux-clang++ 如果存在`CXX`环境变量的话,会优先使用当前环境变量中指定的值。 +<p class="tips"> +如果指定的编译器名不是那些xmake内置可识别的名字(带有gcc, clang等字样),那么编译器工具检测就会失败。 +这个时候我们可以通过:`xmake f --cxx=clang++@/home/xxx/c++mips.exe` 设置c++mips.exe编译器作为类clang++的使用方式来编译。 +也就是说,在指定编译器为`c++mips.exe`的同时,告诉xmake,它跟clang++用法和参数选项基本相同。 +</p> + ###### --ld - 设置`c/c++/objc/asm`链接器 @@ -585,6 +603,12 @@ $ xmake f -p linux --sdk=/user/toolsdk --ld=armv7-linux-clang++ 如果存在`LD`环境变量的话,会优先使用当前环境变量中指定的值。 +<p class="tips"> +如果指定的编译器名不是那些xmake内置可识别的名字(带有gcc, clang等字样),那么链接器工具检测就会失败。 +这个时候我们可以通过:`xmake f --ld=g++@/home/xxx/c++mips.exe` 设置c++mips.exe链接器作为类g++的使用方式来编译。 +也就是说,在指定链接器为`c++mips.exe`的同时,告诉xmake,它跟g++用法和参数选项基本相同。 +</p> + ###### --sh - 设置`c/c++/objc/asm`共享库链接器 @@ -595,6 +619,12 @@ $ xmake f -p linux --sdk=/user/toolsdk --sh=armv7-linux-clang++ 如果存在`SH`环境变量的话,会优先使用当前环境变量中指定的值。 +<p class="tips"> +如果指定的编译器名不是那些xmake内置可识别的名字(带有gcc, clang等字样),那么链接器工具检测就会失败。 +这个时候我们可以通过:`xmake f --sh=g++@/home/xxx/c++mips.exe` 设置c++mips.exe链接器作为类g++的使用方式来编译。 +也就是说,在指定链接器为`c++mips.exe`的同时,告诉xmake,它跟g++用法和参数选项基本相同。 +</p> + ###### --ar - 设置`c/c++/objc/asm`静态库归档器 @@ -605,6 +635,12 @@ $ xmake f -p linux --sdk=/user/toolsdk --ar=armv7-linux-ar 如果存在`AR`环境变量的话,会优先使用当前环境变量中指定的值。 +<p class="tips"> +如果指定的编译器名不是那些xmake内置可识别的名字(带有ar等字样),那么链接器工具检测就会失败。 +这个时候我们可以通过:`xmake f --ar=ar@/home/xxx/armips.exe` 设置armips.exe链接器作为类ar的使用方式来编译。 +也就是说,在指定链接器为`armips.exe`的同时,告诉xmake,它跟ar用法和参数选项基本相同。 +</p> + #### 全局配置 我们也可以将一些常用配置保存到全局配置中,来简化频繁地输入: diff --git a/zh/manual.md b/zh/manual.md index 3a1ce532..58df082b 100644 --- a/zh/manual.md +++ b/zh/manual.md @@ -537,6 +537,7 @@ target("test2") | [add_deps](#targetadd_deps) | 添加子工程目标依赖 | >= 1.0.1 | | [add_links](#targetadd_links) | 添加链接库名 | >= 1.0.1 | | [add_files](#targetadd_files) | 添加源代码文件 | >= 1.0.1 | +| [del_files](#targetdel_files) | 从前面的源文件列表中删除指定文件 | >= 2.1.9 | | [add_headers](#targetadd_headers) | 添加安装的头文件 | >= 1.0.1 | | [add_linkdirs](#targetadd_linkdirs) | 添加链接库搜索目录 | >= 1.0.1 | | [add_rpathdirs](#targetadd_rpathdirs) | 添加运行时候动态链接库搜索目录 | >= 2.1.3 | @@ -1580,6 +1581,35 @@ target("test") 可以在`add_files`的最后一个参数,传入一个配置table,去控制指定files的编译选项,里面的配置参数跟target的一致,并且这些文件还会继承target的通用配置`-DTEST1`。 +##### target:del_files + +###### 从前面的源代码文件列表中删除指定文件 + +通过此接口,可以从前面[add_files](targetadd_files)接口添加的文件列表中,删除指定的文件,例如: + +```lua +target("test") + add_files("src/*.c") + del_files("src/test.c") +``` + +上面的例子,可以从`src`目录下添加除`test.c`以外的所有文件,当然这个也可以通过`add_files("src/*.c|test.c")`来达到相同的目的,但是这种方式更加灵活。 + +例如,我们可以条件判断来控制删除哪些文件,并且此接口也支持[add_files](targetadd_files)的匹配模式,过滤模式,进行批量移除。 + +```lua +target("test") + add_files("src/**.c") + del_files("src/test*.c") + del_files("src/subdir/*.c|xxx.c") + if is_plat("iphoneos") then + add_files("xxx.m") + end +``` + +通过上面的例子,我们可以看出`add_files`和`del_files`是根据调用顺序,进行顺序添加和删除的,并且通过`del_files("src/subdir/*.c|xxx.c")`删除一批文件, +并且排除`src/subdir/xxx.c`(就是说,不删除这个文件)。 + ##### target:add_headers ###### 添加安装的头文件 |
