You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PEB expects to find Perl interpreter in ``{PEB_binary_directory}/perl/bin`` folder. The interpreter must be named ``perl`` on Linux and Mac machines and ``perl.exe`` on Windows machines. If Perl interpreter is not found in the above location, PEB will try to find the first Perl interpreter on PATH. If no Perl interpreter is found, an error page is displayed instead of the start page. No Perl interpreter is a showstopper for PEB.
6
+
PEB expects to find a Perl interpreter in the ``{PEB_binary_directory}/perl/bin`` folder. The interpreter must be named ``perl`` on Linux and Mac machines and ``perl.exe`` on Windows machines. If Perl interpreter is not found in the above location, PEB will use the first Perl interpreter on PATH.
7
+
8
+
***Resources directory:**
9
+
Resources directory is ``{PEB_binary_directory}/resources`` or ``{AppImage_binary_directory}/resources`` if a PEB-based application is packed as an [AppImage](https://appimage.org/). Application, data and logs directories, as well as icon file of a PEB application must be located in this folder.
7
10
8
11
***Application directory:**
9
12
Application directory is ``{PEB_binary_directory}/resources/app``.
10
-
All files used by PEB, with the exception of data files, should be located within this folder.
13
+
All files used by PEB, with the exception of data files, must be located within this folder.
11
14
12
15
Application directory is hard coded in C++ code for compatibility with the [Electron](http://electron.atom.io/) framework.
13
16
[Epigraphista](https://github.com/ddmitov/epigraphista) is an example of a PEB-based application, that is also compatible with [Electron](http://electron.atom.io/) and [NW.js](http://nwjs.io/).
14
17
15
18
By default the working directory of all Perl scripts run by PEB is the application directory.
16
19
17
20
***Data Directory:**
18
-
Data directory should contain any files used or produced by a PEB-based application.
19
-
The data directory path is ``{PEB_binary_directory}/resources/data``.
20
-
Perl scripts can access this folder using the environment variable ``PEB_DATA_DIR``:
21
+
Data directory must contain any writable files used or produced by a PEB-based application.
22
+
The data directory path is ``{PEB_binary_directory}/resources/data`` or ``{AppImage_binary_directory}/resources/data`` if a PEB-based application is packed as an [AppImage](https://appimage.org/). Perl scripts can access this folder using the environment variable ``PEB_DATA_DIR``:
The only Linux and Macintosh compile-time requirement of PEB is a GCC-based Qt development bundle version 5.2 or any later version.
5
+
The only Linux and Macintosh compile-time requirement of PEB is a Qt development bundle version 5.2 or any later version.
6
6
7
-
The source code of PEB is not MSVC-compatible and PEB can not be compiled using any MSVC-based Windows version of Qt. Only applications build for a MSVC-based Qt version 5.6.x or higher can use ```QtWebEngine``` on the Windows platform. Windows GCC-based Qt development bundles version 5.6.x or higher have neither ```QtWebEngine```, nor ```QtWebKit```.
8
-
This means that:
9
-
* Windows builds of PEB can only be compiled by a GCC-based Qt development bundle.
10
-
* Windows builds of PEB can only use ```QtWebKit``` web engine.
11
-
* Updated ``QtWebKit`` have to be manually added from the
12
-
[QtWebKit repository of Konstantin Tokarev (annulen)](https://github.com/annulen/webkit/releases) to all Windows GCC-based Qt development bundles version 5.6.x or higher.
7
+
PEB Windows binary can be compiled using any MinGW (GCC-based) Qt development bundle version 5.2.x - 5.8.x.
8
+
9
+
Compiling Windows binaries of PEB is subject to the following restrictions:
10
+
11
+
* The source code of PEB is not MSVC-compatible and Windows builds of PEB can only be compiled by a MinGW (GCC-based) Qt development bundle.
12
+
* Only MSVC-based Qt development bundles version 5.6.x or higher include the ```QtWebEngine``` on the Windows platform and Windows builds of PEB can only use the ```QtWebKit``` web engine.
13
+
* Windows MinGW Qt development bundles version 5.6.x - 5.8.x have neither ```QtWebEngine```, nor ```QtWebKit``` and an updated ``QtWebKit`` has to be manually added from the [QtWebKit repository of Konstantin Tokarev (annulen)](https://github.com/annulen/webkit/releases).
14
+
* There are no MinGW Qt development bundles for any version 5.9.x or higher.
13
15
14
16
Compiled and tested successfully using:
15
-
*[Qt Creator 3.0.0 and Qt 5.2.0](http://download.qt.io/archive/qt/5.2/5.2.0/) on 32-bit Debian and 32-bit Windows XP
16
-
*[Qt Creator 3.0.1 and Qt 5.2.1](http://download.qt.io/archive/qt/5.2/5.2.1/) on 64-bit OS X 10.9.1, i5
17
-
*[Qt Creator 3.1.1 and Qt 5.3.0](http://download.qt.io/archive/qt/5.3/5.3.0/) on 64-bit Lubuntu 14.10
18
-
*[Qt Creator 3.1.1 and Qt 5.4.1](http://download.qt.io/archive/qt/5.4/5.4.1/) on 64-bit Lubuntu 15.04
19
-
*[Qt Creator 3.5.1 and Qt 5.5.1](http://download.qt.io/archive/qt/5.5/5.5.1/) on 64-bit Lubuntu 15.04 and 16.04
20
-
*[Qt Creator 4.2.1 and Qt 5.8.0](http://download.qt.io/archive/qt/5.5/5.5.1/) on 64-bit Lubuntu 16.04
17
+
*[Qt 5.2.0 and Qt Creator 3.0.0](http://download.qt.io/archive/qt/5.2/5.2.0/) on 32-bit Debian and 32-bit Windows XP
18
+
*[Qt 5.2.1 and Qt Creator 3.0.1](http://download.qt.io/archive/qt/5.2/5.2.1/) on 64-bit OS X 10.9.1, i5
19
+
*[Qt 5.3.0 and Qt Creator 3.1.1](http://download.qt.io/archive/qt/5.3/5.3.0/) on 64-bit Lubuntu 14.10
20
+
*[Qt 5.4.1 and Qt Creator 3.1.1](http://download.qt.io/archive/qt/5.4/5.4.1/) on 64-bit Lubuntu 15.04
21
+
*[Qt 5.5.1 and Qt Creator 3.5.1](http://download.qt.io/archive/qt/5.5/5.5.1/) on 64-bit Lubuntu 15.04 and 16.04
22
+
*[Qt 5.8.0 and Qt Creator 4.2.1](http://download.qt.io/archive/qt/5.8/5.8.0/) on 64-bit Lubuntu 16.04
23
+
*[Qt 5.9.1 and Qt Creator 4.3.1](http://download.qt.io/archive/qt/5.9/5.9.1/) on 64-bit Lubuntu 16.04
21
24
22
25
To compile PEB type in a terminal started in the ``src`` folder:
23
26
@@ -62,11 +65,10 @@ All compile-time settings require editing the ``src/peb.pro`` project file accor
62
65
CONFIG += app_bundle
63
66
```
64
67
65
-
## Runtime Requirements
66
-
* Qt 5 libraries.
68
+
To make automatically a bundled binary (peb.app) use the [dmg-maker.sh](sdk/dmg-maker.sh) script by Valcho Nedelchev.
67
69
68
-
Their full list for a QtWebKit Linux build of PEB can be found inside the [start-peb-webkit.sh](start-peb-webkit.sh) script.
69
-
Their full list for a QtWebEngine Linux build of PEB can be found inside the [start-peb-webengine.sh](start-peb-webengine.sh) script.
70
+
## Runtime Requirements
71
+
* Qt 5 libraries.
70
72
71
73
* Perl 5 distribution - any Linux, Mac or Windows Perl standard or relocatable distribution.
Copy file name to clipboardExpand all lines: SETTINGS.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -216,11 +216,14 @@ select_file.receiverFunction = function (file) {
216
216
Any new directory will be created immediately by PEB.
217
217
218
218
## Minimal Portable Perl Distribution for PEB
219
-
Sometimes it is important to minimize the size of the relocatable (or portable) Perl distribution used by a PEB-based application. [Perl Distribution Compactor](sdk/compactor.pl) is one solution to this problem. It finds all dependencies of all Perl scripts in the ``{PEB_binary_directory}/resources/app`` directory and copies them in a new ``{PEB_binary_directory}/perl/lib`` folder; a new ``{PEB_binary_directory}/perl/bin`` is also created. The original ``bin`` and ``lib`` folders may be saved as ``bin-original`` and ``lib-original`` respectively.
219
+
Sometimes it is important to minimize the size of the relocatable (or portable) Perl distribution used by a PEB-based application. [Perl Distribution Compactor](sdk/compactor.pl) is one solution for this problem. It finds all dependencies of all Perl scripts in the ``{PEB_binary_directory}/resources/app`` directory and copies them in a new ``{PEB_binary_directory}/perl/lib`` folder; a new ``{PEB_binary_directory}/perl/bin`` is also created. The original ``bin`` and ``lib`` folders may be saved as ``bin-original`` and ``lib-original`` respectively.
220
220
221
-
Perl Distribution Compactor should be started using [compactor.sh](sdk/compactor.sh) on a Linux or a Mac machine or [compactor.cmd](sdk/compactor.cmd) on a Windows machine to ensure that only the Perl distribution of PEB is used. This is necessary to avoid dependency mismatches with any other Perl on PATH.
221
+
Perl Distribution Compactor should be started using [compactor.sh](sdk/compactor.sh) on a Linux machine or [compactor.cmd](sdk/compactor.cmd) on a Windows machine to ensure that only the Perl distribution of PEB is used. This is necessary to avoid dependency mismatches with any other Perl on PATH.
222
222
223
223
Perl Distribution Compactor depends on [Module::ScanDeps](https://metacpan.org/pod/Module::ScanDeps) and [File::Copy::Recursive](https://metacpan.org/pod/File::Copy::Recursive) CPAN modules, which are included in the ``{PEB_binary_directory}/sdk/lib`` folder.
224
224
225
+
## AppImage Support
226
+
Any PEB-based application can be easily packed as a single executable Linux [AppImage](https://appimage.org/) file including the PEB binary, all necessary Qt libraries, relocatable Perl distribution and all application files. This can be easily achieved by the [AppImage Maker](sdk/appimage-maker.sh) script. It finds all dependencies of all Perl scripts in the ``{PEB_binary_directory}/resources/app`` directory and copies only the necessary Perl modules using the [Perl Distribution Compactor](sdk/compactor.pl). All Qt dependencies are detected and the final image is built using a special version of the [linuxdeployqt](https://github.com/probonopd/linuxdeployqt/releases/) binary.
227
+
225
228
## Log Files
226
-
If log files are needed for debugging of PEB or a PEB-based application, they can easily be turned on by manually creating ``{PEB_binary_directory}/logs``. If this directory is found during application startup, the browser assumes that logging is required and a separate log file is created for every browser session following the naming convention: ``{application_name}-started-at-{four_digit_year}-{month}-{day}--{hour}-{minute}-{second}.log``. PEB will not create ``{PEB_binary_directory}/logs`` on its own and if this directory is missing no logs will be written.
229
+
If log files are needed for debugging of PEB or a PEB-based application, they can easily be turned on by manually creating ``{PEB_binary_directory}/resources/logs`` or ``{AppImage_binary_directory}/resources/logs`` if a PEB-based application is packed as an [AppImage](https://appimage.org/). If this directory is found during application startup, the browser assumes that logging is required and a separate log file is created for every browser session following the naming convention: ``{application_name}-started-at-{four_digit_year}-{month}-{day}--{hour}-{minute}-{second}.log``. PEB will not create ``{PEB_binary_directory}/logs`` on its own and if this directory is missing, no logs will be written.
0 commit comments