build wrapper functions by default (no more optionally)

This commit is contained in:
polos 2017-09-14 13:17:44 +02:00
parent 955734e192
commit fef57f5447
52 changed files with 41 additions and 242 deletions

View file

@ -18,7 +18,7 @@ Build (for the impatient)
In `src/` do:
```
$ ecl -shell make
$ ecl -shell make # will take a while
$ qmake eql5.pro # comment out all modules you don't need
$ make
$ sudo make install # Unix only
@ -28,9 +28,6 @@ Now you should be able to run `eql5`.
If there are problems, or you want more info, see detailed instructions below.
N.B. If the above runs, please don't forget to integrate the
**wrapper functions**, see `README-3-OPTIONAL`, needed for serious development.
Tested with:
@ -313,11 +310,6 @@ You might want to put this in your `~/.eclrc` file:
eql:*break-on-errors* t)
```
It is **highly recommended** to integrate the wrapper functions, see
`README-3-OPTIONAL`.
This will make all Qt functions real Lisp functions, which also means symbol
tab-completion, both in Emacs/Slime and with `ecl-readline`.
Please see also example `examples/X-extras/CLOS-encapsulation.lisp` for
encapsulation of Qt classes in Lisp classes or structs (that is, Lisp classes
that behave like a Qt class if passed to Qt functions).

View file

@ -1,55 +0,0 @@
### Wrapper functions
(for manual loading, see `src/lisp/all-wrappers.lisp`)
Examples:
```
(|show| widget)
(|toString| (|currentTime.QTime|)) ; static function
```
### Integrate them permanently
Build EQL5 as usual, then run (in `src/`)
```
$ eql5 make-wrappers.lisp
```
```
$ touch tmp/eql.o # Windows: del tmp/eql.obj
```
```
$ qmake eql_lib.pro
$ make # MSVC: nmake
$ sudo make install # Unix only
```
Note: The resulting shared library should be stripped (automatically done by
`make install`); this will reduce its size considerably.
--
The convenience macro `x:do-with` has been adapted to work with the wrappers:
```
(x:do-with item
(|setTextAlignment| 0 |Qt.AlignRight|)
(|setText| 0 "123"))
```
--
Normally not needed, but if you want to generate the wrappers for your
Qt version (much different from Qt 5.5) do:
```
$ cd src/lisp
$ eql5 define-all-wrappers.lisp
```

View file

@ -1,6 +1,3 @@
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
;;; Ported Qt Widgets Tutorial - Creating a Window
(in-package :eql-user)

View file

@ -1,6 +1,3 @@
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
;;; Ported Qt Widgets Tutorial - Child Widgets
(in-package :eql-user)

View file

@ -1,6 +1,3 @@
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
;;; Ported Qt Widgets Tutorial - Using Layouts
(in-package :eql-user)

View file

@ -1,6 +1,3 @@
#-qt-wrapper-functions
(load (in-home "src/lisp/all-wrappers"))
;;; Ported Qt Widgets Tutorial - Nested Layouts
(in-package :eql-user)

View file

