diff options
| author | ruki <[email protected]> | 2019-02-18 22:43:56 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-02-18 10:23:40 +0800 |
| commit | b9c0378a2ce66a42069fad967c40d6a0289b1cdf (patch) | |
| tree | 28646c2763312e00d9cacf4996d0a6f621fe99ab | |
| parent | e1ab1e11d67af8fc4dfa76e3586a7531af87f777 (diff) | |
add default variable for configfiles
| -rw-r--r-- | CHANGELOG.md | 2 | ||||
| -rw-r--r-- | tests/apis/add_configfiles/config2.h.in | 2 | ||||
| -rw-r--r-- | xmake/actions/config/configfiles.lua | 19 |
3 files changed, 22 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index a45e336c1..13734c167 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ * [#319](https://github.com/xmake-io/xmake/issues/319): Add `add_headerfiles` and `add_headerdirs` to improve to set header files and directories * Improve `lib.detect.find_package` and add builtin `find_packages("zlib 1.x", "openssl", {xxx = ...})` api * Mark `set_modes()` as deprecated, we use `add_rules("mode.debug", "mode.release")` instead of it +* [#353](https://github.com/xmake-io/xmake/issues/353) Improve `target:set`, `target:add` and add `target:del` to modify target configuration ### Bugs fixed @@ -578,6 +579,7 @@ * [#319](https://github.com/xmake-io/xmake/issues/319): 添加`add_headerfiles`和`add_headerdirs`接口去改进头文件的设置 * 改进`lib.detect.find_package`并且添加内建的`find_packages("zlib 1.x", "openssl", {xxx = ...})`接口 * 标记`set_modes()`作为废弃接口, 我们使用`add_rules("mode.debug", "mode.release")`来替代它 +* [#353](https://github.com/xmake-io/xmake/issues/353) 改进`target:set`, `target:add` 并且添加`target:del`去动态修改target配置 ### Bugs修复 diff --git a/tests/apis/add_configfiles/config2.h.in b/tests/apis/add_configfiles/config2.h.in index eec2d90ac..a4e457d4c 100644 --- a/tests/apis/add_configfiles/config2.h.in +++ b/tests/apis/add_configfiles/config2.h.in @@ -8,3 +8,5 @@ @define FOO2_ENABLE@ @define FOO2_ENABLE2@ @define FOO2_STRING@ + +@default default_test 0@ diff --git a/xmake/actions/config/configfiles.lua b/xmake/actions/config/configfiles.lua index 936a881fe..ae47b6525 100644 --- a/xmake/actions/config/configfiles.lua +++ b/xmake/actions/config/configfiles.lua @@ -184,11 +184,22 @@ function _generate_configfile(srcfile, dstfile, fileinfo, targets) -- is ${define variable}? local isdefine = false - if variable:startswith("define") then + if variable:startswith("define ") then variable = variable:split("%s+")[2] isdefine = true end + -- is ${default variable xxx}? + local default = nil + local isdefault = false + if variable:startswith("default ") then + local varinfo = variable:split("%s+") + variable = varinfo[2] + default = varinfo[3] + isdefault = true + assert(default ~= nil, "please set default value for variable(%s)", variable) + end + -- get variable value local value = variables[variable] if isdefine then @@ -207,6 +218,12 @@ function _generate_configfile(srcfile, dstfile, fileinfo, targets) else raise("unknown variable(%s) type: %s", variable, type(value)) end + elseif isdefault then + if value == nil then + value = default + else + value = tostring(value) + end else assert(value ~= nil, "cannot get variable(%s) in %s.", variable, srcfile) end |
