Browse Source

update find_program doc

ruki 8 years ago
parent
commit
da98f58136
4 changed files with 100 additions and 16 deletions
  1. 40 0
      README.md
  2. 10 8
      manual.md
  3. 40 0
      zh/README.md
  4. 10 8
      zh/manual.md

+ 40 - 0
README.md

@@ -252,6 +252,46 @@ hello`main:
     You can also use short command option, for exmaple: `xmake r` or `xmake run`
 </p>
 
+## Project Examples
+
+#### Executale Program
+
+```lua
+target("test")
+    set_kind("binary")
+    add_files("src/*c")
+```
+
+#### Static Library Program
+
+```lua
+target("library")
+    set_kind("static")
+    add_files("src/library/*.c")
+
+target("test")
+    set_kind("binary")
+    add_files("src/*c")
+    add_deps("library")
+```
+
+We use `add_deps` to link a static library to test target.
+
+#### Share Library Program
+
+```lua
+target("library")
+    set_kind("shared")
+    add_files("src/library/*.c")
+
+target("test")
+    set_kind("binary")
+    add_files("src/*c")
+    add_deps("library")
+```
+
+We use `add_deps` to link a share library to test target.
+
 ## Configuration
 
 Set compilation configuration before building project with command `xmake f|config`.

+ 10 - 8
manual.md

@@ -4018,6 +4018,8 @@ $ export COLORTERM=truecolor
 $ xmake --version
 ```
 
+2.1.7版本可通过`COLORTERM=nocolor`来禁用色彩输出。
+
 ##### cprintf
 
 ###### 无换行彩色打印终端日志
@@ -6092,7 +6094,7 @@ local program = find_program("ccache")
 指定搜索目录,修改尝试运行的检测命令参数(默认是:`ccache --version`):
 
 ```lua
-local program = find_program("ccache", {"/usr/bin", "/usr/local/bin"}, "--help") 
+local program = find_program("ccache", {pathes = {"/usr/bin", "/usr/local/bin"}, check = "--help"}) 
 ```
 
 上述代码会尝试运行:`/usr/bin/ccache --help`,如果运行成功,则返回:`/usr/bin/ccache`。
@@ -6100,14 +6102,14 @@ local program = find_program("ccache", {"/usr/bin", "/usr/local/bin"}, "--help")
 如果`--help`也没法满足需求,有些程序没有`--version/--help`参数,那么可以自定义运行脚本,来运行检测:
 
 ```lua
-local program = find_program("ccache", {"/usr/bin", "/usr/local/bin"}, function (program) os.run("%s -h", program) end)
+local program = find_program("ccache", {pathes = {"/usr/bin", "/usr/local/bin"}, check = function (program) os.run("%s -h", program) end})
 ```
 
 同样,搜索路径列表支持内建变量和自定义脚本:
 
 ```lua
-local program = find_program("ccache", {"$(env PATH)", "$(reg HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug;Debugger)"})
-local program = find_program("ccache", {"$(env PATH)", function () return "/usr/local/bin" end})
+local program = find_program("ccache", {pathes = {"$(env PATH)", "$(reg HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug;Debugger)"}})
+local program = find_program("ccache", {pathes = {"$(env PATH)", function () return "/usr/local/bin" end}})
 ```
 
 <p class="tip">
@@ -6133,20 +6135,20 @@ local programver = find_programver("ccache")
 默认它会通过`ccache --version`尝试获取版本,如果不存在此参数,可以自己指定其他参数:
 
 ```lua
-local version = find_programver("ccache", "-v")
+local version = find_programver("ccache", {command = "-v"})
 ```
 
 甚至自定义版本获取脚本:
 
 ```lua
-local version = find_programver("ccache", function () return os.iorun("ccache --version") end)
+local version = find_programver("ccache", {command = function () return os.iorun("ccache --version") end})
 ```
 
 对于版本号的提取规则,如果内置的匹配模式不满足要求,也可以自定义:
 
 ```lua
-local version = find_programver("ccache", "--version", "(%d+%.?%d*%.?%d*.-)%s")
-local version = find_programver("ccache", "--version", function (output) return output:match("(%d+%.?%d*%.?%d*.-)%s") end)
+local version = find_programver("ccache", {command = "--version", parse = "(%d+%.?%d*%.?%d*.-)%s"})
+local version = find_programver("ccache", {command = "--version", parse = function (output) return output:match("(%d+%.?%d*%.?%d*.-)%s") end})
 ```
 
 <p class="tip">

