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]