#
#  W A R N I N G
#  -------------
#
# This file is not part of the Qt API.  It exists purely as an
# implementation detail.  It may change from version to version
# without notice, or even be removed.
#
# We mean it.
#

# If an auto test needs a helper application, this helper should
# be put into the same directory as the test itself. This common
# folder should be the test's "main directory" or a "debug" or "release"
# subfolder inside this main directory if debug_and_release is enabled.
# Additionally the helper's executable is suffixed with "_helper" to
# avoid name clashes with its folder.

CONFIG += cmdline

debug_and_release {
    CONFIG(debug, debug|release) {
        TARGET = ../../debug/$${TARGET}_helper
    } else {
        TARGET = ../../release/$${TARGET}_helper
    }
} else {
    TARGET = ../$${TARGET}_helper
}

parentFolder = $$dirname(_PRO_FILE_PWD_)
testFolder = $$basename(parentFolder)
target.path = $$[QT_INSTALL_TESTS]/$$testFolder
INSTALLS += target
