some additions to prepare for example 'cl-repl'; revisions

This commit is contained in:
pls.153 2022-04-09 17:33:55 +02:00
parent 789b4716c1
commit 88e7602917
4 changed files with 90 additions and 73 deletions

View file

@ -59,10 +59,12 @@ Build iOS app
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.
So, it's a good idea to run `qmake-ios` again if there are any startup problems
of the app (like asset files not found when launching).
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.
The first build after a `qmake-ios` will almost always fail (missing build
files): don't worry, 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.
@ -70,13 +72,12 @@ 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:
Please note (important):
* before building the app, go to 'Build Settings' / 'Build Options' and set
**Enable Bitcode** to **No**
@ -96,8 +97,10 @@ 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).

View file

@ -28,40 +28,41 @@ void iniCLFunctions() {
cl_make_package(1, qml);
}
si_select_package(qml);
DEFUN ("clipboard-text", clipboard_text, 0)
DEFUN ("%ensure-permissions", ensure_permissions2, 1)
DEFUN ("%js", js2, 2)
DEFUN ("pixel-ratio", pixel_ratio, 0)
DEFUN ("%qapropos", qapropos2, 3)
DEFUN ("qchildren", qchildren, 1)
DEFUN ("qcopy-file", qcopy_file, 2)
DEFUN ("qdirectory", qdirectory, 1)
DEFUN ("qescape", qescape, 1)
DEFUN ("%qexec", qexec2, 1)
DEFUN ("qexit", qexit, 0)
DEFUN ("qfind-child", qfind_child, 2)
DEFUN ("%qfind-children", qfind_children2, 3)
DEFUN ("qfrom-utf8", qfrom_utf8, 1)
DEFUN ("%qinvoke-method", qinvoke_method2, 3)
DEFUN ("%qload-c++", qload_cpp, 2)
DEFUN ("%qlog", qlog2, 1)
DEFUN ("qnull", qnull, 1)
DEFUN ("%qml-get", qml_get2, 2)
DEFUN ("%qml-set", qml_set2, 3)
DEFUN ("qobject-name", qobject_name, 1)
DEFUN ("%qprocess-events", qprocess_events2, 1)
DEFUN ("%qquit", qquit2, 1)
DEFUN ("%qrun-on-ui-thread", qrun_on_ui_thread2, 2)
DEFUN ("%qget", qget2, 2)
DEFUN ("%qset", qset2, 2)
DEFUN ("%qsingle-shot", qsingle_shot2, 2)
DEFUN ("qtranslate", qtranslate, 3)
DEFUN ("qversion", qversion, 0)
DEFUN ("qt-object-info", qt_object_info, 1)
DEFUN ("%reload", reload2, 0)
DEFUN ("root-item", root_item, 0)
DEFUN ("set-clipboard-text", set_clipboard_text, 1)
DEFUN ("%set-shutdown-p", set_shutdown_p, 1)
DEFUN ("clipboard-text", clipboard_text, 0)
DEFUN ("%disable-clipboard-menu", disable_clipboard_menu2, 1)
DEFUN ("%ensure-permissions", ensure_permissions2, 1)
DEFUN ("%js", js2, 2)
DEFUN ("pixel-ratio", pixel_ratio, 0)
DEFUN ("%qapropos", qapropos2, 3)
DEFUN ("qchildren", qchildren, 1)
DEFUN ("qcopy-file", qcopy_file, 2)
DEFUN ("qdirectory", qdirectory, 1)
DEFUN ("qescape", qescape, 1)
DEFUN ("%qexec", qexec2, 1)
DEFUN ("qexit", qexit, 0)
DEFUN ("qfind-child", qfind_child, 2)
DEFUN ("%qfind-children", qfind_children2, 3)
DEFUN ("qfrom-utf8", qfrom_utf8, 1)
DEFUN ("%qinvoke-method", qinvoke_method2, 3)
DEFUN ("%qload-c++", qload_cpp, 2)
DEFUN ("%qlog", qlog2, 1)
DEFUN ("qnull", qnull, 1)
DEFUN ("%qml-get", qml_get2, 2)
DEFUN ("%qml-set", qml_set2, 3)
DEFUN ("qobject-name", qobject_name, 1)
DEFUN ("%qprocess-events", qprocess_events2, 1)
DEFUN ("%qquit", qquit2, 1)
DEFUN ("%qrun-on-ui-thread", qrun_on_ui_thread2, 2)
DEFUN ("%qget", qget2, 2)
DEFUN ("%qset", qset2, 2)
DEFUN ("%qsingle-shot", qsingle_shot2, 2)
DEFUN ("qtranslate", qtranslate, 3)
DEFUN ("qversion", qversion, 0)
DEFUN ("qt-object-info", qt_object_info, 1)
DEFUN ("%reload", reload2, 0)
DEFUN ("root-item", root_item, 0)
DEFUN ("set-clipboard-text", set_clipboard_text, 1)
DEFUN ("%set-shutdown-p", set_shutdown_p, 1)
STATIC_SYMBOL_PKG (s_view_status_changed, "VIEW-STATUS-CHANGED", "QML")
LQML::quickView->connect(LQML::quickView, &QQuickView::statusChanged,
@ -700,6 +701,12 @@ cl_object ensure_permissions2(cl_object l_permissions) {
ecl_return1(ecl_process_env(), l_ret);
}
cl_object disable_clipboard_menu2(cl_object l_disable) {
// for ios only, see Qt sources hack in example 'cl-repl'
qGuiApp->setProperty("disable-clipboard-menu", l_disable != ECL_NIL);
ecl_return1(ecl_process_env(), l_disable);
}
// *** meta info ***

View file

@ -50,40 +50,41 @@ QT_BEGIN_NAMESPACE
#define LIST10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \
CONS(a1, LIST9(a2, a3, a4, a5, a6, a7, a8, a9, a10))
cl_object clipboard_text ();
cl_object ensure_permissions2 (cl_object);
cl_object js2 (cl_object, cl_object);
cl_object pixel_ratio ();
cl_object qapropos2 (cl_object, cl_object, cl_object);
cl_object qchildren (cl_object);
cl_object qcopy_file (cl_object, cl_object);
cl_object qdirectory (cl_object);
cl_object qescape (cl_object);
cl_object qexec2 (cl_object);
cl_object qexit ();
cl_object qfind_child (cl_object, cl_object);
cl_object qfind_children2 (cl_object, cl_object, cl_object);
cl_object qfrom_utf8 (cl_object);
cl_object qinvoke_method2 (cl_object, cl_object, cl_object);
cl_object qload_cpp (cl_object, cl_object);
cl_object qlog2 (cl_object);
cl_object qnull (cl_object);
cl_object qml_get2 (cl_object, cl_object);
cl_object qml_set2 (cl_object, cl_object, cl_object);
cl_object qobject_name (cl_object);
cl_object qprocess_events2 (cl_object);
cl_object qquit2 (cl_object);
cl_object qrun_on_ui_thread2 (cl_object, cl_object);
cl_object qget2 (cl_object, cl_object);
cl_object qset2 (cl_object, cl_object);
cl_object qsingle_shot2 (cl_object, cl_object);
cl_object qtranslate (cl_object, cl_object, cl_object);
cl_object qversion ();
cl_object qt_object_info (cl_object);
cl_object reload2 ();
cl_object root_item ();
cl_object set_clipboard_text (cl_object);
cl_object set_shutdown_p (cl_object);
cl_object clipboard_text ();
cl_object disable_clipboard_menu2 (cl_object);
cl_object ensure_permissions2 (cl_object);
cl_object js2 (cl_object, cl_object);
cl_object pixel_ratio ();
cl_object qapropos2 (cl_object, cl_object, cl_object);
cl_object qchildren (cl_object);
cl_object qcopy_file (cl_object, cl_object);
cl_object qdirectory (cl_object);
cl_object qescape (cl_object);
cl_object qexec2 (cl_object);
cl_object qexit ();
cl_object qfind_child (cl_object, cl_object);
cl_object qfind_children2 (cl_object, cl_object, cl_object);
cl_object qfrom_utf8 (cl_object);
cl_object qinvoke_method2 (cl_object, cl_object, cl_object);
cl_object qload_cpp (cl_object, cl_object);
cl_object qlog2 (cl_object);
cl_object qnull (cl_object);
cl_object qml_get2 (cl_object, cl_object);
cl_object qml_set2 (cl_object, cl_object, cl_object);
cl_object qobject_name (cl_object);
cl_object qprocess_events2 (cl_object);
cl_object qquit2 (cl_object);
cl_object qrun_on_ui_thread2 (cl_object, cl_object);
cl_object qget2 (cl_object, cl_object);
cl_object qset2 (cl_object, cl_object);
cl_object qsingle_shot2 (cl_object, cl_object);
cl_object qtranslate (cl_object, cl_object, cl_object);
cl_object qversion ();
cl_object qt_object_info (cl_object);
cl_object reload2 ();
cl_object root_item ();
cl_object set_clipboard_text (cl_object);
cl_object set_shutdown_p (cl_object);
void iniCLFunctions();
void error_msg(const char*, cl_object);

View file

@ -247,6 +247,12 @@
(apply 'format nil arg1 args)
(x:join (mapcar 'princ-to-string (cons arg1 args))))))
;;; ios
(defun disable-clipboard-menu (&optional (disable t))
;; see Qt sources hack in example 'cl-repl'
(%disable-clipboard-menu disable))
;;; mobile ini
#+(or android ios)