summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--recipes/taglib/files/add_missing_exports_fix.diff42
-rw-r--r--recipes/taglib/files/gcc_visibility_feature.diff40
-rw-r--r--recipes/taglib/files/link_interface_libraries_fix.diff26
-rw-r--r--recipes/taglib/taglib_1.5.bb28
4 files changed, 136 insertions, 0 deletions
diff --git a/recipes/taglib/files/add_missing_exports_fix.diff b/recipes/taglib/files/add_missing_exports_fix.diff
new file mode 100644
index 0000000000..146710d868
--- /dev/null
+++ b/recipes/taglib/files/add_missing_exports_fix.diff
@@ -0,0 +1,42 @@
+From: Modestas Vainius <modestas@vainius.eu>
+Subject: [PATCH] debian/add_missing_exports
+
+Add missing exports for a few public ID3v1 functions.
+
+Signed-off-by: Modestas Vainius <modestas@vainius.eu>
+
+---
+ taglib/mpeg/id3v1/id3v1genres.h | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/taglib/mpeg/id3v1/id3v1genres.h b/taglib/mpeg/id3v1/id3v1genres.h
+index 6e5d82e..cb79056 100644
+--- a/taglib/mpeg/id3v1/id3v1genres.h
++++ b/taglib/mpeg/id3v1/id3v1genres.h
+@@ -45,21 +45,21 @@ namespace TagLib {
+ * A "reverse mapping" that goes from the canonical ID3v1 genre name to the
+ * respective genre number. genreMap()["Rock"] ==
+ */
+- GenreMap genreMap();
++ GenreMap TAGLIB_EXPORT genreMap();
+
+ /*!
+ * Returns the name of the genre at \a index in the ID3v1 genre list. If
+ * \a index is out of range -- less than zero or greater than 146 -- a null
+ * string will be returned.
+ */
+- String genre(int index);
++ String TAGLIB_EXPORT genre(int index);
+
+ /*!
+ * Returns the genre index for the (case sensitive) genre \a name. If the
+ * genre is not in the list 255 (which signifies an unknown genre in ID3v1)
+ * will be returned.
+ */
+- int genreIndex(const String &name);
++ int TAGLIB_EXPORT genreIndex(const String &name);
+ }
+ }
+
+--
+tg: (2a52182..) general/add_missing_exports_fix (depends on: upstream)
diff --git a/recipes/taglib/files/gcc_visibility_feature.diff b/recipes/taglib/files/gcc_visibility_feature.diff
new file mode 100644
index 0000000000..eae981933e
--- /dev/null
+++ b/recipes/taglib/files/gcc_visibility_feature.diff
@@ -0,0 +1,40 @@
+From: Modestas Vainius <modestas@vainius.eu>
+Subject: [PATCH] debian/gcc_visibility
+
+Support TAGLIB_EXPORT and TAGLIB_C_EXPORT with >= gcc 4.1.
+
+Signed-off-by: Modestas Vainius <modestas@vainius.eu>
+
+---
+ bindings/c/tag_c.h | 2 ++
+ taglib/taglib_export.h | 2 ++
+ 2 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/bindings/c/tag_c.h b/bindings/c/tag_c.h
+index d70629e..5e3541a 100644
+--- a/bindings/c/tag_c.h
++++ b/bindings/c/tag_c.h
+@@ -35,6 +35,8 @@ extern "C" {
+ #else
+ #define TAGLIB_C_EXPORT __declspec(dllimport)
+ #endif
++#elif defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 1)
++#define TAGLIB_C_EXPORT __attribute__ ((visibility("default")))
+ #else
+ #define TAGLIB_C_EXPORT
+ #endif
+diff --git a/taglib/taglib_export.h b/taglib/taglib_export.h
+index d14d69f..6f30b42 100644
+--- a/taglib/taglib_export.h
++++ b/taglib/taglib_export.h
+@@ -32,6 +32,8 @@
+ #else
+ #define TAGLIB_EXPORT __declspec(dllimport)
+ #endif
++#elif defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 1)
++#define TAGLIB_EXPORT __attribute__ ((visibility("default")))
+ #else
+ #define TAGLIB_EXPORT
+ #endif
+--
+tg: (2a52182..) general/gcc_visibility_feature (depends on: upstream)
diff --git a/recipes/taglib/files/link_interface_libraries_fix.diff b/recipes/taglib/files/link_interface_libraries_fix.diff
new file mode 100644
index 0000000000..fa535e94bb
--- /dev/null
+++ b/recipes/taglib/files/link_interface_libraries_fix.diff
@@ -0,0 +1,26 @@
+From: Modestas Vainius <modestas@vainius.eu>
+Subject: [PATCH] debian/link_interface_libraries
+
+Set libtag LINK_INTERFACE_LIBRARIES to empty string to avoid
+extensive recursive linking.
+
+Signed-off-by: Modestas Vainius <modestas@vainius.eu>
+
+---
+ taglib/CMakeLists.txt | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/taglib/CMakeLists.txt b/taglib/CMakeLists.txt
+index c4976f9..ef74465 100644
+--- a/taglib/CMakeLists.txt
++++ b/taglib/CMakeLists.txt
+@@ -141,6 +141,7 @@ SET(tag_LIB_SRCS ${mpeg_SRCS} ${id3v1_SRCS} ${id3v2_SRCS} ${frames_SRCS} ${ogg_S
+ ADD_LIBRARY(tag SHARED ${tag_LIB_SRCS})
+
+ TARGET_LINK_LIBRARIES(tag )
++SET_TARGET_PROPERTIES(tag PROPERTIES LINK_INTERFACE_LIBRARIES "")
+ if(ZLIB_FOUND)
+ TARGET_LINK_LIBRARIES(tag ${ZLIB_LIBRARIES})
+ endif(ZLIB_FOUND)
+--
+tg: (2a52182..) general/link_interface_libraries_fix (depends on: upstream)
diff --git a/recipes/taglib/taglib_1.5.bb b/recipes/taglib/taglib_1.5.bb
new file mode 100644
index 0000000000..f67660faf1
--- /dev/null
+++ b/recipes/taglib/taglib_1.5.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "TagLib is a library for reading and editing the meta-data of several popular audio formats"
+SECTION = "libs/multimedia"
+HOMEPAGE = "http://developer.kde.org/~wheeler/taglib.html"
+LICENSE = "LGPL"
+PR = "r0"
+
+SRC_URI = "http://developer.kde.org/~wheeler/files/src/taglib-${PV}.tar.gz \
+ file://add_missing_exports_fix.diff;patch=1 \
+ file://gcc_visibility_feature.diff;patch=1 \
+ file://link_interface_libraries_fix.diff;patch=1 \
+ "
+
+S = "${WORKDIR}/taglib-${PV}"
+
+inherit cmake pkgconfig binconfig
+
+do_stage() {
+ install -d ${STAGING_INCDIR}/${PN}
+ install -m 0644 ${D}/usr/include/${PN}/*.h ${STAGING_INCDIR}/${PN}
+ oe_libinstall -C ${PN} -so libtag ${STAGING_LIBDIR}
+}
+
+LEAD_SONAME = "libtag.so.1"
+
+PACKAGES =+ "${PN}-c"
+
+FILES_${PN} = "${libdir}/libtag.so.*"
+FILES_${PN}-c = "${libdir}/libtag_c.so.*"