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.

205 lines
7.5KB

  1. /*
  2. ==============================================================================
  3. This file is part of the JUCE library - "Jules' Utility Class Extensions"
  4. Copyright 2004-7 by Raw Material Software ltd.
  5. ------------------------------------------------------------------------------
  6. JUCE can be redistributed and/or modified under the terms of the
  7. GNU General Public License, as published by the Free Software Foundation;
  8. either version 2 of the License, or (at your option) any later version.
  9. JUCE is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with JUCE; if not, visit www.gnu.org/licenses or write to the
  15. Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  16. Boston, MA 02111-1307 USA
  17. ------------------------------------------------------------------------------
  18. If you'd like to release a closed-source product which uses JUCE, commercial
  19. licenses are also available: visit www.rawmaterialsoftware.com/juce for
  20. more information.
  21. ==============================================================================
  22. */
  23. #ifndef __JUCE_CONFIG_JUCEHEADER__
  24. #define __JUCE_CONFIG_JUCEHEADER__
  25. //==============================================================================
  26. /*
  27. This file contains macros that enable/disable various JUCE features.
  28. */
  29. //=============================================================================
  30. /** The name of the namespace that all Juce classes and functions will be
  31. put inside. If this is not defined, no namespace will be used.
  32. */
  33. #ifndef JUCE_NAMESPACE
  34. #define JUCE_NAMESPACE juce
  35. #endif
  36. //=============================================================================
  37. /** If this flag is enabled, the the jassert and jassertfalse macros will
  38. always use Logger::writeToLog() to write a message when an assertion happens.
  39. Enabling it will also leave this turned on in release builds. When it's disabled,
  40. however, the jassert and jassertfalse macros will not be compiled in a
  41. release build.
  42. @see jassert, jassertfalse, Logger
  43. */
  44. #ifndef JUCE_LOG_ASSERTIONS
  45. // #define JUCE_LOG_ASSERTIONS 1
  46. #endif
  47. //=============================================================================
  48. /** Comment out this macro if you haven't got the Steinberg ASIO SDK, without
  49. which the ASIOAudioIODevice class can't be built. See the comments in the
  50. ASIOAudioIODevice class's header file for more info about this.
  51. (This only affects a Win32 build)
  52. */
  53. #ifndef JUCE_ASIO
  54. #define JUCE_ASIO 1
  55. #endif
  56. /** Comment out this macro to disable building of ALSA device support on Linux.
  57. */
  58. #ifndef JUCE_ALSA
  59. #define JUCE_ALSA 1
  60. #endif
  61. //=============================================================================
  62. /** Comment out this macro if you don't want to enable QuickTime or if you don't
  63. have QuickTime installed. If it's not enabled, the QuickTimeWindow class will
  64. be unavailable.
  65. On Windows, if you enable this, you'll need to make sure the Apple Quicktime.dll
  66. file is found on your include path. By default the Quicktime installer will have
  67. put this in the "/Program Files/QuickTime" folder. Only QuickTime version 7 or later
  68. is currently supported.
  69. */
  70. #if ! (defined (JUCE_QUICKTIME) || defined (LINUX) || (defined (_WIN32) && ! defined (_MSC_VER)))
  71. #define JUCE_QUICKTIME 1
  72. #endif
  73. /** This lets you enable the QuickTimeAudioFormat class.
  74. If you're using this on win32, you'll need to have installed the QuickTime SDK.
  75. */
  76. #if ! (defined (JUCE_QUICKTIME_AUDIOFORMAT) || defined (LINUX) || (defined (_WIN32) && ! defined (_MSC_VER)))
  77. // #define JUCE_QUICKTIME_AUDIOFORMAT 1
  78. #endif
  79. //=============================================================================
  80. /** Comment out this macro if you don't want to enable OpenGL or if you don't
  81. have the appropriate headers and libraries available. If it's not enabled, the
  82. OpenGLComponent class will be unavailable.
  83. */
  84. #ifndef JUCE_OPENGL
  85. #define JUCE_OPENGL 1
  86. #endif
  87. //=============================================================================
  88. /** These flags enable the Ogg-Vorbis and Flac audio formats.
  89. If you're not going to need either of these formats, turn off the flags to
  90. avoid bloating your codebase with them.
  91. */
  92. #ifndef JUCE_USE_FLAC
  93. #define JUCE_USE_FLAC 1
  94. #endif
  95. #ifndef JUCE_USE_OGGVORBIS
  96. #define JUCE_USE_OGGVORBIS 1
  97. #endif
  98. //=============================================================================
  99. /** This flag lets you enable support for CD-burning. You might want to disable
  100. it to build without the MS SDK under windows.
  101. */
  102. #ifndef JUCE_USE_CDBURNER
  103. #define JUCE_USE_CDBURNER 1
  104. #endif
  105. //=============================================================================
  106. /** Enabling this macro means that all regions that get repainted will have a coloured
  107. line drawn around them.
  108. This is handy if you're trying to optimise drawing, because it lets you easily see
  109. when anything is being repainted unnecessarily.
  110. */
  111. #ifndef JUCE_ENABLE_REPAINT_DEBUGGING
  112. // #define JUCE_ENABLE_REPAINT_DEBUGGING 1
  113. #endif
  114. //=============================================================================
  115. /** Enable this under Linux to use Xinerama for multi-monitor support.
  116. */
  117. #ifndef JUCE_USE_XINERAMA
  118. #define JUCE_USE_XINERAMA 1
  119. #endif
  120. /** Enable this under Linux to use XShm for faster shared-memory rendering.
  121. */
  122. #ifndef JUCE_USE_XSHM
  123. #define JUCE_USE_XSHM 1
  124. #endif
  125. //=============================================================================
  126. /** Enabling this builds support for VST audio plugins.
  127. @see VSTPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU
  128. */
  129. //#define JUCE_PLUGINHOST_VST 1
  130. /** Enabling this builds support for AudioUnit audio plugins.
  131. @see AudioUnitPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST
  132. */
  133. #define JUCE_PLUGINHOST_AU 1
  134. //=============================================================================
  135. /** Disabling this will avoid linking to any UI code. This is handy for
  136. writing command-line utilities, e.g. on linux boxes which don't have some
  137. of the UI libraries installed.
  138. (On mac and windows, this won't generally make much difference to the build).
  139. */
  140. #ifndef JUCE_BUILD_GUI_CLASSES
  141. #define JUCE_BUILD_GUI_CLASSES 1
  142. #endif
  143. //=============================================================================
  144. /** Enable this to add extra memory-leak info to the new and delete operators.
  145. (Currently, this only affects Windows builds in debug mode).
  146. */
  147. #ifndef JUCE_CHECK_MEMORY_LEAKS
  148. #define JUCE_CHECK_MEMORY_LEAKS 1
  149. #endif
  150. /** Enable this to turn on juce's internal catching of exceptions.
  151. Turning it off will avoid any exception catching. With it on, all exceptions
  152. are passed to the JUCEApplication::unhandledException() callback for logging.
  153. */
  154. #ifndef JUCE_CATCH_UNHANDLED_EXCEPTIONS
  155. #define JUCE_CATCH_UNHANDLED_EXCEPTIONS 1
  156. #endif
  157. /** If this macro is set, the Juce String class will use unicode as its
  158. internal representation. If it isn't set, it'll use ANSI.
  159. */
  160. #ifndef JUCE_STRINGS_ARE_UNICODE
  161. #define JUCE_STRINGS_ARE_UNICODE 1
  162. #endif
  163. //=============================================================================
  164. #endif