taglib: update to version 1.5 and using cmake for build
authorwoglinde <heinold@inf.fu-berlin.de>
Tue, 24 Mar 2009 13:35:04 +0000 (14:35 +0100)
committerwoglinde <heinold@inf.fu-berlin.de>
Sat, 28 Mar 2009 23:28:31 +0000 (00:28 +0100)
recipes/taglib/files/add_missing_exports_fix.diff [new file with mode: 0644]
recipes/taglib/files/gcc_visibility_feature.diff [new file with mode: 0644]
recipes/taglib/files/link_interface_libraries_fix.diff [new file with mode: 0644]
recipes/taglib/taglib_1.5.bb [new file with mode: 0644]

diff --git a/recipes/taglib/files/add_missing_exports_fix.diff b/recipes/taglib/files/add_missing_exports_fix.diff
new file mode 100644 (file)
index 0000000..146710d
--- /dev/null
@@ -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 (file)
index 0000000..eae9819
--- /dev/null
@@ -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 (file)
index 0000000..fa535e9
--- /dev/null
@@ -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 (file)
index 0000000..f67660f
--- /dev/null
@@ -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.*"