Conflicts:
	taglib/CMakeLists.txt
	tests/CMakeLists.txt
This commit is contained in:
Mathias Panzenböck 2011-06-24 23:59:11 +02:00
commit a04d7d0bbc
20 changed files with 40 additions and 377 deletions

View File

@ -14,8 +14,6 @@ option(BUILD_TESTS "Build the test suite" OFF)
option(BUILD_EXAMPLES "Build the examples" OFF)
option(NO_ITUNES_HACKS "Disable workarounds for iTunes bugs" OFF)
option(WITH_ASF "Enable ASF tag reading/writing code" OFF)
option(WITH_MP4 "Enable MP4 tag reading/writing code" OFF)
add_definitions(-DHAVE_CONFIG_H)
set(TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests/")

30
INSTALL
View File

@ -9,21 +9,35 @@ This can be done using the following commands:
make
sudo make install
Some file formats in TagLib are not enabled by default, you can compile
support for MP4 and WMA using the following options:
cmake -DWITH_MP4=ON -DWITH_ASF=ON [...]
In order to build the included examples, use the BUILD_EXAMPLES option:
cmake -DBUILD_EXAMPLES=ON [...]
See http://www.cmake.org/cmake/help/runningcmake.html for generic help on
running CMake.
Mac OS X Framework
------------------
On Mac OS X, you might want to build a framework that can be easily integrated
into your application. If you set the BUILD_FRAMEWORK option on, it will compile
TagLib as a framework. For example, the following command can be used to build
an Universal Binary framework with Mac OS X 10.4 as the deployment target:
cmake -DCMAKE_BUILD_TYPE=Release \
-DBUILD_FRAMEWORK=ON \
-DCMAKE_C_COMPILER=/usr/bin/gcc-4.0 \
-DCMAKE_CXX_COMPILER=/usr/bin/c++-4.0 \
-DCMAKE_OSX_SYSROOT=/Developer/SDKs/MacOSX10.4u.sdk/ \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.4 \
-DCMAKE_OSX_ARCHITECTURES="ppc;i368;x86_64"
Unit Tests
----------
If you want to run the test suite to make sure TagLib works properly on your
system, you need to have cppunit installed. The test suite has a custom target
in the build system, so you can run the tests using make:
make check
See http://www.cmake.org/cmake/help/runningcmake.html for generic help on
running CMake.

View File

@ -86,14 +86,10 @@ TagLib_File *taglib_file_new_type(const char *filename, TagLib_File_Type type)
return reinterpret_cast<TagLib_File *>(new Ogg::Speex::File(filename));
case TagLib_File_TrueAudio:
return reinterpret_cast<TagLib_File *>(new TrueAudio::File(filename));
#ifdef TAGLIB_WITH_MP4
case TagLib_File_MP4:
return reinterpret_cast<TagLib_File *>(new MP4::File(filename));
#endif
#ifdef TAGLIB_WITH_ASF
case TagLib_File_ASF:
return reinterpret_cast<TagLib_File *>(new ASF::File(filename));
#endif
default:
return 0;
}

View File

