Connectome Workbench requires QT5 or later to compile.  It is not recommended to use a version earlier than 5.6 (due to an issue with the toolbar size).

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-2025 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-2022 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 <ftgl@opengl.geek.nz>
Copyright (C) 2008 Daniel Remenak <dtremenak@users.sourceforge.net>
Copyright (C) 2008 Éric Beets <ericbeets@free.fr>
Copyright (C) 2008 Sam Hocevar <sam@zoy.org>
Copyright (C) 2008 Sean Morrison <learner@brlcad.org>
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)
