File: CMakeLists.txt

package info (click to toggle)
audacity 3.2.4%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 106,704 kB
  • sloc: cpp: 277,038; ansic: 73,623; lisp: 7,761; python: 3,305; sh: 2,715; perl: 821; xml: 275; makefile: 119
file content (321 lines) | stat: -rw-r--r-- 7,260 bytes parent folder | download
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
add_conan_lib(
   ZLIB
   zlib/1.2.11
   REQUIRED
   PKG_CONFIG "zlib >= 1.2.11"
   INTERFACE_NAME ZLIB::ZLIB
   OPTION_NAME zlib
   CONAN_OPTIONS
      zlib:shared=True
)

add_conan_lib(
   expat
   expat/2.2.9@audacity/stable
   REQUIRED
   PKG_CONFIG "expat >= 2.1.0"
   CONAN_OPTIONS
      expat:shared=True
)

if(${_OPT}has_crashreports)
   add_conan_lib(breakpad breakpad/0.1 REQUIRED)
endif()

if(${_OPT}has_vst3)
    add_conan_lib(
        vst3sdk vst3sdk/3.7.3
        REQUIRED
        HAS_ONLY_DEBUG_RELEASE
        ALLOW_FIND_PACKAGE
    )
endif()

set( wx_zlib "zlib" )

set( wx_png "libpng" )
set( wx_jpeg "libjpeg-turbo")
set( wx_tiff "off" )

set( id3tag_zlib "conan" )

if ( ${_OPT}use_zlib STREQUAL "system" )
   set( wx_zlib "sys" )
   # To prevent linking conflicts - we need to use system libpng as well.
   # wxWdigets will attempt to resolve it using find_package
   set( wx_png "sys" )
   # And, for consistency
   set( wx_jpeg "sys" )

   set( id3tag_zlib "system" )
endif()

set(wx_expat "expat")

if (${_OPT}use_expat STREQUAL "system")
   set(wx_expat "sys")
endif()

add_conan_lib(
   wxWidgets
   wxwidgets/3.1.3.3-audacity
   REQUIRED
   ALWAYS_ALLOW_CONAN_FALLBACK
   OPTION_NAME wxwidgets
   FIND_PACKAGE_OPTIONS COMPONENTS adv base core html qa xml net
   INTERFACE_NAME wxwidgets::wxwidgets
   CONAN_OPTIONS
      wxwidgets:shared=True
      wxwidgets:zlib=${wx_zlib}
      wxwidgets:expat=${wx_expat}
      wxwidgets:compatibility=3.0
      wxwidgets:png=${wx_png}
      wxwidgets:jpeg=${wx_jpeg}
      wxwidgets:tiff=${wx_tiff}
      wxwidgets:secretstore=False
      wxwidgets:opengl=False
      wxwidgets:propgrid=False
      wxwidgets:ribbon=False
      wxwidgets:richtext=False
      wxwidgets:stc=False
      wxwidgets:webview=False
      wxwidgets:help=False
      wxwidgets:html_help=False
      wxwidgets:fs_inet=False
      wxwidgets:protocol=False
      # Building with SIMD requires a huge number of build dependencies
      # Probably this will be enabled in the future
      libjpeg-turbo:SIMD=False
)

# If we are building using Conan provided version of
# wxWidgets, but against system libraries - ensure that required
# Librries are installed.
if(${_OPT}use_wxwidgets STREQUAL "local")
   if (wx_png STREQUAL "sys")
      find_required_package( PNG "libpng-dev" )
   endif()

   if (wx_jpeg STREQUAL "sys")
      find_required_package( JPEG "libjpeg-turbo8-dev" )
   endif()
endif()

add_conan_lib(
   libmp3lame
   libmp3lame/3.100
   REQUIRED
   INTERFACE_NAME libmp3lame::libmp3lame
   PKG_CONFIG "lame >= 3.100"
   ALLOW_FIND_PACKAGE
)

add_conan_lib(
   mpg123
   mpg123/1.29.3
   PKG_CONFIG "libmpg123"
   OPTION_NAME libmpg123
   INTERFACE_NAME MPG123::libmpg123
   CONAN_OPTIONS
      mpg123:shared=True
      mpg123:network=False
)

if( USE_LIBMPG123 )
   # If we are building against libmpg123, we need to drop
   # the previos configuration, which may used libmad
   set( USE_LIBMAD OFF CACHE INTERNAL "" FORCE )
   set( ${_OPT}use_libmad "off" )
else()
   add_conan_lib(
      libmad
      libmad/0.15.2b-1@
      OPTION_NAME libmad
      PKG_CONFIG "mad >= 0.15.0b" # Ubuntu has broken PC file
   )
endif()

add_conan_lib(
   libid3tag
   libid3tag/0.15.2b@audacity/stable
   OPTION_NAME libid3tag
   PKG_CONFIG "id3tag >= 0.15.0b" # Ubuntu has broken PC file
   CONAN_OPTIONS
      libid3tag:zlib=${id3tag_zlib}
)

add_conan_lib(
   WavPack
   wavpack/5.4.0
   OPTION_NAME wavpack
   ALLOW_FIND_PACKAGE
   PKG_CONFIG "wavpack >= 5.2.0"
   CONAN_OPTIONS
      wavpack:shared=True
)

