Fix win deploy problem

Fix win deploy problem

############################################## GLOBAL FUNCTIONS ###############################################
#Define minQtVersion Test
defineTest(minQtVersion) {
    maj = $$1
    min = $$2
    patch = $$3
    isEqual(QT_MAJOR_VERSION, $$maj) {
        isEqual(QT_MINOR_VERSION, $$min) {
            isEqual(QT_PATCH_VERSION, $$patch) {
                return(true)
            }
            greaterThan(QT_PATCH_VERSION, $$patch) {
                return(true)
            }
        }
        greaterThan(QT_MINOR_VERSION, $$min) {
            return(true)
        }
    }
    greaterThan(QT_MAJOR_VERSION, $$maj) {
        return(true)
    }
    return(false)
}

defineReplace(macDeployArgs) {
    target = $$1
    target_ext = $$2
    mne_binary_dir = $$3
    mne_library_dir = $$4
    extra_args = $$5

    isEmpty($${target_ext}) {
        target_custom_ext = .app
    } else {
        target_custom_ext = $${target_ext}
    }

    deploy_cmd = macdeployqt

    deploy_target = $$shell_quote($$shell_path($${mne_binary_dir}/$${target}$${target_custom_ext}))

    deploy_libs_to_copy = -libpath=$${mne_library_dir}
    !isEmpty(extra_args) {
      deploy_libs_to_copy += $${extra_args}
    }
    return($$deploy_cmd $$deploy_target $$deploy_libs_to_copy)
}

defineReplace(winDeployArgs) {
    target = $$1
    target_ext = $$2
    mne_binary_dir = $$3
    libs_to_deploy = $$4
    extra_args = $$5

    # Deploy qt dependecies for main application
    isEmpty($${target_ext}) {
        target_custom_ext = .exe
    } else {
        target_custom_ext = $${target_ext}
    }

    deploy_cmd = windeployqt

    deploy_target = $$shell_quote($$shell_path($${mne_binary_dir}/$${target}$${target_custom_ext}))

    final_deploy_command += $$deploy_cmd $$deploy_target $$extra_args $$escape_expand(\\n\\t)

    # Parse libs from libs_to_deploy, copy them to the bin folder and deploy qt dependecies for each of them
    for(FILE, libs_to_deploy) {
        # Only parse if the variable specified in libs_to_deploy does not contain / and -L (as seen in lib path definitions)
        PARSE = $$find(FILE, -L) $$find(FILE, /)

        isEmpty(PARSE) {
            FILE ~= s,-l,,g
            FILE = $${FILE}.dll
            TRGTDIR = $$shell_quote($$shell_path($${MNE_BINARY_DIR}))
            FILEPATH= $$shell_quote($$shell_path($${MNE_LIBRARY_DIR}/$${FILE}))

            # Copy library
            final_deploy_command += $${QMAKE_COPY} $$quote($${FILEPATH}) $$quote($${TRGTDIR}) $$escape_expand(\\n\\t)

            # Deploy dependencies for the library
            deploy_target = $$shell_quote($$shell_path($${TRGTDIR}/$${FILE}))
            final_deploy_command += windeployqt $${deploy_target} $$extra_args $$escape_expand(\\n\\t)

            #warning(Deploying $${FILEPATH} to $${TRGTDIR})
        }
    }

    return( $${final_deploy_command} )
}

############################################### GLOBAL DEFINES ################################################

MNE_CPP_VERSION = 1.0.0
MNE_LIB_VERSION = 1

QMAKE_TARGET_PRODUCT = mne-cpp
QMAKE_TARGET_DESCRIPTION = MNE Qt 5 based C++ library.
QMAKE_TARGET_COPYRIGHT = Copyright (C) 2018 Authors of mne-cpp. All rights reserved.

########################################### PROJECT CONFIGURATION #############################################

## To build only the minimal version, i.e, for mne_rt_server run: qmake MNECPP_CONFIG+=minimalVersion
## To set CodeCov coverage compiler flag run: qmake MNECPP_CONFIG+=withCodeCov
## To disable tests run: qmake MNECPP_CONFIG+=noTests
## To disable examples run: qmake MNECPP_CONFIG+=noExamples
## To disable applications run: qmake MNECPP_CONFIG+=noApplications
## To build basic MNE Scan version run: qmake MNECPP_CONFIG+=buildBasicMneScanVersion
## To build MNE-CPP libraries as static libs: qmake MNECPP_CONFIG+=static
## To build MNE-CPP Deep library based CNTK: qmake MNECPP_CONFIG+=buildDeep

#Build minimalVersion for qt versions < 5.10.0
!minQtVersion(5, 10, 0) {
    message("Building minimal version due to Qt version $${QT_VERSION}.")
    MNECPP_CONFIG += minimalVersion
}

########################################### DIRECTORY DEFINITIONS #############################################

# Eigen
EIGEN_INCLUDE_DIR = $$EIGEN_INCLUDE_DIR
isEmpty(EIGEN_INCLUDE_DIR) {
    EIGEN_INCLUDE_DIR = $${PWD}/include/3rdParty/eigen3
}

#CNTK
CNTK_INCLUDE_DIR = $$CNTK_INCLUDE_DIR
isEmpty( CNTK_INCLUDE_DIR ) {
    # Check CNTK Path options
    exists($$(CNTKPATH)/cntk/Include/Eval.h) {
        CNTK_TEST_DIR = $$(CNTKPATH)/cntk
    }
    exists($$(CNTKPATH)/Include/Eval.h) {
        CNTK_TEST_DIR = $$(CNTKPATH)
    }
    exists($$(MYCNTKPATH)/cntk/Include/Eval.h) {
        CNTK_TEST_DIR = $$(MYCNTKPATH)/cntk
    }
    exists($$(MYCNTKPATH)/Include/Eval.h) {
        CNTK_TEST_DIR = $$(MYCNTKPATH)
    }
    # Set CNTK path variables
    !isEmpty( CNTK_TEST_DIR ) {
        CNTK_INCLUDE_DIR = $${CNTK_TEST_DIR}/Include
        CNTK_LIBRARY_DIR = $${CNTK_TEST_DIR}/cntk
    }
}

# include
MNE_INCLUDE_DIR = $$MNE_INCLUDE_DIR
isEmpty( MNE_INCLUDE_DIR ) {
    MNE_INCLUDE_DIR = $${PWD}/libraries
}
MNE_SCAN_INCLUDE_DIR = $$MNE_SCAN_INCLUDE_DIR
isEmpty( MNE_SCAN_INCLUDE_DIR ) {
    MNE_SCAN_INCLUDE_DIR = $${PWD}/applications/mne_scan/libs
}
MNE_ANALYZE_INCLUDE_DIR = $$MNE_ANALYZE_INCLUDE_DIR
isEmpty( MNE_ANALYZE_INCLUDE_DIR ) {
    MNE_ANALYZE_INCLUDE_DIR = $${PWD}/applications/mne_analyze/libs
}
MNE_ANALYZE_EXTENSIONS_DIR = $$MNE_ANALYZE_EXTENSIONS_DIR
isEmpty( MNE_ANALYZE_EXTENSIONS_DIR ) {
    MNE_ANALYZE_EXTENSIONS_DIR = $${PWD}/applications/mne_analyze/extensions
}

# lib
MNE_LIBRARY_DIR = $$MNE_LIBRARY_DIR
isEmpty( MNE_LIBRARY_DIR ) {
    MNE_LIBRARY_DIR = $${PWD}/lib
}
contains(MNECPP_CONFIG, buildDeep) {
    CNTK_LIBRARY_DIR = $$CNTK_LIBRARY_DIR
    isEmpty( CNTK_LIBRARY_DIR ) {
        CNTK_LIBRARY_DIR = C:/local/cntk/cntk
    }
}

# bin
MNE_BINARY_DIR = $$MNE_BINARY_DIR
isEmpty( MNE_BINARY_DIR ) {
    MNE_BINARY_DIR = $${PWD}/bin
}

# repository dir
ROOT_DIR = $${PWD}

# install
MNE_INSTALL_INCLUDE_DIR = $$MNE_INSTALL_INCLUDE_DIR
isEmpty( MNE_INSTALL_INCLUDE_DIR ) {
    MNE_INSTALL_INCLUDE_DIR = $${PWD}/include
}

############################################## GLOBAL FUNCTIONS ###############################################
#Define minQtVersion Test
defineTest(minQtVersion) {
    maj = $$1
    min = $$2
    patch = $$3
    isEqual(QT_MAJOR_VERSION, $$maj) {
        isEqual(QT_MINOR_VERSION, $$min) {
            isEqual(QT_PATCH_VERSION, $$patch) {
                return(true)
            }
            greaterThan(QT_PATCH_VERSION, $$patch) {
                return(true)
            }
        }
        greaterThan(QT_MINOR_VERSION, $$min) {
            return(true)
        }
    }
    greaterThan(QT_MAJOR_VERSION, $$maj) {
        return(true)
    }
    return(false)
}

defineReplace(macDeployArgs) {
    target = $$1
    target_ext = $$2
    mne_binary_dir = $$3
    mne_library_dir = $$4
    extra_args = $$5

    isEmpty($${target_ext}) {
        target_custom_ext = .app
    } else {
        target_custom_ext = $${target_ext}
    }

    deploy_cmd = macdeployqt

    deploy_target = $$shell_quote($$shell_path($${mne_binary_dir}/$${target}$${target_custom_ext}))

    deploy_libs_to_copy = -libpath=$${mne_library_dir}
    !isEmpty(extra_args) {
      deploy_libs_to_copy += $${extra_args}
    }
    return($$deploy_cmd $$deploy_target $$deploy_libs_to_copy)
}

defineReplace(winDeployArgs) {
    target = $$1
    target_ext = $$2
    mne_binary_dir = $$3
    libs_to_deploy = $$4
    extra_args = $$5

    # Deploy qt dependecies for main application
    isEmpty($${target_ext}) {
        target_custom_ext = .exe
    } else {
        target_custom_ext = $${target_ext}
    }

    deploy_cmd = windeployqt

    deploy_target = $$shell_quote($$shell_path($${mne_binary_dir}/$${target}$${target_custom_ext}))

    final_deploy_command += $$deploy_cmd $$deploy_target $$extra_args $$escape_expand(\\n\\t)

    # Parse libs from libs_to_deploy, copy them to the bin folder and deploy qt dependecies for each of them
    for(FILE, libs_to_deploy) {
        FILE ~= s,-l,,g
        FILE = $${FILE}.dll
        TRGTDIR = $$shell_quote($$shell_path($${MNE_BINARY_DIR}))
        FILEPATH= $$shell_quote($$shell_path($${MNE_LIBRARY_DIR}/$${FILE}))

        exists($${FILEPATH}) {
            # Copy library
            final_deploy_command += $${QMAKE_COPY} $$quote($${FILEPATH}) $$quote($${TRGTDIR}) $$escape_expand(\\n\\t)

            # Deploy dependencies for the library
            deploy_target = $$shell_quote($$shell_path($${TRGTDIR}/$${FILE}))
            final_deploy_command += windeployqt $${deploy_target} $$extra_args $$escape_expand(\\n\\t)

            #warning(Deploying $${FILEPATH} to $${TRGTDIR})
            #warning($${deploy_target})
        }
    }

    return( $${final_deploy_command} )
}

############################################### GLOBAL DEFINES ################################################

MNE_CPP_VERSION = 1.0.0
MNE_LIB_VERSION = 1

QMAKE_TARGET_PRODUCT = mne-cpp
QMAKE_TARGET_DESCRIPTION = MNE Qt 5 based C++ library.
QMAKE_TARGET_COPYRIGHT = Copyright (C) 2018 Authors of mne-cpp. All rights reserved.

########################################### PROJECT CONFIGURATION #############################################

## To build only the minimal version, i.e, for mne_rt_server run: qmake MNECPP_CONFIG+=minimalVersion
## To set CodeCov coverage compiler flag run: qmake MNECPP_CONFIG+=withCodeCov
## To disable tests run: qmake MNECPP_CONFIG+=noTests
## To disable examples run: qmake MNECPP_CONFIG+=noExamples
## To disable applications run: qmake MNECPP_CONFIG+=noApplications
## To build basic MNE Scan version run: qmake MNECPP_CONFIG+=buildBasicMneScanVersion
## To build MNE-CPP libraries as static libs: qmake MNECPP_CONFIG+=static
## To build MNE-CPP Deep library based CNTK: qmake MNECPP_CONFIG+=buildDeep

#Build minimalVersion for qt versions < 5.10.0
!minQtVersion(5, 10, 0) {
    message("Building minimal version due to Qt version $${QT_VERSION}.")
    MNECPP_CONFIG += minimalVersion
}

########################################### DIRECTORY DEFINITIONS #############################################

# Eigen
EIGEN_INCLUDE_DIR = $$EIGEN_INCLUDE_DIR
isEmpty(EIGEN_INCLUDE_DIR) {
    EIGEN_INCLUDE_DIR = $${PWD}/include/3rdParty/eigen3
}

#CNTK
CNTK_INCLUDE_DIR = $$CNTK_INCLUDE_DIR
isEmpty( CNTK_INCLUDE_DIR ) {
    # Check CNTK Path options
    exists($$(CNTKPATH)/cntk/Include/Eval.h) {
        CNTK_TEST_DIR = $$(CNTKPATH)/cntk
    }
    exists($$(CNTKPATH)/Include/Eval.h) {
        CNTK_TEST_DIR = $$(CNTKPATH)
    }
    exists($$(MYCNTKPATH)/cntk/Include/Eval.h) {
        CNTK_TEST_DIR = $$(MYCNTKPATH)/cntk
    }
    exists($$(MYCNTKPATH)/Include/Eval.h) {
        CNTK_TEST_DIR = $$(MYCNTKPATH)
    }
    # Set CNTK path variables
    !isEmpty( CNTK_TEST_DIR ) {
        CNTK_INCLUDE_DIR = $${CNTK_TEST_DIR}/Include
        CNTK_LIBRARY_DIR = $${CNTK_TEST_DIR}/cntk
    }
}

# include
MNE_INCLUDE_DIR = $$MNE_INCLUDE_DIR
isEmpty( MNE_INCLUDE_DIR ) {
    MNE_INCLUDE_DIR = $${PWD}/libraries
}
MNE_SCAN_INCLUDE_DIR = $$MNE_SCAN_INCLUDE_DIR
isEmpty( MNE_SCAN_INCLUDE_DIR ) {
    MNE_SCAN_INCLUDE_DIR = $${PWD}/applications/mne_scan/libs
}
MNE_ANALYZE_INCLUDE_DIR = $$MNE_ANALYZE_INCLUDE_DIR
isEmpty( MNE_ANALYZE_INCLUDE_DIR ) {
    MNE_ANALYZE_INCLUDE_DIR = $${PWD}/applications/mne_analyze/libs
}
MNE_ANALYZE_EXTENSIONS_DIR = $$MNE_ANALYZE_EXTENSIONS_DIR
isEmpty( MNE_ANALYZE_EXTENSIONS_DIR ) {
    MNE_ANALYZE_EXTENSIONS_DIR = $${PWD}/applications/mne_analyze/extensions
}

# lib
MNE_LIBRARY_DIR = $$MNE_LIBRARY_DIR
isEmpty( MNE_LIBRARY_DIR ) {
    MNE_LIBRARY_DIR = $${PWD}/lib
}
contains(MNECPP_CONFIG, buildDeep) {
    CNTK_LIBRARY_DIR = $$CNTK_LIBRARY_DIR
    isEmpty( CNTK_LIBRARY_DIR ) {
        CNTK_LIBRARY_DIR = C:/local/cntk/cntk
    }
}

