From 657bb3e7aa5425feaf286fc0cba305c85414973c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 24 Jun 2026 11:27:30 +0530 Subject: [PATCH] Stub slang module --- setup.py | 19 +++++++++++++++++++ shaders/compiler.cpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 shaders/compiler.cpp diff --git a/setup.py b/setup.py index 0f0a7edd4..1c1f5957f 100755 --- a/setup.py +++ b/setup.py @@ -630,6 +630,21 @@ def init_env( return ans +def slang_env(args: Options) -> Env: + ans = env.copy() + cflags = [] + for x in ans.cflags: + if x == '-Wstrict-prototypes': + continue + if x.startswith('-std='): + x = '-std=c++20' + cflags.append(x) + pylib = get_python_flags(args, cflags) + ans.cflags = cflags + ans.ldflags = pylib + ans.ldflags + return ans + + def kitty_env(args: Options) -> Env: ans = env.copy() cflags = ans.cflags @@ -1216,6 +1231,10 @@ def build(args: Options, native_optimizations: bool = True, call_init: bool = Tr kitty_env(args), 'kitty/fast_data_types', args.compilation_database, sources, headers, build_dsym=args.build_dsym, ) + sources, headers = ['shaders/compiler.cpp'], [] + compile_c_extension( + slang_env(args), 'kitty/slangc', args.compilation_database, sources, headers, build_dsym=args.build_dsym + ) compile_glfw(args.compilation_database, args.build_dsym) compile_kittens(args) add_builtin_fonts(args) diff --git a/shaders/compiler.cpp b/shaders/compiler.cpp new file mode 100644 index 000000000..b5b451276 --- /dev/null +++ b/shaders/compiler.cpp @@ -0,0 +1,30 @@ +/* + * compiler.cpp + * Copyright (C) 2026 Kovid Goyal + * + * Distributed under terms of the GPL3 license. + */ + +#include + + +static char doc[] = "Compile shaders"; +static PyMethodDef methods[] = { + {NULL} /* Sentinel */ +}; + +static int +exec_module(PyObject *mod) { (void)mod; return 0; } + +static PyModuleDef_Slot slots[] = { {Py_mod_exec, (void*)exec_module}, {0, NULL} }; + +static struct PyModuleDef module_def = {PyModuleDef_HEAD_INIT}; + +PyObject* +PyInit_slangc(void) { + module_def.m_name = "slangc"; + module_def.m_slots = slots; + module_def.m_doc = doc; + module_def.m_methods = methods; + return PyModuleDef_Init(&module_def); +}