From 6a1ba45a4dfdace0452d279a397fa0dbaf67a55e Mon Sep 17 00:00:00 2001 From: Felix Kauselmann <2039670+selmf@users.noreply.github.com> Date: Sun, 22 Oct 2017 14:21:35 +0200 Subject: [PATCH] Add 64 bit builddir support for YACReaderLibraryServer --- INSTALL.md | 110 ++++ INSTALL.txt | 111 ---- YACReader/YACReader.pro | 474 +++++++++--------- .../YACReaderLibraryServer.pro | 309 ++++++------ 4 files changed, 502 insertions(+), 502 deletions(-) create mode 100644 INSTALL.md delete mode 100644 INSTALL.txt diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 00000000..d36514f5 --- /dev/null +++ b/INSTALL.md @@ -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 ;) diff --git a/INSTALL.txt b/INSTALL.txt deleted file mode 100644 index 80a95500..00000000 --- a/INSTALL.txt +++ /dev/null @@ -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 ;) \ No newline at end of file diff --git a/YACReader/YACReader.pro b/YACReader/YACReader.pro index ae843618..fa4dc161 100644 --- a/YACReader/YACReader.pro +++ b/YACReader/YACReader.pro @@ -1,22 +1,22 @@ -TEMPLATE = app -TARGET = YACReader - -QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" - -DEPENDPATH += . \ - release - -DEFINES += NOMINMAX YACREADER -QMAKE_MAC_SDK = macosx10.12 - -#load default build flags -include (../config.pri) -include (../dependencies/pdf_backend.pri) - -unix:!macx{ - QMAKE_CXXFLAGS += -std=c++11 -} - +TEMPLATE = app +TARGET = YACReader + +QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" + +DEPENDPATH += . \ + release + +DEFINES += NOMINMAX YACREADER +QMAKE_MAC_SDK = macosx10.12 + +#load default build flags +include (../config.pri) +include (../dependencies/pdf_backend.pri) + +unix:!macx{ + QMAKE_CXXFLAGS += -std=c++11 +} + CONFIG(force_angle) { contains(QMAKE_TARGET.arch, x86_64) { Release:DESTDIR = ../release64_angle @@ -33,222 +33,222 @@ CONFIG(force_angle) { 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" } - -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" -} diff --git a/YACReaderLibraryServer/YACReaderLibraryServer.pro b/YACReaderLibraryServer/YACReaderLibraryServer.pro index 59e8ad18..e5c07837 100644 --- a/YACReaderLibraryServer/YACReaderLibraryServer.pro +++ b/YACReaderLibraryServer/YACReaderLibraryServer.pro @@ -1,154 +1,155 @@ -###################################################################### -# Automatically generated by qmake (2.01a) dom 12. oct 20:47:48 2008 -###################################################################### - -TEMPLATE = app -TARGET = YACReaderLibraryServer - -QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" - -CONFIG += console -DEPENDPATH += ../YACReaderLibrary -INCLUDEPATH += ../YACReaderLibrary -INCLUDEPATH += ../common \ - ../YACReaderLibrary/server \ - ../YACReaderLibrary/db - -DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY QT_NO_DEBUG_OUTPUT -QMAKE_MAC_SDK = macosx10.12 -#load default build flags -#do a basic dependency check -include(headless_config.pri) -include(../dependencies/pdf_backend.pri) - -win32 { - LIBS += -loleaut32 -lole32 -lshell32 -luser32 - QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL - QMAKE_LFLAGS_RELEASE += /LTCG - CONFIG -= embed_manifest_exe -} - -macx { - LIBS += -framework Foundation -framework ApplicationServices -framework AppKit - CONFIG += objective_c -} - -unix { - CONFIG += c++11 -} - -#CONFIG += release -CONFIG -= flat -QT += core sql network - -# Input -HEADERS += ../YACReaderLibrary/library_creator.h \ - ../YACReaderLibrary/package_manager.h \ - ../YACReaderLibrary/bundle_creator.h \ - ../YACReaderLibrary/db_helper.h \ - ../YACReaderLibrary/db/data_base_management.h \ - ../common/comic_db.h \ - ../common/folder.h \ - ../common/library_item.h \ - ../common/comic.h \ - ../common/pdf_comic.h \ - ../common/bookmarks.h \ - ../common/qnaturalsorting.h \ - ../common/yacreader_global.h \ - ../YACReaderLibrary/yacreader_local_server.h \ - ../YACReaderLibrary/comics_remover.h \ - ../common/http_worker.h \ - ../YACReaderLibrary/yacreader_libraries.h \ - ../YACReaderLibrary/comic_files_manager.h \ - console_ui_library_creator.h - - -SOURCES += ../YACReaderLibrary/library_creator.cpp \ - ../YACReaderLibrary/package_manager.cpp \ - ../YACReaderLibrary/bundle_creator.cpp \ - ../YACReaderLibrary/db_helper.cpp \ - ../YACReaderLibrary/db/data_base_management.cpp \ - ../common/comic_db.cpp \ - ../common/folder.cpp \ - ../common/library_item.cpp \ - ../common/comic.cpp \ - ../common/bookmarks.cpp \ - ../common/qnaturalsorting.cpp \ - ../YACReaderLibrary/yacreader_local_server.cpp \ - ../YACReaderLibrary/comics_remover.cpp \ - ../common/http_worker.cpp \ - ../common/yacreader_global.cpp \ - ../YACReaderLibrary/yacreader_libraries.cpp \ - ../YACReaderLibrary/comic_files_manager.cpp \ - console_ui_library_creator.cpp \ - main.cpp - -include(../YACReaderLibrary/server/server.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(../QsLog/QsLog.pri) - - -TRANSLATIONS = yacreaderlibraryserver_es.ts \ - yacreaderlibraryserver_ru.ts \ - yacreaderlibraryserver_pt.ts \ - yacreaderlibraryserver_fr.ts \ - yacreaderlibraryserver_nl.ts \ - yacreaderlibraryserver_tr.ts \ - yacreaderlibraryserver_de.ts \ - yacreaderlibraryserver_source.ts - - -RESOURCES += images.qrc - - -Release:DESTDIR = ../release -Debug:DESTDIR = ../debug - - -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\\\"" "BINDIR=\\\"$$BINDIR\\\"" - -#MAKE INSTALL -CONFIG(server_standalone) { - INSTALLS += bin server translation -} -else:CONFIG(server_bundled) { - INSTALLS += bin -} -else { - INSTALLS += bin server translation - 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.files = YACReaderLibraryServer -} else { - bin.files = $$DESTDIR/YACReaderLibraryServer -} - -server.path = $$DATADIR/yacreader -server.files = ../release/server - -translation.path = $$DATADIR/yacreader/languages -translation.files = ../release/languages/yacreaderlibrary_* - -#manpage.path = $$DATADIR/man/man1 -#manpage.files = ../YACReaderLibrary.1 -} \ No newline at end of file +TEMPLATE = app +TARGET = YACReaderLibraryServer + +QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" + +CONFIG += console +DEPENDPATH += ../YACReaderLibrary +INCLUDEPATH += ../YACReaderLibrary +INCLUDEPATH += ../common \ + ../YACReaderLibrary/server \ + ../YACReaderLibrary/db + +DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY QT_NO_DEBUG_OUTPUT +QMAKE_MAC_SDK = macosx10.12 +#load default build flags +#do a basic dependency check +include(headless_config.pri) +include(../dependencies/pdf_backend.pri) + +win32 { + LIBS += -loleaut32 -lole32 -lshell32 -luser32 + QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL + QMAKE_LFLAGS_RELEASE += /LTCG + CONFIG -= embed_manifest_exe +} + +macx { + LIBS += -framework Foundation -framework ApplicationServices -framework AppKit + CONFIG += objective_c +} + +unix { + CONFIG += c++11 +} + +#CONFIG += release +CONFIG -= flat +QT += core sql network + +# Source files +HEADERS += ../YACReaderLibrary/library_creator.h \ + ../YACReaderLibrary/package_manager.h \ + ../YACReaderLibrary/bundle_creator.h \ + ../YACReaderLibrary/db_helper.h \ + ../YACReaderLibrary/db/data_base_management.h \ + ../common/comic_db.h \ + ../common/folder.h \ + ../common/library_item.h \ + ../common/comic.h \ + ../common/pdf_comic.h \ + ../common/bookmarks.h \ + ../common/qnaturalsorting.h \ + ../common/yacreader_global.h \ + ../YACReaderLibrary/yacreader_local_server.h \ + ../YACReaderLibrary/comics_remover.h \ + ../common/http_worker.h \ + ../YACReaderLibrary/yacreader_libraries.h \ + ../YACReaderLibrary/comic_files_manager.h \ + console_ui_library_creator.h + + +SOURCES += ../YACReaderLibrary/library_creator.cpp \ + ../YACReaderLibrary/package_manager.cpp \ + ../YACReaderLibrary/bundle_creator.cpp \ + ../YACReaderLibrary/db_helper.cpp \ + ../YACReaderLibrary/db/data_base_management.cpp \ + ../common/comic_db.cpp \ + ../common/folder.cpp \ + ../common/library_item.cpp \ + ../common/comic.cpp \ + ../common/bookmarks.cpp \ + ../common/qnaturalsorting.cpp \ + ../YACReaderLibrary/yacreader_local_server.cpp \ + ../YACReaderLibrary/comics_remover.cpp \ + ../common/http_worker.cpp \ + ../common/yacreader_global.cpp \ + ../YACReaderLibrary/yacreader_libraries.cpp \ + ../YACReaderLibrary/comic_files_manager.cpp \ + console_ui_library_creator.cpp \ + main.cpp + +include(../YACReaderLibrary/server/server.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(../QsLog/QsLog.pri) + + +TRANSLATIONS = yacreaderlibraryserver_es.ts \ + yacreaderlibraryserver_ru.ts \ + yacreaderlibraryserver_pt.ts \ + yacreaderlibraryserver_fr.ts \ + yacreaderlibraryserver_nl.ts \ + yacreaderlibraryserver_tr.ts \ + yacreaderlibraryserver_de.ts \ + yacreaderlibraryserver_source.ts + +RESOURCES += images.qrc + +contains(QMAKE_TARGET.arch, x86_64) { + Release:DESTDIR = ../release64 + Debug:DESTDIR = ../debug64 +} else { + Release:DESTDIR = ../release + Debug:DESTDIR = ../debug +} + +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\\\"" "BINDIR=\\\"$$BINDIR\\\"" + +#make install +CONFIG(server_standalone) { + INSTALLS += bin server translation +} +else:CONFIG(server_bundled) { + INSTALLS += bin +} +else { + INSTALLS += bin server translation + 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.files = YACReaderLibraryServer +} else { + bin.files = $$DESTDIR/YACReaderLibraryServer +} + +server.path = $$DATADIR/yacreader +server.files = ../release/server + +translation.path = $$DATADIR/yacreader/languages +translation.files = ../release/languages/yacreaderlibrary_* + +# TODO: We need a manpage for yaclibserver +# TODO: We need a systemd service file for yaclibserver +#manpage.path = $$DATADIR/man/man1 +#manpage.files = ../YACReaderLibrary.1 +}