You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

473 lines
16KB

  1. /*
  2. ==============================================================================
  3. Build options for juce static library
  4. ==============================================================================
  5. */
  6. #ifndef BUILD_JUCE_APPCONFIG_H_INCLUDED
  7. #define BUILD_JUCE_APPCONFIG_H_INCLUDED
  8. // needed for some plugins
  9. // #define JUCE_MODAL_LOOPS_PERMITTED 1
  10. #define JUCE_MODULE_AVAILABLE_juce_audio_basics 1
  11. #define JUCE_MODULE_AVAILABLE_juce_audio_formats 1
  12. #define JUCE_MODULE_AVAILABLE_juce_audio_plugin_client 1
  13. #define JUCE_MODULE_AVAILABLE_juce_audio_processors 1
  14. #define JUCE_MODULE_AVAILABLE_juce_audio_utils 1
  15. #define JUCE_MODULE_AVAILABLE_juce_blocks_basics 0
  16. #define JUCE_MODULE_AVAILABLE_juce_box2d 0
  17. #define JUCE_MODULE_AVAILABLE_juce_core 1
  18. #define JUCE_MODULE_AVAILABLE_juce_cryptography 1
  19. #define JUCE_MODULE_AVAILABLE_juce_data_structures 1
  20. #define JUCE_MODULE_AVAILABLE_juce_dsp 1
  21. #define JUCE_MODULE_AVAILABLE_juce_events 1
  22. #define JUCE_MODULE_AVAILABLE_juce_graphics 1
  23. #define JUCE_MODULE_AVAILABLE_juce_gui_basics 1
  24. #define JUCE_MODULE_AVAILABLE_juce_gui_extra 1
  25. #define JUCE_MODULE_AVAILABLE_juce_opengl 1
  26. #define JUCE_MODULE_AVAILABLE_juce_osc 0
  27. #define JUCE_MODULE_AVAILABLE_juce_product_unlocking 0
  28. #define JUCE_MODULE_AVAILABLE_juce_video 0
  29. // optional
  30. #ifndef JUCE_MODULE_AVAILABLE_juce_audio_devices
  31. #define JUCE_MODULE_AVAILABLE_juce_audio_devices 0
  32. #endif
  33. //=============================================================================
  34. #define JUCE_STANDALONE_APPLICATION 0
  35. #define JUCE_REPORT_APP_USAGE 0
  36. #define JUCE_DISPLAY_SPLASH_SCREEN 0
  37. #define JUCE_USE_DARK_SPLASH_SCREEN 0
  38. //=============================================================================
  39. // juce_audio_basics
  40. #ifdef __ARM_NEON__
  41. #define JUCE_USE_ARM_NEON 1
  42. #endif
  43. #ifdef __SSE2__
  44. #define JUCE_USE_SSE_INTRINSICS 1
  45. #endif
  46. //=============================================================================
  47. // juce_audio_devices
  48. /** Config: JUCE_ASIO
  49. Enables ASIO audio devices (MS Windows only).
  50. Turning this on means that you'll need to have the Steinberg ASIO SDK installed
  51. on your Windows build machine.
  52. See the comments in the ASIOAudioIODevice class's header file for more
  53. info about this.
  54. */
  55. #define JUCE_ASIO 0
  56. /** Config: JUCE_WASAPI
  57. Enables WASAPI audio devices (Windows Vista and above).
  58. */
  59. #define JUCE_WASAPI 0
  60. /** Config: JUCE_DIRECTSOUND
  61. Enables DirectSound audio (MS Windows only).
  62. */
  63. #define JUCE_DIRECTSOUND 0
  64. /** Config: JUCE_ALSA
  65. Enables ALSA audio devices (Linux only).
  66. */
  67. #if LINUX
  68. #define JUCE_ALSA 1
  69. #define JUCE_ALSA_MIDI_NAME "JuceMidi"
  70. #else
  71. #define JUCE_ALSA 0
  72. #endif
  73. /** Config: JUCE_JACK
  74. Enables JACK audio devices (Linux only).
  75. */
  76. #define JUCE_JACK 0
  77. /** Config: JUCE_USE_ANDROID_OPENSLES
  78. Enables OpenSLES devices (Android only).
  79. */
  80. #define JUCE_USE_ANDROID_OPENSLES 0
  81. /** Config: JUCE_USE_CDREADER
  82. Enables the AudioCDReader class (on supported platforms).
  83. */
  84. #define JUCE_USE_CDREADER 0
  85. /** Config: JUCE_USE_CDBURNER
  86. Enables the AudioCDBurner class (on supported platforms).
  87. */
  88. #define JUCE_USE_CDBURNER 0
  89. //=============================================================================
  90. // juce_audio_formats
  91. /** Config: JUCE_USE_FLAC
  92. Enables the FLAC audio codec classes (available on all platforms).
  93. If your app doesn't need to read FLAC files, you might want to disable this to
  94. reduce the size of your codebase and build time.
  95. */
  96. #define JUCE_USE_FLAC 1
  97. /** Config: JUCE_USE_OGGVORBIS
  98. Enables the Ogg-Vorbis audio codec classes (available on all platforms).
  99. If your app doesn't need to read Ogg-Vorbis files, you might want to disable this to
  100. reduce the size of your codebase and build time.
  101. */
  102. #define JUCE_USE_OGGVORBIS 1
  103. /** Config: JUCE_USE_MP3AUDIOFORMAT
  104. Enables the software-based MP3AudioFormat class.
  105. IMPORTANT DISCLAIMER: By choosing to enable the JUCE_USE_MP3AUDIOFORMAT flag and to compile
  106. this MP3 code into your software, you do so AT YOUR OWN RISK! By doing so, you are agreeing
  107. that Raw Material Software is in no way responsible for any patent, copyright, or other
  108. legal issues that you may suffer as a result.
  109. The code in juce_MP3AudioFormat.cpp is NOT guaranteed to be free from infringements of 3rd-party
  110. intellectual property. If you wish to use it, please seek your own independent advice about the
  111. legality of doing so. If you are not willing to accept full responsibility for the consequences
  112. of using this code, then do not enable this setting.
  113. */
  114. #define JUCE_USE_MP3AUDIOFORMAT 0
  115. /** Config: JUCE_USE_LAME_AUDIO_FORMAT
  116. Enables the LameEncoderAudioFormat class.
  117. */
  118. #define JUCE_USE_LAME_AUDIO_FORMAT 0
  119. /** Config: JUCE_USE_WINDOWS_MEDIA_FORMAT
  120. Enables the Windows Media SDK codecs.
  121. */
  122. #define JUCE_USE_WINDOWS_MEDIA_FORMAT 0
  123. //=============================================================================
  124. // juce_audio_processors
  125. /** Config: JUCE_PLUGINHOST_VST
  126. Enables the VST audio plugin hosting classes. This requires the Steinberg VST SDK to be
  127. installed on your machine.
  128. @see VSTPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU, JUCE_PLUGINHOST_VST3
  129. */
  130. #define JUCE_PLUGINHOST_VST 1
  131. /** Config: JUCE_PLUGINHOST_VST3
  132. Enables the VST3 audio plugin hosting classes. This requires the Steinberg VST3 SDK to be
  133. installed on your machine.
  134. @see VSTPluginFormat, VST3PluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST, JUCE_PLUGINHOST_AU
  135. */
  136. #define JUCE_PLUGINHOST_VST3 1
  137. /** Config: JUCE_PLUGINHOST_AU
  138. Enables the AudioUnit plugin hosting classes. This is Mac-only, of course.
  139. @see AudioUnitPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST, JUCE_PLUGINHOST_VST3
  140. */
  141. #if MAC
  142. #define JUCE_PLUGINHOST_AU 1
  143. #else
  144. #define JUCE_PLUGINHOST_AU 0
  145. #endif
  146. #if LINUX
  147. #define JUCE_PLUGINHOST_LADSPA 1
  148. #else
  149. #define JUCE_PLUGINHOST_LADSPA 0
  150. #endif
  151. /** Config: JUCE_PLUGINHOST_LV2
  152. * Enables the LV2 plugin hosting classes.
  153. */
  154. #ifndef JUCE_PLUGINHOST_LV2
  155. #define JUCE_PLUGINHOST_LV2 0
  156. #endif
  157. //=============================================================================
  158. // juce_audio_utils
  159. //=============================================================================
  160. // juce_core
  161. /** Config: JUCE_FORCE_DEBUG
  162. Normally, JUCE_DEBUG is set to 1 or 0 based on compiler and project settings,
  163. but if you define this value, you can override this to force it to be true or false.
  164. */
  165. #define JUCE_FORCE_DEBUG 0
  166. /** Config: JUCE_LOG_ASSERTIONS
  167. If this flag is enabled, the the jassert and jassertfalse macros will always use Logger::writeToLog()
  168. to write a message when an assertion happens.
  169. Enabling it will also leave this turned on in release builds. When it's disabled,
  170. however, the jassert and jassertfalse macros will not be compiled in a
  171. release build.
  172. @see jassert, jassertfalse, Logger
  173. */
  174. #define JUCE_LOG_ASSERTIONS 1
  175. /** Config: JUCE_CHECK_MEMORY_LEAKS
  176. Enables a memory-leak check for certain objects when the app terminates. See the LeakedObjectDetector
  177. class and the JUCE_LEAK_DETECTOR macro for more details about enabling leak checking for specific classes.
  178. */
  179. #ifdef DEBUG
  180. #define JUCE_CHECK_MEMORY_LEAKS 1
  181. #else
  182. #define JUCE_CHECK_MEMORY_LEAKS 0
  183. #endif
  184. /** Config: JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
  185. In a Visual C++ build, this can be used to stop the required system libs being
  186. automatically added to the link stage.
  187. */
  188. #define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES 0
  189. /* Config: JUCE_INCLUDE_ZLIB_CODE
  190. This can be used to disable Juce's embedded 3rd-party zlib code.
  191. You might need to tweak this if you're linking to an external zlib library in your app,
  192. but for normal apps, this option should be left alone.
  193. If you disable this, you might also want to set a value for JUCE_ZLIB_INCLUDE_PATH, to
  194. specify the path where your zlib headers live.
  195. */
  196. #define JUCE_INCLUDE_ZLIB_CODE 1
  197. /** Config: JUCE_USE_CURL
  198. Enables http/https support via libcurl (Linux only). Enabling this will add an additional
  199. run-time dynmic dependency to libcurl.
  200. If you disable this then https/ssl support will not be available on linux.
  201. */
  202. #define JUCE_USE_CURL 0
  203. /* Config: JUCE_CATCH_UNHANDLED_EXCEPTIONS
  204. If enabled, this will add some exception-catching code to forward unhandled exceptions
  205. to your JUCEApplication::unhandledException() callback.
  206. */
  207. #define JUCE_CATCH_UNHANDLED_EXCEPTIONS 0
  208. /** Config: JUCE_ALLOW_STATIC_NULL_VARIABLES
  209. If disabled, this will turn off dangerous static globals like String::empty, var::null, etc
  210. which can cause nasty order-of-initialisation problems if they are referenced during static
  211. constructor code.
  212. */
  213. #define JUCE_ALLOW_STATIC_NULL_VARIABLES 0
  214. #define JUCE_STRING_UTF_TYPE 8
  215. #define JUCE_USE_VFORK 1
  216. //=============================================================================
  217. // juce_cryptography
  218. //=============================================================================
  219. // juce_data_structures
  220. //=============================================================================
  221. // juce_dsp
  222. /** Config: JUCE_ASSERTION_FIRFILTER
  223. When this flag is enabled, an assertion will be generated during the
  224. execution of DEBUG configurations if you use a FIRFilter class to process
  225. FIRCoefficients with a size higher than 128, to tell you that's it would be
  226. more efficient to use the Convolution class instead. It is enabled by
  227. default, but you may want to disable it if you really want to process such
  228. a filter in the time domain.
  229. */
  230. #define JUCE_ASSERTION_FIRFILTER 0
  231. /** Config: JUCE_DSP_USE_INTEL_MKL
  232. If this flag is set, then JUCE will use Intel's MKL for JUCE's FFT and
  233. convolution classes.
  234. The folder containing the mkl_dfti.h header must be in your header
  235. search paths when using this flag. You also need to add all the necessary
  236. intel mkl libraries to the "External Libraries to Link" field in the
  237. Projucer.
  238. */
  239. #define JUCE_DSP_USE_INTEL_MKL 0
  240. /** Config: JUCE_DSP_USE_SHARED_FFTW
  241. If this flag is set, then JUCE will search for the fftw shared libraries
  242. at runtime and use the library for JUCE's FFT and convolution classes.
  243. If the library is not found, then JUCE's fallback FFT routines will be used.
  244. This is especially useful on linux as fftw often comes pre-installed on
  245. popular linux distros.
  246. You must respect the FFTW license when enabling this option.
  247. */
  248. #define JUCE_DSP_USE_SHARED_FFTW 1
  249. /** Config: JUCE_DSP_USE_STATIC_FFTW
  250. If this flag is set, then JUCE will use the statically linked fftw libraries
  251. for JUCE's FFT and convolution classes.
  252. You must add the fftw header/library folder to the extra header/library search
  253. paths of your JUCE project. You also need to add the fftw library itself
  254. to the extra libraries supplied to your JUCE project during linking.
  255. You must respect the FFTW license when enabling this option.
  256. */
  257. #define JUCE_DSP_USE_STATIC_FFTW 0
  258. /** Config: JUCE_DSP_ENABLE_SNAP_TO_ZERO
  259. Enables code in the dsp module to avoid floating point denormals during the
  260. processing of some of the dsp module's filters.
  261. Enabling this will add a slight performance overhead to the DSP module's
  262. filters and algorithms. If your audio app already disables denormals altogether
  263. (for exmaple, by using the ScopedNoDenormals class or the
  264. FloatVectorOperations::disableDenormalisedNumberSupport method), then you
  265. can safely disable this flag to shave off a few cpu cycles from the DSP module's
  266. filters and algorithms.
  267. */
  268. #define JUCE_DSP_ENABLE_SNAP_TO_ZERO 0
  269. //=============================================================================
  270. // juce_events
  271. //=============================================================================
  272. // juce_graphics
  273. //=============================================================================
  274. /** Config: JUCE_USE_COREIMAGE_LOADER
  275. On OSX, enabling this flag means that the CoreImage codecs will be used to load
  276. PNG/JPEG/GIF files. It is enabled by default, but you may want to disable it if
  277. you'd rather use libpng, libjpeg, etc.
  278. */
  279. #if MAC
  280. #define JUCE_USE_COREIMAGE_LOADER 1
  281. #else
  282. #define JUCE_USE_COREIMAGE_LOADER 0
  283. #endif
  284. /** Config: JUCE_USE_DIRECTWRITE
  285. Enabling this flag means that DirectWrite will be used when available for font
  286. management and layout.
  287. */
  288. #define JUCE_USE_DIRECTWRITE 0
  289. #define JUCE_INCLUDE_PNGLIB_CODE 1
  290. #define JUCE_INCLUDE_JPEGLIB_CODE 1
  291. #if MAC
  292. #define USE_COREGRAPHICS_RENDERING 1
  293. #else
  294. #define USE_COREGRAPHICS_RENDERING 0
  295. #endif
  296. //=============================================================================
  297. // juce_gui_basics
  298. /** Config: JUCE_ENABLE_REPAINT_DEBUGGING
  299. If this option is turned on, each area of the screen that gets repainted will
  300. flash in a random colour, so that you can see exactly which bits of your
  301. components are being drawn.
  302. */
  303. #define JUCE_ENABLE_REPAINT_DEBUGGING 0
  304. /** JUCE_USE_XRANDR: Enables Xrandr multi-monitor support (Linux only).
  305. Unless you specifically want to disable this, it's best to leave this option turned on.
  306. Note that your users do not need to have Xrandr installed for your JUCE app to run, as
  307. the availability of Xrandr is queried during runtime.
  308. */
  309. #define JUCE_USE_XRANDR 0
  310. /** JUCE_USE_XINERAMA: Enables Xinerama multi-monitor support (Linux only).
  311. Unless you specifically want to disable this, it's best to leave this option turned on.
  312. */
  313. #define JUCE_USE_XINERAMA 0
  314. /** Config: JUCE_USE_XSHM
  315. Enables X shared memory for faster rendering on Linux. This is best left turned on
  316. unless you have a good reason to disable it.
  317. */
  318. #if LINUX
  319. #define JUCE_USE_XSHM 1
  320. #else
  321. #define JUCE_USE_XSHM 0
  322. #endif
  323. /** Config: JUCE_USE_XRENDER
  324. Enables XRender to allow semi-transparent windowing on Linux.
  325. */
  326. #define JUCE_USE_XRENDER 0
  327. /** Config: JUCE_USE_XCURSOR
  328. Uses XCursor to allow ARGB cursor on Linux. This is best left turned on unless you have
  329. a good reason to disable it.
  330. */
  331. #if LINUX
  332. #define JUCE_USE_XCURSOR 1
  333. #else
  334. #define JUCE_USE_XCURSOR 0
  335. #endif
  336. #if LINUX
  337. #define JUCE_DISABLE_NATIVE_FILECHOOSERS 1
  338. #endif
  339. //=============================================================================
  340. // juce_gui_extra
  341. /** Config: JUCE_WEB_BROWSER
  342. This lets you disable the WebBrowserComponent class (Mac and Windows).
  343. If you're not using any embedded web-pages, turning this off may reduce your code size.
  344. */
  345. #define JUCE_WEB_BROWSER 0
  346. /** Config: JUCE_ENABLE_LIVE_CONSTANT_EDITOR
  347. This lets you turn on the JUCE_ENABLE_LIVE_CONSTANT_EDITOR support. See the documentation
  348. for that macro for more details.
  349. */
  350. #define JUCE_ENABLE_LIVE_CONSTANT_EDITOR 0
  351. //=============================================================================
  352. // juce_opengl
  353. #define JUCE_OPENGL3 1
  354. //=============================================================================
  355. // Linux embed build
  356. #if JUCE_AUDIOPROCESSOR_NO_GUI
  357. #undef JUCE_MODULE_AVAILABLE_juce_graphics
  358. #undef JUCE_MODULE_AVAILABLE_juce_gui_basics
  359. #undef JUCE_MODULE_AVAILABLE_juce_gui_extra
  360. #undef JUCE_MODULE_AVAILABLE_juce_opengl
  361. #define JUCE_MODULE_AVAILABLE_juce_graphics 0
  362. #define JUCE_MODULE_AVAILABLE_juce_gui_basics 0
  363. #define JUCE_MODULE_AVAILABLE_juce_gui_extra 0
  364. #define JUCE_MODULE_AVAILABLE_juce_opengl 0
  365. #undef JUCE_ALSA
  366. #undef JUCE_PLUGINHOST_LADSPA
  367. #undef JUCE_PLUGINHOST_VST
  368. #define JUCE_ALSA 0
  369. #define JUCE_PLUGINHOST_LADSPA 0
  370. #define JUCE_PLUGINHOST_VST 0
  371. #endif
  372. #endif // BUILD_JUCE_APPCONFIG_H_INCLUDED