* add liblastfm
This commit is contained in:
parent
5a4a83da03
commit
73829646f4
63
liblastfm/PKGBUILD
Normal file
63
liblastfm/PKGBUILD
Normal file
@ -0,0 +1,63 @@
|
||||
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
|
||||
# Maintainer:
|
||||
# Contributor: Andrea Scarpino <andrea@archlinux.org>
|
||||
# Contributor: XazZ <xazz.xazz [AT] googlemail.com>
|
||||
|
||||
pkgbase=liblastfm
|
||||
pkgname=(liblastfm-qt4 liblastfm-qt5)
|
||||
pkgver=1.0.9
|
||||
pkgrel=3
|
||||
pkgdesc="A Qt C++ library for the Last.fm webservices"
|
||||
arch=(x86_64 powerpc64le)
|
||||
url='https://github.com/lastfm/liblastfm/'
|
||||
license=('GPL3')
|
||||
makedepends=('cmake' 'qt4' 'qt5-base' 'fftw' 'libsamplerate')
|
||||
source=(${pkgbase}-${pkgver}.tar.gz::"https://github.com/lastfm/${pkgbase}/tarball/${pkgver}" liblastfm-qt5.11.patch
|
||||
liblastfm-include-suffix.patch::"https://github.com/lastfm/liblastfm/commit/480e2ec6.patch")
|
||||
sha1sums=('cd8c6f160529dbf9e0566973a8f37130c83a78c0'
|
||||
'40d84032eaeae32072715732b9fe67295483ffad'
|
||||
'8c36936b2259771db4cf6ac55cd2201800a4623e')
|
||||
|
||||
prepare() {
|
||||
cd lastfm-${pkgbase}-*
|
||||
patch -p1 -i ../liblastfm-qt5.11.patch # Fix build with Qt 5.11
|
||||
patch -p1 -i ../liblastfm-include-suffix.patch # add suffix to Qt5 include dir
|
||||
}
|
||||
|
||||
build() {
|
||||
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 \
|
||||
-DBUILD_TESTS=OFF
|
||||
make
|
||||
}
|
||||
|
||||
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')
|
||||
|
||||
cd build5
|
||||
make DESTDIR="${pkgdir}" install
|
||||
}
|
||||
|
290
liblastfm/liblastfm-qt5.11.patch
Normal file
290
liblastfm/liblastfm-qt5.11.patch
Normal file
@ -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()
|
Loading…
x
Reference in New Issue
Block a user