summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-05-21 12:28:47 -0400
committerMike Blumenkrantz <zmike@samsung.com>2019-05-21 12:28:47 -0400
commit1f0ae2e349b7fba7ca12c492cd451391eb0ced14 (patch)
tree74ca97c9e46411d7159f906f952992ab47941b55
parent5ea0195661e88395ee3e7384db7acc3f03d52dc1 (diff)
downloadefl-1f0ae2e349b7fba7ca12c492cd451391eb0ced14.tar.gz
eina: move builtin detection to eina_config.h
Summary: this means we don't need to handle this in the buildtool at all. Reviewers: vtorri, zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8553
-rw-r--r--src/lib/eina/eina_config.h.in20
-rw-r--r--src/lib/eina/eina_inline_cpu.x10
-rw-r--r--src/lib/eina/meson.build12
3 files changed, 18 insertions, 24 deletions
diff --git a/src/lib/eina/eina_config.h.in b/src/lib/eina/eina_config.h.in
index c040cc5341..7f81542a36 100644
--- a/src/lib/eina/eina_config.h.in
+++ b/src/lib/eina/eina_config.h.in
@@ -23,6 +23,14 @@
# include <Exotic.h>
#endif
+#ifdef __has_builtin
+# define EINA_HAS_BUILTIN(x) __has_builtin(x)
+#elif (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)))
+# define EINA_HAS_BUILTIN(x) 1
+#else
+# define EINA_HAS_BUILTIN(x) 0 // Compatibility for the rest of the world
+#endif
+
#ifdef EINA_MAGIC_DEBUG
# undef EINA_MAGIC_DEBUG
#endif
@@ -90,17 +98,23 @@
#ifdef EINA_HAVE_BSWAP16
# undef EINA_HAVE_BSWAP16
#endif
-@EINA_CONFIGURE_HAVE_BSWAP16@
+#if EINA_HAS_BUILTIN(__builtin_bswap16)
+# define EINA_HAVE_BSWAP16
+#endif
#ifdef EINA_HAVE_BSWAP32
# undef EINA_HAVE_BSWAP32
#endif
-@EINA_CONFIGURE_HAVE_BSWAP32@
+#if EINA_HAS_BUILTIN(__builtin_bswap32)
+# define EINA_HAVE_BSWAP32
+#endif
#ifdef EINA_HAVE_BSWAP64
# undef EINA_HAVE_BSWAP64
#endif
-@EINA_CONFIGURE_HAVE_BSWAP64@
+#if EINA_HAS_BUILTIN(__builtin_bswap64)
+# define EINA_HAVE_BSWAP64
+#endif
#ifdef EINA_HAVE_BYTESWAP_H
# undef EINA_HAVE_BYTESWAP_H
diff --git a/src/lib/eina/eina_inline_cpu.x b/src/lib/eina/eina_inline_cpu.x
index d26bdcce7c..035e5b188b 100644
--- a/src/lib/eina/eina_inline_cpu.x
+++ b/src/lib/eina/eina_inline_cpu.x
@@ -27,18 +27,10 @@
# include <byteswap.h>
#endif
-#ifdef __has_builtin
-# define EINA_HAS_BUILTIN(x) __has_builtin(x)
-#elif (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)))
-# define EINA_HAS_BUILTIN(x) 1
-#else
-# define EINA_HAS_BUILTIN(x) 0 // Compatibility for the rest of the world
-#endif
-
static inline unsigned short
eina_swap16(unsigned short x)
{
-#if defined EINA_HAVE_BSWAP16 && EINA_HAS_BUILTIN(__builtin_bswap16)
+#if defined EINA_HAVE_BSWAP16
return __builtin_bswap16(x);
#elif defined _MSC_VER /* Windows. Apparently in <stdlib.h>. */
return _byteswap_ushort(x);
diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build
index bfb484e877..e4bce4fc96 100644
--- a/src/lib/eina/meson.build
+++ b/src/lib/eina/meson.build
@@ -326,18 +326,6 @@ if cc.has_header('byteswap.h')
eina_config.set('EINA_HAVE_BYTESWAP_H', '1')
endif
-if cc.has_header_symbol('byteswap.h', 'bswap_16')
- eina_config.set('EINA_HAVE_BSWAP16', '1')
-endif
-
-if cc.has_header_symbol('byteswap.h', 'bswap_32')
- eina_config.set('EINA_HAVE_BSWAP32', '1')
-endif
-
-if cc.has_header_symbol('byteswap.h', 'bswap_64')
- eina_config.set('EINA_HAVE_BSWAP64', '1')
-endif
-
if cc.has_header_symbol('pthread.h', 'pthread_spin_init')
eina_config.set('EINA_HAVE_POSIX_SPINLOCK', '1')
endif