@ -101,6 +101,17 @@ set(tag_HDRS
riff/aiff/aiffproperties.h
riff/wav/wavfile.h
riff/wav/wavproperties.h
asf/asffile.h
asf/asfproperties.h
asf/asftag.h
asf/asfattribute.h
asf/asfpicture.h
mp4/mp4file.h
mp4/mp4atom.h
mp4/mp4tag.h
mp4/mp4item.h
mp4/mp4properties.h
mp4/mp4coverart.h
mod/modfilebase.h
mod/modfile.h
mod/modtag.h
@ -112,25 +123,6 @@ set(tag_HDRS
xm/xmfile.h
xm/xmproperties.h
)
if(WITH_ASF)
set(tag_HDRS ${tag_HDRS}
asf/asffile.h
asf/asfproperties.h
asf/asftag.h
asf/asfattribute.h
asf/asfpicture.h
)
endif()
if(WITH_MP4)
set(tag_HDRS ${tag_HDRS}
mp4/mp4file.h
mp4/mp4atom.h
mp4/mp4tag.h
mp4/mp4item.h
mp4/mp4properties.h
mp4/mp4coverart.h
)
endif()
set(mpeg_SRCS
mpeg/mpegfile.cpp
@ -290,18 +282,12 @@ set(tag_LIB_SRCS
${mpeg_SRCS} ${id3v1_SRCS} ${id3v2_SRCS} ${frames_SRCS} ${ogg_SRCS}
${vorbis_SRCS} ${oggflacs_SRCS} ${mpc_SRCS} ${ape_SRCS} ${toolkit_SRCS} ${flacs_SRCS}
${wavpack_SRCS} ${speex_SRCS} ${trueaudio_SRCS} ${riff_SRCS} ${aiff_SRCS} ${wav_SRCS}
${mod_SRCS} ${s3m_SRCS} ${it_SRCS} ${xm_SRCS}
${asf_SRCS} ${mp4_SRCS} ${mod_SRCS} ${s3m_SRCS} ${it_SRCS} ${xm_SRCS}
tag.cpp
tagunion.cpp
fileref.cpp
audioproperties.cpp
)
if(WITH_ASF)
set(tag_LIB_SRCS ${tag_LIB_SRCS} ${asf_SRCS})
endif()
if(WITH_MP4)
set(tag_LIB_SRCS ${tag_LIB_SRCS} ${mp4_SRCS})
endif()
add_library(tag ${tag_LIB_SRCS} ${tag_HDRS})

View File

@ -27,8 +27,6 @@
#include <config.h>
#endif
#ifdef WITH_ASF
#include <taglib.h>
#include <tdebug.h>
#include "asfattribute.h"
@ -353,4 +351,3 @@ void ASF::Attribute::setStream(int value)
d->stream = value;
}
#endif

View File

@ -27,8 +27,6 @@
#include <config.h>
#endif
#ifdef WITH_ASF
#include <tdebug.h>
#include <tbytevectorlist.h>
#include <tstring.h>
@ -607,4 +605,3 @@ ByteVector ASF::File::renderString(const String &str, bool includeLength)
return data;
}
#endif

View File

@ -27,8 +27,6 @@
#include <config.h>
#endif
#ifdef WITH_ASF
#include <taglib.h>
#include <tdebug.h>
#include "asfattribute.h"
@ -182,4 +180,3 @@ ASF::Picture ASF::Picture::fromInvalid()
return ret;
}
#endif

View File

@ -27,8 +27,6 @@
#include <config.h>
#endif
#ifdef WITH_ASF
#include <tdebug.h>
#include <tstring.h>
#include "asfproperties.h"
@ -115,4 +113,3 @@ void ASF::Properties::setEncrypted(bool encrypted)
d->encrypted = encrypted;
}
#endif

View File

@ -27,8 +27,6 @@
#include <config.h>
#endif
#ifdef WITH_ASF
#include "asftag.h"
using namespace TagLib;
@ -198,4 +196,3 @@ bool ASF::Tag::isEmpty() const
d->attributeListMap.isEmpty();
}
#endif

View File

