Integrate loading openCypher module procedures
Summary:
All mgp_* symbols are exported from Memgraph executable, no other
symbols should be visible.
The primary C API header, mg_procedure.h, is now part of the
installation. Also, added a shippable query module example.
Directory `query_modules` is meant to contain sources of modules we
write and ship as part of the installation. Currently, there's only an
example module, but there may be potentially more. Some modules could
only be installed as part of the enterprise release.
For Memgraph to load custom procedures, it needs to be started with a
flag pointing to a directory with compiled shared libraries implementing
those procedures.
Reviewers: mferencevic, ipaljak, llugovic, dsantl, buda
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2538
2019-10-31 23:36:34 +08:00
|
|
|
# Memgraph Query Modules CMake configuration
|
|
|
|
# You should use the top level CMake configuration with -DQUERY_MODULES=ON
|
|
|
|
# These modules are meant to be shipped with Memgraph installation.
|
|
|
|
|
2020-02-11 23:39:54 +08:00
|
|
|
project(memgraph_query_modules)
|
Integrate loading openCypher module procedures
Summary:
All mgp_* symbols are exported from Memgraph executable, no other
symbols should be visible.
The primary C API header, mg_procedure.h, is now part of the
installation. Also, added a shippable query module example.
Directory `query_modules` is meant to contain sources of modules we
write and ship as part of the installation. Currently, there's only an
example module, but there may be potentially more. Some modules could
only be installed as part of the enterprise release.
For Memgraph to load custom procedures, it needs to be started with a
flag pointing to a directory with compiled shared libraries implementing
those procedures.
Reviewers: mferencevic, ipaljak, llugovic, dsantl, buda
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2538
2019-10-31 23:36:34 +08:00
|
|
|
|
|
|
|
disallow_in_source_build()
|
|
|
|
|
|
|
|
# Everything that is installed here, should be under the "query_modules" component.
|
|
|
|
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "query_modules")
|
|
|
|
|
|
|
|
add_library(example SHARED example.c)
|
|
|
|
target_include_directories(example PRIVATE ${CMAKE_SOURCE_DIR}/include)
|
|
|
|
target_compile_options(example PRIVATE -Wall)
|
2019-12-11 18:08:25 +08:00
|
|
|
|
|
|
|
# Strip the library in release build.
|
|
|
|
string(TOLOWER ${CMAKE_BUILD_TYPE} lower_build_type)
|
|
|
|
if (lower_build_type STREQUAL "release")
|
|
|
|
add_custom_command(TARGET example POST_BUILD
|
|
|
|
COMMAND strip -s $<TARGET_FILE:example>
|
|
|
|
COMMENT "Stripping symbols and sections from example module")
|
|
|
|
endif()
|
|
|
|
|
Integrate loading openCypher module procedures
Summary:
All mgp_* symbols are exported from Memgraph executable, no other
symbols should be visible.
The primary C API header, mg_procedure.h, is now part of the
installation. Also, added a shippable query module example.
Directory `query_modules` is meant to contain sources of modules we
write and ship as part of the installation. Currently, there's only an
example module, but there may be potentially more. Some modules could
only be installed as part of the enterprise release.
For Memgraph to load custom procedures, it needs to be started with a
flag pointing to a directory with compiled shared libraries implementing
those procedures.
Reviewers: mferencevic, ipaljak, llugovic, dsantl, buda
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2538
2019-10-31 23:36:34 +08:00
|
|
|
install(PROGRAMS $<TARGET_FILE:example>
|
|
|
|
DESTINATION lib/memgraph/query_modules
|
|
|
|
RENAME example.so)
|
|
|
|
# Also install the source of the example, so user can read it.
|
2020-03-17 18:06:43 +08:00
|
|
|
install(FILES example.c DESTINATION lib/memgraph/query_modules/src)
|
2019-11-25 22:51:51 +08:00
|
|
|
|
2020-03-09 18:06:01 +08:00
|
|
|
# Install the Python example
|
|
|
|
install(FILES example.py DESTINATION lib/memgraph/query_modules RENAME py_example.py)
|
|
|
|
|
2020-04-03 00:00:08 +08:00
|
|
|
# Install the Python modules
|
|
|
|
install(FILES graph_analyzer.py DESTINATION lib/memgraph/query_modules)
|
|
|
|
install(FILES pagerank.py DESTINATION lib/memgraph/query_modules)
|
|
|
|
install(FILES wcc.py DESTINATION lib/memgraph/query_modules)
|
|
|
|
|
2020-02-05 22:05:18 +08:00
|
|
|
if (MG_ENTERPRISE)
|
|
|
|
add_subdirectory(louvain)
|
|
|
|
add_subdirectory(connectivity)
|
|
|
|
endif()
|