# bin
MNE_BINARY_DIR = $$MNE_BINARY_DIR
isEmpty( MNE_BINARY_DIR ) {
    MNE_BINARY_DIR = $${PWD}/bin
}

# repository dir
ROOT_DIR = $${PWD}

# install
MNE_INSTALL_INCLUDE_DIR = $$MNE_INSTALL_INCLUDE_DIR
isEmpty( MNE_INSTALL_INCLUDE_DIR ) {
    MNE_INSTALL_INCLUDE_DIR = $${PWD}/include
}


add fixnavi target for convenience

add fixnavi target for convenience

QDOC_BIN = $$targetPath($$[QT_INSTALL_BINS]/qdoc3)
HELPGENERATOR = $$targetPath($$[QT_INSTALL_BINS]/qhelpgenerator)

equals(QMAKE_DIR_SEP, /) {   # unix, mingw+msys
    QDOC = SRCDIR=$$PWD OUTDIR=$$OUT_PWD/doc/html $$QDOC_BIN
} else:win32-g++* {   # just mingw
    # The lack of spaces in front of the && is necessary!
    QDOC = set SRCDIR=$$PWD&& set OUTDIR=$$OUT_PWD/doc/html&& $$QDOC_BIN
} else {   # nmake
    QDOC = set SRCDIR=$$PWD $$escape_expand(\\n\\t) \
           set OUTDIR=$$OUT_PWD/doc/html $$escape_expand(\\n\\t) \
           $$QDOC_BIN
}

QHP_FILE = $$OUT_PWD/doc/html/qtcreator.qhp
QCH_FILE = $$IDE_DOC_PATH/qtcreator.qch

HELP_DEP_FILES = $$PWD/qtcreator.qdoc \
                 $$PWD/addressbook-sdk.qdoc \
                 $$PWD/qt-defines.qdocconf \
                 $$PWD/qt-html-templates.qdocconf \
                 $$PWD/qtcreator.qdocconf

html_docs.commands = $$QDOC -creator $$PWD/qtcreator.qdocconf
html_docs.depends += $$HELP_DEP_FILES
html_docs.files = $$QHP_FILE

html_docs_online.commands = $$QDOC -online $$PWD/qtcreator.qdocconf
html_docs_online.depends += $$HELP_DEP_FILES

qch_docs.commands = $$HELPGENERATOR -o \"$$QCH_FILE\" $$QHP_FILE
qch_docs.depends += html_docs
qch_docs.files = $$QCH_FILE

unix:!macx {
    qch_docs.path = /share/doc/qtcreator
    qch_docs.CONFIG += no_check_exist
    INSTALLS += qch_docs
}

docs_online.depends = html_docs_online
docs.depends = qch_docs
QMAKE_EXTRA_TARGETS += html_docs html_docs_online qch_docs docs docs_online

OTHER_FILES = $$HELP_DEP_FILES \
              $$PWD/api/qtcreator-api.qdoc \
              $$PWD/api/qtcreator-api.qdocconf

fixnavi.commands = \
    cd $$targetPath($$PWD) && \
    perl fixnavi.pl -Dqcmanual -Dqtquick \
        qtcreator.qdoc maemodev.qdoc symbiandev.qdoc
QMAKE_EXTRA_TARGETS += fixnavi


Mac did not copy Resources to the right place...

   macx:ICON = icon.icns
windows:RC_FILE = icon.rc

HELP_PATH = $${PWD}/../Docs/help
RESOURCES_PATH = $${PWD}/../Resources

win32 {
    RESOURCES_PATH_DEST = $${OUT_PWD}/../Resources/

    RESOURCES_PATH ~= s,/,\\,g
    RESOURCES_PATH_DEST ~= s,/,\\,g

    copyres.commands  += $$quote(cmd /c xcopy /S /I /Y $${RESOURCES_PATH} $${RESOURCES_PATH_DEST})
}

