fix merge error

fix merge error

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)")
}

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

    QTFIREBASE_SDK_LIBS_PATH = $$QTFIREBASE_SDK_PATH/libs/android/$$ANDROID_TARGET_ARCH/gnustl

    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 \
        \

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

# NOTE the order of linking is important!

PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/libapp.a
LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lapp

# 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.h
    SOURCES += $$PWD/src/qtfirebaseadmob.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/libadmob.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -ladmob
}

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

    ios: {
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/RemoteConfig \
            -framework FirebaseRemoteConfig \
            -framework Protobuf \
            \
    }

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

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/libremote_config.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lremote_config
}

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

    ios: {
        message( "QtFirebase Messaging requires iOS v10.x to build. Setting QMAKE_IOS_DEPLOYMENT_TARGET = 10.0" )
        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/libmessaging.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lmessaging
}

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

    ios: {
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Analytics \
            -framework FirebaseAnalytics \
            -framework FirebaseCore \
            -framework FirebaseCoreDiagnostics \
            -framework FirebaseInstanceID \
            -framework FirebaseNanoPB \
            -framework GoogleToolboxForMac \
            -framework nanopb \
            \
    }

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

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/libanalytics.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lanalytics
}

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

    #TODO auth on ios
    ios: {
        message( "QtFirebase Auth not tested on ios" )
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Auth/Frameworks \
            -framework Auth \
    }

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

    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lauth
}

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

    #TODO database on ios
    ios: {
        message( "QtFirebase Database not tested on ios" )
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Database/Frameworks \
            -framework Database \
    }

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

    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -ldatabase
}

LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lapp

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)")
}

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

    QTFIREBASE_SDK_LIBS_PATH = $$QTFIREBASE_SDK_PATH/libs/android/$$ANDROID_TARGET_ARCH/gnustl

    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 \
        \

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

# NOTE the order of linking is important!

PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/libapp.a
LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lapp

# 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.h
    SOURCES += $$PWD/src/qtfirebaseadmob.cpp

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/libadmob.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -ladmob
}

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

    #TODO remote config on ios
    ios: {
        message( "QtFirebase RemoteConfig not tested on ios" )
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/RemoteConfig \
            -framework FirebaseRemoteConfig \
            -framework Protobuf \
            \
    }

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

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/libremote_config.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lremote_config
}

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

    ios: {
        message( "QtFirebase Messaging requires iOS v10.x to build. Setting QMAKE_IOS_DEPLOYMENT_TARGET = 10.0" )
        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/libmessaging.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lmessaging
}

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

    ios: {
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Analytics \
            -framework FirebaseAnalytics \
            -framework FirebaseCore \
            -framework FirebaseCoreDiagnostics \
            -framework FirebaseInstanceID \
            -framework FirebaseNanoPB \
            -framework GoogleToolboxForMac \
            -framework nanopb \
            \
    }

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

    PRE_TARGETDEPS += $$QTFIREBASE_SDK_LIBS_PATH/libanalytics.a
    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lanalytics
}

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

    #TODO auth on ios
    ios: {
        message( "QtFirebase Auth not tested on ios" )
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Auth/Frameworks \
            -framework Auth \
    }

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

    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lauth
}

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

    #TODO database on ios
    ios: {
        message( "QtFirebase Database not tested on ios" )
        LIBS += \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Database/Frameworks \
            -framework Database \
    }

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

    LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -ldatabase
}

LIBS += -L$$QTFIREBASE_SDK_LIBS_PATH -lapp


