Drop gerbil-qt references (dependency-shape paths/credits)
ober
847450e5d56714e1788688069174f95b920953de
--- a/Makefile +++ b/Makefile @@ -3,8 +3,8 @@ SCHEME ?= $(JERBOA_HOME)/.chez/bin/scheme JERBUILD ?= $(JERBOA_HOME)/jerbuild LIBDIRS = lib:$(JERBOA_HOME)/lib -GERBIL_QT_DIR := $(HOME)/mine/gerbil-qt -VENDOR_DIR := $(GERBIL_QT_DIR)/vendor +QT_VENDOR_DIR := $(HOME)/mine/qt-vendor +VENDOR_DIR := $(QT_VENDOR_DIR)/vendor QT_CFLAGS := $(shell pkg-config --cflags Qt6Widgets 2>/dev/null) QT_LIBS := $(shell pkg-config --libs Qt6Widgets 2>/dev/null || echo "-lQt6Widgets") @@ -31,7 +31,7 @@ all: build vendor-check: @if [ ! -f $(VENDOR_DIR)/qt_shim.h ] || [ ! -f $(VENDOR_DIR)/libqt_shim$(SO_EXT) ]; then \ - echo "WARN: gerbil-qt vendor missing (expected $(VENDOR_DIR))."; \ + echo "WARN: qt-vendor vendor missing (expected $(VENDOR_DIR))."; \ echo "WARN: skip shim build."; exit 1; \ fi --- a/README.md +++ b/README.md @@ -2,14 +2,14 @@ Qt6 Widgets bindings for Chez Scheme. -Build desktop GUI applications with native Qt6 widgets from Chez Scheme, using a thin C++ shim and Chez's FFI. API-compatible with [gerbil-qt](https://github.com/ober/gerbil-qt). +Build desktop GUI applications with native Qt6 widgets from Chez Scheme, using a thin C++ shim and Chez's FFI. API-compatible with [qt-vendor](https://github.com/ober/qt-vendor). ## Requirements - [Chez Scheme](https://cisco.github.io/ChezScheme/) 10.0+ - Qt6 development libraries - gcc -- The [gerbil-qt](https://github.com/ober/gerbil-qt) C++ shim (provides `vendor/qt_shim.h` and `vendor/libqt_shim.so`) +- The [qt-vendor](https://github.com/ober/qt-vendor) C++ shim (provides `vendor/qt_shim.h` and `vendor/libqt_shim.so`) ### Linux (Ubuntu/Debian) @@ -32,11 +32,11 @@ export PKG_CONFIG_PATH="$(brew --prefix qt@6)/lib/pkgconfig:$PKG_CONFIG_PATH" ## Build -First, clone and build [gerbil-qt](https://github.com/ober/gerbil-qt) to get the C++ shim: +First, clone and build [qt-vendor](https://github.com/ober/qt-vendor) to get the C++ shim: ```sh -git clone https://github.com/ober/gerbil-qt.git -cd gerbil-qt +git clone https://github.com/ober/qt-vendor.git +cd qt-vendor make build cd .. ``` @@ -49,10 +49,10 @@ cd chez-qt make ``` -By default, the Makefile expects gerbil-qt at `$HOME/mine/gerbil-qt`. Override with: +By default, the Makefile expects qt-vendor at `$HOME/mine/qt-vendor`. Override with: ```sh -make GERBIL_QT_DIR=/path/to/gerbil-qt +make QT_VENDOR_DIR=/path/to/qt-vendor ``` This compiles the Chez-specific callback bridge (`qt_chez_shim.so`) and the Scheme libraries (`chez-qt/ffi.so`, `chez-qt/qt.so`). @@ -143,19 +143,19 @@ scheme --libdirs . > (qt-app-exec! app) ``` -## Differences from gerbil-qt +## Differences from qt-vendor -| Aspect | gerbil-qt | chez-qt | +| Aspect | qt-vendor | chez-qt | |--------|-----------|---------| -| Import | `(import :gerbil-qt/qt)` | `(import (chez-qt qt))` | +| Import | `(import :qt-vendor/qt)` | `(import (chez-qt qt))` | | Define | `(def (name args) ...)` | `(define (name args) ...)` | | Main | `(def (main) ...)` in build target | `(define (main) ...) (main)` at end of script | | Keyword args | `parent: #f` | Not supported; positional or omitted | -| Build | `gerbil build` | `make` | +| Build | `other-Scheme build` | `make` | | Run examples | `make demo-hello` | `scheme --libdirs . --script examples/hello.ss` | | FFI mechanism | Gambit `c-define` (compile-time) | Chez `foreign-callable` (runtime) | -The high-level API (`qt-*` functions) is identical between both projects. Code that uses only the `(chez-qt qt)` / `:gerbil-qt/qt` API can be ported by changing the import line and using `define` instead of `def`. +The high-level API (`qt-*` functions) is identical between both projects. Code that uses only the `(chez-qt qt)` / `:qt-vendor/qt` API can be ported by changing the import line and using `define` instead of `def`. ## API Reference @@ -1568,7 +1568,7 @@ RAII-style macros that guarantee cleanup even on exceptions. The binding uses a three-layer architecture: -1. **C++ shim** (`vendor/qt_shim.h`, `vendor/qt_shim.cpp` in gerbil-qt) -- thin `extern "C"` wrappers around Qt6 C++ classes. All Qt objects are opaque `void*` handles. Compiled as `libqt_shim.so`. +1. **C++ shim** (`vendor/qt_shim.h`, `vendor/qt_shim.cpp` in qt-vendor) -- thin `extern "C"` wrappers around Qt6 C++ classes. All Qt objects are opaque `void*` handles. Compiled as `libqt_shim.so`. 2. **Chez callback bridge** (`qt_chez_shim.c`) -- stores Chez-provided `foreign-callable` function pointers and provides C wrapper functions that pass them to the C++ shim's signal connection APIs. Unlike Gambit's compile-time `c-define` trampolines, Chez creates callback pointers at runtime. --- a/examples/dashboard.ss +++ b/examples/dashboard.ss @@ -102,7 +102,7 @@ exec scheme --libdirs "$CHEZ_QT_DIR" --script "$0" "$@" (let ((data '(("Chez" "Scheme" "7000") ("Racket" "Scheme" "4500") ("Guile" "Scheme" "900") - ("Gerbil" "Scheme" "1200") + ("another Scheme dialect" "Scheme" "1200") ("Gambit" "Scheme" "1300")))) (let loop ((rows data) (r 0)) (when (pair? rows) --- a/examples/modelviewer.ss +++ b/examples/modelviewer.ss @@ -55,7 +55,7 @@ exec scheme --libdirs "$CHEZ_QT_DIR" --script "$0" "$@" ("Go" "Go" "122000") ("Kubernetes" "Go" "110000") ("Node.js" "JavaScript" "105000") - ("Gerbil" "Scheme" "1200")))) + ("another Scheme dialect" "Scheme" "1200")))) (qt-standard-model-set-row-count! table-model (length data)) (let loop ((rows data) (i 0)) (unless (null? rows) --- a/examples/richtext.ss +++ b/examples/richtext.ss @@ -57,7 +57,7 @@ exec scheme --libdirs "$CHEZ_QT_DIR" --script "$0" "$@" "<h2>Features</h2>" "<ul>" "<li>Inline <b>bold</b>, <i>italic</i>, and <code>code</code></li>" - "<li>Links: <a href=\"https://cons.io\">Gerbil Homepage</a></li>" + "<li>Links: <a href=\"https://cons.io\">another Scheme dialect Homepage</a></li>" "<li>Colors: <span style=\"color:red\">red</span>, " "<span style=\"color:blue\">blue</span>, " "<span style=\"color:green\">green</span></li>" --- a/src/jerboa-qt/ffi.ss +++ b/src/jerboa-qt/ffi.ss @@ -807,7 +807,7 @@ "dylib" "so"))) - ;; libqt_shim.{so,dylib} comes from gerbil-qt's vendor/ dir — use DYLD_LIBRARY_PATH/LD_LIBRARY_PATH or explicit env var + ;; libqt_shim.{so,dylib} comes from qt-vendor's vendor/ dir — use DYLD_LIBRARY_PATH/LD_LIBRARY_PATH or explicit env var (def qt-shim-loaded (if static-build? #f ; symbols already linked in; --export-dynamic makes them visible --- a/src/jerboa-qt/qt.ss +++ b/src/jerboa-qt/qt.ss @@ -1,6 +1,6 @@ ;;; qt.ss — High-level idiomatic Chez Scheme API for Qt ;;; -;;; Provides API parity with gerbil-qt's qt.ss: +;;; Provides API parity with qt-vendor's qt.ss: ;;; - Lifecycle: qt-app-create, qt-app-exec!, with-qt-app ;;; - Widgets: labels, buttons, line edits, combos, etc. ;;; - Signals: qt-on-clicked!, qt-on-text-changed!, etc.