Quote CDB_PATH.

Quote CDB_PATH.

When setting CDB_PATH via the environment.

Reviewed-By: ossi

# Detect presence of "Debugging Tools For Windows"
# in case VS compilers are used.

win32 {
contains(QMAKE_CXX, cl) {

CDB_PATH="$$(CDB_PATH)"
isEmpty(CDB_PATH):CDB_PATH="$$(ProgramFiles)/Debugging Tools For Windows/sdk"

!exists($$CDB_PATH):CDB_PATH="$$(ProgramFiles)/Debugging Tools For Windows (x86)/sdk"
!exists($$CDB_PATH):CDB_PATH="$$(ProgramFiles)/Debugging Tools For Windows (x64)/sdk"
!exists($$CDB_PATH):CDB_PATH="$$(ProgramFiles)/Debugging Tools For Windows 64-bit/sdk"

exists($$CDB_PATH) {

message("Adding support for $$CDB_PATH")

DEFINES+=CDB_ENABLED

CDB_PLATFORM=i386

INCLUDEPATH*=$$CDB_PATH
INCLUDEPATH*=$$PWD
DEPENDPATH*=$$PWD

CDB_LIBPATH=$$CDB_PATH/lib/$$CDB_PLATFORM

HEADERS += \
    $$PWD/cdbcom.h \
    $$PWD/cdbdebugengine.h \
    $$PWD/cdbdebugengine_p.h \
    $$PWD/cdbdebugeventcallback.h \
    $$PWD/cdbdebugoutput.h \
    $$PWD/cdbsymbolgroupcontext.h \
    $$PWD/cdbsymbolgroupcontext_tpl.h \
    $$PWD/cdbstacktracecontext.h \
    $$PWD/cdbstackframecontext.h \
    $$PWD/cdbbreakpoint.h \
    $$PWD/cdbmodules.h \
    $$PWD/cdbassembler.h \
    $$PWD/cdboptions.h \
    $$PWD/cdboptionspage.h \
    $$PWD/cdbdumperhelper.h \
    $$PWD/cdbsymbolpathlisteditor.h \
    $$PWD/cdbexceptionutils.h

SOURCES += \
    $$PWD/cdbdebugengine.cpp \
    $$PWD/cdbdebugeventcallback.cpp \
    $$PWD/cdbdebugoutput.cpp \
    $$PWD/cdbsymbolgroupcontext.cpp \
    $$PWD/cdbstackframecontext.cpp \
    $$PWD/cdbstacktracecontext.cpp \
    $$PWD/cdbbreakpoint.cpp \
    $$PWD/cdbmodules.cpp \
    $$PWD/cdbassembler.cpp \
    $$PWD/cdboptions.cpp \
    $$PWD/cdboptionspage.cpp \
    $$PWD/cdbdumperhelper.cpp \
    $$PWD/cdbsymbolpathlisteditor.cpp \
    $$PWD/cdbexceptionutils.cpp

FORMS += $$PWD/cdboptionspagewidget.ui

} else {
   message("Debugging Tools for Windows could not be found in $$CDB_PATH")
} # exists($$CDB_PATH)
} # (QMAKE_CXX, cl)
} # win32

# Detect presence of "Debugging Tools For Windows"
# in case VS compilers are used.

win32 {
contains(QMAKE_CXX, cl) {

CDB_PATH=$$(CDB_PATH)
isEmpty(CDB_PATH):CDB_PATH="$$(ProgramFiles)/Debugging Tools For Windows/sdk"

!exists($$CDB_PATH):CDB_PATH="$$(ProgramFiles)/Debugging Tools For Windows (x86)/sdk"
!exists($$CDB_PATH):CDB_PATH="$$(ProgramFiles)/Debugging Tools For Windows (x64)/sdk"
!exists($$CDB_PATH):CDB_PATH="$$(ProgramFiles)/Debugging Tools For Windows 64-bit/sdk"

exists($$CDB_PATH) {

message("Adding support for $$CDB_PATH")

DEFINES+=CDB_ENABLED

CDB_PLATFORM=i386

INCLUDEPATH*=$$CDB_PATH
INCLUDEPATH*=$$PWD
DEPENDPATH*=$$PWD

CDB_LIBPATH=$$CDB_PATH/lib/$$CDB_PLATFORM

HEADERS += \
    $$PWD/cdbcom.h \
    $$PWD/cdbdebugengine.h \
    $$PWD/cdbdebugengine_p.h \
    $$PWD/cdbdebugeventcallback.h \
    $$PWD/cdbdebugoutput.h \
    $$PWD/cdbsymbolgroupcontext.h \
    $$PWD/cdbsymbolgroupcontext_tpl.h \
    $$PWD/cdbstacktracecontext.h \
    $$PWD/cdbstackframecontext.h \
    $$PWD/cdbbreakpoint.h \
    $$PWD/cdbmodules.h \
    $$PWD/cdbassembler.h \
    $$PWD/cdboptions.h \
    $$PWD/cdboptionspage.h \
    $$PWD/cdbdumperhelper.h \
    $$PWD/cdbsymbolpathlisteditor.h \
    $$PWD/cdbexceptionutils.h

SOURCES += \
    $$PWD/cdbdebugengine.cpp \
    $$PWD/cdbdebugeventcallback.cpp \
    $$PWD/cdbdebugoutput.cpp \
    $$PWD/cdbsymbolgroupcontext.cpp \
    $$PWD/cdbstackframecontext.cpp \
    $$PWD/cdbstacktracecontext.cpp \
    $$PWD/cdbbreakpoint.cpp \
    $$PWD/cdbmodules.cpp \
    $$PWD/cdbassembler.cpp \
    $$PWD/cdboptions.cpp \
    $$PWD/cdboptionspage.cpp \
    $$PWD/cdbdumperhelper.cpp \
    $$PWD/cdbsymbolpathlisteditor.cpp \
    $$PWD/cdbexceptionutils.cpp

FORMS += $$PWD/cdboptionspagewidget.ui

} else {
   message("Debugging Tools for Windows could not be found in $$CDB_PATH")
} # exists($$CDB_PATH)
} # (QMAKE_CXX, cl)
} # win32


Fixed clock_gettime() library dependency.

The old construct doesn't work if the QtBase source is unavailable.

Reviewed-by: Marius Storm-Olsen

INCLUDEPATH += $$PWD
SOURCES += \
    $$PWD/qdeclarativeparser.cpp \
    $$PWD/qdeclarativeinstruction.cpp \
    $$PWD/qdeclarativevmemetaobject.cpp \
    $$PWD/qdeclarativeengine.cpp \
    $$PWD/qdeclarativeexpression.cpp \
    $$PWD/qdeclarativebinding.cpp \
    $$PWD/qdeclarativeproperty.cpp \
    $$PWD/qdeclarativecomponent.cpp \
    $$PWD/qdeclarativecontext.cpp \
    $$PWD/qdeclarativeinclude.cpp \
    $$PWD/qdeclarativecustomparser.cpp \
    $$PWD/qdeclarativepropertyvaluesource.cpp \
    $$PWD/qdeclarativepropertyvalueinterceptor.cpp \
    $$PWD/qdeclarativeproxymetaobject.cpp \
    $$PWD/qdeclarativevme.cpp \
    $$PWD/qdeclarativecompiler.cpp \
    $$PWD/qdeclarativecompileddata.cpp \
    $$PWD/qdeclarativeboundsignal.cpp \
    $$PWD/qdeclarativerefcount.cpp \
    $$PWD/qdeclarativemetatype.cpp \
    $$PWD/qdeclarativestringconverters.cpp \
    $$PWD/qdeclarativeparserstatus.cpp \
    $$PWD/qdeclarativetypeloader.cpp \
    $$PWD/qdeclarativeinfo.cpp \
    $$PWD/qdeclarativeerror.cpp \
    $$PWD/qdeclarativescriptparser.cpp \
    $$PWD/qdeclarativeenginedebug.cpp \
    $$PWD/qdeclarativerewrite.cpp \
    $$PWD/qdeclarativevaluetype.cpp \
    $$PWD/qdeclarativefastproperties.cpp \
    $$PWD/qdeclarativexmlhttprequest.cpp \
    $$PWD/qdeclarativesqldatabase.cpp \
    $$PWD/qmetaobjectbuilder.cpp \
    $$PWD/qdeclarativewatcher.cpp \
    $$PWD/qdeclarativecleanup.cpp \
    $$PWD/qdeclarativepropertycache.cpp \
    $$PWD/qdeclarativenotifier.cpp \
    $$PWD/qdeclarativeintegercache.cpp \
    $$PWD/qdeclarativetypenotavailable.cpp \
    $$PWD/qdeclarativetypenamecache.cpp \
    $$PWD/qdeclarativescriptstring.cpp \
    $$PWD/qdeclarativeobjectscriptclass.cpp \
    $$PWD/qdeclarativescarceresourcescriptclass.cpp \
    $$PWD/qdeclarativecontextscriptclass.cpp \
    $$PWD/qdeclarativeglobalscriptclass.cpp \
    $$PWD/qdeclarativevaluetypescriptclass.cpp \
    $$PWD/qdeclarativetypenamescriptclass.cpp \
    $$PWD/qdeclarativelistscriptclass.cpp \
    $$PWD/qdeclarativeworkerscript.cpp \
    $$PWD/qdeclarativeimageprovider.cpp \
    $$PWD/qdeclarativenetworkaccessmanagerfactory.cpp \
    $$PWD/qdeclarativedirparser.cpp \
    $$PWD/qdeclarativeextensionplugin.cpp \
    $$PWD/qdeclarativeimport.cpp \
    $$PWD/qdeclarativelist.cpp \
    $$PWD/qintrusivelist.cpp \

HEADERS += \
    $$PWD/qdeclarativeparser_p.h \
    $$PWD/qdeclarativeglobal_p.h \
    $$PWD/qdeclarativeinstruction_p.h \
    $$PWD/qdeclarativevmemetaobject_p.h \
    $$PWD/qdeclarative.h \
    $$PWD/qdeclarativebinding_p.h \
    $$PWD/qdeclarativebinding_p_p.h \
    $$PWD/qdeclarativeproperty.h \
    $$PWD/qdeclarativecomponent.h \
    $$PWD/qdeclarativecomponent_p.h \
    $$PWD/qdeclarativecustomparser_p.h \
    $$PWD/qdeclarativecustomparser_p_p.h \
    $$PWD/qdeclarativepropertyvaluesource.h \
    $$PWD/qdeclarativepropertyvalueinterceptor.h \
    $$PWD/qdeclarativeboundsignal_p.h \
    $$PWD/qdeclarativeparserstatus.h \
    $$PWD/qdeclarativeproxymetaobject_p.h \
    $$PWD/qdeclarativevme_p.h \
    $$PWD/qdeclarativecompiler_p.h \
    $$PWD/qdeclarativeengine_p.h \
    $$PWD/qdeclarativeexpression_p.h \
    $$PWD/qdeclarativeprivate.h \
    $$PWD/qdeclarativerefcount_p.h \
    $$PWD/qdeclarativemetatype_p.h \
    $$PWD/qdeclarativeengine.h \
    $$PWD/qdeclarativecontext.h \
    $$PWD/qdeclarativeexpression.h \
    $$PWD/qdeclarativestringconverters_p.h \
    $$PWD/qdeclarativeinfo.h \
    $$PWD/qdeclarativeproperty_p.h \
    $$PWD/qdeclarativecontext_p.h \
    $$PWD/qdeclarativeinclude_p.h \
    $$PWD/qdeclarativetypeloader_p.h \
    $$PWD/qdeclarativelist.h \
    $$PWD/qdeclarativelist_p.h \
    $$PWD/qdeclarativedata_p.h \
    $$PWD/qdeclarativeerror.h \
    $$PWD/qdeclarativescriptparser_p.h \
    $$PWD/qdeclarativeenginedebug_p.h \
    $$PWD/qdeclarativerewrite_p.h \
    $$PWD/qpodvector_p.h \
    $$PWD/qbitfield_p.h \
    $$PWD/qdeclarativevaluetype_p.h \
    $$PWD/qdeclarativefastproperties_p.h \
    $$PWD/qdeclarativexmlhttprequest_p.h \
    $$PWD/qdeclarativesqldatabase_p.h \
    $$PWD/qmetaobjectbuilder_p.h \
    $$PWD/qdeclarativewatcher_p.h \
    $$PWD/qdeclarativecleanup_p.h \
    $$PWD/qdeclarativepropertycache_p.h \
    $$PWD/qdeclarativenotifier_p.h \
    $$PWD/qdeclarativeintegercache_p.h \
    $$PWD/qdeclarativetypenotavailable_p.h \
    $$PWD/qdeclarativetypenamecache_p.h \
    $$PWD/qdeclarativescriptstring.h \
    $$PWD/qdeclarativeobjectscriptclass_p.h \
    $$PWD/qdeclarativescarceresourcescriptclass_p.h \
    $$PWD/qdeclarativecontextscriptclass_p.h \
    $$PWD/qdeclarativeglobalscriptclass_p.h \
    $$PWD/qdeclarativevaluetypescriptclass_p.h \
    $$PWD/qdeclarativetypenamescriptclass_p.h \
    $$PWD/qdeclarativelistscriptclass_p.h \
    $$PWD/qdeclarativeworkerscript_p.h \
    $$PWD/qdeclarativeguard_p.h \
    $$PWD/qdeclarativeimageprovider.h \
    $$PWD/qdeclarativenetworkaccessmanagerfactory.h \
    $$PWD/qdeclarativedirparser_p.h \
    $$PWD/qdeclarativeextensioninterface.h \
    $$PWD/qdeclarativeimport_p.h \
    $$PWD/qdeclarativeextensionplugin.h \
    $$PWD/qintrusivelist_p.h \

QT += sql
include(parser/parser.pri)
include(rewriter/rewriter.pri)
include(v4/v4.pri)

# clock_gettime() is implemented in librt on these systems
contains(QT_CONFIG, clock-gettime) {
    linux-*|hpux-*|solaris-*:LIBS_PRIVATE *= -lrt
}

INCLUDEPATH += $$PWD
SOURCES += \
    $$PWD/qdeclarativeparser.cpp \
    $$PWD/qdeclarativeinstruction.cpp \
    $$PWD/qdeclarativevmemetaobject.cpp \
    $$PWD/qdeclarativeengine.cpp \
    $$PWD/qdeclarativeexpression.cpp \
    $$PWD/qdeclarativebinding.cpp \
    $$PWD/qdeclarativeproperty.cpp \
    $$PWD/qdeclarativecomponent.cpp \
    $$PWD/qdeclarativecontext.cpp \
    $$PWD/qdeclarativeinclude.cpp \
    $$PWD/qdeclarativecustomparser.cpp \
    $$PWD/qdeclarativepropertyvaluesource.cpp \
    $$PWD/qdeclarativepropertyvalueinterceptor.cpp \
    $$PWD/qdeclarativeproxymetaobject.cpp \
    $$PWD/qdeclarativevme.cpp \
    $$PWD/qdeclarativecompiler.cpp \
    $$PWD/qdeclarativecompileddata.cpp \
    $$PWD/qdeclarativeboundsignal.cpp \
    $$PWD/qdeclarativerefcount.cpp \
    $$PWD/qdeclarativemetatype.cpp \
    $$PWD/qdeclarativestringconverters.cpp \
    $$PWD/qdeclarativeparserstatus.cpp \
    $$PWD/qdeclarativetypeloader.cpp \
    $$PWD/qdeclarativeinfo.cpp \
    $$PWD/qdeclarativeerror.cpp \
    $$PWD/qdeclarativescriptparser.cpp \
    $$PWD/qdeclarativeenginedebug.cpp \
    $$PWD/qdeclarativerewrite.cpp \
    $$PWD/qdeclarativevaluetype.cpp \
    $$PWD/qdeclarativefastproperties.cpp \
    $$PWD/qdeclarativexmlhttprequest.cpp \
    $$PWD/qdeclarativesqldatabase.cpp \
    $$PWD/qmetaobjectbuilder.cpp \
    $$PWD/qdeclarativewatcher.cpp \
    $$PWD/qdeclarativecleanup.cpp \
    $$PWD/qdeclarativepropertycache.cpp \
    $$PWD/qdeclarativenotifier.cpp \
    $$PWD/qdeclarativeintegercache.cpp \
    $$PWD/qdeclarativetypenotavailable.cpp \
    $$PWD/qdeclarativetypenamecache.cpp \
    $$PWD/qdeclarativescriptstring.cpp \
    $$PWD/qdeclarativeobjectscriptclass.cpp \
    $$PWD/qdeclarativescarceresourcescriptclass.cpp \
    $$PWD/qdeclarativecontextscriptclass.cpp \
    $$PWD/qdeclarativeglobalscriptclass.cpp \
    $$PWD/qdeclarativevaluetypescriptclass.cpp \
    $$PWD/qdeclarativetypenamescriptclass.cpp \
    $$PWD/qdeclarativelistscriptclass.cpp \
    $$PWD/qdeclarativeworkerscript.cpp \
    $$PWD/qdeclarativeimageprovider.cpp \
    $$PWD/qdeclarativenetworkaccessmanagerfactory.cpp \
    $$PWD/qdeclarativedirparser.cpp \
    $$PWD/qdeclarativeextensionplugin.cpp \
    $$PWD/qdeclarativeimport.cpp \
    $$PWD/qdeclarativelist.cpp \
    $$PWD/qintrusivelist.cpp \