Add PRL exports for macros in pro file (#148)

#
# Copyright 2011 QZXing authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

CONFIG +=   qt warn_on

DEFINES += QZXING_LIBRARY \
        ZXING_ICONV_CONST \
        DISABLE_LIBRARY_FEATURES

INCLUDEPATH  += $$PWD \
                $$PWD/zxing

HEADERS += $$PWD/QZXing_global.h \
    $$PWD/CameraImageWrapper.h \
    $$PWD/ImageHandler.h \
    $$PWD/QZXing.h \
    $$PWD/zxing/zxing/ZXing.h \
    $$PWD/zxing/zxing/IllegalStateException.h \
    $$PWD/zxing/zxing/InvertedLuminanceSource.h \
    $$PWD/zxing/zxing/ChecksumException.h \
    $$PWD/zxing/zxing/ResultPointCallback.h \
    $$PWD/zxing/zxing/ResultPoint.h \
    $$PWD/zxing/zxing/Result.h \
    $$PWD/zxing/zxing/ResultMetadata.h \
    $$PWD/zxing/zxing/ReaderException.h \
    $$PWD/zxing/zxing/Reader.h \
    $$PWD/zxing/zxing/NotFoundException.h \
    $$PWD/zxing/zxing/MultiFormatReader.h \
    $$PWD/zxing/zxing/LuminanceSource.h \
    $$PWD/zxing/zxing/FormatException.h \
    $$PWD/zxing/zxing/Exception.h \
    $$PWD/zxing/zxing/DecodeHints.h \
    $$PWD/zxing/zxing/BinaryBitmap.h \
    $$PWD/zxing/zxing/Binarizer.h \
    $$PWD/zxing/zxing/BarcodeFormat.h \
    $$PWD/zxing/zxing/common/StringUtils.h \
    $$PWD/zxing/zxing/common/Str.h \
    $$PWD/zxing/zxing/common/Point.h \
    $$PWD/zxing/zxing/common/PerspectiveTransform.h \
    $$PWD/zxing/zxing/common/IllegalArgumentException.h \
    $$PWD/zxing/zxing/common/HybridBinarizer.h \
    $$PWD/zxing/zxing/common/GridSampler.h \
    $$PWD/zxing/zxing/common/GreyscaleRotatedLuminanceSource.h \
    $$PWD/zxing/zxing/common/GreyscaleLuminanceSource.h \
    $$PWD/zxing/zxing/common/GlobalHistogramBinarizer.h \
    $$PWD/zxing/zxing/common/DetectorResult.h \
    $$PWD/zxing/zxing/common/DecoderResult.h \
    $$PWD/zxing/zxing/common/Counted.h \
    $$PWD/zxing/zxing/common/CharacterSetECI.h \
    $$PWD/zxing/zxing/common/BitSource.h \
    $$PWD/zxing/zxing/common/BitMatrix.h \
    $$PWD/zxing/zxing/common/BitArray.h \
    $$PWD/zxing/zxing/common/Array.h \
    $$PWD/zxing/zxing/common/detector/MathUtils.h \
    $$PWD/zxing/zxing/common/detector/JavaMath.h \
    $$PWD/zxing/zxing/common/detector/WhiteRectangleDetector.h \
    $$PWD/zxing/zxing/common/detector/MonochromeRectangleDetector.h \
    $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonException.h \
    $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonDecoder.h \
    $$PWD/zxing/zxing/common/reedsolomon/GenericGFPoly.h \
    $$PWD/zxing/zxing/common/reedsolomon/GenericGF.h \
    $$PWD/zxing/zxing/common/ByteArray.h \
    $$PWD/zxing/zxing/multi/MultipleBarcodeReader.h \
    $$PWD/zxing/zxing/multi/GenericMultipleBarcodeReader.h \
    $$PWD/zxing/zxing/multi/ByQuadrantReader.h \
    $$PWD/zxing/bigint/NumberlikeArray.hh \
    $$PWD/zxing/bigint/BigUnsignedInABase.hh \
    $$PWD/zxing/bigint/BigUnsigned.hh \
    $$PWD/zxing/bigint/BigIntegerUtils.hh \
    $$PWD/zxing/bigint/BigIntegerLibrary.hh \
    $$PWD/zxing/bigint/BigIntegerAlgorithms.hh \
    $$PWD/zxing/bigint/BigInteger.hh \
    $$PWD/zxing/zxing/WriterException.h \
    $$PWD/zxing/zxing/common/Types.h

SOURCES += $$PWD/CameraImageWrapper.cpp \
    $$PWD/QZXing.cpp \
    $$PWD/ImageHandler.cpp \
    $$PWD/zxing/zxing/ResultIO.cpp \
    $$PWD/zxing/zxing/InvertedLuminanceSource.cpp \
    $$PWD/zxing/zxing/ChecksumException.cpp \
    $$PWD/zxing/zxing/ResultPointCallback.cpp \
    $$PWD/zxing/zxing/ResultPoint.cpp \
    $$PWD/zxing/zxing/Result.cpp \
    $$PWD/zxing/zxing/ResultMetadata.cpp \
    $$PWD/zxing/zxing/Reader.cpp \
    $$PWD/zxing/zxing/MultiFormatReader.cpp \
    $$PWD/zxing/zxing/LuminanceSource.cpp \
    $$PWD/zxing/zxing/FormatException.cpp \
    $$PWD/zxing/zxing/Exception.cpp \
    $$PWD/zxing/zxing/DecodeHints.cpp \
    $$PWD/zxing/zxing/BinaryBitmap.cpp \
    $$PWD/zxing/zxing/Binarizer.cpp \
    $$PWD/zxing/zxing/BarcodeFormat.cpp \
    $$PWD/zxing/zxing/ReaderException.cpp \
    $$PWD/zxing/zxing/IllegalStateException.cpp \
    $$PWD/zxing/zxing/NotFoundException.cpp \
    $$PWD/zxing/zxing/WriterException.cpp \
    $$PWD/zxing/zxing/common/Counted.cpp \
    $$PWD/zxing/zxing/common/StringUtils.cpp \
    $$PWD/zxing/zxing/common/Str.cpp \
    $$PWD/zxing/zxing/common/PerspectiveTransform.cpp \
    $$PWD/zxing/zxing/common/IllegalArgumentException.cpp \
    $$PWD/zxing/zxing/common/HybridBinarizer.cpp \
    $$PWD/zxing/zxing/common/GridSampler.cpp \
    $$PWD/zxing/zxing/common/GreyscaleRotatedLuminanceSource.cpp \
    $$PWD/zxing/zxing/common/GreyscaleLuminanceSource.cpp \
    $$PWD/zxing/zxing/common/GlobalHistogramBinarizer.cpp \
    $$PWD/zxing/zxing/common/DetectorResult.cpp \
    $$PWD/zxing/zxing/common/DecoderResult.cpp \
    $$PWD/zxing/zxing/common/CharacterSetECI.cpp \
    $$PWD/zxing/zxing/common/BitSource.cpp \
    $$PWD/zxing/zxing/common/BitMatrix.cpp \
    $$PWD/zxing/zxing/common/BitArray.cpp \
    $$PWD/zxing/zxing/common/BitArrayIO.cpp \
    $$PWD/zxing/zxing/common/detector/WhiteRectangleDetector.cpp \
    $$PWD/zxing/zxing/common/detector/MonochromeRectangleDetector.cpp \
    $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonException.cpp \
    $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonDecoder.cpp \
    $$PWD/zxing/zxing/common/reedsolomon/GenericGFPoly.cpp \
    $$PWD/zxing/zxing/common/reedsolomon/GenericGF.cpp \
    $$PWD/zxing/zxing/multi/MultipleBarcodeReader.cpp \
    $$PWD/zxing/zxing/multi/GenericMultipleBarcodeReader.cpp \
    $$PWD/zxing/zxing/multi/ByQuadrantReader.cpp \
    $$PWD/zxing/bigint/BigUnsignedInABase.cc \
    $$PWD/zxing/bigint/BigUnsigned.cc \
    $$PWD/zxing/bigint/BigIntegerUtils.cc \
    $$PWD/zxing/bigint/BigIntegerAlgorithms.cc \
    $$PWD/zxing/bigint/BigInteger.cc \

enable_decoder_1d_barcodes {
    DEFINES += ENABLE_DECODER_1D_BARCODES

    HEADERS += \
        $$PWD/zxing/zxing/oned/UPCEReader.h \
        $$PWD/zxing/zxing/oned/UPCEANReader.h \
        $$PWD/zxing/zxing/oned/UPCEANExtensionSupport.h \
        $$PWD/zxing/zxing/oned/UPCEANExtension2Support.h \
        $$PWD/zxing/zxing/oned/UPCEANExtension5Support.h \
        $$PWD/zxing/zxing/oned/UPCAReader.h \
        $$PWD/zxing/zxing/oned/OneDResultPoint.h \
        $$PWD/zxing/zxing/oned/OneDReader.h \
        $$PWD/zxing/zxing/oned/MultiFormatUPCEANReader.h \
        $$PWD/zxing/zxing/oned/MultiFormatOneDReader.h \
        $$PWD/zxing/zxing/oned/ITFReader.h \
        $$PWD/zxing/zxing/oned/EAN13Reader.h \
        $$PWD/zxing/zxing/oned/EAN8Reader.h \
        $$PWD/zxing/zxing/oned/EANManufacturerOrgSupport.h \
        $$PWD/zxing/zxing/oned/Code128Reader.h \
        $$PWD/zxing/zxing/oned/Code39Reader.h \
        $$PWD/zxing/zxing/oned/CodaBarReader.h \
        $$PWD/zxing/zxing/oned/Code93Reader.h \
        $$PWD/zxing/zxing/oned/rss/AbstractRSSReader.h \
        $$PWD/zxing/zxing/oned/rss/DataCharacter.h \
        $$PWD/zxing/zxing/oned/rss/FinderPattern.h \
        $$PWD/zxing/zxing/oned/rss/Pair.h \
        $$PWD/zxing/zxing/oned/rss/RSS14Reader.h \
        $$PWD/zxing/zxing/oned/rss/RSSUtils.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013103decoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01320xDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01392xDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01393xDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013x0xDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01decoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01weightDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AnyAIDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/BlockParsedResult.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/CurrentParsingState.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedChar.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedInformation.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedNumeric.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedObject.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/FieldParser.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/BitArrayBuilder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/ExpandedPair.h \
        $$PWD/zxing/zxing/oned/rss/expanded/ExpandedRow.h \
        $$PWD/zxing/zxing/oned/rss/expanded/RSSExpandedReader.h

    SOURCES += \
        $$PWD/zxing/zxing/oned/UPCEReader.cpp \
        $$PWD/zxing/zxing/oned/UPCEANReader.cpp \
        $$PWD/zxing/zxing/oned/UPCEANExtensionSupport.cpp \
        $$PWD/zxing/zxing/oned/UPCEANExtension2Support.cpp \
        $$PWD/zxing/zxing/oned/UPCEANExtension5Support.cpp \
        $$PWD/zxing/zxing/oned/UPCAReader.cpp \
        $$PWD/zxing/zxing/oned/OneDResultPoint.cpp \
        $$PWD/zxing/zxing/oned/OneDReader.cpp \
        $$PWD/zxing/zxing/oned/MultiFormatUPCEANReader.cpp \
        $$PWD/zxing/zxing/oned/MultiFormatOneDReader.cpp \
        $$PWD/zxing/zxing/oned/ITFReader.cpp \
        $$PWD/zxing/zxing/oned/EAN13Reader.cpp \
        $$PWD/zxing/zxing/oned/EAN8Reader.cpp \
        $$PWD/zxing/zxing/oned/EANManufacturerOrgSupport.cpp \
        $$PWD/zxing/zxing/oned/Code128Reader.cpp \
        $$PWD/zxing/zxing/oned/Code39Reader.cpp \
        $$PWD/zxing/zxing/oned/CodaBarReader.cpp \
        $$PWD/zxing/zxing/oned/Code93Reader.cpp \
        $$PWD/zxing/zxing/oned/rss/AbstractRSSReader.cpp \
        $$PWD/zxing/zxing/oned/rss/DataCharacter.cpp \
        $$PWD/zxing/zxing/oned/rss/FinderPattern.cpp \
        $$PWD/zxing/zxing/oned/rss/Pair.cpp \
        $$PWD/zxing/zxing/oned/rss/RSS14Reader.cpp \
        $$PWD/zxing/zxing/oned/rss/RSSUtils.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/BitArrayBuilder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/ExpandedPair.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/ExpandedRow.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/RSSExpandedReader.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01decoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01weightDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013x0xDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01320xDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01392xDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01393xDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013103decoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AnyAIDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/BlockParsedResult.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/CurrentParsingState.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedChar.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedInformation.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedNumeric.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedObject.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/FieldParser.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.cpp
}

enable_decoder_qr_code {
    DEFINES += ENABLE_DECODER_QR_CODE

    CONFIG += enable_generic_qrcode

    HEADERS += \
        $$PWD/zxing/zxing/qrcode/decoder/Decoder.h \
        $$PWD/zxing/zxing/qrcode/decoder/DecodedBitStreamParser.h \
        $$PWD/zxing/zxing/qrcode/decoder/DataMask.h \
        $$PWD/zxing/zxing/qrcode/decoder/DataBlock.h \
        $$PWD/zxing/zxing/qrcode/decoder/BitMatrixParser.h \
        $$PWD/zxing/zxing/qrcode/detector/FinderPatternInfo.h \
        $$PWD/zxing/zxing/qrcode/detector/FinderPatternFinder.h \
        $$PWD/zxing/zxing/qrcode/detector/FinderPattern.h \
        $$PWD/zxing/zxing/qrcode/detector/Detector.h \
        $$PWD/zxing/zxing/qrcode/detector/AlignmentPatternFinder.h \
        $$PWD/zxing/zxing/qrcode/detector/AlignmentPattern.h \
        $$PWD/zxing/zxing/multi/qrcode/QRCodeMultiReader.h \
        $$PWD/zxing/zxing/multi/qrcode/detector/MultiFinderPatternFinder.h \
        $$PWD/zxing/zxing/multi/qrcode/detector/MultiDetector.h \

    SOURCES += \
        $$PWD/zxing/zxing/qrcode/decoder/QRBitMatrixParser.cpp \
        $$PWD/zxing/zxing/qrcode/decoder/QRDataBlock.cpp \
        $$PWD/zxing/zxing/qrcode/decoder/QRDataMask.cpp \
        $$PWD/zxing/zxing/qrcode/decoder/QRDecodedBitStreamParser.cpp \
        $$PWD/zxing/zxing/qrcode/decoder/QRDecoder.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRAlignmentPattern.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRAlignmentPatternFinder.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRDetector.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRFinderPattern.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRFinderPatternFinder.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRFinderPatternInfo.cpp \
        $$PWD/zxing/zxing/qrcode/QRCodeReader.cpp \
        $$PWD/zxing/zxing/multi/qrcode/QRCodeMultiReader.cpp \
        $$PWD/zxing/zxing/multi/qrcode/detector/MultiFinderPatternFinder.cpp \
        $$PWD/zxing/zxing/multi/qrcode/detector/MultiDetector.cpp
}

enable_encoder_qr_code {
    DEFINES += ENABLE_ENCODER_QR_CODE

    CONFIG += enable_generic_qrcode \
              enable_encoder_generic

    HEADERS += \
        $$PWD/zxing/zxing/qrcode/encoder/BlockPair.h \
        $$PWD/zxing/zxing/qrcode/encoder/ByteMatrix.h \
        $$PWD/zxing/zxing/qrcode/encoder/Encoder.h \
        $$PWD/zxing/zxing/qrcode/encoder/MaskUtil.h \
        $$PWD/zxing/zxing/qrcode/encoder/MatrixUtil.h \
        $$PWD/zxing/zxing/qrcode/encoder/QRCode.h

    SOURCES += \
        $$PWD/zxing/zxing/qrcode/encoder/ByteMatrix.cpp \
        $$PWD/zxing/zxing/qrcode/encoder/QREncoder.cpp \
        $$PWD/zxing/zxing/qrcode/encoder/MaskUtil.cpp \
        $$PWD/zxing/zxing/qrcode/encoder/MatrixUtil.cpp \
        $$PWD/zxing/zxing/qrcode/encoder/QRCode.cpp
}

enable_decoder_data_matrix {
    DEFINES += ENABLE_DECODER_DATA_MATRIX

    HEADERS += \
        $$PWD/zxing/zxing/datamatrix/Version.h \
        $$PWD/zxing/zxing/datamatrix/DataMatrixReader.h \
        $$PWD/zxing/zxing/datamatrix/decoder/Decoder.h \
        $$PWD/zxing/zxing/datamatrix/decoder/DecodedBitStreamParser.h \
        $$PWD/zxing/zxing/datamatrix/decoder/DataBlock.h \
        $$PWD/zxing/zxing/datamatrix/decoder/BitMatrixParser.h \
        $$PWD/zxing/zxing/datamatrix/detector/DetectorException.h \
        $$PWD/zxing/zxing/datamatrix/detector/Detector.h \
        $$PWD/zxing/zxing/datamatrix/detector/CornerPoint.h

    SOURCES += \
        $$PWD/zxing/zxing/datamatrix/DataMatrixReader.cpp \
        $$PWD/zxing/zxing/datamatrix/DataMatrixVersion.cpp \
        $$PWD/zxing/zxing/datamatrix/decoder/DataMatrixDecoder.cpp \
        $$PWD/zxing/zxing/datamatrix/decoder/DataMatrixBitMatrixParser.cpp \
        $$PWD/zxing/zxing/datamatrix/decoder/DataMatrixDataBlock.cpp \
        $$PWD/zxing/zxing/datamatrix/decoder/DataMatrixDecodedBitStreamParser.cpp \
        $$PWD/zxing/zxing/datamatrix/detector/DataMatrixCornerPoint.cpp \
        $$PWD/zxing/zxing/datamatrix/detector/DataMatrixDetector.cpp \
        $$PWD/zxing/zxing/datamatrix/detector/DataMatrixDetectorException.cpp
}

enable_decoder_aztec {
    DEFINES += ENABLE_DECODER_AZTEC

    HEADERS += \
        $$PWD/zxing/zxing/aztec/AztecReader.h \
        $$PWD/zxing/zxing/aztec/AztecDetectorResult.h \
        $$PWD/zxing/zxing/aztec/decoder/Decoder.h \
        $$PWD/zxing/zxing/aztec/detector/Detector.h

    SOURCES += \
        $$PWD/zxing/zxing/aztec/AztecReader.cpp \
        $$PWD/zxing/zxing/aztec/AztecDetectorResult.cpp \
        $$PWD/zxing/zxing/aztec/decoder/AztecDecoder.cpp \
        $$PWD/zxing/zxing/aztec/detector/AztecDetector.cpp
}

enable_decoder_pdf17 {
    DEFINES += ENABLE_DECODER_PDF17

    HEADERS += \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ErrorCorrection.h \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ModulusGF.h \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ModulusPoly.h \
        $$PWD/zxing/zxing/pdf417/decoder/BitMatrixParser.h \
        $$PWD/zxing/zxing/pdf417/decoder/DecodedBitStreamParser.h \
        $$PWD/zxing/zxing/pdf417/decoder/Decoder.h \
        $$PWD/zxing/zxing/pdf417/detector/Detector.h \
        $$PWD/zxing/zxing/pdf417/detector/LinesSampler.h \
        $$PWD/zxing/zxing/pdf417/PDF417Reader.h

    SOURCES += \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ErrorCorrection.cpp \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ModulusGF.cpp \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ModulusPoly.cpp \
        $$PWD/zxing/zxing/pdf417/decoder/PDF417BitMatrixParser.cpp \
        $$PWD/zxing/zxing/pdf417/decoder/PDF417DecodedBitStreamParser.cpp \
        $$PWD/zxing/zxing/pdf417/decoder/PDF417Decoder.cpp \
        $$PWD/zxing/zxing/pdf417/detector/PDF417Detector.cpp \
        $$PWD/zxing/zxing/pdf417/detector/LinesSampler.cpp \
        $$PWD/zxing/zxing/pdf417/PDF417Reader.cpp
}

enable_generic_qrcode {
    CONFIG += enable_encoder_generic

    HEADERS += \
        $$PWD/zxing/zxing/qrcode/Version.h \
        $$PWD/zxing/zxing/qrcode/QRCodeReader.h \
        $$PWD/zxing/zxing/qrcode/FormatInformation.h \
        $$PWD/zxing/zxing/qrcode/ErrorCorrectionLevel.h \
        $$PWD/zxing/zxing/qrcode/decoder/Mode.h

    SOURCES += \
        $$PWD/zxing/zxing/qrcode/QRVersion.cpp \
        $$PWD/zxing/zxing/qrcode/QRFormatInformation.cpp \
        $$PWD/zxing/zxing/qrcode/QRErrorCorrectionLevel.cpp \
        $$PWD/zxing/zxing/qrcode/decoder/QRMode.cpp \
}

enable_encoder_generic {
    DEFINES += ENABLE_ENCODER_GENERIC

    HEADERS += \
        $$PWD/zxing/zxing/EncodeHint.h \
        $$PWD/zxing/zxing/UnsupportedEncodingException.h \
        $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonEncoder.h \

    SOURCES += \
        $$PWD/zxing/zxing/EncodeHint.cpp \
        $$PWD/zxing/zxing/UnsupportedEncodingException.cpp \
        $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonEncoder.cpp
}

qzxing_multimedia {
    QT += multimedia

    CONFIG += qzxing_qml

    DEFINES += QZXING_MULTIMEDIA
	PRL_EXPORT_DEFINES += QZXING_MULTIMEDIA

    HEADERS += \
        $$PWD/QZXingFilter.h

    SOURCES += \
        $$PWD/QZXingFilter.cpp
}

qzxing_qml {
    greaterThan(QT_VERSION, 4.7): lessThan(QT_VERSION, 5.0): QT += declarative
    greaterThan(QT_MAJOR_VERSION, 4): QT += quick

    DEFINES += QZXING_QML
	PRL_EXPORT_DEFINES += QZXING_QML

    HEADERS +=  \
        $$PWD/QZXingImageProvider.h

    SOURCES +=  \
        $$PWD/QZXingImageProvider.cpp
}

symbian {
    TARGET.UID3 = 0xE618743C
    TARGET.EPOCALLOWDLLDATA = 1

    #TARGET.CAPABILITY = All -TCB -AllFiles -DRM
    TARGET.CAPABILITY += NetworkServices \
        ReadUserData \
        WriteUserData \
        LocalServices \
        UserEnvironment \
        Location
}

!symbian {
    isEmpty(PREFIX) {
        maemo5 {
            target.path = /opt/usr/lib
        } else {
            target.path = /usr/lib
        }
    }

    DEFINES += NOFMAXL

	# Installation
	headers.files = qzxing.h QZXing_global.h
	headers.path = $$PREFIX/include
	target.path = $$PREFIX/lib
	INSTALLS += headers target

	# pkg-config support
	CONFIG += create_pc create_prl no_install_prl
	QMAKE_PKGCONFIG_DESTDIR = pkgconfig
	QMAKE_PKGCONFIG_LIBDIR = ${prefix}/lib
	QMAKE_PKGCONFIG_INCDIR = ${prefix}/include

	unix:QMAKE_CLEAN += -r pkgconfig lib$${TARGET}.prl
}

win32-msvc*{

    DEFINES += __STDC_LIMIT_MACROS

    INCLUDEPATH += $$PWD/zxing/win32/zxing \
	            $$PWD/zxing/win32/zxing/msvc
    HEADERS += $$PWD/zxing/win32/zxing/msvc/stdint.h \
                $$PWD/zxing/win32/zxing/iconv.h

    SOURCES += $$PWD/zxing/win32/zxing/win_iconv.c
}

win32-g++{

    INCLUDEPATH += $$PWD/zxing/win32/zxing

    HEADERS += $$PWD/zxing/win32/zxing/iconv.h

    SOURCES += $$PWD/zxing/win32/zxing/win_iconv.c
}

!win32{
    DEFINES += NO_ICONV
}
winrt {
    DEFINES += NO_ICONV
}

#
# Copyright 2011 QZXing authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

CONFIG +=   qt warn_on

DEFINES += QZXING_LIBRARY \
        ZXING_ICONV_CONST \
        DISABLE_LIBRARY_FEATURES

INCLUDEPATH  += $$PWD \
                $$PWD/zxing

HEADERS += $$PWD/QZXing_global.h \
    $$PWD/CameraImageWrapper.h \
    $$PWD/ImageHandler.h \
    $$PWD/QZXing.h \
    $$PWD/zxing/zxing/ZXing.h \
    $$PWD/zxing/zxing/IllegalStateException.h \
    $$PWD/zxing/zxing/InvertedLuminanceSource.h \
    $$PWD/zxing/zxing/ChecksumException.h \
    $$PWD/zxing/zxing/ResultPointCallback.h \
    $$PWD/zxing/zxing/ResultPoint.h \
    $$PWD/zxing/zxing/Result.h \
    $$PWD/zxing/zxing/ResultMetadata.h \
    $$PWD/zxing/zxing/ReaderException.h \
    $$PWD/zxing/zxing/Reader.h \
    $$PWD/zxing/zxing/NotFoundException.h \
    $$PWD/zxing/zxing/MultiFormatReader.h \
    $$PWD/zxing/zxing/LuminanceSource.h \
    $$PWD/zxing/zxing/FormatException.h \
    $$PWD/zxing/zxing/Exception.h \
    $$PWD/zxing/zxing/DecodeHints.h \
    $$PWD/zxing/zxing/BinaryBitmap.h \
    $$PWD/zxing/zxing/Binarizer.h \
    $$PWD/zxing/zxing/BarcodeFormat.h \
    $$PWD/zxing/zxing/common/StringUtils.h \
    $$PWD/zxing/zxing/common/Str.h \
    $$PWD/zxing/zxing/common/Point.h \
    $$PWD/zxing/zxing/common/PerspectiveTransform.h \
    $$PWD/zxing/zxing/common/IllegalArgumentException.h \
    $$PWD/zxing/zxing/common/HybridBinarizer.h \
    $$PWD/zxing/zxing/common/GridSampler.h \
    $$PWD/zxing/zxing/common/GreyscaleRotatedLuminanceSource.h \
    $$PWD/zxing/zxing/common/GreyscaleLuminanceSource.h \
    $$PWD/zxing/zxing/common/GlobalHistogramBinarizer.h \
    $$PWD/zxing/zxing/common/DetectorResult.h \
    $$PWD/zxing/zxing/common/DecoderResult.h \
    $$PWD/zxing/zxing/common/Counted.h \
    $$PWD/zxing/zxing/common/CharacterSetECI.h \
    $$PWD/zxing/zxing/common/BitSource.h \
    $$PWD/zxing/zxing/common/BitMatrix.h \
    $$PWD/zxing/zxing/common/BitArray.h \
    $$PWD/zxing/zxing/common/Array.h \
    $$PWD/zxing/zxing/common/detector/MathUtils.h \
    $$PWD/zxing/zxing/common/detector/JavaMath.h \
    $$PWD/zxing/zxing/common/detector/WhiteRectangleDetector.h \
    $$PWD/zxing/zxing/common/detector/MonochromeRectangleDetector.h \
    $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonException.h \
    $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonDecoder.h \
    $$PWD/zxing/zxing/common/reedsolomon/GenericGFPoly.h \
    $$PWD/zxing/zxing/common/reedsolomon/GenericGF.h \
    $$PWD/zxing/zxing/common/ByteArray.h \
    $$PWD/zxing/zxing/multi/MultipleBarcodeReader.h \
    $$PWD/zxing/zxing/multi/GenericMultipleBarcodeReader.h \
    $$PWD/zxing/zxing/multi/ByQuadrantReader.h \
    $$PWD/zxing/bigint/NumberlikeArray.hh \
    $$PWD/zxing/bigint/BigUnsignedInABase.hh \
    $$PWD/zxing/bigint/BigUnsigned.hh \
    $$PWD/zxing/bigint/BigIntegerUtils.hh \
    $$PWD/zxing/bigint/BigIntegerLibrary.hh \
    $$PWD/zxing/bigint/BigIntegerAlgorithms.hh \
    $$PWD/zxing/bigint/BigInteger.hh \
    $$PWD/zxing/zxing/WriterException.h \
    $$PWD/zxing/zxing/common/Types.h

SOURCES += $$PWD/CameraImageWrapper.cpp \
    $$PWD/QZXing.cpp \
    $$PWD/ImageHandler.cpp \
    $$PWD/zxing/zxing/ResultIO.cpp \
    $$PWD/zxing/zxing/InvertedLuminanceSource.cpp \
    $$PWD/zxing/zxing/ChecksumException.cpp \
    $$PWD/zxing/zxing/ResultPointCallback.cpp \
    $$PWD/zxing/zxing/ResultPoint.cpp \
    $$PWD/zxing/zxing/Result.cpp \
    $$PWD/zxing/zxing/ResultMetadata.cpp \
    $$PWD/zxing/zxing/Reader.cpp \
    $$PWD/zxing/zxing/MultiFormatReader.cpp \
    $$PWD/zxing/zxing/LuminanceSource.cpp \
    $$PWD/zxing/zxing/FormatException.cpp \
    $$PWD/zxing/zxing/Exception.cpp \
    $$PWD/zxing/zxing/DecodeHints.cpp \
    $$PWD/zxing/zxing/BinaryBitmap.cpp \
    $$PWD/zxing/zxing/Binarizer.cpp \
    $$PWD/zxing/zxing/BarcodeFormat.cpp \
    $$PWD/zxing/zxing/ReaderException.cpp \
    $$PWD/zxing/zxing/IllegalStateException.cpp \
    $$PWD/zxing/zxing/NotFoundException.cpp \
    $$PWD/zxing/zxing/WriterException.cpp \
    $$PWD/zxing/zxing/common/Counted.cpp \
    $$PWD/zxing/zxing/common/StringUtils.cpp \
    $$PWD/zxing/zxing/common/Str.cpp \
    $$PWD/zxing/zxing/common/PerspectiveTransform.cpp \
    $$PWD/zxing/zxing/common/IllegalArgumentException.cpp \
    $$PWD/zxing/zxing/common/HybridBinarizer.cpp \
    $$PWD/zxing/zxing/common/GridSampler.cpp \
    $$PWD/zxing/zxing/common/GreyscaleRotatedLuminanceSource.cpp \
    $$PWD/zxing/zxing/common/GreyscaleLuminanceSource.cpp \
    $$PWD/zxing/zxing/common/GlobalHistogramBinarizer.cpp \
    $$PWD/zxing/zxing/common/DetectorResult.cpp \
    $$PWD/zxing/zxing/common/DecoderResult.cpp \
    $$PWD/zxing/zxing/common/CharacterSetECI.cpp \
    $$PWD/zxing/zxing/common/BitSource.cpp \
    $$PWD/zxing/zxing/common/BitMatrix.cpp \
    $$PWD/zxing/zxing/common/BitArray.cpp \
    $$PWD/zxing/zxing/common/BitArrayIO.cpp \
    $$PWD/zxing/zxing/common/detector/WhiteRectangleDetector.cpp \
    $$PWD/zxing/zxing/common/detector/MonochromeRectangleDetector.cpp \
    $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonException.cpp \
    $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonDecoder.cpp \
    $$PWD/zxing/zxing/common/reedsolomon/GenericGFPoly.cpp \
    $$PWD/zxing/zxing/common/reedsolomon/GenericGF.cpp \
    $$PWD/zxing/zxing/multi/MultipleBarcodeReader.cpp \
    $$PWD/zxing/zxing/multi/GenericMultipleBarcodeReader.cpp \
    $$PWD/zxing/zxing/multi/ByQuadrantReader.cpp \
    $$PWD/zxing/bigint/BigUnsignedInABase.cc \
    $$PWD/zxing/bigint/BigUnsigned.cc \
    $$PWD/zxing/bigint/BigIntegerUtils.cc \
    $$PWD/zxing/bigint/BigIntegerAlgorithms.cc \
    $$PWD/zxing/bigint/BigInteger.cc \

enable_decoder_1d_barcodes {
    DEFINES += ENABLE_DECODER_1D_BARCODES

    HEADERS += \
        $$PWD/zxing/zxing/oned/UPCEReader.h \
        $$PWD/zxing/zxing/oned/UPCEANReader.h \
        $$PWD/zxing/zxing/oned/UPCEANExtensionSupport.h \
        $$PWD/zxing/zxing/oned/UPCEANExtension2Support.h \
        $$PWD/zxing/zxing/oned/UPCEANExtension5Support.h \
        $$PWD/zxing/zxing/oned/UPCAReader.h \
        $$PWD/zxing/zxing/oned/OneDResultPoint.h \
        $$PWD/zxing/zxing/oned/OneDReader.h \
        $$PWD/zxing/zxing/oned/MultiFormatUPCEANReader.h \
        $$PWD/zxing/zxing/oned/MultiFormatOneDReader.h \
        $$PWD/zxing/zxing/oned/ITFReader.h \
        $$PWD/zxing/zxing/oned/EAN13Reader.h \
        $$PWD/zxing/zxing/oned/EAN8Reader.h \
        $$PWD/zxing/zxing/oned/EANManufacturerOrgSupport.h \
        $$PWD/zxing/zxing/oned/Code128Reader.h \
        $$PWD/zxing/zxing/oned/Code39Reader.h \
        $$PWD/zxing/zxing/oned/CodaBarReader.h \
        $$PWD/zxing/zxing/oned/Code93Reader.h \
        $$PWD/zxing/zxing/oned/rss/AbstractRSSReader.h \
        $$PWD/zxing/zxing/oned/rss/DataCharacter.h \
        $$PWD/zxing/zxing/oned/rss/FinderPattern.h \
        $$PWD/zxing/zxing/oned/rss/Pair.h \
        $$PWD/zxing/zxing/oned/rss/RSS14Reader.h \
        $$PWD/zxing/zxing/oned/rss/RSSUtils.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013103decoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01320xDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01392xDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01393xDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013x0xDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01decoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01weightDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AnyAIDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/BlockParsedResult.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/CurrentParsingState.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedChar.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedInformation.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedNumeric.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedObject.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/FieldParser.h \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/BitArrayBuilder.h \
        $$PWD/zxing/zxing/oned/rss/expanded/ExpandedPair.h \
        $$PWD/zxing/zxing/oned/rss/expanded/ExpandedRow.h \
        $$PWD/zxing/zxing/oned/rss/expanded/RSSExpandedReader.h

    SOURCES += \
        $$PWD/zxing/zxing/oned/UPCEReader.cpp \
        $$PWD/zxing/zxing/oned/UPCEANReader.cpp \
        $$PWD/zxing/zxing/oned/UPCEANExtensionSupport.cpp \
        $$PWD/zxing/zxing/oned/UPCEANExtension2Support.cpp \
        $$PWD/zxing/zxing/oned/UPCEANExtension5Support.cpp \
        $$PWD/zxing/zxing/oned/UPCAReader.cpp \
        $$PWD/zxing/zxing/oned/OneDResultPoint.cpp \
        $$PWD/zxing/zxing/oned/OneDReader.cpp \
        $$PWD/zxing/zxing/oned/MultiFormatUPCEANReader.cpp \
        $$PWD/zxing/zxing/oned/MultiFormatOneDReader.cpp \
        $$PWD/zxing/zxing/oned/ITFReader.cpp \
        $$PWD/zxing/zxing/oned/EAN13Reader.cpp \
        $$PWD/zxing/zxing/oned/EAN8Reader.cpp \
        $$PWD/zxing/zxing/oned/EANManufacturerOrgSupport.cpp \
        $$PWD/zxing/zxing/oned/Code128Reader.cpp \
        $$PWD/zxing/zxing/oned/Code39Reader.cpp \
        $$PWD/zxing/zxing/oned/CodaBarReader.cpp \
        $$PWD/zxing/zxing/oned/Code93Reader.cpp \
        $$PWD/zxing/zxing/oned/rss/AbstractRSSReader.cpp \
        $$PWD/zxing/zxing/oned/rss/DataCharacter.cpp \
        $$PWD/zxing/zxing/oned/rss/FinderPattern.cpp \
        $$PWD/zxing/zxing/oned/rss/Pair.cpp \
        $$PWD/zxing/zxing/oned/rss/RSS14Reader.cpp \
        $$PWD/zxing/zxing/oned/rss/RSSUtils.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/BitArrayBuilder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/ExpandedPair.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/ExpandedRow.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/RSSExpandedReader.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01decoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01weightDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013x0xDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01320xDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01392xDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI01393xDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AI013103decoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/AnyAIDecoder.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/BlockParsedResult.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/CurrentParsingState.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedChar.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedInformation.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedNumeric.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/DecodedObject.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/FieldParser.cpp \
        $$PWD/zxing/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.cpp
}

enable_decoder_qr_code {
    DEFINES += ENABLE_DECODER_QR_CODE

    CONFIG += enable_generic_qrcode

    HEADERS += \
        $$PWD/zxing/zxing/qrcode/decoder/Decoder.h \
        $$PWD/zxing/zxing/qrcode/decoder/DecodedBitStreamParser.h \
        $$PWD/zxing/zxing/qrcode/decoder/DataMask.h \
        $$PWD/zxing/zxing/qrcode/decoder/DataBlock.h \
        $$PWD/zxing/zxing/qrcode/decoder/BitMatrixParser.h \
        $$PWD/zxing/zxing/qrcode/detector/FinderPatternInfo.h \
        $$PWD/zxing/zxing/qrcode/detector/FinderPatternFinder.h \
        $$PWD/zxing/zxing/qrcode/detector/FinderPattern.h \
        $$PWD/zxing/zxing/qrcode/detector/Detector.h \
        $$PWD/zxing/zxing/qrcode/detector/AlignmentPatternFinder.h \
        $$PWD/zxing/zxing/qrcode/detector/AlignmentPattern.h \
        $$PWD/zxing/zxing/multi/qrcode/QRCodeMultiReader.h \
        $$PWD/zxing/zxing/multi/qrcode/detector/MultiFinderPatternFinder.h \
        $$PWD/zxing/zxing/multi/qrcode/detector/MultiDetector.h \

    SOURCES += \
        $$PWD/zxing/zxing/qrcode/decoder/QRBitMatrixParser.cpp \
        $$PWD/zxing/zxing/qrcode/decoder/QRDataBlock.cpp \
        $$PWD/zxing/zxing/qrcode/decoder/QRDataMask.cpp \
        $$PWD/zxing/zxing/qrcode/decoder/QRDecodedBitStreamParser.cpp \
        $$PWD/zxing/zxing/qrcode/decoder/QRDecoder.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRAlignmentPattern.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRAlignmentPatternFinder.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRDetector.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRFinderPattern.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRFinderPatternFinder.cpp \
        $$PWD/zxing/zxing/qrcode/detector/QRFinderPatternInfo.cpp \
        $$PWD/zxing/zxing/qrcode/QRCodeReader.cpp \
        $$PWD/zxing/zxing/multi/qrcode/QRCodeMultiReader.cpp \
        $$PWD/zxing/zxing/multi/qrcode/detector/MultiFinderPatternFinder.cpp \
        $$PWD/zxing/zxing/multi/qrcode/detector/MultiDetector.cpp
}

enable_encoder_qr_code {
    DEFINES += ENABLE_ENCODER_QR_CODE

    CONFIG += enable_generic_qrcode \
              enable_encoder_generic

    HEADERS += \
        $$PWD/zxing/zxing/qrcode/encoder/BlockPair.h \
        $$PWD/zxing/zxing/qrcode/encoder/ByteMatrix.h \
        $$PWD/zxing/zxing/qrcode/encoder/Encoder.h \
        $$PWD/zxing/zxing/qrcode/encoder/MaskUtil.h \
        $$PWD/zxing/zxing/qrcode/encoder/MatrixUtil.h \
        $$PWD/zxing/zxing/qrcode/encoder/QRCode.h

    SOURCES += \
        $$PWD/zxing/zxing/qrcode/encoder/ByteMatrix.cpp \
        $$PWD/zxing/zxing/qrcode/encoder/QREncoder.cpp \
        $$PWD/zxing/zxing/qrcode/encoder/MaskUtil.cpp \
        $$PWD/zxing/zxing/qrcode/encoder/MatrixUtil.cpp \
        $$PWD/zxing/zxing/qrcode/encoder/QRCode.cpp
}

enable_decoder_data_matrix {
    DEFINES += ENABLE_DECODER_DATA_MATRIX

    HEADERS += \
        $$PWD/zxing/zxing/datamatrix/Version.h \
        $$PWD/zxing/zxing/datamatrix/DataMatrixReader.h \
        $$PWD/zxing/zxing/datamatrix/decoder/Decoder.h \
        $$PWD/zxing/zxing/datamatrix/decoder/DecodedBitStreamParser.h \
        $$PWD/zxing/zxing/datamatrix/decoder/DataBlock.h \
        $$PWD/zxing/zxing/datamatrix/decoder/BitMatrixParser.h \
        $$PWD/zxing/zxing/datamatrix/detector/DetectorException.h \
        $$PWD/zxing/zxing/datamatrix/detector/Detector.h \
        $$PWD/zxing/zxing/datamatrix/detector/CornerPoint.h

    SOURCES += \
        $$PWD/zxing/zxing/datamatrix/DataMatrixReader.cpp \
        $$PWD/zxing/zxing/datamatrix/DataMatrixVersion.cpp \
        $$PWD/zxing/zxing/datamatrix/decoder/DataMatrixDecoder.cpp \
        $$PWD/zxing/zxing/datamatrix/decoder/DataMatrixBitMatrixParser.cpp \
        $$PWD/zxing/zxing/datamatrix/decoder/DataMatrixDataBlock.cpp \
        $$PWD/zxing/zxing/datamatrix/decoder/DataMatrixDecodedBitStreamParser.cpp \
        $$PWD/zxing/zxing/datamatrix/detector/DataMatrixCornerPoint.cpp \
        $$PWD/zxing/zxing/datamatrix/detector/DataMatrixDetector.cpp \
        $$PWD/zxing/zxing/datamatrix/detector/DataMatrixDetectorException.cpp
}

enable_decoder_aztec {
    DEFINES += ENABLE_DECODER_AZTEC

    HEADERS += \
        $$PWD/zxing/zxing/aztec/AztecReader.h \
        $$PWD/zxing/zxing/aztec/AztecDetectorResult.h \
        $$PWD/zxing/zxing/aztec/decoder/Decoder.h \
        $$PWD/zxing/zxing/aztec/detector/Detector.h

    SOURCES += \
        $$PWD/zxing/zxing/aztec/AztecReader.cpp \
        $$PWD/zxing/zxing/aztec/AztecDetectorResult.cpp \
        $$PWD/zxing/zxing/aztec/decoder/AztecDecoder.cpp \
        $$PWD/zxing/zxing/aztec/detector/AztecDetector.cpp
}

enable_decoder_pdf17 {
    DEFINES += ENABLE_DECODER_PDF17

    HEADERS += \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ErrorCorrection.h \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ModulusGF.h \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ModulusPoly.h \
        $$PWD/zxing/zxing/pdf417/decoder/BitMatrixParser.h \
        $$PWD/zxing/zxing/pdf417/decoder/DecodedBitStreamParser.h \
        $$PWD/zxing/zxing/pdf417/decoder/Decoder.h \
        $$PWD/zxing/zxing/pdf417/detector/Detector.h \
        $$PWD/zxing/zxing/pdf417/detector/LinesSampler.h \
        $$PWD/zxing/zxing/pdf417/PDF417Reader.h

    SOURCES += \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ErrorCorrection.cpp \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ModulusGF.cpp \
        $$PWD/zxing/zxing/pdf417/decoder/ec/ModulusPoly.cpp \
        $$PWD/zxing/zxing/pdf417/decoder/PDF417BitMatrixParser.cpp \
        $$PWD/zxing/zxing/pdf417/decoder/PDF417DecodedBitStreamParser.cpp \
        $$PWD/zxing/zxing/pdf417/decoder/PDF417Decoder.cpp \
        $$PWD/zxing/zxing/pdf417/detector/PDF417Detector.cpp \
        $$PWD/zxing/zxing/pdf417/detector/LinesSampler.cpp \
        $$PWD/zxing/zxing/pdf417/PDF417Reader.cpp
}

enable_generic_qrcode {
    CONFIG += enable_encoder_generic

    HEADERS += \
        $$PWD/zxing/zxing/qrcode/Version.h \
        $$PWD/zxing/zxing/qrcode/QRCodeReader.h \
        $$PWD/zxing/zxing/qrcode/FormatInformation.h \
        $$PWD/zxing/zxing/qrcode/ErrorCorrectionLevel.h \
        $$PWD/zxing/zxing/qrcode/decoder/Mode.h

    SOURCES += \
        $$PWD/zxing/zxing/qrcode/QRVersion.cpp \
        $$PWD/zxing/zxing/qrcode/QRFormatInformation.cpp \
        $$PWD/zxing/zxing/qrcode/QRErrorCorrectionLevel.cpp \
        $$PWD/zxing/zxing/qrcode/decoder/QRMode.cpp \
}

enable_encoder_generic {
    DEFINES += ENABLE_ENCODER_GENERIC

    HEADERS += \
        $$PWD/zxing/zxing/EncodeHint.h \
        $$PWD/zxing/zxing/UnsupportedEncodingException.h \
        $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonEncoder.h \

    SOURCES += \
        $$PWD/zxing/zxing/EncodeHint.cpp \
        $$PWD/zxing/zxing/UnsupportedEncodingException.cpp \
        $$PWD/zxing/zxing/common/reedsolomon/ReedSolomonEncoder.cpp
}

qzxing_multimedia {
    QT += multimedia

    CONFIG += qzxing_qml

    DEFINES += QZXING_MULTIMEDIA

    HEADERS += \
        $$PWD/QZXingFilter.h

    SOURCES += \
        $$PWD/QZXingFilter.cpp
}

qzxing_qml {
    greaterThan(QT_VERSION, 4.7): lessThan(QT_VERSION, 5.0): QT += declarative
    greaterThan(QT_MAJOR_VERSION, 4): QT += quick

    DEFINES += QZXING_QML

    HEADERS +=  \
        $$PWD/QZXingImageProvider.h

    SOURCES +=  \
        $$PWD/QZXingImageProvider.cpp
}

symbian {
    TARGET.UID3 = 0xE618743C
    TARGET.EPOCALLOWDLLDATA = 1

    #TARGET.CAPABILITY = All -TCB -AllFiles -DRM
    TARGET.CAPABILITY += NetworkServices \
        ReadUserData \
        WriteUserData \
        LocalServices \
        UserEnvironment \
        Location
}

!symbian {
    isEmpty(PREFIX) {
        maemo5 {
            target.path = /opt/usr/lib
        } else {
            target.path = /usr/lib
        }
    }

    DEFINES += NOFMAXL

	# Installation
	headers.files = qzxing.h QZXing_global.h
	headers.path = $$PREFIX/include
	target.path = $$PREFIX/lib
	INSTALLS += headers target

	# pkg-config support
	CONFIG += create_pc create_prl no_install_prl
	QMAKE_PKGCONFIG_DESTDIR = pkgconfig
	QMAKE_PKGCONFIG_LIBDIR = ${prefix}/lib
	QMAKE_PKGCONFIG_INCDIR = ${prefix}/include

	unix:QMAKE_CLEAN += -r pkgconfig lib$${TARGET}.prl
}

win32-msvc*{

    DEFINES += __STDC_LIMIT_MACROS

    INCLUDEPATH += $$PWD/zxing/win32/zxing \
	            $$PWD/zxing/win32/zxing/msvc
    HEADERS += $$PWD/zxing/win32/zxing/msvc/stdint.h \
                $$PWD/zxing/win32/zxing/iconv.h

    SOURCES += $$PWD/zxing/win32/zxing/win_iconv.c
}

win32-g++{

    INCLUDEPATH += $$PWD/zxing/win32/zxing

    HEADERS += $$PWD/zxing/win32/zxing/iconv.h

    SOURCES += $$PWD/zxing/win32/zxing/win_iconv.c
}

!win32{
    DEFINES += NO_ICONV
}
winrt {
    DEFINES += NO_ICONV
}


Mac x cli build is no longer an app bundle

message("Mac X settings...")

INCLUDEPATH += /usr/local/include
QMAKE_LIBDIR += /usr/local/lib

# no app bundle
CONFIG -= app_bundle

# qjson
CONFIG(debug, debug|release) {
  LIBS += -lqjson
} else {
  LIBS += -lqjson
}

# boost
CONFIG(debug, debug|release) {
  LIBS += -lboost_system-mt \
          -lboost_thread-mt \
          -lboost_date_time-mt
} else {
  LIBS += -lboost_system-mt \
          -lboost_thread-mt \
          -lboost_date_time-mt
}

# curl
CONFIG(debug, debug|release) {
  LIBS += -lcurl
} else {
  LIBS += -lcurl
}

message("Mac X settings...")

INCLUDEPATH += /usr/local/include
QMAKE_LIBDIR += /usr/local/lib

# qjson
CONFIG(debug, debug|release) {
  LIBS += -lqjson
} else {
  LIBS += -lqjson
}

# boost
CONFIG(debug, debug|release) {
  LIBS += -lboost_system-mt \
          -lboost_thread-mt \
          -lboost_date_time-mt
} else {
  LIBS += -lboost_system-mt \
          -lboost_thread-mt \
          -lboost_date_time-mt
}

# curl
CONFIG(debug, debug|release) {
  LIBS += -lcurl
} else {
  LIBS += -lcurl
}


Add "CONFIG += GTEST"

Add "CONFIG += GTEST"


upped the version

upped the version

VERSION = 0.2.18

PROJECT_NAME = meego-ux-media

DISTSUBDIR = $${PROJECT_NAME}-$${VERSION}
TSSUBDIR = $${DISTSUBDIR}/ts

VERSION = 0.2.17

PROJECT_NAME = meego-ux-media

DISTSUBDIR = $${PROJECT_NAME}-$${VERSION}
TSSUBDIR = $${DISTSUBDIR}/ts


Fixes SSE on Linux

Fixes SSE on Linux

HEADERS += $${PWD}/include/gamemath.h \
        $${PWD}/include/gamemath_constants.h \
        $${PWD}/include/matrix4.h \
        $${PWD}/include/vector4.h

INCLUDEPATH += $${PWD}/include

linux-g++:QMAKE_CXXFLAGS += -msse -msse2 -mmmx -mfpmath=sse
win32-g++:QMAKE_CXXFLAGS += -msse -msse2 -mmmx -mfpmath=sse
win32-g++:QMAKE_CFLAGS += -msse -msse2 -mmmx -mfpmath=sse

HEADERS += $${PWD}/include/gamemath.h \
	$${PWD}/include/gamemath_constants.h \
	$${PWD}/include/matrix4.h \
	$${PWD}/include/vector4.h

INCLUDEPATH += $${PWD}/include

win32-g++:QMAKE_CXXFLAGS += -msse -msse2 -mmmx -mfpmath=sse
win32-g++:QMAKE_CFLAGS += -msse -msse2 -mmmx -mfpmath=sse


Assume sailfish for now if we cannot detect harmattan

contains(MEEGO_EDITION, "harmattan") {
    message("Building for harmattan")
    DEFINES += HARMATTAN
    CONFIG += harmattan
} else {
    # We will assume sailfish for now since it's the only platform I am familiar with
    message("Building for sailfish")
    DEFINES += SAILFISH
    CONFIG += sailfish
}

equals(QT_MAJOR_VERSION, 4) {
    CONFIG += qt4
    DEFINES += QT4
}

equals(QT_MAJOR_VERSION, 5) {
    CONFIG += qt5
    DEFINES += QT5
}

contains(MEEGO_EDITION, "harmattan") {
    message("Building for harmattan")
    DEFINES += HARMATTAN
    CONFIG += harmattan
} else {
# TODO: Assume nemo for now
    message("Building for nemo")
    DEFINES += NEMO
    CONFIG += nemo
}

equals(QT_MAJOR_VERSION, 4) {
    CONFIG += qt4
    DEFINES += QT4
}

equals(QT_MAJOR_VERSION, 5) {
    CONFIG += qt5
    DEFINES += QT5
}


Lorenz, try this 64-bit detection method please :-)

