PluginList.cmake 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # Provides a fast mechanism for filtering the plugins used at build-time
  2. SET(PLUGIN_LIST "" CACHE STRING "List of plug-ins to build")
  3. STRING(REPLACE " " ";" PLUGIN_LIST "${PLUGIN_LIST}")
  4. OPTION(LMMS_MINIMAL "Build a minimal list of plug-ins" OFF)
  5. OPTION(LIST_PLUGINS "Lists the available plugins for building" OFF)
  6. SET(MINIMAL_LIST
  7. audio_file_processor
  8. kicker
  9. triple_oscillator
  10. )
  11. IF(LMMS_MINIMAL)
  12. IF("${PLUGIN_LIST}" STREQUAL "")
  13. STRING(REPLACE ";" " " MINIMAL_LIST_STRING "${MINIMAL_LIST}")
  14. MESSAGE(
  15. "-- Using minimal plug-ins: ${MINIMAL_LIST_STRING}\n"
  16. " Note: You can specify specific plug-ins using -DPLUGIN_LIST=\"foo bar\""
  17. )
  18. ENDIF()
  19. SET(PLUGIN_LIST ${MINIMAL_LIST} ${PLUGIN_LIST})
  20. ENDIF()
  21. SET(LMMS_PLUGIN_LIST
  22. ${MINIMAL_LIST}
  23. Amplifier
  24. BassBooster
  25. bit_invader
  26. Bitcrush
  27. carlabase
  28. carlapatchbay
  29. carlarack
  30. Compressor
  31. CrossoverEQ
  32. Delay
  33. DualFilter
  34. dynamics_processor
  35. Eq
  36. Flanger
  37. HydrogenImport
  38. ladspa_browser
  39. LadspaEffect
  40. Lv2Effect
  41. Lv2Instrument
  42. lb302
  43. MidiImport
  44. MidiExport
  45. MultitapEcho
  46. monstro
  47. nes
  48. OpulenZ
  49. organic
  50. FreeBoy
  51. patman
  52. peak_controller_effect
  53. GigPlayer
  54. ReverbSC
  55. sf2_player
  56. sfxr
  57. Sid
  58. SpectrumAnalyzer
  59. stereo_enhancer
  60. stereo_matrix
  61. stk
  62. vst_base
  63. vestige
  64. VstEffect
  65. watsyn
  66. waveshaper
  67. Vectorscope
  68. vibed
  69. Xpressive
  70. zynaddsubfx
  71. )
  72. IF("${PLUGIN_LIST}" STREQUAL "")
  73. SET(PLUGIN_LIST ${LMMS_PLUGIN_LIST})
  74. ENDIF()
  75. MACRO(LIST_ALL_PLUGINS)
  76. MESSAGE("\n\nAll possible -DPLUGIN_LIST values")
  77. MESSAGE("\n KEYWORD:")
  78. MESSAGE(" -DLMMS_MINIMAL=True")
  79. FOREACH(item IN LISTS MINIMAL_LIST)
  80. MESSAGE(" ${item}")
  81. ENDFOREACH()
  82. MESSAGE("\n NAME:")
  83. FOREACH(item IN LISTS LMMS_PLUGIN_LIST)
  84. MESSAGE(" ${item}")
  85. ENDFOREACH()
  86. MESSAGE("\nNote: This value also impacts the fetching of git submodules.\n")
  87. MESSAGE(FATAL_ERROR "Information was requested, aborting build!")
  88. ENDMACRO()
  89. IF(LIST_PLUGINS)
  90. UNSET(LIST_PLUGINS CACHE)
  91. LIST_ALL_PLUGINS()
  92. ENDIF()
  93. IF(MSVC)
  94. SET(MSVC_INCOMPATIBLE_PLUGINS
  95. LadspaEffect
  96. zynaddsubfx
  97. )
  98. message(WARNING "Compiling with MSVC. The following plugins are not available: ${MSVC_INCOMPATIBLE_PLUGINS}")
  99. LIST(REMOVE_ITEM PLUGIN_LIST ${MSVC_INCOMPATIBLE_PLUGINS})
  100. ENDIF()