aboutsummaryrefslogtreecommitdiff
path: root/deps/SCsub
diff options
context:
space:
mode:
author Spartan322 <Megacake1234@gmail.com>2024-07-02 09:51:59 +0200
committer Spartan322 <Megacake1234@gmail.com>2024-07-05 19:17:25 +0200
commit3eb78b27505b602c1ccfa952c4cc00f942ccb2b9 (patch)
tree457b7fbda6d4470465c05d59b0ca51ed30628640 /deps/SCsub
parentdeed8ec0ae23651529a58125012c1b4aab015d02 (diff)
Fix string interning pointer invalidity for ASTsimplify-string-interning
Fix errorneous string intern compare Add symbol interning tests Optimize non-conversion identifier cases Add `File::size()` Add InstanceOf concept Remove `FlatValue::value(const symbol_interner_type&)` Add `AbstractSyntaxTree::intern/intern_cst(lexy::lexeme)` overload Add `DiagnosticLogger::intern/intern_cstr(lexy::lexeme)` overload Use pinned_vector to maintain string interning pointer validity for buffers Add vmcontainer submodule for pinned_vector pinned_vector reserves virtual memory at runtime using OS APIs to maintain pointer validity Remove Exception and RTTI requirement from range-v3 submodule
Diffstat (limited to 'deps/SCsub')
-rw-r--r--deps/SCsub39
1 files changed, 35 insertions, 4 deletions
diff --git a/deps/SCsub b/deps/SCsub
index 5f714df..441ec93 100644
--- a/deps/SCsub
+++ b/deps/SCsub
@@ -56,7 +56,7 @@ def build_dryad(env):
env.Append(CXXFLAGS=["/external:I", include_dir, "/external:W0"])
else:
env.Append(CXXFLAGS=["-isystem", include_dir])
-
+
env.exposed_includes += env.dryad["INCPATH"]
def build_fmt(env):
@@ -117,7 +117,7 @@ def build_fmt(env):
env.Append(CXXFLAGS=[""])
env.Append(LIBPATH=[fmt_env.Dir(source_path)])
env.Prepend(LIBS=[library_name])
-
+
env.exposed_includes += env.fmt["INCPATH"]
def build_range_v3(env):
@@ -135,10 +135,41 @@ def build_range_v3(env):
env.Append(CXXFLAGS=["/external:I", include_dir, "/external:W0"])
else:
env.Append(CXXFLAGS=["-isystem", include_dir])
-
+
env.exposed_includes += env.range_v3["INCPATH"]
+def build_vmcontainer(env):
+ vmcontainer_env = env.Clone()
+
+ include_path = "vmcontainer/lib/include"
+ source_path = "vmcontainer/lib/src"
+ paths = [include_path, source_path]
+ vmcontainer_env.Append(CPPPATH=[[vmcontainer_env.Dir(p) for p in paths]])
+ sources = env.GlobRecursive("*.cpp", paths)
+ env.vmcontainer_sources = sources
+
+ library_name = "libvmcontainer" + env["LIBSUFFIX"]
+ library = vmcontainer_env.StaticLibrary(target=os.path.join(source_path, library_name), source=sources)
+ Default(library)
+
+ include_dir = vmcontainer_env.Dir(include_path)
+
+ env.vmcontainer = {}
+ env.vmcontainer["INCPATH"] = [include_dir]
+
+ env.Append(CPPPATH=env.vmcontainer["INCPATH"])
+ if env.get("is_msvc", False):
+ env.Append(CXXFLAGS=["/external:I", include_dir, "/external:W0"])
+ else:
+ env.Append(CXXFLAGS=["-isystem", include_dir])
+ env.Append(CXXFLAGS=[""])
+ env.Append(LIBPATH=[vmcontainer_env.Dir(source_path)])
+ env.Prepend(LIBS=[library_name])
+
+ env.exposed_includes += env.vmcontainer["INCPATH"]
+
build_dryad(env)
build_fmt(env)
build_lexy(env)
-build_range_v3(env) \ No newline at end of file
+build_range_v3(env)
+build_vmcontainer(env) \ No newline at end of file