PluginList.cmake 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. CrossoverEQ
  31. Delay
  32. DualFilter
  33. dynamics_processor
  34. Eq
  35. Flanger
  36. HydrogenImport
  37. ladspa_browser
  38. LadspaEffect
  39. lb302
  40. MidiImport
  41. MidiExport
  42. MultitapEcho
  43. monstro
  44. nes
  45. OpulenZ
  46. organic
  47. FreeBoy
  48. patman
  49. peak_controller_effect
  50. GigPlayer
  51. ReverbSC
  52. sf2_player
  53. sfxr
  54. sid
  55. SpectrumAnalyzer
  56. stereo_enhancer
  57. stereo_matrix
  58. stk
  59. vst_base
  60. vestige
  61. VstEffect
  62. watsyn
  63. waveshaper
  64. vibed
  65. Xpressive
  66. zynaddsubfx
  67. )
  68. IF("${PLUGIN_LIST}" STREQUAL "")
  69. SET(PLUGIN_LIST ${LMMS_PLUGIN_LIST})
  70. ENDIF()
  71. MACRO(LIST_ALL_PLUGINS)
  72. MESSAGE("\n\nAll possible -DPLUGIN_LIST values")
  73. MESSAGE("\n KEYWORD:")
  74. MESSAGE(" -DLMMS_MINIMAL=True")
  75. FOREACH(item IN LISTS MINIMAL_LIST)
  76. MESSAGE(" ${item}")
  77. ENDFOREACH()
  78. MESSAGE("\n NAME:")
  79. FOREACH(item IN LISTS LMMS_PLUGIN_LIST)
  80. MESSAGE(" ${item}")
  81. ENDFOREACH()
  82. MESSAGE("\nNote: This value also impacts the fetching of git submodules.\n")
  83. MESSAGE(FATAL_ERROR "Information was requested, aborting build!")
  84. ENDMACRO()
  85. IF(LIST_PLUGINS)
  86. UNSET(LIST_PLUGINS CACHE)
  87. LIST_ALL_PLUGINS()
  88. ENDIF()
  89. IF(MSVC)
  90. SET(MSVC_INCOMPATIBLE_PLUGINS
  91. LadspaEffect
  92. zynaddsubfx
  93. )
  94. message(WARNING "Compiling with MSVC. The following plugins are not available: ${MSVC_INCOMPATIBLE_PLUGINS}")
  95. LIST(REMOVE_ITEM PLUGIN_LIST ${MSVC_INCOMPATIBLE_PLUGINS})
  96. ENDIF()