]> granicus.if.org Git - taglib/commitdiff
Separated public and private config.h
authorTsuda Kageyu <tsuda.kageyu@gmail.com>
Fri, 3 May 2013 02:44:36 +0000 (11:44 +0900)
committerTsuda Kageyu <tsuda.kageyu@gmail.com>
Fri, 3 May 2013 02:44:36 +0000 (11:44 +0900)
CMakeLists.txt
ConfigureChecks.cmake
config.h.cmake [new file with mode: 0644]
taglib/mpeg/id3v2/id3v2frame.cpp
taglib/mpeg/id3v2/id3v2framefactory.cpp
taglib/taglib_config.h.cmake
taglib/toolkit/taglib.h
taglib/toolkit/tbytevector.cpp
taglib/toolkit/tstring.cpp
tests/utils.h

index 5d1dc6865455c2b36b68ce85e8e2acc2564b300f..bbcf8d898e004f303df4c416bb6e54ed4919d484 100755 (executable)
@@ -21,7 +21,7 @@ option(BUILD_EXAMPLES "Build the examples"  OFF)
 
 option(NO_ITUNES_HACKS "Disable workarounds for iTunes bugs"  OFF)
 
-set(TAGLIB_TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests/")
+set(TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests/")
 
 ## the following are directories where stuff will be installed to
 set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)")
@@ -81,6 +81,7 @@ if(NOT WIN32 AND NOT BUILD_FRAMEWORK)
 endif()
 
 include_directories(${CMAKE_CURRENT_BINARY_DIR})
+configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
 
 if(WITH_ASF)
   set(TAGLIB_WITH_ASF TRUE)
index bda45fe17b1abe52eee926163551988090b33706..b2dcd9b5132798b7bbe67e4324804cfe7f267c4b 100644 (file)
@@ -31,10 +31,12 @@ endif()
 
 # Determine the CPU byte order.
 
-test_big_endian(TAGLIB_BIG_ENDIAN)
+test_big_endian(IS_BIG_ENDIAN)
 
-if(NOT TAGLIB_BIG_ENDIAN)
-  set(TAGLIB_LITTLE_ENDIAN 1)
+if(NOT IS_BIG_ENDIAN)
+  set(SYSTEM_BYTEORDER 1)
+else()
+  set(SYSTEM_BYTEORDER 2)
 endif()
 
 # Determine if your compiler supports std::wstring.
@@ -127,23 +129,23 @@ check_cxx_source_compiles("
     __builtin_bswap16(0);
     return 0; 
   }
-" TAGLIB_HAVE_GCC_BYTESWAP_16)
+" HAVE_GCC_BYTESWAP_16)
 
 check_cxx_source_compiles("
   int main() {
     __builtin_bswap32(0);
     return 0; 
   }
-" TAGLIB_HAVE_GCC_BYTESWAP_32)
+" HAVE_GCC_BYTESWAP_32)
 
 check_cxx_source_compiles("
   int main() {
     __builtin_bswap64(0);
     return 0; 
   }
-" TAGLIB_HAVE_GCC_BYTESWAP_64)
+" HAVE_GCC_BYTESWAP_64)
 
-if(NOT TAGLIB_HAVE_GCC_BYTESWAP_16 OR NOT TAGLIB_HAVE_GCC_BYTESWAP_32 OR NOT TAGLIB_HAVE_GCC_BYTESWAP_64)
+if(NOT HAVE_GCC_BYTESWAP_16 OR NOT HAVE_GCC_BYTESWAP_32 OR NOT HAVE_GCC_BYTESWAP_64)
   check_cxx_source_compiles("
     #include <byteswap.h>
     int main() {
@@ -152,9 +154,9 @@ if(NOT TAGLIB_HAVE_GCC_BYTESWAP_16 OR NOT TAGLIB_HAVE_GCC_BYTESWAP_32 OR NOT TAG
       __bswap_64(0);
       return 0; 
     }
-  " TAGLIB_HAVE_GLIBC_BYTESWAP)
+  " HAVE_GLIBC_BYTESWAP)
 
-  if(NOT TAGLIB_HAVE_GLIBC_BYTESWAP)
+  if(NOT HAVE_GLIBC_BYTESWAP)
     check_cxx_source_compiles("
       #include <stdlib.h>
       int main() {
@@ -163,9 +165,9 @@ if(NOT TAGLIB_HAVE_GCC_BYTESWAP_16 OR NOT TAGLIB_HAVE_GCC_BYTESWAP_32 OR NOT TAG
         _byteswap_uint64(0);
         return 0; 
       }
-    " TAGLIB_HAVE_MSC_BYTESWAP)
+    " HAVE_MSC_BYTESWAP)
 
-    if(NOT TAGLIB_HAVE_MSC_BYTESWAP)
+    if(NOT HAVE_MSC_BYTESWAP)
       check_cxx_source_compiles("
         #include <libkern/OSByteOrder.h>
         int main() {
@@ -174,9 +176,9 @@ if(NOT TAGLIB_HAVE_GCC_BYTESWAP_16 OR NOT TAGLIB_HAVE_GCC_BYTESWAP_32 OR NOT TAG
           OSSwapInt64(0);
           return 0; 
         }
-      " TAGLIB_HAVE_MAC_BYTESWAP)
+      " HAVE_MAC_BYTESWAP)
 
-      if(NOT TAGLIB_HAVE_MAC_BYTESWAP)
+      if(NOT HAVE_MAC_BYTESWAP)
         check_cxx_source_compiles("
           #include <sys/endian.h>
           int main() {
@@ -185,7 +187,7 @@ if(NOT TAGLIB_HAVE_GCC_BYTESWAP_16 OR NOT TAGLIB_HAVE_GCC_BYTESWAP_32 OR NOT TAG
             swap64(0);
             return 0; 
           }
-        " TAGLIB_HAVE_OPENBSD_BYTESWAP)
+        " HAVE_OPENBSD_BYTESWAP)
       endif()
     endif()
   endif()
@@ -199,15 +201,15 @@ check_cxx_source_compiles("
     std::codecvt_utf8_utf16<wchar_t> x; 
     return 0; 
   }
-" TAGLIB_HAVE_STD_CODECVT)
+" HAVE_STD_CODECVT)
 
 # Check for libz using the cmake supplied FindZLIB.cmake
 
 find_package(ZLIB)
 if(ZLIB_FOUND)
-  set(TAGLIB_HAVE_ZLIB 1)
+  set(HAVE_ZLIB 1)
 else()
-  set(TAGLIB_HAVE_ZLIB 0)
+  set(HAVE_ZLIB 0)
 endif()
 
 
diff --git a/config.h.cmake b/config.h.cmake
new file mode 100644 (file)
index 0000000..155fea6
--- /dev/null
@@ -0,0 +1,22 @@
+/* config.h. Generated by cmake from config.h.cmake */
+
+/* Indicates the endianness of your target system */
+/* 1 if little-endian, 2 if big-endiann. */
+#cmakedefine   SYSTEM_BYTEORDER ${SYSTEM_BYTEORDER}
+
+/* Defined if your compiler supports some byte swap functions */
+#cmakedefine   HAVE_GCC_BYTESWAP_16 1
+#cmakedefine   HAVE_GCC_BYTESWAP_32 1
+#cmakedefine   HAVE_GCC_BYTESWAP_64 1
+#cmakedefine   HAVE_GLIBC_BYTESWAP 1
+#cmakedefine   HAVE_MSC_BYTESWAP 1
+#cmakedefine   HAVE_MAC_BYTESWAP 1
+#cmakedefine   HAVE_OPENBSD_BYTESWAP 1
+
+/* Defined if your compiler supports codecvt */
+#cmakedefine   HAVE_STD_CODECVT 1
+
+/* Defined if you have libz */
+#cmakedefine   HAVE_ZLIB 1
+
+#cmakedefine TESTS_DIR "@TESTS_DIR@"
index e79c47e346e73e4c96fbeffd84a4e5b26e3d271a..424ac2d27561efe61102a3fd9483a7db5d154221 100644 (file)
  *   http://www.mozilla.org/MPL/                                           *
  ***************************************************************************/
 
+#include "config.h"
 #include "taglib_config.h"
 
-#if TAGLIB_HAVE_ZLIB
+#if HAVE_ZLIB
 #include <zlib.h>
 #endif
 
@@ -248,7 +249,7 @@ ByteVector Frame::fieldData(const ByteVector &frameData) const
     frameDataOffset += 4;
   }
 
-#if TAGLIB_HAVE_ZLIB
+#if HAVE_ZLIB
   if(d->header->compression() &&
      !d->header->encryption())
   {
index d5a173c7b4f6d285b681272d95d4f9f582004237..3138f90ad3be2e074dad4a3d80e78838466584b3 100644 (file)
@@ -23,6 +23,7 @@
  *   http://www.mozilla.org/MPL/                                           *
  ***************************************************************************/
 
+#include "config.h"
 #include "taglib_config.h"
 #include <tdebug.h>
 
@@ -133,7 +134,7 @@ Frame *FrameFactory::createFrame(const ByteVector &origData, Header *tagHeader)
   // TagLib doesn't mess with encrypted frames, so just treat them
   // as unknown frames.
 
-#if !defined(TAGLIB_HAVE_ZLIB) || TAGLIB_HAVE_ZLIB == 0
+#if !defined(HAVE_ZLIB) || HAVE_ZLIB == 0
   if(header->compression()) {
     debug("Compressed frames are currently not supported.");
     return new UnknownFrame(data, header);
index ce8c6112e3009290b16523c4fa058aaac2d81cbb..633fad28ac680ed70e1cef54b4ac28a374b00018 100644 (file)
@@ -1,9 +1,5 @@
 /* taglib_config.h. Generated by cmake from taglib_config.h.cmake */
 
-/* Indicates the endianness of your target system */
-#cmakedefine   TAGLIB_LITTLE_ENDIAN 1
-#cmakedefine   TAGLIB_BIG_ENDIAN 1
-
 /* Defined if your compiler supports std::wstring */
 #cmakedefine   TAGLIB_HAVE_STD_WSTRING 1
 
 #cmakedefine   TAGLIB_HAVE_WIN_ATOMIC 1
 #cmakedefine   TAGLIB_HAVE_IA64_ATOMIC 1
 
-/* Defined if your compiler supports some byte swap functions */
-#cmakedefine   TAGLIB_HAVE_GCC_BYTESWAP_16 1
-#cmakedefine   TAGLIB_HAVE_GCC_BYTESWAP_32 1
-#cmakedefine   TAGLIB_HAVE_GCC_BYTESWAP_64 1
-#cmakedefine   TAGLIB_HAVE_GLIBC_BYTESWAP 1
-#cmakedefine   TAGLIB_HAVE_MSC_BYTESWAP 1
-#cmakedefine   TAGLIB_HAVE_MAC_BYTESWAP 1
-#cmakedefine   TAGLIB_HAVE_OPENBSD_BYTESWAP 1
-
-/* Defined if your compiler supports codecvt */
-#cmakedefine   TAGLIB_HAVE_STD_CODECVT 1
-
-/* Defined if you have libz */
-#cmakedefine   TAGLIB_HAVE_ZLIB 1
-
 #define   TAGLIB_WITH_ASF 1
 #define   TAGLIB_WITH_MP4 1
 
-#cmakedefine TAGLIB_TESTS_DIR "@TESTS_DIR@"
index 044d5edae95214d8db6280c1ea324be6140192e0..a80c02e497c31817c0649d475b7a894ba79c4d8c 100755 (executable)
 # define TAGLIB_ATOMIC_DEC(x) (--x)
 #endif
 
-// Optimized byte swap functions.
-
-#if defined(TAGLIB_HAVE_MSC_BYTESWAP)
-# include <stdlib.h>
-#elif defined(TAGLIB_HAVE_GLIBC_BYTESWAP)
-# include <byteswap.h>
-#elif defined(TAGLIB_HAVE_MAC_BYTESWAP)
-# include <libkern/OSByteOrder.h>
-#elif defined(TAGLIB_HAVE_OPENBSD_BYTESWAP)
-# include <sys/endian.h>
-#endif
-
-#if defined(TAGLIB_HAVE_GCC_BYTESWAP_16)
-# define TAGLIB_BYTESWAP_16(x) __builtin_bswap16(x)
-#elif defined(TAGLIB_HAVE_MSC_BYTESWAP)
-# define TAGLIB_BYTESWAP_16(x) _byteswap_ushort(x)
-#elif defined(TAGLIB_HAVE_GLIBC_BYTESWAP)
-# define TAGLIB_BYTESWAP_16(x) __bswap_16(x)
-#elif defined(TAGLIB_HAVE_MAC_BYTESWAP)
-# define TAGLIB_BYTESWAP_16(x) OSSwapInt16(x)
-#elif defined(TAGLIB_HAVE_OPENBSD_BYTESWAP)
-# define TAGLIB_BYTESWAP_16(x) swap16(x)
-#endif
-
-#if defined(TAGLIB_HAVE_GCC_BYTESWAP_32)
-# define TAGLIB_BYTESWAP_32(x) __builtin_bswap32(x)
-#elif defined(TAGLIB_HAVE_MSC_BYTESWAP)
-# define TAGLIB_BYTESWAP_32(x) _byteswap_ulong(x)
-#elif defined(TAGLIB_HAVE_GLIBC_BYTESWAP)
-# define TAGLIB_BYTESWAP_32(x) __bswap_32(x)
-#elif defined(TAGLIB_HAVE_MAC_BYTESWAP)
-# define TAGLIB_BYTESWAP_32(x) OSSwapInt32(x)
-#elif defined(TAGLIB_HAVE_OPENBSD_BYTESWAP)
-# define TAGLIB_BYTESWAP_32(x) swap32(x)
-#endif
-
-#if defined(TAGLIB_HAVE_GCC_BYTESWAP_64)
-# define TAGLIB_BYTESWAP_64(x) __builtin_bswap64(x)
-#elif defined(TAGLIB_HAVE_MSC_BYTESWAP)
-# define TAGLIB_BYTESWAP_64(x) _byteswap_uint64(x)
-#elif defined(TAGLIB_HAVE_GLIBC_BYTESWAP)
-# define TAGLIB_BYTESWAP_64(x) __bswap_64(x)
-#elif defined(TAGLIB_HAVE_MAC_BYTESWAP)
-# define TAGLIB_BYTESWAP_64(x) OSSwapInt64(x)
-#elif defined(TAGLIB_HAVE_OPENBSD_BYTESWAP)
-# define TAGLIB_BYTESWAP_64(x) swap64(x)
-#endif
-
 //! A namespace for all TagLib related classes and functions
 
 /*!
index 06f38b6eebdf655cb5d61a589adc3877ab740028..adada716354533605fe6f535440be5b4ea4d9cbc 100644 (file)
  *   http://www.mozilla.org/MPL/                                           *
  ***************************************************************************/
 
+#include "config.h"
+
 #include <iostream>
 #include <cstdio>
 #include <cstring>
+
+#if defined(HAVE_MSC_BYTESWAP)
+# include <stdlib.h>
+#elif defined(HAVE_GLIBC_BYTESWAP)
+# include <byteswap.h>
+#elif defined(HAVE_MAC_BYTESWAP)
+# include <libkern/OSByteOrder.h>
+#elif defined(HAVE_OPENBSD_BYTESWAP)
+# include <sys/endian.h>
+#endif
+
 #include <tstring.h>
 #include <tdebug.h>
 
@@ -185,9 +198,25 @@ T byteSwap(T x)
 template <>
 ushort byteSwap<ushort>(ushort x)
 {
-#ifdef TAGLIB_BYTESWAP_16
+#if defined(HAVE_GCC_BYTESWAP_16)
+
+  return __builtin_bswap16(x);
+
+#elif defined(HAVE_MSC_BYTESWAP)
+
+  return _byteswap_ushort(x);
 
-  return TAGLIB_BYTESWAP_16(x);
+#elif defined(HAVE_GLIBC_BYTESWAP)
+
+  return __bswap_16(x);
+
+#elif defined(HAVE_MAC_BYTESWAP)
+
+  return OSSwapInt16(x);
+
+#elif defined(HAVE_OPENBSD_BYTESWAP)
+
+  return swap16(x);
 
 #else
 
@@ -199,9 +228,25 @@ ushort byteSwap<ushort>(ushort x)
 template <>
 uint byteSwap<uint>(uint x)
 {
-#ifdef TAGLIB_BYTESWAP_32
+#if defined(HAVE_GCC_BYTESWAP_32)
+
+  return __builtin_bswap32(x);
+
+#elif defined(HAVE_MSC_BYTESWAP)
 
-  return TAGLIB_BYTESWAP_32(x);
+  return _byteswap_ulong(x);
+
+#elif defined(HAVE_GLIBC_BYTESWAP)
+
+  return __bswap_32(x);
+
+#elif defined(HAVE_MAC_BYTESWAP)
+
+  return OSSwapInt32(x);
+
+#elif defined(HAVE_OPENBSD_BYTESWAP)
+
+  return swap32(x);
 
 #else
 
@@ -216,9 +261,25 @@ uint byteSwap<uint>(uint x)
 template <>
 ulonglong byteSwap<ulonglong>(ulonglong x)
 {
-#ifdef TAGLIB_BYTESWAP_64
+#if defined(HAVE_GCC_BYTESWAP_64)
+
+  return __builtin_bswap64(x);
+
+#elif defined(HAVE_MSC_BYTESWAP)
+
+  return _byteswap_uint64(x);
+
+#elif defined(HAVE_GLIBC_BYTESWAP)
+
+  return __bswap_64(x);
+
+#elif defined(HAVE_MAC_BYTESWAP)
+
+  return OSSwapInt64(x);
+
+#elif defined(HAVE_OPENBSD_BYTESWAP)
 
-  return TAGLIB_BYTESWAP_64(x);
+  return swap64(x);
 
 #else
 
@@ -246,7 +307,7 @@ T toNumber(const ByteVector &v, size_t offset, bool mostSignificantByteFirst)
   T tmp;
   ::memcpy(&tmp, v.data() + offset, sizeof(T));
 
-#ifdef TAGLIB_LITTLE_ENDIAN
+#if SYSTEM_BYTEORDER == 1
   const bool swap = mostSignificantByteFirst;
 #else
   const bool swap != mostSignificantByteFirst;
@@ -279,7 +340,7 @@ ByteVector fromNumber(T value, bool mostSignificantByteFirst)
 {
   const size_t size = sizeof(T);
 
-#ifdef TAGLIB_LITTLE_ENDIAN
+#if SYSTEM_BYTEORDER == 1
   const bool swap = mostSignificantByteFirst;
 #else
   const bool swap != mostSignificantByteFirst;
index 7d5535e7a9f098c29e4bdf24aeddf8005e5bf41c..acf4847fb8e2b310135b4d51f75e3565f3f6f3d4 100644 (file)
@@ -25,6 +25,8 @@
 
 // This class assumes that std::basic_string<T> has a contiguous and null-terminated buffer.
 
+#include "config.h"
+
 #include "tstring.h"
 #include "tdebug.h"
 #include "tstringlist.h"
 #include <iostream>
 #include <string.h>
 
-#ifdef TAGLIB_HAVE_STD_CODECVT
+#if defined(HAVE_MSC_BYTESWAP)
+# include <stdlib.h>
+#elif defined(HAVE_GLIBC_BYTESWAP)
+# include <byteswap.h>
+#elif defined(HAVE_MAC_BYTESWAP)
+# include <libkern/OSByteOrder.h>
+#elif defined(HAVE_OPENBSD_BYTESWAP)
+# include <sys/endian.h>
+#endif
+
+#ifdef HAVE_STD_CODECVT
 # include <codecvt>
 #else
 # include "unicode.h"
@@ -42,13 +54,29 @@ namespace
 {
   inline TagLib::ushort byteSwap(TagLib::ushort x)
   {
-#ifdef TAGLIB_BYTESWAP_16
+#if defined(HAVE_GCC_BYTESWAP_16)
+
+    return __builtin_bswap16(x);
+
+#elif defined(HAVE_MSC_BYTESWAP)
+
+    return _byteswap_ushort(x);
+
+#elif defined(HAVE_GLIBC_BYTESWAP)
+
+    return __bswap_16(x);
+
+#elif defined(HAVE_MAC_BYTESWAP)
+
+    return OSSwapInt16(x);
+
+#elif defined(HAVE_OPENBSD_BYTESWAP)
 
-    return TAGLIB_BYTESWAP_16(x);
+    return swap16(x);
 
 #else
 
-    return((x >> 8) & 0xff) | ((x & 0xff) << 8);
+    return ((x >> 8) & 0xff) | ((x & 0xff) << 8);
 
 #endif
   }
@@ -60,7 +88,7 @@ namespace
 
   void UTF16toUTF8(const wchar_t *src, size_t srcLength, char *dst, size_t dstLength)
   {
-#ifdef TAGLIB_HAVE_STD_CODECVT
+#ifdef HAVE_STD_CODECVT
 
     typedef std::codecvt_utf8_utf16<wchar_t> utf8_utf16_t;
 
@@ -106,7 +134,7 @@ namespace
 
   void UTF8toUTF16(const char *src, size_t srcLength, wchar_t *dst, size_t dstLength)
   {
-#ifdef TAGLIB_HAVE_STD_CODECVT
+#ifdef HAVE_STD_CODECVT
 
     typedef std::codecvt_utf8_utf16<wchar_t> utf8_utf16_t;
 
@@ -840,7 +868,7 @@ void String::copyFromUTF16(const char *s, size_t length, Type t)
   }
 }
 
-#ifdef TAGLIB_LITTLE_ENDIAN
+#if SYSTEM_BYTEORDER == 1
 
 const String::Type String::WCharByteOrder = String::UTF16LE;
 
index 3af9b2f6073308fdb8364a55c4356c65ba1e0d45..a2d997eb2a3f1b60e01702733bfe2a5dd6238012 100644 (file)
@@ -1,4 +1,4 @@
-#include "taglib_config.h"
+#include "config.h"
 
 #ifdef _WIN32
 #include <windows.h>
@@ -17,7 +17,7 @@ using namespace std;
 
 inline string testFilePath(const string &filename)
 {
-  return string(TAGLIB_TESTS_DIR "data/") + filename;
+  return string(TESTS_DIR "data/") + filename;
 }
 
 #define TEST_FILE_PATH_C(f) testFilePath(f).c_str()