HEADERS += \
    $$PWD/qdeclarativeparser_p.h \
    $$PWD/qdeclarativeglobal_p.h \
    $$PWD/qdeclarativeinstruction_p.h \
    $$PWD/qdeclarativevmemetaobject_p.h \
    $$PWD/qdeclarative.h \
    $$PWD/qdeclarativebinding_p.h \
    $$PWD/qdeclarativebinding_p_p.h \
    $$PWD/qdeclarativeproperty.h \
    $$PWD/qdeclarativecomponent.h \
    $$PWD/qdeclarativecomponent_p.h \
    $$PWD/qdeclarativecustomparser_p.h \
    $$PWD/qdeclarativecustomparser_p_p.h \
    $$PWD/qdeclarativepropertyvaluesource.h \
    $$PWD/qdeclarativepropertyvalueinterceptor.h \
    $$PWD/qdeclarativeboundsignal_p.h \
    $$PWD/qdeclarativeparserstatus.h \
    $$PWD/qdeclarativeproxymetaobject_p.h \
    $$PWD/qdeclarativevme_p.h \
    $$PWD/qdeclarativecompiler_p.h \
    $$PWD/qdeclarativeengine_p.h \
    $$PWD/qdeclarativeexpression_p.h \
    $$PWD/qdeclarativeprivate.h \
    $$PWD/qdeclarativerefcount_p.h \
    $$PWD/qdeclarativemetatype_p.h \
    $$PWD/qdeclarativeengine.h \
    $$PWD/qdeclarativecontext.h \
    $$PWD/qdeclarativeexpression.h \
    $$PWD/qdeclarativestringconverters_p.h \
    $$PWD/qdeclarativeinfo.h \
    $$PWD/qdeclarativeproperty_p.h \
    $$PWD/qdeclarativecontext_p.h \
    $$PWD/qdeclarativeinclude_p.h \
    $$PWD/qdeclarativetypeloader_p.h \
    $$PWD/qdeclarativelist.h \
    $$PWD/qdeclarativelist_p.h \
    $$PWD/qdeclarativedata_p.h \
    $$PWD/qdeclarativeerror.h \
    $$PWD/qdeclarativescriptparser_p.h \
    $$PWD/qdeclarativeenginedebug_p.h \
    $$PWD/qdeclarativerewrite_p.h \
    $$PWD/qpodvector_p.h \
    $$PWD/qbitfield_p.h \
    $$PWD/qdeclarativevaluetype_p.h \
    $$PWD/qdeclarativefastproperties_p.h \
    $$PWD/qdeclarativexmlhttprequest_p.h \
    $$PWD/qdeclarativesqldatabase_p.h \
    $$PWD/qmetaobjectbuilder_p.h \
    $$PWD/qdeclarativewatcher_p.h \
    $$PWD/qdeclarativecleanup_p.h \
    $$PWD/qdeclarativepropertycache_p.h \
    $$PWD/qdeclarativenotifier_p.h \
    $$PWD/qdeclarativeintegercache_p.h \
    $$PWD/qdeclarativetypenotavailable_p.h \
    $$PWD/qdeclarativetypenamecache_p.h \
    $$PWD/qdeclarativescriptstring.h \
    $$PWD/qdeclarativeobjectscriptclass_p.h \
    $$PWD/qdeclarativescarceresourcescriptclass_p.h \
    $$PWD/qdeclarativecontextscriptclass_p.h \
    $$PWD/qdeclarativeglobalscriptclass_p.h \
    $$PWD/qdeclarativevaluetypescriptclass_p.h \
    $$PWD/qdeclarativetypenamescriptclass_p.h \
    $$PWD/qdeclarativelistscriptclass_p.h \
    $$PWD/qdeclarativeworkerscript_p.h \
    $$PWD/qdeclarativeguard_p.h \
    $$PWD/qdeclarativeimageprovider.h \
    $$PWD/qdeclarativenetworkaccessmanagerfactory.h \
    $$PWD/qdeclarativedirparser_p.h \
    $$PWD/qdeclarativeextensioninterface.h \
    $$PWD/qdeclarativeimport_p.h \
    $$PWD/qdeclarativeextensionplugin.h \
    $$PWD/qintrusivelist_p.h \

QT += sql
include(parser/parser.pri)
include(rewriter/rewriter.pri)
include(v4/v4.pri)

# mirrors logic in corelib/kernel/kernel.pri
unix:!symbian: contains(QT_CONFIG, clock-gettime):include($$QT_SOURCE_TREE/config.tests/unix/clock-gettime/clock-gettime.pri)


Fix spaces

Fix spaces

VERSION = $$cat(version.txt)

PRODUCT_VERSION = $$(PRODUCT_VERSION)
BUILD_NUMBER = $$(BUILD_NUMBER)

!isEmpty(PRODUCT_VERSION){
    !isEmpty(BUILD_NUMBER){
        VERSION = $${PRODUCT_VERSION}.$${BUILD_NUMBER}
    }
}

DEFINES += INTVER=$$VERSION

PUBLISHER_NAME = $$(PUBLISHER_NAME)
isEmpty(PUBLISHER_NAME){
    PUBLISHER_NAME = $$cat(copyright.txt)
}

OO_BUILD_BRANDING = $$(OO_BRANDING)
OO_DESTDIR_BUILD_OVERRIDE = $$(DESTDIR_BUILD_OVERRIDE)

win32 {
    CURRENT_YEAR = $$system(wmic PATH Win32_LocalTime GET ^Year /FORMAT:VALUE | find \"=\")
    CURRENT_YEAR = $$replace(CURRENT_YEAR, "Year=", "")
    CURRENT_YEAR = $$replace(CURRENT_YEAR, "\r", "")
    CURRENT_YEAR = $$replace(CURRENT_YEAR, "\n", "")
    CURRENT_YEAR = $$replace(CURRENT_YEAR, "\t", "")
}

!win32 {
    CURRENT_YEAR = $$system(date +%Y)
}

QMAKE_TARGET_COMPANY = $$PUBLISHER_NAME
QMAKE_TARGET_COPYRIGHT = Copyright (C) $${PUBLISHER_NAME} $${CURRENT_YEAR}. All rights reserved

# CONFIGURATION
CONFIG(debug, debug|release) {
    CONFIG += core_debug
} else {
    CONFIG += core_release
}

not_use_dynamic_libs {
shared {
    CONFIG -= shared
    CONFIG -= plugin
    CONFIG += staticlib
}
}

#PLATFORM
win32 {
    CONFIG += core_windows

    WINDOWS_VERSION_XP = $$(WINDOWS_VERSION_XP)
    !isEmpty(WINDOWS_VERSION_XP) {
        CONFIG += build_xp
        message(xp using)
    }
}

DST_ARCH=$$QMAKE_TARGET.arch
isEqual(QT_MAJOR_VERSION, 5) {
    DST_ARCH=$$QT_ARCH
    # QT_ARCH uses 'i386' instead of 'x86',
    # so map that value back to what we expect.
    equals(DST_ARCH, i386) {
        DST_ARCH=x86
    }
}

DEFINES += INTERNAL_USE_ARRAY_AS_VECTOR

ios {
    CONFIG += core_ios
    DEFINES += _IOS IOS LINUX _LINUX MAC _MAC _XCODE
}
android {
    CONFIG += core_android
    DEFINES += __ANDROID__ LINUX _LINUX
}

win32:contains(QMAKE_TARGET.arch, x86_64): {
    CONFIG += core_win_64
}
win32:!contains(QMAKE_TARGET.arch, x86_64): {
    CONFIG += core_win_32
}

linux-g++ {
    CONFIG += core_linux
linux-g++:contains(QMAKE_HOST.arch, x86_64): {
    message("linux-64")
    CONFIG += core_linux_64
}
linux-g++:!contains(QMAKE_HOST.arch, x86_64): {
    message("linux-32")
    CONFIG += core_linux_32
}
linux-g++:contains(DST_ARCH, arm): {
    message("arm")
    CONFIG += core_linux_arm
    DEFINES += LINUX_ARM
}
}

linux-g++-64 {
    message("linux-64")
    CONFIG += core_linux
    CONFIG += core_linux_64
}
linux-g++-32 {
    message("linux-32")
    CONFIG += core_linux
    CONFIG += core_linux_32
}

mac {
    !core_ios {
        CONFIG += core_mac
        CONFIG += core_mac_64
    }
}

# DEFINES
core_windows {
    DEFINES += WIN32 _WIN32
    DEFINES += NOMINMAX
}
core_win_64 {
    DEFINES += WIN64 _WIN64
}

core_linux {
    DEFINES += LINUX _LINUX
}

core_mac {
    DEFINES += LINUX _LINUX MAC _MAC
    QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.11
    QMAKE_LFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH

    QMAKE_CFLAGS += "-Wno-implicit-function-declaration"
}

# PREFIXES
core_windows {
    CONFIG -= debug_and_release debug_and_release_target
    QMAKE_CXXFLAGS_RELEASE -= -Zc:strictStrings
    QMAKE_CXXFLAGS -= -Zc:strictStrings
    QMAKE_CXXFLAGS += /MP
    DEFINES += WINDOWS_IGNORE_PACKING_MISMATCH

    equals(TEMPLATE, app) {
        console {
            core_win_64:QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE,5.02
            core_win_32:QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE,5.01
        } else {
            core_win_64:QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.02
            core_win_32:QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01
        }
    }
}

core_linux {
    equals(TEMPLATE, app) {
        QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN\'"
        QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN/system\'"
        QMAKE_LFLAGS += -Wl,--disable-new-dtags
    }
}

core_win_32 {
    CORE_BUILDS_PLATFORM_PREFIX = win_32
}
core_win_64 {
    CORE_BUILDS_PLATFORM_PREFIX = win_64
}
core_linux_32 {
    CORE_BUILDS_PLATFORM_PREFIX = linux_32
}
core_linux_64 {
    CORE_BUILDS_PLATFORM_PREFIX = linux_64
}
core_mac_64 {
    CORE_BUILDS_PLATFORM_PREFIX = mac_64
}
core_linux_arm {
    CORE_BUILDS_PLATFORM_PREFIX = arm
}
core_ios {
    CORE_BUILDS_PLATFORM_PREFIX = ios

    CONFIG(iphonesimulator, iphoneos|iphonesimulator): {
        message("iphonesimulator")
        CORE_BUILDS_PLATFORM_PREFIX = ios_simulator
    } else {

        QMAKE_IOS_DEPLOYMENT_TARGET = 10.0
        CONFIG += core_ios_main_arch

        QMAKE_CFLAGS += -fembed-bitcode
        QMAKE_CXXFLAGS += -fembed-bitcode
        QMAKE_LFLAGS += -fembed-bitcode

        core_ios_main_arch {
            QMAKE_APPLE_DEVICE_ARCHS = arm64
            core_ios_no_simulator_arch : QMAKE_APPLE_SIMULATOR_ARCHS=

            !core_ios_no_32 {
                QMAKE_APPLE_DEVICE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS armv7
            }
        } else {
            plugin : TARGET = $$join(TARGET, TARGET, "", "_addition")
            QMAKE_APPLE_DEVICE_ARCHS=
            QMAKE_APPLE_SIMULATOR_ARCHS=
        }

        core_ios_nomain_arch {
            QMAKE_APPLE_DEVICE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS arm64e
            !core_ios_no_32 {
                QMAKE_APPLE_DEVICE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS armv7s
            }
        }

        !no_verify_bitcode {
            # for application: (using xcodebuild)
            #Q_ENABLE_BITCODE.name = ENABLE_BITCODE
            #Q_ENABLE_BITCODE.value = NO
            #
            #Q_BITCODE_GENERATION_MODE.name = BITCODE_GENERATION_MODE
            #Q_BITCODE_GENERATION_MODE.value = marker
            #
            #QMAKE_MAC_XCODE_SETTINGS += Q_ENABLE_BITCODE
            #QMAKE_MAC_XCODE_SETTINGS += Q_BITCODE_GENERATION_MODE

            # for libraries
            !core_debug {
                QMAKE_LFLAGS += -Xlinker -bitcode_verify
                QMAKE_LFLAGS += -Xlinker -bitcode_hide_symbols
                #QMAKE_LFLAGS += -Xlinker -bitcode_symbol_map -Xlinker $$CORE_BUILDS_LIBRARIES_PATH
            }
        }
    }

    !core_ios_no_unistd {
        DEFINES += HAVE_UNISTD_H
    }
}

core_android {
    CORE_BUILDS_PLATFORM_PREFIX = $$join(ANDROID_TARGET_ARCH, ANDROID_TARGET_ARCH, "android_", "")
    CORE_BUILDS_PLATFORM_PREFIX = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "-", "_")
    CORE_BUILDS_PLATFORM_PREFIX = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "armeabi_v7", "armv7")
    CORE_BUILDS_PLATFORM_PREFIX = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "armv7a", "armv7")

    !isEmpty(OO_DESTDIR_BUILD_OVERRIDE) {
        isEqual(CORE_BUILDS_PLATFORM_PREFIX, android_arm64_v8a):OO_DESTDIR_BUILD_OVERRIDE=$$OO_DESTDIR_BUILD_OVERRIDE/arm64-v8a
        isEqual(CORE_BUILDS_PLATFORM_PREFIX, android_armv7):OO_DESTDIR_BUILD_OVERRIDE=$$OO_DESTDIR_BUILD_OVERRIDE/armeabi-v7a
        isEqual(CORE_BUILDS_PLATFORM_PREFIX, android_x86):OO_DESTDIR_BUILD_OVERRIDE=$$OO_DESTDIR_BUILD_OVERRIDE/x86
        isEqual(CORE_BUILDS_PLATFORM_PREFIX, android_x86_64):OO_DESTDIR_BUILD_OVERRIDE=$$OO_DESTDIR_BUILD_OVERRIDE/x86_64
    }

    core_debug {
        QMAKE_LFLAGS += -Wl,--build-id=sha1
    }

    !core_android_no_unistd {
        DEFINES += HAVE_UNISTD_H
    }
}

core_debug {
    CORE_BUILDS_CONFIGURATION_PREFIX    = debug
}
core_release {
    CORE_BUILDS_CONFIGURATION_PREFIX    = release
}

# MESSAGE
message($$CORE_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX)

# COMPILER
CONFIG += c++11

core_linux {
core_static_link_libstd {
    QMAKE_LFLAGS += -static-libstdc++ -static-libgcc
    message(core_static_link_libstd)
}
plugin {
    QMAKE_CXXFLAGS += -fvisibility=hidden
    QMAKE_CFLAGS += -fvisibility=hidden

    TARGET_EXT = .so
}
}

core_mac {
plugin {
    QMAKE_CXXFLAGS += -fvisibility=hidden
    QMAKE_CFLAGS += -fvisibility=hidden
}
}

core_windows {
plugin {
    TARGET_EXT = .dll
}
}