@ -1,8 +1,5 @@
;;; This is (kind of) a port of the Qt Script Example "Clock"
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(defpackage :clock
(:use :common-lisp :eql)
(:export

View file

@ -1,6 +1,3 @@
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(defpackage :main-window
(:use :common-lisp :eql)
(:export

View file

@ -1,8 +1,5 @@
;;; This is a port of the Qt Example "Wiggly Widget"
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(defpackage :wiggly-widget
(:nicknames :wiggly)
(:use :common-lisp :eql)

View file

@ -7,9 +7,6 @@
;;; The good news: if a seg.fault happens (in C++), just choose the restart option "Abort" (below "Continue"),
;;; and the application will continue to run.
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(defpackage :colliding-mice
(:nicknames :mice)
(:use :common-lisp :eql)

View file

@ -1,6 +1,3 @@
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(unless (eql:qrequire :network)
(error "EQL module :network could not be found/loaded")
(eql:qq))

View file

@ -11,16 +11,13 @@
;;;
;;; (because of multiple inheritance from both QObject and QGraphicsItem)
;;;
;;; If you use the wrapper functions instead (see "src/lisp/all-wrappers"),
;;; this cast is done automatically:
;;; If you use the wrapper functions instead, this cast is done
;;; automatically:
;;;
;;; (|setPos| graphics-text-item '(0 0)))
;;;
;;; ------------------------------------------------------------------------
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(load (eql:in-home "examples/7-Sokoban/3rd-party/sokoban"))
(load (eql:in-home "examples/7-Sokoban/3rd-party/levels"))

View file

@ -1,8 +1,5 @@
;;; This is a port of the Qt OpenGL Example "Grabber"
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(require :gl-widget (eql:in-home "examples/8-OpenGL/gl-widget"))
(defpackage :main-window

View file

@ -1,8 +1,5 @@
;;; copyright (c) Polos Ruetz
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(unless (eql:qrequire :network)
(error "[EQL] module :network required")
(eql:qq))

View file

@ -1,8 +1,5 @@
;;; port of example "camera" (QtMultimediaWidgets)
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :multimedia)
(require :ui (in-home "examples/M-modules/multimedia/camera/ui/ui-camera"))

View file

@ -1,8 +1,5 @@
;; port of Qt example "videographicsitem" (QtMultimediaWidgets)
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :multimedia)
(require :ui (in-home "examples/M-modules/multimedia/video-graphics-item/ui/ui-video-graphics-item"))

View file

@ -1,8 +1,5 @@
;; port of Qt example "videowidget" (QtMultimediaWidgets)
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :multimedia)
(require :ui (in-home "examples/M-modules/multimedia/video-widget/ui/ui-video-widget"))

View file

@ -5,9 +5,6 @@
;;; The JS game logic has been ported to Lisp.
;;;
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :quick)
(require :qml-lisp "qml-lisp")

View file

@ -1,8 +1,5 @@
;;; abstract item model (please see README.txt)
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :quick)
(require :qml-lisp "qml-lisp")

View file

@ -1,8 +1,5 @@
;;; string-list model
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :quick)
(require :qml-lisp "qml-lisp")

View file

@ -5,9 +5,6 @@
;;; See also "lib/qml_lisp.*" for PaintedItem.
;;;
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :quick)
(require :qml-lisp "qml-lisp")

View file

@ -1,8 +1,5 @@
;;; QQuickView running QML
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :quick)
(require :properties "properties")

View file

@ -1,8 +1,5 @@
;;; palindrome
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :quick)
(require :qml-lisp "qml-lisp")

View file

@ -1,8 +1,5 @@
;;; QQuickView loading Lisp enabled QML
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :quick)
(require :qml-lisp "qml-lisp")

View file

@ -2,9 +2,6 @@
;;;
;;; (for a native QML container, use QQuickView)
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :quick)
(defun example-url (name)

View file

@ -4,9 +4,6 @@
;;; Use CHANGE-LEVEL to directly change the level index.
;;;
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :quick)
(require :sokoban "3rd-party/sokoban")

View file

@ -1,9 +1,6 @@
;;; this is (kind of) a simplified port of the "tableview" C++/QML example
;;; (see also README.txt)
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :quick)
(require :qml-lisp "qml-lisp")

View file

@ -1,6 +1,3 @@
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(in-package :eql-user)
(setf *break-on-errors* t)

View file

@ -2,9 +2,6 @@
;;;
;;; "Just For Fun"
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :webkit)
(qrequire :webengine)

View file

@ -1,8 +1,5 @@
;;; simple WebEngine example
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :webengine)
(defvar *view* (qnew "QWebEngineView"))

View file

@ -9,9 +9,6 @@
;;;
;;; Once downloaded, the application files are cached locally (to be run offline).
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :webkit)
(qrequire :network)

View file

@ -1,8 +1,5 @@
;;; This is a port of Qt example "webkit/domtraversal/"
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :webkit)
(in-package :eql-user)

View file

@ -7,9 +7,6 @@
;;; Note: Adding QNetworkRequest to the plugin widget would allow to get
;;; any data from the web, but this is not shown here.
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(qrequire :webkit)
(in-package :eql-user)

View file

@ -32,9 +32,6 @@
;;; (iterate-elements "A" (|setOuterXml| element text)) ; unlink
;;;
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
#+win32 (si:trap-fpe 'floating-point-underflow nil) ; for QWebInspector
(qrequire :webkit)

View file

@ -2,9 +2,6 @@
;;;
;;; depends on small plugin, see "lib/"
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
#+win32 (si:trap-fpe 'floating-point-underflow nil) ; for QWebInspector
(qrequire :webkit)

View file

