Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
Building OpenMS on Mac OS X

Introduction

This document explains the installation procedure for building OpenMS from its sources. If you only want to use the OpenMS Proteomics Pipeline (TOPP), you are strongly encouraged to download the binary installer (see here), instead of building OpenMS from sources. Be aware though that we do not provide binary installers for every MacOS version. For more information read the install instructions for the TOPP binaries.

This document especially considers the installation of several libraries that are required by OpenMS. Most of these libraries are made available in our "contrib-package" (see below).
If you encounter errors during configuring/compiling our software, have a look at our Known Issues section, maybe the error is already known. If not, please write to the mailing list (open-ms-general AT lists.sourceforge.net) or report the error on our issue tracker.

Package Managers

We suggest to use Homebrew to install most of the requirements for OpenMS to ease the process of upgrading those dependencies.

Required applications

In order to compile OpenMS, several applications need to be installed:

If your OpenMS version is a development version obtained via Git, the following applications are needed in order to create the OpenMS documentation:


Installing the contrib package

In order to facilitate the installation of the libraries required for OpenMS, we provide a "contrib-package" containing the libraries Boost, Eigen, WildMagic, libSVM, SeqAn, glpk, zlib, bzip2 and Xerces-C.

The contrib package is contained in the OpenMS release package and is available inside the contrib directory in the OpenMS directory.

If you are using the developer version of OpenMS via

cd ~
mkdir openms-development
cd openms-development
git clone https://github.com/OpenMS/OpenMS

you have to checkout the empty folder by calling the following command:

git submodule update --init contrib

CMake is used to check your system and build the contrib libraries.

Note
To avoid problems while building the libraries contained in the contrib package, the path to your contrib directory should not contain any spaces.
  1. Open a Terminal (/Applications/Utilities/Terminal.app)
  2. Create a build directory for the OpenMS contrib e.g.,

    mkdir ~/openms-development/contrib_build
  3. Enter the created directory and call cmake to build the contrib

    cd <path_to_contrib_build>
    cmake -DBUILD_TYPE=ALL -DNUMBER_OF_JOBS=4 -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang <path_to_OpenMS_contrib>

    Example:

    cd ~/openms-development/contrib_build
    cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang ~/openms-development/OpenMS/contrib

If everything worked, the following sub-directories were created under the contrib build directory:

Using system libraries

As an alternative to the contrib libraries shipped with OpenMS you can also use libraries installed via your package manager (Homebrew or MacPorts).

For Homebrew the following sequence of commands installs most of the libraries required by OpenMS.

# tap the science tap
brew tap homebrew/science
brew tap homebrew/versions
brew install libsvm xerces-c boost coinmp glpk eigen
Note
OpenMS requires SeqAn version 1.4, however Homebrew now ships 2.1 or later. Therefore, you are currently required to install it via our contrib package (see end of this section).

For MacPorts the following sequence of commands installs some of the libraries required by OpenMS.

sudo port install libsvm xercesc3 boost glpk eigen3

The rest needs to be installed via the contrib.

# assuming you cloned OpenMS to ~/openms-development/OpenMS
cd ~/openms-development/OpenMS
git submodule update --init contrib
mkdir ../contrib-build
cd ../contrib-build
cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DBUILD_TYPE=SEQAN ~/openms-development/OpenMS/contrib
cmake -DBUILD_TYPE=COINOR .
cmake -DBUILD_TYPE=WILDMAGIC .

Note
Some thirdparty software used via adapter tools in OpenMS might also require an installed JavaVM.

Installing OpenMS

Assuming you have successfully cloned OpenMS and installed the required libraries, you can now build OpenMS. Therefore execute the following steps:

  1. Open a Terminal (/Applications/Utilities/Terminal.app)
  2. Create a build directory for OpenMS, e.g.,

    mkdir ~/openms-development/openms_build

  3. Call cmake to create the build system there

    cd <path_to_OpenMS_build>
    cmake -DOPENMS_CONTRIB_LIBS=<path_to_contrib_build> <path_to_OpenMS>

    You can set CMake variables using the -DVARIABLE=VALUE option. A full list of the CMake variables is shown when you execute

    ccmake ~/openms-development/openms_build
    Note
    You need to execute cmake at least once before ccmake can be used.

The most important CMake variables are:

CMAKE_INSTALL_PREFIX

the path where the bin/ and lib/ directories should be installed to (when

sudo make install

is wished for a system-wide install: e.g. -DCMAKE_INSTALL_PREFIX=/usr/local/)
Note: Moving these directories after installing is not supported.

For development, install prefixes are not supported. In this case OpenMS must be built in place!

OPENMS_CONTRIB_LIBS Seperate search path for the contrib libraries from github.com/OpenMS/contrib that is internally considered before CMAKE_PREFIX_PATH for searching, linking and adding include directories.
CMAKE_PREFIX_PATH

Additional search path for the contrib libraries. If you want to use libraries installed via Homebrew or MacPorts you might need to provide the corresponding paths

-DCMAKE_PREFIX_PATH=/usr/local/Cellar for Homebrew -DCMAKE_PREFIX_PATH=/opt/local for MacPorts

Please keep in mind that both Homebrew and MacPorts do not provide all libraries so you also need to specify the path to your self-build contrib via -DOPENMS_CONTRIB_LIBS

QT_QMAKE_EXECUTABLE Defines the Qt 'qmake' application to identify the corresponding Qt installation. This variable only needs to be set if qmake is not in the PATH.
CMAKE_BUILD_TYPE Should be either 'Release' (optimization enabled) or 'Debug' (debug info and precondition/postcondition checks enabled).
The default is Release.
CMAKE_CXX_COMPILER Defines the C++ compiler to use.
CMAKE_C_COMPILER Defines the C compiler to use. This should match the C++ compiler. Mixing compilers (e.g., clang++ for C++ and gcc for C) can lead to undefined behavior as some internal settings (e.g., OpenMP support) are determined using the C compiler and are assumed to be the same for the C++ compiler.
SEARCH_ENGINES_DIRECTORY (optional) The location where the search and inference engines are located. This directory should have the same structure as the one in the OpenMS svn repository. This directory is only needed to include thirdparty tools in the installer for OpenMS. For using/running of thirdparty tools, see the Note at the end of this section.
PYOPENMS Use ON to also build the Python bindings, see also pyOpenMS (Python bindings).

After CMake was executed, you can list the make targets by calling:

make targets

In order to build the OpenMS library, the TOPP tools, tests and this documentation execute the following command:

make

The TOPP tools should now be ready to use. The executables are located in the bin folder of the build directory. Add this folder to your PATH variable for easy access.

Note
When you intend to use thirdparty search- or inference engines like XTandem or Fido, their binaries also need to be in the PATH. Build them or download them from our third-party Git repository and adapt the following for every thirdparty tool you want to use (shown for XTandem):
export PATH=${YOUR_CLONED_THIRDPARTY_GIT_REPO}/${FOLDER_FOR_YOUR_OS_ARCH}/XTandem:${PATH}
If you want to enable the corresponding tests in CMake, this has to happen before you configure and build the project.

Testing your OpenMS/TOPP installation

After you have installed OpenMS and TOPP, you should test your installation by executing the following command:

make test

or

ctest

Using ctest you can also execute only a subset of tests by using the -R [SUBSTRING] option and run tests in parallel using the -j parameter. For example,

ctest -R TOPP_ -j 4

will run all TOPP test using 4 jobs.

For more information, consult ctest man page.


OpenMS / TOPP release 2.3.0 Documentation generated on Tue Jan 9 2018 18:22:05 using doxygen 1.8.13