#-------------------------------------------------
#
# MAVGround - Micro Air Vehicle Groundstation
#
# Please see our website at <http://pixhawk.ethz.ch>
#
# Original Author:
# Lorenz Meier <mavteam@student.ethz.ch>
#
# Contributing Authors (in alphabetical order):
#
# (c) 2009 PIXHAWK Team
#
# This file is part of the mav groundstation project
# MAVGround is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# MAVGround is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with MAVGround. If not, see <http://www.gnu.org/licenses/>.
#
#-------------------------------------------------

QT       += network opengl svg xml phonon

TEMPLATE = app
TARGET = qgroundcontrol

BASEDIR = .
BUILDDIR = build
LANGUAGE = C++

#CONFIG += static debug
#CONFIG += static release console
CONFIG += static debug_and_release console
#QMAKE_CFLAGS += -j8
#QMAKE_CXXFLAGS += -j8

OBJECTS_DIR = $$BUILDDIR/obj
MOC_DIR = $$BUILDDIR/moc
UI_HEADERS_DIR = src/ui/generated

# Add external libraries
INCLUDEPATH += $$BASEDIR/lib/flite/include \
               $$BASEDIR/lib/flite/lang

#$$BASEDIR/lib/qextserialport/include
#               $$BASEDIR/lib/openjaus/libjaus/include \
#               $$BASEDIR/lib/openjaus/libopenJaus/include

