homebrew-core/Formula/mp4v2.rb

145 lines
5.3 KiB
Ruby

require 'formula'
class Mp4v2 < Formula
homepage 'http://code.google.com/p/mp4v2/'
url 'http://mp4v2.googlecode.com/files/mp4v2-1.9.1.tar.bz2'
sha1 'c62d00e99b65efce16accd83c501fb8a57206aa8'
devel do
url 'http://mp4v2.googlecode.com/files/mp4v2-trunk-r479.tar.bz2'
sha1 '1999b805d5e66dffbd95ec3a563758650e23bf60'
version 'r479'
end
def patches
# Fixes compile error on Lion w/Clang using a patch from svn:
# http://code.google.com/p/mp4v2/source/detail?r=442
# It is inline because there's no direct link to the raw patch.
DATA unless ARGV.build_devel?
end
def install
system "./configure", "--disable-debug", "--prefix=#{prefix}"
system "make"
system "make install"
system "make install-man"
end
end
__END__
--- a/src/bmff/typebmff.cpp 2009-07-13 16:07:10.000000000 -0700
+++ b/src/bmff/typebmff.cpp 2012-03-28 11:05:48.000000000 -0700
@@ -23,19 +23,12 @@
#include "impl.h"
-// VStudio idiocy prevents defining template instanced static data
-// in a namespace. Workaround it by defining in global scope.
-// Other platforms will continue to put things in the proper namespace.
-#if defined( _MSC_VER )
-using namespace mp4v2::impl::bmff;
-#else
-namespace mp4v2 { namespace impl { namespace bmff {
-#endif
+namespace mp4v2 { namespace impl {
///////////////////////////////////////////////////////////////////////////////
template <>
-const EnumLanguageCode::Entry EnumLanguageCode::data[] = {
+const bmff::EnumLanguageCode::Entry bmff::EnumLanguageCode::data[] = {
{ mp4v2::impl::bmff::ILC_AAR, "aar", "Afar" },
{ mp4v2::impl::bmff::ILC_ABK, "abk", "Abkhazian" },
{ mp4v2::impl::bmff::ILC_ACE, "ace", "Achinese" },
@@ -526,9 +519,7 @@
///////////////////////////////////////////////////////////////////////////////
-#if defined( _MSC_VER )
-namespace mp4v2 { namespace impl { namespace bmff {
-#endif
+namespace bmff {
///////////////////////////////////////////////////////////////////////////////
--- a/src/itmf/type.cpp 2009-07-13 16:07:08.000000000 -0700
+++ b/src/itmf/type.cpp 2012-03-28 11:30:25.000000000 -0700
@@ -24,19 +24,12 @@
#include "impl.h"
-// VStudio idiocy prevents defining template instanced static data
-// in a namespace. Workaround it by defining in global scope.
-// Other platforms will continue to put things in the proper namespace.
-#if defined( _MSC_VER )
-using namespace mp4v2::impl::itmf;
-#else
-namespace mp4v2 { namespace impl { namespace itmf {
-#endif
+namespace mp4v2 { namespace impl {
///////////////////////////////////////////////////////////////////////////////
template <>
-const EnumBasicType::Entry EnumBasicType::data[] = {
+const itmf::EnumBasicType::Entry itmf::EnumBasicType::data[] = {
{ mp4v2::impl::itmf::BT_IMPLICIT, "implicit", "implicit" },
{ mp4v2::impl::itmf::BT_UTF8, "utf8", "UTF-8" },
{ mp4v2::impl::itmf::BT_UTF16, "utf16", "UTF-16" },
@@ -64,7 +57,7 @@
///////////////////////////////////////////////////////////////////////////////
template <>
-const EnumGenreType::Entry EnumGenreType::data[] = {
+const itmf::EnumGenreType::Entry itmf::EnumGenreType::data[] = {
{ mp4v2::impl::itmf::GENRE_BLUES, "blues", "Blues" },
{ mp4v2::impl::itmf::GENRE_CLASSIC_ROCK, "classicrock", "Classic Rock" },
{ mp4v2::impl::itmf::GENRE_COUNTRY, "country", "Country" },
@@ -200,7 +193,7 @@
///////////////////////////////////////////////////////////////////////////////
template <>
-const EnumStikType::Entry EnumStikType::data[] = {
+const itmf::EnumStikType::Entry itmf::EnumStikType::data[] = {
{ mp4v2::impl::itmf::STIK_OLD_MOVIE, "oldmovie", "Movie" },
{ mp4v2::impl::itmf::STIK_NORMAL, "normal", "Normal" },
{ mp4v2::impl::itmf::STIK_AUDIOBOOK, "audiobook", "Audio Book" },
@@ -216,7 +209,7 @@
///////////////////////////////////////////////////////////////////////////////
template <>
-const EnumAccountType::Entry EnumAccountType::data[] = {
+const itmf::EnumAccountType::Entry itmf::EnumAccountType::data[] = {
{ mp4v2::impl::itmf::AT_ITUNES, "itunes", "iTunes" },
{ mp4v2::impl::itmf::AT_AOL, "aol", "AOL" },
@@ -226,7 +219,7 @@
///////////////////////////////////////////////////////////////////////////////
template <>
-const EnumCountryCode::Entry EnumCountryCode::data[] = {
+const itmf::EnumCountryCode::Entry itmf::EnumCountryCode::data[] = {
{ mp4v2::impl::itmf::CC_USA, "usa", "United States" },
{ mp4v2::impl::itmf::CC_USA, "fra", "France" },
{ mp4v2::impl::itmf::CC_DEU, "ger", "Germany" },
@@ -256,7 +249,7 @@
///////////////////////////////////////////////////////////////////////////////
template <>
-const EnumContentRating::Entry EnumContentRating::data[] = {
+const itmf::EnumContentRating::Entry itmf::EnumContentRating::data[] = {
{ mp4v2::impl::itmf::CR_NONE, "none", "None" },
{ mp4v2::impl::itmf::CR_CLEAN, "clean", "Clean" },
{ mp4v2::impl::itmf::CR_EXPLICIT, "explicit", "Explicit" },
@@ -266,9 +259,7 @@
///////////////////////////////////////////////////////////////////////////////
-#if defined( _MSC_VER )
-namespace mp4v2 { namespace impl { namespace itmf {
-#endif
+namespace itmf {
///////////////////////////////////////////////////////////////////////////////