(ManiVault version 0.9)
ManiVault can currently be extended by six types of plugins, each dedicated to a specific functionality. Here, you can find exemplary implementations for each plugins type that can be used as a starting point for new plugins:
- Analysis: general analytics methods, e.g., dimensionality reduction
- Transformation: produces new data in the same shape as the input, e.g., normalizations
- Data: defines data types
- Loader/Writer: load data into the system or write them to disk
- View: visualize data and provide interaction, e.g., using OpenGL or JavaScript backends
Manual
- ManiVault Studio (https://github.com/ManiVaultStudio/Core)
- CMake 3.17+ (https://cmake.org/)
- Qt 6.3.2+ (https://www.qt.io/download), additional libraries: Qt WebEngine, Qt WebChannel, Qt Positioning and the Qt5 Compatibility Module
- A C++17 compatible compiler
- For Windows: Visual Studio 2019 or 2022 (https://visualstudio.microsoft.com/downloads/)
- Optionally: Git (https://git-scm.com/)
Be sure to first have ManiVault installed before continuing to download this repository. You can do the latter in any way you like, for example by downloading a .zip file of this repository (https://github.com/ManiVaultStudio/ExamplePlugins/archive/refs/heads/master.zip) or with
git clone https://github.com/ManiVaultStudio/ExamplePlugins.git
With SSH this would be:
git clone [email protected]:ManiVaultStudio/ExamplePlugins.git
After unzipping you should have an ExamplePlugins-master
, after cloning you should have an ExamplePlugins
folder, after navigating to this folder, continue with the next step.
You'll need to define a ManiVault_DIR
and setup CMake such that it can fin Qt. The ManiVault_DIR
variable is used to find your local ManiVault installation and defines an install location for the example plugins.
For Windows, using the CMake GUI:
-
Launch CMake (available here: https://cmake.org/)
-
In the source code field browse to the
ExamplePlugins-master
orExamplePlugins
folder (which contains CMakeLists.txt). -
In the build field browse to the
ExamplePlugins-master/build
orExamplePlugins/build
folder. It will create it if it doesn't exist.The source and build fields in your cmake should now roughly look like this:
Source: C:/YourOwnFolder/ExamplePlugins-master
Build: C:/YourOwnFolder/ExamplePlugins-master/build
-
Press
Configure
and select theVisual Studio 15 2019
(or 17 2022) generator with the optional platform ofx64
. If it is not available, be sure to install Visual Studio. Press Finish to configure the project. -
A lot of red paths should now appear. Set the
ManiVault_DIR
to the subfolder of your ManiVault install directory (which should holdDebug
,Release
and acmake
folder) that contains aManiVaultConfig.cmake
file. That should beYOUR_MANIVAULT_INSTALL_DIR/cmake/mv
. Check that the entries relating to Qt seem correct and then pressGenerate
to generate the Visual Studio solution. If cmake is asking you for a Qt6_DIR please refer to CMake cannot find my Qt Installation. -
Press
Open Project
to launch Visual Studio and the example project.
For Windows:
- At the top of Visual Studio set the build mode (where it says
Debug
) toRelease
. - Right click the project
ALL_BUILD
in the Solution Explorer and select Properties. - In the Configuration Properties -> Debugging set the
Command
by browsing to yourManiVault Studio.exe
file. Set theWorking Directory
field by browsing to the folder containing theManiVault Studio.exe
file. - Press Apply and OK and right click the project in the Solution Explorer and press Build.
- If all is well the build should succeed and if you run the project with Ctrl+F5 it will launch
ManiVault Studio.exe
and load the Example project as an available plug-in.
Automated using DevBundle (available for BioVault team members)
The preferred approach to building the example plugins is by using our DevBundle tool. This cross-platform tool creates self-contained development environments using build configurations in JSON format. Since the build environments are self-contained, multiple build environments can exist side-by-side. The major advantage of using DevBundle is that it will remove much of the configuration overhead by:
- Cloning repositories from the build configuration (with the branch specified in the build configuration)
- Downloading related binary dependencies from our Artifactory server (and adding/configuring paths in the
CMakeLists.txt
) - Setting up an umbrella CMakeLists.txt which consists of all projects from the build configuration
Note: the allmain
build config in the DevBundle config.json contains an example of how to add the example plugins to a build configuration.