message(Qt version $$[QT_VERSION])

# MAC OS X
macx {

	message(Building for Mac OS X)
	config -= static

    HARDWARE_PLATFORM = $$system(g++ -dumpspecs)
    contains( HARDWARE_PLATFORM, m64 ) {
        message(Building as 64-bit)
        CONFIG += x86_64
        CONFIG -= x86
    }

    QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.5

    DESTDIR = $$BASEDIR/bin/mac
    INCLUDEPATH += -framework SDL \
        $$BASEDIR/../mavlink/src

    LIBS += -framework IOKit \
        -framework SDL \
        -framework CoreFoundation \
        -framework ApplicationServices \
        -lm

    # Enable function-profiling with the OS X saturn tool
    debug {
        #QMAKE_CXXFLAGS += -finstrument-functions
        #LIBS += -lSaturn
    }

    ICON = $$BASEDIR/images/icons/macx.icns
}

# GNU/Linux
linux-g++ {

    debug {
        DESTDIR = $$BASEDIR
    }

    release {
        DESTDIR = $$BASEDIR
    }
    INCLUDEPATH += /usr/include/SDL

    HARDWARE_PLATFORM = $$system(uname -p)
    contains( HARDWARE_PLATFORM, x86_64 ) {
        # 64-bit Linux
        LIBS += \
            -L$$BASEDIR/lib/flite/linux64
        message(Building for GNU/Linux 64bit/x64)
    } else {
        # 32-bit Linux
        LIBS += \
           -L$$BASEDIR/lib/flite/linux32
        message(Building for GNU/Linux 32bit/i386)
    }
    LIBS += -lm \
        -lflite_cmu_us_awb \
        -lflite_cmu_us_rms \
        -lflite_cmu_us_slt \
        -lflite_usenglish \
        -lflite_cmulex \
        -lflite \
        -lSDL \
        -lSDLmain
}

