-CONFIG += release
+CONFIG += c++17 exceptions_off rtti_off object_parallel_to_source
+
TEMPLATE = app
-VERSION = 2.1.5
+VERSION = 3.9.1
DEFINES += APP_VERSION="$$VERSION"
APP_NAME = Minitube
APP_UNIX_NAME = minitube
DEFINES += APP_UNIX_NAME="$$APP_UNIX_NAME"
-DEFINES *= QT_NO_DEBUG_OUTPUT
-DEFINES *= QT_USE_QSTRINGBUILDER
-DEFINES += QT_STRICT_ITERATORS
+message(Building $${APP_NAME} $${VERSION})
+message(Qt $$[QT_VERSION] in $$[QT_INSTALL_PREFIX])
+
+DEFINES += APP_SNAPSHOT
+
+CONFIG -= debug_and_release
+CONFIG(debug, debug|release): {
+ message(Building for debug)
+}
+CONFIG(release, debug|release): {
+ message(Building for release)
+ DEFINES *= QT_NO_DEBUG_OUTPUT
+ CONFIG += optimize_full
+}
+
+DEFINES *= QT_USE_QSTRINGBUILDER QT_STRICT_ITERATORS QT_DEPRECATED_WARNINGS
+
+#!contains(DEFINES, APP_GOOGLE_API_KEY=.+) {
+# warning("You need to specify a Google API Key, refer to the README.md file for details")
+#}
TARGET = $${APP_UNIX_NAME}
-QT += network xml phonon sql script
+QT += widgets network sql qml
+
+include(lib/http/http.pri)
+include(lib/idle/idle.pri)
+include(lib/js/js.pri)
+include(lib/promises/promises.pri)
+
+DEFINES += MEDIA_MPV
+include(lib/media/media.pri)
include(src/qtsingleapplication/qtsingleapplication.pri)
+include(src/yt/yt.pri)
+
+INCLUDEPATH += $$PWD/src
-HEADERS += \
- src/video.h \
- src/searchlineedit.h \
- src/urllineedit.h \
+HEADERS += src/video.h \
+ src/messagebar.h \
src/spacer.h \
src/constants.h \
src/playlistitemdelegate.h \
- src/networkaccess.h \
+ src/subscriptionimportview.h \
+ src/updateutils.h \
+ src/videoapi.h \
src/videomimedata.h \
- src/global.h \
- src/updatechecker.h \
src/searchparams.h \
src/minisplitter.h \
src/loadingwidget.h \
- src/videoareawidget.h \
src/autocomplete.h \
src/videodefinition.h \
src/fontutils.h \
src/view.h \
src/playlistmodel.h \
src/videosource.h \
+ src/waitingspinnerwidget.h \
src/ytsearch.h \
src/ytstandardfeed.h \
src/standardfeedsview.h \
src/ytregions.h \
src/ytcategories.h \
- src/ytfeedreader.h \
src/ytsuggester.h \
src/videosourcewidget.h \
src/regionsview.h \
src/ytsinglevideosource.h \
src/sidebarheader.h \
- src/utils.h \
+ src/iconutils.h \
src/diskcache.h \
src/gridwidget.h \
src/painterutils.h \
src/database.h \
- src/ytuser.h \
src/channelaggregator.h \
src/channelmodel.h \
src/aggregatevideosource.h \
src/channelview.h \
src/channelitemdelegate.h \
src/jsfunctions.h \
- src/seekslider.h
+ src/seekslider.h \
+ src/snapshotsettings.h \
+ src/snapshotpreview.h \
+ src/datautils.h \
+ src/yt3listparser.h \
+ src/ytchannel.h \
+ src/yt3.h \
+ src/paginatedvideosource.h \
+ src/searchwidget.h \
+ src/channellistview.h \
+ src/httputils.h \
+ src/appwidget.h \
+ src/clickablelabel.h \
+ src/ytvideo.h \
+ src/toolbarmenu.h \
+ src/sharetoolbar.h \
+ src/videoarea.h \
+ src/searchlineedit.h
SOURCES += src/main.cpp \
- src/searchlineedit.cpp \
- src/urllineedit.cpp \
+ src/messagebar.cpp \
src/spacer.cpp \
+ src/subscriptionimportview.cpp \
+ src/updateutils.cpp \
src/video.cpp \
src/videomimedata.cpp \
- src/updatechecker.cpp \
- src/networkaccess.cpp \
src/searchparams.cpp \
src/minisplitter.cpp \
src/loadingwidget.cpp \
- src/videoareawidget.cpp \
src/autocomplete.cpp \
src/videodefinition.cpp \
src/constants.cpp \
src/playlistitemdelegate.cpp \
src/playlistmodel.cpp \
src/videosource.cpp \
+ src/waitingspinnerwidget.cpp \
src/ytsearch.cpp \
src/ytstandardfeed.cpp \
src/standardfeedsview.cpp \
src/ytregions.cpp \
src/ytcategories.cpp \
- src/ytfeedreader.cpp \
src/ytsuggester.cpp \
src/videosourcewidget.cpp \
src/regionsview.cpp \
src/ytsinglevideosource.cpp \
src/sidebarheader.cpp \
- src/utils.cpp \
+ src/iconutils.cpp \
src/diskcache.cpp \
src/gridwidget.cpp \
src/painterutils.cpp \
src/database.cpp \
- src/ytuser.cpp \
src/channelaggregator.cpp \
src/channelmodel.cpp \
src/aggregatevideosource.cpp \
src/channelview.cpp \
src/channelitemdelegate.cpp \
src/jsfunctions.cpp \
- src/seekslider.cpp
+ src/seekslider.cpp \
+ src/snapshotsettings.cpp \
+ src/snapshotpreview.cpp \
+ src/datautils.cpp \
+ src/yt3listparser.cpp \
+ src/ytchannel.cpp \
+ src/yt3.cpp \
+ src/paginatedvideosource.cpp \
+ src/channellistview.cpp \
+ src/httputils.cpp \
+ src/appwidget.cpp \
+ src/clickablelabel.cpp \
+ src/ytvideo.cpp \
+ src/toolbarmenu.cpp \
+ src/sharetoolbar.cpp \
+ src/videoarea.cpp \
+ src/searchlineedit.cpp
+
RESOURCES += resources.qrc
+RESOURCES += $$files(icons/*.png, true)
+
DESTDIR = build/target/
OBJECTS_DIR = build/obj/
MOC_DIR = build/moc/
# Tell Qt Linguist that we use UTF-8 strings in our sources
CODECFORTR = UTF-8
CODECFORSRC = UTF-8
+
include(locale/locale.pri)
# deploy
DISTFILES += CHANGES COPYING
unix:!mac {
- INCLUDEPATH += /usr/include/phonon
+ DEFINES += APP_LINUX
QT += dbus
HEADERS += src/gnomeglobalshortcutbackend.h
SOURCES += src/gnomeglobalshortcutbackend.cpp
+
isEmpty(PREFIX):PREFIX = /usr
+
BINDIR = $$PREFIX/bin
INSTALLS += target
target.path = $$BINDIR
+
DATADIR = $$PREFIX/share
PKGDATADIR = $$DATADIR/minitube
DEFINES += DATADIR=\\\"$$DATADIR\\\" \
PKGDATADIR=\\\"$$PKGDATADIR\\\"
+
INSTALLS += translations \
+ sounds \
desktop \
+ appdata \
iconsvg \
icon16 \
icon22 \
icon512
translations.path = $$PKGDATADIR
translations.files += $$DESTDIR/locale
+ sounds.path = $$PKGDATADIR
+ sounds.files += sounds/
desktop.path = $$DATADIR/applications
desktop.files += minitube.desktop
+ appdata.path = $$DATADIR/metainfo
+ appdata.files += org.tordini.flavio.minitube.metainfo.xml
iconsvg.path = $$DATADIR/icons/hicolor/scalable/apps
iconsvg.files += data/minitube.svg
icon16.path = $$DATADIR/icons/hicolor/16x16/apps
icon512.path = $$DATADIR/icons/hicolor/512x512/apps
icon512.files += data/512x512/minitube.png
}
+
mac|win32|contains(DEFINES, APP_UBUNTU):include(local/local.pri)
+
+message(QT: $$QT)
+message(CONFIG: $$CONFIG)
+message(DEFINES: $$DEFINES)
+message(QMAKE_CXXFLAGS: $$QMAKE_CXXFLAGS)
+message(QMAKE_LFLAGS: $$QMAKE_LFLAGS)