OSDN Git Service

thunmnailers: use CMake modules to detect Taglib and FLAC++
authorIvailo Monev <xakepa10@laimg.moc>
Thu, 11 Jul 2019 19:06:31 +0000 (19:06 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Thu, 11 Jul 2019 19:06:31 +0000 (19:06 +0000)
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
thumbnailers/CMakeLists.txt
thumbnailers/audio/CMakeLists.txt

index b578b1e..6fb2f2e 100644 (file)
@@ -8,14 +8,29 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
 endif()
 
 macro_optional_find_package(GettextPO)
-
 set_package_properties(GettextPO PROPERTIES
     DESCRIPTION "A library for processing PO files"
     URL "www.gnu.org/software/gettext"
     PURPOSE "Required to build the PO thumbnailer"
 )
 
-macro_optional_add_subdirectory(audio)
+macro_optional_find_package(Taglib)
+set_package_properties(Taglib PROPERTIES
+    DESCRIPTION "Id3 tag reader"
+    URL "http://developer.kde.org/~wheeler/taglib.html"
+    PURPOSE "Required to build the audio thumbnailer"
+)
+
+macro_optional_find_package(FLAC++)
+set_package_properties(FLAC++ PROPERTIES
+    DESCRIPTION "Free Lossless Audio Codec"
+    URL "https://xiph.org/flac/"
+    PURPOSE "Required to build the audio thumbnailer"
+)
+
+if(TAGLIB_FOUND AND FLAC_FOUND)
+    macro_optional_add_subdirectory(audio)
+endif()
 macro_optional_add_subdirectory(ps)
 macro_optional_add_subdirectory(raw)
 
index 2181f82..d504f5a 100644 (file)
@@ -1,65 +1,13 @@
 project(AudioThumbs)
 
-set(WITH_TAGLIB ON CACHE BOOL "build with TagLib")
-set(WITH_FLAC ON CACHE BOOL "build with FLAC")
-
-### Check for taglib
-set(TAGLIB_LIBRARIES)
-set(TAGLIB_CFLAGS)
-if(WITH_TAGLIB)
-  find_program(TAGLIBCONFIG_EXECUTABLE NAMES taglib-config PATHS /usr/bin /usr/local/bin ${BIN_INSTALL_DIR})
-  if(TAGLIBCONFIG_EXECUTABLE)
-    exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE TAGLIB_LIBRARIES)
-    exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --cflags RETURN_VALUE _return_VALUE OUTPUT_VARIABLE TAGLIB_CFLAGS)
-    exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE TAGLIB_VERSION)
-    if(TAGLIB_LIBRARIES AND TAGLIB_CFLAGS AND TAGLIB_VERSION)
-      if(NOT "${TAGLIB_VERSION}" VERSION_LESS "1.4")
-        set(HAVE_TAGLIB 1)
-        message(STATUS "TagLib found: ${TAGLIB_LIBRARIES}")
-      endif()
-    endif(TAGLIB_LIBRARIES AND TAGLIB_CFLAGS AND TAGLIB_VERSION)
-  endif(TAGLIBCONFIG_EXECUTABLE)
-  if (NOT HAVE_TAGLIB)
-    message(FATAL_ERROR "Could not find Taglib")
-  endif (NOT HAVE_TAGLIB)
-endif(WITH_TAGLIB)
-
-### Check for FLAC++
-set(FLAC_LIBRARIES)
-if(WITH_FLAC)
-  find_path(FLACPP_INCLUDE_DIR FLAC++/metadata.h)
-  find_library(FLAC_LIBRARY NAMES FLAC)
-  find_library(FLACPP_LIBRARY NAMES FLAC++)
-  if(FLACPP_INCLUDE_DIR AND FLAC_LIBRARY AND FLACPP_LIBRARY)
-    set(FLAC_LIBRARIES ${FLACPP_LIBRARY} ${FLAC_LIBRARY})
-    message(STATUS "FLAC++ found: ${FLAC_LIBRARIES}")
-    set(HAVE_FLAC 1)
-  
-    set(_CMAKE_REQUIRED_LIBRARIES_TMP ${CMAKE_REQUIRED_LIBRARIES})
-    set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${FLAC_LIBRARIES} ${FLACPP_LIBRARIES})
-    CHECK_CXX_SOURCE_COMPILES("#include <FLAC++/metadata.h>\nint main() {\n  FLAC::Metadata::VorbisComment vc;\n  const ::FLAC__StreamMetadata* fsmd = vc;\n  return 0;\n}\n" FLAC_STREAMMETADATA_OPERATOR_FOUND)
-    CHECK_CXX_SOURCE_COMPILES("#include <FLAC++/metadata.h>\nint main() {\n  FLAC::Metadata::Picture pic;\n  return 0;\n}\n" FLAC_METADATA_PICTURE_FOUND)
-    set(CMAKE_REQUIRED_LIBRARIES ${_CMAKE_REQUIRED_LIBRARIES_TMP})
-  
-    if(NOT FLAC_STREAMMETADATA_OPERATOR_FOUND)
-      set(HAVE_NO_FLAC_STREAMMETADATA_OPERATOR 1)
-    endif(NOT FLAC_STREAMMETADATA_OPERATOR_FOUND)
-    if(FLAC_METADATA_PICTURE_FOUND)
-      set(HAVE_FLAC_PICTURE 1)
-    endif(FLAC_METADATA_PICTURE_FOUND)
-  else(FLACPP_INCLUDE_DIR AND FLAC_LIBRARY AND FLACPP_LIBRARY)
-    message(FATAL_ERROR "Could not find FLAC++")
-  endif(FLACPP_INCLUDE_DIR AND FLAC_LIBRARY AND FLACPP_LIBRARY)
-endif(WITH_FLAC)
-
 add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS} ${TAGLIB_CFLAGS} -DHAVE_CONFIG_H=1 -DKDE_NO_COMPAT)
-include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ${QT_INCLUDES})
+include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ${QT_INCLUDES} ${FLAC_INCLUDES})
 
 set(AudioThumbs_SRCS AudioThumbs.cpp)
 
 kde4_add_plugin(AudioThumbs ${AudioThumbs_SRCS})
 
-target_link_libraries(AudioThumbs ${KDE4_KIO_LIBS} ${TAGLIB_LIBRARIES} ${FLAC_LIBRARIES} )
+target_link_libraries(AudioThumbs ${KDE4_KIO_LIBS} ${TAGLIB_LIBRARIES} ${FLAC_LIBRARIES})
 
 install(TARGETS AudioThumbs DESTINATION ${PLUGIN_INSTALL_DIR} )