summaryrefslogtreecommitdiffstats
path: root/demos/spectrum/app/app.pro
blob: ebeef879f8a75538e0d8df3fa7ad863756de29e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
include(../spectrum.pri)

TEMPLATE = app

TARGET = spectrum
unix: !macx: !symbian: TARGET = spectrum.bin

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 {
            # Link to dynamic library which is written to ../bin
            LIBS += -L../bin
            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.sources = ../3rdparty/fftreal/fftreal.dll
        fftreal.path = !:/sys/bin
        DEPLOYMENT += fftreal
    }
} else {
    macx {
        # Specify directory in which to create spectrum.app bundle
        DESTDIR = ..

        !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 {
        # Specify directory in which to create spectrum application
        DESTDIR = ../bin

        unix: !symbian {
            # On unices other than Mac OSX, we copy a shell script into the bin directory.
            # This script takes care of correctly setting the LD_LIBRARY_PATH so that
            # the dynamic library can be located.
            copy_launch_script.target = copy_launch_script
            copy_launch_script.commands = \
                install -m 0555 $$QT_SOURCE_TREE/demos/spectrum/app/spectrum.sh ../bin/spectrum
            QMAKE_EXTRA_TARGETS += copy_launch_script
            POST_TARGETDEPS += copy_launch_script
        }
    }
}