# Windows (32bit/64bit)
win32 {

    message(Building for Windows Platform (32/64bit))

    # Special settings for debug
    #CONFIG += CONSOLE
    LIBS += -L$$BASEDIR\lib\sdl\win32 \
        -lmingw32 -lSDLmain -lSDL -mwindows

    INCLUDEPATH += $$BASEDIR/lib/sdl/include/SDL

    debug {
        DESTDIR = $$BASEDIR/bin
    }

    release {
        DESTDIR = $$BASEDIR/bin
    }

}

#-------------------------------------------------
#
# MAVGround - Micro Air Vehicle Groundstation
#
# Please see our website at <http://pixhawk.ethz.ch>
#
# Original Author:
# Lorenz Meier <mavteam@student.ethz.ch>
#
# Contributing Authors (in alphabetical order):
#
# (c) 2009 PIXHAWK Team
#
# This file is part of the mav groundstation project
# MAVGround is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# MAVGround is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with MAVGround. If not, see <http://www.gnu.org/licenses/>.
#
#-------------------------------------------------

QT       += network opengl svg xml phonon

TEMPLATE = app
TARGET = qgroundcontrol

BASEDIR = .
BUILDDIR = build
LANGUAGE = C++

#CONFIG += static debug
#CONFIG += static release console
CONFIG += static debug_and_release console
#QMAKE_CFLAGS += -j8
#QMAKE_CXXFLAGS += -j8

