This library provides a native C api to the JGraphT library. Since the JGraphT library is written in Java, we use GraalVM in order to build a shared library.
Important! This is alpha software and the interface many change!
We use cmake to build the native library.
mkdir build/
cd build/
cmake ..
make
Use make install
to install the library. After a successful installation, you should see the following files:
jgrapht_capi.h
jgrapht_capi_types.h
jgrapht_capi_dynamic.h
graal_isolate.h
graal_isolate_dynamic.h
and the shared library libjgrapht_capi.so
.
The build will succeed only if you have the following piece of software installed:
- GraalVM 20.0 with Java 11 support
- Native Image component from GraalVM
- GNU C compiler or clang
- glibc-devel, zlib-devel (header files for the C library and zlib)
- Maven build tool
- CMake
For Windows you will need Microsoft Visual C++ (MSVC) 2017 15.5.5 or later. Build the
system using the proper
Developer Command Prompt
for your version of Visual Studio. This means
x64 Native Tools Command Prompt
. Use Visual Studio 2017 or later.
This library may be used under the terms of either the
- GNU Lesser General Public License (LGPL) 2.1 http://www.gnu.org/licenses/lgpl-2.1.html
or the
- Eclipse Public License (EPL) http://www.eclipse.org/org/documents/epl-v20.php
As a recipient, you may choose which license to receive the code under. A copy of the EPL license and the LPGL license is included in this repository.
Please note that this library is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Please refer to the license for details.
SPDX-License-Identifier: LGPL-2.1-or-later OR EPL-2.0
(C) Copyright 2020, by Dimitrios Michail
Enjoy!