AtlatestRepositorysigil-app
1
;;; sigil-app - Application framework for Sigil2
;;;3
;;; Provides windowing, input handling, and application lifecycle management4
;;; via sokol_app. This is the base package for interactive applications.6
(package7
name: "sigil-app"8
version: "0.9.0"9
sigil: "^0.17"10
description: "Application framework for Sigil (windowing, input, lifecycle)"11
url: "https://codeberg.org/sigil/sigil-app"12
license: "BSD-3-Clause"13
authors: (list "David Wilson <[email protected]>")15
configs: (list16
(config17
name: 'dev18
output-dir: "build/dev"19
debug?: #t20
optimize: 0)21
(config22
name: 'release23
output-dir: "build/release"24
debug?: #f25
optimize: 2)27
;; Windows x86_64 (MinGW via zig) — built so downstream consumers28
;; (e.g., cinder-cantata) can produce Windows binaries from Linux.29
;; Mirrors the windows-amd64 config in sigil-audio and the main sigil package.30
(config31
name: 'windows-amd6432
output-dir: "build/windows-amd64"33
toolchain: 'zig34
target: "x86_64-windows-gnu"35
static?: #t36
debug?: #f37
optimize: 238
features: '(release cross windows)))40
dependencies: (list41
(from-git url: "codeberg:sigil/sigil" package: "sigil-stdlib" version: "^0.17"))43
libraries: (list44
(library45
name: 'sigil-app46
c-sources: '("src/c/sokol-app.c" "src/c/app.c")47
c-include-dirs: '("vendor/sokol" "src/c")48
native-init: "sigil__init_sigil_app_module"49
;; Platform-specific linker flags for sokol_app.50
;;51
;; Procedural (lambda ctx) form so cross-compile configs evaluate52
;; the right branch at link time. (case (host-os) ...) was evaluated53
;; once at package-load on the host, leaking Linux flags into54
;; cross builds.55
link-flags: (lambda (ctx)56
(case (target-os ctx)57
((linux) '("-lX11" "-lXi" "-lXcursor"))58
((darwin) '("-framework" "Cocoa" "-framework" "QuartzCore"))59
((windows) '("-lkernel32" "-luser32" "-lshell32" "-lgdi32"))60
(else '())))))62
tasks: (list63
(task64
name: 'build65
description: "Build sigil-app"66
steps: (list67
(compile-c-sources68
sources: '("src/c/sokol-app.c" "src/c/app.c")69
include-dirs: '("vendor/sokol" "src/c")70
flags: (with-sigil-c-flags '("-std=c99" "-D_GNU_SOURCE"71
"-DSOKOL_NO_ENTRY" "-DSOKOL_GLCORE"72
"-Wno-unused-parameter")))73
(create-static-library name: "sigil-app")74
(compile-sigil-modules sources: "src/**/*.sgl"75
output-dir: (config-output-subdir "lib"))))))