summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2015-06-10 08:33:14 +0800
committerruki <[email protected]>2015-06-10 08:33:14 +0800
commit53e332e8b0f6c68f37eaf9a05f72662b4bc3d2d6 (patch)
tree89938e0f2fc287fbad6bbb5af10153c13d6d70af
parentd61169b7ea72b22ca89d5a6575865af9148d958e (diff)
rename xmake.lua api
-rw-r--r--tests/console/src/demo/xmake.lua66
-rw-r--r--tests/console/xmake.lua60
-rw-r--r--xmake/scripts/base/project.lua90
3 files changed, 109 insertions, 107 deletions
diff --git a/tests/console/src/demo/xmake.lua b/tests/console/src/demo/xmake.lua
index b8614c40b..cafc9b2a0 100644
--- a/tests/console/src/demo/xmake.lua
+++ b/tests/console/src/demo/xmake.lua
@@ -1,44 +1,44 @@
-target("demo_c")
- kind("binary")
- deps("hello1")
- files("src/demo/*.c")
- links("hello1")
- linkdirs("$(buildir)")
- includedirs("$(buildir)")
- cflags("-DHELLO1")
+add_target("demo_c")
+ set_kind("binary")
+ add_deps("hello1")
+ add_files("src/demo/*.c")
+ add_links("hello1")
+ add_linkdirs("$(buildir)")
+ add_includedirs("$(buildir)")
+ add_cflags("-DHELLO1")
- if modes("release") then defines("NDEBUG") end
+ if modes("release") then add_defines("NDEBUG") end
-target("demo_cpp")
- kind("binary")
- deps("hello2")
- files("src/demo/*.cpp")
- configfile("$(buildir)/demo_cpp.h")
- linkdirs("$(buildir)")
- includedirs("$(buildir)")
- undefines("HELLO2")
- cxxflags("-DHELLO1")
+add_target("demo_cpp")
+ set_kind("binary")
+ add_deps("hello2")
+ add_files("src/demo/*.cpp")
+ set_configfile("$(buildir)/demo_cpp.h")
+ add_linkdirs("$(buildir)")
+ add_includedirs("$(buildir)")
+ add_undefines("HELLO2")
+ add_cxxflags("-DHELLO1")
if plats("macosx", "ios") then
- target("demo_objc")
- kind("binary")
- deps("hello3")
- files("src/demo/*.m")
- links("hello3")
- linkdirs("$(buildir)/lib")
- includedirs("$(buildir)/inc")
- mflags("-DHELLO3", "-DPLAT=\"macosx\"", "-DARCH='armv7, arm64'")
+ add_target("demo_objc")
+ set_kind("binary")
+ add_deps("hello3")
+ add_files("src/demo/*.m")
+ add_links("hello3")
+ add_linkdirs("$(buildir)/lib")
+ add_includedirs("$(buildir)/inc")
+ add_mflags("-DHELLO3", "-DPLAT=\"macosx\"", "-DARCH='armv7, arm64'")
- target("demo_objcpp")
- kind("binary")
- deps("hello3")
- files("src/demo/*.mm")
- mxflags("-DHELLO3")
- ldflags("-L$(buildir)/lib", "-lhello3", "-lhello3")
+ add_target("demo_objcpp")
+ set_kind("binary")
+ add_deps("hello3")
+ add_files("src/demo/*.mm")
+ add_mxflags("-DHELLO3")
+ add_ldflags("-L$(buildir)/lib", "-lhello3", "-lhello3")
if plats("ios") then
- ldflags("-framework Cocoa", "-framework IOKit", "-framework CoreFoundation")
+ add_ldflags("-framework Cocoa", "-framework IOKit", "-framework CoreFoundation")
end
end
diff --git a/tests/console/xmake.lua b/tests/console/xmake.lua
index 6d69379da..154ad5f7e 100644
--- a/tests/console/xmake.lua
+++ b/tests/console/xmake.lua
@@ -1,46 +1,46 @@
-version("1.0.1")
-configfile("$(buildir)/demo.h")
+set_version("1.0.1")
+set_configfile("$(buildir)/demo.h")
if modes("debug") then
- symbols("debug")
- warnings("all")
- optimize("none")
- cxflags("-fsanitize=address", "-ftrapv")
+ set_symbols("debug")
+ set_warnings("all")
+ set_optimize("none")
+ add_cxflags("-fsanitize=address", "-ftrapv")
end
if modes("release") then
- strip("all")
- symbols("hidden")
- cflags("-Wno-error=deprecated-declarations")
- warnings("all")
- optimize("smallest")
- vectorexts("sse2", "ssse3", "mmx")
+ set_strip("all")
+ set_symbols("hidden")
+ add_cflags("-Wno-error=deprecated-declarations")
+ set_warnings("all")
+ set_optimize("smallest")
+ add_vectorexts("sse2", "ssse3", "mmx")
end
if modes("profile") then
- symbols("debug")
- warnings("none")
- optimize("fastest")
+ set_symbols("debug")
+ set_warnings("none")
+ set_optimize("fastest")
end
if archs("x86", "x64") then
- defines("ARCH=\"$(arch)\"", "PLAT=$(plat)", "MODE=$(mode)", "HOST=$(host)")
+ add_defines("ARCH=\"$(arch)\"", "PLAT=$(plat)", "MODE=$(mode)", "HOST=$(host)")
end
-target("hello1")
- kind("static")
- files("src/hello1/*.c")
+add_target("hello1")
+ set_kind("static")
+ add_files("src/hello1/*.c")
-target("hello2")
- kind("shared")
- files("$(projectdir)/src/hello2/*.c")
+add_target("hello2")
+ set_kind("shared")
+ add_files("$(projectdir)/src/hello2/*.c")
-target("hello3")
- kind("static")
- files("src/hello3/*.c")
- headers("src/hello3/*.h")
- headerdir("$(buildir)/inc")
- targetdir("$(buildir)/lib")
- objectdir("$(buildir)/obj")
+add_target("hello3")
+ set_kind("static")
+ add_files("src/hello3/*.c")
+ add_headers("src/hello3/*.h")
+ set_headerdir("$(buildir)/inc")
+ set_targetdir("$(buildir)/lib")
+ set_objectdir("$(buildir)/obj")
-subdirs("src/demo")
+add_subdirs("src/demo")
diff --git a/xmake/scripts/base/project.lua b/xmake/scripts/base/project.lua
index 49432909d..87d517d25 100644
--- a/xmake/scripts/base/project.lua
+++ b/xmake/scripts/base/project.lua
@@ -74,8 +74,25 @@ function project._api_archs(env, ...)
end
end
+-- switch to the given target
+function project._api_target(env, name)
+
+ -- check
+ assert(env and name)
+
+ -- the configs
+ local configs = env._CONFIGS
+ assert(configs)
+
+ -- init the target scope
+ configs[name] = configs[name] or {}
+
+ -- switch to this targe scope
+ env._TARGET = configs[name]
+end
+
-- load all subprojects from the given directories
-function project._api_subdirs(env, ...)
+function project._api_add_subdirs(env, ...)
-- check
assert(env)
@@ -109,7 +126,7 @@ function project._api_subdirs(env, ...)
end
-- load all subprojects from the given files
-function project._api_subfiles(env, ...)
+function project._api_add_subfiles(env, ...)
-- check
assert(env)
@@ -141,45 +158,29 @@ function project._api_subfiles(env, ...)
end
end
--- switch to the given target
-function project._api_target(env, name)
+-- set configure values
+function project._api_set_values(env, name, ...)
-- check
assert(env and name)
- -- the configs
- local configs = env._CONFIGS
- assert(configs)
-
- -- init the target scope
- configs[name] = configs[name] or {}
-
- -- switch to this targe scope
- env._TARGET = configs[name]
-end
-
--- the single configure value
-function project._api_value(env, name, value)
-
- -- check
- assert(env and name and value)
-
-- get the current scope
- local scope = env._TARGET or env._CONFIGS._ROOT
+ local scope = env._TARGET or env._CONFIGS._SET
assert(scope)
- -- update value
- scope[name] = value
+ -- update values
+ scope[name] = {}
+ table.join2(scope[name], ...)
end
--- the multiple configure values
-function project._api_values(env, name, ...)
+-- add configure values
+function project._api_add_values(env, name, ...)
-- check
assert(env and name)
-- get the current scope
- local scope = env._TARGET or env._CONFIGS._ROOTS
+ local scope = env._TARGET or env._CONFIGS._ADD
assert(scope)
-- append values
@@ -331,15 +332,15 @@ function project._make(configs)
-- merge the root configures to all targets
for _, target in pairs(current) do
- -- merge the single root configure
- for k, v in pairs(configs._ROOT) do
+ -- merge the setted configures
+ for k, v in pairs(configs._SET) do
if not target[k] then
target[k] = v
end
end
- -- merge the multiple root configure
- for k, v in pairs(configs._ROOTS) do
+ -- merge the added configures
+ for k, v in pairs(configs._ADD) do
if not target[k] then
target[k] = v
else
@@ -388,23 +389,24 @@ function project.load(file)
end
-- bind the new environment
- local newenv = {_CONFIGS = {_ROOT = {}, _ROOTS = {}}}
+ local newenv = {_CONFIGS = {_SET = {}, _ADD = {}}}
setmetatable(newenv, {__index = _G})
setfenv(script, newenv)
-- register interfaces for the condition
- newenv.modes = function (...) return project._api_modes(newenv, ...) end
- newenv.plats = function (...) return project._api_plats(newenv, ...) end
- newenv.archs = function (...) return project._api_archs(newenv, ...) end
+ newenv.modes = function (...) return project._api_modes(newenv, ...) end
+ newenv.plats = function (...) return project._api_plats(newenv, ...) end
+ newenv.archs = function (...) return project._api_archs(newenv, ...) end
-- register interfaces for the target
- newenv.target = function (...) return project._api_target(newenv, ...) end
+ newenv.set_target = function (...) return project._api_target(newenv, ...) end
+ newenv.add_target = function (...) return project._api_target(newenv, ...) end
-- register interfaces for the subproject files
- newenv.subdirs = function (...) return project._api_subdirs(newenv, ...) end
- newenv.subfiles = function (...) return project._api_subfiles(newenv, ...) end
+ newenv.add_subdirs = function (...) return project._api_add_subdirs(newenv, ...) end
+ newenv.add_subfiles = function (...) return project._api_add_subfiles(newenv, ...) end
- -- register interfaces for the single value
+ -- register interfaces for setting values
local interfaces = { "kind"
, "headerdir"
, "targetdir"
@@ -412,13 +414,15 @@ function project.load(file)
, "configfile"
, "version"
, "strip"
+ , "symbols"
+ , "warnings"
, "optimize"
, "language"}
for _, interface in ipairs(interfaces) do
- newenv[interface] = function (value) return project._api_value(newenv, interface, value) end
+ newenv["set_" .. interface] = function (...) return project._api_set_values(newenv, interface, ...) end
end
- -- register interfaces for the multiple values
+ -- register interfaces for adding values
interfaces = { "deps"
, "files"
, "links"
@@ -435,11 +439,9 @@ function project.load(file)
, "shflags"
, "defines"
, "undefines"
- , "symbols"
- , "warnings"
, "vectorexts"}
for _, interface in ipairs(interfaces) do
- newenv[interface] = function (...) return project._api_values(newenv, interface, ...) end
+ newenv["add_" .. interface] = function (...) return project._api_add_values(newenv, interface, ...) end
end
-- done the project script