The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
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.

287 lines
9.7KB

  1. /*
  2. ==============================================================================
  3. This file is part of the JUCE library - "Jules' Utility Class Extensions"
  4. Copyright 2004-9 by Raw Material Software Ltd.
  5. ------------------------------------------------------------------------------
  6. JUCE can be redistributed and/or modified under the terms of the GNU General
  7. Public License (Version 2), as published by the Free Software Foundation.
  8. A copy of the license is included in the JUCE distribution, or can be found
  9. online at www.gnu.org/licenses.
  10. JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
  11. WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
  12. A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  13. ------------------------------------------------------------------------------
  14. To release a closed-source product which uses JUCE, commercial licenses are
  15. available: visit www.rawmaterialsoftware.com/juce for more information.
  16. ==============================================================================
  17. */
  18. #ifndef __JUCE_CONFIG_JUCEHEADER__
  19. #define __JUCE_CONFIG_JUCEHEADER__
  20. //==============================================================================
  21. /*
  22. This file contains macros that enable/disable various JUCE features.
  23. */
  24. //=============================================================================
  25. /** The name of the namespace that all Juce classes and functions will be
  26. put inside. If this is not defined, no namespace will be used.
  27. */
  28. #ifndef JUCE_NAMESPACE
  29. #define JUCE_NAMESPACE juce
  30. #endif
  31. //=============================================================================
  32. /** Normally, JUCE_DEBUG is set to 1 or 0 based on compiler and project settings,
  33. but if you define this value, you can override this can force it to be true or
  34. false.
  35. */
  36. #ifndef JUCE_FORCE_DEBUG
  37. //#define JUCE_FORCE_DEBUG 1
  38. #endif
  39. //=============================================================================
  40. /** If this flag is enabled, the the jassert and jassertfalse macros will
  41. always use Logger::writeToLog() to write a message when an assertion happens.
  42. Enabling it will also leave this turned on in release builds. When it's disabled,
  43. however, the jassert and jassertfalse macros will not be compiled in a
  44. release build.
  45. @see jassert, jassertfalse, Logger
  46. */
  47. #ifndef JUCE_LOG_ASSERTIONS
  48. // #define JUCE_LOG_ASSERTIONS 1
  49. #endif
  50. //=============================================================================
  51. /** Comment out this macro if you haven't got the Steinberg ASIO SDK, without
  52. which the ASIOAudioIODevice class can't be built. See the comments in the
  53. ASIOAudioIODevice class's header file for more info about this.
  54. (This only affects a Win32 build)
  55. */
  56. #ifndef JUCE_ASIO
  57. #define JUCE_ASIO 1
  58. #endif
  59. /** Comment out this macro to disable the Windows WASAPI audio device type.
  60. */
  61. #ifndef JUCE_WASAPI
  62. // #define JUCE_WASAPI 1
  63. #endif
  64. /** Comment out this macro to disable the Windows WASAPI audio device type.
  65. */
  66. #ifndef JUCE_DIRECTSOUND
  67. #define JUCE_DIRECTSOUND 1
  68. #endif
  69. /** Comment out this macro to disable building of ALSA device support on Linux.
  70. */
  71. #ifndef JUCE_ALSA
  72. #define JUCE_ALSA 1
  73. #endif
  74. /** Comment out this macro to disable building of JACK device support on Linux.
  75. */
  76. #ifndef JUCE_JACK
  77. #define JUCE_JACK 1
  78. #endif
  79. //=============================================================================
  80. /** Comment out this macro if you don't want to enable QuickTime or if you don't
  81. have the SDK installed.
  82. If this flag is not enabled, the QuickTimeMovieComponent and QuickTimeAudioFormat
  83. classes will be unavailable.
  84. On Windows, if you enable this, you'll need to have the QuickTime SDK
  85. installed, and its header files will need to be on your include path.
  86. */
  87. #if ! (defined (JUCE_QUICKTIME) || JUCE_LINUX || JUCE_IPHONE || (JUCE_WINDOWS && ! JUCE_MSVC))
  88. #define JUCE_QUICKTIME 1
  89. #endif
  90. //=============================================================================
  91. /** Comment out this macro if you don't want to enable OpenGL or if you don't
  92. have the appropriate headers and libraries available. If it's not enabled, the
  93. OpenGLComponent class will be unavailable.
  94. */
  95. #ifndef JUCE_OPENGL
  96. #define JUCE_OPENGL 1
  97. #endif
  98. //=============================================================================
  99. /** These flags enable the Ogg-Vorbis and Flac audio formats.
  100. If you're not going to need either of these formats, turn off the flags to
  101. avoid bloating your codebase with them.
  102. */
  103. #ifndef JUCE_USE_FLAC
  104. #define JUCE_USE_FLAC 1
  105. #endif
  106. #ifndef JUCE_USE_OGGVORBIS
  107. #define JUCE_USE_OGGVORBIS 1
  108. #endif
  109. //=============================================================================
  110. /** This flag lets you enable the AudioCDBurner class. You might want to disable
  111. it to build without the MS SDK under windows.
  112. */
  113. #if (! defined (JUCE_USE_CDBURNER)) && ! (JUCE_WINDOWS && ! JUCE_MSVC)
  114. #define JUCE_USE_CDBURNER 1
  115. #endif
  116. /** This flag lets you enable support for the AudioCDReader class. You might want to disable
  117. it to build without the MS SDK under windows.
  118. */
  119. #ifndef JUCE_USE_CDREADER
  120. #define JUCE_USE_CDREADER 1
  121. #endif
  122. //=============================================================================
  123. /** Enabling this provides support for cameras, using the CameraDevice class
  124. */
  125. #if JUCE_QUICKTIME && ! defined (JUCE_USE_CAMERA)
  126. // #define JUCE_USE_CAMERA 1
  127. #endif
  128. //=============================================================================
  129. /** Enabling this macro means that all regions that get repainted will have a coloured
  130. line drawn around them.
  131. This is handy if you're trying to optimise drawing, because it lets you easily see
  132. when anything is being repainted unnecessarily.
  133. */
  134. #ifndef JUCE_ENABLE_REPAINT_DEBUGGING
  135. // #define JUCE_ENABLE_REPAINT_DEBUGGING 1
  136. #endif
  137. //=============================================================================
  138. /** Enable this under Linux to use Xinerama for multi-monitor support.
  139. */
  140. #ifndef JUCE_USE_XINERAMA
  141. #define JUCE_USE_XINERAMA 1
  142. #endif
  143. /** Enable this under Linux to use XShm for faster shared-memory rendering.
  144. */
  145. #ifndef JUCE_USE_XSHM
  146. #define JUCE_USE_XSHM 1
  147. #endif
  148. //=============================================================================
  149. /** Enabling this builds support for VST audio plugins.
  150. @see VSTPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU
  151. */
  152. #ifndef JUCE_PLUGINHOST_VST
  153. // #define JUCE_PLUGINHOST_VST 1
  154. #endif
  155. /** Enabling this builds support for AudioUnit audio plugins.
  156. @see AudioUnitPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST
  157. */
  158. #ifndef JUCE_PLUGINHOST_AU
  159. // #define JUCE_PLUGINHOST_AU 1
  160. #endif
  161. //=============================================================================
  162. /** Enabling this will avoid including any UI code in the build. This is handy for
  163. writing command-line utilities, e.g. on linux boxes which don't have some
  164. of the UI libraries installed.
  165. */
  166. #ifndef JUCE_ONLY_BUILD_CORE_LIBRARY
  167. //#define JUCE_ONLY_BUILD_CORE_LIBRARY 1
  168. #endif
  169. /** This lets you disable building of the WebBrowserComponent, if it's not required.
  170. */
  171. #ifndef JUCE_WEB_BROWSER
  172. #define JUCE_WEB_BROWSER 1
  173. #endif
  174. //=============================================================================
  175. /** Setting this allows the build to use old Carbon libraries that will be
  176. deprecated in newer versions of OSX. This is handy for some backwards-compatibility
  177. reasons.
  178. */
  179. #ifndef JUCE_SUPPORT_CARBON
  180. #define JUCE_SUPPORT_CARBON 1
  181. #endif
  182. //=============================================================================
  183. /* These flags let you avoid the direct inclusion of some 3rd-party libs in the
  184. codebase - you might need to use this if you're linking to some of these libraries
  185. yourself.
  186. */
  187. #ifndef JUCE_INCLUDE_ZLIB_CODE
  188. #define JUCE_INCLUDE_ZLIB_CODE 1
  189. #endif
  190. #ifndef JUCE_INCLUDE_FLAC_CODE
  191. #define JUCE_INCLUDE_FLAC_CODE 1
  192. #endif
  193. #ifndef JUCE_INCLUDE_OGGVORBIS_CODE
  194. #define JUCE_INCLUDE_OGGVORBIS_CODE 1
  195. #endif
  196. #ifndef JUCE_INCLUDE_PNGLIB_CODE
  197. #define JUCE_INCLUDE_PNGLIB_CODE 1
  198. #endif
  199. #ifndef JUCE_INCLUDE_JPEGLIB_CODE
  200. #define JUCE_INCLUDE_JPEGLIB_CODE 1
  201. #endif
  202. //=============================================================================
  203. /** Enable this to add extra memory-leak info to the new and delete operators.
  204. (Currently, this only affects Windows builds in debug mode).
  205. */
  206. #ifndef JUCE_CHECK_MEMORY_LEAKS
  207. #define JUCE_CHECK_MEMORY_LEAKS 1
  208. #endif
  209. /** Enable this to turn on juce's internal catching of exceptions.
  210. Turning it off will avoid any exception catching. With it on, all exceptions
  211. are passed to the JUCEApplication::unhandledException() callback for logging.
  212. */
  213. #ifndef JUCE_CATCH_UNHANDLED_EXCEPTIONS
  214. #define JUCE_CATCH_UNHANDLED_EXCEPTIONS 1
  215. #endif
  216. /** If this macro is set, the Juce String class will use unicode as its
  217. internal representation. If it isn't set, it'll use ANSI.
  218. */
  219. #ifndef JUCE_STRINGS_ARE_UNICODE
  220. #define JUCE_STRINGS_ARE_UNICODE 1
  221. #endif
  222. //=============================================================================
  223. // If only building the core classes, we can explicitly turn off some features to avoid including them:
  224. #if JUCE_ONLY_BUILD_CORE_LIBRARY
  225. #define JUCE_QUICKTIME 0
  226. #define JUCE_OPENGL 0
  227. #define JUCE_USE_CDBURNER 0
  228. #define JUCE_USE_CDREADER 0
  229. #define JUCE_WEB_BROWSER 0
  230. #define JUCE_PLUGINHOST_AU 0
  231. #define JUCE_PLUGINHOST_VST 0
  232. #endif
  233. #endif