diff --git a/CMakeLists.txt b/CMakeLists.txt index daa622c7..28c10457 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,495 +1,493 @@ ############################################################################# ## Kwave - CMakeLists.txt ## ------------------- ## begin : Tue May 01 2007 ## copyright : (C) 2007 by Thomas Eschenbacher ## email : Thomas.Eschenbacher@gmx.de ############################################################################# # ############################################################################# # # # Redistribution and use in source and binary forms, with or without # # modification, are permitted provided that the following conditions # # are met: # # # # 1. Redistributions of source code must retain the above copyright # # notice, this list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright # # notice, this list of conditions and the following disclaimer in the # # documentation and/or other materials provided with the distribution. # # # # For details see the accompanying cmake/COPYING-CMAKE-SCRIPTS file. # # # ############################################################################# ############################################################################# ### project name and version ### PROJECT(kwave) # KDE Application Version, managed by release script set (KDE_APPLICATIONS_VERSION_MAJOR "18") set (KDE_APPLICATIONS_VERSION_MINOR "07") set (KDE_APPLICATIONS_VERSION_MICRO "70") ############################################################################# ### build options: ### # OPTION(DEBUG "build debug code [default=off]" OFF) # OPTION(DEBUG_MEMORY "enable memory management debug code [default=off]" OFF) # OPTION(WITH_ALSA "enable playback/recording via ALSA [default=on]" ON) # OPTION(WITH_DOC "build online documentation [default=on]" ON) # OPTION(WITH_FLAC "enable support for FLAC files [default=on]" ON) # OPTION(WITH_MP3 "enable support for mp3 files [default=off]" OFF) # OPTION(WITH_OGG_OPUS "enable support for ogg/opus files [default=on]" ON) # OPTION(WITH_OGG_VORBIS "enable support for ogg/vorbis files [default=on]" ON) # OPTION(WITH_OSS "enable playback/recording via OSS [default=on]" ON) # OPTION(WITH_OPTIMIZED_MEMCPY "enable optimized memcpy [default=on]" ON) # OPTION(WITH_PULSEAUDIO "enable playback/recording via PulseAudio [default=on]" ON) # OPTION(WITH_QT_AUDIO "enable playback via Qt Multimedia [default=on]" ON) ############################################################################# ### toplevel build targets: ### # all - default target, build all files # clean - clean up the current build directory # deb - create a debian package # doc - generate docbook files for online help # distfiles - generate subdirectory with all files for distribution # html_doc - generate HTML help (for the web) # install - install the package, with support for DESTDIR # msgstats - show the progress of translations # rpm - create a RPM package + a src.rpm file # src_rpm - create the source RPM only # tarball - create a tar.bz2 archive with the sources + specfile # uninstall - uninstall the package, with support for DESTDIR # update-translations - update translation files from KDE SVN # version-labels - update all version numbers and build dates # tarball - create a tar.gz file with the sources ############################################################################# ### required versions ### CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR) # Honor visibility properties for all target types (since cmake 3.3) IF (POLICY CMP0063) CMAKE_POLICY(SET CMP0063 NEW) ENDIF (POLICY CMP0063) # exclude generated automoc files per default (since cmake 3.10) IF (POLICY CMP0071) CMAKE_POLICY(SET CMP0071 NEW) ENDIF (POLICY CMP0071) SET(ECM_MIN_VERSION "1.7.0") SET(QT_MIN_VERSION "5.4.0") SET(KF5_MIN_VERSION "5.33.0") ############################################################################# ### path to additional cmake modules and includes ### SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) ############################################################################# ### Kwave version number ### INCLUDE(FindRequiredProgram) FIND_REQUIRED_PROGRAM(CAT_EXECUTABLE cat) SET(KWAVE_VERSION_MAJOR ${KDE_APPLICATIONS_VERSION_MAJOR}) SET(KWAVE_VERSION_MINOR ${KDE_APPLICATIONS_VERSION_MINOR}) SET(KWAVE_VERSION_MICRO ${KDE_APPLICATIONS_VERSION_MICRO}) SET(KWAVE_VERSION "${KWAVE_VERSION_MAJOR}.${KWAVE_VERSION_MINOR}.${KWAVE_VERSION_MICRO}") MESSAGE(STATUS "Building Kwave version ${KWAVE_VERSION}") ############################################################################# ### show the compiler name and version ### EXECUTE_PROCESS( COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE ) GET_FILENAME_COMPONENT(COMPILER_SHORT "${CMAKE_C_COMPILER}" NAME_WE CACHE) MESSAGE(STATUS "Building with ${COMPILER_SHORT} version ${COMPILER_VERSION}") ############################################################################# ### check for the CPU we build for ### EXECUTE_PROCESS( COMMAND ${CMAKE_C_COMPILER} -dumpmachine OUTPUT_VARIABLE MACHINE OUTPUT_STRIP_TRAILING_WHITESPACE ) MESSAGE(STATUS "Building for target ${MACHINE}") OPTION(WITH_OPTIMIZED_MEMCPY "enable optimized memcpy [default=on]" ON) IF (WITH_OPTIMIZED_MEMCPY) STRING(REGEX MATCH "(i.86-*)|(athlon-*)|(pentium-*)" _mach_x86 ${MACHINE}) IF (_mach_x86) MESSAGE(STATUS "Found target optimized memcpy() for X86 (from xine)") SET(ARCH_X86 1) ENDIF (_mach_x86) STRING(REGEX MATCH "(x86_64-*)|(X86_64-*)|(AMD64-*)|(amd64-*)" _mach_x86_64 ${MACHINE}) IF (_mach_x86_64) MESSAGE(STATUS "Found target optimized memcpy() for X86_64 (from xine)") SET(ARCH_X86_64 1) ENDIF (_mach_x86_64) STRING(REGEX MATCH "(ppc-*)|(powerpc-*)" _mach_ppc ${MACHINE}) IF (_mach_ppc) MESSAGE(STATUS "Found target optimized memcpy() for PPC (from xine)") SET(ARCH_PPC 1) ENDIF (_mach_ppc) IF (NOT ARCH_X86 AND NOT ARCH_X86_64 AND NOT ARCH_PPC) MESSAGE(STATUS "No platform specific memcpy available") ENDIF (NOT ARCH_X86 AND NOT ARCH_X86_64 AND NOT ARCH_PPC) ELSE (WITH_OPTIMIZED_MEMCPY) MESSAGE(STATUS "Platform specific memcpy is disabled") ENDIF (WITH_OPTIMIZED_MEMCPY) ############################################################################# ### cmake includes ### INCLUDE(CheckIncludeFiles) INCLUDE(CheckIncludeFilesCXX) INCLUDE(CheckCCompilerFlag) INCLUDE(CheckCXXCompilerFlag) INCLUDE(CheckTypeSize) INCLUDE(CheckFunctionExists) ############################################################################# ### toplevel compiler flags ### ADD_DEFINITIONS(-DHAVE_CONFIG_H) ADD_DEFINITIONS(-DQT_NO_CAST_TO_ASCII) ADD_DEFINITIONS(-DQT_NO_CAST_FROM_ASCII) ADD_DEFINITIONS(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) ADD_DEFINITIONS(-DQT_NO_URL_CAST_FROM_STRING) ADD_DEFINITIONS(-DQT_DEPRECATED_WARNINGS) ADD_DEFINITIONS(-DKXMLGUI_NO_DEPRECATED) CHECK_C_COMPILER_FLAG(" ${CMAKE_SHARED_LIBRARY_C_FLAGS}" C_HAVE_PIC) CHECK_CXX_COMPILER_FLAG(" ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}" CXX_HAVE_PIC) IF (CXX_HAVE_PIC AND C_HAVE_PIC) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_SHARED_LIBRARY_C_FLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}") ELSE (CXX_HAVE_PIC AND C_HAVE_PIC) MESSAGE(FATAL_ERROR "shared library support is missing") ENDIF (CXX_HAVE_PIC AND C_HAVE_PIC) CHECK_CXX_COMPILER_FLAG("--std=c++11" CXX_HAVE_CXX11) IF (CXX_HAVE_CXX11) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11") ENDIF (CXX_HAVE_CXX11) ############################################################################# LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/libgui) LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/libkwave) ############################################################################# ### Qt 5 support ### SET(CMAKE_AUTOMOC TRUE) SET(CMAKE_AUTOMOC_RELAXED_MODE FALSE) LIST(APPEND CMAKE_AUTOMOC_MACRO_NAMES "KWAVE_PLUGIN") FIND_PACKAGE(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Concurrent Core Widgets ) # Qt Multimedia support OPTION(WITH_QT_AUDIO "enable playback via Qt Multimedia [default=on]" ON) IF (WITH_QT_AUDIO) SET(HAVE_QT_AUDIO_SUPPORT on) FIND_PACKAGE(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Multimedia ) ENDIF (WITH_QT_AUDIO) ############################################################################# ### KF5 support ### FIND_PACKAGE(ECM ${ECM_MIN_VERSION} REQUIRED NO_MODULE) SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ) INCLUDE(KDEInstallDirs) INCLUDE(KDECompilerSettings) INCLUDE(KDECMakeSettings) INCLUDE(GenerateExportHeader) INCLUDE(FeatureSummary) FIND_PACKAGE(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Archive Completion Config ConfigWidgets CoreAddons Crash DBusAddons DocTools I18n IconThemes KIO Service TextWidgets XmlGui WidgetsAddons ) IF (NOT WITH_DOC) SET_PACKAGE_PROPERTIES(KF5DocTools PROPERTIES DESCRIPTION "Tools to generate documentation" TYPE OPTIONAL ) ENDIF (NOT WITH_DOC) FEATURE_SUMMARY(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) INCLUDE_DIRECTORIES( ${INTERFACE_INCLUDE_DIRECTORIES} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) ############################################################################# ### checks for needed header files ### -CHECK_INCLUDE_FILES(sys/times.h HAVE_SYS_TIMES_H) CHECK_INCLUDE_FILES(signal.h HAVE_SIGNAL_H) -SET(_inc_c errno.h math.h signal.h - stdint.h stdio.h stdlib.h string.h unistd.h pthread.h) +SET(_inc_c errno.h math.h signal.h stdlib.h string.h unistd.h pthread.h) CHECK_INCLUDE_FILES("${_inc_c}" HAVE_REQUIRED_STD_C_HEADERS) IF (NOT HAVE_REQUIRED_STD_C_HEADERS) MESSAGE(FATAL_ERROR " unable to find one or more of the following C header files: ${_inc_c}") ENDIF (NOT HAVE_REQUIRED_STD_C_HEADERS) SET(_inc_cpp algorithm complex limits new) CHECK_INCLUDE_FILES_CXX("${_inc_cpp}") ############################################################################# ### checks for some functions ### CHECK_FUNCTION_EXISTS(unlink HAVE_UNLINK) INCLUDE(KwaveSysinfo) ############################################################################# ### libaudiofile and libsamplerate support ### INCLUDE(KwaveLibaudiofileSupport) INCLUDE(KwaveLibsamplerateSupport) ############################################################################# ### optionally: OSS, ALSA and PulseAudio support ### ### for playback/recording ### INCLUDE(KwaveOSSSupport) INCLUDE(KwaveALSASupport) INCLUDE(KwavePulseAudioSupport) ############################################################################# ### cmake includes ### INCLUDE(KwaveL10N) ############################################################################# ### flags for debugging ### OPTION(DEBUG "enable the debug plugin in the menu [default=off]" OFF) IF (DEBUG) SET(HAVE_DEBUG_PLUGIN ON CACHE BOOL "enable debug plugin in the menu") ENDIF (DEBUG) OPTION(DEBUG_MEMORY "enable memory management debug code [default=off]" OFF) ############################################################################# ### subdirs ### ADD_SUBDIRECTORY( libgui ) ADD_SUBDIRECTORY( libkwave ) ADD_SUBDIRECTORY( kwave ) ADD_SUBDIRECTORY( plugins ) OPTION(WITH_DOC "build online documentation [default=on]" ON) IF (WITH_DOC) ADD_SUBDIRECTORY( doc ) ENDIF (WITH_DOC) ############################################################################# ### RPM support ### # directory that receives the files of the "distfiles" target SET(DISTFILES_DIR ${CMAKE_BINARY_DIR}/v${KWAVE_VERSION}) FILE(MAKE_DIRECTORY ${DISTFILES_DIR}) INCLUDE(KwaveRPMSupport) ############################################################################# ### DEB support ### INCLUDE(KwaveDEBSupport) ############################################################################# CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h ) ############################################################################# ### KDE .desktop file / mime types ### SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/wav;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-wav;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/basic;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-8svx;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-aifc;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-aiff;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-avr;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-caf;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-ircam;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-nist;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-smp;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-voc;") IF (WITH_MP3) SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/mpeg;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-mp1;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-mp2;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-mp3;") ENDIF (WITH_MP3) IF (WITH_FLAC) SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}application/x-flac;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-flac;") ENDIF (WITH_FLAC) IF (WITH_OGG_OPUS OR WITH_OGG_VORBIS) SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/ogg;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}application/ogg;") ENDIF (WITH_OGG_OPUS OR WITH_OGG_VORBIS) IF (WITH_OGG_VORBIS) SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-ogg;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}application/x-ogg;") SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/x-vorbis+ogg;") ENDIF (WITH_OGG_VORBIS) IF (WITH_OGG_OPUS) SET(KWAVE_DESKTOP_MIME_TYPES "${KWAVE_DESKTOP_MIME_TYPES}audio/opus;") ENDIF (WITH_OGG_OPUS) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/kwave/org.kde.kwave.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/kwave/org.kde.kwave.desktop ) ############################################################################# ### Gentoo support ### INCLUDE(KwaveEbuild) ############################################################################# ### collection of all files used for distribution ### FIND_PROGRAM(SED_EXECUTABLE NAMES sed) SET(_distfiles_md5sum ${DISTFILES_DIR}/MD5SUMS-${KWAVE_VERSION}) ADD_CUSTOM_COMMAND(OUTPUT ${_distfiles_md5sum} COMMAND md5sum ${KWAVE_DISTFILES} | ${SED_EXECUTABLE} s+${DISTFILES_DIR}/++g > ${_distfiles_md5sum} DEPENDS ${KWAVE_DISTFILES} ) ADD_CUSTOM_TARGET(distfiles DEPENDS ${KWAVE_DISTFILES} ${_distfiles_md5sum} ) ############################################################################# ### uninstall support ### FIND_REQUIRED_PROGRAM(RMDIR_EXECUTABLE rmdir) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake @ONLY ) ############################################################################# ### "make apidoc" ### FIND_PROGRAM(DOXYGEN_EXECUTABLE doxygen) IF (DOXYGEN_EXECUTABLE) SET(DOXYFILE ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) SET(DOXYGEN_OUTPUT_DIR ${CMAKE_BINARY_DIR}/doc/api) SET(DOXYGEN_LOGFILE ${CMAKE_CURRENT_BINARY_DIR}/doxygen.log) MESSAGE(STATUS "Found doxygen: ${DOXYGEN_EXECUTABLE}") CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/doxy.cfg.in ${DOXYFILE} @ONLY ) ADD_CUSTOM_TARGET(apidoc DEPENDS html_doc_devel COMMAND "${CMAKE_COMMAND}" -E remove_directory "${CMAKE_BINARY_DIR}/doc/api" COMMAND "${CMAKE_COMMAND}" -E make_directory "${CMAKE_BINARY_DIR}/doc/api" COMMAND "${DOXYGEN_EXECUTABLE}" "${DOXYFILE}" COMMAND "${CAT_EXECUTABLE}" "${DOXYGEN_LOGFILE}" DEPENDS ${DOXYFILE} ) SET(KWAVE_ADDITIONAL_CLEAN_FILES ${KWAVE_ADDITIONAL_CLEAN_FILES} ${DOXYGEN_OUTPUT_DIR} ${DOXYGEN_LOGFILE} ) ENDIF (DOXYGEN_EXECUTABLE) ############################################################################# ### additional files for "make clean" ### IF (KWAVE_ADDITIONAL_CLEAN_FILES) SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${KWAVE_ADDITIONAL_CLEAN_FILES}" ) ENDIF (KWAVE_ADDITIONAL_CLEAN_FILES) ############################################################################# ### "make wrapper" ### ### -> creates a wrapper script named "kw" ### SET(WRAPPER_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/kw") CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/bin/kwave.wrapper.in" "${WRAPPER_SCRIPT}" @ONLY ) ADD_CUSTOM_TARGET(wrapper COMMAND chmod +rx "${WRAPPER_SCRIPT}" DEPENDS "${WRAPPER_SCRIPT}" ) ############################################################################# MESSAGE(STATUS "Using CFLAGS=${CMAKE_C_FLAGS}") MESSAGE(STATUS "Using CXXFLAGS=${CMAKE_CXX_FLAGS}") MESSAGE(STATUS "Using LDFLAGS=${LDFLAGS}") ############################################################################# ############################################################################# diff --git a/libkwave/CMakeLists.txt b/libkwave/CMakeLists.txt index 2606de6d..9f71d7a4 100644 --- a/libkwave/CMakeLists.txt +++ b/libkwave/CMakeLists.txt @@ -1,174 +1,184 @@ ############################################################################# ## Kwave - libkwave/CMakeLists.txt ## ------------------- ## begin : Tue May 01 2007 ## copyright : (C) 2007 by Thomas Eschenbacher ## email : Thomas.Eschenbacher@gmx.de ############################################################################# # ############################################################################# # # # Redistribution and use in source and binary forms, with or without # # modification, are permitted provided that the following conditions # # are met: # # # # 1. Redistributions of source code must retain the above copyright # # notice, this list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright # # notice, this list of conditions and the following disclaimer in the # # documentation and/or other materials provided with the distribution. # # # # For details see the accompanying cmake/COPYING-CMAKE-SCRIPTS file. # # # ############################################################################# ############################################################################# IF (WITH_OPTIMIZED_MEMCPY) # use "default" visibility for memcpy.c (which is our one and only C file) SET(CMAKE_C_VISIBILITY_PRESET default) + CHECK_INCLUDE_FILES(sys/times.h HAVE_SYS_TIMES_H) + + SET(_inc_c stdint.h stdio.h) + CHECK_INCLUDE_FILES("${_inc_c}" HAVE_REQUIRED_STD_C_HEADERS) + IF (NOT HAVE_REQUIRED_STD_C_HEADERS) + MESSAGE(FATAL_ERROR " + unable to find one or more of the following C header files: + ${_inc_c}") + ENDIF (NOT HAVE_REQUIRED_STD_C_HEADERS) + SET(libkwave_LIB_SRCS_memcpy cpu_accel.cpp memcpy.c) SET(_try_src_dir "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp") SET(_try_avx_assembler "${_try_src_dir}/cmake_try_avx_assembler.c") WRITE_FILE("${_try_avx_assembler}" " int main() { __asm __volatile(\"vmovaps %ymm1, %ymm0\"); return 0; } ") MESSAGE(STATUS "Detecting compiler support for AVX inline assembler") TRY_COMPILE(HAVE_AVX ${CMAKE_BINARY_DIR} ${_try_avx_assembler} OUTPUT_VARIABLE _out) IF (HAVE_AVX) MESSAGE(STATUS "Detecting compiler support for AVX inline assembler - Success") ELSE (HAVE_AVX) MESSAGE(STATUS "Detecting compiler support for AVX inline assembler - not available") ENDIF (HAVE_AVX) ENDIF (WITH_OPTIMIZED_MEMCPY) SET(libkwave_LIB_SRCS ClipBoard.cpp CodecBase.cpp CodecManager.cpp CodecPlugin.cpp Compression.cpp ConfirmCancelProxy.cpp Connect.cpp Curve.cpp Decoder.cpp Drag.cpp Encoder.cpp Filter.cpp FileInfo.cpp FileProgress.cpp Functions.cpp GenreType.cpp GlobalLock.cpp Interpolation.cpp Label.cpp LabelList.cpp Logger.cpp MemoryManager.cpp MessageBox.cpp MetaData.cpp MetaDataList.cpp MimeData.cpp MixerMatrix.cpp MultiPlaybackSink.cpp MultiStreamWriter.cpp MultiTrackReader.cpp MultiTrackWriter.cpp MultiWriter.cpp Parser.cpp PlaybackController.cpp PlaybackSink.cpp PlayBackTypesMap.cpp Plugin.cpp PluginManager.cpp SampleArray.cpp SampleSink.cpp SampleSource.cpp Selection.cpp Signal.cpp SignalManager.cpp SampleEncoderLinear.cpp SampleFIFO.cpp SampleFormat.cpp SampleReader.cpp StandardBitrates.cpp StreamWriter.cpp Stripe.cpp SwapFile.cpp Track.cpp TrackWriter.cpp Utils.cpp VirtualAudioFile.cpp VorbisCommentMap.cpp Writer.cpp WorkerThread.cpp WindowFunction.cpp modules/ChannelMixer.cpp modules/CurveStreamAdapter.cpp modules/Indexer.cpp modules/Delay.cpp modules/Mul.cpp modules/Osc.cpp modules/RateConverter.cpp modules/SampleBuffer.cpp modules/StreamObject.cpp undo/UndoAddMetaDataAction.cpp undo/UndoDeleteAction.cpp undo/UndoDeleteMetaDataAction.cpp undo/UndoDeleteTrack.cpp undo/UndoInsertAction.cpp undo/UndoInsertTrack.cpp undo/UndoManager.cpp undo/UndoModifyAction.cpp undo/UndoModifyMetaDataAction.cpp undo/UndoSelection.cpp undo/UndoTransaction.cpp undo/UndoTransactionGuard.cpp ${libkwave_LIB_SRCS_samplerate} ${libkwave_LIB_SRCS_memcpy} ) ############################################################################# ADD_LIBRARY(libkwave SHARED ${libkwave_LIB_SRCS}) TARGET_LINK_LIBRARIES(libkwave audiofile ${SAMPLERATE_LIBS} Qt5::Core Qt5::Concurrent KF5::ConfigCore KF5::CoreAddons KF5::I18n KF5::Service KF5::WidgetsAddons KF5::XmlGui pthread ) ############################################################################# SET_TARGET_PROPERTIES(libkwave PROPERTIES OUTPUT_NAME "kwave") SET_TARGET_PROPERTIES(libkwave PROPERTIES LINK_FLAGS "-Wl,--export-dynamic") SET_TARGET_PROPERTIES(libkwave PROPERTIES VERSION ${KWAVE_VERSION} SOVERSION ${KWAVE_VERSION_MAJOR} ) SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}) ############################################################################# ### install files ### INSTALL(TARGETS libkwave LIBRARY DESTINATION ${LIB_INSTALL_DIR} NAMELINK_SKIP) ############################################################################# #############################################################################