# BUILD_PATHS
# MUST BE DEFINED CORE_ROOT_DIR
!core_no_dst {
DESTDIR     = $$PWD_ROOT_DIR/core_build/$$CORE_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX
OBJECTS_DIR = $$PWD_ROOT_DIR/core_build/$$CORE_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX/obj
MOC_DIR     = $$PWD_ROOT_DIR/core_build/$$CORE_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX/moc
RCC_DIR     = $$PWD_ROOT_DIR/core_build/$$CORE_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX/rcc
UI_DIR      = $$PWD_ROOT_DIR/core_build/$$CORE_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX/ui
build_xp {
    OBJECTS_DIR = $$OBJECTS_DIR/xp
    MOC_DIR     = $$MOC_DIR/xp
    RCC_DIR     = $$RCC_DIR/xp
    UI_DIR      = $$UI_DIR/xp
}
}

CORE_BUILDS_LIBRARIES_PATH = $$CORE_ROOT_DIR/build/lib/$$CORE_BUILDS_PLATFORM_PREFIX
CORE_BUILDS_BINARY_PATH = $$CORE_ROOT_DIR/build/bin/$$CORE_BUILDS_PLATFORM_PREFIX

!isEmpty(OO_BUILD_BRANDING) {
    CORE_BUILDS_LIBRARIES_PATH = $$CORE_ROOT_DIR/build/$$OO_BUILD_BRANDING/lib/$$CORE_BUILDS_PLATFORM_PREFIX
    CORE_BUILDS_BINARY_PATH = $$CORE_ROOT_DIR/build/$$OO_BUILD_BRANDING/bin/$$CORE_BUILDS_PLATFORM_PREFIX
}

core_debug {
    CORE_BUILDS_LIBRARIES_PATH = $$CORE_BUILDS_LIBRARIES_PATH/debug
    CORE_BUILDS_BINARY_PATH = $$CORE_BUILDS_BINARY_PATH/debug
}

!isEmpty(OO_DESTDIR_BUILD_OVERRIDE) {
    CORE_BUILDS_LIBRARIES_PATH = $$OO_DESTDIR_BUILD_OVERRIDE
    CORE_BUILDS_BINARY_PATH = $$OO_DESTDIR_BUILD_OVERRIDE
}

plugin {
    DESTDIR = $$CORE_BUILDS_LIBRARIES_PATH
}
staticlib {
    DESTDIR = $$CORE_BUILDS_LIBRARIES_PATH
}

core_x2t {
core_windows {
    QMAKE_CXXFLAGS += /bigobj
} else {
    QMAKE_CXXFLAGS += -Wall -Wno-ignored-qualifiers
}

DEFINES += CRYPTOPP_DISABLE_ASM
}

core_ios {
    bundle_dylibs {
        plugin {
            CONFIG -= plugin
            CONFIG += lib_bundle

            QMAKE_LFLAGS_SONAME = -Wl,-install_name,@rpath/
            #QMAKE_LFLAGS += -Xlinker -rpath -Xlinker @executable_path/Frameworks
            #QMAKE_LFLAGS += -Xlinker -rpath -Xlinker @loader_path/Frameworks

            # correct version to < 256
            VERSIONS = $$split(VERSION, ".")
            VERSION_1 = $$member(VERSIONS, 0)
            VERSION_2 = $$member(VERSIONS, 1)
            VERSION_3 = $$member(VERSIONS, 2)
            VERSION_4 = $$member(VERSIONS, 3)

            greaterThan(VERSION_1, 255): VERSION_1 = 255
            greaterThan(VERSION_2, 255): VERSION_2 = 255
            greaterThan(VERSION_3, 255): VERSION_3 = 255
            greaterThan(VERSION_4, 255): VERSION_4 = 255

            VERSION_CORRECT = $$VERSION_1
            VERSION_CORRECT = $$join(VERSION_CORRECT, "", "", ".")
            VERSION_CORRECT = $$join(VERSION_CORRECT, "", "", $$VERSION_2)
            VERSION_CORRECT = $$join(VERSION_CORRECT, "", "", ".")
            VERSION_CORRECT = $$join(VERSION_CORRECT, "", "", $$VERSION_3)
            VERSION_CORRECT = $$join(VERSION_CORRECT, "", "", ".")
            VERSION_CORRECT = $$join(VERSION_CORRECT, "", "", $$VERSION_4)

            VERSION = $$VERSION_CORRECT
        }
    }
}

defineTest(ADD_DEPENDENCY) {
    libs = $$ARGS
    for(lib, libs) {
        CORE_BUILDS_LIBRARIES_PATH_DST=$$CORE_BUILDS_LIBRARIES_PATH
        build_xp {
            isEqual(lib, doctrenderer):CORE_BUILDS_LIBRARIES_PATH_DST=$$CORE_BUILDS_LIBRARIES_PATH/xp
            isEqual(lib, ascdocumentscore):CORE_BUILDS_LIBRARIES_PATH_DST=$$CORE_BUILDS_LIBRARIES_PATH/xp
            isEqual(lib, videoplayer):CORE_BUILDS_LIBRARIES_PATH_DST=$$CORE_BUILDS_LIBRARIES_PATH/xp
            isEqual(lib, ooxmlsignature):CORE_BUILDS_LIBRARIES_PATH_DST=$$CORE_BUILDS_LIBRARIES_PATH/xp
        }
        !bundle_dylibs:LIBS += -L$$CORE_BUILDS_LIBRARIES_PATH_DST -l$$lib
        bundle_dylibs:LIBS += -F$$CORE_BUILDS_LIBRARIES_PATH_DST -framework $$lib
    }
    export(LIBS)
}

ADD_INC_PATH = $$(ADDITIONAL_INCLUDE_PATH)
!isEmpty(ADD_INC_PATH):INCLUDEPATH += $$ADD_INC_PATH


Changes: remove duplicate header

Changes: remove duplicate header

RevBy: TrustMe

WIDGETS_DIR = ./widgets

PUBLIC_HEADERS += \
    $$WIDGETS_DIR/mimabstractkey.h \
    $$WIDGETS_DIR/popupbase.h \
    $$WIDGETS_DIR/popupplugin.h \
    $$WIDGETS_DIR/mimoverlay.h \
    $$WIDGETS_DIR/mimabstractkeyarea.h \
    $$WIDGETS_DIR/mimkeyvisitor.h \
    $$WIDGETS_DIR/mimkey.h \
    $$WIDGETS_DIR/mimkeyarea.h \
    $$WIDGETS_DIR/reactionmappaintable.h \

PUBLIC_STYLE_HEADERS += \
    $$WIDGETS_DIR/mvirtualkeyboardstyle.h \
    $$WIDGETS_DIR/mimabstractkeyareastyle.h \

STYLE_HEADERS += \
    $$PUBLIC_STYLE_HEADERS \
    $$WIDGETS_DIR/widgetbarstyle.h \
    $$WIDGETS_DIR/handlestyle.h \
    $$WIDGETS_DIR/mtoolbarbuttonstyle.h \
    $$WIDGETS_DIR/mimtoolbarstyle.h \
    $$WIDGETS_DIR/mimwordtrackerstyle.h \
    $$WIDGETS_DIR/mimcorrectioncandidateitemstyle.h \
    $$WIDGETS_DIR/mtoolbarlabelstyle.h \

HEADERS += \
    $$PUBLIC_HEADERS \
    $$STYLE_HEADERS \
    $$WIDGETS_DIR/widgetbar.h \
    $$WIDGETS_DIR/mimcorrectionhost.h \
    $$WIDGETS_DIR/mimcorrectioncandidateitem.h \
    $$WIDGETS_DIR/mimwordtracker.h \
    $$WIDGETS_DIR/mimwordlist.h \
    $$WIDGETS_DIR/mimwordlistitem.h \
    $$WIDGETS_DIR/mimtoolbar.h \
    $$WIDGETS_DIR/mvirtualkeyboard.h \
    $$WIDGETS_DIR/horizontalswitcher.h \
    $$WIDGETS_DIR/notification.h \
    $$WIDGETS_DIR/symbolview.h \
    $$WIDGETS_DIR/mimkey.h \
    $$WIDGETS_DIR/popupfactory.h \
    $$WIDGETS_DIR/mtoolbarbutton.h \
    $$WIDGETS_DIR/mtoolbarbuttonview.h \
    $$WIDGETS_DIR/mtoolbarlabel.h \
    $$WIDGETS_DIR/handle.h \
    $$WIDGETS_DIR/grip.h \
    $$WIDGETS_DIR/sharedhandlearea.h \
    $$WIDGETS_DIR/mkeyboardsettingswidget.h \
    $$WIDGETS_DIR/getcssproperty.h \
    $$WIDGETS_DIR/mtoolbarlabelview.h \
    $$WIDGETS_DIR/mplainwindow.h \

INSTALL_HEADERS += $$PUBLIC_HEADERS + $$PUBLIC_STYLE_HEADERS

SOURCES += \
    $$WIDGETS_DIR/widgetbar.cpp \
    $$WIDGETS_DIR/mimcorrectionhost.cpp \
    $$WIDGETS_DIR/mimcorrectioncandidateitem.cpp \
    $$WIDGETS_DIR/mimwordtracker.cpp \
    $$WIDGETS_DIR/mimwordlist.cpp \
    $$WIDGETS_DIR/mimwordlistitem.cpp \
    $$WIDGETS_DIR/mimtoolbar.cpp \
    $$WIDGETS_DIR/mvirtualkeyboard.cpp \
    $$WIDGETS_DIR/horizontalswitcher.cpp \
    $$WIDGETS_DIR/notification.cpp \
    $$WIDGETS_DIR/symbolview.cpp \
    $$WIDGETS_DIR/mimabstractkey.cpp \
    $$WIDGETS_DIR/mimabstractkeyarea.cpp \
    $$WIDGETS_DIR/mimkeyvisitor.cpp \
    $$WIDGETS_DIR/mimkey.cpp \
    $$WIDGETS_DIR/mimkeyarea.cpp \
    $$WIDGETS_DIR/mplainwindow.cpp \
    $$WIDGETS_DIR/popupbase.cpp \
    $$WIDGETS_DIR/popupfactory.cpp \
    $$WIDGETS_DIR/mtoolbarbutton.cpp \
    $$WIDGETS_DIR/mtoolbarbuttonview.cpp \
    $$WIDGETS_DIR/mtoolbarlabel.cpp \
    $$WIDGETS_DIR/handle.cpp \
    $$WIDGETS_DIR/grip.cpp \
    $$WIDGETS_DIR/sharedhandlearea.cpp \
    $$WIDGETS_DIR/mkeyboardsettingswidget.cpp \
    $$WIDGETS_DIR/mimoverlay.cpp \
    $$WIDGETS_DIR/mtoolbarlabelview.cpp \
    $$WIDGETS_DIR/reactionmappaintable.cpp \

INCLUDEPATH += $$WIDGETS_DIR
DEPENDPATH += $$WIDGETS_DIR

WIDGETS_DIR = ./widgets

PUBLIC_HEADERS += \
    $$WIDGETS_DIR/mimabstractkey.h \
    $$WIDGETS_DIR/popupbase.h \
    $$WIDGETS_DIR/popupplugin.h \
    $$WIDGETS_DIR/mimoverlay.h \
    $$WIDGETS_DIR/mimabstractkeyarea.h \
    $$WIDGETS_DIR/mimkeyvisitor.h \
    $$WIDGETS_DIR/mimkey.h \
    $$WIDGETS_DIR/mimkeyarea.h \
    $$WIDGETS_DIR/reactionmappaintable.h \

PUBLIC_STYLE_HEADERS += \
    $$WIDGETS_DIR/mvirtualkeyboardstyle.h \
    $$WIDGETS_DIR/mimabstractkeyareastyle.h \

STYLE_HEADERS += \
    $$PUBLIC_STYLE_HEADERS \
    $$WIDGETS_DIR/widgetbarstyle.h \
    $$WIDGETS_DIR/handlestyle.h \
    $$WIDGETS_DIR/mtoolbarbuttonstyle.h \
    $$WIDGETS_DIR/mimtoolbarstyle.h \
    $$WIDGETS_DIR/mimwordtrackerstyle.h \
    $$WIDGETS_DIR/mimcorrectioncandidateitemstyle.h \
    $$WIDGETS_DIR/mtoolbarlabelstyle.h \

HEADERS += \
    $$PUBLIC_HEADERS \
    $$STYLE_HEADERS \
    $$WIDGETS_DIR/widgetbar.h \
    $$WIDGETS_DIR/mimcorrectionhost.h \
    $$WIDGETS_DIR/mimcorrectioncandidateitem.h \
    $$WIDGETS_DIR/mimwordtracker.h \
    $$WIDGETS_DIR/mimwordlist.h \
    $$WIDGETS_DIR/mimwordlistitem.h \
    $$WIDGETS_DIR/mimtoolbar.h \
    $$WIDGETS_DIR/mvirtualkeyboard.h \
    $$WIDGETS_DIR/horizontalswitcher.h \
    $$WIDGETS_DIR/notification.h \
    $$WIDGETS_DIR/symbolview.h \
    $$WIDGETS_DIR/mimkey.h \
    $$WIDGETS_DIR/mimkeyarea.h \
    $$WIDGETS_DIR/popupfactory.h \
    $$WIDGETS_DIR/mtoolbarbutton.h \
    $$WIDGETS_DIR/mtoolbarbuttonview.h \
    $$WIDGETS_DIR/mtoolbarlabel.h \
    $$WIDGETS_DIR/handle.h \
    $$WIDGETS_DIR/grip.h \
    $$WIDGETS_DIR/sharedhandlearea.h \
    $$WIDGETS_DIR/mkeyboardsettingswidget.h \
    $$WIDGETS_DIR/getcssproperty.h \
    $$WIDGETS_DIR/mtoolbarlabelview.h \
    $$WIDGETS_DIR/mplainwindow.h \

INSTALL_HEADERS += $$PUBLIC_HEADERS + $$PUBLIC_STYLE_HEADERS

SOURCES += \
    $$WIDGETS_DIR/widgetbar.cpp \
    $$WIDGETS_DIR/mimcorrectionhost.cpp \
    $$WIDGETS_DIR/mimcorrectioncandidateitem.cpp \
    $$WIDGETS_DIR/mimwordtracker.cpp \
    $$WIDGETS_DIR/mimwordlist.cpp \
    $$WIDGETS_DIR/mimwordlistitem.cpp \
    $$WIDGETS_DIR/mimtoolbar.cpp \
    $$WIDGETS_DIR/mvirtualkeyboard.cpp \
    $$WIDGETS_DIR/horizontalswitcher.cpp \
    $$WIDGETS_DIR/notification.cpp \
    $$WIDGETS_DIR/symbolview.cpp \
    $$WIDGETS_DIR/mimabstractkey.cpp \
    $$WIDGETS_DIR/mimabstractkeyarea.cpp \
    $$WIDGETS_DIR/mimkeyvisitor.cpp \
    $$WIDGETS_DIR/mimkey.cpp \
    $$WIDGETS_DIR/mimkeyarea.cpp \
    $$WIDGETS_DIR/mplainwindow.cpp \
    $$WIDGETS_DIR/popupbase.cpp \
    $$WIDGETS_DIR/popupfactory.cpp \
    $$WIDGETS_DIR/mtoolbarbutton.cpp \
    $$WIDGETS_DIR/mtoolbarbuttonview.cpp \
    $$WIDGETS_DIR/mtoolbarlabel.cpp \
    $$WIDGETS_DIR/handle.cpp \
    $$WIDGETS_DIR/grip.cpp \
    $$WIDGETS_DIR/sharedhandlearea.cpp \
    $$WIDGETS_DIR/mkeyboardsettingswidget.cpp \
    $$WIDGETS_DIR/mimoverlay.cpp \
    $$WIDGETS_DIR/mtoolbarlabelview.cpp \
    $$WIDGETS_DIR/reactionmappaintable.cpp \

INCLUDEPATH += $$WIDGETS_DIR
DEPENDPATH += $$WIDGETS_DIR


Version 0.138

Version 0.138


Version 0.39

Version 0.39


version update

version update


Version 0.2

Version 0.2


fixing bad library order by QMAKE_LIBDIR

include(./../../dcpconfig.pri)

INCLUDEPATH +=/usr/include/dui ../doubles

SRCDIR = ./../../src

DEPENDPATH = $$INCLUDEPATH

QMAKE_LIBDIR += ../../lib/ /usr/lib/

CONFIG += debug

QT += testlib

