summaryrefslogtreecommitdiff
path: root/xmake/plugins/check
diff options
context:
space:
mode:
authorruki <[email protected]>2023-02-21 00:43:15 +0800
committerruki <[email protected]>2023-02-21 00:43:15 +0800
commite0ac2fd899e03be83ad506616e0dab931ea69969 (patch)
tree5da4d14711ef983727061071c872ef836f7b960b /xmake/plugins/check
parent559f90b555e5227716a6762d545c9c2171fef55c (diff)
move checker
Diffstat (limited to 'xmake/plugins/check')
-rw-r--r--xmake/plugins/check/checker.lua105
-rw-r--r--xmake/plugins/check/checkers/api/api_checker.lua158
-rw-r--r--xmake/plugins/check/checkers/api/target/asflags.lua34
-rw-r--r--xmake/plugins/check/checkers/api/target/cflags.lua34
-rw-r--r--xmake/plugins/check/checkers/api/target/configfiles.lua33
-rw-r--r--xmake/plugins/check/checkers/api/target/cxflags.lua34
-rw-r--r--xmake/plugins/check/checkers/api/target/cxxflags.lua34
-rw-r--r--xmake/plugins/check/checkers/api/target/exceptions.lua27
-rw-r--r--xmake/plugins/check/checkers/api/target/files.lua33
-rw-r--r--xmake/plugins/check/checkers/api/target/fpmodels.lua27
-rw-r--r--xmake/plugins/check/checkers/api/target/frameworkdirs.lua32
-rw-r--r--xmake/plugins/check/checkers/api/target/headerfiles.lua34
-rw-r--r--xmake/plugins/check/checkers/api/target/includedirs.lua32
-rw-r--r--xmake/plugins/check/checkers/api/target/installfiles.lua34
-rw-r--r--xmake/plugins/check/checkers/api/target/kind.lua27
-rw-r--r--xmake/plugins/check/checkers/api/target/languages.lua41
-rw-r--r--xmake/plugins/check/checkers/api/target/ldflags.lua36
-rw-r--r--xmake/plugins/check/checkers/api/target/linkdirs.lua32
-rw-r--r--xmake/plugins/check/checkers/api/target/optimize.lua27
-rw-r--r--xmake/plugins/check/checkers/api/target/packages.lua33
-rw-r--r--xmake/plugins/check/checkers/api/target/shflags.lua36
-rw-r--r--xmake/plugins/check/checkers/api/target/strip.lua27
-rw-r--r--xmake/plugins/check/checkers/api/target/symbols.lua34
-rw-r--r--xmake/plugins/check/checkers/api/target/vectorexts.lua27
-rw-r--r--xmake/plugins/check/checkers/api/target/version.lua42
-rw-r--r--xmake/plugins/check/checkers/api/target/warnings.lua27
-rw-r--r--xmake/plugins/check/checkers/clang/tidy.lua179
-rw-r--r--xmake/plugins/check/checkers/cuda/devlink.lua54
-rw-r--r--xmake/plugins/check/main.lua4
29 files changed, 2 insertions, 1275 deletions
diff --git a/xmake/plugins/check/checker.lua b/xmake/plugins/check/checker.lua
deleted file mode 100644
index f599b69ca..000000000
--- a/xmake/plugins/check/checker.lua
+++ /dev/null
@@ -1,105 +0,0 @@
---!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 checker.lua
---
-
--- imports
-import("core.base.option")
-
--- get all checkers
-function checkers()
- local checkers = _g._CHECKERS
- if not checkers then
- checkers = {
- -- target api checkers
- ["api.target.version"] = {description = "Check version configuration in target."},
- ["api.target.kind"] = {description = "Check kind configuration in target.", timely = true},
- ["api.target.strip"] = {description = "Check strip configuration in target.", timely = true},
- ["api.target.optimize"] = {description = "Check optimize configuration in target.", timely = true},
- ["api.target.symbols"] = {description = "Check symbols configuration in target.", timely = true},
- ["api.target.fpmodels"] = {description = "Check fpmodels configuration in target.", timely = true},
- ["api.target.warnings"] = {description = "Check warnings configuration in target.", timely = true},
- ["api.target.languages"] = {description = "Check languages configuration in target.", timely = true},
- ["api.target.vectorexts"] = {description = "Check vectorexts configuration in target.", timely = true},
- ["api.target.exceptions"] = {description = "Check exceptions configuration in target.", timely = true},
- ["api.target.packages"] = {description = "Check packages configuration in target."},
- ["api.target.files"] = {description = "Check files configuration in target."},
- ["api.target.headerfiles"] = {description = "Check header files configuration in target."},
- ["api.target.installfiles"] = {description = "Check install files configuration in target."},
- ["api.target.configfiles"] = {description = "Check config files configuration in target."},
- ["api.target.linkdirs"] = {description = "Check linkdirs configuration in target.", timely = true},
- ["api.target.includedirs"] = {description = "Check includedirs configuration in target.", timely = true},
- ["api.target.frameworkdirs"] = {description = "Check frameworkdirs configuration in target.", timely = true},
- ["api.target.cflags"] = {description = "Check c compiler flags configuration in target."},
- ["api.target.cxflags"] = {description = "Check c/c++ compiler flags configuration in target."},
- ["api.target.cxxflags"] = {description = "Check c++ compiler flags configuration in target."},
- ["api.target.asflags"] = {description = "Check assembler flags configuration in target."},
- ["api.target.ldflags"] = {description = "Check binary linker flags configuration in target."},
- ["api.target.shflags"] = {description = "Check shared library linker flags configuration in target."},
- -- cuda checkers
- ["cuda.devlink"] = {description = "Check devlink for targets.", timely = true},
- -- clang tidy checker
- ["clang.tidy"] = {description = "Check project code using clang-tidy.", showstats = false}
- }
- _g._CHECKERS = checkers
- end
- return checkers
-end
-
--- complete checkers
-function complete(complete, opt)
- return try
- {
- function ()
- local list = {}
- local groupstats = {}
- for name, _ in table.orderpairs(checkers()) do
- local groupname = name:split(".", {plain = true})[1]
- groupstats[groupname] = (groupstats[groupname] or 0) + 1
- if not complete then
- local limit = 16
- if groupstats[groupname] < limit then
- table.insert(list, name)
- elseif groupstats[groupname] == limit then
- table.insert(list, "...")
- end
- elseif name:startswith(complete) then
- table.insert(list, name)
- end
- end
- return list
- end
- }
-end
-
--- update stats
-function update_stats(level, count)
- local stats = _g.stats
- if not stats then
- stats = {}
- _g.stats = stats
- end
- count = count or 1
- stats[level] = (stats[level] or 0) + count
-end
-
--- show stats
-function show_stats()
- local stats = _g.stats or {}
- cprint("${bright}%d${clear} notes, ${color.warning}%d${clear} warnings, ${color.error}%d${clear} errors", stats.note or 0, stats.warning or 0, stats.error or 0)
-end
diff --git a/xmake/plugins/check/checkers/api/api_checker.lua b/xmake/plugins/check/checkers/api/api_checker.lua
deleted file mode 100644
index 79e4809bd..000000000
--- a/xmake/plugins/check/checkers/api/api_checker.lua
+++ /dev/null
@@ -1,158 +0,0 @@
---!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 api_checker.lua
---
-
--- imports
-import("core.base.option")
-import("core.base.hashset")
-import("core.project.project")
-import("..checker")
-
--- get the most probable value
-function _get_most_probable_value(value, valueset)
- local result
- local mindist
- for v in valueset:keys() do
- local dist = value:levenshtein(v)
- if not mindist or dist < mindist then
- mindist = dist
- result = v
- end
- end
- return result
-end
-
-function _do_show(str, opt)
- _g.showed = _g.showed or {}
- local showed = _g.showed
- local infostr
- if str then
- infostr = string.format("%s: %s: %s", opt.sourcetips, opt.level_tips, str)
- else
- infostr = string.format("%s: %s: unknown %s value '%s'", opt.sourcetips, opt.level_tips, opt.apiname, opt.value)
- end
- if opt.probable_value then
- infostr = string.format("%s, it may be '%s'", infostr, opt.probable_value)
- end
- if not showed[infostr] then
- cprint(infostr)
- showed[infostr] = true
- return true
- end
-end
-
--- show result
-function _show(apiname, value, target, opt)
- opt = opt or {}
-
- -- match level? verbose: note/warning/error, default: warning/error
- local level = opt.level
- if not option.get("verbose") and level == "note" then
- return
- end
-
- -- get source information
- local sourceinfo = target:sourceinfo(apiname, value) or {}
- local sourcetips = sourceinfo.file or ""
- if sourceinfo.line then
- sourcetips = sourcetips .. ":" .. (sourceinfo.line or -1)
- end
- if #sourcetips == 0 then
- sourcetips = string.format("target(%s)", target:name())
- end
-
- -- get level tips
- local level_tips = "note"
- if level == "warning" then
- level_tips = "${color.warning}${text.warning}${clear}"
- elseif level == "error" then
- level_tips = "${color.error}${text.error}${clear}"
- end
-
- -- get probable value
- local probable_value
- if opt.valueset then
- probable_value = _get_most_probable_value(value, opt.valueset)
- end
-
- if apiname:endswith("s") then
- apiname = apiname:sub(1, #apiname - 1)
- end
-
- -- do show
- return (opt.show or _do_show)(opt.showstr, {
- apiname = apiname,
- sourcetips = sourcetips,
- level_tips = level_tips,
- value = value,
- probable_value = probable_value})
-end
-
--- check target
-function _check_target(target, apiname, valueset, level, opt)
- local target_valueset = valueset
- if type(opt.values) == "function" then
- local target_values = opt.values(target)
- if target_values then
- target_valueset = hashset.from(target_values)
- end
- end
- local values = target:get(apiname)
- for _, value in ipairs(values) do
- if opt.check then
- local ok, errors = opt.check(target, value)
- if not ok then
- local reported = _show(apiname, value, target, {
- show = opt.show,
- showstr = errors,
- level = level})
- if reported then
- checker.update_stats(level)
- end
- end
- elseif not target_valueset:has(value) then
- local reported = _show(apiname, value, target, {
- show = opt.show,
- valueset = target_valueset,
- level = level})
- if reported then
- checker.update_stats(level)
- end
- end
- end
-end
-
--- check api configuration in targets
-function check_targets(apiname, opt)
- opt = opt or {}
- local level = opt.level or "warning"
- local valueset
- if opt.values and type(opt.values) ~= "function" then
- valueset = hashset.from(opt.values)
- else
- valueset = hashset.new()
- end
- if opt.target then
- _check_target(opt.target, apiname, valueset, level, opt)
- else
- for _, target in pairs(project.targets()) do
- _check_target(target, apiname, valueset, level, opt)
- end
- end
-end
diff --git a/xmake/plugins/check/checkers/api/target/asflags.lua b/xmake/plugins/check/checkers/api/target/asflags.lua
deleted file mode 100644
index 07de9c4ec..000000000
--- a/xmake/plugins/check/checkers/api/target/asflags.lua
+++ /dev/null
@@ -1,34 +0,0 @@
---!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 asflags.lua
---
-
--- imports
-import("core.tool.compiler")
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("asflags", table.join(opt, {check = function(target, value)
- local compinst = target:compiler("as")
- if not compinst:has_flags(value) then
- return false, string.format("%s: unknown assembler flag '%s'", compinst:name(), value)
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/cflags.lua b/xmake/plugins/check/checkers/api/target/cflags.lua
deleted file mode 100644
index db35a7bcf..000000000
--- a/xmake/plugins/check/checkers/api/target/cflags.lua
+++ /dev/null
@@ -1,34 +0,0 @@
---!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 cflags.lua
---
-
--- imports
-import("core.tool.compiler")
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("cflags", table.join(opt, {check = function(target, value)
- local compinst = target:compiler("cc")
- if not compinst:has_flags(value) then
- return false, string.format("%s: unknown c compiler flag '%s'", compinst:name(), value)
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/configfiles.lua b/xmake/plugins/check/checkers/api/target/configfiles.lua
deleted file mode 100644
index a8965eebe..000000000
--- a/xmake/plugins/check/checkers/api/target/configfiles.lua
+++ /dev/null
@@ -1,33 +0,0 @@
---!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 configfiles.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("configfiles", table.join(opt, {check = function(target, value)
- local configfiles = os.files(value)
- if not configfiles or #configfiles == 0 then
- return false, string.format("configfiles '%s' not found", value)
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/cxflags.lua b/xmake/plugins/check/checkers/api/target/cxflags.lua
deleted file mode 100644
index ba09366e0..000000000
--- a/xmake/plugins/check/checkers/api/target/cxflags.lua
+++ /dev/null
@@ -1,34 +0,0 @@
---!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 cxflags.lua
---
-
--- imports
-import("core.tool.compiler")
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("cxflags", table.join(opt, {check = function(target, value)
- local compinst = target:compiler("cxx")
- if not compinst:has_flags(value) then
- return false, string.format("%s: unknown c/c++ compiler flag '%s'", compinst:name(), value)
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/cxxflags.lua b/xmake/plugins/check/checkers/api/target/cxxflags.lua
deleted file mode 100644
index 84660cfa4..000000000
--- a/xmake/plugins/check/checkers/api/target/cxxflags.lua
+++ /dev/null
@@ -1,34 +0,0 @@
---!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 cxxflags.lua
---
-
--- imports
-import("core.tool.compiler")
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("cxxflags", table.join(opt, {check = function(target, value)
- local compinst = target:compiler("cxx")
- if not compinst:has_flags(value) then
- return false, string.format("%s: unknown c++ compiler flag '%s'", compinst:name(), value)
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/exceptions.lua b/xmake/plugins/check/checkers/api/target/exceptions.lua
deleted file mode 100644
index e9570a894..000000000
--- a/xmake/plugins/check/checkers/api/target/exceptions.lua
+++ /dev/null
@@ -1,27 +0,0 @@
---!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 exceptions.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("exceptions", table.join(opt, {values = {"none", "cxx", "objc", "no-cxx", "no-objc"}}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/files.lua b/xmake/plugins/check/checkers/api/target/files.lua
deleted file mode 100644
index a523a7413..000000000
--- a/xmake/plugins/check/checkers/api/target/files.lua
+++ /dev/null
@@ -1,33 +0,0 @@
---!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 files.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("files", table.join(opt, {check = function(target, value)
- local files = os.files(value)
- if not files or #files == 0 then
- return false, string.format("files '%s' not found", value)
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/fpmodels.lua b/xmake/plugins/check/checkers/api/target/fpmodels.lua
deleted file mode 100644
index 61231109e..000000000
--- a/xmake/plugins/check/checkers/api/target/fpmodels.lua
+++ /dev/null
@@ -1,27 +0,0 @@
---!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 fpmodels.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("fpmodels", table.join(opt, {values = {"none", "precise", "fast", "strict", "except", "noexcept"}}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/frameworkdirs.lua b/xmake/plugins/check/checkers/api/target/frameworkdirs.lua
deleted file mode 100644
index 088aa7114..000000000
--- a/xmake/plugins/check/checkers/api/target/frameworkdirs.lua
+++ /dev/null
@@ -1,32 +0,0 @@
---!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 frameworkdirs.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("frameworkdirs", table.join(opt, {check = function(target, value)
- if not os.isdir(value) then
- return false, string.format("frameworkdir '%s' not found", value)
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/headerfiles.lua b/xmake/plugins/check/checkers/api/target/headerfiles.lua
deleted file mode 100644
index af262b91c..000000000
--- a/xmake/plugins/check/checkers/api/target/headerfiles.lua
+++ /dev/null
@@ -1,34 +0,0 @@
---!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 headerfiles.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("headerfiles", table.join(opt, {check = function(target, value)
- value = value:gsub("[()]", "")
- local headerfiles = os.files(value)
- if not headerfiles or #headerfiles == 0 then
- return false, string.format("headerfiles '%s' not found", value)
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/includedirs.lua b/xmake/plugins/check/checkers/api/target/includedirs.lua
deleted file mode 100644
index a78431fef..000000000
--- a/xmake/plugins/check/checkers/api/target/includedirs.lua
+++ /dev/null
@@ -1,32 +0,0 @@
---!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 includedirs.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("includedirs", table.join(opt, {check = function(target, value)
- if not os.isdir(value) then
- return false, string.format("includedir '%s' not found", value)
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/installfiles.lua b/xmake/plugins/check/checkers/api/target/installfiles.lua
deleted file mode 100644
index 7a294f60f..000000000
--- a/xmake/plugins/check/checkers/api/target/installfiles.lua
+++ /dev/null
@@ -1,34 +0,0 @@
---!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 installfiles.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("installfiles", table.join(opt, {check = function(target, value)
- value = value:gsub("[()]", "")
- local installfiles = os.files(value)
- if not installfiles or #installfiles == 0 then
- return false, string.format("installfiles '%s' not found", value)
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/kind.lua b/xmake/plugins/check/checkers/api/target/kind.lua
deleted file mode 100644
index 127f78ad5..000000000
--- a/xmake/plugins/check/checkers/api/target/kind.lua
+++ /dev/null
@@ -1,27 +0,0 @@
---!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 kind.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("kind", table.join(opt, {values = {"object", "binary", "static", "shared", "headeronly", "phony"}}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/languages.lua b/xmake/plugins/check/checkers/api/target/languages.lua
deleted file mode 100644
index f01499225..000000000
--- a/xmake/plugins/check/checkers/api/target/languages.lua
+++ /dev/null
@@ -1,41 +0,0 @@
---!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 languages.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- local values = {
- "ansi", "c89", "c90", "c99", "c11", "c17", "clatest",
- "cxx98", "cxx11", "cxx14", "cxx17", "cxx1z", "cxx20", "cxx2a", "cxx23", "cxx2b", "cxxlatest"
- }
- local languages = {}
- for _, value in ipairs(values) do
- table.insert(languages, value)
- if value:find("xx", 1, true) then
- table.insert(languages, (value:gsub("xx", "++")))
- end
- if value:startswith("c") then
- table.insert(languages, "gnu" .. value:sub(2))
- end
- end
- api_checker.check_targets("languages", table.join(opt, {values = languages}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/ldflags.lua b/xmake/plugins/check/checkers/api/target/ldflags.lua
deleted file mode 100644
index e06d5bb09..000000000
--- a/xmake/plugins/check/checkers/api/target/ldflags.lua
+++ /dev/null
@@ -1,36 +0,0 @@
---!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 ldflags.lua
---
-
--- imports
-import("core.tool.compiler")
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("ldflags", table.join(opt, {check = function(target, value)
- if target:is_binary() then
- local linker = target:linker()
- if not linker:has_flags(value) then
- return false, string.format("%s: unknown linker flag '%s'", linker:name(), value)
- end
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/linkdirs.lua b/xmake/plugins/check/checkers/api/target/linkdirs.lua
deleted file mode 100644
index 3f05bfa16..000000000
--- a/xmake/plugins/check/checkers/api/target/linkdirs.lua
+++ /dev/null
@@ -1,32 +0,0 @@
---!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 linkdirs.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("linkdirs", table.join(opt, {check = function(target, value)
- if not os.isdir(value) then
- return false, string.format("linkdir '%s' not found", value)
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/optimize.lua b/xmake/plugins/check/checkers/api/target/optimize.lua
deleted file mode 100644
index 99731ba19..000000000
--- a/xmake/plugins/check/checkers/api/target/optimize.lua
+++ /dev/null
@@ -1,27 +0,0 @@
---!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 optimize.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("optimize", table.join(opt, {values = {"none", "fast", "faster", "fastest", "smallest", "aggressive"}}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/packages.lua b/xmake/plugins/check/checkers/api/target/packages.lua
deleted file mode 100644
index 994ea5c2a..000000000
--- a/xmake/plugins/check/checkers/api/target/packages.lua
+++ /dev/null
@@ -1,33 +0,0 @@
---!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 packages.lua
---
-
--- imports
-import("core.project.project")
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- local packages = {}
- local requires = project.required_packages()
- if requires then
- table.join2(packages, table.orderkeys(requires))
- end
- api_checker.check_targets("packages", table.join(opt, {values = packages, level = "note"}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/shflags.lua b/xmake/plugins/check/checkers/api/target/shflags.lua
deleted file mode 100644
index 20b2f6a05..000000000
--- a/xmake/plugins/check/checkers/api/target/shflags.lua
+++ /dev/null
@@ -1,36 +0,0 @@
---!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 shflags.lua
---
-
--- imports
-import("core.tool.compiler")
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("shflags", table.join(opt, {check = function(target, value)
- if target:is_shared() then
- local linker = target:linker()
- if not linker:has_flags(value) then
- return false, string.format("%s: unknown linker flag '%s'", linker:name(), value)
- end
- end
- return true
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/strip.lua b/xmake/plugins/check/checkers/api/target/strip.lua
deleted file mode 100644
index c6074bc12..000000000
--- a/xmake/plugins/check/checkers/api/target/strip.lua
+++ /dev/null
@@ -1,27 +0,0 @@
---!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 strip.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("strip", table.join(opt, {values = {"none", "debug", "all"}}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/symbols.lua b/xmake/plugins/check/checkers/api/target/symbols.lua
deleted file mode 100644
index 839bd0ede..000000000
--- a/xmake/plugins/check/checkers/api/target/symbols.lua
+++ /dev/null
@@ -1,34 +0,0 @@
---!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 symbols.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("symbols", table.join(opt, {values = function (target)
- local values = {"none", "debug", "hidden", "hidden_cxx"}
- if target:is_plat("windows") and (target:has_tool("cc", "cl") or target:has_tool("cxx", "cl")) then
- table.insert(values, "edit")
- table.insert(values, "embed")
- end
- return values
- end}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/vectorexts.lua b/xmake/plugins/check/checkers/api/target/vectorexts.lua
deleted file mode 100644
index 77f9ee48c..000000000
--- a/xmake/plugins/check/checkers/api/target/vectorexts.lua
+++ /dev/null
@@ -1,27 +0,0 @@
---!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 vectorexts.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("vectorexts", table.join(opt, {values = {"none", "sse", "sse2", "sse3", "ssse3", "avx", "avx2", "neon"}}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/version.lua b/xmake/plugins/check/checkers/api/target/version.lua
deleted file mode 100644
index 889864f5b..000000000
--- a/xmake/plugins/check/checkers/api/target/version.lua
+++ /dev/null
@@ -1,42 +0,0 @@
---!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 version.lua
---
-
--- imports
-import("core.base.semver")
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("version", table.join(opt, {check = function(target, value)
- local errors
- local ok = try {
- function()
- semver.new(value)
- return true
- end,
- catch {
- function (errs)
- errors = errs
- end
- }
- }
- return ok, errors
- end, level = "error"}))
-end
diff --git a/xmake/plugins/check/checkers/api/target/warnings.lua b/xmake/plugins/check/checkers/api/target/warnings.lua
deleted file mode 100644
index 4e6cf5794..000000000
--- a/xmake/plugins/check/checkers/api/target/warnings.lua
+++ /dev/null
@@ -1,27 +0,0 @@
---!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 warnings.lua
---
-
--- imports
-import(".api_checker")
-
-function main(opt)
- opt = opt or {}
- api_checker.check_targets("warnings", table.join(opt, {values = {"none", "less", "more", "all", "allextra", "everything", "error"}}))
-end
diff --git a/xmake/plugins/check/checkers/clang/tidy.lua b/xmake/plugins/check/checkers/clang/tidy.lua
deleted file mode 100644
index 9b0d9b21e..000000000
--- a/xmake/plugins/check/checkers/clang/tidy.lua
+++ /dev/null
@@ -1,179 +0,0 @@
---!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 tidy.lua
---
-
--- imports
-import("core.base.option")
-import("core.base.task")
-import("core.project.config")
-import("core.project.project")
-import("lib.detect.find_tool")
-import("private.async.runjobs")
-import("private.action.require.impl.packagenv")
-import("private.action.require.impl.install_packages")
-
--- the clang.tidy options
-local options = {
- {"l", "list", "k", nil, "Show the clang-tidy checks list."},
- {'j', "jobs", "kv", tostring(os.default_njob()),
- "Set the number of parallel check jobs."},
- {nil, "create", "k", nil, "Create a .clang-tidy file."},
- {nil, "configfile", "kv", nil, "Specify the path of .clang-tidy or custom config file"},
- {nil, "checks", "kv", nil, "Set the given checks.",
- "e.g.",
- " - xmake check clang.tidy --checks=\"*\""},
- {'f', "files", "v", nil, "Set files path with pattern",
- "e.g.",
- " - xmake check clang.tidy -f src/main.c",
- " - xmake check clang.tidy -f 'src/*.c" .. path.envsep() .. "src/**.cpp'"},
- {nil, "target", "v", nil, "Check the sourcefiles of the given target.",
- ".e.g",
- " - xmake check clang.tidy",
- " - xmake check clang.tidy [target]"}
-}
-
--- show checks list
-function _show_list(clang_tidy)
- os.execv(clang_tidy, {"--list-checks"})
-end
-
--- create .clang-tidy config file
-function _create_config(clang_tidy, opt)
- local projectdir = project.directory()
- local argv = {"--dump-config"}
- if opt.checks then
- table.insert(argv, "--checks=" .. opt.checks)
- end
- os.execv(clang_tidy, argv, {stdout = path.join(projectdir, ".clang-tidy"), curdir = projectdir})
-end
-
--- add sourcefiles in target
-function _add_target_files(sourcefiles, target)
- table.join2(sourcefiles, (target:sourcefiles()))
-end
-
--- check sourcefile
-function _check_sourcefile(clang_tidy, sourcefile, opt)
- opt = opt or {}
- local projectdir = project.directory()
- local argv = {}
- if opt.checks then
- table.insert(argv, "--checks=" .. opt.checks)
- end
- if opt.compdbfile then
- table.insert(argv, "-p")
- table.insert(argv, opt.compdbfile)
- end
- if opt.configfile then
- table.insert(argv, "--config-file=" .. opt.configfile)
- end
- if not path.is_absolute(sourcefile) then
- sourcefile = path.absolute(sourcefile, projectdir)
- end
- table.insert(argv, sourcefile)
- os.execv(clang_tidy, argv, {curdir = projectdir})
-end
-
--- do check
-function _check(clang_tidy, opt)
- opt = opt or {}
-
- -- generate compile_commands.json first
- local filename = "compile_commands.json"
- local filepath = filename
- if not os.isfile(filepath) then
- local outputdir = os.tmpfile() .. ".dir"
- filepath = outputdir and path.join(outputdir, filename) or filename
- task.run("project", {quiet = true, kind = "compile_commands", lsp = "clangd", outputdir = outputdir})
- end
- opt.compdbfile = filepath
-
- -- get sourcefiles
- local sourcefiles = {}
- if opt.files then
- local files = path.splitenv(opt.files)
- for _, file in ipairs(files) do
- for _, filepath in ipairs(os.files(file)) do
- table.insert(sourcefiles, filepath)
- end
- end
- else
- local targetname = opt.target
- if targetname then
- _add_target_files(sourcefiles, project.target(targetname))
- else
- for _, target in ipairs(project.ordertargets()) do
- _add_target_files(sourcefiles, target)
- end
- end
- end
-
- -- check files
- local jobs = tonumber(opt.jobs or "1")
- runjobs("check_files", function (index)
- local sourcefile = sourcefiles[index]
- if sourcefile then
- _check_sourcefile(clang_tidy, sourcefile, opt)
- end
- end, {total = #sourcefiles,
- comax = jobs,
- isolate = true})
-end
-
-function main(argv)
-
- -- parse arguments
- local args = option.parse(argv or {}, options, "Use clang-tidy to check project code."
- , ""
- , "Usage: xmake check clang.tidy [options]")
-
- -- enter the environments of llvm
- local oldenvs = packagenv.enter("llvm")
-
- -- find clang-tidy
- local packages = {}
- local clang_tidy = find_tool("clang-tidy")
- if not clang_tidy then
- table.join2(packages, install_packages("llvm"))
- end
-
- -- enter the environments of installed packages
- for _, instance in ipairs(packages) do
- instance:envs_enter()
- end
-
- -- we need force to detect and flush detect cache after loading all environments
- if not clang_tidy then
- clang_tidy = find_tool("clang-tidy", {force = true})
- end
- assert(clang_tidy, "clang-tidy not found!")
-
- -- list checks
- if args.list then
- _show_list(clang_tidy.program)
- elseif args.create then
- _create_config(clang_tidy.program, args)
- else
- _check(clang_tidy.program, args)
- end
-
- -- done
- os.setenvs(oldenvs)
-end
-
diff --git a/xmake/plugins/check/checkers/cuda/devlink.lua b/xmake/plugins/check/checkers/cuda/devlink.lua
deleted file mode 100644
index 4281b5a8d..000000000
--- a/xmake/plugins/check/checkers/cuda/devlink.lua
+++ /dev/null
@@ -1,54 +0,0 @@
---!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 devlink.lua
---
-
--- imports
-import("core.base.option")
-import("core.project.project")
-
--- https://github.com/xmake-io/xmake/issues/1976#issuecomment-1427378799
-function _check_target(target, opt)
- if target:is_binary() then
- local sourcebatches = target:sourcebatches()
- if sourcebatches and not sourcebatches["cuda.build"] then
- for _, dep in ipairs(target:orderdeps()) do
- if dep:is_static() then
- sourcebatches = dep:sourcebatches()
- if sourcebatches and sourcebatches["cuda.build"] then
- local devlink = dep:policy("build.cuda.devlink") or dep:values("cuda.build.devlink")
- if not devlink then
- wprint('target(%s)${clear}: cuda device link is not performed! specify set_policy("build.cuda.devlink", true) to enable it', dep:name())
- end
- end
- end
- end
- end
- end
-end
-
-function main(opt)
- if opt.target then
- _check_target(opt.target, opt)
- else
- for _, target in pairs(project.targets()) do
- _check_target(target, opt)
- end
- end
-end
-
diff --git a/xmake/plugins/check/main.lua b/xmake/plugins/check/main.lua
index 9ec6d03fd..5ee89ae3e 100644
--- a/xmake/plugins/check/main.lua
+++ b/xmake/plugins/check/main.lua
@@ -22,7 +22,7 @@
import("core.base.option")
import("core.base.text")
import("core.project.config")
-import("checker")
+import("private.check.checker")
-- show checkers list
function _show_list()
@@ -80,7 +80,7 @@ function _check(group_or_name, arguments)
if showstats == nil and info and info.showstats ~= nil then
showstats = info.showstats
end
- import("checkers." .. name, {anonymous = true})(arguments)
+ import("private.check.checkers." .. name, {anonymous = true})(arguments)
end
if showstats ~= false then
checker.show_stats()