OBJECTS_DIR = $$BUILDDIR/obj
MOC_DIR = $$BUILDDIR/moc
UI_HEADERS_DIR = src/ui/generated

# Add external libraries
INCLUDEPATH += $$BASEDIR/lib/flite/include \
               $$BASEDIR/lib/flite/lang

#$$BASEDIR/lib/qextserialport/include
#               $$BASEDIR/lib/openjaus/libjaus/include \
#               $$BASEDIR/lib/openjaus/libopenJaus/include

message(Qt version $$[QT_VERSION])

# MAC OS X
macx {

    CONFIG += x86 #x86_64
    CONFIG -= static phonon

    HARDWARE_PLATFORM = $$system(uname -a)
    contains( HARDWARE_PLATFORM, x86_64 ) {
        # x64 Mac OS X Snow Leopard 10.6 and later
        CONFIG += x86_64
        CONFIG -= x86 static phonon
        message(Building for Mac OS X 64bit/Snow Leopard 10.6 and later)
    } else {
        # x86 Mac OS X Leopard 10.5 and earlier
        CONFIG += x86 static phonon
        message(Building for Mac OS X 32bit/Leopard 10.5 and earlier)
    }

    QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.5

    DESTDIR = $$BASEDIR/bin/mac
    INCLUDEPATH += -framework SDL \
        $$BASEDIR/../mavlink/src

    LIBS += -framework IOKit \
        -framework SDL \
        -framework CoreFoundation \
        -framework ApplicationServices \
        -lm

    # Enable function-profiling with the OS X saturn tool
    debug {
        #QMAKE_CXXFLAGS += -finstrument-functions
        #LIBS += -lSaturn
    }

    ICON = $$BASEDIR/images/icons/macx.icns
}