TEMPLATE = app

DEFINES += QT_NO_DEBUG_OUTPUT
#DEFINES += QT_NO_WARNING_OUTPUT
DEFINES += UNIT_TEST

target.path = $${DCP_INSTALL_LIB}/libduicontrolpanel-tests
INSTALLS += target
include(check.pri)
LIBS += -L../../lib/ -L/usr/lib -lduicontrolpanel
QMAKE_CXXFLAGS += -Werror
message($$target.path)

include(./../../dcpconfig.pri)

INCLUDEPATH +=/usr/include/dui ../doubles

SRCDIR = ./../../src

DEPENDPATH = $$INCLUDEPATH

CONFIG += debug

QT += testlib

TEMPLATE = app

DEFINES += QT_NO_DEBUG_OUTPUT
#DEFINES += QT_NO_WARNING_OUTPUT
DEFINES += UNIT_TEST

target.path = $${DCP_INSTALL_LIB}/libduicontrolpanel-tests
INSTALLS += target
include(check.pri)
LIBS += -L../../lib/ -L/usr/lib -lduicontrolpanel
QMAKE_CXXFLAGS += -Werror
message($$target.path)


QmlDesigner: Fix compile warning

QmlDesigner: Fix compile warning

Change-Id: I32665d8a9aadb7c3dec7f839477abe084ec66287
Reviewed-by: Thomas Hartmann <588ee739c05aab7547907becfd1420d2b7316069@digia.com>

INCLUDEPATH += $$PWD/

HEADERS += $$PWD/nodeinstanceclientinterface.h
HEADERS += $$PWD/nodeinstanceglobal.h
HEADERS += $$PWD/nodeinstanceserverinterface.h
HEADERS += $$PWD/commondefines.h

SOURCES += $$PWD/nodeinstanceserverinterface.cpp

INCLUDEPATH += $$PWD/

HEADERS += $$PWD/nodeinstanceclientinterface.h
HEADERS += $$PWD/interfaces/nodeinstanceglobal.h
HEADERS += $$PWD/nodeinstanceserverinterface.h
HEADERS += $$PWD/commondefines.h

SOURCES += $$PWD/nodeinstanceserverinterface.cpp


Fix QT_DISABLE_DEPRECATED_BEFORE definition

# uncomment if you want to build a static log4qt library
#DEFINES += LOG4QT_STATIC
# uncomment if you want to log to a database via databaselogger
# QT += sql

LOG4QT_VERSION_MAJOR = 1
LOG4QT_VERSION_MINOR = 6
LOG4QT_VERSION_PATCH = 0

DEFINES += LOG4QT_VERSION_MAJOR=$${LOG4QT_VERSION_MAJOR}
DEFINES += LOG4QT_VERSION_MINOR=$${LOG4QT_VERSION_MINOR}
DEFINES += LOG4QT_VERSION_PATCH=$${LOG4QT_VERSION_PATCH}
DEFINES += LOG4QT_VERSION_STR='\\"$${LOG4QT_VERSION_MAJOR}.$${LOG4QT_VERSION_MINOR}.$${LOG4QT_VERSION_PATCH}\\"'

DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x050F00
DEFINES += QT_DEPRECATED_WARNINGS

# uncomment if you want to build a static log4qt library
#DEFINES += LOG4QT_STATIC
# uncomment if you want to log to a database via databaselogger
# QT += sql

LOG4QT_VERSION_MAJOR = 1
LOG4QT_VERSION_MINOR = 6
LOG4QT_VERSION_PATCH = 0

DEFINES += LOG4QT_VERSION_MAJOR=$${LOG4QT_VERSION_MAJOR}
DEFINES += LOG4QT_VERSION_MINOR=$${LOG4QT_VERSION_MINOR}
DEFINES += LOG4QT_VERSION_PATCH=$${LOG4QT_VERSION_PATCH}
DEFINES += LOG4QT_VERSION_STR='\\"$${LOG4QT_VERSION_MAJOR}.$${LOG4QT_VERSION_MINOR}.$${LOG4QT_VERSION_PATCH}\\"'

DEFINES += QT_DISABLE_DEPRECATED_BEFORE==0x050F00
DEFINES += QT_DEPRECATED_WARNINGS


Add link folder

Add link folder

win32 {
	DEFINES += _VARIADIC_MAX=10
}
DEFINES += GTEST

#-------------------------------------------------
# gtest
#-------------------------------------------------
GTEST_PATH = $$PWD
INCLUDEPATH += $${GTEST_PATH}/include
win32:contains(QMAKE_TARGET.arch, x86_64) {
  win32:CONFIG(debug, debug|release) {
    LIBS += -L$${GTEST_PATH}/msvc/x64/Debug -lgtestd
  }
  win32:CONFIG(release, debug|release) {
    LIBS += -L$${GTEST_PATH}/msvc/x64/Release -lgtest
  }
} else {
  win32:CONFIG(debug, debug|release) {
    contains(QMAKE_CFLAGS_DEBUG, -MDd) {
      LIBS += -L$${GTEST_PATH}/msvc/gtest-md/Debug -lgtestd
    }
    contains(QMAKE_CFLAGS_DEBUG, -MTd) {
      LIBS += -L$${GTEST_PATH}/msvc/gtest/Debug -lgtestd
    }
  }
  win32:CONFIG(release, debug|release) {
    contains(QMAKE_CFLAGS_RELEASE, -MD) {
      LIBS += -L$${GTEST_PATH}/msvc/gtest-md/Release -lgtest
    }
    contains(QMAKE_CFLAGS_RELEASE, -MT) {
      LIBS += -L$${GTEST_PATH}/msvc/gtest/Release -lgtest
    }
  }
}
linux:LIBS += -L$${GTEST_PATH}/lib -lgtest

DEFINES+=_VARIADIC_MAX=10
DEFINES+=GTEST

#-------------------------------------------------
# gtest
#-------------------------------------------------
GTEST_PATH = $$PWD
INCLUDEPATH += $${GTEST_PATH}/include
win32:contains(QMAKE_TARGET.arch, x86_64) {
  win32:CONFIG(debug, debug|release) {
    LIBS += -L$${GTEST_PATH}/msvc/x64/Debug -lgtestd
  }
  win32:CONFIG(release, debug|release) {
    LIBS += -L$${GTEST_PATH}/msvc/x64/Release -lgtest
  }
} else {
  win32:CONFIG(debug, debug|release) {
    contains(QMAKE_CFLAGS_DEBUG, -MDd) {
      LIBS += -L$${GTEST_PATH}/msvc/gtest-md/Debug -lgtestd
    }
    contains(QMAKE_CFLAGS_DEBUG, -MTd) {
      LIBS += -L$${GTEST_PATH}/msvc/gtest/Debug -lgtestd
    }
  }
  win32:CONFIG(release, debug|release) {
    contains(QMAKE_CFLAGS_RELEASE, -MD) {
      LIBS += -L$${GTEST_PATH}/msvc/gtest-md/Release -lgtest
    }
    contains(QMAKE_CFLAGS_RELEASE, -MT) {
      LIBS += -L$${GTEST_PATH}/msvc/gtest/Release -lgtest
    }
  }
}
linux:LIBS += -L$${GTEST_PATH} -lgtest


fix compilation error on OSX/Qt5.5

fix compilation error on OSX/Qt5.5

HEADER_CLASSES = ../include/TAbstractModel ../include/TAbstractUser ../include/TActionContext ../include/TActionController ../include/TActionHelper ../include/TActionThread ../include/TActionView ../include/TPrototypeAjaxHelper ../include/TApplicationServerBase ../include/TThreadApplicationServer ../include/TPreforkApplicationServer ../include/TContentHeader ../include/TCookie ../include/TCookieJar ../include/TCriteria ../include/TCriteriaConverter ../include/TCryptMac ../include/TDirectView ../include/TDispatcher ../include/TGlobal ../include/THtmlAttribute ../include/THtmlParser ../include/THttpHeader ../include/THttpRequest ../include/THttpRequestHeader ../include/THttpResponse ../include/THttpResponseHeader ../include/THttpUtility ../include/TInternetMessageHeader ../include/TJavaScriptObject ../include/TLog ../include/TLogger ../include/TLoggerPlugin ../include/TMailMessage ../include/TModelUtil ../include/TMultipartFormData ../include/TOption ../include/TSession ../include/TSessionStore ../include/TSessionStorePlugin ../include/TSharedMemoryLogStream ../include/TSmtpMailer ../include/TSqlORMapper ../include/TSqlORMapperIterator ../include/TSqlObject ../include/TSqlQuery ../include/TSqlQueryORMapper ../include/TSystemGlobal ../include/TTemporaryFile ../include/TViewHelper ../include/TWebApplication ../include/TfException ../include/TfNamespace ../include/TreeFrogController ../include/TreeFrogModel ../include/TreeFrogView ../include/TAbstractController ../include/TActionMailer ../include/TFormValidator ../include/TSqlQueryORMapperIterator ../include/TAccessValidator ../include/TSqlTransaction ../include/TPaginator ../include/TKvsDatabase ../include/TKvsDriver ../include/TModelObject ../include/TPopMailer ../include/TMultiplexingServer ../include/TAccessLog ../include/TActionWorker ../include/TAtomicQueue ../include/TJsonUtil ../include/TScheduler ../include/TApplicationScheduler ../include/TCommandLineInterface ../include/TSendmailMailer ../include/TAppSettings ../include/TWebSocketEndpoint ../include/TDatabaseContext ../include/TWebSocketSession

HEADER_FILES = tabstractmodel.h tabstractuser.h tactioncontext.h tactioncontroller.h tactionhelper.h tactionthread.h tactionview.h tprototypeajaxhelper.h tapplicationserverbase.h tthreadapplicationserver.h tpreforkapplicationserver.h tcontentheader.h tcookie.h tcookiejar.h tcriteria.h tcriteriaconverter.h tcryptmac.h tdirectview.h tdispatcher.h tfcore.h tfexception.h tfnamespace.h tglobal.h thtmlattribute.h thtmlparser.h thttpheader.h thttprequest.h thttprequestheader.h thttpresponse.h thttpresponseheader.h thttputility.h tinternetmessageheader.h tjavascriptobject.h tlog.h tlogger.h tloggerplugin.h tmailmessage.h tmodelutil.h tmultipartformdata.h toption.h tsession.h tsessionstore.h tsessionstoreplugin.h tsharedmemorylogstream.h tsmtpmailer.h tsqlobject.h tsqlormapper.h tsqlormapperiterator.h tsqlquery.h tsqlqueryormapper.h tsystemglobal.h ttemporaryfile.h tviewhelper.h twebapplication.h tabstractcontroller.h tactionmailer.h tformvalidator.h tsqlqueryormapperiterator.h taccessvalidator.h tsqltransaction.h tpaginator.h tkvsdatabase.h tkvsdriver.h tmodelobject.h tpopmailer.h tmultiplexingserver.h taccesslog.h tactionworker.h tatomicqueue.h tjsonutil.h tscheduler.h tapplicationscheduler.h tcommandlineinterface.h tsendmailmailer.h tappsettings.h twebsocketendpoint.h tdatabasecontext.h tsystembus.h tprocessinfo.h twebsocketsession.h

unix {
  HEADER_FILES += tfcore_unix.h
}

MONGODB_CLASSES = ../include/TMongoCursor ../include/TBson ../include/TMongoDriver ../include/TMongoQuery ../include/TMongoObject ../include/TMongoODMapper ../include/TCriteriaMongoConverter

MONGODB_FILES = tmongocursor.h tbson.h tmongodriver.h tmongoquery.h tmongoobject.h tmongoodmapper.h tcriteriamongoconverter.h

TEST_CLASSES = ../include/TfTest/TfTest

TEST_FILES = tftest.h

HEADER_CLASSES = ../include/TAbstractModel ../include/TAbstractUser ../include/TActionContext ../include/TActionController ../include/TActionForkProcess ../include/TActionHelper ../include/TActionThread ../include/TActionView ../include/TPrototypeAjaxHelper ../include/TApplicationServerBase ../include/TThreadApplicationServer ../include/TPreforkApplicationServer ../include/TContentHeader ../include/TCookie ../include/TCookieJar ../include/TCriteria ../include/TCriteriaConverter ../include/TCryptMac ../include/TDirectView ../include/TDispatcher ../include/TGlobal ../include/THtmlAttribute ../include/THtmlParser ../include/THttpHeader ../include/THttpRequest ../include/THttpRequestHeader ../include/THttpResponse ../include/THttpResponseHeader ../include/THttpUtility ../include/TInternetMessageHeader ../include/TJavaScriptObject ../include/TLog ../include/TLogger ../include/TLoggerPlugin ../include/TMailMessage ../include/TModelUtil ../include/TMultipartFormData ../include/TOption ../include/TSession ../include/TSessionStore ../include/TSessionStorePlugin ../include/TSharedMemoryLogStream ../include/TSmtpMailer ../include/TSqlORMapper ../include/TSqlORMapperIterator ../include/TSqlObject ../include/TSqlQuery ../include/TSqlQueryORMapper ../include/TSystemGlobal ../include/TTemporaryFile ../include/TViewHelper ../include/TWebApplication ../include/TfException ../include/TfNamespace ../include/TreeFrogController ../include/TreeFrogModel ../include/TreeFrogView ../include/TAbstractController ../include/TActionMailer ../include/TFormValidator ../include/TSqlQueryORMapperIterator ../include/TAccessValidator ../include/TSqlTransaction ../include/TPaginator ../include/TKvsDatabase ../include/TKvsDriver ../include/TModelObject ../include/TPopMailer ../include/TMultiplexingServer ../include/TAccessLog ../include/TActionWorker ../include/TAtomicQueue ../include/TJsonUtil ../include/TScheduler ../include/TApplicationScheduler ../include/TCommandLineInterface ../include/TSendmailMailer ../include/TAppSettings ../include/TWebSocketEndpoint ../include/TDatabaseContext ../include/TWebSocketSession

HEADER_FILES = tabstractmodel.h tabstractuser.h tactioncontext.h tactioncontroller.h tactionforkprocess.h tactionhelper.h tactionthread.h tactionview.h tprototypeajaxhelper.h tapplicationserverbase.h tthreadapplicationserver.h tpreforkapplicationserver.h tcontentheader.h tcookie.h tcookiejar.h tcriteria.h tcriteriaconverter.h tcryptmac.h tdirectview.h tdispatcher.h tfcore.h tfexception.h tfnamespace.h tglobal.h thtmlattribute.h thtmlparser.h thttpheader.h thttprequest.h thttprequestheader.h thttpresponse.h thttpresponseheader.h thttputility.h tinternetmessageheader.h tjavascriptobject.h tlog.h tlogger.h tloggerplugin.h tmailmessage.h tmodelutil.h tmultipartformdata.h toption.h tsession.h tsessionstore.h tsessionstoreplugin.h tsharedmemorylogstream.h tsmtpmailer.h tsqlobject.h tsqlormapper.h tsqlormapperiterator.h tsqlquery.h tsqlqueryormapper.h tsystemglobal.h ttemporaryfile.h tviewhelper.h twebapplication.h tabstractcontroller.h tactionmailer.h tformvalidator.h tsqlqueryormapperiterator.h taccessvalidator.h tsqltransaction.h tpaginator.h tkvsdatabase.h tkvsdriver.h tmodelobject.h tpopmailer.h tmultiplexingserver.h taccesslog.h tactionworker.h tatomicqueue.h tjsonutil.h tscheduler.h tapplicationscheduler.h tcommandlineinterface.h tsendmailmailer.h tappsettings.h twebsocketendpoint.h tdatabasecontext.h tsystembus.h tprocessinfo.h twebsocketsession.h

unix {
  HEADER_FILES += tfcore_unix.h
}

MONGODB_CLASSES = ../include/TMongoCursor ../include/TBson ../include/TMongoDriver ../include/TMongoQuery ../include/TMongoObject ../include/TMongoODMapper ../include/TCriteriaMongoConverter

MONGODB_FILES = tmongocursor.h tbson.h tmongodriver.h tmongoquery.h tmongoobject.h tmongoodmapper.h tcriteriamongoconverter.h

TEST_CLASSES = ../include/TfTest/TfTest

TEST_FILES = tftest.h


MSVC: Fix compile issues of JKQtFastPlotter

