Commit8f469d97e2introduced SSSE3 fast paths that are gated by __SSE3__ macro checks and the <x86intrin.h> header, neither of which exists in Visual Studio. This commit adds logic for detecting SSSE3 compiler support that works for all compilers supported by the open source release. The commit also replaces the header with <tmmintrin.h>, which only defines intrinsics supported by SSSE3 and below. This should help flag any use of SIMD instructions that require more advanced SSE support, so the uses can be gated by checks that also work in the open source release. Last, this commit requires C++11 support for the open source build. This is needed by the alignas specifier, which was also introduced in commit8f469d97e2.
66 lines
2.1 KiB
C
66 lines
2.1 KiB
C
#ifndef THIRD_PARTY_SNAPPY_OPENSOURCE_CMAKE_CONFIG_H_
|
|
#define THIRD_PARTY_SNAPPY_OPENSOURCE_CMAKE_CONFIG_H_
|
|
|
|
/* Define to 1 if the compiler supports __builtin_ctz and friends. */
|
|
#cmakedefine HAVE_BUILTIN_CTZ 1
|
|
|
|
/* Define to 1 if the compiler supports __builtin_expect. */
|
|
#cmakedefine HAVE_BUILTIN_EXPECT 1
|
|
|
|
/* Define to 1 if you have the <byteswap.h> header file. */
|
|
#cmakedefine HAVE_BYTESWAP_H 1
|
|
|
|
/* Define to 1 if you have a definition for mmap() in <sys/mman.h>. */
|
|
#cmakedefine HAVE_FUNC_MMAP 1
|
|
|
|
/* Define to 1 if you have a definition for sysconf() in <unistd.h>. */
|
|
#cmakedefine HAVE_FUNC_SYSCONF 1
|
|
|
|
/* Define to 1 to use the gflags package for command-line parsing. */
|
|
#cmakedefine HAVE_GFLAGS 1
|
|
|
|
/* Define to 1 if you have Google Test. */
|
|
#cmakedefine HAVE_GTEST 1
|
|
|
|
/* Define to 1 if you have the `lzo2' library (-llzo2). */
|
|
#cmakedefine HAVE_LIBLZO2 1
|
|
|
|
/* Define to 1 if you have the `z' library (-lz). */
|
|
#cmakedefine HAVE_LIBZ 1
|
|
|
|
/* Define to 1 if you have the <stddef.h> header file. */
|
|
#cmakedefine HAVE_STDDEF_H 1
|
|
|
|
/* Define to 1 if you have the <stdint.h> header file. */
|
|
#cmakedefine HAVE_STDINT_H 1
|
|
|
|
/* Define to 1 if you have the <sys/endian.h> header file. */
|
|
#cmakedefine HAVE_SYS_ENDIAN_H 1
|
|
|
|
/* Define to 1 if you have the <sys/mman.h> header file. */
|
|
#cmakedefine HAVE_SYS_MMAN_H 1
|
|
|
|
/* Define to 1 if you have the <sys/resource.h> header file. */
|
|
#cmakedefine HAVE_SYS_RESOURCE_H 1
|
|
|
|
/* Define to 1 if you have the <sys/time.h> header file. */
|
|
#cmakedefine HAVE_SYS_TIME_H 1
|
|
|
|
/* Define to 1 if you have the <sys/uio.h> header file. */
|
|
#cmakedefine HAVE_SYS_UIO_H 1
|
|
|
|
/* Define to 1 if you have the <unistd.h> header file. */
|
|
#cmakedefine HAVE_UNISTD_H 1
|
|
|
|
/* Define to 1 if you have the <windows.h> header file. */
|
|
#cmakedefine HAVE_WINDOWS_H 1
|
|
|
|
/* Define to 1 if you target processors with SSSE3+ and have <tmmintrin.h>. */
|
|
#cmakedefine01 SNAPPY_HAVE_SSSE3
|
|
|
|
/* Define to 1 if your processor stores words with the most significant byte
|
|
first (like Motorola and SPARC, unlike Intel and VAX). */
|
|
#cmakedefine SNAPPY_IS_BIG_ENDIAN 1
|
|
|
|
#endif // THIRD_PARTY_SNAPPY_OPENSOURCE_CMAKE_CONFIG_H_
|