diff options
| author | ruki <[email protected]> | 2015-06-10 08:33:14 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2015-06-10 08:33:14 +0800 |
| commit | 53e332e8b0f6c68f37eaf9a05f72662b4bc3d2d6 (patch) | |
| tree | 89938e0f2fc287fbad6bbb5af10153c13d6d70af | |
| parent | d61169b7ea72b22ca89d5a6575865af9148d958e (diff) | |
rename xmake.lua api
| -rw-r--r-- | tests/console/src/demo/xmake.lua | 66 | ||||
| -rw-r--r-- | tests/console/xmake.lua | 60 | ||||
| -rw-r--r-- | xmake/scripts/base/project.lua | 90 |
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 |
