QT += core gui widgets
QT += multimedia
QT += network
QT += concurrent
QT += serialport
QT += opengl
QT += webenginewidgets

CONFIG += c++20
CONFIG += lrelease
CONFIG += embed_translations
# CONFIG += console

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

TARGET = $$quote(LedOK Express)
VERSION = 1.3.0
DEFINES += APP_VERSION=\\\"$$VERSION\\\"
msvc {
    QMAKE_CXXFLAGS += -execution-charset:utf-8
    QMAKE_CXXFLAGS += -source-charset:utf-8

    CONFIG += force_debug_info
    CONFIG += separate_debug_info
}
win* {
    LIBS += -lwinmm
    LIBS += -lDbghelp
}
win32 {
QMAKE_LFLAGS += /LARGEADDRESSAWARE
#QMAKE_LFLAGS += -Wl,--large-address-aware
}

SOURCES += \
    base/aboutdlg.cpp \
    base/changepasswordform.cpp \
    base/customprogressindicator.cpp \
    base/loemptydialog.cpp \
    base/pixbmpshowdialog.cpp \
    base/qiplineedit.cpp \
    base/softconfigdialog.cpp \
    base/switchcontrol.cpp \
    base/taesclass.cpp \
    base/updateledset3dialog.cpp \
    base/updaterdialog.cpp \
    base/x_checkboxdelegate.cpp \
    base/x_spinboxdelegate.cpp \
    base/x_timeeditdelegate.cpp \
    base/x_uimsgboxok.cpp \
    base/extendedgroupbox.cpp \
    base/ffutil.cpp \
    base/locolorselector.cpp \
    base/lodateselector.cpp \
    base/loqtitlebar.cpp \
    base/loqtreewidget.cpp \
    base/table.cpp \
    base/waitingdlg.cpp \
    basedlg.cpp \
    basewin.cpp \
    cfg.cpp \
    communication/hpptclient.cpp \
    communication/taserialthread.cpp \
    devicectrlpanel.cpp \
    deviceitem.cpp \
    devicepanel.cpp \
    ffplayer.cpp \
    globaldefine.cpp \
    main.cpp \
    mainwindow.cpp \
    mguangyingpinwidget.cpp \
    passwordindlg.cpp \
    player/digiclock.cpp \
    player/eleanaclock.cpp \
    player/elebase.cpp \
    player/eleborder.cpp \
    player/elegif.cpp \
    player/eleimg.cpp \
    player/elemultipng.cpp \
    player/elescroll.cpp \
    player/eletimer.cpp \
    player/elevideo.cpp \
    player/playwin.cpp \
    player/posdlg.cpp \
    progpanel.cpp \
    synctimer.cpp \
    tcpsocket.cpp \
    test.cpp \
    tipdialog.cpp \
    tools.cpp \
    wDevicesManager/controlencryptwidget.cpp \
    wDevicesManager/controlhdmischedule.cpp \
    wDevicesManager/controlhdmiwidget.cpp \
    wDevicesManager/controlnetconfigwidget.cpp \
    wDevicesManager/controlpowermanual.cpp \
    wDevicesManager/controlpowerschedule.cpp \
    wDevicesManager/controlpowerwidget.cpp \
    wDevicesManager/controltestwidget.cpp \
    wDevicesManager/controlvolumemanual.cpp \
    wDevicesManager/controlvolumeschedule.cpp \
    wDevicesManager/controlvolumewidget.cpp \
    wDevicesManager/ctrladvancedpanel.cpp \
    wDevicesManager/ctrlbrightpanel.cpp \
    wDevicesManager/ctrlverifyclockpanel.cpp \
    wDevicesManager/ledcard.cpp \
    wDevicesManager/threadupgradeapk.cpp \
    wDevicesManager/upgradeapkdialog.cpp \
    wDevicesManager/wupgradeapkitem.cpp \
    wProgramManager/eaclock.cpp \
    wProgramManager/eaudio.cpp \
    wProgramManager/ebase.cpp \
    wProgramManager/edclock.cpp \
    wProgramManager/eenviron.cpp \
    wProgramManager/egif.cpp \
    wProgramManager/emultiwin.cpp \
    wProgramManager/ephoto.cpp \
    wProgramManager/etext.cpp \
    wProgramManager/etimer.cpp \
    wProgramManager/evideo.cpp \
    wProgramManager/eweb.cpp \
    wProgramManager/gentmpthread.cpp \
    wProgramManager/pageeditor.cpp \
    wProgramManager/pagelistitem.cpp \
    wProgramManager/progcreatedlg.cpp \
    wProgramManager/progeditorwin.cpp \
    wProgramManager/progitem.cpp \
    wProgramManager/sendprogramdialog.cpp \
    wProgramManager/sendprogthread.cpp \
    wProgramManager/threadexportprogrampro.cpp \
    wProgramManager/usbdetectdialog.cpp \
    wProgramManager/videosplitthread.cpp \
    wProgramManager/wexportprogramitem.cpp \
    wProgramManager/wplanitem.cpp \
    wProgramManager/wplanlist.cpp \
    wProgramManager/wprogrampublishitem.cpp \

