Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/extern
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-03-28 12:41:04 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-03-28 12:41:04 +0400
commitf0106d29858ff482acb1288d08d00be23754bdc5 (patch)
treedb520352babbebdab73e14e3b8a9c895bb33d408 /extern
parent6babbf59bcd297213305bd285be2171fc16e9613 (diff)
Unbreak carve build for clang
Based on D420
Diffstat (limited to 'extern')
-rw-r--r--extern/carve/include/carve/config.h18
-rw-r--r--extern/carve/include/carve/mesh_ops.hpp2
-rw-r--r--extern/carve/lib/triangulator.cpp18
-rw-r--r--extern/carve/patches/clang_is_heap_fix.patch42
-rw-r--r--extern/carve/patches/files/config.h18
-rw-r--r--extern/carve/patches/series2
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