|
MorphoGraphX
2.0-1-227
|
lsb_releaseMorphoGraphX requires an OpenGL 3.2-capable graphics driver, with compatibility contexts. As of 2017-11, the only tested driver is the NVIDIA one.
Because of the CUDA gcc version constraint, ability to use any given OS is limited. Because of that, depending on OS some packages may need to be built from source.
WARNING: Distribution-provided InsightToolkit seems to be old in all cases. It will not work if any C++11 code is used. As a workaround, install InsightToolkit from official repository (version 4.9 or higher).
Note: If MorphoGraphX doesn't work, make sure your machine matches one of the above setups exactly. Get CUDA from the official NVIDIA site if necessary.
Should work:
Marie has it running (installed from package). Package needed to be obtained separately: libtbb-dev
Some packages need to be obtained separately:
Some packages need to be built from source, epel repository contains others:
Some packages need to be built from source:
The simplest way to build the source with CPU computation support, assuming it's in $SRC:
To build a version leveraging GPU computations, replace the cmake line above with the following (note CUDA=ON):
The commands together will install MorphoGraphX to /usr/local and create an executable file /usr/local/bin/MorphoGraphX.
Documentation will be created during make install whenever the user has doxygen available. Alternatively, it can be created with:
Some parts of MorphoGraphX can be enabled/disabled at build time. They are controlled by CMake build flags in the form of BUILD_*=ON|OFF, e.g. for ITK the cmake command would look similar to this:
These portions may have additional requirements:
Requires:
Deprecated, does not expose any functionality.
Required to build:
The CMake option CUDA_SEPARABLE_COMPILATION function can bring benefits (TODO: which?) but is unstable.
MorphoGraphX supports being packaged as a Debian package (.deb).
XDG programs must be installed on the building system:
xdg-icon-resourcexdg-desktop-menuxdg-mimeOn Debian, they are found in the xdg-utils package.
The package nvidia-cuda-toolkit from (jessie-backports)[https://wiki.debian.org/Backports] is required.
Note: Debian's CUDA package is not versioned. MorphoGraphX package needs a specific CUDA version. It's possible that a mismatch occurs after installing the resulting package when one or the other is old. Solution: always keep your systems and builds up to date.
Proceed with building as described earlier, with 2 exceptions:
The cmake command MUST contain -DMGX_PACKAGE="ON", and instead of sudo make install, issue make package.
For example, to build the CellAtlas addon:
WARNING Don't use the same directory for make install and make package! These two commands use different installation paths and the installation can be broken. User a separate build_package directory for packaging.
This will create a MGX-....deb file in build_package directory. To find it, look at the last line of output. It should look similar to:
In this example, the file is called MGX-2.0.unknown-Debian8.7-Cuda-CellAtlas.deb and it's placed in /mnt/builds/dcz/debian-8.7/.
This .deb file is suitable for distributing to other systems of the same version. In this case, only Debian-8.7 is guaranteed to work.
NOTE the package does not specify dependencies on CUDA; you will need to make sure the appropriate software is installed.
The supported set of addons is always defined in .gitlab-ci.yml. Currently, these are CellAtlas and DivisionAnalysis.
Make sure to enable them before testing and committing your changes.
The basic test command is:
It will run all tests after installing.
If building a package:
WARNING before check_all or any other plugin API test, clear the installation directory (usually CMAKE_INSTALL_PREFIX).
To run unit tests, build the project and do the folowing:
If any of the tests failed, then it's possible to identify a particular test by running the binary directly.
Note: tests are not using make but ctest and will not be parallelized with -jnum. Instead, use the variable CTEST_PARALLEL_LEVEL like this:
To run public API tests, run CMake as usual, and issue:
Note: This issues make install. If you're building a package, install it and then run make plugin_test instead.
To debug a test called includeSomething.hpp_test, run:
and then
More detailed information can be found in AddOns/tests/README.md.
There are several test-related make targets (run them with make $MY_TARGET):
${MODULE}_build_tests - build tests for MODULE, which can be mgx or an addon name${MODULE}_test - only tries to run tests for MODULE${MODULE}_check - builds and runs tests for MODULEbuild_tests - builds all unit teststest - only tries to run unit testscheck - builds if necessary and then runs unit testsplugin_test_build - builds plugin API tests (expects MGX API to be installed)plugin_test - only runs plugin API tests (expects MGX API to be installed)plugin_check_installed - only builds and runs plugin API testsplugin_check - installs API files, builds and runs plugin API testscheck_all - builds and runs unit tests, then installs API files, builds and runs plugin API testsCI is using gl_multi_ci for starting jobs on different OSs. See instructions for setting it up.
1.8.17