@ -1,6 +1,3 @@
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(in-package :eql-user)
;; define class or struct

View file

@ -3,9 +3,6 @@
;;; - displays exact value + float value
;;; - runs visual automations
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(defpackage :calculator
(:nicknames :clc)
(:use :common-lisp :eql)

View file

@ -1,8 +1,5 @@
;;; LCD pixel color test (inspired by a "comp.lang.lisp" thread)
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(in-package :eql-user)
(defun lcd-test ()

View file

@ -2,9 +2,6 @@
;;; Contributed by Mark Cox, please see LICENSE-MAKE-QIMAGE.txt
;;;
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(defpackage "MAKE-QIMAGE-EXAMPLE"
(:use "COMMON-LISP"
"EQL")

View file

@ -5,9 +5,6 @@
;;;
;;; N.B: If you load this file in Slime, you need to use QLOAD instead of LOAD!
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(in-package :eql-user)
(setf *break-on-errors* t)

View file

@ -2,9 +2,6 @@
;;;
;;; N.B: If you load this file in Slime, you need to use QLOAD instead of LOAD!
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(in-package :eql-user)
(require :definitions "definitions")

View file

@ -16,9 +16,6 @@
;;; (resulting in better performance).
;;;
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(defvar *tree-widget* (qnew "QTreeWidget"
"alternatingRowColors" t
"size" '(500 300)))

View file

@ -8,9 +8,6 @@
;;;
;;; optionally pass image file as command line argument
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(defpackage :image-manipulation
(:nicknames :img)
(:use :common-lisp :eql)

View file

@ -1,8 +1,5 @@
;;; Screenshot with countdown
#-qt-wrapper-functions
(load (in-home "src/lisp/all-wrappers"))
(in-package :eql-user)
(defvar *pixmap* (qnew "QPixmap(QString)" (in-home "examples/X-extras/screenshot/camera.png")))

View file

@ -2,9 +2,6 @@
;;;
;;; N.B: If you load this file in Slime, you need to use QLOAD instead of LOAD!
#-qt-wrapper-functions ; see README-OPTIONAL.txt
(load (in-home "src/lisp/all-wrappers"))
(in-package :eql-user)
(defun print-mounted-volumes ()

View file

@ -7,7 +7,7 @@
#include <QTimer>
#include <QStringList>
const char EQL::version[] = "17.7.1"; // July 2017
const char EQL::version[] = "17.9.1"; // September 2017
extern "C" void ini_EQL(cl_object);

View file

@ -1,4 +1,5 @@
# comment out all modules you don't need:
# -----------------------------------------------------
# below you can comment out all modules you don't need:
SUBDIRS = help \
multimedia \
@ -8,6 +9,7 @@ SUBDIRS = help \
svg \
# webengine \
webkit
# -----------------------------------------------------
TEMPLATE = subdirs
SUBDIRS += lib exe

View file

@ -34,7 +34,7 @@ public:
Q_INVOKABLE void MsetSavePageFormat(QWebEngineDownloadItem* o, QWebEngineDownloadItem::SavePageFormat x1) { o->setSavePageFormat(x1); }
Q_INVOKABLE int Mstate(QWebEngineDownloadItem* o) const { return o->state(); }
Q_INVOKABLE qlonglong MtotalBytes(QWebEngineDownloadItem* o) const { return o->totalBytes(); }
Q_INVOKABLE int Mtype(QWebEngineDownloadItem* o) const { return o->type(); }
//Q_INVOKABLE int Mtype(QWebEngineDownloadItem* o) const { return o->type(); }
Q_INVOKABLE QUrl Murl(QWebEngineDownloadItem* o) const { return o->url(); }
};
@ -54,18 +54,18 @@ public:
Q_INVOKABLE QUrl MiconUrl(QWebEnginePage* o) const { return o->iconUrl(); }
Q_INVOKABLE bool MisAudioMuted(QWebEnginePage* o) const { return o->isAudioMuted(); }
Q_INVOKABLE void Mload(QWebEnginePage* o, const QUrl& x1) { o->load(x1); }
Q_INVOKABLE void Mprint(QWebEnginePage* o, QPrinter* x1, FunctorOrLambda x2) { o->print(x1, x2); }
//Q_INVOKABLE void Mprint(QWebEnginePage* o, QPrinter* x1, FunctorOrLambda x2) { o->print(x1, x2); }
Q_INVOKABLE void MprintToPdf(QWebEnginePage* o, const QString& x1, const QPageLayout& x2 = QPageLayout_DEFAULT) { o->printToPdf(x1, x2); }
Q_INVOKABLE void MprintToPdf(QWebEnginePage* o, FunctorOrLambda x1, const QPageLayout& x2 = QPageLayout_DEFAULT) { o->printToPdf(x1, x2); }
Q_INVOKABLE QWebEngineProfile* Mprofile(QWebEnginePage* o) const { return o->profile(); }
Q_INVOKABLE bool MrecentlyAudible(QWebEnginePage* o) const { return o->recentlyAudible(); }
Q_INVOKABLE void MreplaceMisspelledWord(QWebEnginePage* o, const QString& x1) { o->replaceMisspelledWord(x1); }
//Q_INVOKABLE void MreplaceMisspelledWord(QWebEnginePage* o, const QString& x1) { o->replaceMisspelledWord(x1); }
Q_INVOKABLE QUrl MrequestedUrl(QWebEnginePage* o) const { return o->requestedUrl(); }
Q_INVOKABLE void MrunJavaScript(QWebEnginePage* o, const QString& x1, quint32 x2, FunctorOrLambda x3) { o->runJavaScript(x1, x2, x3); }
Q_INVOKABLE void MrunJavaScript(QWebEnginePage* o, const QString& x1, quint32 x2) { o->runJavaScript(x1, x2); }
Q_INVOKABLE void MrunJavaScript(QWebEnginePage* o, const QString& x1, FunctorOrLambda x2) { o->runJavaScript(x1, x2); }
Q_INVOKABLE void MrunJavaScript(QWebEnginePage* o, const QString& x1) { o->runJavaScript(x1); }
Q_INVOKABLE void Msave(QWebEnginePage* o, const QString& x1, QWebEngineDownloadItem::SavePageFormat x2 = QWebEngineDownloadItem::MimeHtmlSaveFormat) const { o->save(x1, x2); }
//Q_INVOKABLE void Msave(QWebEnginePage* o, const QString& x1, QWebEngineDownloadItem::SavePageFormat x2 = QWebEngineDownloadItem::MimeHtmlSaveFormat) const { o->save(x1, x2); }
Q_INVOKABLE QPointF MscrollPosition(QWebEnginePage* o) const { return o->scrollPosition(); }
Q_INVOKABLE QString MselectedText(QWebEnginePage* o) const { return o->selectedText(); }
Q_INVOKABLE void MsetAudioMuted(QWebEnginePage* o, bool x1) { o->setAudioMuted(x1); }
@ -102,7 +102,7 @@ public:
Q_INVOKABLE int MhttpCacheType(QWebEngineProfile* o) const { return o->httpCacheType(); }
Q_INVOKABLE QString MhttpUserAgent(QWebEngineProfile* o) const { return o->httpUserAgent(); }
Q_INVOKABLE bool MisOffTheRecord(QWebEngineProfile* o) const { return o->isOffTheRecord(); }
Q_INVOKABLE bool MisSpellCheckEnabled(QWebEngineProfile* o) const { return o->isSpellCheckEnabled(); }
//Q_INVOKABLE bool MisSpellCheckEnabled(QWebEngineProfile* o) const { return o->isSpellCheckEnabled(); }
Q_INVOKABLE int MpersistentCookiesPolicy(QWebEngineProfile* o) const { return o->persistentCookiesPolicy(); }
Q_INVOKABLE QString MpersistentStoragePath(QWebEngineProfile* o) const { return o->persistentStoragePath(); }
Q_INVOKABLE void MremoveUrlScheme(QWebEngineProfile* o, const QByteArray& x1) { o->removeUrlScheme(x1); }
@ -115,10 +115,10 @@ public:
Q_INVOKABLE void MsetPersistentCookiesPolicy(QWebEngineProfile* o, QWebEngineProfile::PersistentCookiesPolicy x1) { o->setPersistentCookiesPolicy(x1); }
Q_INVOKABLE void MsetPersistentStoragePath(QWebEngineProfile* o, const QString& x1) { o->setPersistentStoragePath(x1); }
Q_INVOKABLE void MsetRequestInterceptor(QWebEngineProfile* o, QWebEngineUrlRequestInterceptor* x1) { o->setRequestInterceptor(x1); }
Q_INVOKABLE void MsetSpellCheckEnabled(QWebEngineProfile* o, bool x1) { o->setSpellCheckEnabled(x1); }
Q_INVOKABLE void MsetSpellCheckLanguages(QWebEngineProfile* o, const QStringList& x1) { o->setSpellCheckLanguages(x1); }
//Q_INVOKABLE void MsetSpellCheckEnabled(QWebEngineProfile* o, bool x1) { o->setSpellCheckEnabled(x1); }
//Q_INVOKABLE void MsetSpellCheckLanguages(QWebEngineProfile* o, const QStringList& x1) { o->setSpellCheckLanguages(x1); }
Q_INVOKABLE QWebEngineSettings* Msettings(QWebEngineProfile* o) const { return o->settings(); }
Q_INVOKABLE QStringList MspellCheckLanguages(QWebEngineProfile* o) const { return o->spellCheckLanguages(); }
//Q_INVOKABLE QStringList MspellCheckLanguages(QWebEngineProfile* o) const { return o->spellCheckLanguages(); }
Q_INVOKABLE QString MstorageName(QWebEngineProfile* o) const { return o->storageName(); }
Q_INVOKABLE bool MvisitedLinksContainsUrl(QWebEngineProfile* o, const QUrl& x1) const { return o->visitedLinksContainsUrl(x1); }
Q_INVOKABLE QWebEngineProfile* SdefaultProfile() { return QWebEngineProfile::defaultProfile(); }

View file

@ -1,28 +0,0 @@
#-eql5
(error "Please use the EQL5 executable to run this file")
(require :cmp)
(setf *break-on-signals* 'error)
#+msvc
(setf c::*compile-in-constants* t)
(defparameter *all-wrappers* (append (loop :for i :from 1 :to 12 :collect (format nil "all-wrappers-~D" i))
(loop :for i :from 1 :to 2 :collect (format nil "all-wrappers-webengine-~D" i))))
(defparameter *lisp-files* (append '("x" "package" "ini"
"enums1" "enums2" "enums3" "enums4" "enums5"
"special-extensions")
*all-wrappers*))
(dolist (file *all-wrappers*)
(compile-file (format nil "lisp/~A.lisp" file) :system-p t))
(c:build-static-library "ini_eql5"
:lisp-files (mapcar (lambda (file)
(format nil "lisp/~A.~A" file #+msvc "obj" #-msvc "o"))
*lisp-files*)
:init-name "ini_EQL")
(eql:qq)

View file

@ -8,9 +8,9 @@
#+msvc
(setf c::*compile-in-constants* t)
(defparameter *lisp-files* (list "x" "package" "ini"
"enums1" "enums2" "enums3" "enums4" "enums5"
"special-extensions"))
(defvar *lisp-files* (list "x" "package" "ini"
"enums1" "enums2" "enums3" "enums4" "enums5"
"special-extensions"))
(dolist (f *lisp-files*)
(let* ((file (format nil "lisp/~A" f))
@ -19,10 +19,32 @@
(delete-file file.o))
(compile-file file :system-p t)))
;; wrapper functions
(defvar *all-wrappers* (append (loop :for i :from 1 :to 12 :collect (format nil "all-wrappers-~D" i))
(loop :for i :from 1 :to 2 :collect (format nil "all-wrappers-webengine-~D" i))))
(load "lisp/x")
(load "lisp/package")
(defun eql::%invoke-method (&rest args))
(defun eql::qproperty (&rest args))
(defun eql::qset-property (&rest args))
(progn
(compile-file "lisp/ini")
(load "lisp/ini")
(compile-file "lisp/ini" :system-p t))
(dolist (file *all-wrappers*)
(compile-file (format nil "lisp/~A.lisp" file) :system-p t))
;; lib
(c:build-static-library "ini_eql5"
:lisp-files (mapcar (lambda (file)
(format nil "lisp/~A.~A" file #+msvc "obj" #-msvc "o"))
*lisp-files*)
(append *lisp-files* *all-wrappers*))
:init-name "ini_EQL")
;; for eql5.pro (doesn't create directories)

View file

@ -5,11 +5,6 @@ rm lisp/*.o
ecl -shell make.lisp &&
qmake eql5.pro &&
make &&
sudo make install &&
eql5 make-wrappers.lisp &&
touch tmp/eql.o &&
qmake eql_lib.pro &&
make &&
sudo make install
echo OK