forked from Mirrorlandia_minetest/minetest
Switch Irrlicht dependency to our own fork
-> https://github.com/minetest/irrlicht
This commit is contained in:
parent
3579dd2186
commit
91c9313c87
@ -61,6 +61,29 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
|
|||||||
|
|
||||||
# This is done here so that relative search paths are more reasonable
|
# This is done here so that relative search paths are more reasonable
|
||||||
find_package(Irrlicht)
|
find_package(Irrlicht)
|
||||||
|
if(BUILD_CLIENT AND NOT IRRLICHT_FOUND)
|
||||||
|
message(FATAL_ERROR "Irrlicht is required to build the client, but it was not found.")
|
||||||
|
elseif(IRRLICHT_INCLUDE_DIR STREQUAL "")
|
||||||
|
message(FATAL_ERROR "Irrlicht headers are required to build the server, but none found.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(CheckSymbolExists)
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES ${IRRLICHT_INCLUDE_DIR})
|
||||||
|
unset(HAS_FORKED_IRRLICHT CACHE)
|
||||||
|
check_symbol_exists(IRRLICHT_VERSION_MT "IrrCompileConfig.h" HAS_FORKED_IRRLICHT)
|
||||||
|
if(NOT HAS_FORKED_IRRLICHT)
|
||||||
|
string(CONCAT EXPLANATION_MSG
|
||||||
|
"Irrlicht found, but it is not Minetest's Irrlicht fork. "
|
||||||
|
"The Minetest team has forked Irrlicht to make their own customizations. "
|
||||||
|
"It can be found here: https://github.com/minetest/irrlicht")
|
||||||
|
if(BUILD_CLIENT)
|
||||||
|
message(FATAL_ERROR "${EXPLANATION_MSG}\n"
|
||||||
|
"Building the client with upstream Irrlicht is no longer possible.")
|
||||||
|
else()
|
||||||
|
message(WARNING "${EXPLANATION_MSG}\n"
|
||||||
|
"The server can still be built with upstream Irrlicht but this is DISCOURAGED.")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
20
README.md
20
README.md
@ -134,7 +134,7 @@ Compiling
|
|||||||
|------------|---------|------------|
|
|------------|---------|------------|
|
||||||
| GCC | 4.9+ | Can be replaced with Clang 3.4+ |
|
| GCC | 4.9+ | Can be replaced with Clang 3.4+ |
|
||||||
| CMake | 2.6+ | |
|
| CMake | 2.6+ | |
|
||||||
| Irrlicht | 1.7.3+ | |
|
| Irrlicht | - | Custom version required, see https://github.com/minetest/irrlicht |
|
||||||
| SQLite3 | 3.0+ | |
|
| SQLite3 | 3.0+ | |
|
||||||
| LuaJIT | 2.0+ | Bundled Lua 5.1 is used if not present |
|
| LuaJIT | 2.0+ | Bundled Lua 5.1 is used if not present |
|
||||||
| GMP | 5.0.0+ | Bundled mini-GMP is used if not present |
|
| GMP | 5.0.0+ | Bundled mini-GMP is used if not present |
|
||||||
@ -142,19 +142,19 @@ Compiling
|
|||||||
|
|
||||||
For Debian/Ubuntu users:
|
For Debian/Ubuntu users:
|
||||||
|
|
||||||
sudo apt install g++ make libc6-dev libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
|
sudo apt install g++ make libc6-dev cmake libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
|
||||||
|
|
||||||
For Fedora users:
|
For Fedora users:
|
||||||
|
|
||||||
sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel
|
sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel
|
||||||
|
|
||||||
For Arch users:
|
For Arch users:
|
||||||
|
|
||||||
sudo pacman -S base-devel libcurl-gnutls cmake libxxf86vm irrlicht libpng sqlite libogg libvorbis openal freetype2 jsoncpp gmp luajit leveldb ncurses
|
sudo pacman -S base-devel libcurl-gnutls cmake libxxf86vm libpng sqlite libogg libvorbis openal freetype2 jsoncpp gmp luajit leveldb ncurses
|
||||||
|
|
||||||
For Alpine users:
|
For Alpine users:
|
||||||
|
|
||||||
sudo apk add build-base irrlicht-dev cmake bzip2-dev libpng-dev jpeg-dev libxxf86vm-dev mesa-dev sqlite-dev libogg-dev libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev gmp-dev jsoncpp-dev luajit-dev
|
sudo apk add build-base cmake libpng-dev jpeg-dev libxxf86vm-dev mesa-dev sqlite-dev libogg-dev libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev gmp-dev jsoncpp-dev luajit-dev
|
||||||
|
|
||||||
#### Download
|
#### Download
|
||||||
|
|
||||||
@ -209,8 +209,8 @@ Run it:
|
|||||||
- You can disable the client build by specifying `-DBUILD_CLIENT=FALSE`.
|
- You can disable the client build by specifying `-DBUILD_CLIENT=FALSE`.
|
||||||
- You can select between Release and Debug build by `-DCMAKE_BUILD_TYPE=<Debug or Release>`.
|
- You can select between Release and Debug build by `-DCMAKE_BUILD_TYPE=<Debug or Release>`.
|
||||||
- Debug build is slower, but gives much more useful output in a debugger.
|
- Debug build is slower, but gives much more useful output in a debugger.
|
||||||
- If you build a bare server you don't need to have Irrlicht installed.
|
- If you build a bare server you don't need to have the Irrlicht library installed.
|
||||||
- In that case use `-DIRRLICHT_SOURCE_DIR=/the/irrlicht/source`.
|
- In that case use `-DIRRLICHT_INCLUDE_DIR=/some/where/irrlicht/include`.
|
||||||
|
|
||||||
### CMake options
|
### CMake options
|
||||||
|
|
||||||
@ -246,8 +246,6 @@ General options and their default values:
|
|||||||
|
|
||||||
Library specific options:
|
Library specific options:
|
||||||
|
|
||||||
BZIP2_INCLUDE_DIR - Linux only; directory where bzlib.h is located
|
|
||||||
BZIP2_LIBRARY - Linux only; path to libbz2.a/libbz2.so
|
|
||||||
CURL_DLL - Only if building with cURL on Windows; path to libcurl.dll
|
CURL_DLL - Only if building with cURL on Windows; path to libcurl.dll
|
||||||
CURL_INCLUDE_DIR - Only if building with cURL; directory where curl.h is located
|
CURL_INCLUDE_DIR - Only if building with cURL; directory where curl.h is located
|
||||||
CURL_LIBRARY - Only if building with cURL; path to libcurl.a/libcurl.so/libcurl.lib
|
CURL_LIBRARY - Only if building with cURL; path to libcurl.a/libcurl.so/libcurl.lib
|
||||||
@ -276,7 +274,6 @@ Library specific options:
|
|||||||
SPATIAL_LIBRARY - Only when building with LibSpatial; path to libspatialindex_c.so/spatialindex-32.lib
|
SPATIAL_LIBRARY - Only when building with LibSpatial; path to libspatialindex_c.so/spatialindex-32.lib
|
||||||
LUA_INCLUDE_DIR - Only if you want to use LuaJIT; directory where luajit.h is located
|
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
|
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
|
|
||||||
OGG_DLL - Only if building with sound on Windows; path to libogg.dll
|
OGG_DLL - Only if building with sound on Windows; path to libogg.dll
|
||||||
OGG_INCLUDE_DIR - Only if building with sound; directory that contains an ogg directory which contains ogg.h
|
OGG_INCLUDE_DIR - Only if building with sound; directory that contains an ogg directory which contains ogg.h
|
||||||
OGG_LIBRARY - Only if building with sound; path to libogg.a/libogg.so/libogg.dll.a
|
OGG_LIBRARY - Only if building with sound; path to libogg.a/libogg.so/libogg.dll.a
|
||||||
@ -314,9 +311,10 @@ It is highly recommended to use vcpkg as package manager.
|
|||||||
|
|
||||||
After you successfully built vcpkg you can easily install the required libraries:
|
After you successfully built vcpkg you can easily install the required libraries:
|
||||||
```powershell
|
```powershell
|
||||||
vcpkg install irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit gmp jsoncpp --triplet x64-windows
|
vcpkg install zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit gmp jsoncpp --triplet x64-windows
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- **Note that you currently need to build irrlicht on your own**
|
||||||
- `curl` is optional, but required to read the serverlist, `curl[winssl]` is required to use the content store.
|
- `curl` is optional, but required to read the serverlist, `curl[winssl]` is required to use the content store.
|
||||||
- `openal-soft`, `libvorbis` and `libogg` are optional, but required to use sound.
|
- `openal-soft`, `libvorbis` and `libogg` are optional, but required to use sound.
|
||||||
- `freetype` is optional, it allows true-type font rendering.
|
- `freetype` is optional, it allows true-type font rendering.
|
||||||
|
@ -1,44 +1,11 @@
|
|||||||
|
|
||||||
mark_as_advanced(IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR IRRLICHT_DLL)
|
mark_as_advanced(IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR IRRLICHT_DLL)
|
||||||
set(IRRLICHT_SOURCE_DIR "" CACHE PATH "Path to irrlicht source directory (optional)")
|
|
||||||
|
|
||||||
|
# Find include directory and libraries
|
||||||
|
|
||||||
# Find include directory
|
if(TRUE)
|
||||||
|
|
||||||
if(NOT IRRLICHT_SOURCE_DIR STREQUAL "")
|
|
||||||
set(IRRLICHT_SOURCE_DIR_INCLUDE
|
|
||||||
"${IRRLICHT_SOURCE_DIR}/include"
|
|
||||||
)
|
|
||||||
|
|
||||||
set(IRRLICHT_LIBRARY_NAMES libIrrlicht.a Irrlicht Irrlicht.lib)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
if(MSVC)
|
|
||||||
set(IRRLICHT_SOURCE_DIR_LIBS "${IRRLICHT_SOURCE_DIR}/lib/Win32-visualstudio")
|
|
||||||
set(IRRLICHT_LIBRARY_NAMES Irrlicht.lib)
|
|
||||||
else()
|
|
||||||
set(IRRLICHT_SOURCE_DIR_LIBS "${IRRLICHT_SOURCE_DIR}/lib/Win32-gcc")
|
|
||||||
set(IRRLICHT_LIBRARY_NAMES libIrrlicht.a libIrrlicht.dll.a)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
set(IRRLICHT_SOURCE_DIR_LIBS "${IRRLICHT_SOURCE_DIR}/lib/Linux")
|
|
||||||
set(IRRLICHT_LIBRARY_NAMES libIrrlicht.a)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_path(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h
|
|
||||||
PATHS
|
|
||||||
${IRRLICHT_SOURCE_DIR_INCLUDE}
|
|
||||||
NO_DEFAULT_PATH
|
|
||||||
)
|
|
||||||
|
|
||||||
find_library(IRRLICHT_LIBRARY NAMES ${IRRLICHT_LIBRARY_NAMES}
|
|
||||||
PATHS
|
|
||||||
${IRRLICHT_SOURCE_DIR_LIBS}
|
|
||||||
NO_DEFAULT_PATH
|
|
||||||
)
|
|
||||||
|
|
||||||
else()
|
|
||||||
find_path(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h
|
find_path(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h
|
||||||
|
DOC "Path to the directory with Irrlicht includes"
|
||||||
PATHS
|
PATHS
|
||||||
/usr/local/include/irrlicht
|
/usr/local/include/irrlicht
|
||||||
/usr/include/irrlicht
|
/usr/include/irrlicht
|
||||||
@ -46,7 +13,8 @@ else()
|
|||||||
PATH_SUFFIXES "include/irrlicht"
|
PATH_SUFFIXES "include/irrlicht"
|
||||||
)
|
)
|
||||||
|
|
||||||
find_library(IRRLICHT_LIBRARY NAMES libIrrlicht.so libIrrlicht.a Irrlicht
|
find_library(IRRLICHT_LIBRARY NAMES libIrrlicht Irrlicht
|
||||||
|
DOC "Path to the Irrlicht library file"
|
||||||
PATHS
|
PATHS
|
||||||
/usr/local/lib
|
/usr/local/lib
|
||||||
/usr/lib
|
/usr/lib
|
||||||
@ -54,19 +22,14 @@ else()
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Users will likely need to edit these
|
||||||
|
mark_as_advanced(CLEAR IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR)
|
||||||
|
|
||||||
# On Windows, find the DLL for installation
|
# On Windows, find the DLL for installation
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# If VCPKG_APPLOCAL_DEPS is ON, dll's are automatically handled by VCPKG
|
# If VCPKG_APPLOCAL_DEPS is ON, dll's are automatically handled by VCPKG
|
||||||
if(NOT VCPKG_APPLOCAL_DEPS)
|
if(NOT VCPKG_APPLOCAL_DEPS)
|
||||||
if(MSVC)
|
|
||||||
set(IRRLICHT_COMPILER "VisualStudio")
|
|
||||||
else()
|
|
||||||
set(IRRLICHT_COMPILER "gcc")
|
|
||||||
endif()
|
|
||||||
find_file(IRRLICHT_DLL NAMES Irrlicht.dll
|
find_file(IRRLICHT_DLL NAMES Irrlicht.dll
|
||||||
PATHS
|
|
||||||
"${IRRLICHT_SOURCE_DIR}/bin/Win32-${IRRLICHT_COMPILER}"
|
|
||||||
DOC "Path of the Irrlicht dll (for installation)"
|
DOC "Path of the Irrlicht dll (for installation)"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@ -295,7 +295,6 @@ else()
|
|||||||
endif(NOT HAIKU AND NOT APPLE)
|
endif(NOT HAIKU AND NOT APPLE)
|
||||||
|
|
||||||
find_package(JPEG REQUIRED)
|
find_package(JPEG REQUIRED)
|
||||||
find_package(BZip2 REQUIRED)
|
|
||||||
find_package(PNG REQUIRED)
|
find_package(PNG REQUIRED)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
find_library(CARBON_LIB Carbon REQUIRED)
|
find_library(CARBON_LIB Carbon REQUIRED)
|
||||||
|
Loading…
Reference in New Issue
Block a user