Changeset: 9f09f9207549 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/9f09f9207549
Added Files:
        cmake/Modules/FindRTree.cmake
Modified Files:
        cmake/monetdb-defines.cmake
        cmake/monetdb-findpackages.cmake
        cmake/monetdb-options.cmake
        gdk/CMakeLists.txt
        sql/common/sql_list.c
Branch: geo-update-dev
Log Message:

Compilation files for rtree index. Some of these have workarounds and work in 
progress. Renaming of a couple functions to avoid name overlap with librtree 
funcs


diffs (151 lines):

diff --git a/cmake/Modules/FindRTree.cmake b/cmake/Modules/FindRTree.cmake
new file mode 100644
--- /dev/null
+++ b/cmake/Modules/FindRTree.cmake
@@ -0,0 +1,30 @@
+# - Find RTree
+# Find the native rtree headers and libraries.
+#
+# RTREE_INCLUDE_DIR    - where to find rtree.h.
+# RTREE_LIBRARY - where to find rtree library.
+# RTREE_FOUND  - True if rtree found.
+
+# Look for the header file.
+find_path(RTREE_INCLUDE_DIR NAMES rtree.h)
+
+# Look for the library.
+find_library(RTREE_LIBRARY NAMES librtree)
+
+# Handle the QUIETLY and REQUIRED arguments and set RTREE_FOUND to TRUE if all 
listed variables are TRUE.
+include(FindPackageHandleStandardArgs)
+
+find_package_handle_standard_args(rtree REQUIRED_VARS RTREE_LIBRARY 
RTREE_INCLUDE_DIR VERSION_VAR)
+
+if(RTREE_FOUND)
+  add_library(rtree:rtree UNKNOWN IMPORTED)
+  set_target_properties(rtree::rtree
+    PROPERTIES
+    INTERFACE_INCLUDE_DIRECTORIES "${RTREE_INCLUDE_DIR}")
+  set_target_properties(rtree::rtree
+    PROPERTIES
+    IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+    IMPORTED_LOCATION "${RTREE_LIBRARY}")
+endif()
+
+mark_as_advanced(RTREE_INCLUDE_DIR RTREE_LIBRARIES GEOS_VERSION)
diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake
--- a/cmake/monetdb-defines.cmake
+++ b/cmake/monetdb-defines.cmake
@@ -148,6 +148,7 @@ macro(monetdb_macro_variables)
   set(RHOME "${LIBR_HOME}")
   set(HAVE_GEOM ${GEOS_FOUND})
   set(HAVE_SHP ${GDAL_FOUND})
+  set(HAVE_RTREE ${RTREE_FOUND})
 
   if(PY3INTEGRATION)
     set(HAVE_LIBPY3 "${Python3_NumPy_FOUND}")
diff --git a/cmake/monetdb-findpackages.cmake b/cmake/monetdb-findpackages.cmake
--- a/cmake/monetdb-findpackages.cmake
+++ b/cmake/monetdb-findpackages.cmake
@@ -18,6 +18,10 @@ else()
   find_package(Python3 COMPONENTS Interpreter Development NumPy)
 endif()
 
+if (RTREE)
+  find_package(rtree)
+endif()
+
 if(WITH_LZMA)
   find_package(Lzma)
 endif()
diff --git a/cmake/monetdb-options.cmake b/cmake/monetdb-options.cmake
--- a/cmake/monetdb-options.cmake
+++ b/cmake/monetdb-options.cmake
@@ -27,6 +27,10 @@ cmake_dependent_option(CINTEGRATION
   "NOT WIN32"
   OFF)
 
+option(RTREE
+  "Enable support for rtrees (default=ON)"
+  ON)
+
 option(PY3INTEGRATION
   "Enable support for Python 3 integration into MonetDB (default=ON)"
   ON)
diff --git a/gdk/CMakeLists.txt b/gdk/CMakeLists.txt
--- a/gdk/CMakeLists.txt
+++ b/gdk/CMakeLists.txt
@@ -86,6 +86,7 @@ target_sources(bat
   gdk_analytic.h
   gdk_tracer.c gdk_tracer.h
   gdk_strimps.c
+  gdk_rtree.c
   PUBLIC
   ${gdk_public_headers})
 
@@ -95,7 +96,8 @@ target_include_directories(bat
   $<TARGET_PROPERTY:matomic,INTERFACE_INCLUDE_DIRECTORIES>
   $<TARGET_PROPERTY:mstring,INTERFACE_INCLUDE_DIRECTORIES>
   $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
-  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb>)
+  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb>
+  "/usr/local/include/")
 
 target_link_libraries(bat
   PRIVATE
@@ -105,6 +107,7 @@ target_link_libraries(bat
   monetdb_config_header
   moptions
   mutils
+  "/usr/local/lib/librtree.a"
   $<$<NOT:$<PLATFORM_ID:Windows>>:m>
   $<$<PLATFORM_ID:Windows>:ws2_32>
   $<$<BOOL:${KVM_FOUND}>:KVM::KVM>
diff --git a/sql/common/sql_list.c b/sql/common/sql_list.c
--- a/sql/common/sql_list.c
+++ b/sql/common/sql_list.c
@@ -92,7 +92,7 @@ list_empty(list *l)
 }
 
 static void
-node_destroy(list *l, void *data, node *n)
+node_destroy_(list *l, void *data, node *n)
 {
        if (n->data && l->destroy) {
                l->destroy(data, n->data);
@@ -114,7 +114,7 @@ list_destroy2(list *l, void *data)
                                node *t = n;
 
                                n = t->next;
-                               node_destroy(l, data, t);
+                               node_destroy_(l, data, t);
                        }
                }
 
@@ -185,7 +185,7 @@ list_append_with_validate(list *l, void 
                        err = cmp(m->data, data, extra);
                        if(err) {
                                n->data = NULL;
-                               node_destroy(l, NULL, n);
+                               node_destroy_(l, NULL, n);
                                return err;
                        }
                }
@@ -222,7 +222,7 @@ list_append_sorted(list *l, void *data, 
                        err = cmp(m->data, data, extra, &comp);
                        if(err) {
                                n->data = NULL;
-                               node_destroy(l, NULL, n);
+                               node_destroy_(l, NULL, n);
                                return err;
                        }
                        if(comp < 0)
@@ -353,7 +353,7 @@ list_remove_node(list *l, void *gdata, n
 {
        node *p = list_remove_node_(l, n);
 
-       node_destroy(l, gdata, n);
+       node_destroy_(l, gdata, n);
        return p;
 }
 
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to