# GNU/Linux
linux-g++ {

    debug {
        DESTDIR = $$BASEDIR
    }

    release {
        DESTDIR = $$BASEDIR
    }
    INCLUDEPATH += /usr/include/SDL

    HARDWARE_PLATFORM = $$system(uname -a)
    contains( HARDWARE_PLATFORM, x86_64 ) {
        # 64-bit Linux
        LIBS += \
            -L$$BASEDIR/lib/flite/linux64
        message(Building for GNU/Linux 64bit/x64)
    } else {
        # 32-bit Linux
        LIBS += \
           -L$$BASEDIR/lib/flite/linux32
        message(Building for GNU/Linux 32bit/i386)
    }
    LIBS += -lm \
        -lflite_cmu_us_awb \
        -lflite_cmu_us_rms \
        -lflite_cmu_us_slt \
        -lflite_usenglish \
        -lflite_cmulex \
        -lflite \
        -lSDL \
        -lSDLmain
}

# Windows (32bit/64bit)
win32 {

    message(Building for Windows Platform (32/64bit))

    # Special settings for debug
    #CONFIG += CONSOLE
    LIBS += -L$$BASEDIR\lib\sdl\win32 \
        -lmingw32 -lSDLmain -lSDL -mwindows

    INCLUDEPATH += $$BASEDIR/lib/sdl/include/SDL

    debug {
        DESTDIR = $$BASEDIR/bin
    }

    release {
        DESTDIR = $$BASEDIR/bin
    }

}


attempt #2

attempt #2

DEPENDPATH  += $$PWD
INCLUDEPATH += $$PWD
win32-msvc* {
  LIBS += -L$$ROOT_DIR/bin -l$$ROOT_DIR/bin/meanshift $$LIBS
}else {
  LIBS += -L$$ROOT_DIR/bin -l$$ROOT_DIR/bin/libmeanshift.a $$LIBS
}

DEPENDPATH  += $$PWD
INCLUDEPATH += $$PWD
LIBS += -L$$ROOT_DIR/bin -l$$ROOT_DIR/bin/meanshift -l$$ROOT_DIR/bin/libmeanshift $$LIBS


fixing .pro to actually enable c++14

fixing .pro to actually enable c++14

RAYTRACER_ROOT = $$PWD

RAYTRACER_BIN = $$RAYTRACER_ROOT/bin

RAYTRACER_OBJ = $$RAYTRACER_ROOT/obj

RAYTRACER_MOC = $$RAYTRACER_ROOT/moc

RAYTRACER_OBJ_TESTS = $$RAYTRACER_ROOT/obj_tests

RAYTRACER_MOC_TESTS = $$RAYTRACER_ROOT/moc_tests

RAYTRACER_OBJ_LIB = $$RAYTRACER_ROOT/obj_lib

RAYTRACER_OBJ_GUI = $$RAYTRACER_ROOT/obj_gui

RAYTRACER_MOC_GUI = $$RAYTRACER_ROOT/moc_gui

RAYTRACER_LIB = $$RAYTRACER_ROOT/lib

DESTDIR = $$RAYTRACER_BIN

CONFIG += c++14

include(boost.pri)
include(eigen.pri)
include(gsl.pri)

INCLUDEPATH += $$EIGEN_INCLUDE_PATH $$GSL_INCLUDE_PATH $$BOOST_INCLUDE_PATH

RAYTRACER_ROOT = $$PWD

RAYTRACER_BIN = $$RAYTRACER_ROOT/bin

RAYTRACER_OBJ = $$RAYTRACER_ROOT/obj

RAYTRACER_MOC = $$RAYTRACER_ROOT/moc

RAYTRACER_OBJ_TESTS = $$RAYTRACER_ROOT/obj_tests

RAYTRACER_MOC_TESTS = $$RAYTRACER_ROOT/moc_tests

RAYTRACER_OBJ_LIB = $$RAYTRACER_ROOT/obj_lib

RAYTRACER_OBJ_GUI = $$RAYTRACER_ROOT/obj_gui

RAYTRACER_MOC_GUI = $$RAYTRACER_ROOT/moc_gui

RAYTRACER_LIB = $$RAYTRACER_ROOT/lib

DESTDIR = $$RAYTRACER_BIN

QCONFIG += c++14

include(boost.pri)
include(eigen.pri)
include(gsl.pri)

INCLUDEPATH += $$EIGEN_INCLUDE_PATH $$GSL_INCLUDE_PATH $$BOOST_INCLUDE_PATH


update mac sdk to 10.11

update mac sdk to 10.11

android-no-sdk {
    target.path = /data/user/qt
    export(target.path)
    INSTALLS += target
} else:android {
    x86 {
        target.path = /libs/x86
    } else: armeabi-v7a {
        target.path = /libs/armeabi-v7a
    } else {
        target.path = /libs/armeabi
    }
    export(target.path)
    INSTALLS += target
} else:unix {
    isEmpty(target.path) {
        qnx {
            target.path = /tmp/$${TARGET}/bin
        } else {
            target.path = /opt/$${TARGET}/bin
        }
        export(target.path)
    }
    INSTALLS += target
}

mac {
	QMAKE_MAC_SDK = macosx10.11
    ICON = OwaViewer.icns
}

export(INSTALLS)

android-no-sdk {
    target.path = /data/user/qt
    export(target.path)
    INSTALLS += target
} else:android {
    x86 {
        target.path = /libs/x86
    } else: armeabi-v7a {
        target.path = /libs/armeabi-v7a
    } else {
        target.path = /libs/armeabi
    }
    export(target.path)
    INSTALLS += target
} else:unix {
    isEmpty(target.path) {
        qnx {
            target.path = /tmp/$${TARGET}/bin
        } else {
            target.path = /opt/$${TARGET}/bin
        }
        export(target.path)
    }
    INSTALLS += target
}

mac {
    ICON = OwaViewer.icns
}

export(INSTALLS)


QT_USE_FAST_OPERATOR_PLUS still breaks *some* macs ...

... so just disable it for all macs.

defineReplace(cleanPath) {
    win32:1 ~= s|\\\\|/|g
    contains(1, ^/.*):pfx = /
    else:pfx =
    segs = $$split(1, /)
    out =
    for(seg, segs) {
        equals(seg, ..):out = $$member(out, 0, -2)
        else:!equals(seg, .):out += $$seg
    }
    return($$join(out, /, $$pfx))
}

defineReplace(targetPath) {
    return($$replace(1, /, $$QMAKE_DIR_SEP))
}

# For use in custom compilers which just copy files
win32:i_flag = i
defineReplace(stripSrcDir) {
    win32 {
        !contains(1, ^.:.*):1 = $$OUT_PWD/$$1
    } else {
        !contains(1, ^/.*):1 = $$OUT_PWD/$$1
    }
    out = $$cleanPath($$1)
    out ~= s|^$$re_escape($$PWD/)||$$i_flag
    return($$out)
}

isEmpty(TEST):CONFIG(debug, debug|release) {
    !debug_and_release|build_pass {
        TEST = 1
    }
}

isEmpty(IDE_LIBRARY_BASENAME) {
    IDE_LIBRARY_BASENAME = lib
}

DEFINES += IDE_LIBRARY_BASENAME=\\\"$$IDE_LIBRARY_BASENAME\\\"

equals(TEST, 1) {
    QT +=testlib
    DEFINES += WITH_TESTS
}