+ 40 - 0
zh/README.md

@@ -280,6 +280,46 @@ hello`main:
     你也可以使用简写的命令行选项,例如: `xmake r` 或者 `xmake run`
 </p>
 
+## 工程实例
+
+#### 可执行程序
+
+```lua
+target("test")
+    set_kind("binary")
+    add_files("src/*c")
+```
+
+#### 静态库程序
+
+```lua
+target("library")
+    set_kind("static")
+    add_files("src/library/*.c")
+
+target("test")
+    set_kind("binary")
+    add_files("src/*c")
+    add_deps("library")
+```
+
+通过`add_deps`将一个静态库自动链接到test可执行程序。
+
+#### 动态库程序
+
+```lua
+target("library")
+    set_kind("shared")
+    add_files("src/library/*.c")
+
+target("test")
+    set_kind("binary")
+    add_files("src/*c")
+    add_deps("library")
+```
+
+通过`add_deps`将一个动态库自动链接到test可执行程序。
+
 ## 配置
 
 通过`xmake f|config`配置命令,设置构建前的相关配置信息,详细参数选项,请运行: `xmake f --help`。

+ 10 - 8
zh/manual.md

@@ -4035,6 +4035,8 @@ $ export COLORTERM=truecolor
 $ xmake --version
 ```
 
+2.1.7版本可通过`COLORTERM=nocolor`来禁用色彩输出。
+
 ##### cprintf
 
 ###### 无换行彩色打印终端日志
@@ -6109,7 +6111,7 @@ local program = find_program("ccache")
 指定搜索目录,修改尝试运行的检测命令参数(默认是:`ccache --version`):
 
 ```lua
-local program = find_program("ccache", {"/usr/bin", "/usr/local/bin"}, "--help") 
+local program = find_program("ccache", {pathes = {"/usr/bin", "/usr/local/bin"}, check = "--help"}) 
 ```
 
 上述代码会尝试运行:`/usr/bin/ccache --help`,如果运行成功,则返回:`/usr/bin/ccache`。
@@ -6117,14 +6119,14 @@ local program = find_program("ccache", {"/usr/bin", "/usr/local/bin"}, "--help")
 如果`--help`也没法满足需求,有些程序没有`--version/--help`参数,那么可以自定义运行脚本,来运行检测:
 
 ```lua
-local program = find_program("ccache", {"/usr/bin", "/usr/local/bin"}, function (program) os.run("%s -h", program) end)
+local program = find_program("ccache", {pathes = {"/usr/bin", "/usr/local/bin"}, check = function (program) os.run("%s -h", program) end})
 ```
 
 同样,搜索路径列表支持内建变量和自定义脚本:
 
 ```lua
-local program = find_program("ccache", {"$(env PATH)", "$(reg HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug;Debugger)"})
-local program = find_program("ccache", {"$(env PATH)", function () return "/usr/local/bin" end})
+local program = find_program("ccache", {pathes = {"$(env PATH)", "$(reg HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug;Debugger)"}})
+local program = find_program("ccache", {pathes = {"$(env PATH)", function () return "/usr/local/bin" end}})
 ```
 
 <p class="tip">
@@ -6150,20 +6152,20 @@ local programver = find_programver("ccache")
 默认它会通过`ccache --version`尝试获取版本,如果不存在此参数,可以自己指定其他参数:
 
 ```lua
-local version = find_programver("ccache", "-v")
+local version = find_programver("ccache", {command = "-v"})
 ```
 
 甚至自定义版本获取脚本:
 
 ```lua
-local version = find_programver("ccache", function () return os.iorun("ccache --version") end)
+local version = find_programver("ccache", {command = function () return os.iorun("ccache --version") end})
 ```
 
 对于版本号的提取规则,如果内置的匹配模式不满足要求,也可以自定义:
 
 ```lua
-local version = find_programver("ccache", "--version", "(%d+%.?%d*%.?%d*.-)%s")
-local version = find_programver("ccache", "--version", function (output) return output:match("(%d+%.?%d*%.?%d*.-)%s") end)
+local version = find_programver("ccache", {command = "--version", parse = "(%d+%.?%d*%.?%d*.-)%s"})
+local version = find_programver("ccache", {command = "--version", parse = function (output) return output:match("(%d+%.?%d*%.?%d*.-)%s") end})
 ```
 
 <p class="tip">