From 03261f5b8de24b55c199d11248d0fa72a61740f0 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Wed, 6 Jun 2018 22:59:21 +0200 Subject: [PATCH] Use bultin taglib as default Only use systems taglib if it's newer than the current release because of audio file detection by content. --- CMakeLists.txt | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ec71934b8..1b8a0f58e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,7 +76,7 @@ pkg_check_modules(LIBPULSE libpulse) pkg_check_modules(LIBXML libxml-2.0) pkg_check_modules(QJSON REQUIRED QJson) pkg_check_modules(SPOTIFY libspotify>=12.1.45) -pkg_check_modules(TAGLIB REQUIRED taglib>=1.6) +pkg_check_modules(TAGLIB taglib) if (WIN32) find_package(ZLIB REQUIRED) @@ -89,12 +89,22 @@ find_path(LASTFM1_INCLUDE_DIRS lastfm/Track.h) find_path(SPARSEHASH_INCLUDE_DIRS google/sparsetable) -# Google Drive support needs Taglib 1.8, but this version isn't in old Ubuntu -# distros. If the user seems to want Drive support (ie. they have sparsehash -# installed and haven't disabled drive), and has an old taglib, compile our -# internal one and use that instead. -option(USE_BUILTIN_TAGLIB "If the system's version of Taglib is too old, compile our builtin version instead" ON) -if (USE_BUILTIN_TAGLIB AND TAGLIB_VERSION VERSION_LESS 1.8) +# Only use system taglib if it's greater than 1.11.1 because of audio file detection by content. +if (TAGLIB_VERSION VERSION_GREATER 1.11.1 OR WIN32) + option(USE_SYSTEM_TAGLIB "Use system taglib" ON) +else() + option(USE_SYSTEM_TAGLIB "Use system taglib" OFF) +endif() + +if (TAGLIB_FOUND AND USE_SYSTEM_TAGLIB) + message(STATUS "Using system taglib library") + set(CMAKE_REQUIRED_INCLUDES "${TAGLIB_INCLUDE_DIRS}") + set(CMAKE_REQUIRED_LIBRARIES "${TAGLIB_LIBRARIES}") + check_cxx_source_compiles("#include + int main() { char *s; TagLib::Ogg::Opus::File opusfile(s); return 0;}" TAGLIB_HAS_OPUS) + set(CMAKE_REQUIRED_INCLUDES) + set(CMAKE_REQUIRED_LIBRARIES) +else() message(STATUS "Using builtin taglib because your system's version is too old") set(TAGLIB_VERSION 1.11.1) set(TAGLIB_INCLUDE_DIRS "${CMAKE_BINARY_DIR}/3rdparty/taglib/headers/taglib/;${CMAKE_BINARY_DIR}/3rdparty/taglib/headers/") @@ -103,13 +113,6 @@ if (USE_BUILTIN_TAGLIB AND TAGLIB_VERSION VERSION_LESS 1.8) set(TAGLIB_HAS_OPUS ON) add_subdirectory(3rdparty/utf8-cpp) add_subdirectory(3rdparty/taglib) -else() - set(CMAKE_REQUIRED_INCLUDES "${TAGLIB_INCLUDE_DIRS}") - set(CMAKE_REQUIRED_LIBRARIES "${TAGLIB_LIBRARIES}") - check_cxx_source_compiles("#include - int main() { char *s; TagLib::Ogg::Opus::File opusfile(s); return 0;}" TAGLIB_HAS_OPUS) - set(CMAKE_REQUIRED_INCLUDES) - set(CMAKE_REQUIRED_LIBRARIES) endif() if(LASTFM_INCLUDE_DIRS AND LASTFM1_INCLUDE_DIRS)