IDE_SOURCE_TREE = $$PWD
isEmpty(IDE_BUILD_TREE) {
    sub_dir = $$_PRO_FILE_PWD_
    sub_dir ~= s,^$$re_escape($$PWD),,
    IDE_BUILD_TREE = $$cleanPath($$OUT_PWD)
    IDE_BUILD_TREE ~= s,$$re_escape($$sub_dir)$,,
}
IDE_APP_PATH = $$IDE_BUILD_TREE/bin
macx {
    IDE_APP_TARGET   = "Qt Creator"
    IDE_LIBRARY_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/PlugIns
    IDE_PLUGIN_PATH  = $$IDE_LIBRARY_PATH
    IDE_LIBEXEC_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources
    IDE_DATA_PATH    = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources
    IDE_DOC_PATH     = $$IDE_DATA_PATH/doc
    contains(QT_CONFIG, ppc):CONFIG += ppc x86
    copydata = 1
} else {
    win32 {
        contains(TEMPLATE, vc.*)|contains(TEMPLATE_PREFIX, vc):vcproj = 1
        IDE_APP_TARGET   = qtcreator
    } else {
        IDE_APP_WRAPPER  = qtcreator
        IDE_APP_TARGET   = qtcreator.bin
    }
    IDE_LIBRARY_PATH = $$IDE_BUILD_TREE/$$IDE_LIBRARY_BASENAME/qtcreator
    IDE_PLUGIN_PATH  = $$IDE_LIBRARY_PATH/plugins
    IDE_LIBEXEC_PATH = $$IDE_APP_PATH # FIXME
    IDE_DATA_PATH    = $$IDE_BUILD_TREE/share/qtcreator
    IDE_DOC_PATH     = $$IDE_BUILD_TREE/share/doc/qtcreator
    !isEqual(IDE_SOURCE_TREE, $$IDE_BUILD_TREE):copydata = 1
}

INCLUDEPATH += \
    $$IDE_SOURCE_TREE/src/libs \
    $$IDE_SOURCE_TREE/tools

DEPENDPATH += \
    $$IDE_SOURCE_TREE/src/libs \
    $$IDE_SOURCE_TREE/tools

LIBS += -L$$IDE_LIBRARY_PATH

#DEFINES += QT_NO_CAST_FROM_ASCII
DEFINES += QT_NO_CAST_TO_ASCII
!macx:DEFINES += QT_USE_FAST_OPERATOR_PLUS QT_USE_FAST_CONCATENATION

unix {
    CONFIG(debug, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/debug-shared
    CONFIG(release, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/release-shared

    CONFIG(debug, debug|release):MOC_DIR = $${OUT_PWD}/.moc/debug-shared
    CONFIG(release, debug|release):MOC_DIR = $${OUT_PWD}/.moc/release-shared

    RCC_DIR = $${OUT_PWD}/.rcc
    UI_DIR = $${OUT_PWD}/.uic
}

linux-g++-* {
    # Bail out on non-selfcontained libraries. Just a security measure
    # to prevent checking in code that does not compile on other platforms.
    QMAKE_LFLAGS += -Wl,--allow-shlib-undefined -Wl,--no-undefined
}

# Handle S60 support: default on Windows, conditionally built on other platforms.
win32:SUPPORT_QT_S60=1
else:SUPPORT_QT_S60 = $$(QTCREATOR_WITH_S60)

defineReplace(cleanPath) {
    win32:1 ~= s|\\\\|/|g
    contains(1, ^/.*):pfx = /
    else:pfx =
    segs = $$split(1, /)
    out =
    for(seg, segs) {
        equals(seg, ..):out = $$member(out, 0, -2)
        else:!equals(seg, .):out += $$seg
    }
    return($$join(out, /, $$pfx))
}

defineReplace(targetPath) {
    return($$replace(1, /, $$QMAKE_DIR_SEP))
}

# For use in custom compilers which just copy files
win32:i_flag = i
defineReplace(stripSrcDir) {
    win32 {
        !contains(1, ^.:.*):1 = $$OUT_PWD/$$1
    } else {
        !contains(1, ^/.*):1 = $$OUT_PWD/$$1
    }
    out = $$cleanPath($$1)
    out ~= s|^$$re_escape($$PWD/)||$$i_flag
    return($$out)
}

isEmpty(TEST):CONFIG(debug, debug|release) {
    !debug_and_release|build_pass {
        TEST = 1
    }
}

isEmpty(IDE_LIBRARY_BASENAME) {
    IDE_LIBRARY_BASENAME = lib
}

DEFINES += IDE_LIBRARY_BASENAME=\\\"$$IDE_LIBRARY_BASENAME\\\"

equals(TEST, 1) {
    QT +=testlib
    DEFINES += WITH_TESTS
}

IDE_SOURCE_TREE = $$PWD
isEmpty(IDE_BUILD_TREE) {
    sub_dir = $$_PRO_FILE_PWD_
    sub_dir ~= s,^$$re_escape($$PWD),,
    IDE_BUILD_TREE = $$cleanPath($$OUT_PWD)
    IDE_BUILD_TREE ~= s,$$re_escape($$sub_dir)$,,
}
IDE_APP_PATH = $$IDE_BUILD_TREE/bin
macx {
    IDE_APP_TARGET   = "Qt Creator"
    IDE_LIBRARY_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/PlugIns
    IDE_PLUGIN_PATH  = $$IDE_LIBRARY_PATH
    IDE_LIBEXEC_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources
    IDE_DATA_PATH    = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources
    IDE_DOC_PATH     = $$IDE_DATA_PATH/doc
    contains(QT_CONFIG, ppc):CONFIG += ppc x86
    copydata = 1
} else {
    win32 {
        contains(TEMPLATE, vc.*)|contains(TEMPLATE_PREFIX, vc):vcproj = 1
        IDE_APP_TARGET   = qtcreator
    } else {
        IDE_APP_WRAPPER  = qtcreator
        IDE_APP_TARGET   = qtcreator.bin
    }
    IDE_LIBRARY_PATH = $$IDE_BUILD_TREE/$$IDE_LIBRARY_BASENAME/qtcreator
    IDE_PLUGIN_PATH  = $$IDE_LIBRARY_PATH/plugins
    IDE_LIBEXEC_PATH = $$IDE_APP_PATH # FIXME
    IDE_DATA_PATH    = $$IDE_BUILD_TREE/share/qtcreator
    IDE_DOC_PATH     = $$IDE_BUILD_TREE/share/doc/qtcreator
    !isEqual(IDE_SOURCE_TREE, $$IDE_BUILD_TREE):copydata = 1
}

INCLUDEPATH += \
    $$IDE_SOURCE_TREE/src/libs \
    $$IDE_SOURCE_TREE/tools

DEPENDPATH += \
    $$IDE_SOURCE_TREE/src/libs \
    $$IDE_SOURCE_TREE/tools

LIBS += -L$$IDE_LIBRARY_PATH

#DEFINES += QT_NO_CAST_FROM_ASCII
DEFINES += QT_NO_CAST_TO_ASCII
DEFINES += QT_USE_FAST_OPERATOR_PLUS QT_USE_FAST_CONCATENATION

unix {
    CONFIG(debug, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/debug-shared
    CONFIG(release, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/release-shared

    CONFIG(debug, debug|release):MOC_DIR = $${OUT_PWD}/.moc/debug-shared
    CONFIG(release, debug|release):MOC_DIR = $${OUT_PWD}/.moc/release-shared

    RCC_DIR = $${OUT_PWD}/.rcc
    UI_DIR = $${OUT_PWD}/.uic
}

linux-g++-* {
    # Bail out on non-selfcontained libraries. Just a security measure
    # to prevent checking in code that does not compile on other platforms.
    QMAKE_LFLAGS += -Wl,--allow-shlib-undefined -Wl,--no-undefined
}

# Handle S60 support: default on Windows, conditionally built on other platforms.
win32:SUPPORT_QT_S60=1
else:SUPPORT_QT_S60 = $$(QTCREATOR_WITH_S60)


Fix paths in qtextimage.pri

Fix paths in qtextimage.pri

HEADERS += $$PWD/qtextimage.h

SOURCES += $$PWD/qtextimage.cpp

HEADERS += \
    ../qtextimage.h

SOURCES += \
    ../qtextimage.cpp


Do not use debug config for unit tests

Do not use debug config for unit tests

RevBy: TrustMe

Full, original commit at ad251fb56332eeefb9527c1f8963627595f5246a in maliit-framework

include(../config.pri)

OBJECTS_DIR = .obj
MOC_DIR = .moc
UTILS_DIR = ../utils

QT = core testlib

QMAKE_CLEAN += *.log *~

target.path = $$MALIIT_TEST_LIBDIR/$$TARGET
INSTALLS += target

DEFINES += MALIIT_TEST_DATA_PATH=\\\"$$MALIIT_TEST_LIBDIR\\\"

TOP_DIR = ../..
SRC_DIR = $$TOP_DIR/src

INCLUDEPATH += . \
               $$TOP_DIR \
               $$SRC_DIR \
               $$TOP_DIR/common \
               $$TOP_DIR/connection \
               $$UTILS_DIR \

HEADERS += \
           $$UTILS_DIR/core-utils.h \

SOURCES += \
           $$UTILS_DIR/core-utils.cpp \

code_coverage_option=off
for(OPTION,$$list($$lower($$COV_OPTION))){
    isEqual(OPTION, on){
        code_coverage_option=on
    }
}

include(../config.pri)

OBJECTS_DIR = .obj
MOC_DIR = .moc
UTILS_DIR = ../utils

CONFIG += debug
QT = core testlib

QMAKE_CLEAN += *.log *~

target.path = $$MALIIT_TEST_LIBDIR/$$TARGET
INSTALLS += target

DEFINES += MALIIT_TEST_DATA_PATH=\\\"$$MALIIT_TEST_LIBDIR\\\"

TOP_DIR = ../..
SRC_DIR = $$TOP_DIR/src

INCLUDEPATH += . \
               $$TOP_DIR \
               $$SRC_DIR \
               $$TOP_DIR/common \
               $$TOP_DIR/connection \
               $$UTILS_DIR \

HEADERS += \
           $$UTILS_DIR/core-utils.h \

SOURCES += \
           $$UTILS_DIR/core-utils.cpp \

code_coverage_option=off
for(OPTION,$$list($$lower($$COV_OPTION))){
    isEqual(OPTION, on){
        code_coverage_option=on
    }
}