!win32-msvc* {
    QMAKE_CXXFLAGS += -fexceptions
} else {
    QMAKE_CXXFLAGS += /EHsc
    # To enable M_PI, M_E,...
    DEFINES += _USE_MATH_DEFINES
    # To fix error: C2338: va_start argument must not
    # have reference type and must not be parenthesized
    DEFINES += _CRT_NO_VA_START_VALIDATION
}

HEADERS += $$PWD/jkqtfastplotter/jkqtfastplotter.h \
           $$PWD/jkqtplottertools/jkqtptools.h \
           $$PWD/jkqtplottertools/jkqtphighrestimer.h \
           $$PWD/jkqtplottertools/jkqtp_imexport.h

SOURCES += $$PWD/jkqtfastplotter/jkqtfastplotter.cpp \
           $$PWD/jkqtplottertools/jkqtptools.cpp \
           $$PWD/jkqtplottertools/jkqtphighrestimer.cpp

RESOURCES += $$PWD/jkqtplotterressources/jkqtpbaseplotter.qrc

INCLUDEPATH += $$PWD

QT += core gui opengl
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport

QMAKE_CXXFLAGS += -fexceptions

HEADERS += $$PWD/jkqtfastplotter/jkqtfastplotter.h \
           $$PWD/jkqtplottertools/jkqtptools.h \
           $$PWD/jkqtplottertools/jkqtphighrestimer.h \
           $$PWD/jkqtplottertools/jkqtp_imexport.h

SOURCES += $$PWD/jkqtfastplotter/jkqtfastplotter.cpp \
           $$PWD/jkqtplottertools/jkqtptools.cpp \
           $$PWD/jkqtplottertools/jkqtphighrestimer.cpp

RESOURCES += $$PWD/jkqtplotterressources/jkqtpbaseplotter.qrc

INCLUDEPATH += $$PWD

QT += core gui opengl
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport


iOS: Respect QTFIREBASE_FRAMEWORK_ROOT variable if already set in root project. Print a error if SDK path does not exist

message("QtFirebase: configuring build for supported Firebase target platform...")

isEmpty(QTFIREBASE_SDK_PATH){
    QTFIREBASE_SDK_PATH = $$PWD/firebase_cpp_sdk
    message("No QTFIREBASE_SDK_PATH path set. Using default (firebase_cpp_sdk) $$QTFIREBASE_SDK_PATH")
} else {
    message("Using QTFIREBASE_SDK_PATH ($$QTFIREBASE_SDK_PATH)")
}

QTFIREBASE_SDK_LIBS_PREFIX = "firebase_"

QML_IMPORT_PATH += $$PWD

INCLUDEPATH += $$PWD

INCLUDEPATH += \
    $$QTFIREBASE_SDK_PATH/include \
    \

HEADERS += \
    $$PWD/src/platformutils.h \
    $$PWD/src/qtfirebase.h \
    $$PWD/src/qtfirebaseservice.h \
    \

SOURCES += \
    $$PWD/src/qtfirebase.cpp \
    $$PWD/src/qtfirebaseservice.cpp \
    \

contains(QTPLUGIN,qtfirebase) {
    HEADERS += $$PWD/src/qtfirebase_plugin.h
    SOURCES += $$PWD/src/qtfirebase_plugin.cpp
}

!ios: {
    SOURCES += \
        $$PWD/src/platformutils.cpp \
    \
}

RESOURCES += \
    $$PWD/qtfirebase.qrc \
    \

android: {

    # Setup tips
    #
    # Add services to xml file
    # https://github.com/firebase/quickstart-cpp/blob/e8c20f678a06a28ebb73132abcd79d93b27622d9/messaging/testapp/AndroidManifest.xml
    #
    # Add the 'onNewIntent' function to your Qt Activity
    # https://github.com/firebase/quickstart-cpp/blob/e8c20f678a06a28ebb73132abcd79d93b27622d9/messaging/testapp/src/android/java/com/google/firebase/example/TestappNativeActivity.java

    message("QtFirebase Android base")
    QT += androidextras gui-private

    # Specify the STL variant that is to be used in the app .pro file with the $$QTFIREBASE_STL_VARIANT variable
    # c++:      LLVM libc++ runtime
    # gnustl:   GNU STL
    # stlport:  STLPort runtime
    android-clang {
        QTFIREBASE_STL_VARIANT = c++
    }

    isEmpty(QTFIREBASE_STL_VARIANT){
        QTFIREBASE_STL_VARIANT = gnustl
    }

    message("Using QTFIREBASE_STL_VARIANT ($$QTFIREBASE_STL_VARIANT)")
    QTFIREBASE_SDK_LIBS_PATH = $$QTFIREBASE_SDK_PATH/libs/android/$$ANDROID_TARGET_ARCH/$$QTFIREBASE_STL_VARIANT

    DEPENDPATH += $$QTFIREBASE_SDK_LIBS_PATH
}

ios: {

    # Setup tips
    #
    # Download the Google Firebase Framework link for Ios
    # and extract the files to this folder $$PWD/src/ios/Firebase/
    # or use your own folder QTFIREBASE_FRAMEWORKS_ROOT = YOUR/PWD
    # https://firebase.google.com/docs/ios/setup#frameworks

    message("QtFirebase iOS base")
    QT += gui_private

    QTFIREBASE_SDK_LIBS_PATH = $$QTFIREBASE_SDK_PATH/libs/ios/universal/

    isEmpty(QTFIREBASE_FRAMEWORKS_ROOT) {
        QTFIREBASE_FRAMEWORKS_ROOT = $$PWD/src/ios/Firebase/
        message("No QTFIREBASE_FRAMEWORKS_ROOT path set. Using default $$QTFIREBASE_FRAMEWORKS_ROOT")
    } else {
        message("Using QTFIREBASE_FRAMEWORKS_ROOT ($$QTFIREBASE_FRAMEWORKS_ROOT)")
    }

    !exists($$QTFIREBASE_FRAMEWORKS_ROOT) {
        error("$$QTFIREBASE_FRAMEWORKS_ROOT path does not exist. To download iOS SDK run download_firebase_ios.sh\
 in $$PWD/src/ios directory using command line or set the proper path to SDK by setting QTFIREBASE_FRAMEWORKS_ROOT in your project's .pro file")
    }

    QMAKE_LFLAGS += -ObjC

    HEADERS += \
        $$PWD/src/ios/AppDelegate.h \
        \

    OBJECTIVE_SOURCES += \
        $$PWD/src/ios/platformutils.mm \
        $$PWD/src/ios/AppDelegate.mm \
        \

    LIBS += \
        -ObjC \
        -lsqlite3 \
        -lz \
        -L$$QTFIREBASE_SDK_LIBS_PATH \
        -framework MediaPlayer \
        -framework CoreMotion \
        -framework CoreTelephony \
        -framework MessageUI \
        -framework GLKit \
        -framework AddressBook \
        -framework UIKit \
        -framework SystemConfiguration \
        \

    INCLUDEPATH += \
        $$QTFIREBASE_SDK_PATH/include \
        $$QTFIREBASE_FRAMEWORKS_ROOT/../ \
        $$PWD/src \
        $$PWD/src/ios \
        \
}

# NOTE the order of linking is important!

PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}app.a
LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}app

# AdMob
contains(DEFINES,QTFIREBASE_BUILD_ADMOB) {
    message( "QtFirebase including AdMob" )

    ios: {
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/AdMob \
            -framework GoogleMobileAds \
            -framework AdSupport \
            -framework StoreKit \
            \
    }

    HEADERS += \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobtestdevices.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmob.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobrequest.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobbase.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobbanner.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobinterstitial.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobrewardedvideoad.h \
        \

    SOURCES += \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobtestdevices.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmob.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobrequest.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobbase.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobbanner.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobinterstitial.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobrewardedvideoad.cpp \
        \

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}admob.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}admob
}

# Remote Config
contains(DEFINES,QTFIREBASE_BUILD_REMOTE_CONFIG) {
    message( "QtFirebase including RemoteConfig" )

    ios: {
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/RemoteConfig \
            -framework FirebaseABTesting \ # Required for Firebase iOS >= 4.5.0
            -framework FirebaseRemoteConfig \
            -framework Protobuf \
            \
    }

    HEADERS += $$PWD/src/qtfirebaseremoteconfig.h
    SOURCES += $$PWD/src/qtfirebaseremoteconfig.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}remote_config.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}remote_config
}

# Messaging
contains(DEFINES,QTFIREBASE_BUILD_MESSAGING) {
    message( "QtFirebase including Messaging" )

    ios: {
        message( "QtFirebase Messaging requires iOS v10.x+ to build." )
        message( "Remember to set QMAKE_IOS_DEPLOYMENT_TARGET in your .pro" )
        # Removed due to Qt 5.12 - see https://github.com/Larpon/QtFirebase/issues/106
        # QMAKE_IOS_DEPLOYMENT_TARGET = 10.0

        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Messaging \
            -framework FirebaseMessaging \
            -framework Protobuf \
            -framework UserNotifications \
            \
    }

    HEADERS += $$PWD/src/qtfirebasemessaging.h
    SOURCES += $$PWD/src/qtfirebasemessaging.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}messaging.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}messaging
}

# Analytics
contains(DEFINES,QTFIREBASE_BUILD_ANALYTICS) {
    message( "QtFirebase including Analytics" )

    ios: {
        # -framework FirebaseCoreDiagnostics \
        # -framework GoogleDataTransport \
        #-framework GoogleDataTransportCCTSupport \

        LIBS += \
            -framework StoreKit \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Analytics \
            -framework FirebaseAnalytics \
            -framework FirebaseCore \
            -framework FirebaseInstanceID \
            -framework GoogleAppMeasurement \
            -framework GoogleUtilities \
            -framework nanopb \
            \
    }

    HEADERS += $$PWD/src/qtfirebaseanalytics.h
    SOURCES += $$PWD/src/qtfirebaseanalytics.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}analytics.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}analytics
}

# Auth
contains(DEFINES,QTFIREBASE_BUILD_AUTH) {
    message( "QtFirebase including Auth" )

    ios: {
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Auth \
            -framework FirebaseAuth \
            -framework GTMSessionFetcher \
            -framework SafariServices \ # Required for Firebase iOS >= 4.4.0
        \
    }

    HEADERS += $$PWD/src/qtfirebaseauth.h
    SOURCES += $$PWD/src/qtfirebaseauth.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}auth.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}auth
}

# Database
contains(DEFINES,QTFIREBASE_BUILD_DATABASE) {
    message( "QtFirebase including Database" )

    ios: {
        LIBS += \
            -licucore \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Database \
            -framework FirebaseDatabase \
            -framework leveldb-library \
        \
    }

    HEADERS += $$PWD/src/qtfirebasedatabase.h
    SOURCES += $$PWD/src/qtfirebasedatabase.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}database.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}database
}

LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}app

message("QtFirebase: configuring build for supported Firebase target platform...")

isEmpty(QTFIREBASE_SDK_PATH){
    QTFIREBASE_SDK_PATH = $$PWD/firebase_cpp_sdk
    message("No QTFIREBASE_SDK_PATH path sat. Using default (firebase_cpp_sdk) $$QTFIREBASE_SDK_PATH")
} else {
    message("Using QTFIREBASE_SDK_PATH ($$QTFIREBASE_SDK_PATH)")
}

QTFIREBASE_SDK_LIBS_PREFIX = "firebase_"

QML_IMPORT_PATH += $$PWD

INCLUDEPATH += $$PWD

INCLUDEPATH += \
    $$QTFIREBASE_SDK_PATH/include \
    \

HEADERS += \
    $$PWD/src/platformutils.h \
    $$PWD/src/qtfirebase.h \
    $$PWD/src/qtfirebaseservice.h \
    \

SOURCES += \
    $$PWD/src/qtfirebase.cpp \
    $$PWD/src/qtfirebaseservice.cpp \
    \

contains(QTPLUGIN,qtfirebase) {
    HEADERS += $$PWD/src/qtfirebase_plugin.h
    SOURCES += $$PWD/src/qtfirebase_plugin.cpp
}

!ios: {
    SOURCES += \
        $$PWD/src/platformutils.cpp \
    \
}

RESOURCES += \
    $$PWD/qtfirebase.qrc \
    \

android: {

    # Setup tips
    #
    # Add services to xml file
    # https://github.com/firebase/quickstart-cpp/blob/e8c20f678a06a28ebb73132abcd79d93b27622d9/messaging/testapp/AndroidManifest.xml
    #
    # Add the 'onNewIntent' function to your Qt Activity
    # https://github.com/firebase/quickstart-cpp/blob/e8c20f678a06a28ebb73132abcd79d93b27622d9/messaging/testapp/src/android/java/com/google/firebase/example/TestappNativeActivity.java

    message("QtFirebase Android base")
    QT += androidextras gui-private

    # Specify the STL variant that is to be used in the app .pro file with the $$QTFIREBASE_STL_VARIANT variable
    # c++:      LLVM libc++ runtime
    # gnustl:   GNU STL
    # stlport:  STLPort runtime
    android-clang {
        QTFIREBASE_STL_VARIANT = c++
    }

    isEmpty(QTFIREBASE_STL_VARIANT){
        QTFIREBASE_STL_VARIANT = gnustl
    }

    message("Using QTFIREBASE_STL_VARIANT ($$QTFIREBASE_STL_VARIANT)")
    QTFIREBASE_SDK_LIBS_PATH = $$QTFIREBASE_SDK_PATH/libs/android/$$ANDROID_TARGET_ARCH/$$QTFIREBASE_STL_VARIANT

    DEPENDPATH += $$QTFIREBASE_SDK_LIBS_PATH
}

ios: {

    # Setup tips
    #
    # Download the Google Firebase Framework link for Ios
    # and extract the files to this folder $$PWD/src/ios/Firebase/
    # or use your own folder QTFIREBASE_FRAMEWORKS_ROOT = YOUR/PWD
    # https://firebase.google.com/docs/ios/setup#frameworks

    message("QtFirebase iOS base")
    QT += gui_private

    QTFIREBASE_SDK_LIBS_PATH = $$QTFIREBASE_SDK_PATH/libs/ios/universal/

    QTFIREBASE_FRAMEWORKS_ROOT = $$PWD/src/ios/Firebase/

    QMAKE_LFLAGS += -ObjC

    HEADERS += \
        $$PWD/src/ios/AppDelegate.h \
        \

    OBJECTIVE_SOURCES += \
        $$PWD/src/ios/platformutils.mm \
        $$PWD/src/ios/AppDelegate.mm \
        \

    LIBS += \
        -ObjC \
        -lsqlite3 \
        -lz \
        -L$$QTFIREBASE_SDK_LIBS_PATH \
        -framework MediaPlayer \
        -framework CoreMotion \
        -framework CoreTelephony \
        -framework MessageUI \
        -framework GLKit \
        -framework AddressBook \
        -framework UIKit \
        -framework SystemConfiguration \
        \

    INCLUDEPATH += \
        $$QTFIREBASE_SDK_PATH/include \
        $$QTFIREBASE_FRAMEWORKS_ROOT/../ \
        $$PWD/src \
        $$PWD/src/ios \
        \
}

# NOTE the order of linking is important!

PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}app.a
LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}app

# AdMob
contains(DEFINES,QTFIREBASE_BUILD_ADMOB) {
    message( "QtFirebase including AdMob" )

    ios: {
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/AdMob \
            -framework GoogleMobileAds \
            -framework AdSupport \
            -framework StoreKit \
            \
    }

    HEADERS += \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobtestdevices.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmob.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobrequest.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobbase.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobbanner.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobinterstitial.h \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobrewardedvideoad.h \
        \

    SOURCES += \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobtestdevices.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmob.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobrequest.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobbase.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobbanner.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobinterstitial.cpp \
        $$PWD/src/qtfirebaseadmob/qtfirebaseadmobrewardedvideoad.cpp \
        \

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}admob.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}admob
}

# Remote Config
contains(DEFINES,QTFIREBASE_BUILD_REMOTE_CONFIG) {
    message( "QtFirebase including RemoteConfig" )

    ios: {
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/RemoteConfig \
            -framework FirebaseABTesting \ # Required for Firebase iOS >= 4.5.0
            -framework FirebaseRemoteConfig \
            -framework Protobuf \
            \
    }

    HEADERS += $$PWD/src/qtfirebaseremoteconfig.h
    SOURCES += $$PWD/src/qtfirebaseremoteconfig.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}remote_config.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}remote_config
}

