Connectome Workbench requires QT5 to compile. Recommended is version 5.6 or later (due to an issue with the toolbar size on earlier versions).
It is highly recommended to compile with OSMesa, which allow the -show-scene command and the "render pixmap" image capture method to work. Use it by setting the *cmake* variable WORKBENCH_MESA_DIR, such that ${WORKBENCH_MESA_DIR}/include/GL/osmesa.h exists.
It is compiled using cmake, for example, on linux you can do:
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D WORKBENCH_MESA_DIR=/usr -D WORKBENCH_USE_QT5=TRUE ../workbench/src
nice make -j8
For other OSes, see http://www.cmake.org/cmake/help/runningcmake.html
Note the -j flag of "make" is used in the example to speed up the build by compiling multiple source files at the same time. If you have a different number of cores/hardware threads or want to reduce the load, adjust it accordingly. The "nice" command is not needed, it is used to make the compilation have less priority than other processes.
This produces 3 executables, 2 of which are useful to the end user (Desktop/wb_view, CommandLine/wb_command), and one for running internal tests (Tests/test_driver).
To run the (few) tests available:
ctest
#OR
make test
To install wb_view, wb_command, wb_shortcuts, and the bash completion script to the default locations:
make install
It should be noted that wb_import, provided in the HCP binary releases of Connectome Workbench, is actually part of caret5 (http://brainvis.wustl.edu/wiki/index.php/Caret:Download).
Connectome Workbench source code is licensed under GPLv2 or later, copyright 2014-2021 Washington University School of Medicine, see LICENSE file.
However, it uses a GPLv3 (or later) library, libCZI, and thus the executables are GPLv3.
Some source files are licensed under an MIT license (Expat), for easier code reuse in non-GPL projects:
Files/SurfaceResamplingHelper.cxx
Cifti/examples/*
CommandLine/wb_shortcuts
CommandLine/bashcomplete_wb_*
Copyright (C) 2014-2018 Washington University School of Medicine
Some GPLv2 source files can be used under the MIT license (Expat) specifically in FSL or MSM code:
Files/SignedDistanceHelper.*
Common/OctTree.h
Some included code/files are from third party sources, with the following licenses:
CZIlib/*:
Copyright (C) 2017 Zeiss Microscopy GmbH
licensed under GPLv3 or later
some renaming and removal of files
kloewe/*:
Copyright (c) 2012-2017 Kristian Loewe, Christian Borgelt
licensed under MIT (Expat), see kloewe/dot/LICENSE and kloewe/cpuinfo/LICENSE
Quazip/*:
QuaZIP 0.6, http://quazip.sourceforge.net/
Copyright (C) 2005-2012 Sergey A. Tachenov
Copyright (C) 1998-2010 Gilles Vollant
Copyright (C) 2009-2010 Mathias Svensson
Copyright (C) 2007-2008 Even Rouault
Copyright (c) 1990-2000 Info-ZIP
licensed under LGPLv2.1 or later and zlib, see Quazip/COPYING, Quazip/quazip.h, Quazip/zip.h and Quazip/unzip.c
Qwt/*:
Copyright (C) 1997 Josef Wilgen
Copyright (C) 2002 Uwe Rathmann
Qwt 6.0.1, http://qwt.sourceforge.net/
licensed under Qwt license v1.0 (LGPLv2.1, with exceptions), see src/Qwt/COPYING
some unneeded files removed
FtglFont/*:
FTGL library
Copyright (C) 2001-2004 Henry Maddocks <[email protected]>
Copyright (C) 2008 Daniel Remenak <[email protected]>
Copyright (C) 2008 Éric Beets <[email protected]>
Copyright (C) 2008 Sam Hocevar <[email protected]>
Copyright (C) 2008 Sean Morrison <[email protected]>
licensed under Expat, see FtglFont/COPYING
GLMath/*
Copyright (c) 2005 - 2014 G-Truc Creation
licensed under "Happy Bunny" or Expat, see GLMath/copying.txt
Common/Base64.*, Common/DataCompressZLib.*, Common/MathFunctions.*, Nifti/Matrix4x4.cxx:
use code from VTK, http://www.kitware.com/opensource/vtk.html or http://www.vtk.org/
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
originally licensed under BSD 3-clause, see http://www.kitware.com/Copyright.htm or http://www.vtk.org/VTK/project/license.html
GuiQt/WuQDialog.cxx, Brain/FtglFontTextRenderer.cxx:
copied some code from from QT4, https://qt-project.org/
Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
originally licensed LGPLv2.1 (or GPLv3, or a commercial license)
modified to change some UI behaviors otherwise hardcoded into QT classes
Files/SignedDistanceHelper.cxx, Files/RibbonMappingHelper.cxx:
make use of PNPOLY, http://www.ecse.rpi.edu/~wrf/Research/Short_Notes/pnpoly.html
Copyright (c) 1970-2003, Wm. Randolph Franklin
originally licensed with 3-clause BSD/MIT license, see files in question
rewritten for different argument types, modified
Resources/FtglFonts/Vera*.ttf
Copyright (c) 2003 Bitstream, Inc.
licensed under Bitstream-Vera (basically, modification of fonts requires calling them something else), see debian/copyright file
Files/PaletteFile.cxx
copied some palette definitions from matplotlib and its original sources
Copyright (c) 2012-2016 Matplotlib Development Team
Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State University
licensed apache-2 and MDT (bsd-like)