diff --git a/INSTALL.md b/INSTALL.md index f7732e20..25845328 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -11,12 +11,12 @@ from the source dir. For separate builds of YACReader or YACReaderLibrary, enter their respective subfolders and run the commands from there. The headless version of YACReaderLibrary is located in the YACReaderLibraryServer -folder. To build it, enter the folder and run the steps as described above. +folder. To build it, enter the folder and run the commands described above. ## Build dependencies: -- Qt >= 5.3 with the following modules: +- Qt >= 5.6 with the following modules: - declarative - quickcontrols - sql @@ -26,22 +26,21 @@ folder. To build it, enter the folder and run the steps as described above. - opengl - sql-sqlite - network - - A pdf rendering backend (optional, see below) - qrencode (optional) - glu - (lib)unarr (see below) -Please note that not all of these dependencies are needed at build time. -A good example for this is YACReaderLibrary's GridView mode which will -silently fail and only show a white page if the proper qml modules -(declarative, quickcontrols) are missing. +Not all dependencies are needed at build time. For example the qml components in +YACReaderLibrary (GridView, InfoView) will only show a white page if the +required qml modules (declarative, quickcontrols) are missing. +This can also happen if these dependencies are too old (i.e Qt < 5.6 is used). ## Backends ### Decompression -YACReader uses [(lib)unarr](https://github.com/selmf/unarr) for comic book +YACReader uses [(lib)unarr](https://github.com/selmf/unarr) for comic book archive decompression. Most Linux distributions don't ship this library yet, so you will probably have to build it yourself. @@ -56,9 +55,9 @@ Starting with version 9.0.0 YACReader supports the following pdf render engines: - poppler (Linux/Unix default) - pdfium (default for Windows and MacOS) - pdfkit (MacOS only) -- no_pdf (no pdf support) +- no_pdf (disable pdf support) -To override the default for a given platform add CONFIG+=[pdfbackend] as an options +To override the default for a given platform add CONFIG+=[pdfbackend] as an option when running qmake. While the Poppler backend is well tested and has been the standard for YACReader diff --git a/config.pri b/config.pri index 0002840a..2f6564a1 100644 --- a/config.pri +++ b/config.pri @@ -1,8 +1,8 @@ -#functions to automatically initialize some of YACReader's build options to -#default values if they're not set on build time -#for a more detailed description, see INSTALL.TXT +# functions to automatically initialize some of YACReader's build options to +# default values if they're not set on build time +# for a more detailed description, see INSTALL.TXT -#check Qt version +# check Qt version QT_VERSION = $$[QT_VERSION] QT_VERSION = $$split(QT_VERSION, ".") QT_VER_MAJ = $$member(QT_VERSION, 0) @@ -11,30 +11,38 @@ QT_VER_MIN = $$member(QT_VERSION, 1) lessThan(QT_VER_MAJ, 5) { error(YACReader requires Qt 5 or newer but Qt $$[QT_VERSION] was detected.) } -lessThan(QT_VER_MIN, 4):!CONFIG(no_opengl) { - CONFIG += legacy_gl_widget - message ("Qt < 5.4 detected. Using QGLWidget for coverflow.") +lessThan(QT_VER_MIN, 6) { + warning ("Qt < 5.6 detected. Compilation will probably work, but some qml based components in YACReaderLibrary (GridView, InfoView) will fail at runtime.") } -lessThan(QT_VER_MIN, 3){ - error ("You need at least Qt 5.3 to build YACReader or YACReaderLibrary") +lessThan(QT_VER_MIN, 4):!CONFIG(no_opengl) { + CONFIG += legacy_gl_widget + warning ("Qt < 5.4 detected. Using QGLWidget for coverflow.") + warning ("QGLWidget based coverflow is scheduled for removal.") + } +lessThan(QT_VER_MIN, 3) { + error ("You need at least Qt 5.3 to compile YACReader or YACReaderLibrary.") } -#build without opengl widget support +# Disable coverflow for arm targets +isEmpty(QMAKE_TARGET.arch) { + QMAKE_TARGET.arch = $$QMAKE_HOST.arch +} +contains(QMAKE_TARGET.arch, arm.*) { + message("Building for ARM architecture. Disabling OpenGL coverflow ...") + CONFIG += no_opengl +} + +# build without opengl widget support CONFIG(no_opengl) { DEFINES += NO_OPENGL } -#default values for decompression backends +# default value for comic archive decompression backend !CONFIG(unarr):!CONFIG(7zip) { - unix { - CONFIG += unarr - } - win32 { - CONFIG += unarr - } + CONFIG += unarr } -#default values for pdf render backend +# default values for pdf render backend win32:!CONFIG(poppler):!CONFIG(pdfium):!CONFIG(no_pdf) { CONFIG += pdfium }