summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-12-13 10:14:31 +0800
committerGitHub <[email protected]>2024-12-13 10:14:31 +0800
commit5aebd42c04b26f00f90a0678bbc4e69692f6f1bd (patch)
tree1ff0eee34e6d1fc22523117ce4c6d9976f6bd176
parent7e33780d50ce0798a79d8b6c833821129d3ce795 (diff)
parentd53f304899857e247c6491acae97ef2c6f8cad6f (diff)
Merge pull request #5953 from Freed-Wu/dev
rename luarocks.module to lua.module, platform.linux.driver to platform.linux.module
-rw-r--r--tests/projects/linux/driver/hello/xmake.lua2
-rw-r--r--tests/projects/linux/driver/hello_custom/xmake.lua2
-rw-r--r--xmake/rules/lua/module/xmake.lua83
-rw-r--r--xmake/rules/luarocks/module/xmake.lua64
-rw-r--r--xmake/rules/platform/linux/driver/xmake.lua19
-rw-r--r--xmake/rules/platform/linux/module/driver_modules.lua (renamed from xmake/rules/platform/linux/driver/driver_modules.lua)0
-rw-r--r--xmake/rules/platform/linux/module/xmake.lua40
7 files changed, 130 insertions, 80 deletions
diff --git a/tests/projects/linux/driver/hello/xmake.lua b/tests/projects/linux/driver/hello/xmake.lua
index bac728434..810ed8fa8 100644
--- a/tests/projects/linux/driver/hello/xmake.lua
+++ b/tests/projects/linux/driver/hello/xmake.lua
@@ -1,7 +1,7 @@
add_requires("linux-headers", {configs = {driver_modules = true}})
target("hello")
- add_rules("platform.linux.driver")
+ add_rules("platform.linux.module")
add_files("src/*.c")
add_packages("linux-headers")
set_license("GPL-2.0")
diff --git a/tests/projects/linux/driver/hello_custom/xmake.lua b/tests/projects/linux/driver/hello_custom/xmake.lua
index 846bddc55..a51f76c82 100644
--- a/tests/projects/linux/driver/hello_custom/xmake.lua
+++ b/tests/projects/linux/driver/hello_custom/xmake.lua
@@ -1,6 +1,6 @@
option("linux-headers", {showmenu = true, description = "Set linux-headers path."})
target("hello")
- add_rules("platform.linux.driver")
+ add_rules("platform.linux.module")
add_files("src/*.c")
set_values("linux.driver.linux-headers", "$(linux-headers)")
diff --git a/xmake/rules/lua/module/xmake.lua b/xmake/rules/lua/module/xmake.lua
new file mode 100644
index 000000000..078f6bd6b
--- /dev/null
+++ b/xmake/rules/lua/module/xmake.lua
@@ -0,0 +1,83 @@
+--!A cross-platform build utility based on Lua
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- Copyright (C) 2015-present, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file xmake.lua
+--
+
+rule("lua.module")
+ on_load(function (target)
+
+ -- imports
+ import("core.cache.detectcache")
+ import("core.project.target", {alias = "project_target"})
+
+ -- set kind
+ if target:is_plat("macosx") then
+ target:set("kind", "binary")
+ target:add("ldflags", "-bundle", "-undefined dynamic_lookup", {force = true})
+ else
+ target:set("kind", "shared")
+ end
+
+ -- set library name
+ local modulename = target:name():split('.', {plain = true})
+ modulename = modulename[#modulename]
+ if target:is_plat("windows", "mingw") then
+ target:set("basename", modulename)
+ else
+ target:set("filename", modulename .. ".so")
+ end
+
+ -- export symbols
+ if target:is_plat("windows") then
+ local exported_name = target:name():gsub("%.", "_")
+ exported_name = exported_name:match('^[^%-]+%-(.+)$') or exported_name
+ target:add("shflags", "/export:luaopen_" .. exported_name, {force = true})
+ else
+ target:set("symbols", "none")
+ end
+
+ -- add lua library
+ local has_lua = false
+ local includedirs = get_config("includedirs") -- pass lua library from luarocks-build-xmake/xmake.lua
+ if includedirs and includedirs:find("lua", 1, true) then
+ has_lua = true
+ end
+ if not has_lua then
+ -- user use `add_requires/add_packages` to add lua/luajit package
+ for _, pkg in ipairs(target:get("packages")) do
+ if pkg == "lua" or pkg == "luajit" then
+ has_lua = true
+ break
+ end
+ end
+ end
+ if not has_lua then
+ target:add(find_package("lua"))
+ end
+ end)
+ on_install(function (target)
+ if target:is_plat("macosx") then
+ target:set("kind", "shared")
+ end
+ local moduledir = path.directory((target:name():gsub('%.', '/')))
+ import("target.action.install")(target, {
+ installdir = target:installdir(),
+ libdir = path.join("lib", moduledir),
+ bindir = path.join("lib", moduledir),
+ includedir = path.join("include", moduledir)})
+ end)
diff --git a/xmake/rules/luarocks/module/xmake.lua b/xmake/rules/luarocks/module/xmake.lua
index cf39c969b..3439e1ed5 100644
--- a/xmake/rules/luarocks/module/xmake.lua
+++ b/xmake/rules/luarocks/module/xmake.lua
@@ -19,65 +19,7 @@
--
rule("luarocks.module")
- on_load(function (target)
-
- -- imports
- import("core.cache.detectcache")
- import("core.project.target", {alias = "project_target"})
-
- -- set kind
- if target:is_plat("macosx") then
- target:set("kind", "binary")
- target:add("ldflags", "-bundle", "-undefined dynamic_lookup", {force = true})
- else
- target:set("kind", "shared")
- end
-
- -- set library name
- local modulename = target:name():split('.', {plain = true})
- modulename = modulename[#modulename]
- if target:is_plat("windows", "mingw") then
- target:set("basename", modulename)
- else
- target:set("filename", modulename .. ".so")
- end
-
- -- export symbols
- if target:is_plat("windows") then
- local exported_name = target:name():gsub("%.", "_")
- exported_name = exported_name:match('^[^%-]+%-(.+)$') or exported_name
- target:add("shflags", "/export:luaopen_" .. exported_name, {force = true})
- else
- target:set("symbols", "none")
- end
-
- -- add lua library
- local has_lua = false
- local includedirs = get_config("includedirs") -- pass lua library from luarocks-build-xmake/xmake.lua
- if includedirs and includedirs:find("lua", 1, true) then
- has_lua = true
- end
- if not has_lua then
- -- user use `add_requires/add_packages` to add lua/luajit package
- for _, pkg in ipairs(target:get("packages")) do
- if pkg == "lua" or pkg == "luajit" then
- has_lua = true
- break
- end
- end
- end
- if not has_lua then
- target:add(find_package("lua"))
- end
- end)
- on_install(function (target)
- if target:is_plat("macosx") then
- target:set("kind", "shared")
- end
- local moduledir = path.directory((target:name():gsub('%.', '/')))
- import("target.action.install")(target, {
- installdir = target:installdir(),
- libdir = path.join("lib", moduledir),
- bindir = path.join("lib", moduledir),
- includedir = path.join("include", moduledir)})
+ on_config(function (target)
+ wprint('deprecated: please use add_rules("lua.module") instead of add_rules("luarocks.module")')
end)
+ add_deps("lua.module")
diff --git a/xmake/rules/platform/linux/driver/xmake.lua b/xmake/rules/platform/linux/driver/xmake.lua
index 297dcc83e..a050185b3 100644
--- a/xmake/rules/platform/linux/driver/xmake.lua
+++ b/xmake/rules/platform/linux/driver/xmake.lua
@@ -18,23 +18,8 @@
-- @file xmake.lua
--
--- build linux driver module
rule("platform.linux.driver")
- set_sourcekinds("cc")
- on_load(function (target)
- import("driver_modules").load(target)
- end)
on_config(function (target)
- import("driver_modules").config(target)
- end)
- on_link(function (target, opt)
- import("driver_modules").link(target, opt)
- end)
- on_install(function (target)
- import("driver_modules").install(target)
+ wprint('deprecated: please use add_rules("platform.linux.module") instead of add_rules("platform.linux.driver")')
end)
- on_uninstall(function (target)
- import("driver_modules").uninstall(target)
- end)
-
-
+ add_deps("platform.linux.module")
diff --git a/xmake/rules/platform/linux/driver/driver_modules.lua b/xmake/rules/platform/linux/module/driver_modules.lua
index 8218a972c..8218a972c 100644
--- a/xmake/rules/platform/linux/driver/driver_modules.lua
+++ b/xmake/rules/platform/linux/module/driver_modules.lua
diff --git a/xmake/rules/platform/linux/module/xmake.lua b/xmake/rules/platform/linux/module/xmake.lua
new file mode 100644
index 000000000..297dcc83e
--- /dev/null
+++ b/xmake/rules/platform/linux/module/xmake.lua
@@ -0,0 +1,40 @@
+--!A cross-platform build utility based on Lua
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- Copyright (C) 2015-present, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file xmake.lua
+--
+
+-- build linux driver module
+rule("platform.linux.driver")
+ set_sourcekinds("cc")
+ on_load(function (target)
+ import("driver_modules").load(target)
+ end)
+ on_config(function (target)
+ import("driver_modules").config(target)
+ end)
+ on_link(function (target, opt)
+ import("driver_modules").link(target, opt)
+ end)
+ on_install(function (target)
+ import("driver_modules").install(target)
+ end)
+ on_uninstall(function (target)
+ import("driver_modules").uninstall(target)
+ end)
+
+