Difference between revisions of "CMake Options"

From Minetest Developer Wiki
Jump to navigation Jump to search
(Reference to README, mark as obsolete.)
(19 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This page is supposed to document the cmake switches you can use when building Minetest.
+
This page is supposed to document the CMake switches you can use when building Minetest. These options are properly documented in the [https://github.com/minetest/minetest/blob/master/README.txt#L165-L245 official README file]. Since there can be some changes, this page might be outdated.
  
== General options ==
 
  
<code>BUILD_CLIENT</code> - Build Minetest client
 
  
<code>BUILD_SERVER</code> - Build Minetest server
+
== General options ==
  
<code>CMAKE_BUILD_TYPE</code> - Type of build (Release vs. Debug)
+
{| class="wikitable collapsible sortable"
 +
! Name
 +
! Functionality
 +
! Default Value
 +
|-
 +
|<code>BUILD_CLIENT</code>
 +
|Build Minetest client
 +
|YES
 +
|-
 +
|<code>BUILD_SERVER</code>
 +
|Build Minetest server
 +
|YES on Linux; NO on Windows
 +
|-
 +
|<code>CMAKE_BUILD_TYPE</code>
 +
|Type of build (Release vs. Debug)
 
* ''Release'' - Release build
 
* ''Release'' - Release build
 
* ''Debug'' - Debug build
 
* ''Debug'' - Debug build
 
* ''RelWithDebInfo'' - Release build with Debug information
 
* ''RelWithDebInfo'' - Release build with Debug information
* ''MinSizeRel'' - Release build with <code>-Os</code> passed to compiler to make executable as small as possible
+
* ''MinSizeRel'' - Release build with smaller executable
 +
|Release
 +
|-
 +
|<code>ENABLE_CURL</code>
 +
|Build with cURL; Public serverlist and remote media fetching via HTTP
 +
|YES
 +
|-
 +
|<code>ENABLE_FREETYPE</code>
 +
|Build with Freetype2; TTF fonts
 +
|NO
 +
|-
 +
|<code>ENABLE_GETTEXT</code>
 +
|Build with Gettext; Translations
 +
|NO
 +
|-
 +
|<code>ENABLE_GLES</code>
 +
|Search for Open GLES headers & libraries and use them
 +
|NO
 +
|-
 +
|<code>ENABLE_LEVELDB</code>
 +
|Build with LevelDB; LevelDB map backend
 +
|NO
 +
|-
 +
|<code>ENABLE_REDIS</code>
 +
|Build with libhiredis; redis map backend
 +
|YES
 +
|-
 +
|<code>ENABLE_SOUND</code>
 +
|Build with OpenAL, libogg & libvorbis; in-game sounds
 +
|YES
 +
|-
 +
|<code>ENABLE_LUAJIT</code>
 +
|Build with LuaJIT; faster Lua execution
 +
|YES
 +
|-
 +
|<code>RUN_IN_PLACE</code>
 +
|Create a portable install (worlds, settings etc. in current directory)
 +
|NO on Linux; YES on Windows
 +
|-
 +
|<code>USE_GPROF</code>
 +
|Enable profiling using GProf
 +
|NO
 +
|-
 +
|<code>VERSION_EXTRA</code>
 +
|Text to append to version (e.g. VERSION_EXTRA=foobar -> Minetest 0.4.9-foobar)
 +
|}
 +
== Library specific ==
 +
 
 +
=== General ===
 +
 
 +
<code>BZIP2_INCLUDE_DIR</code> - '''Linux''' only; directory where ''bzlib.h'' is located
 +
 
 +
<code>BZIP2_LIBRARY</code> - '''Linux''' only; path to ''libbz2.a''/''libbz2.so''
 +
 
 +
<code>IRRLICHT_DLL</code> - path to ''Irrlicht.dll''
 +
 
 +
<code>IRRLICHT_INCLUDE_DIR</code> - directory that contains ''IrrCompileConfig.h''
 +
 
 +
<code>IRRLICHT_LIBRARY</code> - path to ''libIrrlicht.a''/''libIrrlicht.so''/''libIrrlicht.dll.a''
 +
 
 +
<code>LUA_INCLUDE_DIR</code> - Only if you want to use '''LuaJIT'''; directory where ''luajit.h'' is located
 +
 
 +
<code>LUA_LIBRARY</code> - Only if you want to use '''LuaJIT'''; path to ''libluajit.a''/''libluajit.so''
 +
 
 +
<code>MINGWM10_DLL</code> - Only if compiling with '''MinGW'''; path to ''mingwm10.dll''
 +
 
 +
<code>SQLITE3_INCLUDE_DIR</code> - Only if you want to use '''SQLite from your OS'''; directory that contains ''sqlite3.h''
  
<code>ENABLE_CURL</code> - Whether to build with cURL; Enables use of online mod repo, public serverlist, and remote media fetching via http.
+
<code>SQLITE3_LIBRARY</code> - Only if you want to use the '''SQLite from your OS'''; path to ''libsqlite3.a''/''libsqlite3.so''
  
<code>ENABLE_FREETYPE</code> - Whether to build with Freetype2; Allows using TTF fonts
+
<code>XXF86VM_LIBRARY</code> - Only on '''Linux'''; path to ''libXXf86vm.a''/''libXXf86vm.so''
  
<code>ENABLE_GETTEXT</code> - Whether to build with Gettext; Allows using translations
+
<code>ZLIB_DLL</code> - Only on '''Windows'''; path to ''zlibwapi.dll''
  
<code>ENABLE_GLES</code> - Whether to search for Open GLES headers & libraries and use them
+
<code>ZLIB_INCLUDE_DIR</code> - directory where ''zlib.h'' is located
  
<code>ENABLE_LEVELDB</code> - Whether to build with LevelDB; Enables use of LevelDB, which is much faster than SQLite, as map backend
+
<code>ZLIB_LIBRARY</code> - path to ''libz.a''/''libz.so''/''zlibwapi.lib''
  
<code>ENABLE_SOUND</code> - Whether to build with OpenAL, libogg & libvorbis; in-game Sounds
+
=== cURL ===
  
<code>RUN_IN_PLACE</code> - Whether to create a portable install (worlds, settings etc. in current directory)
+
<code>CURL_DLL</code> - Only on '''Windows'''; path to ''libcurl.dll''
  
<code>USE_GPROF</code> - Enable profiling using GProf
+
<code>CURL_INCLUDE_DIR</code> - directory where ''curl.h'' is located
  
<code>VERSION_EXTRA</code> - Text too append to version (e.g. VERSION_EXTRA=foobar -> Minetest 0.4.9-foobar)
+
<code>CURL_LIBRARY</code> - path to ''libcurl.a''/''libcurl.so''/''libcurl.lib''
  
== Library specific ==
+
=== OpenGL ES ===
 +
 
 +
<code>EGL_INCLUDE_DIR</code> - directory that contains ''egl.h''
 +
 
 +
<code>EGL_LIBRARY</code> - path to ''libEGL.a''/''libEGL.so''
 +
 
 +
<code>OPENGLES2_INCLUDE_DIR</code> - directory that contains ''gl2.h''
 +
 
 +
<code>OPENGLES2_LIBRARY</code> - path to ''libGLESv2.a''/''libGLESv2.so''
 +
 
 +
=== Freetype2 ===
 +
 
 +
<code>FREETYPE_INCLUDE_DIR_freetype2</code> - directory that contains an ''freetype'' directory with files such as ''ftimage.h'' in it
  
<code>BZIP2_INCLUDE_DIR</code> - Linux only; directory where ''bzlib.h'' is located
+
<code>FREETYPE_INCLUDE_DIR_ft2build</code> - directory that contains ''ft2build.h''
  
<code>BZIP2_LIBRARY</code> - Linux only; path to ''libbz2.a''/''libbz2.so''
+
<code>FREETYPE_LIBRARY</code> - path to ''libfreetype.a''/''libfreetype.so''/''freetype.lib''
  
<code>CURL_DLL</code> - Only if building with cURL on Windows; path to ''libcurl.dll''
+
=== Gettext ===
  
<code>CURL_INCLUDE_DIR</code> - Only if building with cURL; directory where ''curl.h'' is located
+
<code>GETTEXT_DLL</code> - Only on '''Windows'''; path to ''libintl3.dll''
  
<code>CURL_LIBRARY</code> - Only if building with cURL; path to ''libcurl.a''/''libcurl.so''/''libcurl.lib''
+
<code>GETTEXT_ICONV_DLL</code> - Only on '''Windows'''; path to ''libiconv2.dll''
  
<code>EGL_INCLUDE_DIR</code> - Only if building with GLES; directory that contains ''egl.h''
+
<code>GETTEXT_INCLUDE_DIR</code> - directory that contains ''iconv.h''
  
<code>EGL_LIBRARY</code> - Only if building with GLES; path to ''libEGL.a''/''libEGL.so''
+
<code>GETTEXT_LIBRARY</code> - Only on '''Windows'''; path to ''libintl.dll.a''
  
<code>FREETYPE_INCLUDE_DIR_freetype2</code> - Only if building with Freetype2; directory that contains an ''freetype'' directory with files such as ''ftimage.h'' in it
+
<code>GETTEXT_MSGFMT</code> - path to ''msgfmt''/''msgfmt.exe''
  
<code>FREETYPE_INCLUDE_DIR_ft2build</code> - Only if building with Freetype2; directory that contains ''ft2build.h''
+
=== LevelDB ===
  
<code>FREETYPE_LIBRARY</code> - Only if building with Freetype2; path to ''libfreetype.a''/''libfreetype.so''/''freetype.lib''
+
<code>LEVELDB_INCLUDE_DIR</code> - directory that contains ''db.h''
  
<code>GETTEXT_DLL</code> - Only when building with Gettext on Windows; path to ''libintl3.dll''
+
<code>LEVELDB_LIBRARY</code> - path to ''libleveldb.a''/''libleveldb.so''/''libleveldb.dll''
  
<code>GETTEXT_ICONV_DLL</code> - Only when building with Gettext on Windows; path to ''libiconv2.dll''
+
=== Redis ===
  
<code>GETTEXT_INCLUDE_DIR</code> - Only when building with Gettext; directory that contains ''iconv.h''
+
<code>REDIS_INCLUDE_DIR</code> - directory that contains ''hiredis.h''
  
<code>GETTEXT_LIBRARY</code> - Only when building with Gettext on Windows; path to ''libintl.dll.a''
+
<code>REDIS_LIBRARY</code> - path to ''libhiredis.a''/''libhiredis.so''
  
<code>GETTEXT_MSGFMT</code> - Only when building with Gettext; path to ''msgfmt''/''msgfmt.exe''
+
=== Sound ===
  
<code>IRRLICHT_DLL</code> - path to ''Irrlicht.dll''
+
<code>OGG_DLL</code> - Only on '''Windows'''; path to ''libogg.dll''
  
<code>IRRLICHT_INCLUDE_DIR</code> - directory that contains ''IrrCompileConfig.h''
+
<code>OGG_INCLUDE_DIR</code> - directory that contains an ''ogg'' directory which contains ''ogg.h''
  
<code>IRRLICHT_LIBRARY</code> - path to ''libIrrlicht.a''/''libIrrlicht.so''/''libIrrlicht.dll.a''
+
<code>OGG_LIBRARY</code> - path to ''libogg.a''/''libogg.so''/''libogg.dll.a''
  
<code>LEVELDB_INCLUDE_DIR</code> - Only when building with LevelDB; directory that contains ''db.h''
+
<code>OPENAL_DLL</code> - Only on '''Windows'''; path to ''OpenAL32.dll''
  
<code>LEVELDB_LIBRARY</code> - Only when building with LevelDB; path to ''libleveldb.a''/''libleveldb.so''/''libleveldb.dll''
+
<code>OPENAL_INCLUDE_DIR</code> - directory that contains an ''AL'' directory which contains ''al.h''
  
<code>LUA_INCLUDE_DIR</code> - Only if you want to use LuaJIT; directory where ''luajit.h'' is located
+
<code>OPENAL_LIBRARY</code> - path to ''libopenal.a''/''libopenal.so''/''OpenAL32.lib''
  
<code>LUA_LIBRARY</code> - Only if you want to use LuaJIT; path to ''libluajit.a''/''libluajit.so''
+
<code>VORBISFILE_DLL</code> - Only on '''Windows'''; path to ''libvorbisfile-3.dll''
  
<code>MINGWM10_DLL</code> - Only if compiling with MinGW; path to ''mingwm10.dll''
+
<code>VORBISFILE_LIBRARY</code> - path to ''libvorbisfile.a''/''libvorbisfile.so''/''libvorbisfile.dll.a''
  
<code>OGG_DLL</code> - Only if building with sound on Windows; path to ''libogg.dll''
+
<code>VORBIS_DLL</code> - Only on '''Windows'''; path to ''libvorbis-0.dll''
  
<code>OGG_INCLUDE_DIR</code> - Only if building with sound; directory that contains an ''ogg'' directory which contains ''ogg.h''
+
<code>VORBIS_INCLUDE_DIR</code> - directory that contains a directory ''vorbis'' with ''vorbisenc.h'' inside
  
<code>OGG_LIBRARY</code> - Only if building with sound; path to ''libogg.a''/''libogg.so''/''libogg.dll.a''
+
<code>VORBIS_LIBRARY</code> - path to ''libvorbis.a''/''libvorbis.so''/''libvorbis.dll.a''
  
'''to be completed by sfan5'''
+
[[Category:Compiling Minetest]]
 +
[[Category:Obsolete]]

Revision as of 20:43, 15 April 2017

This page is supposed to document the CMake switches you can use when building Minetest. These options are properly documented in the official README file. Since there can be some changes, this page might be outdated.


General options

Name Functionality Default Value
BUILD_CLIENT Build Minetest client YES
BUILD_SERVER Build Minetest server YES on Linux; NO on Windows
CMAKE_BUILD_TYPE Type of build (Release vs. Debug)
  • Release - Release build
  • Debug - Debug build
  • RelWithDebInfo - Release build with Debug information
  • MinSizeRel - Release build with smaller executable
Release
ENABLE_CURL Build with cURL; Public serverlist and remote media fetching via HTTP YES
ENABLE_FREETYPE Build with Freetype2; TTF fonts NO
ENABLE_GETTEXT Build with Gettext; Translations NO
ENABLE_GLES Search for Open GLES headers & libraries and use them NO
ENABLE_LEVELDB Build with LevelDB; LevelDB map backend NO
ENABLE_REDIS Build with libhiredis; redis map backend YES
ENABLE_SOUND Build with OpenAL, libogg & libvorbis; in-game sounds YES
ENABLE_LUAJIT Build with LuaJIT; faster Lua execution YES
RUN_IN_PLACE Create a portable install (worlds, settings etc. in current directory) NO on Linux; YES on Windows
USE_GPROF Enable profiling using GProf NO
VERSION_EXTRA Text to append to version (e.g. VERSION_EXTRA=foobar -> Minetest 0.4.9-foobar)

Library specific

General

BZIP2_INCLUDE_DIR - Linux only; directory where bzlib.h is located

BZIP2_LIBRARY - Linux only; path to libbz2.a/libbz2.so

IRRLICHT_DLL - path to Irrlicht.dll

IRRLICHT_INCLUDE_DIR - directory that contains IrrCompileConfig.h

IRRLICHT_LIBRARY - path to libIrrlicht.a/libIrrlicht.so/libIrrlicht.dll.a

LUA_INCLUDE_DIR - Only if you want to use LuaJIT; directory where luajit.h is located

LUA_LIBRARY - Only if you want to use LuaJIT; path to libluajit.a/libluajit.so

MINGWM10_DLL - Only if compiling with MinGW; path to mingwm10.dll

SQLITE3_INCLUDE_DIR - Only if you want to use SQLite from your OS; directory that contains sqlite3.h

SQLITE3_LIBRARY - Only if you want to use the SQLite from your OS; path to libsqlite3.a/libsqlite3.so

XXF86VM_LIBRARY - Only on Linux; path to libXXf86vm.a/libXXf86vm.so

ZLIB_DLL - Only on Windows; path to zlibwapi.dll

ZLIB_INCLUDE_DIR - directory where zlib.h is located

ZLIB_LIBRARY - path to libz.a/libz.so/zlibwapi.lib

cURL

CURL_DLL - Only on Windows; path to libcurl.dll

CURL_INCLUDE_DIR - directory where curl.h is located

CURL_LIBRARY - path to libcurl.a/libcurl.so/libcurl.lib

OpenGL ES

EGL_INCLUDE_DIR - directory that contains egl.h

EGL_LIBRARY - path to libEGL.a/libEGL.so

OPENGLES2_INCLUDE_DIR - directory that contains gl2.h

OPENGLES2_LIBRARY - path to libGLESv2.a/libGLESv2.so

Freetype2

FREETYPE_INCLUDE_DIR_freetype2 - directory that contains an freetype directory with files such as ftimage.h in it

FREETYPE_INCLUDE_DIR_ft2build - directory that contains ft2build.h

FREETYPE_LIBRARY - path to libfreetype.a/libfreetype.so/freetype.lib

Gettext

GETTEXT_DLL - Only on Windows; path to libintl3.dll

GETTEXT_ICONV_DLL - Only on Windows; path to libiconv2.dll

GETTEXT_INCLUDE_DIR - directory that contains iconv.h

GETTEXT_LIBRARY - Only on Windows; path to libintl.dll.a

GETTEXT_MSGFMT - path to msgfmt/msgfmt.exe

LevelDB

LEVELDB_INCLUDE_DIR - directory that contains db.h

LEVELDB_LIBRARY - path to libleveldb.a/libleveldb.so/libleveldb.dll

Redis

REDIS_INCLUDE_DIR - directory that contains hiredis.h

REDIS_LIBRARY - path to libhiredis.a/libhiredis.so

Sound

OGG_DLL - Only on Windows; path to libogg.dll

OGG_INCLUDE_DIR - directory that contains an ogg directory which contains ogg.h

OGG_LIBRARY - path to libogg.a/libogg.so/libogg.dll.a

OPENAL_DLL - Only on Windows; path to OpenAL32.dll

OPENAL_INCLUDE_DIR - directory that contains an AL directory which contains al.h

OPENAL_LIBRARY - path to libopenal.a/libopenal.so/OpenAL32.lib

VORBISFILE_DLL - Only on Windows; path to libvorbisfile-3.dll

VORBISFILE_LIBRARY - path to libvorbisfile.a/libvorbisfile.so/libvorbisfile.dll.a

VORBIS_DLL - Only on Windows; path to libvorbis-0.dll

VORBIS_INCLUDE_DIR - directory that contains a directory vorbis with vorbisenc.h inside

VORBIS_LIBRARY - path to libvorbis.a/libvorbis.so/libvorbis.dll.a