QT += core gui
QT += widgets serialport network

TARGET = ATBDownloadDCFirmware

VERSION="0.1.0"
win32 {
    BUILD_DATE=$$system("date /t")
    BUILD_TIME=$$system("time /t")
} else {
    BUILD_DATE=$$system("date +%d-%m-%y")
    BUILD_TIME=$$system("date +%H:%M:%S")
}

GIT_COMMIT=$$system("git log -1 --format=oneline | cut -d' ' -f1")

EXTENDED_VERSION="$${VERSION}-$${GIT_COMMIT}"

CONFIG += c++17

DEFINES+=APP_VERSION=\\\"$$VERSION\\\"
DEFINES+=APP_BUILD_DATE=\\\"$$BUILD_DATE\\\"
DEFINES+=APP_BUILD_TIME=\\\"$$BUILD_TIME\\\"
DEFINES+=APP_EXTENDED_VERSION=\\\"$$EXTENDED_VERSION\\\"

# keep comments, as /* fall through */
QMAKE_CXXFLAGS += -C
QMAKE_CXXFLAGS += -g
QMAKE_CXXFLAGS += -Wno-deprecated-copy -O

contains( CONFIG, PTU5 ) {
    greaterThan(QT_MAJOR_VERSION, 4): QT += serialport
    CONFIG += link_pkgconfig
    lessThan(QT_MAJOR_VERSION, 5):   PKGCONFIG += qextserialport
    QMAKE_CXXFLAGS += -O2 -std=c++17   # for GCC >= 4.7
    # QMAKE_CXXFLAGS += -Wno-deprecated-copy
    PTU5BASEPATH = /opt/devel/ptu5

    INCLUDEPATH += $$PTU5BASEPATH/qt/libs/devicecontroller/include
    LIBS += -L$$PTU5BASEPATH/qt/libs/devicecontroller/library

    ARCH = PTU5
    DEFINES+=PTU5
}
contains( CONFIG, PTU5_YOCTO ) {
    greaterThan(QT_MAJOR_VERSION, 4): QT += serialport
    QMAKE_CXXFLAGS += -std=c++17   # for GCC >= 4.7
    # QMAKE_CXXFLAGS += -Wno-deprecated-copy
    PTU5BASEPATH = /opt/devel/ptu5
    ARCH = PTU5
    DEFINES+=PTU5

    # add qmqtt lib
    #LIBS += -lQt5Qmqtt
}
contains( CONFIG, DesktopLinux ) {
    greaterThan(QT_MAJOR_VERSION, 4): QT += serialport
    lessThan(QT_MAJOR_VERSION, 5):    CONFIG += extserialport
    # QMAKE_CC = ccache $$QMAKE_CC
    # QMAKE_CXX = ccache $$QMAKE_CXX
    QMAKE_CXXFLAGS += -std=c++17
    # QMAKE_CXXFLAGS += -Wno-deprecated-copy
    linux-clang {  QMAKE_CXXFLAGS += -Qunused-arguments   }
    ARCH = DesktopLinux
    DEFINES+=DesktopLinux
}

SOURCES += \
        main.cpp \
        mainwindow.cpp \
        sender_thread.cpp \
        receiver_thread.cpp \
        worker_thread.cpp \
        ../common/src/message_handler.cpp

HEADERS += \
        mainwindow.h \
        sender_thread.h \
        receiver_thread.h \
        worker_thread.h \
        ../common/include/message_handler.h

OTHER_FILES += \
    ATBDownloadDCFirmware.ini


FORMS += \
    mainwindow.ui

##########################################################################################
# for running program on target through QtCreator
contains( CONFIG, PTU5 ) {
   qnx: target.path = /tmp/$${TARGET}/bin
   else: unix:!android: target.path = /opt/app/tools/atbupdate/
   !isEmpty(target.path): INSTALLS += target
}