HEADERS += \
    base/aboutdlg.h \
    base/changepasswordform.h \
    base/customprogressindicator.h \
    base/loemptydialog.h \
    base/pixbmpshowdialog.h \
    base/qiplineedit.h \
    base/softconfigdialog.h \
    base/switchcontrol.h \
    base/taesclass.h \
    base/updateledset3dialog.h \
    base/updaterdialog.h \
    base/x_checkboxdelegate.h \
    base/x_spinboxdelegate.h \
    base/x_timeeditdelegate.h \
    base/x_uimsgboxok.h \
    base/extendedgroupbox.h \
    base/locolorselector.h \
    base/lodateselector.h \
    base/loqtitlebar.h \
    base/loqtreewidget.h \
    base/table.h \
    base/waitingdlg.h \
    basedlg.h \
    basewin.h \
    cfg.h \
    communication/hpptclient.h \
    communication/taserialthread.h \
    devicectrlpanel.h \
    deviceitem.h \
    devicepanel.h \
    ffplayer.h \
    globaldefine.h \
    gqt.h \
    mainwindow.h \
    mguangyingpinwidget.h \
    passwordindlg.h \
    player/digiclock.h \
    player/eleanaclock.h \
    player/elebase.h \
    player/eleborder.h \
    player/elegif.h \
    player/eleimg.h \
    player/elemultipng.h \
    player/elescroll.h \
    player/eletimer.h \
    player/elevideo.h \
    player/playwin.h \
    player/posdlg.h \
    progpanel.h \
    synctimer.h \
    tcpsocket.h \
    tipdialog.h \
    tools.h \
    wDevicesManager/controlencryptwidget.h \
    wDevicesManager/controlhdmischedule.h \
    wDevicesManager/controlhdmiwidget.h \
    wDevicesManager/controlnetconfigwidget.h \
    wDevicesManager/controlpowermanual.h \
    wDevicesManager/controlpowerschedule.h \
    wDevicesManager/controlpowerwidget.h \
    wDevicesManager/controltestwidget.h \
    wDevicesManager/controlvolumemanual.h \
    wDevicesManager/controlvolumeschedule.h \
    wDevicesManager/controlvolumewidget.h \
    wDevicesManager/ctrladvancedpanel.h \
    wDevicesManager/ctrlbrightpanel.h \
    wDevicesManager/ctrlverifyclockpanel.h \
    wDevicesManager/ledcard.h \
    wDevicesManager/threadupgradeapk.h \
    wDevicesManager/upgradeapkdialog.h \
    wDevicesManager/wupgradeapkitem.h \
    wProgramManager/eaclock.h \
    wProgramManager/eaudio.h \
    wProgramManager/ebase.h \
    wProgramManager/edclock.h \
    wProgramManager/eenviron.h \
    wProgramManager/egif.h \
    wProgramManager/emultiwin.h \
    wProgramManager/ephoto.h \
    wProgramManager/etext.h \
    wProgramManager/etimer.h \
    wProgramManager/evideo.h \
    wProgramManager/eweb.h \
    wProgramManager/gentmpthread.h \
    wProgramManager/pageeditor.h \
    wProgramManager/pagelistitem.h \
    wProgramManager/progcreatedlg.h \
    wProgramManager/progeditorwin.h \
    wProgramManager/progitem.h \
    wProgramManager/sendprogramdialog.h \
    wProgramManager/sendprogthread.h \
    wProgramManager/threadexportprogrampro.h \
    wProgramManager/usbdetectdialog.h \
    wProgramManager/videosplitthread.h \
    wProgramManager/wexportprogramitem.h \
    wProgramManager/wplanitem.h \
    wProgramManager/wplanlist.h \
    wProgramManager/wprogrampublishitem.h \

FORMS += \
    base/pixbmpshowdialog.ui \
    base/updateledset3dialog.ui \
    base/updaterdialog.ui \
    base/x_uimsgboxok.ui \
    mguangyingpinwidget.ui \
    tipdialog.ui \
    wDevicesManager/controlencryptwidget.ui \
    wDevicesManager/controlhdmischedule.ui \
    wDevicesManager/controlpowermanual.ui \
    wDevicesManager/controlpowerschedule.ui \
    wDevicesManager/controlpowerwidget.ui \
    wDevicesManager/controltestwidget.ui \
    wDevicesManager/controlvolumemanual.ui \
    wDevicesManager/controlvolumeschedule.ui \
    wDevicesManager/controlvolumewidget.ui \
    wDevicesManager/upgradeapkdialog.ui \
    wProgramManager/wplanitem.ui \

TRANSLATIONS += \
    translations/app_zh_CN.ts \
    translations/app_zh_TW.ts \
    translations/app_ja.ts \
    translations/app_en.ts

EXTRA_TRANSLATIONS += \
    translations/qt_zh_CN.ts \
    translations/qt_zh_TW.ts \
    translations/qt_ja.ts \
    translations/qt_en.ts

RESOURCES += \
    res.qrc \
    qss.qrc

win32:RC_ICONS = res/Logo.ico
osx:ICON = res/Logo.icns


# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target



INCLUDEPATH += $$PWD/ffmpeg/include
LIBS += -L$$PWD/ffmpeg/lib/\
        -lavcodec \
        -lavdevice \
        -lavfilter \
        -lavformat \
        -lavutil \
        -lswresample \
        -lswscale

copy.files += $$files(ffmpeg/bin/*.dll)
copy.files += ffmpeg/bin/ffmpeg.exe

include(./xlsx/qtxlsx.pri)
include(./QSimpleUpdater/QSimpleUpdater.pri)

# for https requests
copy2.files += $$files(OpenSSL/*.dll)

copy.files += 7z/7z.dll
copy.files += 7z/7z.exe

copy.path = $$OUT_PWD
copy2.path = $$OUT_PWD/release

CONFIG += file_copies
COPIES += copy
COPIES += copy2
