summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/stlheaders.lua
diff options
context:
space:
mode:
authorArthur LAURENT <[email protected]>2025-04-20 18:23:54 +0200
committerArthur LAURENT <[email protected]>2025-04-20 18:23:54 +0200
commita1fefbea336ad2294b853059d32850877f54bb90 (patch)
tree532fb41683d4e8024897e5d246fa951a3ebaab1f /xmake/rules/c++/modules/stlheaders.lua
parentedf1f0b82e739e1024b34f112fba51bc61444c65 (diff)
(C++ modules) simplify names of module support
Diffstat (limited to 'xmake/rules/c++/modules/stlheaders.lua')
-rw-r--r--xmake/rules/c++/modules/stlheaders.lua155
1 files changed, 155 insertions, 0 deletions
diff --git a/xmake/rules/c++/modules/stlheaders.lua b/xmake/rules/c++/modules/stlheaders.lua
new file mode 100644
index 000000000..9ba3cbfdf
--- /dev/null
+++ b/xmake/rules/c++/modules/stlheaders.lua
@@ -0,0 +1,155 @@
+--!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, Arthapz
+-- @file stlheaders.lua
+--
+
+-- imports
+import("core.base.hashset")
+
+-- the stl headers list
+function _stlheaders()
+ return {
+ "algorithm",
+ "forward_list",
+ "numbers",
+ "stop_token",
+ "any",
+ "fstream",
+ "numeric",
+ "streambuf",
+ "array",
+ "functional",
+ "optional",
+ "string",
+ "atomic",
+ "future",
+ "ostream",
+ "string_view",
+ "barrier",
+ "initializer_list",
+ "queue",
+ "bit",
+ "iomanip",
+ "random",
+ "syncstream",
+ "bitset",
+ "ios",
+ "ranges",
+ "system_error",
+ "charconv",
+ "iosfwd",
+ "ratio",
+ "thread",
+ "chrono",
+ "iostream",
+ "regex",
+ "tuple",
+ "codecvt",
+ "istream",
+ "scoped_allocator",
+ "typeindex",
+ "compare",
+ "iterator",
+ "semaphore",
+ "typeinfo",
+ "complex",
+ "latch",
+ "set",
+ "type_traits",
+ "concepts",
+ "limits",
+ "shared_mutex",
+ "unordered_map",
+ "condition_variable",
+ "list",
+ "source_location",
+ "stacktrace",
+ "unordered_set",
+ "coroutine",
+ "locale",
+ "span",
+ "utility",
+ "deque",
+ "map",
+ "spanstream",
+ "valarray",
+ "exception",
+ "memory",
+ "sstream",
+ "variant",
+ "execution",
+ "memory_resource",
+ "stack",
+ "vector",
+ "filesystem",
+ "mutex",
+ "version",
+ "format",
+ "new",
+ "type_traits",
+ "string_view",
+ "stdexcept",
+ "condition_variable",
+ "print",
+ "flat_map",
+ "flat_set",
+ "mdspan",
+ "stdfloat",
+ "generator",
+ "csetjmp",
+ "csignal",
+ "cstdarg",
+ "cstddef",
+ "cstdlib",
+ "cfloat",
+ "cinttypes",
+ "climits",
+ "cstdint",
+ "cassert",
+ "cerrno",
+ "cctype",
+ "cstring",
+ "cuchar",
+ "cwchar",
+ "cwctype",
+ "cfenv",
+ "cmath",
+ "ctime",
+ "clocale",
+ "expected",
+ "cstdio"}
+end
+
+-- get all stl headers
+function get_stlheaders()
+ local stlheaders = _g.stlheaders
+ if stlheaders == nil then
+ stlheaders = hashset.from(_stlheaders())
+ _g.stlheaders = stlheaders or false
+ end
+ return stlheaders or nil
+end
+
+-- is stl header?
+function is_stlheader(header)
+ if header:startswith("experimental/") then
+ header = header:sub(14, -1)
+ end
+ return get_stlheaders():has(header)
+end
+