app.pro Example File

demos/spectrum/app/app.pro
include(../spectrum.pri)

static: error(This application cannot be statically linked to the fftreal library)

TEMPLATE = app

TARGET = spectrum

QT       += multimedia

SOURCES  += main.cpp \
            engine.cpp \
            frequencyspectrum.cpp \
            levelmeter.cpp \
            mainwidget.cpp \
            progressbar.cpp \
            settingsdialog.cpp \
            spectrograph.cpp \
            spectrumanalyser.cpp \
            tonegenerator.cpp \
            tonegeneratordialog.cpp \
            utils.cpp \
            waveform.cpp \
            wavfile.cpp

HEADERS  += engine.h \
            frequencyspectrum.h \
            levelmeter.h \
            mainwidget.h \
            progressbar.h \
            settingsdialog.h \
            spectrograph.h \
            spectrum.h \
            spectrumanalyser.h \
            tonegenerator.h \
            tonegeneratordialog.h \
            utils.h \
            waveform.h \
            wavfile.h

fftreal_dir = ../3rdparty/fftreal

INCLUDEPATH += $${fftreal_dir}

RESOURCES = spectrum.qrc

symbian {
    # Platform security capability required to record audio on Symbian
    TARGET.CAPABILITY = UserEnvironment

    # Provide unique ID for the generated binary, required by Symbian OS
    TARGET.UID3 = 0xA000E402
}

# Dynamic linkage against FFTReal DLL
!contains(DEFINES, DISABLE_FFT) {
    symbian {
        # Must explicitly add the .dll suffix to ensure dynamic linkage
        LIBS += -lfftreal.dll
        QMAKE_LIBDIR += $${fftreal_dir}
    } else {
        macx {
            # Link to fftreal framework
            LIBS += -F$${fftreal_dir}
            LIBS += -framework fftreal
        } else {
            LIBS += -L..$${spectrum_build_dir}
            LIBS += -lfftreal
        }
    }
}

# Install

sources.files = $$SOURCES $$HEADERS $$RESOURCES app.pro
sources.path = $$[QT_INSTALL_DEMOS]/spectrum/app
images.files += images/record.png images/settings.png
images.path = $$[QT_INSTALL_DEMOS]/spectrum/app/images
INSTALLS += sources images

# Deployment

symbian {
    include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)

    !contains(DEFINES, DISABLE_FFT) {
        # Include FFTReal DLL in the SIS file
        fftreal.files = ../fftreal.dll
        fftreal.path = !:/sys/bin
        DEPLOYMENT += fftreal
    }
} else {
        DESTDIR = ..$${spectrum_build_dir}
    macx {
        !contains(DEFINES, DISABLE_FFT) {
            # Relocate fftreal.framework into spectrum.app bundle
            framework_dir = ../spectrum.app/Contents/Frameworks
            framework_name = fftreal.framework/Versions/1/fftreal
            QMAKE_POST_LINK = \
                mkdir -p $${framework_dir} &&\
                rm -rf $${framework_dir}/fftreal.framework &&\
                cp -R $${fftreal_dir}/fftreal.framework $${framework_dir} &&\
                install_name_tool -id @executable_path/../Frameworks/$${framework_name} \
                                  $${framework_dir}/$${framework_name} &&\
                install_name_tool -change $${framework_name} \
                                  @executable_path/../Frameworks/$${framework_name} \
                                  ../spectrum.app/Contents/MacOS/spectrum
        }
    } else {
        linux-g++*: {
            # Provide relative path from application to fftreal library
            QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
        }
    }
}

© 2016 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.