author | Antonio Rojas
<arojas@archlinux.org> 2018-05-26 14:31:42 UTC |
committer | Antonio Rojas
<arojas@archlinux.org> 2018-05-26 14:31:42 UTC |
parent | cdfe120dbe6763562a2a15604ba583221d9d73de |
PKGBUILD | +41 | -12 |
liblastfm-qt5.11.patch | +290 | -0 |
diff --git a/PKGBUILD b/PKGBUILD index 62f317b..2fbb48b 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,22 +2,37 @@ # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: XazZ <xazz.xazz [AT] googlemail.com> -pkgname=liblastfm +pkgbase=liblastfm +pkgname=(liblastfm-qt4 liblastfm-qt5) pkgver=1.0.9 -pkgrel=2 -pkgdesc="A Qt4 C++ library for the Last.fm webservices" +pkgrel=1 +pkgdesc="A Qt C++ library for the Last.fm webservices" arch=('x86_64') url='https://github.com/lastfm/liblastfm/' license=('GPL3') -depends=('qt4' 'fftw' 'libsamplerate') -makedepends=('cmake') -source=(${pkgname}-${pkgver}.tar.gz::"https://github.com/lastfm/${pkgname}/tarball/${pkgver}") -sha1sums=('cd8c6f160529dbf9e0566973a8f37130c83a78c0') +makedepends=('cmake' 'qt4' 'qt5-base' 'fftw' 'libsamplerate') +source=(${pkgbase}-${pkgver}.tar.gz::"https://github.com/lastfm/${pkgbase}/tarball/${pkgver}" liblastfm-qt5.11.patch) +sha1sums=('cd8c6f160529dbf9e0566973a8f37130c83a78c0' + '40d84032eaeae32072715732b9fe67295483ffad') + +prepare() { + cd lastfm-${pkgbase}-* + patch -p1 -i ../liblastfm-qt5.11.patch # Fix build with Qt 5.11 +} build() { - mkdir build - cd build - cmake ../lastfm-${pkgname}-* \ + mkdir build{4,5} + cd build4 + cmake ../lastfm-${pkgbase}-* \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=/usr/lib \ + -DBUILD_TESTS=OFF \ + -DBUILD_WITH_QT4=ON + make + + cd ../build5 + cmake ../lastfm-${pkgbase}-* \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib \ @@ -25,7 +40,21 @@ build() { make } -package(){ - cd build +package_liblastfm-qt4() { + depends=('qt4' 'fftw' 'libsamplerate') + conflicts=('liblastfm') + provides=('liblastfm') + replaces=('liblastfm') + + cd build4 make DESTDIR="${pkgdir}" install } + +package_liblastfm-qt5() { + depends=('qt5-base' 'fftw' 'libsamplerate') + conflicts=('liblastfm') + + cd build5 + make DESTDIR="${pkgdir}" install +} + diff --git a/liblastfm-qt5.11.patch b/liblastfm-qt5.11.patch new file mode 100644 index 0000000..de34ba6 --- /dev/null +++ b/liblastfm-qt5.11.patch @@ -0,0 +1,290 @@ +From 62a08d490a1e75e3ef5d08f3fb37e65c1563e706 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com> +Date: Sun, 1 Apr 2018 11:51:42 +0200 +Subject: [PATCH 1/4] Make Qt5 build default and simplify logic, add missing + deps + +--- + CMakeLists.txt | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index be88967a..e628611c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -27,19 +27,19 @@ set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${PROJECT_SOURCE_DIR}/cmake/Module + # setup qt stuff + set(CMAKE_AUTOMOC ON) + +-option(BUILD_WITH_QT4 "Build liblastfm with Qt4 no matter if Qt5 was found" OFF) ++option(BUILD_WITH_QT4 "Build liblastfm with Qt4" OFF) + +-if( NOT BUILD_WITH_QT4 ) +- # try Qt5 first, and prefer that if found +- find_package(Qt5Core QUIET) +-endif() ++if(NOT BUILD_WITH_QT4) ++ find_package(Qt5 REQUIRED COMPONENTS Core Network Xml CONFIG) ++ ++ if(BUILD_FINGERPRINT) ++ find_package(Qt5Sql REQUIRED CONFIG) ++ endif() + +-if(Qt5Core_DIR) + set(LASTFM_LIB_VERSION_SUFFIX 5) +- message(STATUS "Found Qt5! Please keep in mind, this is highly experimental and not our main development target..") + include_directories(${Qt5Core_INCLUDE_DIRS}) + if(UNIX AND NOT APPLE) +- find_package(Qt5DBus REQUIRED) ++ find_package(Qt5DBus REQUIRED CONFIG) + endif() + + # macro(qt_wrap_ui) + +From ff32d56e5e1bd8b1f86a8e9840c778249ff19118 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com> +Date: Sun, 1 Apr 2018 11:56:48 +0200 +Subject: [PATCH 2/4] Make use of FeatureSummary + +--- + CMakeLists.txt | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e628611c..dcdfd91d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -20,6 +20,7 @@ option(BUILD_TESTS "Build liblastfm tests" ON) + + # installation dirs + include(GNUInstallDirs) ++include(FeatureSummary) + + #cmake module path + set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${PROJECT_SOURCE_DIR}/cmake/Modules") +@@ -97,3 +98,5 @@ if(BUILD_TESTS) + enable_testing() + add_subdirectory(tests) + endif() ++ ++feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) + +From 5762278b29c1ab6559dcca7a1e8fbad1d75134da Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com> +Date: Sun, 1 Apr 2018 12:06:48 +0200 +Subject: [PATCH 3/4] Cleanup include dirs + +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index dcdfd91d..52589b50 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -38,10 +38,10 @@ if(NOT BUILD_WITH_QT4) + endif() + + set(LASTFM_LIB_VERSION_SUFFIX 5) +- include_directories(${Qt5Core_INCLUDE_DIRS}) + if(UNIX AND NOT APPLE) + find_package(Qt5DBus REQUIRED CONFIG) + endif() ++ include_directories(Qt5::Core Qt5::Network Qt5::Xml) + + # macro(qt_wrap_ui) + # qt5_wrap_ui(${ARGN}) + +From aeb0cbc56376021444a56a984613faacefedfea9 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com> +Date: Sun, 15 Apr 2018 21:31:14 +0200 +Subject: [PATCH 4/4] Fix build with Qt 5.11_beta3 (drop qt5_use_modules) + +--- + CMakeLists.txt | 3 -- + src/CMakeLists.txt | 63 +++++++++++++++++++++++------------------- + src/fingerprint/CMakeLists.txt | 20 ++++++++------ + tests/lastfm_add_test.cmake | 16 ++++++----- + 4 files changed, 55 insertions(+), 47 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 52589b50..c8bc89d9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -57,9 +57,6 @@ if(NOT BUILD_WITH_QT4) + # endmacro() + else() + find_package(Qt4 COMPONENTS QtCore QtNetwork QtXml REQUIRED) +- +- macro(qt5_use_modules) +- endmacro() + endif() + + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 0f872fbd..22ce506c 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -3,16 +3,6 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/global.h.in ${CMAKE_CURRENT_BINARY_DI + + add_definitions(${QT_DEFINITIONS}) + include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}) +-set(liblastfm_LIBRARIES +- ${QT_QTCORE_LIBRARY} +- ${QT_QTNETWORK_LIBRARY} +- ${QT_QTXML_LIBRARY} +-) +- +-list(APPEND liblastfm_QT5_MODULES +- Xml +- Network +-) + + set(liblastfm_SOURCES + ws.cpp +@@ -49,15 +39,11 @@ if(WIN32) + if(NOT MINGW) + add_definitions("-D_ATL_DLL -D_CRT_SECURE_NO_WARNINGS") + +- list(APPEND liblastfm_SOURCES ++ set(liblastfm_SOURCES ${liblastfm_SOURCES} + win/WNetworkConnectionMonitor_win.cpp + win/WmiSink.cpp + win/NdisEvents.cpp + ) +- list(APPEND liblastfm_LIBRARIES +- winhttp +- wbemuuid +- ) + endif() + endif() + +@@ -67,30 +53,51 @@ if(APPLE) + #set(CMAKE_OSX_DEPLOYMENT_TARGET 10.5) + #set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX${CMAKE_OSX_DEPLOYMENT_TARGET}.sdk") + +- list(APPEND liblastfm_SOURCES ++ set(liblastfm_SOURCES ${liblastfm_SOURCES} + mac/MNetworkConnectionMonitor_mac.cpp + ) +- +- find_library(SYSTEMCONFIGURATION_LIBRARY SystemConfiguration) +- find_library(COREFOUNDATION_LIBRARY CoreFoundation) +- list(APPEND liblastfm_LIBRARIES +- ${COREFOUNDATION_LIBRARY} +- ${SYSTEMCONFIGURATION_LIBRARY} +- ) + endif() + + if(UNIX AND NOT APPLE) +- list(APPEND liblastfm_SOURCES ++ set(liblastfm_SOURCES ${liblastfm_SOURCES} + linux/LNetworkConnectionMonitor_linux.cpp + ) +- list(APPEND liblastfm_LIBRARIES ${QT_QTDBUS_LIBRARY}) +- list(APPEND liblastfm_QT5_MODULES DBus) + endif() + + add_library(${LASTFM_LIB_TARGET_NAME} SHARED ${liblastfm_SOURCES}) +-qt5_use_modules(${LASTFM_LIB_TARGET_NAME} ${liblastfm_QT5_MODULES}) + +-target_link_libraries(${LASTFM_LIB_TARGET_NAME} ${liblastfm_LIBRARIES}) ++if(Qt5Core_DIR) ++ target_link_libraries(${LASTFM_LIB_TARGET_NAME} Qt5::Network Qt5::Xml) ++ if(UNIX AND NOT APPLE) ++ target_link_libraries(${LASTFM_LIB_TARGET_NAME} Qt5::DBus) ++ endif() ++else() ++ target_link_libraries(${LASTFM_LIB_TARGET_NAME} ++ ${QT_QTCORE_LIBRARY} ++ ${QT_QTNETWORK_LIBRARY} ++ ${QT_QTXML_LIBRARY} ++ ) ++ if(UNIX AND NOT APPLE) ++ target_link_libraries(${LASTFM_LIB_TARGET_NAME} ${QT_QTDBUS_LIBRARY}) ++ endif() ++endif() ++ ++if(WIN32 AND NOT MINGW) ++ target_link_libraries(${LASTFM_LIB_TARGET_NAME} ++ winhttp ++ wbemuuid ++ ) ++endif() ++ ++if(APPLE) ++ find_library(SYSTEMCONFIGURATION_LIBRARY SystemConfiguration) ++ find_library(COREFOUNDATION_LIBRARY CoreFoundation) ++ target_link_libraries(${LASTFM_LIB_TARGET_NAME} ++ ${COREFOUNDATION_LIBRARY} ++ ${SYSTEMCONFIGURATION_LIBRARY} ++ ) ++endif() ++ + set_target_properties(${LASTFM_LIB_TARGET_NAME} PROPERTIES + VERSION ${LASTFM_VERSION_STRING} + SOVERSION ${LASTFM_SOVERSION} +diff --git a/src/fingerprint/CMakeLists.txt b/src/fingerprint/CMakeLists.txt +index 126f8d90..4a74e0dc 100644 +--- a/src/fingerprint/CMakeLists.txt ++++ b/src/fingerprint/CMakeLists.txt +@@ -26,21 +26,23 @@ set(lastfm_fingerprint_HEADERS + + add_library(${FINGERPRINT_LIB_TARGET_NAME} SHARED ${lastfm_fingerprint_SOURCES}) + +-target_link_libraries(${FINGERPRINT_LIB_TARGET_NAME} +- ${LASTFM_LIB_TARGET_NAME} +- ${QT_QTSQL_LIBRARY} +- ${QT_QTCORE_LIBRARY} +- ${LIBSAMPLERATE_LIBRARY} +- ${LIBFFTW3_LIBRARY} +-) +- + set_target_properties(${FINGERPRINT_LIB_TARGET_NAME} PROPERTIES + COMPILE_DEFINITIONS LASTFM_FINGERPRINT_LIB + VERSION ${LASTFM_VERSION_STRING} + SOVERSION ${LASTFM_SOVERSION} + ) + +-qt5_use_modules(${FINGERPRINT_LIB_TARGET_NAME} Network Sql Xml) ++target_link_libraries(${FINGERPRINT_LIB_TARGET_NAME} ++ ${LASTFM_LIB_TARGET_NAME} ++ ${LIBSAMPLERATE_LIBRARY} ++ ${LIBFFTW3_LIBRARY} ++) ++ ++if(Qt5Core_DIR) ++ target_link_libraries(${FINGERPRINT_LIB_TARGET_NAME} Qt5::Network Qt5::Sql Qt5::Xml) ++else() ++ target_link_libraries(${FINGERPRINT_LIB_TARGET_NAME} ${QT_QTCORE_LIBRARY} ${QT_QTSQL_LIBRARY}) ++endif() + + install(TARGETS ${FINGERPRINT_LIB_TARGET_NAME} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +diff --git a/tests/lastfm_add_test.cmake b/tests/lastfm_add_test.cmake +index a4a16864..2f0664d9 100644 +--- a/tests/lastfm_add_test.cmake ++++ b/tests/lastfm_add_test.cmake +@@ -6,13 +6,15 @@ macro(lastfm_add_test test_class) + configure_file(Test${LASTFM_TEST_CLASS}.h Test${LASTFM_TEST_CLASS}.h) + add_executable(${LASTFM_TEST_CLASS}Test Test${LASTFM_TEST_CLASS}.cpp) + +- qt5_use_modules(${LASTFM_TEST_CLASS}Test Core Test Xml Network) +- +- target_link_libraries(${LASTFM_TEST_CLASS}Test +- ${LASTFM_LIB_TARGET_NAME} +- ${QT_QTTEST_LIBRARY} +- ${QT_QTCORE_LIBRARY} +- ) ++ if(Qt5Core_DIR) ++ target_link_libraries(${LASTFM_TEST_CLASS}Test Qt5::Core Qt5::Test Qt5::Xml Qt5::Network ++ ${LASTFM_LIB_TARGET_NAME} ++ ) ++ else() ++ target_link_libraries(${LASTFM_TEST_CLASS}Test ${QT_QTCORE_LIBRARY} ${QT_QTTEST_LIBRARY} ++ ${LASTFM_LIB_TARGET_NAME} ++ ) ++ endif() + + add_test(NAME ${LASTFM_TEST_CLASS}Test COMMAND ${LASTFM_TEST_CLASS}Test) + endmacro()