@ -151,17 +151,13 @@ StringList FileRef::defaultFileExtensions()
l.append("wv");
l.append("spx");
l.append("tta");
#ifdef TAGLIB_WITH_MP4
l.append("m4a");
l.append("m4b");
l.append("m4p");
l.append("3g2");
l.append("mp4");
#endif
#ifdef TAGLIB_WITH_ASF
l.append("wma");
l.append("asf");
#endif
l.append("aif");
l.append("aiff");
l.append("wav");
@ -257,14 +253,10 @@ File *FileRef::create(FileName fileName, bool readAudioProperties,
return new Ogg::Speex::File(fileName, readAudioProperties, audioPropertiesStyle);
if(ext == "TTA")
return new TrueAudio::File(fileName, readAudioProperties, audioPropertiesStyle);
#ifdef TAGLIB_WITH_MP4
if(ext == "M4A" || ext == "M4B" || ext == "M4P" || ext == "MP4" || ext == "3G2")
return new MP4::File(fileName, readAudioProperties, audioPropertiesStyle);
#endif
#ifdef TAGLIB_WITH_ASF
if(ext == "WMA" || ext == "ASF")
return new ASF::File(fileName, readAudioProperties, audioPropertiesStyle);
#endif
if(ext == "AIF" || ext == "AIFF")
return new RIFF::AIFF::File(fileName, readAudioProperties, audioPropertiesStyle);
if(ext == "WAV")

View File

@ -27,8 +27,6 @@
#include <config.h>
#endif
#ifdef WITH_MP4
#include <tdebug.h>
#include <tstring.h>
#include "mp4atom.h"
@ -198,4 +196,3 @@ MP4::Atoms::path(const char *name1, const char *name2, const char *name3, const
return path;
}
#endif

View File

@ -27,8 +27,6 @@
#include <config.h>
#endif
#ifdef WITH_MP4
#include <taglib.h>
#include <tdebug.h>
#include "mp4coverart.h"
@ -86,4 +84,3 @@ MP4::CoverArt::data() const
return d->data;
}
#endif

View File

@ -27,8 +27,6 @@
#include <config.h>
#endif
#ifdef WITH_MP4
#include <tdebug.h>
#include <tstring.h>
#include "mp4atom.h"
@ -149,4 +147,3 @@ MP4::File::save()
return d->tag->save();
}
#endif

View File

@ -27,8 +27,6 @@
#include <config.h>
#endif
#ifdef WITH_MP4
#include <taglib.h>
#include <tdebug.h>
#include "mp4item.h"
@ -146,4 +144,3 @@ MP4::Item::isValid() const
return d->valid;
}
#endif

View File

@ -27,8 +27,6 @@
#include <config.h>
#endif
#ifdef WITH_MP4
#include <tdebug.h>
#include <tstring.h>
#include "mp4file.h"
@ -186,4 +184,3 @@ MP4::Properties::isEncrypted() const
return d->encrypted;
}
#endif

View File

@ -27,8 +27,6 @@
#include <config.h>
#endif
#ifdef WITH_MP4
#include <tdebug.h>
#include <tstring.h>
#include "mp4atom.h"
@ -638,4 +636,3 @@ MP4::Tag::itemListMap()
return d->items;
}
#endif

View File

