diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-03-28 12:41:04 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-03-28 12:41:04 +0400 |
commit | f0106d29858ff482acb1288d08d00be23754bdc5 (patch) | |
tree | db520352babbebdab73e14e3b8a9c895bb33d408 /extern | |
parent | 6babbf59bcd297213305bd285be2171fc16e9613 (diff) |
Unbreak carve build for clang
Based on D420
Diffstat (limited to 'extern')
-rw-r--r-- | extern/carve/include/carve/config.h | 18 | ||||
-rw-r--r-- | extern/carve/include/carve/mesh_ops.hpp | 2 | ||||
-rw-r--r-- | extern/carve/lib/triangulator.cpp | 18 | ||||
-rw-r--r-- | extern/carve/patches/clang_is_heap_fix.patch | 42 | ||||
-rw-r--r-- | extern/carve/patches/files/config.h | 18 | ||||
-rw-r--r-- | extern/carve/patches/series | 2 |
6 files changed, 57 insertions, 43 deletions
diff --git a/extern/carve/include/carve/config.h b/extern/carve/include/carve/config.h index fdae2d2843f..3533c1a6710 100644 --- a/extern/carve/include/carve/config.h +++ b/extern/carve/include/carve/config.h @@ -10,3 +10,21 @@ # define HAVE_STDINT_H #endif + +// Support for latest Clang/LLVM on FreeBSD which does have different libcxx. +// +// TODO(sergey): Move it some some more generic header with platform-specific +// declarations. + +// Indicates whether __is_heap is available +#undef HAVE_IS_HEAP + +#ifdef __GNUC__ +// NeyBSD doesn't have __is_heap +# ifndef __NetBSD__ +# define HAVE_IS_HEAP +# ifdef _LIBCPP_VERSION +# define __is_heap is_heap +# endif // _LIBCPP_VERSION +# endif // !__NetBSD__ +#endif // __GNUC__ diff --git a/extern/carve/include/carve/mesh_ops.hpp b/extern/carve/include/carve/mesh_ops.hpp index 02b1bde4e45..3b71feb0e6c 100644 --- a/extern/carve/include/carve/mesh_ops.hpp +++ b/extern/carve/include/carve/mesh_ops.hpp @@ -580,7 +580,7 @@ namespace carve { std::vector<VertexInfo *> queue; void checkheap() { -#ifdef __GNUC__ +#if defined(HAVE_IS_HEAP) CARVE_ASSERT(std::__is_heap(queue.begin(), queue.end(), order_by_score())); #endif } diff --git a/extern/carve/lib/triangulator.cpp b/extern/carve/lib/triangulator.cpp index 820fed07db7..eb36e86af5d 100644 --- a/extern/carve/lib/triangulator.cpp +++ b/extern/carve/lib/triangulator.cpp @@ -27,24 +27,6 @@ #include <algorithm> -// Support for latest Clang/LLVM on FreeBSD which does have different libcxx. -// -// TODO(sergey): Move it some some more generic header with platform-specific -// declarations. - -// Indicates whether __is_heap is available -#undef HAVE_IS_HEAP - -#ifdef __GNUC__ -// NeyBSD doesn't have __is_heap -# ifndef __NetBSD__ -# define HAVE_IS_HEAP -# ifdef _LIBCPP_VERSION -# define __is_heap is_heap -# endif // _LIBCPP_VERSION -# endif // !__NetBSD__ -#endif // __GNUC__ - namespace { // private code related to hole patching. diff --git a/extern/carve/patches/clang_is_heap_fix.patch b/extern/carve/patches/clang_is_heap_fix.patch index a00710b9540..524a8e0420c 100644 --- a/extern/carve/patches/clang_is_heap_fix.patch +++ b/extern/carve/patches/clang_is_heap_fix.patch @@ -1,31 +1,27 @@ -diff -r 2e6e59022e6e lib/triangulator.cpp ---- a/lib/triangulator.cpp Fri Nov 09 09:35:35 2012 +1100 -+++ b/lib/triangulator.cpp Thu Jan 09 16:13:17 2014 +0600 -@@ -27,6 +27,23 @@ +diff -r e82d852e4fb0 include/carve/mesh_ops.hpp +--- a/include/carve/mesh_ops.hpp Wed Jan 15 13:16:14 2014 +1100 ++++ b/include/carve/mesh_ops.hpp Fri Mar 28 14:34:04 2014 +0600 +@@ -580,7 +580,7 @@ + std::vector<VertexInfo *> queue; - #include <algorithm> + void checkheap() { +-#ifdef __GNUC__ ++#if defined(HAVE_IS_HEAP) + CARVE_ASSERT(std::__is_heap(queue.begin(), queue.end(), order_by_score())); + #endif + } +diff -r e82d852e4fb0 lib/triangulator.cpp +--- a/lib/triangulator.cpp Wed Jan 15 13:16:14 2014 +1100 ++++ b/lib/triangulator.cpp Fri Mar 28 14:34:04 2014 +0600 +@@ -27,7 +27,6 @@ -+// Support for latest Clang/LLVM on FreeBSD which does have different libcxx. -+// -+// TODO(sergey): Move it some some more generic header with platform-specific -+// declarations. -+ -+// Indicates whether __is_heap is available -+#undef HAVE_IS_HEAP -+ -+#ifdef __GNUC__ -+// NeyBSD doesn't have __is_heap -+# ifndef __NetBSD__ -+# define HAVE_IS_HEAP -+# ifdef _LIBCPP_VERSION -+# define __is_heap is_heap -+# endif // _LIBCPP_VERSION -+# endif // !__NetBSD__ -+#endif // __GNUC__ + #include <algorithm> +- namespace { // private code related to hole patching. -@@ -122,7 +139,7 @@ + +@@ -122,7 +121,7 @@ std::vector<vertex_info *> queue; void checkheap() { diff --git a/extern/carve/patches/files/config.h b/extern/carve/patches/files/config.h index fdae2d2843f..3533c1a6710 100644 --- a/extern/carve/patches/files/config.h +++ b/extern/carve/patches/files/config.h @@ -10,3 +10,21 @@ # define HAVE_STDINT_H #endif + +// Support for latest Clang/LLVM on FreeBSD which does have different libcxx. +// +// TODO(sergey): Move it some some more generic header with platform-specific +// declarations. + +// Indicates whether __is_heap is available +#undef HAVE_IS_HEAP + +#ifdef __GNUC__ +// NeyBSD doesn't have __is_heap +# ifndef __NetBSD__ +# define HAVE_IS_HEAP +# ifdef _LIBCPP_VERSION +# define __is_heap is_heap +# endif // _LIBCPP_VERSION +# endif // !__NetBSD__ +#endif // __GNUC__ diff --git a/extern/carve/patches/series b/extern/carve/patches/series index 286d594bbef..529bf43a858 100644 --- a/extern/carve/patches/series +++ b/extern/carve/patches/series @@ -8,5 +8,5 @@ strict_flags.patch interpolator_reorder.patch mesh_simplify_dissolve_edges.patch memory_leak_fix.patch -mavc_fix.patch +msvc_fix.patch face_hole_merge_workaround.patch |