add_conan_lib(
   Ogg
   ogg/1.3.4
   OPTION_NAME libogg
   ALLOW_FIND_PACKAGE
   CONAN_OPTIONS
      ogg:shared=True
)

add_conan_lib(
   FLAC
   flac/1.3.3
   OPTION_NAME libflac
   ALLOW_FIND_PACKAGE
   CONAN_OPTIONS
      flac:shared=True
)

add_conan_lib(
   Opus
   opus/1.3.1
   OPTION_NAME libopus
   ALLOW_FIND_PACKAGE
   CONAN_OPTIONS
      opus:shared=True
)

add_conan_lib(
   Vorbis
   vorbis/1.3.7
   OPTION_NAME libvorbis
   ALLOW_FIND_PACKAGE
   CONAN_OPTIONS
      vorbis:shared=True
)

add_conan_lib(
   SndFile
   libsndfile/1.0.31
   OPTION_NAME libsndfile
   ALLOW_FIND_PACKAGE
   CONAN_OPTIONS
      libsndfile:shared=True
)

# Allow building with ASIO for windows users
cmake_dependent_option(
   ${_OPT}has_asio_support
   "Build Audacity with ASIO support"
   False
   "WIN32 AND IS_64BIT"
   False
)

# Conan expects Python boolean, CMake will convert values to
# ON/OFF

if( ${_OPT}has_asio_support )
   set( portaudio_enable_asio "portaudio:with_asio=True" )
endif()

if(UNIX AND NOT APPLE)
   find_package(JACK QUIET)

   if( NOT JACK_FOUND )
      set( portaudio_disable_jack "portaudio:with_jack=False" )
   endif()
endif()

add_conan_lib(
   PortAudio
   portaudio/19.7.0
   OPTION_NAME portaudio
   ALLOW_FIND_PACKAGE
   INTERFACE_NAME PortAudio::PortAudio
   CONAN_OPTIONS
      portaudio:shared=True
      # Audacity doesn't support WDM/KS (yet)
      portaudio:with_wdmks=False
      ${portaudio_enable_asio}
      ${portaudio_disable_jack}
)

if( ${_OPT}has_networking )
   if( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
      set( curl_ssl "darwinssl" )
   elseif( CMAKE_SYSTEM_NAME MATCHES "Windows" )
      set( curl_ssl "schannel")
   else()
      set ( curl_ssl "openssl" )
   endif ()

   add_conan_lib(
      ThreadPool
      threadpool/20140926
      REQUIRED
      ALWAYS_ALLOW_CONAN_FALLBACK
   )

   add_conan_lib(
      CURL
      libcurl/7.75.0
      REQUIRED
      OPTION_NAME curl
      PKG_CONFIG "libcurl >= 7.68.0"
      INTERFACE_NAME CURL::libcurl
      FIND_PACKAGE_OPTIONS
      CONAN_OPTIONS
         libcurl:with_ssl=${curl_ssl}
         libcurl:shared=True
   )

endif()

if( NOT CMAKE_SYSTEM_NAME MATCHES "Darwin|Windows")
   add_conan_lib(
      libuuid
      libuuid/1.0.3
      REQUIRED
      OPTION_NAME uuid
      PKG_CONFIG "uuid"
      INTERFACE_NAME libuuid::libuuid
   )
endif()

if( ${_OPT}has_sentry_reporting OR ${_OPT}has_audiocom_upload )
   add_conan_lib(
      RapidJSON
      rapidjson/1.1.0
      REQUIRED
   )
endif()

add_conan_lib(
   PortMidi
   portmidi/r234
   OPTION_NAME midi
   ALLOW_FIND_PACKAGE
   CONAN_OPTIONS
      portmidi:shared=True
)

set_conan_vars_to_parent()

# Required libraries
#
#       directory          option      symbol      req   chk   version
addlib( sqlite             sqlite      SQLITE      YES   YES   "sqlite3 >= 3.31.1" )

# Optional libraries
#
addlib( libvamp            vamp        VAMP        NO    YES   "vamp >= 2.5" "vamp-hostsdk >= 2.5" )
addlib( lv2                lv2         LV2         NO    YES   "lilv-0 >= 0.24.6" "lv2 >= 1.16.0" "serd-0 >= 0.30.2" "sord-0 >= 0.16.4" "sratom-0 >= 0.6.4" "suil-0 >= 0.10.6" )

#addlib( portmidi           midi        MIDI        NO    YES   "PortMidi" )

if (NOT USE_MIDI AND
   "EXPERIMENTAL_MIDI_OUT" IN_LIST EXPERIMENTAL_OPTIONS_LIST )
   message(FATAL_ERROR "EXPERIMENTAL_MIDI_OUT requires USE_MIDI")
endif ()

addlib( portsmf            portsmf     PORTSMF     NO    YES   "portSMF >= 0.1" )
addlib( libsbsms           sbsms       SBSMS       NO    YES   "sbsms >= 2.2.0" )
addlib( soundtouch         soundtouch  SOUNDTOUCH  NO    YES   "soundtouch >= 1.7.1" )
addlib( twolame            twolame     LIBTWOLAME  NO    YES   "twolame >= 0.3.13" )