@ -1,275 +0,0 @@
######################################################################
# Automatically generated by qmake (2.01a) Fri Feb 1 15:35:13 2008
######################################################################
TEMPLATE = lib
CONFIG += lib_bundle staticlib
CONFIG += x86 x86_64 ppc
CONFIG -= qt
DEFINES += HAVE_ZLIB=1 NDEBUG WITH_ASF WITH_MP4 TAGLIB_NO_CONFIG
LIBS += -lz
TARGET = TagLib
VERSION = 1.6.3
DEPENDPATH += . \
ape \
asf \
flac \
mp4 \
mpc \
mpeg \
mpeg/id3v1 \
mpeg/id3v2 \
mpeg/id3v2/frames \
ogg \
ogg/flac \
ogg/speex \
ogg/vorbis \
riff \
riff/aiff \
riff/wav \
toolkit \
trueaudio \
wavpack
INCLUDEPATH += . \
ape \
asf \
flac \
mp4 \
mpc \
mpeg \
mpeg/id3v1 \
mpeg/id3v2 \
mpeg/id3v2/frames \
ogg \
ogg/flac \
ogg/speex \
ogg/vorbis \
riff \
riff/aiff \
riff/wav \
toolkit \
trueaudio \
wavpack
# Input
HEADERS += audioproperties.h \
fileref.h \
tag.h \
taglib_export.h \
tagunion.h \
ape/apefooter.h \
ape/apeitem.h \
ape/apetag.h \
flac/flacfile.h \
flac/flacproperties.h \
flac/flacpicture.h \
mpc/mpcfile.h \
mpc/mpcproperties.h \
mp4/mp4atom.h \
mp4/mp4item.h \
mp4/mp4file.h \
mp4/mp4properties.h \
mpeg/mpegfile.h \
mpeg/mpegheader.h \
mpeg/mpegproperties.h \
mpeg/xingheader.h \
ogg/oggfile.h \
ogg/oggpage.h \
ogg/oggpageheader.h \
ogg/xiphcomment.h \
ogg/speex/speexfile.h \
ogg/speex/speexproperties.h \
toolkit/taglib.h \
toolkit/tbytevector.h \
toolkit/tbytevectorlist.h \
toolkit/tdebug.h \
toolkit/tfile.h \
toolkit/tlist.h \
toolkit/tmap.h \
toolkit/tstring.h \
toolkit/tstringlist.h \
toolkit/unicode.h \
trueaudio/trueaudiofile.h \
trueaudio/trueaudioproperties.h \
wavpack/wavpackfile.h \
wavpack/wavpackproperties.h \
mpeg/id3v1/id3v1genres.h \
mpeg/id3v1/id3v1tag.h \
mpeg/id3v2/id3v2extendedheader.h \
mpeg/id3v2/id3v2footer.h \
mpeg/id3v2/id3v2frame.h \
mpeg/id3v2/id3v2framefactory.h \
mpeg/id3v2/id3v2header.h \
mpeg/id3v2/id3v2synchdata.h \
mpeg/id3v2/id3v2tag.h \
ogg/flac/oggflacfile.h \
ogg/vorbis/vorbisfile.h \
ogg/vorbis/vorbisproperties.h \
mpeg/id3v2/frames/attachedpictureframe.h \
mpeg/id3v2/frames/commentsframe.h \
mpeg/id3v2/frames/generalencapsulatedobjectframe.h \
mpeg/id3v2/frames/popularimeterframe.h \
mpeg/id3v2/frames/relativevolumeframe.h \
mpeg/id3v2/frames/textidentificationframe.h \
mpeg/id3v2/frames/uniquefileidentifierframe.h \
mpeg/id3v2/frames/unknownframe.h \
mpeg/id3v2/frames/unsynchronizedlyricsframe.h \
mpeg/id3v2/frames/urllinkframe.h \
toolkit/tlist.tcc \
toolkit/tmap.tcc
SOURCES += ape/apefooter.cpp \
ape/apeitem.cpp \
ape/apetag.cpp \
asf/asfattribute.cpp \
asf/asffile.cpp \
asf/asfproperties.cpp \
asf/asftag.cpp \
asf/asfpicture.cpp \
audioproperties.cpp \
fileref.cpp \
flac/flacfile.cpp \
flac/flacproperties.cpp \
flac/flacpicture.cpp \
mp4/mp4atom.cpp \
mp4/mp4coverart.cpp \
mp4/mp4file.cpp \
mp4/mp4item.cpp \
mp4/mp4properties.cpp \
mp4/mp4tag.cpp \
mpc/mpcfile.cpp \
mpc/mpcproperties.cpp \
mpeg/id3v1/id3v1genres.cpp \
mpeg/id3v1/id3v1tag.cpp \
mpeg/id3v2/frames/attachedpictureframe.cpp \
mpeg/id3v2/frames/commentsframe.cpp \
mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp \
mpeg/id3v2/frames/popularimeterframe.cpp \
mpeg/id3v2/frames/privateframe.cpp \
mpeg/id3v2/frames/relativevolumeframe.cpp \
mpeg/id3v2/frames/textidentificationframe.cpp \
mpeg/id3v2/frames/uniquefileidentifierframe.cpp \
mpeg/id3v2/frames/unknownframe.cpp \
mpeg/id3v2/frames/unsynchronizedlyricsframe.cpp \
mpeg/id3v2/frames/urllinkframe.cpp \
mpeg/id3v2/id3v2extendedheader.cpp \
mpeg/id3v2/id3v2footer.cpp \
mpeg/id3v2/id3v2frame.cpp \
mpeg/id3v2/id3v2framefactory.cpp \
mpeg/id3v2/id3v2header.cpp \
mpeg/id3v2/id3v2synchdata.cpp \
mpeg/id3v2/id3v2tag.cpp \
mpeg/mpegfile.cpp \
mpeg/mpegheader.cpp \
mpeg/mpegproperties.cpp \
mpeg/xingheader.cpp \
ogg/flac/oggflacfile.cpp \
ogg/oggfile.cpp \
ogg/oggpage.cpp \
ogg/oggpageheader.cpp \
ogg/speex/speexfile.cpp \
ogg/speex/speexproperties.cpp \
ogg/vorbis/vorbisfile.cpp \
ogg/vorbis/vorbisproperties.cpp \
ogg/xiphcomment.cpp \
riff/aiff/aifffile.cpp \
riff/aiff/aiffproperties.cpp \
riff/rifffile.cpp \
riff/wav/wavfile.cpp \
riff/wav/wavproperties.cpp \
tag.cpp \
tagunion.cpp \
toolkit/tbytevector.cpp \
toolkit/tbytevectorlist.cpp \
toolkit/tdebug.cpp \
toolkit/tfile.cpp \
toolkit/tstring.cpp \
toolkit/tstringlist.cpp \
toolkit/unicode.cpp \
trueaudio/trueaudiofile.cpp \
trueaudio/trueaudioproperties.cpp \
wavpack/wavpackfile.cpp \
wavpack/wavpackproperties.cpp
FRAMEWORK_HEADERS.version = Versions
FRAMEWORK_HEADERS.files = \
ape/apefooter.h \
ape/apeitem.h \
ape/apetag.h \
asf/asfattribute.h \
asf/asffile.h \
asf/asfproperties.h \
asf/asftag.h \
asf/asfpicture.h \
audioproperties.h \
fileref.h \
flac/flacfile.h \
flac/flacproperties.h \
mp4/mp4atom.h \
mp4/mp4coverart.h \
mp4/mp4file.h \
mp4/mp4item.h \
mp4/mp4properties.h \
mp4/mp4tag.h \
mpc/mpcfile.h \
mpc/mpcproperties.h \
mpeg/id3v1/id3v1genres.h \
mpeg/id3v1/id3v1tag.h \
mpeg/id3v2/frames/attachedpictureframe.h \
mpeg/id3v2/frames/commentsframe.h \
mpeg/id3v2/frames/generalencapsulatedobjectframe.h \
mpeg/id3v2/frames/popularimeterframe.h \
mpeg/id3v2/frames/privateframe.h \
mpeg/id3v2/frames/relativevolumeframe.h \
mpeg/id3v2/frames/textidentificationframe.h \
mpeg/id3v2/frames/uniquefileidentifierframe.h \
mpeg/id3v2/frames/unknownframe.h \
mpeg/id3v2/frames/unsynchronizedlyricsframe.h \
mpeg/id3v2/frames/urllinkframe.h \
mpeg/id3v2/id3v2extendedheader.h \
mpeg/id3v2/id3v2footer.h \
mpeg/id3v2/id3v2frame.h \
mpeg/id3v2/id3v2framefactory.h \
mpeg/id3v2/id3v2header.h \
mpeg/id3v2/id3v2synchdata.h \
mpeg/id3v2/id3v2tag.h \
mpeg/mpegfile.h \
mpeg/mpegheader.h \
mpeg/mpegproperties.h \
mpeg/xingheader.h \
ogg/flac/oggflacfile.h \
ogg/oggfile.h \
ogg/oggpage.h \
ogg/oggpageheader.h \
ogg/speex/speexfile.h \
ogg/speex/speexproperties.h \
ogg/vorbis/vorbisfile.h \
ogg/vorbis/vorbisproperties.h \
ogg/xiphcomment.h \
riff/aiff/aifffile.h \
riff/aiff/aiffproperties.h \
riff/rifffile.h \
riff/wav/wavfile.h \
riff/wav/wavproperties.h \
tag.h \
taglib_export.h \
tagunion.h \
toolkit/taglib.h \
toolkit/tbytevector.h \
toolkit/tbytevectorlist.h \
toolkit/tdebug.h \
toolkit/tfile.h \
toolkit/tlist.h \
toolkit/tlist.tcc \
toolkit/tmap.h \
toolkit/tmap.tcc \
toolkit/tstring.h \
toolkit/tstringlist.h \
toolkit/unicode.h \
trueaudio/trueaudiofile.h \
trueaudio/trueaudioproperties.h \
wavpack/wavpackfile.h \
wavpack/wavpackproperties.h
FRAMEWORK_HEADERS.path = Headers
QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS

