Qt Reference Documentation

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