Merged in selmf/yacreader/develop (pull request #55)

Buildsystem tweaks

Approved-by: Luis ?ngel San Mart?n <luisangelsm@gmail.com>
This commit is contained in:
Luis Ángel San Martín
2017-10-24 16:31:54 +00:00
8 changed files with 949 additions and 937 deletions

110
INSTALL.md Normal file
View File

@ -0,0 +1,110 @@
# Building YACReader from source
YACReader and YACReaderLibrary are build using qmake. To build and install the
program, run:
> qmake-qt5 CONFIG+=[Options]
> make
> make install
from the source dir. For seperate 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.
## Build dependencies:
- Qt >= 5.3 with the following modules:
- declarative
- quickcontrols
- sql
- script
- multimedia
- imageformats
- 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 not missing.
## Backends
### Decompression
YACReader uses [(lib)unarr](https://github.com/selmf/unarr) for comic book
decompression. Most Linux distributions don't ship this library yet, so will
probably have to build it yourself.
We recommend using (lib)unarr as a shared library, but we also support static
and embedded builds. Please consult the [README](compressed_archive/unarr/README.txt)
for more information on this topic.
### PDF
Starting with version 9.0.0 YACReader supports the following pdf render engines:
- poppler (Linux default)
- pdfium (Default for Windows and MacOS)
- pdfkit (macOS only)
- no_pdf (disables pdf support)
To override the default for a given platform add CONFIG+=[pdfbackend] as an options
when running qmake.
While the Poppler backend is well tested and has been the standard for YACReader
for a long time, it's performance is a bit lacking. The pdfium engine offers
much better performance (about 10x faster on some pdf files we tested).
However, at the time of this writing, it is not a software that is available
prepackaged for Linux.
### Other build options:
You can adjust the installation prefix as well als the path make install uses
to install the files.
>qmake PREFIX=DIR
sets the default prefix (for example "/", "/usr", "/usr/local").
>make install INSTALL_ROOT=DIR
can be used to install to a different location, which is usefull for packaging.
Default values:
>PREFIX=/usr
>INSTALL_ROOT=""
On embedded devices that don't support desktop OpenGL, it is recommended to use
the no_opengl config option:
qmake-qt5 CONFIG+=no_opengl
This will remove any dependency on desktop OpenGL and hardlock YACReader's
coverflow to software rendering. Please note that it doesn't actually remove
OpenGL from the build, the Qt toolkit will still make use of it.
# Feedback and contribution
If you're compiling YACReader because there is no package available for your
Linux distribution please consider creating and submitting a package or filing a
package request.
While we do provide packages for .deb based distributions as well as an AUR
package for Archlinux, we are in need of packagers especially for RPM based
distributions. If you are interested, please contact @selmf on the YACReader
forums or write an email to info@yacreader.com
If you have already created a package please let us know so we can add it to
our downloads list ;)

View File

@ -1,111 +0,0 @@
COMPILATION GUIDE FOR LINUX/UNIX USERS
**************************************
YACReader and YACReaderLibrary are build using qmake. To build and install the program, run:
qmake-qt5 CONFIG+=[Options]
make
make install
from the source dir. For seperate 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.
Dependencies:
-------------
- Qt >= 5.3 with the following modules:
- declarative
- quickcontrols
- sql
- script
- multimedia
- imageformats
- opengl
- sql-sqlite
- network
- a pdf rendering backend, poppler-qt5 or pdfium (optional, see below)
- qrencode (optional)
- sqllite
- glu
- a decompression backend, either 7zip or 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 not installed.
Decompression backend:
----------------------
YACReader supports two decompression backends:
- unarr
- p7zip=9.20.1
These can be selected at build time by adding either CONFIG+=unarr or CONFIG+=7zip as an option when running qmake.
If none of these is provided, the build system will default to unarr on Linux/Unix and [p]7zip on Windows and OS X.
The decompression backends have their own dependencies and require additional steps like downloading additional source code
for setup. Please consult the README files provided in the compressed_archive and compressed_archive/unarr folders for details.
If you chose to build YACReader with p7zip as a backend on Linux/Unix, please take notice that this backend has some problems:
- p7zip > 9.20.1 is not supported
- p7zip 9.20.1 has known bugs that are fixed only in the later versions
- a system update that replaces p7zip 9.20.1 with a later version will make YACReader unusable
If your system already ships with p7zip > 9.20.1 you can place 7z.so and the Codecs folder with the Rar29.so file from p7zip 9.20.1 in /usr/lib/yacreader
YACReader will check this folder first and can thus continue using 7zip as a backend with p7zip > 9.20.1 installed on your system.
Pdf backend:
------------
Starting with version 8.6.0 YACReader supports the following pdf render backends:
- poppler (Linux default)
- pdfium
- pdfkit (macOS only, macOS default)
- no_pdf (disables pdf support)
To select one of them just add CONFIG+=[backend] when running qmake.
While the Poppler backend is well-tested and has been the standard for YACReader for a long time, its performance is a bit lacking.
Pdfium, the pdf render engine developed by Google's Chromium project and used in the
Chrome browser, offers much better performance (about 10x as fast on some pdf files we tested).
However, at the time of this writing, it isn't easily available as an installable package and a bit challenging to build.
If you are interested in using this backend, you can find further informations on how to proceed in the dependencies subfolder.
Other build options:
--------------------
You can adjust the installation prefix as well als the path make install uses to install the files.
Use "qmake PREFIX=DIR" to configure YACReader for your systems default prefix (for example "/", "/usr", "/usr/local").
For packaging purposes, you can use "make install INSTALL_ROOT=DIR" to install to a different location than the prefix.
Default values:
PREFIX=/usr
INSTALL_ROOT=""
On embedded devices that don't support desktop OpenGL, it is recommended to use the no_opengl config option:
qmake-qt5 CONFIG+=no_opengl
This will remove any dependency on desktop OpenGL and hardlock YACReader's coverflow to software rendering. Please note that it
doesn't actually remove OpenGL from the build, the Qt toolkit will still make use of it.
DO YOU WANT TO HELP YACREADER?
******************************
If you're compiling YACReader because there is no package available for your Linux distribution please consider creating and submitting a package.
While we do provide packages for .deb based distributions as well as an AUR package for Archlinux we are in need of packagers especially for RPM based
distributions. If you are interested, please contact selmf on the YACReader forums or write an email to info@yacreader.com
If you have already created a package for your Linux distribution please let us know so whe can add it to our downloads list ;)

View File