View File

@ -1,4 +1,4 @@
/* taglib_config.h. Generated by cmake from taglib_config.h.cmake */
#cmakedefine TAGLIB_WITH_ASF 1
#cmakedefine TAGLIB_WITH_MP4 1
#define TAGLIB_WITH_ASF 1
#define TAGLIB_WITH_MP4 1

View File

@ -51,22 +51,15 @@ SET(test_runner_SRCS
test_apetag.cpp
test_wav.cpp
test_wavpack.cpp
test_mp4.cpp
test_mp4item.cpp
test_mp4coverart.cpp
test_asf.cpp
test_mod.cpp
test_s3m.cpp
test_it.cpp
test_xm.cpp
)
IF(WITH_MP4)
SET(test_runner_SRCS ${test_runner_SRCS}
test_mp4.cpp
test_mp4item.cpp
test_mp4coverart.cpp
)
ENDIF(WITH_MP4)
IF(WITH_ASF)
SET(test_runner_SRCS ${test_runner_SRCS} test_asf.cpp)
ENDIF(WITH_ASF)
ADD_EXECUTABLE(test_runner ${test_runner_SRCS})
TARGET_LINK_LIBRARIES(test_runner tag ${CPPUNIT_LIBRARIES})

View File

@ -16,9 +16,7 @@ using namespace TagLib;
class TestFileRef : public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE(TestFileRef);
#ifdef TAGLIB_WITH_ASF
CPPUNIT_TEST(testASF);
#endif
CPPUNIT_TEST(testMusepack);
CPPUNIT_TEST(testVorbis);
CPPUNIT_TEST(testSpeex);
@ -26,11 +24,9 @@ class TestFileRef : public CppUnit::TestFixture
CPPUNIT_TEST(testMP3);
CPPUNIT_TEST(testOGA_FLAC);
CPPUNIT_TEST(testOGA_Vorbis);
#ifdef TAGLIB_WITH_MP4
CPPUNIT_TEST(testMP4_1);
CPPUNIT_TEST(testMP4_2);
CPPUNIT_TEST(testMP4_3);
#endif
CPPUNIT_TEST(testTrueAudio);
CPPUNIT_TEST(testAPE);
CPPUNIT_TEST_SUITE_END();
@ -86,12 +82,10 @@ public:
fileRefSave("click", ".mpc");
}
#ifdef TAGLIB_WITH_ASF
void testASF()
{
fileRefSave("silence-1", ".wma");
}
#endif
void testVorbis()
{
@ -118,7 +112,6 @@ public:
fileRefSave("empty", ".tta");
}
#ifdef TAGLIB_WITH_MP4
void testMP4_1()
{
fileRefSave("has-tags", ".m4a");
@ -133,7 +126,6 @@ public:
{
fileRefSave("no-tags", ".3g2");
}
#endif
void testOGA_FLAC()
{