From 5fc4189cfdf68dcab59823cba9d89a567e8f6e30 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 12 Aug 2026 10:12:47 +0530 Subject: [PATCH] Autodetect bundled slangc when from from a dev.sh build --- kitty/constants.py | 7 +++++-- kitty/data-types.c | 4 ++++ kitty/fast_data_types.pyi | 1 + setup.py | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/kitty/constants.py b/kitty/constants.py index 9df1783df..86862874f 100644 --- a/kitty/constants.py +++ b/kitty/constants.py @@ -41,9 +41,12 @@ _slangc: tuple[str, ...] = () def slangc() -> tuple[str, ...]: global _slangc if not _slangc: - from kitty.fast_data_types import Shlex + from kitty.fast_data_types import DEVELOP_ROOT, Shlex - _slangc = tuple(Shlex(os.environ.get('SLANGC', 'slangc'), False)) + if DEVELOP_ROOT: + _slangc = (os.path.join(DEVELOP_ROOT, 'bin', 'slangc'),) + else: + _slangc = tuple(Shlex(os.environ.get('SLANGC', 'slangc'), False)) return _slangc diff --git a/kitty/data-types.c b/kitty/data-types.c index 896564d19..174c87be1 100644 --- a/kitty/data-types.c +++ b/kitty/data-types.c @@ -1022,6 +1022,10 @@ PyInit_fast_data_types(void) { #ifdef KITTY_VCS_REV PyModule_AddStringMacro(m, KITTY_VCS_REV); #endif +#ifndef DEVELOP_ROOT +#define DEVELOP_ROOT "" +#endif + PyModule_AddStringMacro(m, DEVELOP_ROOT); PyModule_AddIntMacro(m, CURSOR_BLOCK); PyModule_AddIntMacro(m, CURSOR_BEAM); PyModule_AddIntMacro(m, CURSOR_UNDERLINE); diff --git a/kitty/fast_data_types.pyi b/kitty/fast_data_types.pyi index 1a59adb97..386e4f773 100644 --- a/kitty/fast_data_types.pyi +++ b/kitty/fast_data_types.pyi @@ -15,6 +15,7 @@ from kitty.typing_compat import EdgeLiteral, NotRequired, ReadableBuffer, Writea # Constants {{{ SCALE_BITS: int NULL_COLOR_VALUE: int +DEVELOP_ROOT: str WIDTH_BITS: int SUBSCALE_BITS: int COLOR_IS_SPECIAL: int diff --git a/setup.py b/setup.py index 525927b60..0aa9e7b79 100755 --- a/setup.py +++ b/setup.py @@ -703,6 +703,7 @@ def init_env( if os.environ.get('DEVELOP_ROOT'): cflags.insert(0, f'-I{os.environ["DEVELOP_ROOT"]}/include') + cflags.insert(0, f'-DDEVELOP_ROOT="{os.environ["DEVELOP_ROOT"]}"') ldpaths.insert(0, f'-L{os.environ["DEVELOP_ROOT"]}/lib') if building_arch: