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.

448 lines
15KB

  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. #define JUCE_MODULE_AVAILABLE_juce_audio_basics 1
  9. #define JUCE_MODULE_AVAILABLE_juce_audio_plugin_client 1
  10. #define JUCE_MODULE_AVAILABLE_juce_audio_devices 1
  11. #define JUCE_MODULE_AVAILABLE_juce_audio_formats 1
  12. #define JUCE_MODULE_AVAILABLE_juce_audio_processors 1
  13. #define JUCE_MODULE_AVAILABLE_juce_audio_utils 1
  14. #define JUCE_MODULE_AVAILABLE_juce_core 1
  15. #define JUCE_MODULE_AVAILABLE_juce_cryptography 1
  16. #define JUCE_MODULE_AVAILABLE_juce_data_structures 1
  17. #define JUCE_MODULE_AVAILABLE_juce_events 1
  18. #define JUCE_MODULE_AVAILABLE_juce_graphics 1
  19. #define JUCE_MODULE_AVAILABLE_juce_gui_basics 1
  20. #define JUCE_MODULE_AVAILABLE_juce_gui_extra 1
  21. #define JUCE_MODULE_AVAILABLE_juce_opengl 0
  22. #define JUCE_MODULE_AVAILABLE_juce_video 0
  23. // TODO new modules
  24. //=============================================================================
  25. #define JUCE_STANDALONE_APPLICATION 0
  26. #define JUCE_REPORT_APP_USAGE 0
  27. #define JUCE_DISPLAY_SPLASH_SCREEN 0
  28. #define JUCE_USE_DARK_SPLASH_SCREEN 0
  29. //=============================================================================
  30. // juce_audio_basics
  31. //=============================================================================
  32. // juce_audio_devices
  33. //=============================================================================
  34. /** Config: JUCE_ASIO
  35. Enables ASIO audio devices (MS Windows only).
  36. Turning this on means that you'll need to have the Steinberg ASIO SDK installed
  37. on your Windows build machine.
  38. See the comments in the ASIOAudioIODevice class's header file for more
  39. info about this.
  40. */
  41. #define JUCE_ASIO 0
  42. /** Config: JUCE_WASAPI
  43. Enables WASAPI audio devices (Windows Vista and above).
  44. */
  45. #define JUCE_WASAPI 0
  46. /** Config: JUCE_DIRECTSOUND
  47. Enables DirectSound audio (MS Windows only).
  48. */
  49. #define JUCE_DIRECTSOUND 0
  50. /** Config: JUCE_ALSA
  51. Enables ALSA audio devices (Linux only).
  52. */
  53. #if LINUX
  54. #define JUCE_ALSA 1
  55. #define JUCE_ALSA_MIDI_NAME "JuceMidi"
  56. #else
  57. #define JUCE_ALSA 0
  58. #endif
  59. /** Config: JUCE_JACK
  60. Enables JACK audio devices (Linux only).
  61. */
  62. #define JUCE_JACK 0
  63. /** Config: JUCE_USE_ANDROID_OPENSLES
  64. Enables OpenSLES devices (Android only).
  65. */
  66. #define JUCE_USE_ANDROID_OPENSLES 0
  67. //=============================================================================
  68. /** Config: JUCE_USE_CDREADER
  69. Enables the AudioCDReader class (on supported platforms).
  70. */
  71. #define JUCE_USE_CDREADER 0
  72. /** Config: JUCE_USE_CDBURNER
  73. Enables the AudioCDBurner class (on supported platforms).
  74. */
  75. #define JUCE_USE_CDBURNER 0
  76. //=============================================================================
  77. // juce_audio_formats
  78. //=============================================================================
  79. /** Config: JUCE_USE_FLAC
  80. Enables the FLAC audio codec classes (available on all platforms).
  81. If your app doesn't need to read FLAC files, you might want to disable this to
  82. reduce the size of your codebase and build time.
  83. */
  84. #define JUCE_USE_FLAC 1
  85. /** Config: JUCE_USE_OGGVORBIS
  86. Enables the Ogg-Vorbis audio codec classes (available on all platforms).
  87. If your app doesn't need to read Ogg-Vorbis files, you might want to disable this to
  88. reduce the size of your codebase and build time.
  89. */
  90. #define JUCE_USE_OGGVORBIS 1
  91. /** Config: JUCE_USE_MP3AUDIOFORMAT
  92. Enables the software-based MP3AudioFormat class.
  93. IMPORTANT DISCLAIMER: By choosing to enable the JUCE_USE_MP3AUDIOFORMAT flag and to compile
  94. this MP3 code into your software, you do so AT YOUR OWN RISK! By doing so, you are agreeing
  95. that Raw Material Software is in no way responsible for any patent, copyright, or other
  96. legal issues that you may suffer as a result.
  97. The code in juce_MP3AudioFormat.cpp is NOT guaranteed to be free from infringements of 3rd-party
  98. intellectual property. If you wish to use it, please seek your own independent advice about the
  99. legality of doing so. If you are not willing to accept full responsibility for the consequences
  100. of using this code, then do not enable this setting.
  101. */
  102. #define JUCE_USE_MP3AUDIOFORMAT 0
  103. /** Config: JUCE_USE_LAME_AUDIO_FORMAT
  104. Enables the LameEncoderAudioFormat class.
  105. */
  106. #define JUCE_USE_LAME_AUDIO_FORMAT 0
  107. /** Config: JUCE_USE_WINDOWS_MEDIA_FORMAT
  108. Enables the Windows Media SDK codecs.
  109. */
  110. #define JUCE_USE_WINDOWS_MEDIA_FORMAT 0
  111. //=============================================================================
  112. // juce_audio_processors
  113. //=============================================================================
  114. /** Config: JUCE_PLUGINHOST_VST
  115. Enables the VST audio plugin hosting classes. This requires the Steinberg VST SDK to be
  116. installed on your machine.
  117. @see VSTPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU, JUCE_PLUGINHOST_VST3
  118. */
  119. #define JUCE_PLUGINHOST_VST 1
  120. /** Config: JUCE_PLUGINHOST_VST3
  121. Enables the VST3 audio plugin hosting classes. This requires the Steinberg VST3 SDK to be
  122. installed on your machine.
  123. @see VSTPluginFormat, VST3PluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST, JUCE_PLUGINHOST_AU
  124. */
  125. #if 0 //MAC || WINDOWS
  126. #define JUCE_PLUGINHOST_VST3 1
  127. #else
  128. #define JUCE_PLUGINHOST_VST3 0
  129. #endif
  130. /** Config: JUCE_PLUGINHOST_AU
  131. Enables the AudioUnit plugin hosting classes. This is Mac-only, of course.
  132. @see AudioUnitPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST, JUCE_PLUGINHOST_VST3
  133. */
  134. #if MAC
  135. #define JUCE_PLUGINHOST_AU 1
  136. #else
  137. #define JUCE_PLUGINHOST_AU 0
  138. #endif
  139. #if LINUX
  140. #define JUCE_PLUGINHOST_LADSPA 1
  141. #else
  142. #define JUCE_PLUGINHOST_LADSPA 0
  143. #endif
  144. //=============================================================================
  145. // juce_audio_utils
  146. //=============================================================================
  147. // juce_core
  148. //=============================================================================
  149. /** Config: JUCE_FORCE_DEBUG
  150. Normally, JUCE_DEBUG is set to 1 or 0 based on compiler and project settings,
  151. but if you define this value, you can override this to force it to be true or false.
  152. */
  153. #define JUCE_FORCE_DEBUG 0
  154. //=============================================================================
  155. /** Config: JUCE_LOG_ASSERTIONS
  156. If this flag is enabled, the the jassert and jassertfalse macros will always use Logger::writeToLog()
  157. to write a message when an assertion happens.
  158. Enabling it will also leave this turned on in release builds. When it's disabled,
  159. however, the jassert and jassertfalse macros will not be compiled in a
  160. release build.
  161. @see jassert, jassertfalse, Logger
  162. */
  163. #define JUCE_LOG_ASSERTIONS 1
  164. //=============================================================================
  165. /** Config: JUCE_CHECK_MEMORY_LEAKS
  166. Enables a memory-leak check for certain objects when the app terminates. See the LeakedObjectDetector
  167. class and the JUCE_LEAK_DETECTOR macro for more details about enabling leak checking for specific classes.
  168. */
  169. #ifdef DEBUG
  170. #define JUCE_CHECK_MEMORY_LEAKS 1
  171. #else
  172. #define JUCE_CHECK_MEMORY_LEAKS 0
  173. #endif
  174. //=============================================================================
  175. /** Config: JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
  176. In a Visual C++ build, this can be used to stop the required system libs being
  177. automatically added to the link stage.
  178. */
  179. #define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES 0
  180. /* Config: JUCE_INCLUDE_ZLIB_CODE
  181. This can be used to disable Juce's embedded 3rd-party zlib code.
  182. You might need to tweak this if you're linking to an external zlib library in your app,
  183. but for normal apps, this option should be left alone.
  184. If you disable this, you might also want to set a value for JUCE_ZLIB_INCLUDE_PATH, to
  185. specify the path where your zlib headers live.
  186. */
  187. #define JUCE_INCLUDE_ZLIB_CODE 1
  188. /** Config: JUCE_USE_CURL
  189. Enables http/https support via libcurl (Linux only). Enabling this will add an additional
  190. run-time dynmic dependency to libcurl.
  191. If you disable this then https/ssl support will not be available on linux.
  192. */
  193. #define JUCE_USE_CURL 0
  194. /* Config: JUCE_CATCH_UNHANDLED_EXCEPTIONS
  195. If enabled, this will add some exception-catching code to forward unhandled exceptions
  196. to your JUCEApplication::unhandledException() callback.
  197. */
  198. #define JUCE_CATCH_UNHANDLED_EXCEPTIONS 0
  199. #define JUCE_STRING_UTF_TYPE 8
  200. #define JUCE_USE_VFORK 1
  201. //=============================================================================
  202. // juce_cryptography
  203. //=============================================================================
  204. // juce_data_structures
  205. //=============================================================================
  206. // juce_events
  207. //=============================================================================
  208. // juce_graphics
  209. //=============================================================================
  210. /** Config: JUCE_USE_COREIMAGE_LOADER
  211. On OSX, enabling this flag means that the CoreImage codecs will be used to load
  212. PNG/JPEG/GIF files. It is enabled by default, but you may want to disable it if
  213. you'd rather use libpng, libjpeg, etc.
  214. */
  215. #if MAC
  216. #define JUCE_USE_COREIMAGE_LOADER 1
  217. #else
  218. #define JUCE_USE_COREIMAGE_LOADER 0
  219. #endif
  220. /** Config: JUCE_USE_DIRECTWRITE
  221. Enabling this flag means that DirectWrite will be used when available for font
  222. management and layout.
  223. */
  224. #define JUCE_USE_DIRECTWRITE 0
  225. #define JUCE_INCLUDE_PNGLIB_CODE 1
  226. #define JUCE_INCLUDE_JPEGLIB_CODE 1
  227. #if MAC
  228. #define USE_COREGRAPHICS_RENDERING 1
  229. #else
  230. #define USE_COREGRAPHICS_RENDERING 0
  231. #endif
  232. //=============================================================================
  233. // juce_gui_basics
  234. //=============================================================================
  235. /** Config: JUCE_ENABLE_REPAINT_DEBUGGING
  236. If this option is turned on, each area of the screen that gets repainted will
  237. flash in a random colour, so that you can see exactly which bits of your
  238. components are being drawn.
  239. */
  240. #define JUCE_ENABLE_REPAINT_DEBUGGING 0
  241. /** JUCE_USE_XRANDR: Enables Xrandr multi-monitor support (Linux only).
  242. Unless you specifically want to disable this, it's best to leave this option turned on.
  243. Note that your users do not need to have Xrandr installed for your JUCE app to run, as
  244. the availability of Xrandr is queried during runtime.
  245. */
  246. #define JUCE_USE_XRANDR 0
  247. /** JUCE_USE_XINERAMA: Enables Xinerama multi-monitor support (Linux only).
  248. Unless you specifically want to disable this, it's best to leave this option turned on.
  249. */
  250. #define JUCE_USE_XINERAMA 0
  251. /** Config: JUCE_USE_XSHM
  252. Enables X shared memory for faster rendering on Linux. This is best left turned on
  253. unless you have a good reason to disable it.
  254. */
  255. #if LINUX
  256. #define JUCE_USE_XSHM 1
  257. #else
  258. #define JUCE_USE_XSHM 0
  259. #endif
  260. /** Config: JUCE_USE_XRENDER
  261. Enables XRender to allow semi-transparent windowing on Linux.
  262. */
  263. #define JUCE_USE_XRENDER 0
  264. /** Config: JUCE_USE_XCURSOR
  265. Uses XCursor to allow ARGB cursor on Linux. This is best left turned on unless you have
  266. a good reason to disable it.
  267. */
  268. #if LINUX
  269. #define JUCE_USE_XCURSOR 1
  270. #else
  271. #define JUCE_USE_XCURSOR 0
  272. #endif
  273. //=============================================================================
  274. // juce_gui_extra
  275. //=============================================================================
  276. /** Config: JUCE_WEB_BROWSER
  277. This lets you disable the WebBrowserComponent class (Mac and Windows).
  278. If you're not using any embedded web-pages, turning this off may reduce your code size.
  279. */
  280. #define JUCE_WEB_BROWSER 0
  281. /** Config: JUCE_ENABLE_LIVE_CONSTANT_EDITOR
  282. This lets you turn on the JUCE_ENABLE_LIVE_CONSTANT_EDITOR support. See the documentation
  283. for that macro for more details.
  284. */
  285. #define JUCE_ENABLE_LIVE_CONSTANT_EDITOR 0
  286. //=============================================================================
  287. // drowaudio
  288. //=============================================================================
  289. /** Config: DROWAUDIO_USE_FFTREAL
  290. Enables the FFTReal library. By default this is enabled except on the Mac
  291. where the Accelerate framework is preferred. However, if you do explicity
  292. enable this setting fftreal can be used for testing purposes.
  293. */
  294. #if JUCE_MAC
  295. #define DROWAUDIO_USE_FFTREAL 0
  296. #else
  297. #define DROWAUDIO_USE_FFTREAL 1
  298. #endif
  299. /** Config: DROWAUDIO_USE_SOUNDTOUCH
  300. Enables the SoundTouch library and the associated SoundTouch classes for
  301. independant pitch and tempo scaling. By default this is enabled.
  302. */
  303. #define DROWAUDIO_USE_SOUNDTOUCH 1
  304. /** Config: DROWAUDIO_USE_CURL
  305. Enables the cURL library and the associated network classes. By default
  306. this is enabled.
  307. */
  308. #define DROWAUDIO_USE_CURL 0
  309. //=============================================================================
  310. // juced
  311. //=============================================================================
  312. /** Config: JUCE_LASH
  313. Enables LASH support on Linux.
  314. Not enabled by default.
  315. */
  316. #define JUCE_LASH 0
  317. /** Config: JUCE_USE_GLX
  318. Enable this under Linux to use GLX for fast openGL rendering with alpha
  319. compositing support over a composite manager (compiz / xcompmgr).
  320. Not enabled by default.
  321. */
  322. #define JUCE_USE_GLX 0
  323. /** Config: JUCE_SUPPORT_SQLITE
  324. Setting this allows the build to use SQLITE libraries for access a self-contained,
  325. serverless, zero-configuration, transactional SQL database engine.
  326. Not enabled by default.
  327. */
  328. #define JUCE_SUPPORT_SQLITE 0
  329. /** Config: JUCE_SUPPORT_SCRIPTING
  330. Setting this allows the build to use Angelscript library for using scripting
  331. inside the juce library itself
  332. Not enabled by default.
  333. */
  334. #define JUCE_SUPPORT_SCRIPTING 0
  335. /** Config: JUCETICE_INCLUDE_ANGELSCRIPT_CODE
  336. Enables direct inclusion of the angelscript library.
  337. Enabled by default.
  338. */
  339. #define JUCETICE_INCLUDE_ANGELSCRIPT_CODE 0
  340. /** Config: JUCETICE_INCLUDE_CURL_CODE
  341. Enables direct inclusion of curl.
  342. // Currently not available //
  343. */
  344. #define JUCETICE_INCLUDE_CURL_CODE 0
  345. //=============================================================================
  346. // Linux embed build
  347. #if JUCE_AUDIOPROCESSOR_NO_GUI
  348. #undef JUCE_MODULE_AVAILABLE_juce_graphics
  349. #undef JUCE_MODULE_AVAILABLE_juce_gui_basics
  350. #undef JUCE_MODULE_AVAILABLE_juce_gui_extra
  351. #define JUCE_MODULE_AVAILABLE_juce_graphics 0
  352. #define JUCE_MODULE_AVAILABLE_juce_gui_basics 0
  353. #define JUCE_MODULE_AVAILABLE_juce_gui_extra 0
  354. #undef JUCE_ALSA
  355. #undef JUCE_PLUGINHOST_LADSPA
  356. #undef JUCE_PLUGINHOST_VST
  357. #define JUCE_ALSA 0
  358. #define JUCE_PLUGINHOST_LADSPA 0
  359. #define JUCE_PLUGINHOST_VST 0
  360. #endif
  361. #endif // BUILD_JUCE_APPCONFIG_H_INCLUDED