@ -1,262 +1,254 @@
# ##################################################################### TEMPLATE = app
# Automatically generated by qmake (2.01a) mié 8. oct 20:54:05 2008 TARGET = YACReader
# #####################################################################
TEMPLATE = app QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader"
TARGET = YACReader
DEPENDPATH += . \
QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" release
DEPENDPATH += . \ DEFINES += NOMINMAX YACREADER
release QMAKE_MAC_SDK = macosx10.12
DEFINES += NOMINMAX YACREADER #load default build flags
QMAKE_MAC_SDK = macosx10.12 include (../config.pri)
include (../dependencies/pdf_backend.pri)
#load default build flags
include (../config.pri) unix:!macx{
include (../dependencies/pdf_backend.pri) QMAKE_CXXFLAGS += -std=c++11
}
unix:!macx{
QMAKE_CXXFLAGS += -std=c++11 CONFIG(force_angle) {
contains(QMAKE_TARGET.arch, x86_64) {
Release:DESTDIR = ../release64_angle
Debug:DESTDIR = ../debug64_angle
} else {
Release:DESTDIR = ../release_angle
Debug:DESTDIR = ../debug_angle
}
} else {
contains(QMAKE_TARGET.arch, x86_64) {
Release:DESTDIR = ../release64
Debug:DESTDIR = ../debug64
} else {
Release:DESTDIR = ../release
Debug:DESTDIR = ../debug
}
}
SOURCES += main.cpp
INCLUDEPATH += ../common \
../custom_widgets
!CONFIG(no_opengl):CONFIG(legacy_gl_widget) {
INCLUDEPATH += ../common/gl_legacy \
} else {
INCLUDEPATH += ../common/gl \
}
#there are going to be two builds for windows, OpenGL based and ANGLE based
win32 {
CONFIG(force_angle) {
message("using ANGLE")
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
#linking extra libs are necesary for a successful compilation, a better approach should be
#to remove any OpenGL (desktop) dependencies
#the OpenGL stuff should be migrated to OpenGL ES
DEFINES += FORCE_ANGLE
} else {
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
}
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
QMAKE_LFLAGS_RELEASE += /LTCG
CONFIG -= embed_manifest_exe
}
unix:!macx:!CONFIG(no_opengl) {
LIBS += -lGLU
}
macx {
QT += macextras gui-private
CONFIG += objective_c
LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
}
QT += network widgets core multimedia
!CONFIG(no_opengl) {
QT += opengl
}
#CONFIG += release
CONFIG -= flat
# Sources
HEADERS += ../common/comic.h \
configuration.h \
goto_dialog.h \
magnifying_glass.h \
main_window_viewer.h \
viewer.h \
goto_flow.h \
options_dialog.h \
../common/bookmarks.h \
bookmarks_dialog.h \
render.h \
shortcuts_dialog.h \
translator.h \
goto_flow_widget.h \
page_label_widget.h \
goto_flow_toolbar.h \
width_slider.h \
notifications_label_widget.h \
../common/pictureflow.h \
../common/custom_widgets.h \
../common/check_new_version.h \
../common/qnaturalsorting.h \
../common/yacreader_global.h \
../common/yacreader_global_gui.h \
../common/onstart_flow_selection_dialog.h \
../common/comic_db.h \
../common/folder.h \
../common/library_item.h \
yacreader_local_client.h \
../common/http_worker.h \
../common/exit_check.h \
../common/scroll_management.h \
../common/opengl_checker.h \
../common/pdf_comic.h
!CONFIG(no_opengl) {
CONFIG(legacy_gl_widget) {
message("Using legacy YACReaderFlowGL (QGLWidget) header")
DEFINES += YACREADER_LEGACY_FLOW_GL
HEADERS += ../common/gl_legacy/yacreader_flow_gl.h
} else {
HEADERS += ../common/gl/yacreader_flow_gl.h
}
HEADERS += goto_flow_gl.h
}
SOURCES += ../common/comic.cpp \
configuration.cpp \
goto_dialog.cpp \
magnifying_glass.cpp \
main_window_viewer.cpp \
viewer.cpp \
goto_flow.cpp \
options_dialog.cpp \
../common/bookmarks.cpp \
bookmarks_dialog.cpp \
render.cpp \
shortcuts_dialog.cpp \
translator.cpp \
goto_flow_widget.cpp \
page_label_widget.cpp \
goto_flow_toolbar.cpp \
width_slider.cpp \
notifications_label_widget.cpp \
../common/pictureflow.cpp \
../common/custom_widgets.cpp \
../common/check_new_version.cpp \
../common/qnaturalsorting.cpp \
../common/onstart_flow_selection_dialog.cpp \
../common/comic_db.cpp \
../common/folder.cpp \
../common/library_item.cpp \
yacreader_local_client.cpp \
../common/http_worker.cpp \
../common/yacreader_global.cpp \
../common/yacreader_global_gui.cpp \
../common/exit_check.cpp \
../common/scroll_management.cpp \
../common/opengl_checker.cpp
!CONFIG(no_opengl) {
CONFIG(legacy_gl_widget) {
message("using legacy YACReaderFlowGL (QGLWidget) source code")
SOURCES += ../common/gl_legacy/yacreader_flow_gl.cpp
} else {
SOURCES += ../common/gl/yacreader_flow_gl.cpp
}
SOURCES += goto_flow_gl.cpp
}
include(../custom_widgets/custom_widgets_yacreader.pri)
CONFIG(7zip){
include(../compressed_archive/wrapper.pri)
} else:CONFIG(unarr){
include(../compressed_archive/unarr/unarr-wrapper.pri)
} else {
error(No compression backend specified. Did you mess with the build system?)
}
include(../shortcuts_management/shortcuts_management.pri)
RESOURCES += yacreader_images.qrc \
yacreader_files.qrc
win32:RESOURCES += yacreader_images_win.qrc
unix:!macx:RESOURCES += yacreader_images_win.qrc
macx:RESOURCES += yacreader_images_osx.qrc
include(../QsLog/QsLog.pri)
RC_FILE = icon.rc
macx {
ICON = YACReader.icns
QMAKE_INFO_PLIST = Info.plist.mac
}
TRANSLATIONS = yacreader_es.ts \
yacreader_fr.ts \
yacreader_ru.ts \
yacreader_pt.ts \
yacreader_nl.ts \
yacreader_tr.ts \
yacreader_de.ts \
yacreader_source.ts
unix:!macx {
#set install prefix if it's empty
isEmpty(PREFIX) {
PREFIX = /usr
}
BINDIR = $$PREFIX/bin
LIBDIR = $$PREFIX/lib
DATADIR = $$PREFIX/share
DEFINES += "LIBDIR=\\\"$$LIBDIR\\\"" "DATADIR=\\\"$$DATADIR\\\""
#MAKE INSTALL
INSTALLS += bin docs icon desktop translation manpage
bin.path = $$BINDIR
isEmpty(DESTDIR) {
bin.files = YACReader
} else {
bin.files = $$DESTDIR/YACReader
}
docs.path = $$DATADIR/doc/yacreader
#rename docs for better packageability
docs.extra = cp ../README.txt ../README
docs.files = ../README ../CHANGELOG.md
icon.path = $$DATADIR/icons/hicolor/48x48/apps
icon.files = ../YACReader.png
desktop.path = $$DATADIR/applications
desktop.files = ../YACReader.desktop
translation.path = $$DATADIR/yacreader/languages
translation.files = ../release/languages/yacreader_*
manpage.path = $$DATADIR/man/man1
manpage.files = ../YACReader.1
#remove leftover doc files when 'make clean' is invoked
QMAKE_CLEAN += "../README"
} }
CONFIG(force_angle) {
Release:DESTDIR = ../release_angle
Debug:DESTDIR = ../debug_angle
} else {
Release:DESTDIR = ../release
Debug:DESTDIR = ../debug
}
SOURCES += main.cpp
INCLUDEPATH += ../common \
../custom_widgets
!CONFIG(no_opengl):CONFIG(legacy_gl_widget) {
INCLUDEPATH += ../common/gl_legacy \
} else {
INCLUDEPATH += ../common/gl \
}
#there are going to be two builds for windows, OpenGL based and ANGLE based
win32 {
CONFIG(force_angle) {
message("using ANGLE")
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
#linking extra libs are necesary for a successful compilation, a better approach should be
#to remove any OpenGL (desktop) dependencies
#the OpenGL stuff should be migrated to OpenGL ES
DEFINES += FORCE_ANGLE
} else {
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
}
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
QMAKE_LFLAGS_RELEASE += /LTCG
CONFIG -= embed_manifest_exe
}
unix:!macx:!CONFIG(no_opengl) {
LIBS += -lGLU
}
macx{
#INCLUDEPATH += "/Volumes/Mac OS X Lion/usr/X11/include"
#isEqual(QT_MAJOR_VERSION, 5) {
#INCLUDEPATH += /usr/local/include/poppler/qt5
#LIBS += -L/usr/local/lib -lpoppler-qt5
#}
#else {
#INCLUDEPATH += /usr/local/include/poppler/qt4
#LIBS += -L/usr/local/lib -lpoppler-qt4
#}
CONFIG += objective_c
QT += macextras gui-private
LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
}
QT += network widgets core
!CONFIG(no_opengl) {
QT += opengl
}
#CONFIG += release
CONFIG -= flat
QT += multimedia
# Input
HEADERS += ../common/comic.h \
configuration.h \
goto_dialog.h \
magnifying_glass.h \
main_window_viewer.h \
viewer.h \
goto_flow.h \
options_dialog.h \
../common/bookmarks.h \
bookmarks_dialog.h \
render.h \
shortcuts_dialog.h \
translator.h \
goto_flow_widget.h \
page_label_widget.h \
goto_flow_toolbar.h \
width_slider.h \
notifications_label_widget.h \
../common/pictureflow.h \
../common/custom_widgets.h \
../common/check_new_version.h \
../common/qnaturalsorting.h \
../common/yacreader_global.h \
../common/yacreader_global_gui.h \
../common/onstart_flow_selection_dialog.h \
../common/comic_db.h \
../common/folder.h \
../common/library_item.h \
yacreader_local_client.h \
../common/http_worker.h \
../common/exit_check.h \
../common/scroll_management.h \
../common/opengl_checker.h \
../common/pdf_comic.h
!CONFIG(no_opengl) {
CONFIG(legacy_gl_widget) {
message("using legacy YACReaderFlowGL (QGLWidget) header")
DEFINES += YACREADER_LEGACY_FLOW_GL
HEADERS += ../common/gl_legacy/yacreader_flow_gl.h
} else {
HEADERS += ../common/gl/yacreader_flow_gl.h
}
HEADERS += goto_flow_gl.h
}
SOURCES += ../common/comic.cpp \
configuration.cpp \
goto_dialog.cpp \
magnifying_glass.cpp \
main_window_viewer.cpp \
viewer.cpp \
goto_flow.cpp \
options_dialog.cpp \
../common/bookmarks.cpp \
bookmarks_dialog.cpp \
render.cpp \
shortcuts_dialog.cpp \
translator.cpp \
goto_flow_widget.cpp \
page_label_widget.cpp \
goto_flow_toolbar.cpp \
width_slider.cpp \
notifications_label_widget.cpp \
../common/pictureflow.cpp \
../common/custom_widgets.cpp \
../common/check_new_version.cpp \
../common/qnaturalsorting.cpp \
../common/onstart_flow_selection_dialog.cpp \
../common/comic_db.cpp \
../common/folder.cpp \
../common/library_item.cpp \
yacreader_local_client.cpp \
../common/http_worker.cpp \
../common/yacreader_global.cpp \
../common/yacreader_global_gui.cpp \
../common/exit_check.cpp \
../common/scroll_management.cpp \
../common/opengl_checker.cpp
!CONFIG(no_opengl) {
CONFIG(legacy_gl_widget) {
message("using legacy YACReaderFlowGL (QGLWidget) source code")
SOURCES += ../common/gl_legacy/yacreader_flow_gl.cpp
} else {
SOURCES += ../common/gl/yacreader_flow_gl.cpp
}
SOURCES += goto_flow_gl.cpp
}
include(../custom_widgets/custom_widgets_yacreader.pri)
CONFIG(7zip){
include(../compressed_archive/wrapper.pri)
} else:CONFIG(unarr){
include(../compressed_archive/unarr/unarr-wrapper.pri)
} else {
error(No compression backend specified. Did you mess with the build system?)
}
include(../shortcuts_management/shortcuts_management.pri)
RESOURCES += yacreader_images.qrc \
yacreader_files.qrc
win32:RESOURCES += yacreader_images_win.qrc
unix:!macx:RESOURCES += yacreader_images_win.qrc
macx:RESOURCES += yacreader_images_osx.qrc
include(../QsLog/QsLog.pri)
RC_FILE = icon.rc
macx {
ICON = YACReader.icns
QMAKE_INFO_PLIST = Info.plist.mac
}
TRANSLATIONS = yacreader_es.ts \
yacreader_fr.ts \
yacreader_ru.ts \
yacreader_pt.ts \
yacreader_nl.ts \
yacreader_tr.ts \
yacreader_de.ts \
yacreader_source.ts
unix:!macx {
#set install prefix if it's empty
isEmpty(PREFIX) {
PREFIX = /usr
}
BINDIR = $$PREFIX/bin
LIBDIR = $$PREFIX/lib
DATADIR = $$PREFIX/share
DEFINES += "LIBDIR=\\\"$$LIBDIR\\\"" "DATADIR=\\\"$$DATADIR\\\""
#MAKE INSTALL
INSTALLS += bin docs icon desktop translation manpage
bin.path = $$BINDIR
isEmpty(DESTDIR) {
bin.files = YACReader
} else {
bin.files = $$DESTDIR/YACReader
}
docs.path = $$DATADIR/doc/yacreader
#rename docs for better packageability
docs.extra = cp ../README.txt ../README
docs.files = ../README ../CHANGELOG.md
icon.path = $$DATADIR/icons/hicolor/48x48/apps
icon.files = ../YACReader.png
desktop.path = $$DATADIR/applications
desktop.files = ../YACReader.desktop
translation.path = $$DATADIR/yacreader/languages
translation.files = ../release/languages/yacreader_*
manpage.path = $$DATADIR/man/man1
manpage.files = ../YACReader.1
#remove leftover doc files when 'make clean' is invoked
QMAKE_CLEAN += "../README"
}

