It's not detected properly depending on the environment.
message(FATAL_ERROR "TagLib requires that double is 64-bit wide.")
endif()
-# Determine whether Boost "header-only" libraries are installed.
-
-find_package(Boost)
-if(Boost_FOUND)
- set(Boost_VERSION "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
-endif()
-
# Determine which kind of atomic operations your compiler supports.
check_cxx_source_compiles("
# Determine which kind of byte swap functions your compiler supports.
-if(Boost_FOUND AND NOT (Boost_VERSION VERSION_LESS "1.58.0"))
- set(HAVE_BOOST_BYTESWAP 1)
-endif()
+check_cxx_source_compiles("
+ int main() {
+ __builtin_bswap16(0);
+ __builtin_bswap32(0);
+ __builtin_bswap64(0);
+ return 0;
+ }
+" HAVE_GCC_BYTESWAP)
-if(NOT HAVE_BOOST_BYTESWAP)
+if(NOT HAVE_GCC_BYTESWAP)
check_cxx_source_compiles("
+ #include <byteswap.h>
int main() {
- __builtin_bswap16(0);
- __builtin_bswap32(0);
- __builtin_bswap64(0);
+ __bswap_16(0);
+ __bswap_32(0);
+ __bswap_64(0);
return 0;
}
- " HAVE_GCC_BYTESWAP)
+ " HAVE_GLIBC_BYTESWAP)
- if(NOT HAVE_GCC_BYTESWAP)
+ if(NOT HAVE_GLIBC_BYTESWAP)
check_cxx_source_compiles("
- #include <byteswap.h>
+ #include <stdlib.h>
int main() {
- __bswap_16(0);
- __bswap_32(0);
- __bswap_64(0);
+ _byteswap_ushort(0);
+ _byteswap_ulong(0);
+ _byteswap_uint64(0);
return 0;
}
- " HAVE_GLIBC_BYTESWAP)
+ " HAVE_MSC_BYTESWAP)
- if(NOT HAVE_GLIBC_BYTESWAP)
+ if(NOT HAVE_MSC_BYTESWAP)
check_cxx_source_compiles("
- #include <stdlib.h>
+ #include <libkern/OSByteOrder.h>
int main() {
- _byteswap_ushort(0);
- _byteswap_ulong(0);
- _byteswap_uint64(0);
+ OSSwapInt16(0);
+ OSSwapInt32(0);
+ OSSwapInt64(0);
return 0;
}
- " HAVE_MSC_BYTESWAP)
+ " HAVE_MAC_BYTESWAP)
- if(NOT HAVE_MSC_BYTESWAP)
+ if(NOT HAVE_MAC_BYTESWAP)
check_cxx_source_compiles("
- #include <libkern/OSByteOrder.h>
+ #include <sys/endian.h>
int main() {
- OSSwapInt16(0);
- OSSwapInt32(0);
- OSSwapInt64(0);
+ swap16(0);
+ swap32(0);
+ swap64(0);
return 0;
}
- " HAVE_MAC_BYTESWAP)
-
- if(NOT HAVE_MAC_BYTESWAP)
- check_cxx_source_compiles("
- #include <sys/endian.h>
- int main() {
- swap16(0);
- swap32(0);
- swap64(0);
- return 0;
- }
- " HAVE_OPENBSD_BYTESWAP)
- endif()
+ " HAVE_OPENBSD_BYTESWAP)
endif()
endif()
endif()
/* config.h. Generated by cmake from config.h.cmake */
/* Defined if your compiler supports some byte swap functions */
-#cmakedefine HAVE_BOOST_BYTESWAP 1
#cmakedefine HAVE_GCC_BYTESWAP 1
#cmakedefine HAVE_GLIBC_BYTESWAP 1
#cmakedefine HAVE_MSC_BYTESWAP 1
include_directories(${ZLIB_SOURCE})
endif()
-if(HAVE_BOOST_ATOMIC OR HAVE_BOOST_BYTESWAP)
+if(HAVE_BOOST_ATOMIC)
include_directories(${Boost_INCLUDE_DIR})
endif()
# include <config.h>
#endif
-#if defined(HAVE_BOOST_BYTESWAP)
-# include <boost/endian/conversion.hpp>
-#elif defined(HAVE_MSC_BYTESWAP)
+#if defined(HAVE_MSC_BYTESWAP)
# include <stdlib.h>
#elif defined(HAVE_GLIBC_BYTESWAP)
# include <byteswap.h>
*/
inline unsigned short byteSwap(unsigned short x)
{
-#if defined(HAVE_BOOST_BYTESWAP)
-
- return boost::endian::endian_reverse(static_cast<uint16_t>(x));
-
-#elif defined(HAVE_GCC_BYTESWAP)
+#if defined(HAVE_GCC_BYTESWAP)
return __builtin_bswap16(x);
*/
inline unsigned int byteSwap(unsigned int x)
{
-#if defined(HAVE_BOOST_BYTESWAP)
-
- return boost::endian::endian_reverse(static_cast<uint32_t>(x));
-
-#elif defined(HAVE_GCC_BYTESWAP)
+#if defined(HAVE_GCC_BYTESWAP)
return __builtin_bswap32(x);
*/
inline unsigned long long byteSwap(unsigned long long x)
{
-#if defined(HAVE_BOOST_BYTESWAP)
-
- return boost::endian::endian_reverse(static_cast<uint64_t>(x));
-
-#elif defined(HAVE_GCC_BYTESWAP)
+#if defined(HAVE_GCC_BYTESWAP)
return __builtin_bswap64(x);