From 3a1c117a378184de6e3b945640febe2f9d3cbb5f Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Sun, 11 Nov 2012 22:42:04 +0100 Subject: [PATCH] CMakeLists: make fftw3 a requirement and not optional anymore We have too many components in LMMS relying on FFTW3. Building LMMS without them cripples LMMS' functionality substantially, so simply make fftw3 a requirement. Closes #3495736. --- CMakeLists.txt | 14 +------- include/fft_helpers.h | 6 +--- lmmsconfig.h.in | 1 - plugins/ladspa_effect/swh/CMakeLists.txt | 42 +++++++++++------------- plugins/spectrum_analyzer/CMakeLists.txt | 13 +++----- plugins/zynaddsubfx/CMakeLists.txt | 4 --- src/core/fft_helpers.cpp | 6 +--- 7 files changed, 27 insertions(+), 59 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 07e18716b..1b5ff44b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,6 @@ OPTION(WANT_ALSA "Include ALSA (Advanced Linux Sound Architecture) support" ON) OPTION(WANT_CALF "Include CALF LADSPA plugins" ON) OPTION(WANT_CAPS "Include C* Audio Plugin Suite (LADSPA plugins)" ON) OPTION(WANT_CMT "Include Computer Music Toolkit LADSPA plugins" ON) -OPTION(WANT_FFTW3F "Include SpectrumAnalyzer and ZynAddSubFX plugin" ON) OPTION(WANT_JACK "Include JACK (Jack Audio Connection Kit) support" ON) OPTION(WANT_OGGVORBIS "Include OGG/Vorbis support" ON) OPTION(WANT_PULSEAUDIO "Include PulseAudio support" ON) @@ -261,16 +260,7 @@ ENDIF(WANT_JACK) # check for FFTW3F-library -IF(WANT_FFTW3F) - PKG_CHECK_MODULES(FFTW3F fftw3f>=3.0.0) - IF(FFTW3F_FOUND) - SET(LMMS_HAVE_FFTW3F TRUE) - SET(STATUS_FFTW3F "OK") - ELSE(FFTW3F_FOUND) - SET(STATUS_FFTW3F "not found, libfftw3-dev (or similiar) " - "is highly recommended") - ENDIF(FFTW3F_FOUND) -ENDIF(WANT_FFTW3F) +PKG_CHECK_MODULES(FFTW3F REQUIRED fftw3f>=3.0.0) # check for Fluidsynth @@ -615,13 +605,11 @@ MESSAGE( "* Stk Mallets : ${STATUS_STK}\n" "* VST-instrument hoster : ${STATUS_VST}\n" "* VST-effect hoster : ${STATUS_VST}\n" -"* SpectrumAnalyzer : ${STATUS_FFTW3F}\n" "* CALF LADSPA plugins : ${STATUS_CALF}\n" "* CAPS LADSPA plugins : ${STATUS_CAPS}\n" "* CMT LADSPA plugins : ${STATUS_CMT}\n" "* TAP LADSPA plugins : ${STATUS_TAP}\n" "* SWH LADSPA plugins : ${STATUS_SWH}\n" -"* ZynAddSubFX : ${STATUS_FFTW3F}\n" ) MESSAGE( diff --git a/include/fft_helpers.h b/include/fft_helpers.h index c6c941c43..44fe7b738 100644 --- a/include/fft_helpers.h +++ b/include/fft_helpers.h @@ -1,7 +1,7 @@ /* * fft_helpers.h - some functions around FFT analysis * - * Copyright (c) 2008 Tobias Doerffel + * Copyright (c) 2008-2012 Tobias Doerffel * * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net * @@ -29,8 +29,6 @@ #include "lmmsconfig.h" #include "export.h" -#ifdef LMMS_HAVE_FFTW3F - #include const int FFT_BUFFER_SIZE = 2048; @@ -85,5 +83,3 @@ int EXPORT calc13octaveband31( float * _absspec_buffer, float * _subbands, float EXPORT signalpower(float *timesignal, int num_values); #endif - -#endif diff --git a/lmmsconfig.h.in b/lmmsconfig.h.in index 4965d2433..d645c5025 100644 --- a/lmmsconfig.h.in +++ b/lmmsconfig.h.in @@ -7,7 +7,6 @@ #cmakedefine LMMS_HOST_X86_64 #cmakedefine LMMS_HAVE_ALSA -#cmakedefine LMMS_HAVE_FFTW3F #cmakedefine LMMS_HAVE_FLUIDSYNTH #cmakedefine LMMS_HAVE_JACK #cmakedefine LMMS_HAVE_OGGVORBIS diff --git a/plugins/ladspa_effect/swh/CMakeLists.txt b/plugins/ladspa_effect/swh/CMakeLists.txt index 675d12caa..85621c5dc 100644 --- a/plugins/ladspa_effect/swh/CMakeLists.txt +++ b/plugins/ladspa_effect/swh/CMakeLists.txt @@ -1,35 +1,31 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}) ADD_DEFINITIONS(-DFFTW3) -IF(LMMS_HAVE_FFTW3F) -INCLUDE_DIRECTORIES(${FFTW3F_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${FFTW3F_INCLUDE_DIRS} ${CMAKE_BINARY_DIR}) LINK_DIRECTORIES(${FFTW3F_LIBRARY_DIRS}) LINK_LIBRARIES(-lfftw3f) -ENDIF(LMMS_HAVE_FFTW3F) -INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}) FILE(GLOB PLUGIN_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.c) FOREACH(_item ${PLUGIN_SOURCES}) GET_FILENAME_COMPONENT(_plugin "${_item}" NAME_WE) - IF(NOT "${_plugin}" STREQUAL "mbeq_1197" OR LMMS_HAVE_FFTW3F) - ADD_LIBRARY(${_plugin} MODULE ${_item}) - INSTALL(TARGETS ${_plugin} LIBRARY DESTINATION ${PLUGIN_DIR}/ladspa) - SET_TARGET_PROPERTIES(${_plugin} PROPERTIES PREFIX "") - SET_TARGET_PROPERTIES(${_plugin} PROPERTIES COMPILE_FLAGS "-O3 -Wall -fomit-frame-pointer -fstrength-reduce -funroll-loops -ffast-math -c -fno-strict-aliasing") - IF(LMMS_BUILD_WIN32) - ADD_CUSTOM_COMMAND(TARGET ${_plugin} POST_BUILD COMMAND ${STRIP} ${CMAKE_CURRENT_BINARY_DIR}/${_plugin}.dll) - ELSE(LMMS_BUILD_WIN32) - SET_TARGET_PROPERTIES(${_plugin} PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -fPIC -DPIC") - ENDIF(LMMS_BUILD_WIN32) - IF(LMMS_BUILD_APPLE) - SET_TARGET_PROPERTIES(${_plugin} PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Bsymbolic -lm") - ELSE(LMMS_BUILD_APPLE) - SET_TARGET_PROPERTIES(${_plugin} PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined -Wl,-Bsymbolic -lm") - ENDIF(LMMS_BUILD_APPLE) - IF(LMMS_BUILD_LINUX) - SET_TARGET_PROPERTIES(${_plugin} PROPERTIES LINK_FLAGS "${LINK_FLAGS} -nostartfiles") - ENDIF(LMMS_BUILD_LINUX) - ENDIF(NOT "${_plugin}" STREQUAL "mbeq_1197" OR LMMS_HAVE_FFTW3F) + + ADD_LIBRARY(${_plugin} MODULE ${_item}) + INSTALL(TARGETS ${_plugin} LIBRARY DESTINATION ${PLUGIN_DIR}/ladspa) + SET_TARGET_PROPERTIES(${_plugin} PROPERTIES PREFIX "") + SET_TARGET_PROPERTIES(${_plugin} PROPERTIES COMPILE_FLAGS "-O3 -Wall -fomit-frame-pointer -fstrength-reduce -funroll-loops -ffast-math -c -fno-strict-aliasing") + IF(LMMS_BUILD_WIN32) + ADD_CUSTOM_COMMAND(TARGET ${_plugin} POST_BUILD COMMAND ${STRIP} ${CMAKE_CURRENT_BINARY_DIR}/${_plugin}.dll) + ELSE(LMMS_BUILD_WIN32) + SET_TARGET_PROPERTIES(${_plugin} PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -fPIC -DPIC") + ENDIF(LMMS_BUILD_WIN32) + IF(LMMS_BUILD_APPLE) + SET_TARGET_PROPERTIES(${_plugin} PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Bsymbolic -lm") + ELSE(LMMS_BUILD_APPLE) + SET_TARGET_PROPERTIES(${_plugin} PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined -Wl,-Bsymbolic -lm") + ENDIF(LMMS_BUILD_APPLE) + IF(LMMS_BUILD_LINUX) + SET_TARGET_PROPERTIES(${_plugin} PROPERTIES LINK_FLAGS "${LINK_FLAGS} -nostartfiles") + ENDIF(LMMS_BUILD_LINUX) ENDFOREACH(_item ${PLUGIN_SOURCES}) diff --git a/plugins/spectrum_analyzer/CMakeLists.txt b/plugins/spectrum_analyzer/CMakeLists.txt index 9b01558da..0863c481e 100644 --- a/plugins/spectrum_analyzer/CMakeLists.txt +++ b/plugins/spectrum_analyzer/CMakeLists.txt @@ -1,8 +1,5 @@ -IF(LMMS_HAVE_FFTW3F) - INCLUDE(BuildPlugin) - INCLUDE_DIRECTORIES(${FFTW3F_INCLUDE_DIRS}) - LINK_DIRECTORIES(${FFTW3F_LIBRARY_DIRS}) - LINK_LIBRARIES(${FFTW3F_LIBRARIES}) - BUILD_PLUGIN(spectrumanalyzer spectrum_analyzer.cpp spectrumanalyzer_controls.cpp spectrumanalyzer_control_dialog.cpp spectrum_analyzer.h spectrumanalyzer_controls.h spectrumanalyzer_control_dialog.h MOCFILES spectrumanalyzer_controls.h EMBEDDED_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.png) -ENDIF(LMMS_HAVE_FFTW3F) - +INCLUDE(BuildPlugin) +INCLUDE_DIRECTORIES(${FFTW3F_INCLUDE_DIRS}) +LINK_DIRECTORIES(${FFTW3F_LIBRARY_DIRS}) +LINK_LIBRARIES(${FFTW3F_LIBRARIES}) +BUILD_PLUGIN(spectrumanalyzer spectrum_analyzer.cpp spectrumanalyzer_controls.cpp spectrumanalyzer_control_dialog.cpp spectrum_analyzer.h spectrumanalyzer_controls.h spectrumanalyzer_control_dialog.h MOCFILES spectrumanalyzer_controls.h EMBEDDED_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.png) diff --git a/plugins/zynaddsubfx/CMakeLists.txt b/plugins/zynaddsubfx/CMakeLists.txt index 9eee0f82c..2f268856d 100644 --- a/plugins/zynaddsubfx/CMakeLists.txt +++ b/plugins/zynaddsubfx/CMakeLists.txt @@ -1,5 +1,3 @@ -IF(LMMS_HAVE_FFTW3F) - INCLUDE(BuildPlugin) SET(ZYN_SRC_GUI @@ -130,5 +128,3 @@ ENDIF(LMMS_BUILD_WIN64) ADD_CUSTOM_TARGET(libfltk COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/fltk && cd ${CMAKE_CURRENT_BINARY_DIR}/fltk && ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}/fltk ${FLTK_EXTRA_FLAGS} -DCMAKE_MODULE_PATH=${CMAKE_SOURCE_DIR}/cmake/modules/ -DFLTK_USE_SYSTEM_ZLIB:BOOL=ON -DFLTK_USE_SYSTEM_JPEG:BOOL=ON -DFLTK_USE_SYSTEM_PNG:BOOL=ON -DOPTION_BUILD_EXAMPLES:BOOL=OFF -DCMAKE_BUILD_TYPE=release && ${CMAKE_BUILD_TOOL}) ADD_DEPENDENCIES(RemoteZynAddSubFx libfltk) -ENDIF(LMMS_HAVE_FFTW3F) - diff --git a/src/core/fft_helpers.cpp b/src/core/fft_helpers.cpp index eb80025e0..ebc95a4f9 100644 --- a/src/core/fft_helpers.cpp +++ b/src/core/fft_helpers.cpp @@ -1,7 +1,7 @@ /* * fft_helpers.cpp - some functions around FFT analysis * - * Copyright (c) 2008 Tobias Doerffel + * Copyright (c) 2008-2012 Tobias Doerffel * * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net * @@ -25,8 +25,6 @@ #include "fft_helpers.h" -#ifdef LMMS_HAVE_FFTW3F - #include @@ -243,5 +241,3 @@ float signalpower(float *timesignal, int num_values) return power; } -#endif -