# Messaging
contains(DEFINES,QTFIREBASE_BUILD_MESSAGING) {
    message( "QtFirebase including Messaging" )

    ios: {
        message( "QtFirebase Messaging requires iOS v10.x+ to build." )
        message( "Remember to set QMAKE_IOS_DEPLOYMENT_TARGET in your .pro" )
        # Removed due to Qt 5.12 - see https://github.com/Larpon/QtFirebase/issues/106
        # QMAKE_IOS_DEPLOYMENT_TARGET = 10.0

        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Messaging \
            -framework FirebaseMessaging \
            -framework Protobuf \
            -framework UserNotifications \
            \
    }

    HEADERS += $$PWD/src/qtfirebasemessaging.h
    SOURCES += $$PWD/src/qtfirebasemessaging.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}messaging.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}messaging
}

# Analytics
contains(DEFINES,QTFIREBASE_BUILD_ANALYTICS) {
    message( "QtFirebase including Analytics" )

    ios: {
        # -framework FirebaseCoreDiagnostics \
        # -framework GoogleDataTransport \
        #-framework GoogleDataTransportCCTSupport \

        LIBS += \
            -framework StoreKit \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Analytics \
            -framework FirebaseAnalytics \
            -framework FirebaseCore \
            -framework FirebaseInstanceID \
            -framework GoogleAppMeasurement \
            -framework GoogleUtilities \
            -framework nanopb \
            \
    }

    HEADERS += $$PWD/src/qtfirebaseanalytics.h
    SOURCES += $$PWD/src/qtfirebaseanalytics.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}analytics.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}analytics
}

# Auth
contains(DEFINES,QTFIREBASE_BUILD_AUTH) {
    message( "QtFirebase including Auth" )

    ios: {
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Auth \
            -framework FirebaseAuth \
            -framework GTMSessionFetcher \
            -framework SafariServices \ # Required for Firebase iOS >= 4.4.0
        \
    }

    HEADERS += $$PWD/src/qtfirebaseauth.h
    SOURCES += $$PWD/src/qtfirebaseauth.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}auth.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}auth
}

# Database
contains(DEFINES,QTFIREBASE_BUILD_DATABASE) {
    message( "QtFirebase including Database" )

    ios: {
        LIBS += \
            -licucore \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Database \
            -framework FirebaseDatabase \
            -framework leveldb-library \
        \
    }

    HEADERS += $$PWD/src/qtfirebasedatabase.h
    SOURCES += $$PWD/src/qtfirebasedatabase.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/lib$${QTFIREBASE_SDK_LIBS_PREFIX}database.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}database
}

LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -l$${QTFIREBASE_SDK_LIBS_PREFIX}app


fix include path

fix include path

git-svn-id: e2fa1b4f04257a65cc3162f75ad5f19d327daceb@1723 85bd2434-ea95-11dd-8fb1-9960f2a117f8

# Common definitions

QT += network xml
QXMPP_INCLUDEPATH = $$PWD/src $$PWD/src/server
QXMPP_LIBRARY_DIR = $$PWD/lib

CONFIG(debug, debug|release) {
    QXMPP_LIBRARY_NAME = qxmpp_d
} else {
    QXMPP_LIBRARY_NAME = qxmpp
}

# Libraries used internal by QXmpp
symbian {
    QXMPP_INTERNAL_INCLUDES = $$APP_LAYER_SYSTEMINCLUDE
    QXMPP_INTERNAL_LIBS = -lesock
} else:win32 {
    QXMPP_INTERNAL_LIBS = -lws2_32
}

# Libraries for apps which use QXmpp
symbian {
    # Symbian needs a .lib extension to recognise the library as static
    QXMPP_LIBS = -L$$QXMPP_LIBRARY_DIR -l$${QXMPP_LIBRARY_NAME}.lib
} else {
    QXMPP_LIBS = -L$$QXMPP_LIBRARY_DIR -l$${QXMPP_LIBRARY_NAME}
}

# FIXME: we should be able to use the link_prl option to automatically pull
# in the extra libraries which the qxmpp library needs, but this does not
# seem to work on win32, so we specify the dependencies here:
QXMPP_LIBS += $$QXMPP_INTERNAL_LIBS

# Path of the QXmpp library file, for expressing dependency.
symbian {
} else:unix {
    QXMPP_LIBRARY_FILE = $${QXMPP_LIBRARY_DIR}/lib$${QXMPP_LIBRARY_NAME}.a
}

# Installation prefix and library directory
isEmpty(PREFIX) {
    unix:PREFIX=/usr/local
}
isEmpty(LIBDIR) {
    LIBDIR=lib
}

# Common definitions

QT += network xml
QXMPP_INCLUDEPATH = $$PWD/src
QXMPP_LIBRARY_DIR = $$PWD/lib

CONFIG(debug, debug|release) {
    QXMPP_LIBRARY_NAME = qxmpp_d
} else {
    QXMPP_LIBRARY_NAME = qxmpp
}

# Libraries used internal by QXmpp
symbian {
    QXMPP_INTERNAL_INCLUDES = $$APP_LAYER_SYSTEMINCLUDE
    QXMPP_INTERNAL_LIBS = -lesock
} else:win32 {
    QXMPP_INTERNAL_LIBS = -lws2_32
}

# Libraries for apps which use QXmpp
symbian {
    # Symbian needs a .lib extension to recognise the library as static
    QXMPP_LIBS = -L$$QXMPP_LIBRARY_DIR -l$${QXMPP_LIBRARY_NAME}.lib
} else {
    QXMPP_LIBS = -L$$QXMPP_LIBRARY_DIR -l$${QXMPP_LIBRARY_NAME}
}

# FIXME: we should be able to use the link_prl option to automatically pull
# in the extra libraries which the qxmpp library needs, but this does not
# seem to work on win32, so we specify the dependencies here:
QXMPP_LIBS += $$QXMPP_INTERNAL_LIBS

# Path of the QXmpp library file, for expressing dependency.
symbian {
} else:unix {
    QXMPP_LIBRARY_FILE = $${QXMPP_LIBRARY_DIR}/lib$${QXMPP_LIBRARY_NAME}.a
}

# Installation prefix and library directory
isEmpty(PREFIX) {
    unix:PREFIX=/usr/local
}
isEmpty(LIBDIR) {
    LIBDIR=lib
}


add THE CORRECT new file to lunix builds (you idiot).

git-svn-id: bf5cd6ccde378db821296732a091cfbcf5285fbd@47417 bbb929c8-8fbe-4397-9dbb-9b2b20218538

# JavaScriptCore - Qt4 build info
VPATH += $$PWD

CONFIG(debug, debug|release) {
    isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = generated$${QMAKE_DIR_SEP}debug
    OBJECTS_DIR = obj/debug
} else { # Release
    isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = generated$${QMAKE_DIR_SEP}release
    OBJECTS_DIR = obj/release
}

INCLUDEPATH = \
    $$PWD \
    $$PWD/.. \
    $$PWD/assembler \
    $$PWD/bytecode \
    $$PWD/bytecompiler \
    $$PWD/debugger \
    $$PWD/interpreter \
    $$PWD/jit \
    $$PWD/parser \
    $$PWD/profiler \
    $$PWD/runtime \
    $$PWD/wrec \
    $$PWD/wtf \
    $$PWD/wtf/unicode \
    $$PWD/yarr \
    $$PWD/API \
    $$PWD/ForwardingHeaders \
    $$GENERATED_SOURCES_DIR \
    $$INCLUDEPATH

DEFINES += BUILDING_QT__ BUILDING_JavaScriptCore BUILDING_WTF

GENERATED_SOURCES_DIR_SLASH = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}
win32-* {
    LIBS += -lwinmm
}

# In debug mode JIT disabled until crash fixed
win32-* {
    CONFIG(debug):!contains(DEFINES, ENABLE_JIT=1): DEFINES+=ENABLE_JIT=0
}

# Rules when JIT enabled (not disabled)
!contains(DEFINES, ENABLE_JIT=0) {
    linux-g++*:greaterThan(QT_GCC_MAJOR_VERSION,3):greaterThan(QT_GCC_MINOR_VERSION,0) {
        QMAKE_CXXFLAGS += -fno-stack-protector
        QMAKE_CFLAGS += -fno-stack-protector
    }
}

include(pcre/pcre.pri)

LUT_FILES += \
    runtime/DatePrototype.cpp \
    runtime/JSONObject.cpp \
    runtime/NumberConstructor.cpp \
    runtime/StringPrototype.cpp \
    runtime/ArrayPrototype.cpp \
    runtime/MathObject.cpp \
    runtime/RegExpConstructor.cpp \
    runtime/RegExpObject.cpp

KEYWORDLUT_FILES += \
    parser/Keywords.table

JSCBISON += \
    parser/Grammar.y

SOURCES += \
    wtf/Assertions.cpp \
    wtf/ByteArray.cpp \
    wtf/HashTable.cpp \
    wtf/MainThread.cpp \
    wtf/RandomNumber.cpp \
    wtf/RefCountedLeakCounter.cpp \
    wtf/TypeTraits.cpp \
    wtf/unicode/CollatorDefault.cpp \
    wtf/unicode/icu/CollatorICU.cpp \
    wtf/unicode/UTF8.cpp \
    API/JSBase.cpp \
    API/JSCallbackConstructor.cpp \
    API/JSCallbackFunction.cpp \
    API/JSCallbackObject.cpp \
    API/JSClassRef.cpp \
    API/JSContextRef.cpp \
    API/JSObjectRef.cpp \
    API/JSStringRef.cpp \
    API/JSValueRef.cpp \
    API/OpaqueJSString.cpp \
    runtime/InitializeThreading.cpp \
    runtime/JSGlobalData.cpp \
    runtime/JSGlobalObject.cpp \
    runtime/JSStaticScopeObject.cpp \
    runtime/JSVariableObject.cpp \
    runtime/JSActivation.cpp \
    runtime/JSNotAnObject.cpp \
    runtime/JSONObject.cpp \
    runtime/LiteralParser.cpp \
    runtime/MarkStack.cpp \
    runtime/TimeoutChecker.cpp \
    bytecode/CodeBlock.cpp \
    bytecode/StructureStubInfo.cpp \
    bytecode/JumpTable.cpp \
    assembler/ARMAssembler.cpp \
    jit/JIT.cpp \
    jit/JITCall.cpp \
    jit/JITArithmetic.cpp \
    jit/JITOpcodes.cpp \
    jit/JITPropertyAccess.cpp \
    jit/ExecutableAllocator.cpp \
    jit/JITStubs.cpp \
    bytecompiler/BytecodeGenerator.cpp \
    runtime/ExceptionHelpers.cpp \
    runtime/JSPropertyNameIterator.cpp \
    interpreter/Interpreter.cpp \
    bytecode/Opcode.cpp \
    bytecode/SamplingTool.cpp \
    yarr/RegexCompiler.cpp \
    yarr/RegexInterpreter.cpp \
    yarr/RegexJIT.cpp \
    interpreter/RegisterFile.cpp

win32-* {
    SOURCES += jit/ExecutableAllocatorWin.cpp \
               runtime/MarkStackWin.cpp
} else {
    SOURCES += jit/ExecutableAllocatorPosix.cpp \
               runtime/MarkStackPosix.cpp
}

# AllInOneFile.cpp helps gcc analize and optimize code
# Other compilers may be able to do this at link time
SOURCES += \
    runtime/ArgList.cpp \
    runtime/Arguments.cpp \
    runtime/ArrayConstructor.cpp \
    runtime/ArrayPrototype.cpp \
    runtime/BooleanConstructor.cpp \
    runtime/BooleanObject.cpp \
    runtime/BooleanPrototype.cpp \
    runtime/CallData.cpp \
    runtime/Collector.cpp \
    runtime/CommonIdentifiers.cpp \
    runtime/ConstructData.cpp \
    wtf/CurrentTime.cpp \
    runtime/DateConstructor.cpp \
    runtime/DateConversion.cpp \
    runtime/DateInstance.cpp \
    runtime/DatePrototype.cpp \
    debugger/Debugger.cpp \
    debugger/DebuggerCallFrame.cpp \
    debugger/DebuggerActivation.cpp \
    wtf/dtoa.cpp \
    runtime/Error.cpp \
    runtime/ErrorConstructor.cpp \
    runtime/ErrorInstance.cpp \
    runtime/ErrorPrototype.cpp \
    interpreter/CallFrame.cpp \
    runtime/Executable.cpp \
    runtime/FunctionConstructor.cpp \
    runtime/FunctionPrototype.cpp \
    runtime/GetterSetter.cpp \
    runtime/GlobalEvalFunction.cpp \
    runtime/Identifier.cpp \
    runtime/InternalFunction.cpp \
    runtime/Completion.cpp \
    runtime/JSArray.cpp \
    runtime/JSAPIValueWrapper.cpp \
    runtime/JSByteArray.cpp \
    runtime/JSCell.cpp \
    runtime/JSFunction.cpp \
    runtime/JSGlobalObjectFunctions.cpp \
    runtime/JSImmediate.cpp \
    runtime/JSLock.cpp \
    runtime/JSNumberCell.cpp \
    runtime/JSObject.cpp \
    runtime/JSString.cpp \
    runtime/JSValue.cpp \
    runtime/JSWrapperObject.cpp \
    parser/Lexer.cpp \
    runtime/Lookup.cpp \
    runtime/MathObject.cpp \
    runtime/NativeErrorConstructor.cpp \
    runtime/NativeErrorPrototype.cpp \
    parser/Nodes.cpp \
    runtime/NumberConstructor.cpp \
    runtime/NumberObject.cpp \
    runtime/NumberPrototype.cpp \
    runtime/ObjectConstructor.cpp \
    runtime/ObjectPrototype.cpp \
    runtime/Operations.cpp \
    parser/Parser.cpp \
    parser/ParserArena.cpp \
    runtime/PropertyNameArray.cpp \
    runtime/PropertySlot.cpp \
    runtime/PrototypeFunction.cpp \
    runtime/RegExp.cpp \
    runtime/RegExpConstructor.cpp \
    runtime/RegExpObject.cpp \
    runtime/RegExpPrototype.cpp \
    runtime/ScopeChain.cpp \
    runtime/SmallStrings.cpp \
    runtime/StringConstructor.cpp \
    runtime/StringObject.cpp \
    runtime/StringPrototype.cpp \
    runtime/Structure.cpp \
    runtime/StructureChain.cpp \
    runtime/UString.cpp \
    profiler/HeavyProfile.cpp \
    profiler/Profile.cpp \
    profiler/ProfileGenerator.cpp \
    profiler/ProfileNode.cpp \
    profiler/Profiler.cpp \
    profiler/TreeProfile.cpp \
    wtf/DateMath.cpp \
    wtf/FastMalloc.cpp \
    wtf/Threading.cpp \
    wtf/qt/MainThreadQt.cpp

!contains(DEFINES, ENABLE_SINGLE_THREADED=1) {
    SOURCES += wtf/qt/ThreadingQt.cpp
} else {
    DEFINES += ENABLE_JSC_MULTIPLE_THREADS=0
    SOURCES += wtf/ThreadingNone.cpp
}

# GENERATOR 1-A: LUT creator
lut.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.lut.h
lut.commands = perl $$PWD/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
lut.depend = ${QMAKE_FILE_NAME}
lut.input = LUT_FILES
lut.CONFIG += no_link
addExtraCompiler(lut)

# GENERATOR 1-B: particular LUT creator (for 1 file only)
keywordlut.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Lexer.lut.h
keywordlut.commands = perl $$PWD/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
keywordlut.depend = ${QMAKE_FILE_NAME}
keywordlut.input = KEYWORDLUT_FILES
keywordlut.CONFIG += no_link
addExtraCompiler(keywordlut)

# GENERATOR 2: bison grammar
jscbison.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.cpp
jscbison.commands = bison -d -p jscyy ${QMAKE_FILE_NAME} -o $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.c && $(MOVE) $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.c ${QMAKE_FILE_OUT} && $(MOVE) $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.h $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.h
jscbison.depend = ${QMAKE_FILE_NAME}
jscbison.input = JSCBISON
jscbison.variable_out = GENERATED_SOURCES
jscbison.dependency_type = TYPE_C
jscbison.CONFIG = target_predeps
addExtraCompilerWithHeader(jscbison)