macx {
    RESOURCES_PATH_DEST = $${OUT_PWD}/../Resources/

    copyres.commands += $(MKDIR) $$RESOURCES_PATH_DEST ;
    copyres.commands += cp -R $$RESOURCES_PATH/* $$RESOURCES_PATH_DEST ;
}

linux {
    RESOURCES_PATH_DEST = $${OUT_PWD}/../Resources/

    copyres.commands += $(MKDIR) $$RESOURCES_PATH_DEST ;
    copyres.commands += cp -R $$RESOURCES_PATH/* $$RESOURCES_PATH_DEST ;
}

! equals(PWD, $${OUT_PWD}) {
    QMAKE_EXTRA_TARGETS += copyres
    POST_TARGETDEPS     += copyres
}

INCLUDEPATH += $$PWD/

HEADERS += \
    analysis/analysisform.h \
    analysis/analysisqmldefines.h \
    analysis/analysisqmlform.h \
    analysis/boundqmlitem.h \
    analysis/options/availablefields.h \
    analysis/options/bound.h \
    analysis/options/option.h \
    analysis/options/optionboolean.h \
    analysis/options/optioncomputedcolumn.h \
    analysis/options/optiondoublearray.h \
    analysis/options/optioni.h \
    analysis/options/optioninteger.h \
    analysis/options/optionintegerarray.h \
    analysis/options/optionlist.h \
    analysis/options/optionnumber.h \
    analysis/options/options.h \
    analysis/options/optionstable.h \
    analysis/options/optionstring.h \
    analysis/options/optionterm.h \
    analysis/options/optionterms.h \
    analysis/options/optionvariable.h \
    analysis/options/optionvariablei.h \
    analysis/options/optionvariables.h \
    analysis/options/optionvariablesgroups.h \
    analysis/options/term.h \
    analysis/options/terms.h \
    analysis/analyses.h \
    analysis/analysis.h \
    analysis/analysisloader.h \
    data/exporters/dataexporter.h \
    data/exporters/exporter.h \
    data/exporters/jaspexporter.h \
    data/exporters/resultexporter.h \
    data/importers/ods/odsimportcolumn.h \
    data/importers/ods/odsimportdataset.h \
    data/importers/ods/odssheetcell.h \
    data/importers/ods/odstypes.h \
    data/importers/ods/odsxmlcontentshandler.h \
    data/importers/ods/odsxmlhandler.h \
    data/importers/ods/odsxmlmanifesthandler.h \
    data/importers/spss/characterencodingrecord.h \
    data/importers/spss/cpconverter.h \
    data/importers/spss/datainforecord.h \
    data/importers/spss/datarecords.h \
    data/importers/spss/dictionaryterminationrecord.h \
    data/importers/spss/documentrecord.h \
    data/importers/spss/extnumbercasesrecord.h \
    data/importers/spss/fileheaderrecord.h \
    data/importers/spss/floatinforecord.h \
    data/importers/spss/integerinforecord.h \
    data/importers/spss/longvarnamesrecord.h \
    data/importers/spss/measures.h \
    data/importers/spss/miscinforecord.h \
    data/importers/spss/missingvaluechecker.h \
    data/importers/spss/numericconverter.h \
    data/importers/spss/readablerecord.h \
    data/importers/spss/spssformattype.h \
    data/importers/spss/spssimportcolumn.h \
    data/importers/spss/spssimportdataset.h \
    data/importers/spss/spssstream.h \
    data/importers/spss/stringutils.h \
    data/importers/spss/systemfileformat.h \
    data/importers/spss/valuelabelvarsrecord.h \
    data/importers/spss/vardisplayparamrecord.h \
    data/importers/spss/variablerecord.h \
    data/importers/spss/verylongstringrecord.h \
    data/importers/codepageconvert.h \
    data/importers/convertedstringcontainer.h \
    data/importers/csv.h \
    data/importers/csvimportcolumn.h \
    data/importers/csvimporter.h \
    data/importers/importcolumn.h \
    data/importers/importdataset.h \
    data/importers/importer.h \
    data/importers/importerutils.h \
    data/importers/jaspimporter.h \
    data/importers/odsimporter.h \
    data/importers/spssimporter.h \
    data/asyncloader.h \
    data/asyncloaderthread.h \
    data/columnsmodel.h \
    data/computedcolumn.h \
    data/computedcolumns.h \
    data/computedcolumnsmodel.h \
    data/datasetloader.h \
    data/datasetpackage.h \
    data/datasettablemodel.h \
    data/fileevent.h \
    analysis/options/variableinfo.h \
    engine/enginerepresentation.h \
    engine/enginesync.h \
    engine/rscriptstore.h \
    gui/aboutdialog.h \
    gui/aboutdialogjsinterface.h \
    QML/datasetview.h \
    modules/analysisentry.h \
    modules/dynamicmodule.h \
    modules/dynamicmodules.h \
    modules/ribbonentry.h \
    modules/ribbonmodel.h \
    modules/ribbonbuttonmodel.h \
    modules/analysismenumodel.h \
    osf/onlinedataconnection.h \
    osf/onlinedatamanager.h \
    osf/onlinedatanode.h \
    osf/onlinedatanodeosf.h \
    osf/onlinenode.h \
    osf/onlineusernode.h \
    osf/onlineusernodeosf.h \
    osf/osfnam.h \
    utilities/appdirs.h \
    utilities/application.h \
    utilities/jsonutilities.h \
    utilities/qutils.h \
    utilities/resultsjsinterface.h \
    utilities/settings.h \
    utilities/simplecrypt.h \
    utilities/simplecryptkey.h \
    variablespage/labelfiltergenerator.h \
    variablespage/levelstablemodel.h \
    widgets/backstage/authwidget.h \
    widgets/backstage/backstagedatalibrary.h \
    widgets/backstage/backstagepage.h \
    widgets/backstage/breadcrumbs.h \
    widgets/backstage/datalibrarybreadcrumbsmodel.h \
    widgets/backstage/datalibrarylistmodel.h \
    widgets/backstage/elidelabel.h \
    widgets/backstage/fsbmcomputer.h \
    widgets/backstage/fsbmcurrent.h \
    widgets/backstage/fsbmexamples.h \
    widgets/backstage/fsbmodel.h \
    widgets/backstage/fsbmosf.h \
    widgets/backstage/fsbmrecent.h \
    widgets/backstage/fsbmrecentfolders.h \
    widgets/backstage/fsbrowser.h \
    widgets/backstage/fsentry.h \
    widgets/backstage/fsentrywidget.h \
    widgets/backstage/opensavewidget.h \
    widgets/backstage/verticalscrollarea.h \
    widgets/backstage/verticaltabbar.h \
    widgets/backstage/verticaltabwidget.h \
    widgets/anovamodelwidget.h \
    widgets/assignbutton.h \
    widgets/assignbuttonmenu.h \
    widgets/availablefieldslistview.h \
    widgets/backstage/backstagewidget.h \
    widgets/boundassignwidget.h \
    widgets/boundcheckbox.h \
    widgets/boundcombobox.h \
    widgets/boundgroupbox.h \
    widgets/boundlistview.h \
    widgets/boundmodel.h \
    widgets/boundpairstable.h \
    widgets/boundqmlcheckbox.h \
    widgets/boundqmlradiobuttons.h \
    widgets/boundqmltextinput.h \
    widgets/boundqmlcombobox.h \
    widgets/boundsingleitemview.h \
    widgets/boundtableview.h \
    widgets/boundtablewidget.h \
    widgets/boundtextbox.h \
    widgets/boundtextedit.h \
    widgets/button.h \
    widgets/customhoverdelegate.h \
    widgets/customwebenginepage.h \
    widgets/customwebengineview.h \
    widgets/draganddrop.h \
    widgets/droptarget.h \
    widgets/enhanceddroptarget.h \
    widgets/expanderbutton.h \
    widgets/groupbox.h \
    widgets/infopopup.h \
    widgets/itemmodelselectitem.h \
    widgets/itemmodelselectvariable.h \
    widgets/listmodelanovaassigned.h \
    widgets/listmodelpairsassigned.h \
    widgets/listmodeltermsassigned.h \
    widgets/listmodeltermsavailable.h \
    widgets/listview.h \
    gui/preferencesdialog.h \
    widgets/ribbonbutton.h \
    widgets/stealthbutton.h \
    widgets/subjectivepriorswidget.h \
    widgets/tabbar.h \
    widgets/tablemodel.h \
    widgets/tablemodelanovadesign.h \
    widgets/tablemodelanovamodel.h \
    widgets/tablemodelanovamodelnuisancefactors.h \
    widgets/tablemodelanovawithinsubjectcells.h \
    widgets/tablemodelcontrasts.h \
    widgets/tablemodelpairsassigned.h \
    widgets/tablemodelvariables.h \
    widgets/tablemodelvariablesassigned.h \
    widgets/tablemodelvariablesavailable.h \
    widgets/tablemodelvariableslevels.h \
    widgets/tablemodelvariablesoptions.h \
    widgets/tableview.h \
    widgets/tableviewmenueditor.h \
    widgets/tableviewmenueditordelegate.h \
    widgets/textmodellavaan.h \
    widgets/toolbutton.h \
    mainwindow.h \
    utilities/extractarchive.h \
    widgets/boundqmlfactorslist.h \
    widgets/listmodelfactors.h \
    widgets/listmodel.h \
    widgets/qmllistview.h \
    widgets/qmlitem.h \
    widgets/listmodelassignedinterface.h \
    widgets/listmodelavailableinterface.h \
    widgets/listmodeldraggable.h \
    widgets/qmllistviewdraggable.h \
    widgets/boundqmllistviewmeasurescells.h \
    widgets/boundqmllistviewpairs.h \
    widgets/boundqmllistviewdraggable.h \
    widgets/listmodelmeasurescellsassigned.h \
    widgets/qmllistviewtermsavailable.h \
    widgets/boundqmllistviewterms.h \
    widgets/boundqmllistviewanovamodels.h \
    widgets/boundqmlslider.h \
    widgets/boundqmltextarea.h \
    widgets/boundqmltableview.h \
    widgets/listmodelmultinomialchi2test.h  \
    data/filtermodel.h \
    widgets/backstage/backstagerecentfiles.h \
    widgets/backstage/recentfileslistmodel.h \
    widgets/backstage/fsbmdatalibrary.h \
    widgets/backstage/fsbmrecentfiles.h \
    widgets/backstage/backstagecurrentfile.h \
    widgets/backstage/currentfilelistmodel.h \
    widgets/backstage/fsbmcurrentfile.h \
    widgets/backstage/backstagecomputer.h \
    widgets/backstage/computerlistmodel.h \
    widgets/backstage/backstageosf.h \
    widgets/backstage/osflistmodel.h \
    widgets/backstage/osfbreadcrumbslistmodel.h \
    resultstesting/compareresults.h \
    resultstesting/resultscomparetable.h

SOURCES += \
    analysis/analysisform.cpp \
    analysis/analysisqmldefines.cpp \
    analysis/analysisqmlform.cpp \
    analysis/boundqmlitem.cpp \
    analysis/options/availablefields.cpp \
    analysis/options/option.cpp \
    analysis/options/optionboolean.cpp \
    analysis/options/optioncomputedcolumn.cpp \
    analysis/options/optiondoublearray.cpp \
    analysis/options/optioninteger.cpp \
    analysis/options/optionintegerarray.cpp \
    analysis/options/optionlist.cpp \
    analysis/options/optionnumber.cpp \
    analysis/options/options.cpp \
    analysis/options/optionstable.cpp \
    analysis/options/optionstring.cpp \
    analysis/options/optionterm.cpp \
    analysis/options/optionterms.cpp \
    analysis/options/optionvariable.cpp \
    analysis/options/optionvariables.cpp \
    analysis/options/optionvariablesgroups.cpp \
    analysis/options/term.cpp \
    analysis/options/terms.cpp \
    analysis/analyses.cpp \
    analysis/analysis.cpp \
    analysis/analysisloader.cpp \
    data/exporters/dataexporter.cpp \
    data/exporters/exporter.cpp \
    data/exporters/jaspexporter.cpp \
    data/exporters/resultexporter.cpp \
    data/importers/ods/odsimportcolumn.cpp \
    data/importers/ods/odsimportdataset.cpp \
    data/importers/ods/odssheetcell.cpp \
    data/importers/ods/odstypes.cpp \
    data/importers/ods/odsxmlcontentshandler.cpp \
    data/importers/ods/odsxmlhandler.cpp \
    data/importers/ods/odsxmlmanifesthandler.cpp \
    data/importers/spss/characterencodingrecord.cpp \
    data/importers/spss/datainforecord.cpp \
    data/importers/spss/datarecords.cpp \
    data/importers/spss/dictionaryterminationrecord.cpp \
    data/importers/spss/documentrecord.cpp \
    data/importers/spss/extnumbercasesrecord.cpp \
    data/importers/spss/fileheaderrecord.cpp \
    data/importers/spss/floatinforecord.cpp \
    data/importers/spss/integerinforecord.cpp \
    data/importers/spss/longvarnamesrecord.cpp \
    data/importers/spss/miscinforecord.cpp \
    data/importers/spss/missingvaluechecker.cpp \
    data/importers/spss/numericconvertor.cpp \
    data/importers/spss/readablerecord.cpp \
    data/importers/spss/spssimportcolumn.cpp \
    data/importers/spss/spssimportdataset.cpp \
    data/importers/spss/stringutils.cpp \
    data/importers/spss/valuelabelvarsrecord.cpp \
    data/importers/spss/vardisplayparamrecord.cpp \
    data/importers/spss/variablerecord.cpp \
    data/importers/spss/verylongstringrecord.cpp \
    data/importers/codepageconvert.cpp \
    data/importers/convertedstringcontainer.cpp \
    data/importers/csv.cpp \
    data/importers/csvimportcolumn.cpp \
    data/importers/csvimporter.cpp \
    data/importers/importcolumn.cpp \
    data/importers/importdataset.cpp \
    data/importers/importer.cpp \
    data/importers/jaspimporter.cpp \
    data/importers/odsimporter.cpp \
    data/importers/spssimporter.cpp \
    data/asyncloader.cpp \
    data/asyncloaderthread.cpp \
    data/columnsmodel.cpp \
    data/computedcolumn.cpp \
    data/computedcolumns.cpp \
    data/computedcolumnsmodel.cpp \
    data/datasetloader.cpp \
    data/datasetpackage.cpp \
    data/datasettablemodel.cpp \
    data/fileevent.cpp \
    engine/enginerepresentation.cpp \
    engine/enginesync.cpp \
    gui/aboutdialog.cpp \
    gui/aboutdialogjsinterface.cpp \
    QML/datasetview.cpp \
    modules/analysisentry.cpp \
    modules/dynamicmodule.cpp \
    modules/dynamicmodules.cpp \
    modules/ribbonentry.cpp \
    modules/ribbonmodel.cpp \
    modules/ribbonbuttonmodel.cpp \
    modules/analysismenumodel.cpp \
    osf/onlinedataconnection.cpp \
    osf/onlinedatamanager.cpp \
    osf/onlinedatanode.cpp \
    osf/onlinedatanodeosf.cpp \
    osf/onlinenode.cpp \
    osf/onlineusernode.cpp \
    osf/onlineusernodeosf.cpp \
    osf/osfnam.cpp \
    utilities/appdirs.cpp \
    utilities/application.cpp \
    utilities/jsonutilities.cpp \
    utilities/qutils.cpp \
    utilities/resultsjsinterface.cpp \
    utilities/settings.cpp \
    utilities/simplecrypt.cpp \
    variablespage/labelfiltergenerator.cpp \
    variablespage/levelstablemodel.cpp \
    widgets/backstage/authwidget.cpp \
    widgets/backstage/backstagedatalibrary.cpp \
    widgets/backstage/backstagepage.cpp \
    widgets/backstage/breadcrumbs.cpp \
    widgets/backstage/datalibrarybreadcrumbsmodel.cpp \
    widgets/backstage/datalibrarylistmodel.cpp \
    widgets/backstage/elidelabel.cpp \
    widgets/backstage/fsbmcomputer.cpp \
    widgets/backstage/fsbmcurrent.cpp \
    widgets/backstage/fsbmexamples.cpp \
    widgets/backstage/fsbmodel.cpp \
    widgets/backstage/fsbmosf.cpp \
    widgets/backstage/fsbmrecent.cpp \
    widgets/backstage/fsbmrecentfolders.cpp \
    widgets/backstage/fsbrowser.cpp \
    widgets/backstage/fsentrywidget.cpp \
    widgets/backstage/opensavewidget.cpp \
    widgets/backstage/verticalscrollarea.cpp \
    widgets/backstage/verticaltabbar.cpp \
    widgets/backstage/verticaltabwidget.cpp \
    widgets/anovamodelwidget.cpp \
    widgets/assignbutton.cpp \
    widgets/assignbuttonmenu.cpp \
    widgets/availablefieldslistview.cpp \
    widgets/backstage/backstagewidget.cpp \
    widgets/boundassignwidget.cpp \
    widgets/boundcheckbox.cpp \
    widgets/boundcombobox.cpp \
    widgets/boundgroupbox.cpp \
    widgets/boundlistview.cpp \
    widgets/boundpairstable.cpp \
    widgets/boundqmlcheckbox.cpp \
    widgets/boundqmlradiobuttons.cpp \
    widgets/boundqmltextinput.cpp \
    widgets/boundqmlcombobox.cpp \
    widgets/boundsingleitemview.cpp \
    widgets/boundtableview.cpp \
    widgets/boundtablewidget.cpp \
    widgets/boundtextbox.cpp \
    widgets/boundtextedit.cpp \
    widgets/button.cpp \
    widgets/customwebenginepage.cpp \
    widgets/customwebengineview.cpp \
    widgets/draganddrop.cpp \
    widgets/expanderbutton.cpp \
    widgets/infopopup.cpp \
    widgets/itemmodelselectitem.cpp \
    widgets/itemmodelselectvariable.cpp \
    widgets/listmodelanovaassigned.cpp \
    widgets/listmodelpairsassigned.cpp \
    widgets/listmodeltermsassigned.cpp \
    widgets/listmodeltermsavailable.cpp \
    widgets/listview.cpp \
    gui/preferencesdialog.cpp \
    widgets/ribbonbutton.cpp \
    widgets/stealthbutton.cpp \
    widgets/subjectivepriorswidget.cpp \
    widgets/tabbar.cpp \
    widgets/tablemodelanovadesign.cpp \
    widgets/tablemodelanovamodel.cpp \
    widgets/tablemodelanovamodelnuisancefactors.cpp \
    widgets/tablemodelanovawithinsubjectcells.cpp \
    widgets/tablemodelcontrasts.cpp \
    widgets/tablemodelpairsassigned.cpp \
    widgets/tablemodelvariables.cpp \
    widgets/tablemodelvariablesassigned.cpp \
    widgets/tablemodelvariablesavailable.cpp \
    widgets/tablemodelvariableslevels.cpp \
    widgets/tablemodelvariablesoptions.cpp \
    widgets/tableview.cpp \
    widgets/tableviewmenueditor.cpp \
    widgets/tableviewmenueditordelegate.cpp \
    widgets/textmodellavaan.cpp \
    widgets/toolbutton.cpp \
    main.cpp \
    mainwindow.cpp \
    utilities/extractarchive.cpp \
    widgets/boundqmlfactorslist.cpp \
    widgets/listmodelfactors.cpp \
    widgets/listmodel.cpp \
    widgets/qmllistview.cpp \
    widgets/qmlitem.cpp \
    widgets/listmodelavailableinterface.cpp \
    widgets/listmodelassignedinterface.cpp \
    widgets/listmodeldraggable.cpp \
    widgets/qmllistviewdraggable.cpp \
    widgets/boundqmllistviewmeasurescells.cpp \
    widgets/boundqmllistviewpairs.cpp \
    widgets/boundqmllistviewdraggable.cpp \
    widgets/listmodelmeasurescellsassigned.cpp \
    widgets/qmllistviewtermsavailable.cpp \
    widgets/boundqmllistviewterms.cpp \
    widgets/boundqmllistviewanovamodels.cpp \
    widgets/boundqmlslider.cpp \
    widgets/boundqmltextarea.cpp \
    widgets/boundqmltableview.cpp \
    widgets/listmodelmultinomialchi2test.cpp \
    data/filtermodel.cpp \
    widgets/backstage/backstagerecentfiles.cpp \
    widgets/backstage/recentfileslistmodel.cpp \
    widgets/backstage/fsbmdatalibrary.cpp \
    widgets/backstage/fsbmrecentfiles.cpp \
    widgets/backstage/backstagecurrentfile.cpp \
    widgets/backstage/currentfilelistmodel.cpp \
    widgets/backstage/fsbmcurrentfile.cpp \
    widgets/backstage/backstagecomputer.cpp \
    widgets/backstage/computerlistmodel.cpp \
    widgets/backstage/backstageosf.cpp \
    widgets/backstage/osflistmodel.cpp \
    widgets/backstage/osfbreadcrumbslistmodel.cpp \
    resultstesting/compareresults.cpp \
    resultstesting/resultscomparetable.cpp

FORMS += \
    gui/aboutdialog.ui \
    gui/preferencesdialog.ui \
    widgets/backstage/authwidget.ui \
    widgets/backstage/backstagecomputer.ui \
    widgets/backstage/backstagedatalibrary.ui \
    mainwindow.ui \
    widgets/anovamodelwidget.ui \
    widgets/backstage/backstageform.ui \
    widgets/boundassignwidget.ui \
    widgets/datasetbrowser.ui \
    widgets/subjectivepriorswidget.ui \
    widgets/variableswidget.ui

RESOURCES += \
    html/html.qrc \
    resources/icons.qrc \
    resources/resources.qrc \
    qml.qrc \
    widgets/backstage/backstage.qrc

   unix:OTHER_FILES += icon.icns
windows:OTHER_FILES += icon.rc

DISTFILES += \
    widgets/backstage/firsttabsstylesheet.qss \
    widgets/backstage/secondtabsstylesheet.qss \
    JASPControls/AssignButton.qml \
    JASPControls/AssignedVariablesList.qml \
    JASPControls/Button.qml \
    JASPControls/ButtonGroup.qml \
    JASPControls/CheckBox.qml \
    JASPControls/ComboBox.qml \
    JASPControls/ExpanderButton.qml \
    JASPControls/Form.qml \
    JASPControls/GridLayout.qml \
    JASPControls/GroupBox.qml \
    JASPControls/JASPControl.qml \
    JASPControls/JASPDataView.qml \
    JASPControls/Label.qml \
    JASPControls/PercentField.qml \
    JASPControls/RadioButton.qml \
    JASPControls/Switch.qml \
    JASPControls/TableView.qml \
    JASPControls/TextField.qml \
    JASPControls/VariablesForm.qml \
    JASPControls/VariablesList.qml \
    widgets/backstage/BackstageDataLibrary.qml \
    widgets/backstage/DataLibraryBreadCrumbs.qml \
    widgets/backstage/DataLibraryList.qml \
    JASPControls/AssignButton.qml \
    JASPControls/AssignedVariablesList.qml \
    JASPControls/Button.qml \
    JASPControls/ButtonGroup.qml \
    JASPControls/CheckBox.qml \
    JASPControls/ComboBox.qml \
    JASPControls/ExpanderButton.qml \
    JASPControls/Form.qml \
    JASPControls/GridLayout.qml \
    JASPControls/GroupBox.qml \
    JASPControls/JASPControl.qml \
    JASPControls/JASPDataView.qml \
    JASPControls/Label.qml \
    JASPControls/PercentField.qml \
    JASPControls/RadioButton.qml \
    JASPControls/Switch.qml \
    JASPControls/TableView.qml \
    JASPControls/TextField.qml \
    JASPControls/VariablesForm.qml \
    JASPControls/VariablesList.qml \
    modules/ModuleInstaller.qml \
    QMLTheme/Theme/JASPTheme.qml \
    components/JASP/Controls/tableviewcolumn.qmodel

   macx:ICON = icon.icns
windows:RC_FILE = icon.rc

HELP_PATH = $${PWD}/../Docs/help
RESOURCES_PATH = $${PWD}/../Resources

win32 {
    RESOURCES_PATH_DEST = $${OUT_PWD}/../Resources/

    RESOURCES_PATH ~= s,/,\\,g
    RESOURCES_PATH_DEST ~= s,/,\\,g

    copyres.commands  += $$quote(cmd /c xcopy /S /I /Y $${RESOURCES_PATH} $${RESOURCES_PATH_DEST})
}

macx {
    RESOURCES_PATH_DEST = $${OUT_PWD}/../../Resources/

    copyres.commands += $(MKDIR) $$RESOURCES_PATH_DEST ;
    copyres.commands += cp -R $$RESOURCES_PATH/* $$RESOURCES_PATH_DEST ;
}

linux {
    RESOURCES_PATH_DEST = $${OUT_PWD}/../Resources/

    copyres.commands += $(MKDIR) $$RESOURCES_PATH_DEST ;
    copyres.commands += cp -R $$RESOURCES_PATH/* $$RESOURCES_PATH_DEST ;
}

! equals(PWD, $${OUT_PWD}) {
    QMAKE_EXTRA_TARGETS += copyres
    POST_TARGETDEPS     += copyres
}

INCLUDEPATH += $$PWD/

HEADERS += \
    analysis/analysisform.h \
    analysis/analysisqmldefines.h \
    analysis/analysisqmlform.h \
    analysis/boundqmlitem.h \
    analysis/options/availablefields.h \
    analysis/options/bound.h \
    analysis/options/option.h \
    analysis/options/optionboolean.h \
    analysis/options/optioncomputedcolumn.h \
    analysis/options/optiondoublearray.h \
    analysis/options/optioni.h \
    analysis/options/optioninteger.h \
    analysis/options/optionintegerarray.h \
    analysis/options/optionlist.h \
    analysis/options/optionnumber.h \
    analysis/options/options.h \
    analysis/options/optionstable.h \
    analysis/options/optionstring.h \
    analysis/options/optionterm.h \
    analysis/options/optionterms.h \
    analysis/options/optionvariable.h \
    analysis/options/optionvariablei.h \
    analysis/options/optionvariables.h \
    analysis/options/optionvariablesgroups.h \
    analysis/options/term.h \
    analysis/options/terms.h \
    analysis/analyses.h \
    analysis/analysis.h \
    analysis/analysisloader.h \
    data/exporters/dataexporter.h \
    data/exporters/exporter.h \
    data/exporters/jaspexporter.h \
    data/exporters/resultexporter.h \
    data/importers/ods/odsimportcolumn.h \
    data/importers/ods/odsimportdataset.h \
    data/importers/ods/odssheetcell.h \
    data/importers/ods/odstypes.h \
    data/importers/ods/odsxmlcontentshandler.h \
    data/importers/ods/odsxmlhandler.h \
    data/importers/ods/odsxmlmanifesthandler.h \
    data/importers/spss/characterencodingrecord.h \
    data/importers/spss/cpconverter.h \
    data/importers/spss/datainforecord.h \
    data/importers/spss/datarecords.h \
    data/importers/spss/dictionaryterminationrecord.h \
    data/importers/spss/documentrecord.h \
    data/importers/spss/extnumbercasesrecord.h \
    data/importers/spss/fileheaderrecord.h \
    data/importers/spss/floatinforecord.h \
    data/importers/spss/integerinforecord.h \
    data/importers/spss/longvarnamesrecord.h \
    data/importers/spss/measures.h \
    data/importers/spss/miscinforecord.h \
    data/importers/spss/missingvaluechecker.h \
    data/importers/spss/numericconverter.h \
    data/importers/spss/readablerecord.h \
    data/importers/spss/spssformattype.h \
    data/importers/spss/spssimportcolumn.h \
    data/importers/spss/spssimportdataset.h \
    data/importers/spss/spssstream.h \
    data/importers/spss/stringutils.h \
    data/importers/spss/systemfileformat.h \
    data/importers/spss/valuelabelvarsrecord.h \
    data/importers/spss/vardisplayparamrecord.h \
    data/importers/spss/variablerecord.h \
    data/importers/spss/verylongstringrecord.h \
    data/importers/codepageconvert.h \
    data/importers/convertedstringcontainer.h \
    data/importers/csv.h \
    data/importers/csvimportcolumn.h \
    data/importers/csvimporter.h \
    data/importers/importcolumn.h \
    data/importers/importdataset.h \
    data/importers/importer.h \
    data/importers/importerutils.h \
    data/importers/jaspimporter.h \
    data/importers/odsimporter.h \
    data/importers/spssimporter.h \
    data/asyncloader.h \
    data/asyncloaderthread.h \
    data/columnsmodel.h \
    data/computedcolumn.h \
    data/computedcolumns.h \
    data/computedcolumnsmodel.h \
    data/datasetloader.h \
    data/datasetpackage.h \
    data/datasettablemodel.h \
    data/fileevent.h \
    analysis/options/variableinfo.h \
    engine/enginerepresentation.h \
    engine/enginesync.h \
    engine/rscriptstore.h \
    gui/aboutdialog.h \
    gui/aboutdialogjsinterface.h \
    QML/datasetview.h \
    modules/analysisentry.h \
    modules/dynamicmodule.h \
    modules/dynamicmodules.h \
    modules/ribbonentry.h \
    modules/ribbonmodel.h \
    modules/ribbonbuttonmodel.h \
    modules/analysismenumodel.h \
    osf/onlinedataconnection.h \
    osf/onlinedatamanager.h \
    osf/onlinedatanode.h \
    osf/onlinedatanodeosf.h \
    osf/onlinenode.h \
    osf/onlineusernode.h \
    osf/onlineusernodeosf.h \
    osf/osfnam.h \
    utilities/appdirs.h \
    utilities/application.h \
    utilities/jsonutilities.h \
    utilities/qutils.h \
    utilities/resultsjsinterface.h \
    utilities/settings.h \
    utilities/simplecrypt.h \
    utilities/simplecryptkey.h \
    variablespage/labelfiltergenerator.h \
    variablespage/levelstablemodel.h \
    widgets/backstage/authwidget.h \
    widgets/backstage/backstagedatalibrary.h \
    widgets/backstage/backstagepage.h \
    widgets/backstage/breadcrumbs.h \
    widgets/backstage/datalibrarybreadcrumbsmodel.h \
    widgets/backstage/datalibrarylistmodel.h \
    widgets/backstage/elidelabel.h \
    widgets/backstage/fsbmcomputer.h \
    widgets/backstage/fsbmcurrent.h \
    widgets/backstage/fsbmexamples.h \
    widgets/backstage/fsbmodel.h \
    widgets/backstage/fsbmosf.h \
    widgets/backstage/fsbmrecent.h \
    widgets/backstage/fsbmrecentfolders.h \
    widgets/backstage/fsbrowser.h \
    widgets/backstage/fsentry.h \
    widgets/backstage/fsentrywidget.h \
    widgets/backstage/opensavewidget.h \
    widgets/backstage/verticalscrollarea.h \
    widgets/backstage/verticaltabbar.h \
    widgets/backstage/verticaltabwidget.h \
    widgets/anovamodelwidget.h \
    widgets/assignbutton.h \
    widgets/assignbuttonmenu.h \
    widgets/availablefieldslistview.h \
    widgets/backstage/backstagewidget.h \
    widgets/boundassignwidget.h \
    widgets/boundcheckbox.h \
    widgets/boundcombobox.h \
    widgets/boundgroupbox.h \
    widgets/boundlistview.h \
    widgets/boundmodel.h \
    widgets/boundpairstable.h \
    widgets/boundqmlcheckbox.h \
    widgets/boundqmlradiobuttons.h \
    widgets/boundqmltextinput.h \
    widgets/boundqmlcombobox.h \
    widgets/boundsingleitemview.h \
    widgets/boundtableview.h \
    widgets/boundtablewidget.h \
    widgets/boundtextbox.h \
    widgets/boundtextedit.h \
    widgets/button.h \
    widgets/customhoverdelegate.h \
    widgets/customwebenginepage.h \
    widgets/customwebengineview.h \
    widgets/draganddrop.h \
    widgets/droptarget.h \
    widgets/enhanceddroptarget.h \
    widgets/expanderbutton.h \
    widgets/groupbox.h \
    widgets/infopopup.h \
    widgets/itemmodelselectitem.h \
    widgets/itemmodelselectvariable.h \
    widgets/listmodelanovaassigned.h \
    widgets/listmodelpairsassigned.h \
    widgets/listmodeltermsassigned.h \
    widgets/listmodeltermsavailable.h \
    widgets/listview.h \
    gui/preferencesdialog.h \
    widgets/ribbonbutton.h \
    widgets/stealthbutton.h \
    widgets/subjectivepriorswidget.h \
    widgets/tabbar.h \
    widgets/tablemodel.h \
    widgets/tablemodelanovadesign.h \
    widgets/tablemodelanovamodel.h \
    widgets/tablemodelanovamodelnuisancefactors.h \
    widgets/tablemodelanovawithinsubjectcells.h \
    widgets/tablemodelcontrasts.h \
    widgets/tablemodelpairsassigned.h \
    widgets/tablemodelvariables.h \
    widgets/tablemodelvariablesassigned.h \
    widgets/tablemodelvariablesavailable.h \
    widgets/tablemodelvariableslevels.h \
    widgets/tablemodelvariablesoptions.h \
    widgets/tableview.h \
    widgets/tableviewmenueditor.h \
    widgets/tableviewmenueditordelegate.h \
    widgets/textmodellavaan.h \
    widgets/toolbutton.h \
    mainwindow.h \
    utilities/extractarchive.h \
    widgets/boundqmlfactorslist.h \
    widgets/listmodelfactors.h \
    widgets/listmodel.h \
    widgets/qmllistview.h \
    widgets/qmlitem.h \
    widgets/listmodelassignedinterface.h \
    widgets/listmodelavailableinterface.h \
    widgets/listmodeldraggable.h \
    widgets/qmllistviewdraggable.h \
    widgets/boundqmllistviewmeasurescells.h \
    widgets/boundqmllistviewpairs.h \
    widgets/boundqmllistviewdraggable.h \
    widgets/listmodelmeasurescellsassigned.h \
    widgets/qmllistviewtermsavailable.h \
    widgets/boundqmllistviewterms.h \
    widgets/boundqmllistviewanovamodels.h \
    widgets/boundqmlslider.h \
    widgets/boundqmltextarea.h \
    widgets/boundqmltableview.h \
    widgets/listmodelmultinomialchi2test.h  \
    data/filtermodel.h \
    widgets/backstage/backstagerecentfiles.h \
    widgets/backstage/recentfileslistmodel.h \
    widgets/backstage/fsbmdatalibrary.h \
    widgets/backstage/fsbmrecentfiles.h \
    widgets/backstage/backstagecurrentfile.h \
    widgets/backstage/currentfilelistmodel.h \
    widgets/backstage/fsbmcurrentfile.h \
    widgets/backstage/backstagecomputer.h \
    widgets/backstage/computerlistmodel.h \
    widgets/backstage/backstageosf.h \
    widgets/backstage/osflistmodel.h \
    widgets/backstage/osfbreadcrumbslistmodel.h \
    resultstesting/compareresults.h \
    resultstesting/resultscomparetable.h

SOURCES += \
    analysis/analysisform.cpp \
    analysis/analysisqmldefines.cpp \
    analysis/analysisqmlform.cpp \
    analysis/boundqmlitem.cpp \
    analysis/options/availablefields.cpp \
    analysis/options/option.cpp \
    analysis/options/optionboolean.cpp \
    analysis/options/optioncomputedcolumn.cpp \
    analysis/options/optiondoublearray.cpp \
    analysis/options/optioninteger.cpp \
    analysis/options/optionintegerarray.cpp \
    analysis/options/optionlist.cpp \
    analysis/options/optionnumber.cpp \
    analysis/options/options.cpp \
    analysis/options/optionstable.cpp \
    analysis/options/optionstring.cpp \
    analysis/options/optionterm.cpp \
    analysis/options/optionterms.cpp \
    analysis/options/optionvariable.cpp \
    analysis/options/optionvariables.cpp \
    analysis/options/optionvariablesgroups.cpp \
    analysis/options/term.cpp \
    analysis/options/terms.cpp \
    analysis/analyses.cpp \
    analysis/analysis.cpp \
    analysis/analysisloader.cpp \
    data/exporters/dataexporter.cpp \
    data/exporters/exporter.cpp \
    data/exporters/jaspexporter.cpp \
    data/exporters/resultexporter.cpp \
    data/importers/ods/odsimportcolumn.cpp \
    data/importers/ods/odsimportdataset.cpp \
    data/importers/ods/odssheetcell.cpp \
    data/importers/ods/odstypes.cpp \
    data/importers/ods/odsxmlcontentshandler.cpp \
    data/importers/ods/odsxmlhandler.cpp \
    data/importers/ods/odsxmlmanifesthandler.cpp \
    data/importers/spss/characterencodingrecord.cpp \
    data/importers/spss/datainforecord.cpp \
    data/importers/spss/datarecords.cpp \
    data/importers/spss/dictionaryterminationrecord.cpp \
    data/importers/spss/documentrecord.cpp \
    data/importers/spss/extnumbercasesrecord.cpp \
    data/importers/spss/fileheaderrecord.cpp \
    data/importers/spss/floatinforecord.cpp \
    data/importers/spss/integerinforecord.cpp \
    data/importers/spss/longvarnamesrecord.cpp \
    data/importers/spss/miscinforecord.cpp \
    data/importers/spss/missingvaluechecker.cpp \
    data/importers/spss/numericconvertor.cpp \
    data/importers/spss/readablerecord.cpp \
    data/importers/spss/spssimportcolumn.cpp \
    data/importers/spss/spssimportdataset.cpp \
    data/importers/spss/stringutils.cpp \
    data/importers/spss/valuelabelvarsrecord.cpp \
    data/importers/spss/vardisplayparamrecord.cpp \
    data/importers/spss/variablerecord.cpp \
    data/importers/spss/verylongstringrecord.cpp \
    data/importers/codepageconvert.cpp \
    data/importers/convertedstringcontainer.cpp \
    data/importers/csv.cpp \
    data/importers/csvimportcolumn.cpp \
    data/importers/csvimporter.cpp \
    data/importers/importcolumn.cpp \
    data/importers/importdataset.cpp \
    data/importers/importer.cpp \
    data/importers/jaspimporter.cpp \
    data/importers/odsimporter.cpp \
    data/importers/spssimporter.cpp \
    data/asyncloader.cpp \
    data/asyncloaderthread.cpp \
    data/columnsmodel.cpp \
    data/computedcolumn.cpp \
    data/computedcolumns.cpp \
    data/computedcolumnsmodel.cpp \
    data/datasetloader.cpp \
    data/datasetpackage.cpp \
    data/datasettablemodel.cpp \
    data/fileevent.cpp \
    engine/enginerepresentation.cpp \
    engine/enginesync.cpp \
    gui/aboutdialog.cpp \
    gui/aboutdialogjsinterface.cpp \
    QML/datasetview.cpp \
    modules/analysisentry.cpp \
    modules/dynamicmodule.cpp \
    modules/dynamicmodules.cpp \
    modules/ribbonentry.cpp \
    modules/ribbonmodel.cpp \
    modules/ribbonbuttonmodel.cpp \
    modules/analysismenumodel.cpp \
    osf/onlinedataconnection.cpp \
    osf/onlinedatamanager.cpp \
    osf/onlinedatanode.cpp \
    osf/onlinedatanodeosf.cpp \
    osf/onlinenode.cpp \
    osf/onlineusernode.cpp \
    osf/onlineusernodeosf.cpp \
    osf/osfnam.cpp \
    utilities/appdirs.cpp \
    utilities/application.cpp \
    utilities/jsonutilities.cpp \
    utilities/qutils.cpp \
    utilities/resultsjsinterface.cpp \
    utilities/settings.cpp \
    utilities/simplecrypt.cpp \
    variablespage/labelfiltergenerator.cpp \
    variablespage/levelstablemodel.cpp \
    widgets/backstage/authwidget.cpp \
    widgets/backstage/backstagedatalibrary.cpp \
    widgets/backstage/backstagepage.cpp \
    widgets/backstage/breadcrumbs.cpp \
    widgets/backstage/datalibrarybreadcrumbsmodel.cpp \
    widgets/backstage/datalibrarylistmodel.cpp \
    widgets/backstage/elidelabel.cpp \
    widgets/backstage/fsbmcomputer.cpp \
    widgets/backstage/fsbmcurrent.cpp \
    widgets/backstage/fsbmexamples.cpp \
    widgets/backstage/fsbmodel.cpp \
    widgets/backstage/fsbmosf.cpp \
    widgets/backstage/fsbmrecent.cpp \
    widgets/backstage/fsbmrecentfolders.cpp \
    widgets/backstage/fsbrowser.cpp \
    widgets/backstage/fsentrywidget.cpp \
    widgets/backstage/opensavewidget.cpp \
    widgets/backstage/verticalscrollarea.cpp \
    widgets/backstage/verticaltabbar.cpp \
    widgets/backstage/verticaltabwidget.cpp \
    widgets/anovamodelwidget.cpp \
    widgets/assignbutton.cpp \
    widgets/assignbuttonmenu.cpp \
    widgets/availablefieldslistview.cpp \
    widgets/backstage/backstagewidget.cpp \
    widgets/boundassignwidget.cpp \
    widgets/boundcheckbox.cpp \
    widgets/boundcombobox.cpp \
    widgets/boundgroupbox.cpp \
    widgets/boundlistview.cpp \
    widgets/boundpairstable.cpp \
    widgets/boundqmlcheckbox.cpp \
    widgets/boundqmlradiobuttons.cpp \
    widgets/boundqmltextinput.cpp \
    widgets/boundqmlcombobox.cpp \
    widgets/boundsingleitemview.cpp \
    widgets/boundtableview.cpp \
    widgets/boundtablewidget.cpp \
    widgets/boundtextbox.cpp \
    widgets/boundtextedit.cpp \
    widgets/button.cpp \
    widgets/customwebenginepage.cpp \
    widgets/customwebengineview.cpp \
    widgets/draganddrop.cpp \
    widgets/expanderbutton.cpp \
    widgets/infopopup.cpp \
    widgets/itemmodelselectitem.cpp \
    widgets/itemmodelselectvariable.cpp \
    widgets/listmodelanovaassigned.cpp \
    widgets/listmodelpairsassigned.cpp \
    widgets/listmodeltermsassigned.cpp \
    widgets/listmodeltermsavailable.cpp \
    widgets/listview.cpp \
    gui/preferencesdialog.cpp \
    widgets/ribbonbutton.cpp \
    widgets/stealthbutton.cpp \
    widgets/subjectivepriorswidget.cpp \
    widgets/tabbar.cpp \
    widgets/tablemodelanovadesign.cpp \
    widgets/tablemodelanovamodel.cpp \
    widgets/tablemodelanovamodelnuisancefactors.cpp \
    widgets/tablemodelanovawithinsubjectcells.cpp \
    widgets/tablemodelcontrasts.cpp \
    widgets/tablemodelpairsassigned.cpp \
    widgets/tablemodelvariables.cpp \
    widgets/tablemodelvariablesassigned.cpp \
    widgets/tablemodelvariablesavailable.cpp \
    widgets/tablemodelvariableslevels.cpp \
    widgets/tablemodelvariablesoptions.cpp \
    widgets/tableview.cpp \
    widgets/tableviewmenueditor.cpp \
    widgets/tableviewmenueditordelegate.cpp \
    widgets/textmodellavaan.cpp \
    widgets/toolbutton.cpp \
    main.cpp \
    mainwindow.cpp \
    utilities/extractarchive.cpp \
    widgets/boundqmlfactorslist.cpp \
    widgets/listmodelfactors.cpp \
    widgets/listmodel.cpp \
    widgets/qmllistview.cpp \
    widgets/qmlitem.cpp \
    widgets/listmodelavailableinterface.cpp \
    widgets/listmodelassignedinterface.cpp \
    widgets/listmodeldraggable.cpp \
    widgets/qmllistviewdraggable.cpp \
    widgets/boundqmllistviewmeasurescells.cpp \
    widgets/boundqmllistviewpairs.cpp \
    widgets/boundqmllistviewdraggable.cpp \
    widgets/listmodelmeasurescellsassigned.cpp \
    widgets/qmllistviewtermsavailable.cpp \
    widgets/boundqmllistviewterms.cpp \
    widgets/boundqmllistviewanovamodels.cpp \
    widgets/boundqmlslider.cpp \
    widgets/boundqmltextarea.cpp \
    widgets/boundqmltableview.cpp \
    widgets/listmodelmultinomialchi2test.cpp \
    data/filtermodel.cpp \
    widgets/backstage/backstagerecentfiles.cpp \
    widgets/backstage/recentfileslistmodel.cpp \
    widgets/backstage/fsbmdatalibrary.cpp \
    widgets/backstage/fsbmrecentfiles.cpp \
    widgets/backstage/backstagecurrentfile.cpp \
    widgets/backstage/currentfilelistmodel.cpp \
    widgets/backstage/fsbmcurrentfile.cpp \
    widgets/backstage/backstagecomputer.cpp \
    widgets/backstage/computerlistmodel.cpp \
    widgets/backstage/backstageosf.cpp \
    widgets/backstage/osflistmodel.cpp \
    widgets/backstage/osfbreadcrumbslistmodel.cpp \
    resultstesting/compareresults.cpp \
    resultstesting/resultscomparetable.cpp

FORMS += \
    gui/aboutdialog.ui \
    gui/preferencesdialog.ui \
    widgets/backstage/authwidget.ui \
    widgets/backstage/backstagecomputer.ui \
    widgets/backstage/backstagedatalibrary.ui \
    mainwindow.ui \
    widgets/anovamodelwidget.ui \
    widgets/backstage/backstageform.ui \
    widgets/boundassignwidget.ui \
    widgets/datasetbrowser.ui \
    widgets/subjectivepriorswidget.ui \
    widgets/variableswidget.ui

RESOURCES += \
    html/html.qrc \
    resources/icons.qrc \
    resources/resources.qrc \
    qml.qrc \
    widgets/backstage/backstage.qrc

   unix:OTHER_FILES += icon.icns
windows:OTHER_FILES += icon.rc

DISTFILES += \
    widgets/backstage/firsttabsstylesheet.qss \
    widgets/backstage/secondtabsstylesheet.qss \
    JASPControls/AssignButton.qml \
    JASPControls/AssignedVariablesList.qml \
    JASPControls/Button.qml \
    JASPControls/ButtonGroup.qml \
    JASPControls/CheckBox.qml \
    JASPControls/ComboBox.qml \
    JASPControls/ExpanderButton.qml \
    JASPControls/Form.qml \
    JASPControls/GridLayout.qml \
    JASPControls/GroupBox.qml \
    JASPControls/JASPControl.qml \
    JASPControls/JASPDataView.qml \
    JASPControls/Label.qml \
    JASPControls/PercentField.qml \
    JASPControls/RadioButton.qml \
    JASPControls/Switch.qml \
    JASPControls/TableView.qml \
    JASPControls/TextField.qml \
    JASPControls/VariablesForm.qml \
    JASPControls/VariablesList.qml \
    widgets/backstage/BackstageDataLibrary.qml \
    widgets/backstage/DataLibraryBreadCrumbs.qml \
    widgets/backstage/DataLibraryList.qml \
    JASPControls/AssignButton.qml \
    JASPControls/AssignedVariablesList.qml \
    JASPControls/Button.qml \
    JASPControls/ButtonGroup.qml \
    JASPControls/CheckBox.qml \
    JASPControls/ComboBox.qml \
    JASPControls/ExpanderButton.qml \
    JASPControls/Form.qml \
    JASPControls/GridLayout.qml \
    JASPControls/GroupBox.qml \
    JASPControls/JASPControl.qml \
    JASPControls/JASPDataView.qml \
    JASPControls/Label.qml \
    JASPControls/PercentField.qml \
    JASPControls/RadioButton.qml \
    JASPControls/Switch.qml \
    JASPControls/TableView.qml \
    JASPControls/TextField.qml \
    JASPControls/VariablesForm.qml \
    JASPControls/VariablesList.qml \
    modules/ModuleInstaller.qml \
    QMLTheme/Theme/JASPTheme.qml \
    components/JASP/Controls/tableviewcolumn.qmodel


Added the qmljs.g to OTHER_FILES.

Added the qmljs.g to OTHER_FILES.

OTHER_FILES += $$PWD/qmljs.g
##INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD

HEADERS += $$PWD/qmljsast_p.h \
           $$PWD/qmljsastfwd_p.h \
           $$PWD/qmljsastvisitor_p.h \
           $$PWD/qmljsengine_p.h \
           $$PWD/qmljsgrammar_p.h \
           $$PWD/qmljslexer_p.h \
           $$PWD/qmljsmemorypool_p.h \
           $$PWD/qmljsnodepool_p.h \
           $$PWD/qmljsparser_p.h \
           $$PWD/qmljsglobal_p.h

SOURCES += $$PWD/qmljsast.cpp \
           $$PWD/qmljsastvisitor.cpp \
           $$PWD/qmljsengine_p.cpp \
           $$PWD/qmljsgrammar.cpp \
           $$PWD/qmljslexer.cpp \
           $$PWD/qmljsparser.cpp


More

################################################################################
#
# (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
#
# QGroundControl is licensed according to the terms in the file
# COPYING.md in the root of the source code directory.
#
################################################################################

# These are the Post Link steps which are specific to installer builds

installer {
    DEFINES += QGC_INSTALL_RELEASE
    MacBuild {
        VideoEnabled {
            # Install the gstreamer framework
            # This will:
            # Copy from the original distibution into DESTDIR/gstwork (if not already there)
            # Prune the framework, removing stuff we don't need
            # Relocate all dylibs so they can work under @executable_path/...
            # Copy the result into the app bundle
            # Make sure qgroundcontrol can find them
            QMAKE_POST_LINK += && $$BASEDIR/tools/prepare_gstreamer_framework.sh $${OUT_PWD}/gstwork/ $${TARGET}.app $${TARGET}
        }

        QMAKE_POST_LINK += && echo macdeployqt
        QMAKE_POST_LINK += && $$dirname(QMAKE_QMAKE)/macdeployqt $${TARGET}.app -appstore-compliant -verbose=1 -qmldir=$${BASEDIR}/src

        # macdeployqt is missing some relocations once in a while. "Fix" it:
        QMAKE_POST_LINK += && echo osxrelocator
        QMAKE_POST_LINK += && python $$BASEDIR/tools/osxrelocator.py $${TARGET}.app/Contents @rpath @executable_path/../Frameworks -r > /dev/null 2>&1

        # Create package
        QMAKE_POST_LINK += && echo hdiutil
        QMAKE_POST_LINK += && mkdir -p package
        QMAKE_POST_LINK += && mkdir -p staging
        QMAKE_POST_LINK += && rsync -a --delete $${TARGET}.app staging
        QMAKE_POST_LINK += && hdiutil create /tmp/tmp.dmg -ov -volname "$${TARGET}-$${MAC_VERSION}" -fs HFS+ -srcfolder "staging"
        QMAKE_POST_LINK += && hdiutil convert /tmp/tmp.dmg -format UDBZ -o package/$${TARGET}.dmg
        QMAKE_POST_LINK += && rm /tmp/tmp.dmg
    }
    WindowsBuild {
        QMAKE_POST_LINK += $$escape_expand(\\n) cd $$BASEDIR_WIN && $$quote("\"C:\\Program Files \(x86\)\\NSIS\\makensis.exe\"" $$(QGC_NSIS_INSTALLER_PARAMETERS) /DINSTALLER_ICON="\"$${QGC_INSTALLER_ICON}\"" /DHEADER_BITMAP="\"$${QGC_INSTALLER_HEADER_BITMAP}\"" /DAPPNAME="\"$${QGC_APP_NAME}\"" /DEXENAME="\"$${TARGET}\"" /DORGNAME="\"$${QGC_ORG_NAME}\"" /DDESTDIR=$${DESTDIR} /NOCD "\"/XOutFile $${DESTDIR_WIN}\\$${TARGET}-installer.exe\"" "$$BASEDIR_WIN\\deploy\\qgroundcontrol_installer.nsi")
        OTHER_FILES += deploy/qgroundcontrol_installer.nsi
    }
    LinuxBuild {
        #-- TODO: This uses hardcoded paths. It should use $${DESTDIR}
        QMAKE_POST_LINK += && mkdir -p release/package
        QMAKE_POST_LINK += && tar -cj --exclude='package' -f release/package/QGroundControl.tar.bz2 release --transform 's/release/qgroundcontrol/'
    }
    AndroidBuild {
        QMAKE_POST_LINK += && mkdir -p package
        QMAKE_POST_LINK += && make install INSTALL_ROOT=android-build/
        QMAKE_POST_LINK += && androiddeployqt --input android-libQGroundControl.so-deployment-settings.json --output android-build --deployment bundled --gradle --sign $${BASEDIR}/android/android_release.keystore dagar --storepass $$(ANDROID_STOREPASS)
        contains(QT_ARCH, arm) {
            QGC_APK_BITNESS = "32"
        } else:contains(QT_ARCH, arm64) {
            QGC_APK_BITNESS = "64"
        } else {
            QGC_APK_BITNESS = ""
        }
        QMAKE_POST_LINK += && cp android-build/build/outputs/apk/android-build-release-signed.apk package/QGroundControl$${QGC_APK_BITNESS}.apk
    }
}

################################################################################
#
# (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
#
# QGroundControl is licensed according to the terms in the file
# COPYING.md in the root of the source code directory.
#
################################################################################

# These are the Post Link steps which are specific to installer builds

installer {
    DEFINES += QGC_INSTALL_RELEASE

    MacBuild {
        QMAKE_POST_LINK += && mkdir -p staging
        QMAKE_POST_LINK += && rsync -a --delete $${TARGET}.app staging

        VideoEnabled {
            # Install the gstreamer framework
            # This will:
            # Copy from the original distibution into DESTDIR/gstwork (if not already there)
            # Prune the framework, removing stuff we don't need
            # Relocate all dylibs so they can work under @executable_path/...
            # Copy the result into the app bundle
            # Make sure qgroundcontrol can find them
            QMAKE_POST_LINK += && $$BASEDIR/tools/prepare_gstreamer_framework.sh $${OUT_PWD}/gstwork/ staging/$${TARGET}.app $${TARGET}
        }

        QMAKE_POST_LINK += && echo macdeployqt
        QMAKE_POST_LINK += && $$dirname(QMAKE_QMAKE)/macdeployqt staging/$${TARGET}.app -appstore-compliant -verbose=1 -qmldir=$${BASEDIR}/src

        # macdeployqt is missing some relocations once in a while. "Fix" it:
        QMAKE_POST_LINK += && echo osxrelocator
        QMAKE_POST_LINK += && python $$BASEDIR/tools/osxrelocator.py staging/$${TARGET}.app/Contents @rpath @executable_path/../Frameworks -r > /dev/null 2>&1

        # Create package
        QMAKE_POST_LINK += && echo hdiutil
        QMAKE_POST_LINK += && mkdir -p package
        QMAKE_POST_LINK += && hdiutil create /tmp/tmp.dmg -ov -volname "$${TARGET}-$${MAC_VERSION}" -fs HFS+ -srcfolder "staging"
        QMAKE_POST_LINK += && hdiutil convert /tmp/tmp.dmg -format UDBZ -o package/$${TARGET}.dmg
        QMAKE_POST_LINK += && rm /tmp/tmp.dmg
    }
    WindowsBuild {
        QMAKE_POST_LINK += $$escape_expand(\\n) cd $$BASEDIR_WIN && $$quote("\"C:\\Program Files \(x86\)\\NSIS\\makensis.exe\"" $$(QGC_NSIS_INSTALLER_PARAMETERS) /DINSTALLER_ICON="\"$${QGC_INSTALLER_ICON}\"" /DHEADER_BITMAP="\"$${QGC_INSTALLER_HEADER_BITMAP}\"" /DAPPNAME="\"$${QGC_APP_NAME}\"" /DEXENAME="\"$${TARGET}\"" /DORGNAME="\"$${QGC_ORG_NAME}\"" /DDESTDIR=$${DESTDIR} /NOCD "\"/XOutFile $${DESTDIR_WIN}\\$${TARGET}-installer.exe\"" "$$BASEDIR_WIN\\deploy\\qgroundcontrol_installer.nsi")
        OTHER_FILES += deploy/qgroundcontrol_installer.nsi
    }
    LinuxBuild {
        #-- TODO: This uses hardcoded paths. It should use $${DESTDIR}
        QMAKE_POST_LINK += && mkdir -p release/package
        QMAKE_POST_LINK += && tar -cj --exclude='package' -f release/package/QGroundControl.tar.bz2 release --transform 's/release/qgroundcontrol/'
    }
    AndroidBuild {
        QMAKE_POST_LINK += && mkdir -p package
        QMAKE_POST_LINK += && make install INSTALL_ROOT=android-build/
        QMAKE_POST_LINK += && androiddeployqt --input android-libQGroundControl.so-deployment-settings.json --output android-build --deployment bundled --gradle --sign $${BASEDIR}/android/android_release.keystore dagar --storepass $$(ANDROID_STOREPASS)
        contains(QT_ARCH, arm) {
            QGC_APK_BITNESS = "32"
        } else:contains(QT_ARCH, arm64) {
            QGC_APK_BITNESS = "64"
        } else {
            QGC_APK_BITNESS = ""
        }
        QMAKE_POST_LINK += && cp android-build/build/outputs/apk/android-build-release-signed.apk package/QGroundControl$${QGC_APK_BITNESS}.apk
    }
}


libdvbtee/libdvbtee.pri: add desc.h to HEADERS when olddecoder is enabled

Signed-off-by: Michael Ira Krufky <00524723a60798c74a43fcc620c25dd7b9ece078@linuxtv.org>

INCLUDEPATH += $$PWD

olddecoder {
    QMAKE_CXXFLAGS += -DOLD_DECODER=1
    SOURCES += desc.cpp
    HEADERS += desc.h
} else {
    QMAKE_CXXFLAGS += -DOLD_DECODER=0

    include ( value/value.pri )
    include ( decode/decode.pri )

    SOURCES += $$DECODER_SOURCES
}

SOURCES += \
    atsctext.cpp \
    channels.cpp \
    decode.cpp \
    demux.cpp \
    feed.cpp \
    functions.cpp \
    listen.cpp \
    log.cpp \
    output.cpp \
    parse.cpp \
    rbuf.cpp \
    stats.cpp \
    tune.cpp \
    hdhr_tuner.cpp \
    hlsfeed.cpp \
    curlhttpget.cpp

HEADERS += \
    atsctext.h \
    channels.h \
    decode.h \
    demux.h \
    feed.h \
    functions.h \
    listen.h \
    log.h \
    output.h \
    parse.h \
    rbuf.h \
    stats.h \
    tune.h \
    hdhr_tuner.h \
    hlsfeed.h \
    dvbtee_config.h \
    curlhttpget.h

unix:!macx:!symbian {
    HEADERS += linuxtv_tuner.h
    SOURCES += linuxtv_tuner.cpp
}

INCLUDEPATH += $$PWD

olddecoder {
    QMAKE_CXXFLAGS += -DOLD_DECODER=1
    SOURCES += desc.cpp
} else {
    QMAKE_CXXFLAGS += -DOLD_DECODER=0

    include ( value/value.pri )
    include ( decode/decode.pri )

    SOURCES += $$DECODER_SOURCES
}

SOURCES += \
    atsctext.cpp \
    channels.cpp \
    decode.cpp \
    demux.cpp \
    feed.cpp \
    functions.cpp \
    listen.cpp \
    log.cpp \
    output.cpp \
    parse.cpp \
    rbuf.cpp \
    stats.cpp \
    tune.cpp \
    hdhr_tuner.cpp \
    hlsfeed.cpp \
    curlhttpget.cpp

HEADERS += \
    atsctext.h \
    channels.h \
    decode.h \
    demux.h \
    feed.h \
    functions.h \
    listen.h \
    log.h \
    output.h \
    parse.h \
    rbuf.h \
    stats.h \
    tune.h \
    hdhr_tuner.h \
    hlsfeed.h \
    dvbtee_config.h \
    curlhttpget.h

unix:!macx:!symbian {
    HEADERS += linuxtv_tuner.h
    SOURCES += linuxtv_tuner.cpp
}


Here it comes: QLC+ 4.7.0

Here it comes: QLC+ 4.7.0

#############################################################################
# Application name & version
#############################################################################

APPNAME    = Q Light Controller Plus
FXEDNAME   = Fixture Definition Editor
APPVERSION = 4.7.0

#############################################################################
# Compiler & linker configuration
#############################################################################

# Treat all compiler warnings as errors
QMAKE_CXXFLAGS += -Werror
!macx:QMAKE_CXXFLAGS += -Wno-unused-local-typedefs # Fix to build with GCC 4.8
CONFIG         += warn_on

# Build everything in the order specified in .pro files
CONFIG         += ordered

CONFIG         -= release # Enable this when making a release
CONFIG         += debug   # Disable this when making a release

# Disable these if you don't want to see SVN revision in the About Box
#unix:REVISION = $$system(svn info | grep "Revision" | sed 's/Revision://')
#unix:APPVERSION = $$APPVERSION-r$$REVISION

unix:OLA_GIT    = /usr/src/ola    # OLA directories

#macx:CONFIG   += x86 ppc  # Build universal binaries (Leopard only)
macx:CONFIG    -= app_bundle # Let QLC+ construct the .app bundle

# Produce build targets to the source directory
win32:DESTDIR  = ./

# Don't whine about some imports
win32:QMAKE_LFLAGS += -Wl,--enable-auto-import

# Enable unit test coverage measurement ('qmake CONFIG+=coverage' works, too)
#CONFIG        += coverage

#############################################################################
# Installation paths
#############################################################################

# Install root
win32:INSTALLROOT       = $$(SystemDrive)/qlcplus
macx:INSTALLROOT        = ~/QLC+.app/Contents
unix:!macx:INSTALLROOT += /usr

# Binaries
win32:BINDIR      =
unix:!macx:BINDIR = bin
macx:BINDIR       = MacOS

# Libraries
win32:LIBSDIR      =
unix:!macx:LIBSDIR = lib
macx:LIBSDIR       = Frameworks

# Data
win32:DATADIR      =
unix:!macx:DATADIR = share/qlcplus
macx:DATADIR       = Resources

# User Data
win32:USERDATADIR      = QLC+
unix:!macx:USERDATADIR = .qlcplus
macx:USERDATADIR       = "Library/Application Support/QLC+"

# Documentation
win32:DOCSDIR      = Documents
unix:!macx:DOCSDIR = $$DATADIR/documents
macx:DOCSDIR       = $$DATADIR/Documents

# Input profiles
win32:INPUTPROFILEDIR      = InputProfiles
unix:!macx:INPUTPROFILEDIR = $$DATADIR/inputprofiles
macx:INPUTPROFILEDIR       = $$DATADIR/InputProfiles

# User input profiles
win32:USERINPUTPROFILEDIR      = $$USERDATADIR/InputProfiles
unix:!macx:USERINPUTPROFILEDIR = $$USERDATADIR/inputprofiles
macx:USERINPUTPROFILEDIR       = $$USERDATADIR/InputProfiles

# Midi templates
win32:MIDITEMPLATEDIR      = MidiTemplates
unix:!macx:MIDITEMPLATEDIR = $$DATADIR/miditemplates
macx:MIDITEMPLATEDIR       = $$DATADIR/MidiTemplates

# User midi templates
win32:USERMIDITEMPLATEDIR      = $$USERDATADIR/MidiTemplates
unix:!macx:USERMIDITEMPLATEDIR = $$USERDATADIR/miditemplates
macx:USERMIDITEMPLATEDIR       = $$USERDATADIR/MidiTemplates

# Fixtures
win32:FIXTUREDIR      = Fixtures
unix:!macx:FIXTUREDIR = $$DATADIR/fixtures
macx:FIXTUREDIR       = $$DATADIR/Fixtures

# Gobos
win32:GOBODIR      = Gobos
unix:!macx:GOBODIR = $$DATADIR/gobos
macx:GOBODIR       = $$DATADIR/Gobos

# User fixtures
win32:USERFIXTUREDIR      = $$USERDATADIR/Fixtures
unix:!macx:USERFIXTUREDIR = $$USERDATADIR/fixtures
macx:USERFIXTUREDIR       = $$USERDATADIR/Fixtures

# Plugins
win32:PLUGINDIR      = Plugins
unix:!macx:PLUGINDIR = $$LIBSDIR/qt4/plugins/qlcplus
macx:PLUGINDIR       = Plugins

# Translations
win32:TRANSLATIONDIR      =
unix:!macx:TRANSLATIONDIR = $$DATADIR/translations
macx:TRANSLATIONDIR       = $$DATADIR/Translations

# RGB Scripts
win32:RGBSCRIPTDIR      = RGBScripts
unix:!macx:RGBSCRIPTDIR = $$DATADIR/rgbscripts
macx:RGBSCRIPTDIR       = $$DATADIR/RGBScripts

# User RGB Scripts
win32:USERRGBSCRIPTDIR      = $$USERDATADIR/RGBScripts
unix:!macx:USERRGBSCRIPTDIR = $$USERDATADIR/rgbscripts
macx:USERRGBSCRIPTDIR       = $$USERDATADIR/RGBScripts

#############################################################################
# Application name & version
#############################################################################

APPNAME    = Q Light Controller Plus
FXEDNAME   = Fixture Definition Editor
APPVERSION = 4.7.0 GIT

#############################################################################
# Compiler & linker configuration
#############################################################################

# Treat all compiler warnings as errors
QMAKE_CXXFLAGS += -Werror
!macx:QMAKE_CXXFLAGS += -Wno-unused-local-typedefs # Fix to build with GCC 4.8
CONFIG         += warn_on

# Build everything in the order specified in .pro files
CONFIG         += ordered

CONFIG         -= release # Enable this when making a release
CONFIG         += debug   # Disable this when making a release

# Disable these if you don't want to see SVN revision in the About Box
#unix:REVISION = $$system(svn info | grep "Revision" | sed 's/Revision://')
#unix:APPVERSION = $$APPVERSION-r$$REVISION

unix:OLA_GIT    = /usr/src/ola    # OLA directories

#macx:CONFIG   += x86 ppc  # Build universal binaries (Leopard only)
macx:CONFIG    -= app_bundle # Let QLC+ construct the .app bundle

# Produce build targets to the source directory
win32:DESTDIR  = ./

# Don't whine about some imports
win32:QMAKE_LFLAGS += -Wl,--enable-auto-import

# Enable unit test coverage measurement ('qmake CONFIG+=coverage' works, too)
#CONFIG        += coverage

#############################################################################
# Installation paths
#############################################################################

# Install root
win32:INSTALLROOT       = $$(SystemDrive)/qlcplus
macx:INSTALLROOT        = ~/QLC+.app/Contents
unix:!macx:INSTALLROOT += /usr

# Binaries
win32:BINDIR      =
unix:!macx:BINDIR = bin
macx:BINDIR       = MacOS

# Libraries
win32:LIBSDIR      =
unix:!macx:LIBSDIR = lib
macx:LIBSDIR       = Frameworks

# Data
win32:DATADIR      =
unix:!macx:DATADIR = share/qlcplus
macx:DATADIR       = Resources

# User Data
win32:USERDATADIR      = QLC+
unix:!macx:USERDATADIR = .qlcplus
macx:USERDATADIR       = "Library/Application Support/QLC+"

# Documentation
win32:DOCSDIR      = Documents
unix:!macx:DOCSDIR = $$DATADIR/documents
macx:DOCSDIR       = $$DATADIR/Documents

# Input profiles
win32:INPUTPROFILEDIR      = InputProfiles
unix:!macx:INPUTPROFILEDIR = $$DATADIR/inputprofiles
macx:INPUTPROFILEDIR       = $$DATADIR/InputProfiles

# User input profiles
win32:USERINPUTPROFILEDIR      = $$USERDATADIR/InputProfiles
unix:!macx:USERINPUTPROFILEDIR = $$USERDATADIR/inputprofiles
macx:USERINPUTPROFILEDIR       = $$USERDATADIR/InputProfiles

# Midi templates
win32:MIDITEMPLATEDIR      = MidiTemplates
unix:!macx:MIDITEMPLATEDIR = $$DATADIR/miditemplates
macx:MIDITEMPLATEDIR       = $$DATADIR/MidiTemplates

# User midi templates
win32:USERMIDITEMPLATEDIR      = $$USERDATADIR/MidiTemplates
unix:!macx:USERMIDITEMPLATEDIR = $$USERDATADIR/miditemplates
macx:USERMIDITEMPLATEDIR       = $$USERDATADIR/MidiTemplates

# Fixtures
win32:FIXTUREDIR      = Fixtures
unix:!macx:FIXTUREDIR = $$DATADIR/fixtures
macx:FIXTUREDIR       = $$DATADIR/Fixtures

# Gobos
win32:GOBODIR      = Gobos
unix:!macx:GOBODIR = $$DATADIR/gobos
macx:GOBODIR       = $$DATADIR/Gobos

# User fixtures
win32:USERFIXTUREDIR      = $$USERDATADIR/Fixtures
unix:!macx:USERFIXTUREDIR = $$USERDATADIR/fixtures
macx:USERFIXTUREDIR       = $$USERDATADIR/Fixtures

# Plugins
win32:PLUGINDIR      = Plugins
unix:!macx:PLUGINDIR = $$LIBSDIR/qt4/plugins/qlcplus
macx:PLUGINDIR       = Plugins

# Translations
win32:TRANSLATIONDIR      =
unix:!macx:TRANSLATIONDIR = $$DATADIR/translations
macx:TRANSLATIONDIR       = $$DATADIR/Translations

# RGB Scripts
win32:RGBSCRIPTDIR      = RGBScripts
unix:!macx:RGBSCRIPTDIR = $$DATADIR/rgbscripts
macx:RGBSCRIPTDIR       = $$DATADIR/RGBScripts

# User RGB Scripts
win32:USERRGBSCRIPTDIR      = $$USERDATADIR/RGBScripts
unix:!macx:USERRGBSCRIPTDIR = $$USERDATADIR/rgbscripts
macx:USERRGBSCRIPTDIR       = $$USERDATADIR/RGBScripts


AudioStreamingLibCore: fix file copy on Windows

shell_path() converts the slashes to backslashes, if QMake is running on Windows.

CONFIG += AUDIOSTREAMINGLIB

include(../../AudioStreamingLib.pri)

TARGET =    AudioStreamingLibCore
TEMPLATE =  lib
CONFIG +=   staticlib

INCLUDEPATH += $$PWD/3rdparty

SOURCES +=  $$PWD/audiostreaminglibcore.cpp \
            $$PWD/worker.cpp \
            $$PWD/discoverserver.cpp \
            $$PWD/discoverclient.cpp \
            $$PWD/abstractclient.cpp \
            $$PWD/abstractserver.cpp \
            $$PWD/client.cpp \
            $$PWD/server.cpp \
            $$PWD/encryptedclient.cpp \
            $$PWD/encryptedserver.cpp \
            $$PWD/webclient.cpp \
            $$PWD/sslclient.cpp \
            $$PWD/openssllib.cpp \
            $$PWD/tcpserver.cpp \
            $$PWD/audioinput.cpp \
            $$PWD/audiooutput.cpp \
            $$PWD/flowcontrol.cpp \
            $$PWD/levelmeter.cpp

HEADERS +=  $$PWD/audiostreaminglibcore.h \
            $$PWD/worker.h \
            $$PWD/discoverserver.h \
            $$PWD/discoverclient.h \
            $$PWD/abstractclient.h \
            $$PWD/abstractserver.h \
            $$PWD/client.h \
            $$PWD/server.h \
            $$PWD/encryptedserver.h \
            $$PWD/encryptedclient.h \
            $$PWD/webclient.h \
            $$PWD/sslclient.h \
            $$PWD/openssllib.h \
            $$PWD/tcpserver.h \
            $$PWD/audioinput.h \
            $$PWD/audiooutput.h \
            $$PWD/flowcontrol.h \
            $$PWD/common.h \
            $$PWD/levelmeter.h

WITH_OPUS {
DEFINES +=  NOMINMAX

SOURCES +=  $$PWD/opusencoderclass.cpp \
            $$PWD/opusdecoderclass.cpp \
            $$PWD/r8brain.cpp

HEADERS +=  $$PWD/opusencoderclass.h \
            $$PWD/opusdecoderclass.h \
            $$PWD/r8brain.h

win32{
INCLUDEPATH += $$WIN_R8BRAIN_RESAMPLER_INCLUDE
SOURCES += $$WIN_R8BRAIN_RESAMPLER_INCLUDE/r8bbase.cpp
}
android{
INCLUDEPATH += $$ANDROID_R8BRAIN_RESAMPLER_INCLUDE
SOURCES += $$ANDROID_R8BRAIN_RESAMPLER_INCLUDE/r8bbase.cpp
}
unix:!macx:!android{
INCLUDEPATH += $$LINUX_R8BRAIN_RESAMPLER_INCLUDE
SOURCES += $$LINUX_R8BRAIN_RESAMPLER_INCLUDE/r8bbase.cpp
}
macx{
INCLUDEPATH += $$MACOS_R8BRAIN_RESAMPLER_INCLUDE
SOURCES += $$MACOS_R8BRAIN_RESAMPLER_INCLUDE/r8bbase.cpp
}
}

#Copy header files

copyfile1.commands = $(COPY_FILE) $$shell_path($$PWD/AudioStreamingLibCore) $$shell_path($$PWD/../include)
copyfile2.commands = $(COPY_FILE) $$shell_path($$PWD/audiostreaminglibcore.h) $$shell_path($$PWD/../include)
copyfile3.commands = $(COPY_FILE) $$shell_path($$PWD/discoverclient.h) $$shell_path($$PWD/../include)

first.depends = $(first) copyfile1 copyfile2 copyfile3

QMAKE_EXTRA_TARGETS += first copyfile1 copyfile2 copyfile3

#Set output directory

KNOWNDEVICE:win32 { #Windows
contains(QT_ARCH, i386) {
CONFIG(debug, debug|release): DESTDIR = ../lib/x86/Debug
CONFIG(release, debug|release): DESTDIR = ../lib/x86/Release
}
contains(QT_ARCH, x86_64) {
CONFIG(debug, debug|release): DESTDIR = ../lib/x64/Debug
CONFIG(release, debug|release): DESTDIR = ../lib/x64/Release
}
}

KNOWNDEVICE:unix:!macx:!android { #Linux
contains(QT_ARCH, i386) {
CONFIG(debug, debug|release): DESTDIR = ../lib/x86/Debug
CONFIG(release, debug|release): DESTDIR = ../lib/x86/Release
}
contains(QT_ARCH, x86_64) {
CONFIG(debug, debug|release): DESTDIR = ../lib/x64/Debug
CONFIG(release, debug|release): DESTDIR = ../lib/x64/Release
}
}

KNOWNDEVICE:contains(QT_ARCH, x86_64):macx { #MACOS
CONFIG(debug, debug|release): DESTDIR = ../lib/x64/Debug
CONFIG(release, debug|release): DESTDIR = ../lib/x64/Release
}

KNOWNDEVICE:contains(ANDROID_TARGET_ARCH, armeabi):android { #ANDROID ARM
CONFIG(debug, debug|release): DESTDIR = ../android-lib/armeabi/Debug
CONFIG(release, debug|release): DESTDIR = ../android-lib/armeabi/Release
}

KNOWNDEVICE:contains(ANDROID_TARGET_ARCH, armeabi-v7a):android { #ANDROID ARMV7A
CONFIG(debug, debug|release): DESTDIR = ../android-lib/armeabi-v7a/Debug
CONFIG(release, debug|release): DESTDIR = ../android-lib/armeabi-v7a/Release
}

KNOWNDEVICE:contains(ANDROID_TARGET_ARCH, x86):android { #ANDROID x86
CONFIG(debug, debug|release): DESTDIR = ../android-lib/x86/Debug
CONFIG(release, debug|release): DESTDIR = ../android-lib/x86/Release
}

!KNOWNDEVICE { #UNKNOWN DEVICE
CONFIG(debug, debug|release): DESTDIR = ../unknown_device/Debug
CONFIG(release, debug|release): DESTDIR = ../unknown_device/Release
}

OBJECTS_DIR = $$DESTDIR/.obj
MOC_DIR = $$DESTDIR/.moc
RCC_DIR = $$DESTDIR/.qrc
UI_DIR = $$DESTDIR/.ui

CONFIG += AUDIOSTREAMINGLIB

include(../../AudioStreamingLib.pri)

TARGET =    AudioStreamingLibCore
TEMPLATE =  lib
CONFIG +=   staticlib

INCLUDEPATH += $$PWD/3rdparty

SOURCES +=  $$PWD/audiostreaminglibcore.cpp \
            $$PWD/worker.cpp \
            $$PWD/discoverserver.cpp \
            $$PWD/discoverclient.cpp \
            $$PWD/abstractclient.cpp \
            $$PWD/abstractserver.cpp \
            $$PWD/client.cpp \
            $$PWD/server.cpp \
            $$PWD/encryptedclient.cpp \
            $$PWD/encryptedserver.cpp \
            $$PWD/webclient.cpp \
            $$PWD/sslclient.cpp \
            $$PWD/openssllib.cpp \
            $$PWD/tcpserver.cpp \
            $$PWD/audioinput.cpp \
            $$PWD/audiooutput.cpp \
            $$PWD/flowcontrol.cpp \
            $$PWD/levelmeter.cpp

HEADERS +=  $$PWD/audiostreaminglibcore.h \
            $$PWD/worker.h \
            $$PWD/discoverserver.h \
            $$PWD/discoverclient.h \
            $$PWD/abstractclient.h \
            $$PWD/abstractserver.h \
            $$PWD/client.h \
            $$PWD/server.h \
            $$PWD/encryptedserver.h \
            $$PWD/encryptedclient.h \
            $$PWD/webclient.h \
            $$PWD/sslclient.h \
            $$PWD/openssllib.h \
            $$PWD/tcpserver.h \
            $$PWD/audioinput.h \
            $$PWD/audiooutput.h \
            $$PWD/flowcontrol.h \
            $$PWD/common.h \
            $$PWD/levelmeter.h

WITH_OPUS {
DEFINES +=  NOMINMAX

SOURCES +=  $$PWD/opusencoderclass.cpp \
            $$PWD/opusdecoderclass.cpp \
            $$PWD/r8brain.cpp

HEADERS +=  $$PWD/opusencoderclass.h \
            $$PWD/opusdecoderclass.h \
            $$PWD/r8brain.h

win32{
INCLUDEPATH += $$WIN_R8BRAIN_RESAMPLER_INCLUDE
SOURCES += $$WIN_R8BRAIN_RESAMPLER_INCLUDE/r8bbase.cpp
}
android{
INCLUDEPATH += $$ANDROID_R8BRAIN_RESAMPLER_INCLUDE
SOURCES += $$ANDROID_R8BRAIN_RESAMPLER_INCLUDE/r8bbase.cpp
}
unix:!macx:!android{
INCLUDEPATH += $$LINUX_R8BRAIN_RESAMPLER_INCLUDE
SOURCES += $$LINUX_R8BRAIN_RESAMPLER_INCLUDE/r8bbase.cpp
}
macx{
INCLUDEPATH += $$MACOS_R8BRAIN_RESAMPLER_INCLUDE
SOURCES += $$MACOS_R8BRAIN_RESAMPLER_INCLUDE/r8bbase.cpp
}
}

#Copy header files

copyfile1.commands = $(COPY_FILE) $$PWD/AudioStreamingLibCore $$PWD/../include
copyfile2.commands = $(COPY_FILE) $$PWD/audiostreaminglibcore.h $$PWD/../include
copyfile3.commands = $(COPY_FILE) $$PWD/discoverclient.h $$PWD/../include

first.depends = $(first) copyfile1 copyfile2 copyfile3

QMAKE_EXTRA_TARGETS += first copyfile1 copyfile2 copyfile3

#Set output directory

KNOWNDEVICE:win32 { #Windows
contains(QT_ARCH, i386) {
CONFIG(debug, debug|release): DESTDIR = ../lib/x86/Debug
CONFIG(release, debug|release): DESTDIR = ../lib/x86/Release
}
contains(QT_ARCH, x86_64) {
CONFIG(debug, debug|release): DESTDIR = ../lib/x64/Debug
CONFIG(release, debug|release): DESTDIR = ../lib/x64/Release
}
}

KNOWNDEVICE:unix:!macx:!android { #Linux
contains(QT_ARCH, i386) {
CONFIG(debug, debug|release): DESTDIR = ../lib/x86/Debug
CONFIG(release, debug|release): DESTDIR = ../lib/x86/Release
}
contains(QT_ARCH, x86_64) {
CONFIG(debug, debug|release): DESTDIR = ../lib/x64/Debug
CONFIG(release, debug|release): DESTDIR = ../lib/x64/Release
}
}

KNOWNDEVICE:contains(QT_ARCH, x86_64):macx { #MACOS
CONFIG(debug, debug|release): DESTDIR = ../lib/x64/Debug
CONFIG(release, debug|release): DESTDIR = ../lib/x64/Release
}

KNOWNDEVICE:contains(ANDROID_TARGET_ARCH, armeabi):android { #ANDROID ARM
CONFIG(debug, debug|release): DESTDIR = ../android-lib/armeabi/Debug
CONFIG(release, debug|release): DESTDIR = ../android-lib/armeabi/Release
}

KNOWNDEVICE:contains(ANDROID_TARGET_ARCH, armeabi-v7a):android { #ANDROID ARMV7A
CONFIG(debug, debug|release): DESTDIR = ../android-lib/armeabi-v7a/Debug
CONFIG(release, debug|release): DESTDIR = ../android-lib/armeabi-v7a/Release
}

KNOWNDEVICE:contains(ANDROID_TARGET_ARCH, x86):android { #ANDROID x86
CONFIG(debug, debug|release): DESTDIR = ../android-lib/x86/Debug
CONFIG(release, debug|release): DESTDIR = ../android-lib/x86/Release
}

!KNOWNDEVICE { #UNKNOWN DEVICE
CONFIG(debug, debug|release): DESTDIR = ../unknown_device/Debug
CONFIG(release, debug|release): DESTDIR = ../unknown_device/Release
}

OBJECTS_DIR = $$DESTDIR/.obj
MOC_DIR = $$DESTDIR/.moc
RCC_DIR = $$DESTDIR/.qrc
UI_DIR = $$DESTDIR/.ui


Update QSimpleUpdater.pri

Update QSimpleUpdater.pri

#
# Copyright (c) 2014-2016 Alex Spataru <alex_spataru@outlook.com>
#
# This file is part of the QSimpleUpdater library, which is released under
# the DBAD license, you can read a copy of it below:
#
# DON'T BE A DICK PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION
# AND MODIFICATION:
#
# Do whatever you like with the original work, just don't be a dick.
# Being a dick includes - but is not limited to - the following instances:
#
# 1a. Outright copyright infringement - Don't just copy this and change the
#     name.
# 1b. Selling the unmodified original with no work done what-so-ever, that's
#     REALLY being a dick.
# 1c. Modifying the original work to contain hidden harmful content.
#     That would make you a PROPER dick.
#
# If you become rich through modifications, related works/services, or
# supporting the original work, share the love.
# Only a dick would make loads off this work and not buy the original works
# creator(s) a pint.
#
# Code is provided with no warranty. Using somebody else's code and bitching
# when it goes wrong makes you a DONKEY dick.
# Fix the problem yourself. A non-dick would submit the fix back.

QT += gui
QT += core
QT += network
QT += widgets

INCLUDEPATH += $$PWD/include

win32* {
    LIBS += -L$$PWD/lib/OpenSSL-Win32/lib -llibeay32
}

SOURCES += \
    $$PWD/src/Updater.cpp \
    $$PWD/src/Downloader.cpp \
    $$PWD/src/QSimpleUpdater.cpp

HEADERS += \
    $$PWD/include/QSimpleUpdater.h \
    $$PWD/src/Updater.h \
    $$PWD/src/Downloader.h

FORMS += $$PWD/src/Downloader.ui
RESOURCES += $$PWD/etc/resources/qsimpleupdater.qrc

#
# Copyright (c) 2014-2016 Alex Spataru <alex_spataru@outlook.com>
#
# This file is part of the QSimpleUpdater library, which is released under
# the DBAD license, you can read a copy of it below:
#
# DON'T BE A DICK PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION
# AND MODIFICATION:
#
# Do whatever you like with the original work, just don't be a dick.
# Being a dick includes - but is not limited to - the following instances:
#
# 1a. Outright copyright infringement - Don't just copy this and change the
#     name.
# 1b. Selling the unmodified original with no work done what-so-ever, that's
#     REALLY being a dick.
# 1c. Modifying the original work to contain hidden harmful content.
#     That would make you a PROPER dick.
#
# If you become rich through modifications, related works/services, or
# supporting the original work, share the love.
# Only a dick would make loads off this work and not buy the original works
# creator(s) a pint.
#
# Code is provided with no warranty. Using somebody else's code and bitching
# when it goes wrong makes you a DONKEY dick.
# Fix the problem yourself. A non-dick would submit the fix back.

QT += gui
QT += core
QT += network
QT += widgets

INCLUDEPATH += $$PWD/include

macx || linux{
    LIBS += -lcrypto -lssl
}

win32* {
    LIBS += -L$$PWD/lib/OpenSSL-Win32/lib -llibeay32
}

SOURCES += \
    $$PWD/src/Updater.cpp \
    $$PWD/src/Downloader.cpp \
    $$PWD/src/QSimpleUpdater.cpp

HEADERS += \
    $$PWD/include/QSimpleUpdater.h \
    $$PWD/src/Updater.h \
    $$PWD/src/Downloader.h

FORMS += $$PWD/src/Downloader.ui
RESOURCES += $$PWD/etc/resources/qsimpleupdater.qrc


bb10 compilation pri

bb10 compilation pri

# Auto-generated by IDE. Any changes made by user will be lost!
BASEDIR =  $$quote($$_PRO_FILE_PWD_)

device {
    CONFIG(debug, debug|release) {
        SOURCES +=  $$quote($$BASEDIR/src/BB10PhoneFactory.cpp) \
                 $$quote($$BASEDIR/src/MainWindow.cpp) \
                 $$quote($$BASEDIR/src/OsDependant.cpp)

        HEADERS +=  $$quote($$BASEDIR/src/BB10PhoneFactory.h) \
                 $$quote($$BASEDIR/src/MainWindow.h) \
                 $$quote($$BASEDIR/src/OsDependant.h)
    }

    CONFIG(release, debug|release) {
        SOURCES +=  $$quote($$BASEDIR/src/BB10PhoneFactory.cpp) \
                 $$quote($$BASEDIR/src/MainWindow.cpp) \
                 $$quote($$BASEDIR/src/OsDependant.cpp)

        HEADERS +=  $$quote($$BASEDIR/src/BB10PhoneFactory.h) \
                 $$quote($$BASEDIR/src/MainWindow.h) \
                 $$quote($$BASEDIR/src/OsDependant.h)
    }
}

simulator {
    CONFIG(debug, debug|release) {
        SOURCES +=  $$quote($$BASEDIR/src/BB10PhoneFactory.cpp) \
                 $$quote($$BASEDIR/src/MainWindow.cpp) \
                 $$quote($$BASEDIR/src/OsDependant.cpp)

        HEADERS +=  $$quote($$BASEDIR/src/BB10PhoneFactory.h) \
                 $$quote($$BASEDIR/src/MainWindow.h) \
                 $$quote($$BASEDIR/src/OsDependant.h)
    }
}

INCLUDEPATH +=  $$quote($$BASEDIR/src)

CONFIG += precompile_header

PRECOMPILED_HEADER =  $$quote($$BASEDIR/precompiled.h)

lupdate_inclusion {
    SOURCES +=  $$quote($$BASEDIR/../src/*.c) \
             $$quote($$BASEDIR/../src/*.c++) \
             $$quote($$BASEDIR/../src/*.cc) \
             $$quote($$BASEDIR/../src/*.cpp) \
             $$quote($$BASEDIR/../src/*.cxx) \
             $$quote($$BASEDIR/../assets/*.qml) \
             $$quote($$BASEDIR/../assets/*.js) \
             $$quote($$BASEDIR/../assets/*.qs)

    HEADERS +=  $$quote($$BASEDIR/../src/*.h) \
             $$quote($$BASEDIR/../src/*.h++) \
             $$quote($$BASEDIR/../src/*.hh) \
             $$quote($$BASEDIR/../src/*.hpp) \
             $$quote($$BASEDIR/../src/*.hxx)
}

TRANSLATIONS =  $$quote($${TARGET}.ts)

# Auto-generated by IDE. Any changes made by user will be lost!
BASEDIR =  $$quote($$_PRO_FILE_PWD_)

device {
    CONFIG(debug, debug|release) {
        SOURCES +=  $$quote($$BASEDIR/src/MainWindow.cpp) \
                 $$quote($$BASEDIR/src/OsDependant.cpp)

        HEADERS +=  $$quote($$BASEDIR/src/MainWindow.h) \
                 $$quote($$BASEDIR/src/OsDependant.h)
    }

    CONFIG(release, debug|release) {
        SOURCES +=  $$quote($$BASEDIR/src/MainWindow.cpp) \
                 $$quote($$BASEDIR/src/OsDependant.cpp)

        HEADERS +=  $$quote($$BASEDIR/src/MainWindow.h) \
                 $$quote($$BASEDIR/src/OsDependant.h)
    }
}

simulator {
    CONFIG(debug, debug|release) {
        SOURCES +=  $$quote($$BASEDIR/src/MainWindow.cpp) \
                 $$quote($$BASEDIR/src/OsDependant.cpp)

        HEADERS +=  $$quote($$BASEDIR/src/MainWindow.h) \
                 $$quote($$BASEDIR/src/OsDependant.h)
    }
}

INCLUDEPATH +=  $$quote($$BASEDIR/src)

CONFIG += precompile_header

PRECOMPILED_HEADER =  $$quote($$BASEDIR/precompiled.h)

lupdate_inclusion {
    SOURCES +=  $$quote($$BASEDIR/../src/*.c) \
             $$quote($$BASEDIR/../src/*.c++) \
             $$quote($$BASEDIR/../src/*.cc) \
             $$quote($$BASEDIR/../src/*.cpp) \
             $$quote($$BASEDIR/../src/*.cxx) \
             $$quote($$BASEDIR/../assets/*.qml) \
             $$quote($$BASEDIR/../assets/*.js) \
             $$quote($$BASEDIR/../assets/*.qs)

    HEADERS +=  $$quote($$BASEDIR/../src/*.h) \
             $$quote($$BASEDIR/../src/*.h++) \
             $$quote($$BASEDIR/../src/*.hh) \
             $$quote($$BASEDIR/../src/*.hpp) \
             $$quote($$BASEDIR/../src/*.hxx)
}

TRANSLATIONS =  $$quote($${TARGET}.ts)


Cleanup resources.pri

Cleanup resources.pri

######################################################################
# Communi
######################################################################

RESOURCES += $$PWD/communi.qrc
win32:RC_FILE = $$PWD/communi.rc
mac:ICON = $$PWD/icons/communi.icns

unix:!mac {
    ICONS_SIZES = 16 24 32 48 64 128
    for(size, ICONS_SIZES) {
        eval(icon$${size}.files = $$PWD/icons/$${size}x$${size}/communi.png)
        eval(icon$${size}.path = /usr/share/icons/hicolor/$${size}x$${size}/apps)
        INSTALLS += icon$${size}
    }
    icon.path = /usr/share/pixmaps
    icon.files = $$PWD/icons/128x128/communi.png
    desktop.path = /usr/share/applications
    desktop.files = $$PWD/communi.desktop
    INSTALLS += icon desktop
}

OTHER_FILES += $$PWD/communi.desktop
OTHER_FILES += $$PWD/communi.rc
OTHER_FILES += $$PWD/stylesheet.css

######################################################################
# Communi: resources.pri
######################################################################

RESOURCES += $$PWD/communi.qrc
win32:RC_FILE = $$PWD/communi.rc
mac:ICON = $$PWD/icons/communi.icns

unix:!mac {
    ICONS_SIZES = 16 24 32 48 64 128
    for(size, ICONS_SIZES) {
        eval(icon$${size}.files = $$PWD/icons/$${size}x$${size}/communi.png)
        eval(icon$${size}.path = /usr/share/icons/hicolor/$${size}x$${size}/apps)
        INSTALLS += icon$${size}
    }
    icon.path = /usr/share/pixmaps
    icon.files = $$PWD/icons/128x128/communi.png
    desktop.path = /usr/share/applications
    desktop.files = $$PWD/communi.desktop
    INSTALLS += icon desktop
}

OTHER_FILES += $$PWD/communi.desktop
OTHER_FILES += $$PWD/communi.rc
OTHER_FILES += $$PWD/stylesheet.css


Fixes a bug in the LIBDIR install path

Fixes a bug in the LIBDIR install path

Introduced by commit 10517652f65f05120432ea05883977e39ed7b8be.
It made libQtMimeTypes installation fail.

Change-Id: I7c512b5d29bcfa06896a2df71f98b9c58db06817
Signed-off-by: Luís Pereira <95d1463b1ff9eef535e39fb0d755bc242cfcea61@gmail.com>
Reviewed-by: David Faure (KDE) <86a8c136eda381b2295095fae2f365917f1ca4ea@kde.org>

!isEmpty(MIMETYPES_PRI_INCLUDED):error("mimetypes-no-libs.pri already included")
MIMETYPES_PRI_INCLUDED = 1

INCLUDEPATH += $$PWD/include/QtMimeTypes
INCLUDEPATH += $$PWD/src/mimetypes/inqt5
INCLUDEPATH += $$PWD/src/mimetypes $$PWD/src/imports/mimetypes

mac|darwin: {
    QMAKE_CXXFLAGS += -ansi
} else:false {
    QMAKE_CXXFLAGS += -ansi -Wc++0x-compat
} else {
    QMAKE_CXXFLAGS += -std=c++0x
}

unix {
    isEmpty(PREFIX) {
        PREFIX = /usr
    }

    INCLUDEDIR = $${PREFIX}/include
    LIBDIR = $${PREFIX}/lib
}

!isEmpty(MIMETYPES_PRI_INCLUDED):error("mimetypes-no-libs.pri already included")
MIMETYPES_PRI_INCLUDED = 1

INCLUDEPATH += $$PWD/include/QtMimeTypes
INCLUDEPATH += $$PWD/src/mimetypes/inqt5
INCLUDEPATH += $$PWD/src/mimetypes $$PWD/src/imports/mimetypes

mac|darwin: {
    QMAKE_CXXFLAGS += -ansi
} else:false {
    QMAKE_CXXFLAGS += -ansi -Wc++0x-compat
} else {
    QMAKE_CXXFLAGS += -std=c++0x
}

unix {
    isEmpty(PREFIX) {
        PREFIX = /usr
    }

    INCLUDEDIR = $${PREFIX}/include
    LIBDIR = ${{PREFIX}/lib
}


platform decision fix

platform decision fix

HOST_ARCH=$$system(dpkg-architecture -qDEB_HOST_GNU_TYPE || echo meego)
message("arch $$HOST_ARCH")
isEmpty(HOST_ARCH){
  message("preparing for MEEGO")
  CONFIG += meego
  DEFINES += MEEGO
}

meego {
  message("MEEGO")
} else {
message("NON-MEEGO")
}

HOST_ARCH=$$system(dpkg-architecture -qDEB_HOST_GNU_TYPE || echo)
isEmpty($$HOST_ARCH){
  message("preparing for MEEGO")
  CONFIG += meego
  DEFINES += MEEGO
}

meego {
  message("MEEGO")
} else {
message("NON-MEEGO")
}


pro file fix

pro file fix

EXTLIB_DIR = $${NEUROLABI_DIR}/lib
DEPENDPATH += . $${NEUROLABI_DIR}/c $${NEUROLABI_DIR}/c/include
INCLUDEPATH += $${NEUROLABI_DIR}/gui \
    $${NEUROLABI_DIR}/c \
    $${NEUROLABI_DIR}/c/include \
    $${EXTLIB_DIR}/genelib/src $${NEUROLABI_DIR}/gui/ext

#neurolabi
LIBS += -L$${NEUROLABI_DIR}/c/lib
CONFIG(debug, debug|release) {
    LIBS += -lneurolabi_debug
} else {
    #DEFINES += _ADVANCED_
    LIBS += -lneurolabi
}

unix {
    INCLUDEPATH += $${EXTLIB_DIR}/xml/include/libxml2 \
        $${EXTLIB_DIR}/fftw3/include \
#        $${EXTLIB_DIR}/png/include \
        $${EXTLIB_DIR}/jansson/include
}

win32 {
    INCLUDEPATH += $${EXTLIB_DIR}/Mingw/64/include \
        $${EXTLIB_DIR}/Mingw/64/include/libxml2

    LIBS += -L$${EXTLIB_DIR}/Mingw/64/lib \
        -lfftw3 \
        -lfftw3f \
        -lxml2 \
#        -lpng \
        -mwin32 -mthreads -lpcreposix -lpcre -ljansson -lpthread
}

#Self-contained libraries
unix {
    LIBS += -L$${EXTLIB_DIR}/xml/lib -L$${EXTLIB_DIR}/fftw3/lib \
        -L$${EXTLIB_DIR}/jansson/lib \
        -lfftw3 \
        -lfftw3f \
        -lxml2 \
        -ljansson
}

exists($${EXTLIB_DIR}/hdf5/lib/libhdf5.a) {
    DEFINES += _ENABLE_HDF5_
    INCLUDEPATH += $${EXTLIB_DIR}/hdf5/include
    LIBS += -L$${EXTLIB_DIR}/hdf5/lib -lhdf5 -lhdf5_hl
}

#System libraries
unix {
#tmp fix
    #LIBS += -L/usr/lib64/ssl
    LIBS += -ldl -lz
}

CONFIG(debug, debug|release) {
    exists($${EXTLIB_DIR}/opencv) {
        message(opencv found)
        DEFINES += _USE_OPENCV_
        INCLUDEPATH += $${EXTLIB_DIR}/opencv/include $${EXTLIB_DIR}/opencv/include/opencv
        LIBS += -L$${EXTLIB_DIR}/opencv/lib -lopencv_core -lopencv_ml
    }
}

contains(TEMPLATE, app) {
exists($$DVIDCPP_PATH) {
    DEFINES += _ENABLE_LIBDVIDCPP_
    INCLUDEPATH += $$DVIDCPP_PATH/include
    LIBS += -L$$DVIDCPP_PATH/lib
    DEFINES += _LIBDVIDCPP_OLD_
} else:exists($${BUILDEM_DIR}) {
    INCLUDEPATH +=  $${BUILDEM_DIR}/include
    LIBS += -L$${BUILDEM_DIR}/lib -L$${BUILDEM_DIR}/lib64
    DEFINES += _ENABLE_LIBDVIDCPP_
} else:exists($${CONDA_ENV}) {
    INCLUDEPATH +=  $${CONDA_ENV}/include
    LIBS += -L$${CONDA_ENV}/lib
    DEFINES += _ENABLE_LIBDVIDCPP_
}

contains(DEFINES, _ENABLE_LIBDVIDCPP_) {
    LIBS *= -ldvidcpp -ljsoncpp -llz4 -lpng -lcurl -ljpeg -lboost_system -lboost_thread
    !contains(DEFINES, _LIBDVIDCPP_OLD_) {
        LIBS *= -lssl -lcrypto -lcom_err
    }
} else:exists($${EXTLIB_DIR}/png/lib) {
    LIBS += -L$${EXTLIB_DIR}/png/lib -lpng
}
}

message($$DEFINES)
message($$LIBS)

#BUILDEM_DIR = /opt/Downloads/buildem
#exists($${BUILDEM_DIR}/lib/libdvidcpp2.a) {
#    DEFINES += _ENABLE_LIBDVID_
#    INCLUDEPATH +=  $${BUILDEM_DIR}/include $${BUILDEM_DIR}/include/libdvid
#    LIBS += -L$${BUILDEM_DIR}/lib -L$${BUILDEM_DIR}/lib64 -ldvidcpp \
#        -ljsoncpp -lcppnetlib-uri \
#        -lcppnetlib-client-connections -lcppnetlib-server-parsers  \
#        -lboost_system -lboost_thread -lssl -lcrypto
#}

EXTLIB_DIR = $${NEUROLABI_DIR}/lib
DEPENDPATH += . $${NEUROLABI_DIR}/c $${NEUROLABI_DIR}/c/include
INCLUDEPATH += $${NEUROLABI_DIR}/gui \
    $${NEUROLABI_DIR}/c \
    $${NEUROLABI_DIR}/c/include \
    $${EXTLIB_DIR}/genelib/src $${NEUROLABI_DIR}/gui/ext

#neurolabi
LIBS += -L$${NEUROLABI_DIR}/c/lib
CONFIG(debug, debug|release) {
    LIBS += -lneurolabi_debug
} else {
    #DEFINES += _ADVANCED_
    LIBS += -lneurolabi
}

unix {
    INCLUDEPATH += $${EXTLIB_DIR}/xml/include/libxml2 \
        $${EXTLIB_DIR}/fftw3/include \
#        $${EXTLIB_DIR}/png/include \
        $${EXTLIB_DIR}/jansson/include
}

win32 {
    INCLUDEPATH += $${EXTLIB_DIR}/Mingw/64/include \
        $${EXTLIB_DIR}/Mingw/64/include/libxml2

    LIBS += -L$${EXTLIB_DIR}/Mingw/64/lib \
        -lfftw3 \
        -lfftw3f \
        -lxml2 \
#        -lpng \
        -mwin32 -mthreads -lpcreposix -lpcre -ljansson -lpthread
}

#Self-contained libraries
unix {
    LIBS += -L$${EXTLIB_DIR}/xml/lib -L$${EXTLIB_DIR}/fftw3/lib \
        -L$${EXTLIB_DIR}/jansson/lib \
        -lfftw3 \
        -lfftw3f \
        -lxml2 \
        -ljansson
}

exists($${EXTLIB_DIR}/hdf5/lib/libhdf5.a) {
    DEFINES += _ENABLE_HDF5_
    INCLUDEPATH += $${EXTLIB_DIR}/hdf5/include
    LIBS += -L$${EXTLIB_DIR}/hdf5/lib -lhdf5 -lhdf5_hl
}

#System libraries
unix {
#tmp fix
    #LIBS += -L/usr/lib64/ssl
    LIBS += -ldl -lz
}

CONFIG(debug, debug|release) {
    exists($${EXTLIB_DIR}/opencv) {
        message(opencv found)
        DEFINES += _USE_OPENCV_
        INCLUDEPATH += $${EXTLIB_DIR}/opencv/include $${EXTLIB_DIR}/opencv/include/opencv
        LIBS += -L$${EXTLIB_DIR}/opencv/lib -lopencv_core -lopencv_ml
    }
}

contains(TEMPLATE, app) {
exists($$DVIDCPP_PATH) {
    DEFINES += _ENABLE_LIBDVIDCPP_
    INCLUDEPATH += $$DVIDCPP_PATH/include
    LIBS += -L$$DVIDCPP_PATH/lib
    DEFINES += _LIBDVIDCPP_OLD_
} else:exists($${BUILDEM_DIR}) {
    INCLUDEPATH +=  $${BUILDEM_DIR}/include
    LIBS += -L$${BUILDEM_DIR}/lib -L$${BUILDEM_DIR}/lib64
    DEFINES += _ENABLE_LIBDVIDCPP_
} else:exists($${CONDA_ENV}) {
    INCLUDEPATH +=  $${CONDA_ENV}/include
    LIBS += -L$${CONDA_ENV}/lib
    DEFINES += _ENABLE_LIBDVIDCPP_
}

contains(DEFINES, _ENABLE_LIBDVIDCPP_) {
    LIBS *= -ldvidcpp -ljsoncpp -llz4 -lpng -lcurl -ljpeg -lboost_system -lboost_thread
    exists($$BUILDEM_DIR) {
        LIBS *= -lssl -lcrypto
    }
} else:exists($${EXTLIB_DIR}/png/lib) {
    LIBS += -L$${EXTLIB_DIR}/png/lib -lpng
}
}

message($$DEFINES)
message($$LIBS)

#BUILDEM_DIR = /opt/Downloads/buildem
#exists($${BUILDEM_DIR}/lib/libdvidcpp2.a) {
#    DEFINES += _ENABLE_LIBDVID_
#    INCLUDEPATH +=  $${BUILDEM_DIR}/include $${BUILDEM_DIR}/include/libdvid
#    LIBS += -L$${BUILDEM_DIR}/lib -L$${BUILDEM_DIR}/lib64 -ldvidcpp \
#        -ljsoncpp -lcppnetlib-uri \
#        -lcppnetlib-client-connections -lcppnetlib-server-parsers  \
#        -lboost_system -lboost_thread -lssl -lcrypto
#}