View File

@ -1,328 +1,322 @@
###################################################################### TEMPLATE = app
# Automatically generated by qmake (2.01a) dom 12. oct 20:47:48 2008 TARGET = YACReaderLibrary
######################################################################
QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader"
TEMPLATE = app
TARGET = YACReaderLibrary DEPENDPATH += .
INCLUDEPATH += . \
QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" ../common \
./server \
DEPENDPATH += . ./db \
INCLUDEPATH += . ../custom_widgets \
INCLUDEPATH += ../common \ ./comic_vine \
./server \ ./comic_vine/model
./db \
../custom_widgets \ DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY
./comic_vine \ QMAKE_MAC_SDK = macosx10.12
./comic_vine/model
# load default build flags
DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY include (../config.pri)
QMAKE_MAC_SDK = macosx10.12 include (../dependencies/pdf_backend.pri)
#load default build flags
include (../config.pri) CONFIG(legacy_gl_widget) {
include (../dependencies/pdf_backend.pri) INCLUDEPATH += ../common/gl_legacy \
} else {
CONFIG(legacy_gl_widget) { INCLUDEPATH += ../common/gl \
INCLUDEPATH += ../common/gl_legacy \ }
} else {
INCLUDEPATH += ../common/gl \ # there are two builds for Windows, Desktop OpenGL based and ANGLE OpenGL ES based
} win32 {
CONFIG(force_angle) {
#there are going to be two builds for windows, OpenGL based and ANGLE based message("using ANGLE")
win32 { LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
CONFIG(force_angle) { # linking extra libs are necesary for a successful compilation, a better approach should be
message("using ANGLE") # to remove any OpenGL (desktop) dependencies
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32 # the OpenGL stuff should be migrated to OpenGL ES
#linking extra libs are necesary for a successful compilation, a better approach should be DEFINES += FORCE_ANGLE
#to remove any OpenGL (desktop) dependencies } else {
#the OpenGL stuff should be migrated to OpenGL ES LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
DEFINES += FORCE_ANGLE }
} else {
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32 QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
} QMAKE_LFLAGS_RELEASE += /LTCG
CONFIG -= embed_manifest_exe
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL }
QMAKE_LFLAGS_RELEASE += /LTCG
CONFIG -= embed_manifest_exe CONFIG(force_angle) {
} contains(QMAKE_TARGET.arch, x86_64) {
Release:DESTDIR = ../release64_angle
unix:!macx{ Debug:DESTDIR = ../debug64_angle
} else {
!CONFIG(no_opengl) { Release:DESTDIR = ../release_angle
LIBS += -lGLU Debug:DESTDIR = ../debug_angle
} }
} } else {
contains(QMAKE_TARGET.arch, x86_64) {
macx{ Release:DESTDIR = ../release64
#INCLUDEPATH += "/Volumes/Mac OS X Lion/usr/X11/include" Debug:DESTDIR = ../debug64
#isEqual(QT_MAJOR_VERSION, 5) { } else {
#INCLUDEPATH += /usr/local/include/poppler/qt5 Release:DESTDIR = ../release
#LIBS += -L/usr/local/lib -lpoppler-qt5 Debug:DESTDIR = ../debug
#} }
#else { }
#INCLUDEPATH += /usr/local/include/poppler/qt4
#LIBS += -L/usr/local/lib -lpoppler-qt4 unix:!macx:!CONFIG(no_opengl) {
#} LIBS += -lGLU
#QT += macextras }
LIBS += -framework Foundation -framework ApplicationServices -framework AppKit macx {
CONFIG += objective_c LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
QT += macextras gui-private
} CONFIG += objective_c
QT += macextras gui-private
unix{ }
CONFIG += c++11
} unix:!macx {
CONFIG += c++11
#CONFIG += release }
CONFIG -= flat
QT += sql network widgets script #CONFIG += release
!CONFIG(no_opengl) { CONFIG -= flat
QT += opengl QT += sql network widgets script
} !CONFIG(no_opengl) {
QT += opengl
# Input }
HEADERS += comic_flow.h \
create_library_dialog.h \ # Input
library_creator.h \ HEADERS += comic_flow.h \
library_window.h \ create_library_dialog.h \
add_library_dialog.h \ library_creator.h \
rename_library_dialog.h \ library_window.h \
properties_dialog.h \ add_library_dialog.h \
options_dialog.h \ rename_library_dialog.h \
export_library_dialog.h \ properties_dialog.h \
import_library_dialog.h \ options_dialog.h \
package_manager.h \ export_library_dialog.h \
bundle_creator.h \ import_library_dialog.h \
export_comics_info_dialog.h \ package_manager.h \
import_comics_info_dialog.h \ bundle_creator.h \
server_config_dialog.h \ export_comics_info_dialog.h \
comic_flow_widget.h \ import_comics_info_dialog.h \
db_helper.h \ server_config_dialog.h \
./db/data_base_management.h \ comic_flow_widget.h \
./db/folder_item.h \ db_helper.h \
./db/folder_model.h \ ./db/data_base_management.h \
./db/comic_model.h \ ./db/folder_item.h \
./db/comic_item.h \ ./db/folder_model.h \
../common/comic_db.h \ ./db/comic_model.h \
../common/folder.h \ ./db/comic_item.h \
../common/library_item.h \ ../common/comic_db.h \
../common/comic.h \ ../common/folder.h \
../common/bookmarks.h \ ../common/library_item.h \
../common/pictureflow.h \ ../common/comic.h \
../common/custom_widgets.h \ ../common/bookmarks.h \
../common/qnaturalsorting.h \ ../common/pictureflow.h \
../common/yacreader_global.h \ ../common/custom_widgets.h \
../common/yacreader_global_gui.h \ ../common/qnaturalsorting.h \
../common/onstart_flow_selection_dialog.h \ ../common/yacreader_global.h \
../common/pdf_comic.h \ ../common/yacreader_global_gui.h \
no_libraries_widget.h \ ../common/onstart_flow_selection_dialog.h \
import_widget.h \ ../common/pdf_comic.h \
yacreader_local_server.h \ no_libraries_widget.h \
yacreader_main_toolbar.h \ import_widget.h \
comics_remover.h \ yacreader_local_server.h \
../common/http_worker.h \ yacreader_main_toolbar.h \
yacreader_libraries.h \ comics_remover.h \
../common/exit_check.h \ ../common/http_worker.h \
comics_view.h \ yacreader_libraries.h \
classic_comics_view.h \ ../common/exit_check.h \
empty_folder_widget.h \ comics_view.h \
no_search_results_widget.h \ classic_comics_view.h \
comic_files_manager.h \ empty_folder_widget.h \
db/reading_list_model.h \ no_search_results_widget.h \
db/reading_list_item.h \ comic_files_manager.h \
yacreader_folders_view.h \ db/reading_list_model.h \
yacreader_reading_lists_view.h \ db/reading_list_item.h \
add_label_dialog.h \ yacreader_folders_view.h \
yacreader_history_controller.h \ yacreader_reading_lists_view.h \
yacreader_navigation_controller.h \ add_label_dialog.h \
empty_label_widget.h \ yacreader_history_controller.h \
empty_container_info.h \ yacreader_navigation_controller.h \
empty_special_list.h \ empty_label_widget.h \
empty_reading_list_widget.h \ empty_container_info.h \
../common/scroll_management.h \ empty_special_list.h \
../common/opengl_checker.h \ empty_reading_list_widget.h \
yacreader_comics_views_manager.h \ ../common/scroll_management.h \
info_comics_view.h \ ../common/opengl_checker.h \
yacreader_comics_selection_helper.h \ yacreader_comics_views_manager.h \
yacreader_comic_info_helper.h info_comics_view.h \
yacreader_comics_selection_helper.h \
!CONFIG(no_opengl) { yacreader_comic_info_helper.h
CONFIG(legacy_gl_widget) {
message("using legacy YACReaderFlowGL (QGLWidget) header") !CONFIG(no_opengl) {
HEADERS += ../common/gl_legacy/yacreader_flow_gl.h CONFIG(legacy_gl_widget) {
} else { message("using legacy YACReaderFlowGL (QGLWidget) header")
HEADERS += ../common/gl/yacreader_flow_gl.h HEADERS += ../common/gl_legacy/yacreader_flow_gl.h
} } else {
} HEADERS += ../common/gl/yacreader_flow_gl.h
}
SOURCES += comic_flow.cpp \ }
create_library_dialog.cpp \
library_creator.cpp \ SOURCES += comic_flow.cpp \
library_window.cpp \ create_library_dialog.cpp \
main.cpp \ library_creator.cpp \
add_library_dialog.cpp \ library_window.cpp \
rename_library_dialog.cpp \ main.cpp \
properties_dialog.cpp \ add_library_dialog.cpp \
options_dialog.cpp \ rename_library_dialog.cpp \
export_library_dialog.cpp \ properties_dialog.cpp \
import_library_dialog.cpp \ options_dialog.cpp \
package_manager.cpp \ export_library_dialog.cpp \
bundle_creator.cpp \ import_library_dialog.cpp \
export_comics_info_dialog.cpp \ package_manager.cpp \
import_comics_info_dialog.cpp \ bundle_creator.cpp \
server_config_dialog.cpp \ export_comics_info_dialog.cpp \
comic_flow_widget.cpp \ import_comics_info_dialog.cpp \
db_helper.cpp \ server_config_dialog.cpp \
./db/data_base_management.cpp \ comic_flow_widget.cpp \
./db/folder_item.cpp \ db_helper.cpp \
./db/folder_model.cpp \ ./db/data_base_management.cpp \
./db/comic_model.cpp \ ./db/folder_item.cpp \
./db/comic_item.cpp \ ./db/folder_model.cpp \
../common/comic_db.cpp \ ./db/comic_model.cpp \
../common/folder.cpp \ ./db/comic_item.cpp \
../common/library_item.cpp \ ../common/comic_db.cpp \
../common/comic.cpp \ ../common/folder.cpp \
../common/bookmarks.cpp \ ../common/library_item.cpp \
../common/pictureflow.cpp \ ../common/comic.cpp \
../common/custom_widgets.cpp \ ../common/bookmarks.cpp \
../common/qnaturalsorting.cpp \ ../common/pictureflow.cpp \
../common/onstart_flow_selection_dialog.cpp \ ../common/custom_widgets.cpp \
no_libraries_widget.cpp \ ../common/qnaturalsorting.cpp \
import_widget.cpp \ ../common/onstart_flow_selection_dialog.cpp \
yacreader_local_server.cpp \ no_libraries_widget.cpp \
yacreader_main_toolbar.cpp \ import_widget.cpp \
comics_remover.cpp \ yacreader_local_server.cpp \
../common/http_worker.cpp \ yacreader_main_toolbar.cpp \
../common/yacreader_global.cpp \ comics_remover.cpp \
../common/yacreader_global_gui.cpp \ ../common/http_worker.cpp \
yacreader_libraries.cpp \ ../common/yacreader_global.cpp \
../common/exit_check.cpp \ ../common/yacreader_global_gui.cpp \
comics_view.cpp \ yacreader_libraries.cpp \
classic_comics_view.cpp \ ../common/exit_check.cpp \
empty_folder_widget.cpp \ comics_view.cpp \
no_search_results_widget.cpp \ classic_comics_view.cpp \
comic_files_manager.cpp \ empty_folder_widget.cpp \
db/reading_list_model.cpp \ no_search_results_widget.cpp \
db/reading_list_item.cpp \ comic_files_manager.cpp \
yacreader_folders_view.cpp \ db/reading_list_model.cpp \
yacreader_reading_lists_view.cpp \ db/reading_list_item.cpp \
add_label_dialog.cpp \ yacreader_folders_view.cpp \
yacreader_history_controller.cpp \ yacreader_reading_lists_view.cpp \
yacreader_navigation_controller.cpp \ add_label_dialog.cpp \
empty_label_widget.cpp \ yacreader_history_controller.cpp \
empty_container_info.cpp \ yacreader_navigation_controller.cpp \
empty_special_list.cpp \ empty_label_widget.cpp \
empty_reading_list_widget.cpp \ empty_container_info.cpp \
../common/scroll_management.cpp \ empty_special_list.cpp \
../common/opengl_checker.cpp \ empty_reading_list_widget.cpp \
yacreader_comics_views_manager.cpp \ ../common/scroll_management.cpp \
info_comics_view.cpp \ ../common/opengl_checker.cpp \
yacreader_comics_selection_helper.cpp \ yacreader_comics_views_manager.cpp \
yacreader_comic_info_helper.cpp info_comics_view.cpp \
yacreader_comics_selection_helper.cpp \
!CONFIG(no_opengl) { yacreader_comic_info_helper.cpp
CONFIG(legacy_gl_widget) {
message("using legacy YACReaderFlowGL (QGLWidget) source code") !CONFIG(no_opengl) {
SOURCES += ../common/gl_legacy/yacreader_flow_gl.cpp CONFIG(legacy_gl_widget) {
} else { message("using legacy YACReaderFlowGL (QGLWidget) source code")
SOURCES += ../common/gl/yacreader_flow_gl.cpp SOURCES += ../common/gl_legacy/yacreader_flow_gl.cpp
} } else {
} SOURCES += ../common/gl/yacreader_flow_gl.cpp
}
}
include(./server/server.pri)
include(../custom_widgets/custom_widgets_yacreaderlibrary.pri)
CONFIG(7zip){ include(./server/server.pri)
include(../compressed_archive/wrapper.pri) include(../custom_widgets/custom_widgets_yacreaderlibrary.pri)
} else:CONFIG(unarr) {
include(../compressed_archive/unarr/unarr-wrapper.pri) CONFIG(7zip){
} else { include(../compressed_archive/wrapper.pri)
error(No compression backend specified. Did you mess with the build system?) } else:CONFIG(unarr) {
} include(../compressed_archive/unarr/unarr-wrapper.pri)
} else {
include(./comic_vine/comic_vine.pri) error(No compression backend specified. Did you mess with the build system?)
include(../QsLog/QsLog.pri) }
include(../shortcuts_management/shortcuts_management.pri)
include(./comic_vine/comic_vine.pri)
RESOURCES += images.qrc files.qrc include(../QsLog/QsLog.pri)
win32:RESOURCES += images_win.qrc include(../shortcuts_management/shortcuts_management.pri)
unix:!macx:RESOURCES += images_win.qrc
macx:RESOURCES += images_osx.qrc RESOURCES += images.qrc files.qrc
win32:RESOURCES += images_win.qrc
RC_FILE = icon.rc unix:!macx:RESOURCES += images_win.qrc
macx:RESOURCES += images_osx.qrc
macx {
ICON = YACReaderLibrary.icns RC_FILE = icon.rc
}
macx {
TRANSLATIONS = yacreaderlibrary_es.ts \ ICON = YACReaderLibrary.icns
yacreaderlibrary_ru.ts \ }
yacreaderlibrary_pt.ts \
yacreaderlibrary_fr.ts \ TRANSLATIONS = yacreaderlibrary_es.ts \
yacreaderlibrary_nl.ts \ yacreaderlibrary_ru.ts \
yacreaderlibrary_tr.ts \ yacreaderlibrary_pt.ts \
yacreaderlibrary_de.ts \ yacreaderlibrary_fr.ts \
yacreaderlibrary_source.ts yacreaderlibrary_nl.ts \
yacreaderlibrary_tr.ts \
CONFIG(force_angle) { yacreaderlibrary_de.ts \
Release:DESTDIR = ../release_angle yacreaderlibrary_source.ts
Debug:DESTDIR = ../debug_angle
} else { #QML/GridView
Release:DESTDIR = ../release QT += quick qml
Debug:DESTDIR = ../debug
} HEADERS += grid_comics_view.h \
comics_view_transition.h
#QML/GridView
QT += quick qml SOURCES += grid_comics_view.cpp \
comics_view_transition.cpp
HEADERS += grid_comics_view.h \
comics_view_transition.h RESOURCES += qml.qrc
win32:RESOURCES += qml_win.qrc
SOURCES += grid_comics_view.cpp \ unix:!macx:RESOURCES += qml_win.qrc
comics_view_transition.cpp macx:RESOURCES += qml_osx.qrc
RESOURCES += qml.qrc unix:!macx {
win32:RESOURCES += qml_win.qrc #set install prefix if it's empty
unix:!macx:RESOURCES += qml_win.qrc isEmpty(PREFIX) {
macx:RESOURCES += qml_osx.qrc PREFIX = /usr
}
unix:!macx {
#set install prefix if it's empty BINDIR = $$PREFIX/bin
isEmpty(PREFIX) { LIBDIR = $$PREFIX/lib
PREFIX = /usr DATADIR = $$PREFIX/share
}
DEFINES += "LIBDIR=\\\"$$LIBDIR\\\"" "DATADIR=\\\"$$DATADIR\\\"" "BINDIR=\\\"$$BINDIR\\\""
BINDIR = $$PREFIX/bin
LIBDIR = $$PREFIX/lib #MAKE INSTALL
DATADIR = $$PREFIX/share INSTALLS += bin icon desktop server translation manpage
DEFINES += "LIBDIR=\\\"$$LIBDIR\\\"" "DATADIR=\\\"$$DATADIR\\\"" "BINDIR=\\\"$$BINDIR\\\"" bin.path = $$BINDIR
isEmpty(DESTDIR) {
#MAKE INSTALL bin.files = YACReaderLibrary
INSTALLS += bin icon desktop server translation manpage } else {
bin.files = $$DESTDIR/YACReaderLibrary
bin.path = $$BINDIR }
isEmpty(DESTDIR) {
bin.files = YACReaderLibrary server.path = $$DATADIR/yacreader
} else { server.files = ../release/server
bin.files = $$DESTDIR/YACReaderLibrary
} icon.path = $$DATADIR/icons/hicolor/48x48/apps
icon.files = ../YACReaderLibrary.png
server.path = $$DATADIR/yacreader
server.files = ../release/server desktop.path = $$DATADIR/applications
desktop.files = ../YACReaderLibrary.desktop
icon.path = $$DATADIR/icons/hicolor/48x48/apps
icon.files = ../YACReaderLibrary.png translation.path = $$DATADIR/yacreader/languages
translation.files = ../release/languages/yacreaderlibrary_*
desktop.path = $$DATADIR/applications
desktop.files = ../YACReaderLibrary.desktop manpage.path = $$DATADIR/man/man1
#TODO: icons should be located at /usr/share/icons and have the same basename as their application manpage.files = ../YACReaderLibrary.1
}
translation.path = $$DATADIR/yacreader/languages
translation.files = ../release/languages/yacreaderlibrary_*
manpage.path = $$DATADIR/man/man1
manpage.files = ../YACReaderLibrary.1
}

View File

@ -1,154 +1,156 @@
###################################################################### TEMPLATE = app
# Automatically generated by qmake (2.01a) dom 12. oct 20:47:48 2008 TARGET = YACReaderLibraryServer
######################################################################
QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader"
TEMPLATE = app
TARGET = YACReaderLibraryServer CONFIG += console
DEPENDPATH += ../YACReaderLibrary
QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" INCLUDEPATH += ../YACReaderLibrary \
../common \
CONFIG += console ../YACReaderLibrary/server \
DEPENDPATH += ../YACReaderLibrary ../YACReaderLibrary/db
INCLUDEPATH += ../YACReaderLibrary
INCLUDEPATH += ../common \ DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY QT_NO_DEBUG_OUTPUT
../YACReaderLibrary/server \ QMAKE_MAC_SDK = macosx10.12
../YACReaderLibrary/db # load default build flags
# do a basic dependency check
DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY QT_NO_DEBUG_OUTPUT include(headless_config.pri)
QMAKE_MAC_SDK = macosx10.12 include(../dependencies/pdf_backend.pri)
#load default build flags
#do a basic dependency check win32 {
include(headless_config.pri) LIBS += -loleaut32 -lole32 -lshell32 -luser32
include(../dependencies/pdf_backend.pri) QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
QMAKE_LFLAGS_RELEASE += /LTCG
win32 { CONFIG -= embed_manifest_exe
LIBS += -loleaut32 -lole32 -lshell32 -luser32 }
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
QMAKE_LFLAGS_RELEASE += /LTCG macx {
CONFIG -= embed_manifest_exe LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
} CONFIG += objective_c
}
macx {
LIBS += -framework Foundation -framework ApplicationServices -framework AppKit unix {
CONFIG += objective_c CONFIG += c++11
} }
unix { #CONFIG += release
CONFIG += c++11 CONFIG -= flat
} QT += core sql network
#CONFIG += release # Source files
CONFIG -= flat HEADERS += ../YACReaderLibrary/library_creator.h \
QT += core sql network ../YACReaderLibrary/package_manager.h \
../YACReaderLibrary/bundle_creator.h \
# Input ../YACReaderLibrary/db_helper.h \
HEADERS += ../YACReaderLibrary/library_creator.h \ ../YACReaderLibrary/db/data_base_management.h \
../YACReaderLibrary/package_manager.h \ ../common/comic_db.h \
../YACReaderLibrary/bundle_creator.h \ ../common/folder.h \
../YACReaderLibrary/db_helper.h \ ../common/library_item.h \
../YACReaderLibrary/db/data_base_management.h \ ../common/comic.h \
../common/comic_db.h \ ../common/pdf_comic.h \
../common/folder.h \ ../common/bookmarks.h \
../common/library_item.h \ ../common/qnaturalsorting.h \
../common/comic.h \ ../common/yacreader_global.h \
../common/pdf_comic.h \ ../YACReaderLibrary/yacreader_local_server.h \
../common/bookmarks.h \ ../YACReaderLibrary/comics_remover.h \
../common/qnaturalsorting.h \ ../common/http_worker.h \
../common/yacreader_global.h \ ../YACReaderLibrary/yacreader_libraries.h \
../YACReaderLibrary/yacreader_local_server.h \ ../YACReaderLibrary/comic_files_manager.h \
../YACReaderLibrary/comics_remover.h \ console_ui_library_creator.h
../common/http_worker.h \
../YACReaderLibrary/yacreader_libraries.h \
../YACReaderLibrary/comic_files_manager.h \ SOURCES += ../YACReaderLibrary/library_creator.cpp \
console_ui_library_creator.h ../YACReaderLibrary/package_manager.cpp \
../YACReaderLibrary/bundle_creator.cpp \
../YACReaderLibrary/db_helper.cpp \
SOURCES += ../YACReaderLibrary/library_creator.cpp \ ../YACReaderLibrary/db/data_base_management.cpp \
../YACReaderLibrary/package_manager.cpp \ ../common/comic_db.cpp \
../YACReaderLibrary/bundle_creator.cpp \ ../common/folder.cpp \
../YACReaderLibrary/db_helper.cpp \ ../common/library_item.cpp \
../YACReaderLibrary/db/data_base_management.cpp \ ../common/comic.cpp \
../common/comic_db.cpp \ ../common/bookmarks.cpp \
../common/folder.cpp \ ../common/qnaturalsorting.cpp \
../common/library_item.cpp \ ../YACReaderLibrary/yacreader_local_server.cpp \
../common/comic.cpp \ ../YACReaderLibrary/comics_remover.cpp \
../common/bookmarks.cpp \ ../common/http_worker.cpp \
../common/qnaturalsorting.cpp \ ../common/yacreader_global.cpp \
../YACReaderLibrary/yacreader_local_server.cpp \ ../YACReaderLibrary/yacreader_libraries.cpp \
../YACReaderLibrary/comics_remover.cpp \ ../YACReaderLibrary/comic_files_manager.cpp \
../common/http_worker.cpp \ console_ui_library_creator.cpp \
../common/yacreader_global.cpp \ main.cpp
../YACReaderLibrary/yacreader_libraries.cpp \
../YACReaderLibrary/comic_files_manager.cpp \ include(../YACReaderLibrary/server/server.pri)
console_ui_library_creator.cpp \ CONFIG(7zip) {
main.cpp include(../compressed_archive/wrapper.pri)
} else:CONFIG(unarr) {
include(../YACReaderLibrary/server/server.pri) include(../compressed_archive/unarr/unarr-wrapper.pri)
CONFIG(7zip){ } else {
include(../compressed_archive/wrapper.pri) error(No compression backend specified. Did you mess with the build system?)
} else:CONFIG(unarr) { }
include(../compressed_archive/unarr/unarr-wrapper.pri) include(../QsLog/QsLog.pri)
} else {
error(No compression backend specified. Did you mess with the build system?) TRANSLATIONS = yacreaderlibraryserver_es.ts \
} yacreaderlibraryserver_ru.ts \
include(../QsLog/QsLog.pri) yacreaderlibraryserver_pt.ts \
yacreaderlibraryserver_fr.ts \
yacreaderlibraryserver_nl.ts \
TRANSLATIONS = yacreaderlibraryserver_es.ts \ yacreaderlibraryserver_tr.ts \
yacreaderlibraryserver_ru.ts \ yacreaderlibraryserver_de.ts \
yacreaderlibraryserver_pt.ts \ yacreaderlibraryserver_source.ts
yacreaderlibraryserver_fr.ts \
yacreaderlibraryserver_nl.ts \ RESOURCES += images.qrc
yacreaderlibraryserver_tr.ts \
yacreaderlibraryserver_de.ts \ contains(QMAKE_TARGET.arch, x86_64) {
yacreaderlibraryserver_source.ts Release:DESTDIR = ../release64
Debug:DESTDIR = ../debug64
} else {
RESOURCES += images.qrc Release:DESTDIR = ../release
Debug:DESTDIR = ../debug
}
Release:DESTDIR = ../release
Debug:DESTDIR = ../debug unix:!macx {
#set install prefix if it's empty
isEmpty(PREFIX) {
unix:!macx { PREFIX = /usr
#set install prefix if it's empty }
isEmpty(PREFIX) {
PREFIX = /usr BINDIR = $$PREFIX/bin
} LIBDIR = $$PREFIX/lib
DATADIR = $$PREFIX/share
BINDIR = $$PREFIX/bin
LIBDIR = $$PREFIX/lib DEFINES += "LIBDIR=\\\"$$LIBDIR\\\"" "DATADIR=\\\"$$DATADIR\\\"" "BINDIR=\\\"$$BINDIR\\\""
DATADIR = $$PREFIX/share
#make install
DEFINES += "LIBDIR=\\\"$$LIBDIR\\\"" "DATADIR=\\\"$$DATADIR\\\"" "BINDIR=\\\"$$BINDIR\\\"" CONFIG(server_standalone) {
INSTALLS += bin server translation systemd
#MAKE INSTALL }
CONFIG(server_standalone) { else:CONFIG(server_bundled) {
INSTALLS += bin server translation INSTALLS += bin systemd
} }
else:CONFIG(server_bundled) { else {
INSTALLS += bin INSTALLS += bin server translation systemd
} message("No build type specified. Defaulting to standalone server build (CONFIG+=server_standalone).")
else { message("If you wish to run YACReaderLibraryServer on a system with an existing install of YACReaderLibrary,\
INSTALLS += bin server translation please specify CONFIG+=server_bundled as an option when running qmake.")
message("No build type specified. Defaulting to standalone server build (CONFIG+=server_standalone).") }
message("If you wish to run YACReaderLibraryServer on a system with an existing install of YACReaderLibrary, please specify CONFIG+=server_bundled as an option when running qmake.")
} bin.path = $$BINDIR
isEmpty(DESTDIR) {
bin.path = $$BINDIR bin.files = YACReaderLibraryServer
isEmpty(DESTDIR) { } else {
bin.files = YACReaderLibraryServer bin.files = $$DESTDIR/YACReaderLibraryServer
} else { }
bin.files = $$DESTDIR/YACReaderLibraryServer
} server.path = $$DATADIR/yacreader
server.files = ../release/server
server.path = $$DATADIR/yacreader
server.files = ../release/server systemd.path = $$LIBDIR/systemd/system
systemd.files = yacreaderlibraryserver.service
translation.path = $$DATADIR/yacreader/languages
translation.files = ../release/languages/yacreaderlibrary_* translation.path = $$DATADIR/yacreader/languages
translation.files = ../release/languages/yacreaderlibrary_*
#manpage.path = $$DATADIR/man/man1
#manpage.files = ../YACReaderLibrary.1 # TODO: We need a manpage for yaclibserver
} #manpage.path = $$DATADIR/man/man1
#manpage.files = ../YACReaderLibrary.1
}

View File

@ -0,0 +1,11 @@
[Unit]
Description=YACReaderLibrary headless server
After=network.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/YACReaderLibraryServer start
[Install]
WantedBy=multi-user.target

View File

@ -2,44 +2,46 @@ INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD DEPENDPATH += $$PWD
HEADERS += $$PWD/extract_delegate.h \ HEADERS += $$PWD/extract_delegate.h \
$$PWD/compressed_archive.h \ $$PWD/compressed_archive.h
SOURCES += $$PWD/compressed_archive.cpp \ SOURCES += $$PWD/compressed_archive.cpp
unix:!macx { unix:!macx:packagesExist(libunarr) {
message(Using system provided unarr installation) message(Using system provided unarr installation)
CONFIG += link_pkgconfig CONFIG += link_pkgconfig
PKGCONFIG += libunarr PKGCONFIG += libunarr
DEFINES += use_unarr DEFINES += use_unarr
} }
else:macx:exists (../../dependencies/unarr/macx/libunarr.a) {
message(Found prebuilt unarr library in dependencies directory.)
INCLUDEPATH += $$PWD/../../dependencies/unarr/macx
LIBS += -L$$PWD/../../dependencies/unarr/macx -lunarr -lz -lbz2
DEFINES+=use_unarr
}
else:win32:exists (../../dependencies/unarr/win/unarr.h) { else:macx:exists(../../dependencies/unarr/macx/libunarr.a) {
message(Found prebuilt unarr library in dependencies directory.) message(Found prebuilt unarr library in dependencies directory.)
INCLUDEPATH += $$PWD/../../dependencies/unarr/win INCLUDEPATH += $$PWD/../../dependencies/unarr/macx
contains(QMAKE_TARGET.arch, x86_64): { LIBS += -L$$PWD/../../dependencies/unarr/macx -lunarr -lz -lbz2
LIBS += -L$$PWD/../../dependencies/unarr/win/x64 -lunarr DEFINES += use_unarr
} else { }
LIBS += -L$$PWD/../../dependencies/unarr/win/x86 -lunarr
} else:win32:exists(../../dependencies/unarr/win/unarr.h) {
DEFINES+=use_unarr UNARR_IS_SHARED_LIBRARY message(Found prebuilt unarr library in dependencies directory.)
} INCLUDEPATH += $$PWD/../../dependencies/unarr/win
contains(QMAKE_TARGET.arch, x86_64): {
LIBS += -L$$PWD/../../dependencies/unarr/win/x64 -lunarr
} else {
LIBS += -L$$PWD/../../dependencies/unarr/win/x86 -lunarr
}
DEFINES += use_unarr UNARR_IS_SHARED_LIBRARY
}
else:exists ($$PWD/unarr-master) { else:exists ($$PWD/unarr-master) {
message(Found unarr source-code) message(Found unarr source-code)
message(Unarr will be build as a part of YACReader) message(Unarr will be build as a part of YACReader)
# qmake based unarr build system
# this should only be used for testing or as a last resort
include(unarr.pro)
DEFINES += use_unarr
}
#qmake based unarr build system
#this should only be used for testing or as a last resort
include(unarr.pro)
DEFINES+=use_unarr
}
else { else {
error(Missing dependency: unarr decrompression backend. Please install libunarr on your system\ error(Missing dependency: unarr decrompression backend. Please install libunarr on your system\
or provide a copy of the unarr source code in compressed_archive/unarr/unarr-master) or provide a copy of the unarr source code in compressed_archive/unarr/unarr-master)
} }

View File

@ -1,56 +1,68 @@
CONFIG(no_pdf) { CONFIG(no_pdf) {
DEFINES += "NO_PDF" DEFINES += "NO_PDF"
} }
CONFIG(pdfium) { CONFIG(pdfium) {
DEFINES += "USE_PDFIUM" DEFINES += "USE_PDFIUM"
SOURCES += ../common/pdf_comic.cpp SOURCES += ../common/pdf_comic.cpp
win32 { win32 {
INCLUDEPATH += $$PWD/pdfium/win/public INCLUDEPATH += $$PWD/pdfium/win/public
contains(QMAKE_TARGET.arch, x86_64): { contains(QMAKE_TARGET.arch, x86_64): {
LIBS += -L$$PWD/pdfium/win/x64 -lpdfium LIBS += -L$$PWD/pdfium/win/x64 -lpdfium
} else { } else {
LIBS += -L$$PWD/pdfium/win/x86 -lpdfium LIBS += -L$$PWD/pdfium/win/x86 -lpdfium
} }
} }
unix { unix {
macx { macx {
LIBS += -L$$PWD/pdfium/macx/bin -lpdfium LIBS += -L$$PWD/pdfium/macx/bin -lpdfium
INCLUDEPATH += $$PWD/pdfium/macx/include INCLUDEPATH += $$PWD/pdfium/macx/include
} }
!macx { !macx:packagesExist(libpdfium) {
INCLUDEPATH += /usr/include/pdfium message(Using system provided installation of libpdfium.)
LIBS += -L/usr/lib/pdfium -lpdfium -lfreetype CONFIG += link_pkgconfig
} PKGCONFIG += libpdfium
} } else:!macx:exists(/usr/include/pdfium):exists(/usr/lib/libpdfium.so) {
} message(Using libpdfium found at /usr/lib/pdfium)
INCLUDEPATH += /usr/include/pdfium
LIBS += -L/usr/lib/pdfium -lpdfium
} else {
error(Could not find libpdfium.)
}
}
}
CONFIG(pdfkit) { CONFIG(pdfkit) {
!macx { !macx {
error (Pdfkit is macOS only) error (Pdfkit is macOS only)
} else { } else {
DEFINES += "USE_PDFKIT" DEFINES += "USE_PDFKIT"
OBJECTIVE_SOURCES += ../common/pdf_comic.mm OBJECTIVE_SOURCES += ../common/pdf_comic.mm
} }
} }
CONFIG(poppler) { CONFIG(poppler) {
win32 { win32 {
contains(QMAKE_TARGET.arch, x86_64): { contains(QMAKE_TARGET.arch, x86_64): {
error ("We currently don't ship precompiled poppler libraries for 64 bit builds") error ("We currently don't ship precompiled poppler libraries for 64 bit builds on Windows")
} }
INCLUDEPATH += $$PWD/poppler/include/qt5 INCLUDEPATH += $$PWD/poppler/include/qt5
LIBS += -L$$PWD/poppler/lib -lpoppler-qt5 LIBS += -L$$PWD/poppler/lib -lpoppler-qt5
#Add extra paths for dll dependencies so the executables don't crash when launching # Add extra paths for dll dependencies so the executables don't crash when launching
#from QtCreator # from QtCreator
LIBS += -L$$PWD/poppler/bin LIBS += -L$$PWD/poppler/bin
LIBS += -L$$PWD/poppler/dependencies/bin LIBS += -L$$PWD/poppler/dependencies/bin
} }
unix:!macx { unix:!macx {
INCLUDEPATH += /usr/include/poppler/qt5 packagesExist(poppler-qt5) {
LIBS += -L/usr/lib -lpoppler-qt5 CONFIG += link_pkgconfig
} PKGCONFIG += poppler-qt5
unix:macx { } else {
error (Poppler backend is currently not supported on macOS) INCLUDEPATH += /usr/include/poppler/qt5
} LIBS += -L/usr/lib -lpoppler-qt5
}
}
unix:macx {
error (Poppler backend is currently not supported on macOS)
}
} }