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
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-01-09 14:15:24 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-01-09 14:15:24 +0400
commit113ff5147675b37082efabb6afd020b51dc531f3 (patch)
treef88d93a647ae75de253a3032c140677cfa7f15d1 /extern/carve
parent2d8545f87e554210f2d7446a20742b4cc4701b4e (diff)
Compilation error fix for NetBSD
Based on the patch from Joerg Sonnenberger.
Diffstat (limited to 'extern/carve')
-rw-r--r--extern/carve/lib/triangulator.cpp18
-rw-r--r--extern/carve/patches/clang_is_heap_fix.patch29
2 files changed, 38 insertions, 9 deletions
diff --git a/extern/carve/lib/triangulator.cpp b/extern/carve/lib/triangulator.cpp
index bd5a30b0c2b..fa829c6a1e6 100644
--- a/extern/carve/lib/triangulator.cpp
+++ b/extern/carve/lib/triangulator.cpp
@@ -31,9 +31,19 @@
//
// TODO(sergey): Move it some some more generic header with platform-specific
// declarations.
-#ifdef _LIBCPP_VERSION
-# define __is_heap is_heap
-#endif
+
+// 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.
@@ -129,7 +139,7 @@ namespace {
std::vector<vertex_info *> queue;
void checkheap() {
-#ifdef __GNUC__
+#if defined(HAVE_IS_HEAP)
CARVE_ASSERT(std::__is_heap(queue.begin(), queue.end(), vertex_info_ordering()));
#endif
}
diff --git a/extern/carve/patches/clang_is_heap_fix.patch b/extern/carve/patches/clang_is_heap_fix.patch
index 435e408d6cd..a00710b9540 100644
--- a/extern/carve/patches/clang_is_heap_fix.patch
+++ b/extern/carve/patches/clang_is_heap_fix.patch
@@ -1,7 +1,7 @@
diff -r 2e6e59022e6e lib/triangulator.cpp
--- a/lib/triangulator.cpp Fri Nov 09 09:35:35 2012 +1100
-+++ b/lib/triangulator.cpp Thu Nov 28 13:34:52 2013 +0600
-@@ -27,6 +27,13 @@
++++ b/lib/triangulator.cpp Thu Jan 09 16:13:17 2014 +0600
+@@ -27,6 +27,23 @@
#include <algorithm>
@@ -9,9 +9,28 @@ diff -r 2e6e59022e6e lib/triangulator.cpp
+//
+// TODO(sergey): Move it some some more generic header with platform-specific
+// declarations.
-+#ifdef _LIBCPP_VERSION
-+# define __is_heap is_heap
-+#endif
++
++// 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.
+@@ -122,7 +139,7 @@
+ std::vector<vertex_info *> queue;
+
+ void checkheap() {
+-#ifdef __GNUC__
++#if defined(HAVE_IS_HEAP)
+ CARVE_ASSERT(std::__is_heap(queue.begin(), queue.end(), vertex_info_ordering()));
+ #endif
+ }