# JavaScriptCore - Qt4 build info
VPATH += $$PWD

CONFIG(debug, debug|release) {
    isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = generated$${QMAKE_DIR_SEP}debug
    OBJECTS_DIR = obj/debug
} else { # Release
    isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = generated$${QMAKE_DIR_SEP}release
    OBJECTS_DIR = obj/release
}

INCLUDEPATH = \
    $$PWD \
    $$PWD/.. \
    $$PWD/assembler \
    $$PWD/bytecode \
    $$PWD/bytecompiler \
    $$PWD/debugger \
    $$PWD/interpreter \
    $$PWD/jit \
    $$PWD/parser \
    $$PWD/profiler \
    $$PWD/runtime \
    $$PWD/wrec \
    $$PWD/wtf \
    $$PWD/wtf/unicode \
    $$PWD/yarr \
    $$PWD/API \
    $$PWD/ForwardingHeaders \
    $$GENERATED_SOURCES_DIR \
    $$INCLUDEPATH

DEFINES += BUILDING_QT__ BUILDING_JavaScriptCore BUILDING_WTF

GENERATED_SOURCES_DIR_SLASH = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}
win32-* {
    LIBS += -lwinmm
}

# In debug mode JIT disabled until crash fixed
win32-* {
    CONFIG(debug):!contains(DEFINES, ENABLE_JIT=1): DEFINES+=ENABLE_JIT=0
}

# Rules when JIT enabled (not disabled)
!contains(DEFINES, ENABLE_JIT=0) {
    linux-g++*:greaterThan(QT_GCC_MAJOR_VERSION,3):greaterThan(QT_GCC_MINOR_VERSION,0) {
        QMAKE_CXXFLAGS += -fno-stack-protector
        QMAKE_CFLAGS += -fno-stack-protector
    }
}

include(pcre/pcre.pri)

LUT_FILES += \
    runtime/DatePrototype.cpp \
    runtime/JSONObject.cpp \
    runtime/NumberConstructor.cpp \
    runtime/StringPrototype.cpp \
    runtime/ArrayPrototype.cpp \
    runtime/MathObject.cpp \
    runtime/RegExpConstructor.cpp \
    runtime/RegExpObject.cpp

KEYWORDLUT_FILES += \
    parser/Keywords.table

JSCBISON += \
    parser/Grammar.y

SOURCES += \
    wtf/Assertions.cpp \
    wtf/ByteArray.cpp \
    wtf/HashTable.cpp \
    wtf/MainThread.cpp \
    wtf/RandomNumber.cpp \
    wtf/RefCountedLeakCounter.cpp \
    wtf/TypeTraits.cpp \
    wtf/unicode/CollatorDefault.cpp \
    wtf/unicode/icu/CollatorICU.cpp \
    wtf/unicode/UTF8.cpp \
    API/JSBase.cpp \
    API/JSCallbackConstructor.cpp \
    API/JSCallbackFunction.cpp \
    API/JSCallbackObject.cpp \
    API/JSClassRef.cpp \
    API/JSContextRef.cpp \
    API/JSObjectRef.cpp \
    API/JSStringRef.cpp \
    API/JSValueRef.cpp \
    API/OpaqueJSString.cpp \
    runtime/InitializeThreading.cpp \
    runtime/JSGlobalData.cpp \
    runtime/JSGlobalObject.cpp \
    runtime/JSStaticScopeObject.cpp \
    runtime/JSVariableObject.cpp \
    runtime/JSActivation.cpp \
    runtime/JSNotAnObject.cpp \
    runtime/JSONObject.cpp \
    runtime/LiteralParser.cpp \
    runtime/MarkStack.cpp \
    runtime/TimeoutChecker.cpp \
    bytecode/CodeBlock.cpp \
    bytecode/StructureStubInfo.cpp \
    bytecode/JumpTable.cpp \
    assembler/ARMAssembler.cpp \
    jit/JIT.cpp \
    jit/JITCall.cpp \
    jit/JITArithmetic.cpp \
    jit/JITOpcodes.cpp \
    jit/JITPropertyAccess.cpp \
    jit/ExecutableAllocator.cpp \
    jit/JITStubs.cpp \
    bytecompiler/BytecodeGenerator.cpp \
    runtime/ExceptionHelpers.cpp \
    runtime/JSPropertyNameIterator.cpp \
    interpreter/Interpreter.cpp \
    bytecode/Opcode.cpp \
    bytecode/SamplingTool.cpp \
    yarr/RegexCompiler.cpp \
    yarr/RegexInterpreter.cpp \
    yarr/RegexJIT.cpp \
    interpreter/RegisterFile.cpp

win32-* {
    SOURCES += jit/ExecutableAllocatorWin.cpp \
               runtime/MarkStackWin.cpp
} else {
    SOURCES += jit/ExecutableAllocatorPosix.cpp \
               runtime/MarkStackPosix.cpp
}

# AllInOneFile.cpp helps gcc analize and optimize code
# Other compilers may be able to do this at link time
SOURCES += \
    runtime/ArgList.cpp \
    runtime/Arguments.cpp \
    runtime/ArrayConstructor.cpp \
    runtime/ArrayPrototype.cpp \
    runtime/BooleanConstructor.cpp \
    runtime/BooleanObject.cpp \
    runtime/BooleanPrototype.cpp \
    runtime/CallData.cpp \
    runtime/Collector.cpp \
    runtime/CommonIdentifiers.cpp \
    runtime/ConstructData.cpp \
    wtf/CurrentTime.cpp \
    runtime/DateConstructor.cpp \
    runtime/DateConversion.cpp \
    runtime/DateInstance.cpp \
    runtime/DatePrototype.cpp \
    debugger/Debugger.cpp \
    debugger/DebuggerCallFrame.cpp \
    debugger/DebuggerActivation.cpp \
    wtf/dtoa.cpp \
    runtime/Error.cpp \
    runtime/ErrorConstructor.cpp \
    runtime/ErrorInstance.cpp \
    runtime/ErrorPrototype.cpp \
    interpreter/CallFrame.cpp \
    runtime/Execute.cpp \
    runtime/FunctionConstructor.cpp \
    runtime/FunctionPrototype.cpp \
    runtime/GetterSetter.cpp \
    runtime/GlobalEvalFunction.cpp \
    runtime/Identifier.cpp \
    runtime/InternalFunction.cpp \
    runtime/Completion.cpp \
    runtime/JSArray.cpp \
    runtime/JSAPIValueWrapper.cpp \
    runtime/JSByteArray.cpp \
    runtime/JSCell.cpp \
    runtime/JSFunction.cpp \
    runtime/JSGlobalObjectFunctions.cpp \
    runtime/JSImmediate.cpp \
    runtime/JSLock.cpp \
    runtime/JSNumberCell.cpp \
    runtime/JSObject.cpp \
    runtime/JSString.cpp \
    runtime/JSValue.cpp \
    runtime/JSWrapperObject.cpp \
    parser/Lexer.cpp \
    runtime/Lookup.cpp \
    runtime/MathObject.cpp \
    runtime/NativeErrorConstructor.cpp \
    runtime/NativeErrorPrototype.cpp \
    parser/Nodes.cpp \
    runtime/NumberConstructor.cpp \
    runtime/NumberObject.cpp \
    runtime/NumberPrototype.cpp \
    runtime/ObjectConstructor.cpp \
    runtime/ObjectPrototype.cpp \
    runtime/Operations.cpp \
    parser/Parser.cpp \
    parser/ParserArena.cpp \
    runtime/PropertyNameArray.cpp \
    runtime/PropertySlot.cpp \
    runtime/PrototypeFunction.cpp \
    runtime/RegExp.cpp \
    runtime/RegExpConstructor.cpp \
    runtime/RegExpObject.cpp \
    runtime/RegExpPrototype.cpp \
    runtime/ScopeChain.cpp \
    runtime/SmallStrings.cpp \
    runtime/StringConstructor.cpp \
    runtime/StringObject.cpp \
    runtime/StringPrototype.cpp \
    runtime/Structure.cpp \
    runtime/StructureChain.cpp \
    runtime/UString.cpp \
    profiler/HeavyProfile.cpp \
    profiler/Profile.cpp \
    profiler/ProfileGenerator.cpp \
    profiler/ProfileNode.cpp \
    profiler/Profiler.cpp \
    profiler/TreeProfile.cpp \
    wtf/DateMath.cpp \
    wtf/FastMalloc.cpp \
    wtf/Threading.cpp \
    wtf/qt/MainThreadQt.cpp

!contains(DEFINES, ENABLE_SINGLE_THREADED=1) {
    SOURCES += wtf/qt/ThreadingQt.cpp
} else {
    DEFINES += ENABLE_JSC_MULTIPLE_THREADS=0
    SOURCES += wtf/ThreadingNone.cpp
}

# GENERATOR 1-A: LUT creator
lut.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.lut.h
lut.commands = perl $$PWD/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
lut.depend = ${QMAKE_FILE_NAME}
lut.input = LUT_FILES
lut.CONFIG += no_link
addExtraCompiler(lut)

# GENERATOR 1-B: particular LUT creator (for 1 file only)
keywordlut.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Lexer.lut.h
keywordlut.commands = perl $$PWD/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
keywordlut.depend = ${QMAKE_FILE_NAME}
keywordlut.input = KEYWORDLUT_FILES
keywordlut.CONFIG += no_link
addExtraCompiler(keywordlut)

# GENERATOR 2: bison grammar
jscbison.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.cpp
jscbison.commands = bison -d -p jscyy ${QMAKE_FILE_NAME} -o $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.c && $(MOVE) $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.c ${QMAKE_FILE_OUT} && $(MOVE) $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.h $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.h
jscbison.depend = ${QMAKE_FILE_NAME}
jscbison.input = JSCBISON
jscbison.variable_out = GENERATED_SOURCES
jscbison.dependency_type = TYPE_C
jscbison.CONFIG = target_predeps
addExtraCompilerWithHeader(jscbison)


updated qmake Windows paths

updated qmake Windows paths

# Modify these paths to your needs and then build the project

# Add here the paths that are not in the global PATH or INCLUDEPATH
# environment variables usually for mobile OS
android: {
    ZEROMQ_INCLUDE_PATH = /opt/zeromq-android/include
    ZEROMQ_LIB_PATH = /opt/zeromq-android/lib
    ZEROMQ_LIB_FLAGS = -Bstatic
    PROTOBUF_INCLUDE_PATH = /opt/protobuf-android/include
    PROTOBUF_LIB_PATH = /opt/protobuf-android/lib
    PROTOBUF_LIB_FLAGS = -Bstatic
}
ios: {
    ZEROMQ_INCLUDE_PATH = /opt/zeromq-ios/include
    ZEROMQ_LIB_PATH = /opt/zeromq-ios/lib
    ZEROMQ_LIB_FLAGS = -Bstatic
    PROTOBUF_INCLUDE_PATH = /opt/protobuf-ios/include
    PROTOBUF_LIB_PATH = /opt/protobuf-ios/lib
    PROTOBUF_LIB_FLAGS = -Bstatic
    PROTOBUF_PROTOC = /opt/protobuf-ios/bin/protoc
    LIBSODIUM_LIB_PATH = /opt/libsodium-ios/lib
}
macx: {
    ZEROMQ_INCLUDE_PATH = /opt/local/include
    ZEROMQ_LIB_PATH = /opt/local/lib
    ZEROMQ_LIB_FLAGS = -Bstatic
    PROTOBUF_INCLUDE_PATH = /opt/local/include
    PROTOBUF_LIB_PATH = /opt/local/lib
    PROTOBUF_PROTOC = /opt/local/bin/protoc
    PROTOBUF_LIB_FLAGS = -Bstatic
}
win32-msvc2013: {
    PROTOBUF_INCLUDE_PATH = E:\protobuf\src
    ZEROMQ_INCLUDE_PATH = "E:\zeromq4-x\include"
    contains(QMAKE_TARGET.arch, x86_64) {
        ZEROMQ_LIB_PATH = "E:\zeromq4-x\lib\x64"
        PROTOBUF_LIB_PATH = E:\protobuf\vsprojects\x64\Release
        PROTOBUF_PROTOC = E:\protobuf-x64\vsprojects\x64\Release\protoc.exe
    }
    else {
        ZEROMQ_LIB_PATH = "E:\zeromq4-x\lib\Win32"
        PROTOBUF_LIB_PATH = E:\protobuf\vsprojects\Release
        PROTOBUF_PROTOC = E:\protobuf\vsprojects\Release\protoc.exe
    }
}
win32-g++: {
    ZEROMQ_INCLUDE_PATH = E:\MinGW\include
    ZEROMQ_LIB_PATH = E:\MinGW\lib
    PROTOBUF_INCLUDE_PATH =  E:\MinGW\include
    PROTOBUF_LIB_PATH =  E:\MinGW\lib
    PROTOBUF_PROTOC =  E:\MinGW\bin\protoc.exe
}
linux: !android: {
    PROTOBUF_INCLUDE_PATH=/usr/include
}

# Qt SDK directory - autodetected based on qmake path
QTSDK_DIR=$$absolute_path($$[QT_INSTALL_PREFIX]/../..)

# Qt Creator paths for the Qt Quick Designer plugin
# Path to the Qt Creator source - not needed anymore
# QTCREATOR_SOURCE_DIR=/home/alexander/bin/qt-creator
# Path to installed Qt Creator (where the plugin should be installed to)
QTCREATOR_INSTALL_DIR=$$QTSDK_DIR/Tools/QtCreator

# Qt documentation directory containing Qt documentation with .index files
# -> somehow only the Android toolchain comes with .index files
# install one of the Android toolchains to work properly
QT_DOC_DIR = $$[QT_INSTALL_DOCS]

# Modify these paths to your needs and then build the project

# Add here the paths that are not in the global PATH or INCLUDEPATH
# environment variables usually for mobile OS
android: {
    ZEROMQ_INCLUDE_PATH = /opt/zeromq-android/include
    ZEROMQ_LIB_PATH = /opt/zeromq-android/lib
    ZEROMQ_LIB_FLAGS = -Bstatic
    PROTOBUF_INCLUDE_PATH = /opt/protobuf-android/include
    PROTOBUF_LIB_PATH = /opt/protobuf-android/lib
    PROTOBUF_LIB_FLAGS = -Bstatic
}
ios: {
    ZEROMQ_INCLUDE_PATH = /opt/zeromq-ios/include
    ZEROMQ_LIB_PATH = /opt/zeromq-ios/lib
    ZEROMQ_LIB_FLAGS = -Bstatic
    PROTOBUF_INCLUDE_PATH = /opt/protobuf-ios/include
    PROTOBUF_LIB_PATH = /opt/protobuf-ios/lib
    PROTOBUF_LIB_FLAGS = -Bstatic
    PROTOBUF_PROTOC = /opt/protobuf-ios/bin/protoc
    LIBSODIUM_LIB_PATH = /opt/libsodium-ios/lib
}
macx: {
    ZEROMQ_INCLUDE_PATH = /opt/local/include
    ZEROMQ_LIB_PATH = /opt/local/lib
    ZEROMQ_LIB_FLAGS = -Bstatic
    PROTOBUF_INCLUDE_PATH = /opt/local/include
    PROTOBUF_LIB_PATH = /opt/local/lib
    PROTOBUF_PROTOC = /opt/local/bin/protoc
    PROTOBUF_LIB_FLAGS = -Bstatic
}
win32-msvc2013: {
    ZEROMQ_LIB_PATH = "E:\zeromq-4.0.5\lib\Win32"
    ZEROMQ_INCLUDE_PATH = "E:\zeromq-4.0.5\include"
    PROTOBUF_INCLUDE_PATH = E:\protobuf-2.6.1\src
    PROTOBUF_LIB_PATH = E:\protobuf-2.6.1\vsprojects\Release
    PROTOBUF_PROTOC = E:\protobuf-2.6.1\vsprojects\Release\protoc.exe
}
win32-g++: {
    ZEROMQ_INCLUDE_PATH = E:\MinGW\include
    ZEROMQ_LIB_PATH = E:\MinGW\lib
    PROTOBUF_INCLUDE_PATH =  E:\MinGW\include
    PROTOBUF_LIB_PATH =  E:\MinGW\lib
    PROTOBUF_PROTOC =  E:\MinGW\bin\protoc.exe
}
linux: !android: {
    PROTOBUF_INCLUDE_PATH=/usr/include
}

