mirror of
https://gitlab.com/eql/lqml.git
synced 2025-12-06 02:30:38 -08:00
add missing file
This commit is contained in:
parent
e98a7ed161
commit
edd60955db
2 changed files with 139 additions and 1 deletions
|
|
@ -59,7 +59,8 @@
|
|||
;; needed for :sockets (linked as static lib)
|
||||
(asdf:defsystem :sb-bsd-sockets)
|
||||
|
||||
;; eventual ssl libs (not included in LQML) need to be loaded manually
|
||||
;; eventual ssl libs need to be loaded manually
|
||||
;; TODO: still needed?
|
||||
#+android
|
||||
(when (probe-file "libssl.so")
|
||||
(ffi:load-foreign-library "libcrypto.so")
|
||||
|
|
|
|||
137
examples/clog-demo/readme-build.md
Normal file
137
examples/clog-demo/readme-build.md
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
|
||||
Prepare
|
||||
-------
|
||||
|
||||
First you need to patch the ASDF from ECL android. So, switch to where you have
|
||||
ecl-android installed, and edit file: 'contrib/asdf/asdf.lisp'.
|
||||
|
||||
Find the following function, and replace it with this code:
|
||||
```
|
||||
(defun system-source-directory (system-designator)
|
||||
;; hack
|
||||
(let ((dir (pathname-directory-pathname (system-source-file system-designator))))
|
||||
(if dir
|
||||
(translate-logical-pathname dir)
|
||||
(when (probe-file "/sdcard/") ; android (needs runtime check)
|
||||
*default-pathname-defaults*))))
|
||||
```
|
||||
You need to rebuild ECL android after this; in order to make a clean rebuild,
|
||||
remove the following directories:
|
||||
|
||||
rm -fr ecl-android
|
||||
rm -fr ecl-android-host
|
||||
rm -fr build
|
||||
|
||||
Then run the 2 build scripts again.
|
||||
|
||||
(Notes: this is needed because on android some paths are returned as logical
|
||||
pathnames, which need translation for the way they are used in CLOG. And in
|
||||
case the ASDF source files are not present, like here, the above path should
|
||||
not return NIL, which would give a runtime error, so we simply return the app
|
||||
path instead.)
|
||||
|
||||
--
|
||||
|
||||
If you use Qt versions prior to 5.15, you need to adapt the QML module version
|
||||
to your minor Qt version in all files under `qml/`.
|
||||
|
||||
Example: Qt5.**12** => import QtQuick 2.**12**.
|
||||
|
||||
The version number can be omitted in Qt6.
|
||||
|
||||
|
||||
Note
|
||||
----
|
||||
|
||||
Every Lisp file under `lisp/` and every qml/image/font/whatever file under
|
||||
`qml/` is added **automatically** to your Qt project file (both for re-compile
|
||||
and adding to resources included in the executable).
|
||||
|
||||
So, you only need to **manually** care about the usual ASDF project files in
|
||||
`app.asd`.
|
||||
|
||||
|
||||
Run desktop
|
||||
-----------
|
||||
```
|
||||
$ lqml run.lisp
|
||||
```
|
||||
|
||||
|
||||
Build desktop app
|
||||
-----------------
|
||||
```
|
||||
$ cd build
|
||||
|
||||
$ qmake ..
|
||||
$ make
|
||||
```
|
||||
|
||||
|
||||
Build android APK
|
||||
-----------------
|
||||
```
|
||||
$ cd build-android
|
||||
|
||||
$ qmake-android ..
|
||||
$ make apk
|
||||
|
||||
$ ./install-run.sh
|
||||
```
|
||||
Log note: for showing only your own messages, see `log.sh`.
|
||||
|
||||
|
||||
|
||||
Build iOS app
|
||||
-------------
|
||||
|
||||
**Important notes**: the Qt Xcode integration is not perfect, which means: when
|
||||
you include asset files (like in example `swank-server`), they may not be
|
||||
copied to the build directory, the first time you build the app.
|
||||
|
||||
So, it's a good idea to run `qmake-ios` twice before building the app.
|
||||
|
||||
The first build after a `qmake-ios` will almost always fail (missing files):
|
||||
just run 'Build' (from Xcode) again, and the missing files will be created.
|
||||
|
||||
You also need to check the console from where you launched `./xcode.sh` for
|
||||
eventual errors compiling the Lisp code.
|
||||
```
|
||||
$ cd build-ios
|
||||
|
||||
$ qmake-ios ..
|
||||
$ qmake-ios .. # run twice
|
||||
|
||||
$ ./xcode.sh
|
||||
```
|
||||
The script above first cross-compiles the Lisp code, then opens **Xcode**.
|
||||
|
||||
Please note:
|
||||
|
||||
* before building the app, go to 'Build Settings' / 'Build Options' and set
|
||||
**Enable Bitcode** to **No**
|
||||
|
||||
* if it complains about missing source files when first hitting the 'Run'
|
||||
button, just hit the 'Run' button again (and they will be generated)
|
||||
|
||||
* using latest Xcode, it may complain about the 'Legacy Build System'; just go
|
||||
to 'File' / 'Project Settings' and select 'New Build System'
|
||||
|
||||
* you only need to run `qmake-ios` again after you added/removed files to the
|
||||
project; after every `qmake-ios`, the above steps need to be repeated
|
||||
|
||||
If you cross-compiled ECL for the simulator, it should work there too, but this
|
||||
is currently only tested on **Intel**.
|
||||
|
||||
Simulator note: to show the virtual keyboard, use `cmd-k`.
|
||||
|
||||
|
||||
Advanced note
|
||||
-------------
|
||||
For conditions during Qt event processing, a fallback restart is added at
|
||||
startup (needed in e.g. Slime).
|
||||
|
||||
If you don't want this, define the following in `app.pro`:
|
||||
```
|
||||
DEFINES += NO_QT_RESTART
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue