Building MariaDB on Windows

You are viewing an old version of this article. View the current version here.

The Windows build process for MariaDB 5.2 and later is compatible with MySQL5.5, so you can use the instructions on the MySQL CMake Wiki. The instructions here do not assume knowledge of the above.

Build Requirements

To build MariaDB you need the following:

  • Visual C++: We currently support Visual Studio 2010 to Visual Studio 13, including the (free) express editions (generally we try to support the two most recent versions).
  • Bazaar: Required to build older versions (up to 10.0) from the source tree. Use the standalone installer and choose the default install options.
  • Git: Required to build newer versions from the source tree.
    • NOTE: Git has an option to automatically convert end of line characters in text files to Windows style.
    • Do not use this option. Choose "checkout as-is,commit as-is" option in the installer, or run git config --global core.autocrlf false after the installation.
  • Bison from GnuWin32: Bison creates parts of the SQL parser. Choose "Complete package except sources" when downloading.
    • NOTE: Do not install this into your default path with spaces (e.g. under C:\Program Files\GnuWin32), the build will break due to this bison bug. Instead, install into C:\GnuWin32 instead.
    • Add C:\GnuWin32\bin to your system PATH after installation.
  • Strawberry perl: Used to run the test suite. ActiveState Perl is another Win32 Perl distribution and should work as well (but it is not as well tested).
  • Optional: If you intend to build the MSI packages, install Windows Installer XML version 3.9 or higher
  • Optional: Gnu Diff, recommended for MariaDB developers, it improves error output of test utility mysql-test-run.pl

Verify that bison.exe, bzr.exe or git.exe, cmake.exe and perl.exe can be found in PATH environment variable, with "where bison", "where bzr", and etc... from the command line prompt.

Building Windows Binaries

The above instructions assume MariaDB 5.2 or higher. For instructions how to build 5.1, look in the section "Old Style Build".

Branch the MariaDB bzr repository, or unpack the source archive. On the command prompt, switch to your source directory, then execute:

mkdir bld
cd bld
cmake ..
cmake --build . --config Relwithdebinfo

The above example builds a release configured for 32 bit systems in a subdirectory named bld. "cmake ..." is the configuration step, "cmake --build . --config Relwithdebinfo" is the build step.

Build Variations:

Debug builds

Building Debug version is done with:

cmake --build . --config Debug

x64 builds

By default, cmake will create 32 bit projects. For 64 bit, you must pass CMake the "generator" parameter using -G in the configuration step, e.g.:

cmake .. -G "Visual Studio 10 Win64"

for VS2010 or

cmake .. -G "Visual Studio 9 2008 Win64"

for VS2008.

For complete list of available generators, call "cmake" without any parameters.

IDE builds

Instead of calling "cmake --build" as above, open MySQL.sln. When Visual Studio starts, choose Build/Compile.

NMake builds

Ensure the Visual Studio environment variable are correctly set, e.g. build from "Visual Studio 2010 Command prompt" (Start=>All Programs=>Microsoft Visual Studio 2010=>Visual Studio tools=>Visual Studio Commad Prompt (2010)). It can be convenient to create a shortcut from to "Visual Studio Command Prompt(2010) on the desktop (navigate in start menu to find it, then rightclick=>Send To=>Desktop (create shortcut)" On the command line, execute

mkdir bld
cd bld
cmake .. -G "NMake Makefiles"
nmake

You can optionally pass -DCMAKE_BUILD_TYPE={Debug|RelWithDebInfo} to cmake to build either debug or release.

devenv builds

Ensure the Visual Studio environment variable are correctly set (see above). to build, execute

  devenv mysql.sln /build relwithdebinfo

or, for debug builds

  devenv mysql.sln /build debug

Optional build parameters

MySQL CMake Wiki describes how to use optional parameters in build. Perhaps single important parameter in MariaDB is WITH_EMBEDDED_SERVER (build with embedded server). It is not set by default in the build, since it effectively doubles the compilation time. Use cmake -DWITH_EMBEDDED_SERVER=1 to enable embedded builds.

Building the ZIP package

cmake --build . --config relwithdebinfo --target package

Building the MSI package

cmake --build . --config relwithdebinfo --target MSI

Some versions of CMake 2.8 (up to 2.8.3) require slightly different commands for building an MSI with VS2010

cmake --build . --config relwithdebinfo  --target win/packaging/msi

Including HeidiSQL in the MSI installer

Starting with MariaDB 5.2.7, it is possible to build an installer which includes 3rd party products, as described in MWL#200. Currently only HeidiSQL support is implemented, it is also included in the official builds. Use CMake parameter -DWITH_THIRD_PARTY=HeidiSQL to include it in the installer.

Code signing support for MariaDB release processing

MariaDB builds optionally support authenticode code signing with an optional parameter SIGNCODE. Use cmake -DSIGNCODE=1 during the configuration step to sign the binaries in the ZIP and MSI packages.

Important: for SIGNCODE=1 to work, the user who runs the build needs to install a valid authenticode digital certificate into his certificate store, otherwise the packaging step will fail.

Building packages for MariaDB releases

The full script to create the release in an out-of-source build with Visual Studio 2010 with signed binaries might look like:

mkdir bld
cd bld
cmake .. -DWITH_EMBEDDED_SERVER=1 -DSIGNCODE=1 -DWITH_THIRD_PARTY=HeidiSQL
cmake --build . --config relwithdebinfo --target package
cmake --build . --config relwithdebinfo  --target msi

This command sequence will produce a ZIP package (e.g mariadb-5.2.6-win32.zip) and MSI package (e.g mariadb-5.2.6-win32.msi) in the bld directory.

Miscellaneous

  • In 5.2 and later, Cygwin is not required for any build step and is not supported. Don't use it, if you can.
  • To compile OQGRAPH engine, Boost needed to be installed. Download Boost redistribution from http://www.boost.org/ and unpack it. Set environment variable BOOST_ROOT to point to the directory where you unpacked boost in the previous step. Note: OQGRAPH build is currently disabled on x64 due to Bug #756966

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.