Skip to content

Commit

Permalink
media-libs/liblastfm: Fix build with Qt 5.11_beta3
Browse files Browse the repository at this point in the history
Package-Manager: Portage-2.3.28, Repoman-2.3.9
  • Loading branch information
a17r committed Apr 15, 2018
1 parent 0319d61 commit 0bce8f1
Show file tree
Hide file tree
Showing 3 changed files with 298 additions and 0 deletions.
97 changes: 97 additions & 0 deletions media-libs/liblastfm/files/liblastfm-1.1.0_pre20150206-cmake.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
From 8703c12d7a177627fab4a2f67018d01cc7bf0808 Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <[email protected]>
Date: Sun, 1 Apr 2018 11:51:42 +0200
Subject: [PATCH 1/3] Make Qt5 build default and simplify logic, add missing
deps

---
CMakeLists.txt | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index be88967..a8c81dd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,16 +27,12 @@ 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 CONFIG REQUIRED Core Network Sql Xml)

-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)
--
2.16.3


From 22f6900552839bc90c0fc68b62707d42544eaccf Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <[email protected]>
Date: Sun, 1 Apr 2018 11:56:48 +0200
Subject: [PATCH 2/3] Make use of FeatureSummary

---
CMakeLists.txt | 3 +++
1 file changed, 3 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a8c81dd..d5fd5b1 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")
@@ -93,3 +94,5 @@ if(BUILD_TESTS)
enable_testing()
add_subdirectory(tests)
endif()
+
+feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
--
2.16.3


From bf3ee28f1aa5de7a3f3f5a3077adc97804e27b0e Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <[email protected]>
Date: Sun, 1 Apr 2018 12:06:48 +0200
Subject: [PATCH 3/3] Cleanup include dirs

---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d5fd5b1..ef7fdd5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,10 +34,10 @@ if(NOT BUILD_WITH_QT4)
find_package(Qt5 CONFIG REQUIRED Core Network Sql Xml)

set(LASTFM_LIB_VERSION_SUFFIX 5)
- include_directories(${Qt5Core_INCLUDE_DIRS})
if(UNIX AND NOT APPLE)
find_package(Qt5DBus REQUIRED)
endif()
+ include_directories(Qt5::Core Qt5::Network Qt5::Xml)

# macro(qt_wrap_ui)
# qt5_wrap_ui(${ARGN})
--
2.16.3

196 changes: 196 additions & 0 deletions media-libs/liblastfm/files/liblastfm-1.1.0_pre20150206-qt-5.11b3.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
From 5d6ef4c27804a43b26dffcb46d6b27523a1ca340 Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <[email protected]>
Date: Sun, 15 Apr 2018 21:31:14 +0200
Subject: [PATCH] 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 be88967..57da635 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,9 +56,6 @@ if(Qt5Core_DIR)
# 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 0f872fb..22ce506 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 126f8d9..4a74e0d 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 a4a1686..2f0664d 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()
--
2.17.0

5 changes: 5 additions & 0 deletions media-libs/liblastfm/liblastfm-1.1.0_pre20150206.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ DEPEND="${RDEPEND}
# 1 of 2 (UrlBuilderTest) is failing, last checked version 1.0.9
RESTRICT="test"

PATCHES=(
"${FILESDIR}/${P}-cmake.patch"
"${FILESDIR}/${P}-qt-5.11b3.patch"
)

src_configure() {
# demos not working
local mycmakeargs=(
Expand Down

0 comments on commit 0bce8f1

Please sign in to comment.