(ns frq.main-nim "The real app, with the Nim core underneath it. `frq.main` with one line changed: `frq.net.nim/install!` where it says `frq.net.dart/install!`. Everything else is shared with it — `bind!` and `start!` are its own, the screens are `common/frq/screens/`, the state is `frq.cells`, the actions are `frq.actions`. Nothing was reimplemented and nothing was moved. A second entry namespace rather than a flag inside `frq.main`, for the reason `frq.main-web` is one: `clojure -M:cljd compile` walks out from a single namespace, so what `frq.main` requires is what every target compiles. `frq.net.nim` reaches `package:frq_core`, which is `dart:ffi`, which the web target has no library for — requiring it from `frq.main` would break the build that works to serve the one being tried. Built as `flutter build linux -t lib/main_nim_app.dart`; see `just nim-app`." (:require ["package:path_provider/path_provider.dart" :as pp] [frq.main :as app] [frq.io :as _io] [frq.io.dart :as host] [frq.net.nim :as net-nim] [frq.oauth.dart :as oauth-dart] [frq.atproto.dart :as atproto-dart] [frq.pictures.dart :as pictures-dart])) (defn ^:async main [] (app/bind!) (host/install! (.-path (await (pp/getApplicationSupportDirectory)))) ;; The one line that differs from `frq.main/main`. (net-nim/install!) (oauth-dart/install!) (atproto-dart/install!) (pictures-dart/install!) (await (app/start!)))