# Qt SDK directory - autodetected based on qmake path
QTSDK_DIR=$$absolute_path($$[QT_INSTALL_PREFIX]/../..)

# Qt Creator paths for the Qt Quick Designer plugin
# Path to the Qt Creator source - not needed anymore
# QTCREATOR_SOURCE_DIR=/home/alexander/bin/qt-creator
# Path to installed Qt Creator (where the plugin should be installed to)
QTCREATOR_INSTALL_DIR=$$QTSDK_DIR/Tools/QtCreator

# Qt documentation directory containing Qt documentation with .index files
# -> somehow only the Android toolchain comes with .index files
# install one of the Android toolchains to work properly
QT_DOC_DIR = $$[QT_INSTALL_DOCS]


- fixed linux project file

- fixed linux project file

HEADERS += \
  $$PWD/../plugins/input/csv/csv_datasource.hpp \
  $$PWD/../plugins/input/gdal/gdal_featureset.hpp \
  $$PWD/../plugins/input/gdal/gdal_datasource.hpp \
  $$PWD/../plugins/input/kismet/kismet_featureset.hpp \
  $$PWD/../plugins/input/kismet/kismet_datasource.hpp \
  $$PWD/../plugins/input/kismet/kismet_types.hpp \
  $$PWD/../plugins/input/occi/occi_featureset.hpp \
  $$PWD/../plugins/input/occi/occi_datasource.hpp \
  $$PWD/../plugins/input/occi/occi_types.hpp \
  $$PWD/../plugins/input/occi/spatial_classesh.h \
  $$PWD/../plugins/input/occi/spatial_classesm.h \
  $$PWD/../plugins/input/ogr/ogr_converter.hpp \
  $$PWD/../plugins/input/ogr/ogr_featureset.hpp \
  $$PWD/../plugins/input/ogr/ogr_datasource.hpp \
  $$PWD/../plugins/input/ogr/ogr_feature_ptr.hpp \
  $$PWD/../plugins/input/ogr/ogr_index.hpp \
  $$PWD/../plugins/input/ogr/ogr_index_featureset.hpp \
  $$PWD/../plugins/input/osm/basiccurl.h \
  $$PWD/../plugins/input/osm/dataset_deliverer.h \
  $$PWD/../plugins/input/osm/osm.h \
  $$PWD/../plugins/input/osm/osmparser.h \
  $$PWD/../plugins/input/osm/osmtagtypes.h \
  $$PWD/../plugins/input/osm/osm_featureset.hpp \
  $$PWD/../plugins/input/osm/osm_datasource.hpp \
  $$PWD/../plugins/input/postgis/connection.hpp \
  $$PWD/../plugins/input/postgis/connection_manager.hpp \
  $$PWD/../plugins/input/postgis/cursorresultset.hpp \
  $$PWD/../plugins/input/postgis/postgis.hpp \
  $$PWD/../plugins/input/postgis/property_index.hpp \
  $$PWD/../plugins/input/postgis/resultset.hpp \
  $$PWD/../plugins/input/raster/raster_info.hpp \
  $$PWD/../plugins/input/raster/raster_featureset.hpp \
  $$PWD/../plugins/input/raster/raster_datasource.hpp \
  $$PWD/../plugins/input/rasterlite/rasterlite_include.hpp \
  $$PWD/../plugins/input/rasterlite/rasterlite_featureset.hpp \
  $$PWD/../plugins/input/rasterlite/rasterlite_datasource.hpp \
  $$PWD/../plugins/input/shape/dbffile.hpp \
  $$PWD/../plugins/input/shape/shape.hpp \
  $$PWD/../plugins/input/shape/shape_featureset.hpp \
  $$PWD/../plugins/input/shape/shapefile.hpp \
  $$PWD/../plugins/input/shape/shape_index_featureset.hpp \
  $$PWD/../plugins/input/shape/shape_io.hpp \
  $$PWD/../plugins/input/shape/shp_index.hpp \
  $$PWD/../plugins/input/sqlite/sqlite_featureset.hpp \
  $$PWD/../plugins/input/sqlite/sqlite_datasource.hpp \
  $$PWD/../plugins/input/sqlite/sqlite_types.hpp

SOURCES += \
  $$PWD/../plugins/input/csv/csv_datasource.cpp \
  $$PWD/../plugins/input/gdal/gdal_featureset.cpp \
  $$PWD/../plugins/input/gdal/gdal_datasource.cpp \
  $$PWD/../plugins/input/kismet/kismet_featureset.cpp \
  $$PWD/../plugins/input/kismet/kismet_datasource.cpp \
  $$PWD/../plugins/input/occi/occi_featureset.cpp \
  $$PWD/../plugins/input/occi/occi_datasource.cpp \
  $$PWD/../plugins/input/occi/occi_types.cpp \
  $$PWD/../plugins/input/occi/spatial_classesm.cpp \
  $$PWD/../plugins/input/occi/spatial_classeso.cpp \
  $$PWD/../plugins/input/ogr/ogr_converter.cpp \
  $$PWD/../plugins/input/ogr/ogr_featureset.cpp \
  $$PWD/../plugins/input/ogr/ogr_datasource.cpp \
  $$PWD/../plugins/input/ogr/ogr_index_featureset.hpp \
  $$PWD/../plugins/input/osm/basiccurl.cpp \
  $$PWD/../plugins/input/osm/dataset_deliverer.cpp \
  $$PWD/../plugins/input/osm/osm.cpp \
  $$PWD/../plugins/input/osm/osmparser.cpp \
  $$PWD/../plugins/input/osm/osm_featureset.cpp \
  $$PWD/../plugins/input/osm/osm_datasource.cpp \
  $$PWD/../plugins/input/osm/render.cpp \
  $$PWD/../plugins/input/postgis/postgis_datasource.cpp \
  $$PWD/../plugins/input/postgis/postgis_featureset.cpp \
  $$PWD/../plugins/input/raster/raster_info.cpp \
  $$PWD/../plugins/input/raster/raster_featureset.cpp \
  $$PWD/../plugins/input/raster/raster_datasource.cpp \
  $$PWD/../plugins/input/rasterlite/rasterlite_featureset.cpp \
  $$PWD/../plugins/input/rasterlite/rasterlite_datasource.cpp \
  $$PWD/../plugins/input/shape/dbffile.cpp \
  $$PWD/../plugins/input/shape/shape.cpp \
  $$PWD/../plugins/input/shape/shape_featureset.cpp \
  $$PWD/../plugins/input/shape/shape_index_featureset.cpp \
  $$PWD/../plugins/input/shape/shape_io.cpp \
  $$PWD/../plugins/input/sqlite/sqlite_featureset.cpp \
  $$PWD/../plugins/input/sqlite/sqlite_datasource.cpp

HEADERS += \
  $$PWD/../plugins/input/csv/csv_datasource.hpp \
  $$PWD/../plugins/input/gdal/gdal_featureset.hpp \
  $$PWD/../plugins/input/gdal/gdal_datasource.hpp \
  $$PWD/../plugins/input/kismet/kismet_featureset.hpp \
  $$PWD/../plugins/input/kismet/kismet_datasource.hpp \
  $$PWD/../plugins/input/kismet/kismet_types.hpp \
  $$PWD/../plugins/input/occi/occi_featureset.hpp \
  $$PWD/../plugins/input/occi/occi_datasource.hpp \
  $$PWD/../plugins/input/occi/occi_types.hpp \
  $$PWD/../plugins/input/occi/spatial_classesh.h \
  $$PWD/../plugins/input/occi/spatial_classesm.h \
  $$PWD/../plugins/input/ogr/ogr_converter.hpp \
  $$PWD/../plugins/input/ogr/ogr_featureset.hpp \
  $$PWD/../plugins/input/ogr/ogr_datasource.hpp \
  $$PWD/../plugins/input/ogr/ogr_feature_ptr.hpp \
  $$PWD/../plugins/input/ogr/ogr_index.hpp \
  $$PWD/../plugins/input/ogr/ogr_index_featureset.hpp \
  $$PWD/../plugins/input/osm/basiccurl.h \
  $$PWD/../plugins/input/osm/dataset_deliverer.h \
  $$PWD/../plugins/input/osm/osm.h \
  $$PWD/../plugins/input/osm/osmparser.h \
  $$PWD/../plugins/input/osm/osmtagtypes.h \
  $$PWD/../plugins/input/osm/osm_featureset.hpp \
  $$PWD/../plugins/input/osm/osm_datasource.hpp \
  $$PWD/../plugins/input/postgis/connection.hpp \
  $$PWD/../plugins/input/postgis/connection_manager.hpp \
  $$PWD/../plugins/input/postgis/cursorresultset.hpp \
  $$PWD/../plugins/input/postgis/postgis.hpp \
  $$PWD/../plugins/input/postgis/property_index.hpp \
  $$PWD/../plugins/input/postgis/resultset.hpp \
  $$PWD/../plugins/input/raster/raster_info.hpp \
  $$PWD/../plugins/input/raster/raster_featureset.hpp \
  $$PWD/../plugins/input/raster/raster_datasource.hpp \
  $$PWD/../plugins/input/rasterlite/rasterlite_include.hpp \
  $$PWD/../plugins/input/rasterlite/rasterlite_featureset.hpp \
  $$PWD/../plugins/input/rasterlite/rasterlite_datasource.hpp \
  $$PWD/../plugins/input/shape/dbffile.hpp \
  $$PWD/../plugins/input/shape/shape.hpp \
  $$PWD/../plugins/input/shape/shape_featureset.hpp \
  $$PWD/../plugins/input/shape/shapefile.hpp \
  $$PWD/../plugins/input/shape/shape_index_featureset.hpp \
  $$PWD/../plugins/input/shape/shape_io.hpp \
  $$PWD/../plugins/input/shape/shp_index.hpp \
  $$PWD/../plugins/input/sqlite/sqlite_featureset.hpp \
  $$PWD/../plugins/input/sqlite/sqlite_datasource.hpp \
  $$PWD/../plugins/input/sqlite/sqlite_types.hpp

SOURCES += \
  $$PWD/../plugins/input/csv/csv_datasource.cpp \
  $$PWD/../plugins/input/gdal/gdal_featureset.cpp \
  $$PWD/../plugins/input/gdal/gdal_datasource.cpp \
  $$PWD/../plugins/input/kismet/kismet_featureset.cpp \
  $$PWD/../plugins/input/kismet/kismet_datasource.cpp \
  $$PWD/../plugins/input/occi/occi_featureset.cpp \
  $$PWD/../plugins/input/occi/occi_datasource.cpp \
  $$PWD/../plugins/input/occi/occi_types.cpp \
  $$PWD/../plugins/input/occi/spatial_classesm.cpp \
  $$PWD/../plugins/input/occi/spatial_classeso.cpp \
  $$PWD/../plugins/input/ogr/ogr_converter.cpp \
  $$PWD/../plugins/input/ogr/ogr_featureset.cpp \
  $$PWD/../plugins/input/ogr/ogr_datasource.cpp \
  $$PWD/../plugins/input/ogr/ogr_index_featureset.hpp \
  $$PWD/../plugins/input/osm/basiccurl.cpp \
  $$PWD/../plugins/input/osm/dataset_deliverer.cpp \
  $$PWD/../plugins/input/osm/osm.cpp \
  $$PWD/../plugins/input/osm/osmparser.cpp \
  $$PWD/../plugins/input/osm/osm_featureset.cpp \
  $$PWD/../plugins/input/osm/osm_datasource.cpp \
  $$PWD/../plugins/input/osm/render.cpp \
  $$PWD/../plugins/input/postgis/postgis.cpp \
  $$PWD/../plugins/input/postgis/postgisfs.cpp \
  $$PWD/../plugins/input/raster/raster_info.cpp \
  $$PWD/../plugins/input/raster/raster_featureset.cpp \
  $$PWD/../plugins/input/raster/raster_datasource.cpp \
  $$PWD/../plugins/input/rasterlite/rasterlite_featureset.cpp \
  $$PWD/../plugins/input/rasterlite/rasterlite_datasource.cpp \
  $$PWD/../plugins/input/shape/dbffile.cpp \
  $$PWD/../plugins/input/shape/shape.cpp \
  $$PWD/../plugins/input/shape/shape_featureset.cpp \
  $$PWD/../plugins/input/shape/shape_index_featureset.cpp \
  $$PWD/../plugins/input/shape/shape_io.cpp \
  $$PWD/../plugins/input/sqlite/sqlite_featureset.cpp \
  $$PWD/../plugins/input/sqlite/sqlite_datasource.cpp


Changes: replace deprecated qmake variable

RevBy: TrustMe
Details: QMAKE_EXTRA_UNIX_TARGETS -> QMAKE_EXTRA_TARGETS

DOXYGEN_BIN=doxygen

QMAKE_EXTRA_TARGETS += doc
doc.target = doc
isEmpty(DOXYGEN_BIN) {
    doc.commands = @echo "Unable to detect doxygen in PATH"
} else {
  isEqual( IS_OUT_OF_SOURCE, 0 ) {
    # in-source build
    doc.commands = $${DOXYGEN_BIN} $${IN_PWD}/mdoxy.cfg ;
    doc.commands+= mkdir -p doc/html ;
    doc.commands+= cp $${IN_PWD}/src/images/* doc/html ;
    doc.commands+= cp $${IN_PWD}/*.html doc/html ;
    doc.commands+= $${IN_PWD}/xmlize.pl ;

    # Install rules
    htmldocs.files = ./doc/html/*

  } else {
    # out-of-source build
    doc.commands = mkdir -p doc/html/ ;
    doc.commands+= ( cat $${IN_PWD}/mdoxy.cfg.in | \
        perl -pe \"s:\@M_SRC_DIR\@:$${IN_PWD}:\" > $${OUT_PWD}/doc/mdoxy.cfg );

    doc.commands+= ( cd doc ; $${DOXYGEN_BIN} mdoxy.cfg );
    doc.commands+= cp $${IN_PWD}/src/images/* $${OUT_PWD}/doc/html ;
    doc.commands+= ( cd doc ; $${IN_PWD}/xmlize.pl );

    # Install rules
    htmldocs.files = $${OUT_PWD}/doc/html/*
  }

  htmldocs.path = /usr/share/doc/meego-im-framework
  htmldocs.CONFIG += no_check_exist
  INSTALLS += htmldocs
}

doc.depends = FORCE

DOXYGEN_BIN=doxygen

QMAKE_EXTRA_UNIX_TARGETS += doc
doc.target = doc
isEmpty(DOXYGEN_BIN) {
    doc.commands = @echo "Unable to detect doxygen in PATH"
} else {
  isEqual( IS_OUT_OF_SOURCE, 0 ) {
    # in-source build
    doc.commands = $${DOXYGEN_BIN} $${IN_PWD}/mdoxy.cfg ;
    doc.commands+= mkdir -p doc/html ;
    doc.commands+= cp $${IN_PWD}/src/images/* doc/html ;
    doc.commands+= cp $${IN_PWD}/*.html doc/html ;
    doc.commands+= $${IN_PWD}/xmlize.pl ;

    # Install rules
    htmldocs.files = ./doc/html/*

  } else {
    # out-of-source build
    doc.commands = mkdir -p doc/html/ ;
    doc.commands+= ( cat $${IN_PWD}/mdoxy.cfg.in | \
        perl -pe \"s:\@M_SRC_DIR\@:$${IN_PWD}:\" > $${OUT_PWD}/doc/mdoxy.cfg );

    doc.commands+= ( cd doc ; $${DOXYGEN_BIN} mdoxy.cfg );
    doc.commands+= cp $${IN_PWD}/src/images/* $${OUT_PWD}/doc/html ;
    doc.commands+= ( cd doc ; $${IN_PWD}/xmlize.pl );

    # Install rules
    htmldocs.files = $${OUT_PWD}/doc/html/*
  }

  htmldocs.path = /usr/share/doc/meego-im-framework
  htmldocs.CONFIG += no_check_exist
  INSTALLS += htmldocs
}

doc.depends = FORCE