If you're new to Mesos

See the getting started page for more information about downloading, building, and deploying Mesos.

If you'd like to get involved or you're looking for support

See our community page for more details.

CMake Options

The most up-to-date options can be found with cmake .. -LAH.

See more information in the CMake documentation.

Flag Explanation
-DVERBOSE=(TRUE|FALSE) Generate a build solution that produces verbose output (for example, verbose Makefiles). [default=TRUE]
-DBUILD_SHARED_LIBS=(TRUE|FALSE) Build shared libraries (where possible). [default=FALSE for Windows, TRUE otherwise]
-DENABLE_GC_UNUSED=(TRUE|FALSE) Enable garbage collection of unused program segments. This option significantly reduces the size of the final build artifacts. [default=FALSE]
-DENABLE_PRECOMPILED_HEADERS=(TRUE|FALSE) Enable auto-generated precompiled headers using cotire. [default=TRUE for Windows, FALSE otherwise]
-DCPACK_BINARY_[TYPE]=(TRUE|FALSE) Where [TYPE] is one of BUNDLE, DEB, DRAGNDROP, IFW, NSIS, OSXX11, PACKAGEMAKER, RPM, STGZ, TBZ2, TGZ, TXZ. This modifies the 'package' target to generate binary package of the specified format. A binary package contains everything that would be installed via CMake's 'install' target. [default=FALSE]
-DCPACK_SOURCE_[TYPE]=(TRUE|FALSE) Where [TYPE] is one of TBZ2, TXZ, TZ, ZIP. This modifies the 'package_source' target to generate a package of the sources required to build and test Mesos, in the specified format. [default=FALSE]
-DREBUNDLED=(TRUE|FALSE) Attempt to build against the third-party dependencies included as tarballs in the Mesos repository. NOTE: This is not always possible. For example, a dependency might not be included as a tarball in the Mesos repository; additionally, Windows does not have a package manager, so we do not expect system dependencies like APR to exist natively, and we therefore must acquire them. In these cases (or when -DREBUNDLED=FALSE), we will acquire the dependency from the location specified by the 3RDPARTY_DEPENDENCIES, which by default points to the official Mesos third-party dependency mirror. [default=TRUE]
-DENABLE_LIBEVENT=(TRUE|FALSE) Use libevent instead of libev for the event loop. This is required (but not the default) on Windows. [default=FALSE]
-DUNBUNDLED_LIBEVENT=(TRUE|FALSE) Build libprocess with an installed libevent version instead of the bundled. [default=TRUE for macOS, FALSE otherwise]
-DLIBEVENT_ROOT_DIR=[path] Specify the path to libevent, e.g. "C:\libevent-Win64". [default=unspecified]
-DENABLE_SSL=(TRUE|FALSE) Build libprocess with SSL support. [default=FALSE]
-DOPENSSL_ROOT_DIR=[path] Specify the path to OpenSSL, e.g. "C:\OpenSSL-Win64". [default=unspecified]
-DENABLE_LOCK_FREE_RUN_QUEUE=(TRUE|FALSE) Build libprocess with lock free run queue. [default=FALSE]
-DENABLE_JAVA=(TRUE|FALSE) Build Java components. Warning: this is SLOW. [default=FALSE]
-DENABLE_NEW_CLI=(TRUE|FALSE) Enable the new Python CLI by building a binary using PyInstaller. This option requires Python 3 which can be set using the CMake option. [default=FALSE]
-DPYTHON_3=[path] Specify the path to Python 3, e.g. "python36". [default=unspecified]
-D3RDPARTY_DEPENDENCIES=[path_or_url] Location of the dependency mirror. In some cases, the Mesos build system needs to acquire third-party dependencies that aren't rebundled as tarballs in the Mesos repository. For example, on Windows, we must acquire newer versions of some dependencies, and since Windows does not have a package manager, we must acquire system dependencies like cURL. This parameter can be either a URL (for example, pointing at the Mesos official third-party dependency mirror), or a local folder (for example, a local clone of the dependency mirror). [default="https://github.com/mesos/3rdparty/raw/master"]
-DPATCHEXE_PATH=[path] Location of GNU Patch for Windows binary. [default=%PROGRAMFILESX86%/GnuWin32/bin/patch.exe]
-DENABLE_NVML=(TRUE|FALSE) Enable use of the NVML headers. [default=TRUE]
-DMESOS_FINAL_PREFIX=[path] Adjust built-in paths (rpath in shared objects, default paths in Mesos flags and so on) so that cmake install output works after being copied into this prefix. This path does not have to exist on the build system (the system where cmake install is invoked). This option is typically used by package managers that use different prefixes on a build system and on a target system. [default=`${CMAKE_INSTALL_PREFIX}`]
-DMESOS_INSTALL_TESTS=(TRUE|FALSE) Add test executables and their dependencies to the install output.