summaryrefslogtreecommitdiff
path: root/catbird/config.scm
blob: 98ad030117d408136d302766e87829b8fa6f16dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
;;; Catbird Game Engine
;;; Copyright © 2022 David Thompson <davet@gnu.org>
;;;
;;; Licensed under the Apache License, Version 2.0 (the "License");
;;; you may not use this file except in compliance with the License.
;;; You may obtain a copy of the License at
;;;
;;;    http://www.apache.org/licenses/LICENSE-2.0
;;;
;;; Unless required by applicable law or agreed to in writing, software
;;; distributed under the License is distributed on an "AS IS" BASIS,
;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;;; See the License for the specific language governing permissions and
;;; limitations under the License.

;;; Commentary:
;;
;; Engine-wide global configuration.
;;
;;; Code:
(define-module (catbird config)
  #:use-module (oop goops)
  #:export (developer-mode?
            <catbird-metaclass>
            define-root-class))

(define developer-mode?
  (equal? (getenv "CATBIRD_DEV_MODE") "1"))

(define <catbird-metaclass>
  (if developer-mode? <redefinable-class> <class>))

(define-syntax-rule (define-root-class name (supers ...) args ...)
  (define-class name (supers ...)
    args ...
    #:metaclass <catbird-metaclass>))