Warning, /multimedia/kid3/src/plugins/acoustidimport/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 if(WITH_CHROMAPRINT) 0002 0003 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) 0004 find_package(Chromaprint REQUIRED) 0005 if(CHROMAPRINT_INCLUDE_DIR AND CHROMAPRINT_LIBRARIES) 0006 set(HAVE_CHROMAPRINT 1) 0007 endif() 0008 if(WITH_FFMPEG) 0009 find_package(FFmpeg COMPONENTS avformat avcodec avutil REQUIRED) 0010 elseif(WITH_GSTREAMER) 0011 find_package(GStreamer REQUIRED) 0012 if(NOT GSTREAMER_FOUND) 0013 message(FATAL_ERROR "Could not find GStreamer") 0014 endif() 0015 elseif(WITH_QAUDIODECODER) 0016 message(STATUS "QAudioDecoder selected for decoding.") 0017 else() 0018 # Neither FFmpeg nor GStreamer is forced, select FFmpeg if Chromaprint 0019 # depends on it or if on Windows or Mac OS X. 0020 include(GetPrerequisites) 0021 get_prerequisites(${CHROMAPRINT_LIBRARIES} _chromaprintDeps 0 0 "" "") 0022 if(_chromaprintDeps MATCHES "libavcodec" OR APPLE OR WIN32) 0023 message(STATUS "FFmpeg selected for decoding, use WITH_GSTREAMER=ON to use GStreamer instead.") 0024 find_package(FFmpeg COMPONENTS avformat avcodec avutil REQUIRED) 0025 else() 0026 message(STATUS "GStreamer selected for decoding, use WITH_FFMPEG=ON to use FFmpeg instead.") 0027 find_package(GStreamer REQUIRED) 0028 endif() 0029 endif() 0030 if(GSTREAMER_FOUND) 0031 set(HAVE_GSTREAMER 1) 0032 elseif(FFMPEG_FOUND) 0033 set(HAVE_FFMPEG 1) 0034 endif() 0035 0036 set(plugin_NAME AcoustidImport) 0037 0038 string(TOLOWER ${plugin_NAME} plugin_TARGET) 0039 0040 add_library(${plugin_TARGET} 0041 abstractfingerprintdecoder.cpp 0042 fingerprintcalculator.cpp 0043 musicbrainzclient.cpp 0044 acoustidimportplugin.cpp 0045 ) 0046 0047 if(HAVE_GSTREAMER) 0048 target_sources(${plugin_TARGET} PRIVATE gstfingerprintdecoder.cpp) 0049 elseif(HAVE_FFMPEG) 0050 target_sources(${plugin_TARGET} PRIVATE ffmpegfingerprintdecoder.cpp) 0051 else() 0052 target_sources(${plugin_TARGET} PRIVATE qtfingerprintdecoder.cpp) 0053 endif() 0054 0055 qt_wrap_cpp(plugin_GEN_MOC_SRCS 0056 abstractfingerprintdecoder.h 0057 fingerprintcalculator.h 0058 musicbrainzclient.h 0059 acoustidimportplugin.h 0060 TARGET ${plugin_TARGET} 0061 ) 0062 target_sources(${plugin_TARGET} PRIVATE ${plugin_GEN_MOC_SRCS}) 0063 0064 if(NOT HAVE_GSTREAMER AND NOT HAVE_FFMPEG) 0065 qt_wrap_cpp(qtfp_GEN_MOC_SRCS qtfingerprintdecoder.h TARGET ${plugin_TARGET}) 0066 target_sources(${plugin_TARGET} PRIVATE ${qtfp_GEN_MOC_SRCS}) 0067 endif() 0068 0069 target_include_directories(${plugin_TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) 0070 target_link_libraries(${plugin_TARGET} PRIVATE kid3-core Chromaprint::Chromaprint Kid3Plugin) 0071 0072 if(HAVE_GSTREAMER) 0073 target_link_libraries(${plugin_TARGET} PRIVATE GStreamer::GStreamer) 0074 elseif(HAVE_FFMPEG) 0075 if(FFmpeg_avformat_FOUND AND FFmpeg_avcodec_FOUND AND FFmpeg_avutil_FOUND) 0076 if(FFmpeg_swresample_FOUND) 0077 set(HAVE_SWRESAMPLE 1) 0078 target_link_libraries(${plugin_TARGET} PRIVATE FFmpeg::swresample) 0079 elseif(FFmpeg_avresample_FOUND) 0080 set(HAVE_AVRESAMPLE 1) 0081 target_link_libraries(${plugin_TARGET} PRIVATE FFmpeg::avresample) 0082 else() 0083 include(CheckFunctionExists) 0084 set(_CMAKE_REQUIRED_LIBRARIES_TMP ${CMAKE_REQUIRED_LIBRARIES}) 0085 set(CMAKE_REQUIRED_LIBRARIES FFmpeg::avformat FFmpeg::avcodec FFmpeg::avutil) 0086 check_function_exists(av_audio_convert HAVE_AV_AUDIO_CONVERT) 0087 set(CMAKE_REQUIRED_LIBRARIES ${_CMAKE_REQUIRED_LIBRARIES_TMP}) 0088 endif() 0089 endif() 0090 0091 target_link_libraries(${plugin_TARGET} PRIVATE FFmpeg::avformat FFmpeg::avcodec FFmpeg::avutil) 0092 if(WIN32 OR APPLE) 0093 target_link_libraries(${plugin_TARGET} PRIVATE ${ZLIB_LIBRARIES}) 0094 endif() 0095 if(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT MSVC) 0096 # With MinGW64, FFmpeg 4 is used, which requires bcrypt 0097 target_link_libraries(${plugin_TARGET} PRIVATE "-lbcrypt") 0098 endif() 0099 else() 0100 target_link_libraries(${plugin_TARGET} PRIVATE Qt${QT_VERSION_MAJOR}::Multimedia) 0101 endif() 0102 0103 if(APPLE) 0104 find_library(ACCELERATE_LIBRARIES Accelerate) 0105 target_link_libraries(${plugin_TARGET} PRIVATE ${ACCELERATE_LIBRARIES}) 0106 endif() 0107 0108 configure_file(acoustidconfig.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/acoustidconfig.h) 0109 0110 if(APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "i386") 0111 # To suppress linker error 0112 # ld: illegal text-relocation to non_lazy_ptr in ../libavformat.a 0113 # (allformats.o) from _av_register_all in ../libavformat.a(allformats.o) 0114 # for architecture i386 0115 # ld: illegal text-relocation to _cpy8 in /usr/local/lib/libswresample.a 0116 # (audioconvert.o) from _swri_audio_convert_alloc in 0117 # /usr/local/lib/libswresample.a(audioconvert.o) for architecture i386 0118 set_target_properties(${plugin_TARGET} PROPERTIES LINK_FLAGS -Wl,-read_only_relocs,suppress) 0119 endif() 0120 0121 if(LINUX_SELF_CONTAINED) 0122 # To avoid linker error 0123 # relocation R_X86_64_PC32 against symbol `ff_pw_9' can not be used when 0124 # making a shared object; recompile with -fPIC 0125 # see https://www.ffmpeg.org/platform.html#Advanced-linking-configuration 0126 set_target_properties(${plugin_TARGET} PROPERTIES LINK_FLAGS -Wl,-Bsymbolic) 0127 endif() 0128 0129 INSTALL_KID3_PLUGIN(${plugin_TARGET} ${plugin_NAME}) 0130 endif()