mirror of
https://github.com/minetest/minetest.git
synced 2025-02-17 02:22:26 +01:00
Build with the imported IrrlichtMt at irr
Also remove the now useless options (like IRRLICHT_INCLUDE_DIR) and update download instructions, CI and similar. Co-authored-by: sfan5 <sfan5@live.de>
This commit is contained in:
2
.github/workflows/linux.yml
vendored
2
.github/workflows/linux.yml
vendored
@ -11,7 +11,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- 'cmake/Modules/**'
|
||||
- 'util/ci/**'
|
||||
- 'misc/irrlichtmt_tag.txt'
|
||||
- 'Dockerfile'
|
||||
- '.dockerignore'
|
||||
- '.github/workflows/linux.yml'
|
||||
@ -24,7 +23,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- 'cmake/Modules/**'
|
||||
- 'util/ci/**'
|
||||
- 'misc/irrlichtmt_tag.txt'
|
||||
- 'Dockerfile'
|
||||
- '.dockerignore'
|
||||
- '.github/workflows/linux.yml'
|
||||
|
1
.github/workflows/macos.yml
vendored
1
.github/workflows/macos.yml
vendored
@ -33,7 +33,6 @@ jobs:
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
git clone https://github.com/minetest/irrlicht lib/irrlichtmt --depth 1 -b $(cat misc/irrlichtmt_tag.txt)
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. \
|
||||
|
7
.github/workflows/windows.yml
vendored
7
.github/workflows/windows.yml
vendored
@ -11,7 +11,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- 'cmake/Modules/**'
|
||||
- 'util/buildbot/**'
|
||||
- 'misc/irrlichtmt_tag.txt'
|
||||
- 'misc/*.manifest'
|
||||
- '.github/workflows/windows.yml'
|
||||
pull_request:
|
||||
@ -23,7 +22,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- 'cmake/Modules/**'
|
||||
- 'util/buildbot/**'
|
||||
- 'misc/irrlichtmt_tag.txt'
|
||||
- 'misc/*.manifest'
|
||||
- '.github/workflows/windows.yml'
|
||||
|
||||
@ -97,11 +95,6 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Checkout IrrlichtMt
|
||||
run: |
|
||||
$ref = @(Get-Content misc\irrlichtmt_tag.txt)
|
||||
git clone https://github.com/minetest/irrlicht lib\irrlichtmt --depth 1 -b $ref[0]
|
||||
|
||||
- name: Restore from cache and run vcpkg
|
||||
uses: lukka/run-vcpkg@v7
|
||||
with:
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -119,7 +119,7 @@ compile_commands.json
|
||||
*.sln
|
||||
.vs/
|
||||
|
||||
# Optional user provided library folder
|
||||
# Old irrlichtmt. Still ignored to make bisecting easier.
|
||||
lib/irrlichtmt
|
||||
|
||||
# Generated mod storage database
|
||||
|
@ -91,27 +91,12 @@ if(ANDROID)
|
||||
endif()
|
||||
|
||||
|
||||
set(IRRLICHTMT_BUILD_DIR "" CACHE PATH "Path to IrrlichtMt build directory.")
|
||||
if(ANDROID)
|
||||
# currently manually provided
|
||||
elseif(NOT "${IRRLICHTMT_BUILD_DIR}" STREQUAL "")
|
||||
find_package(IrrlichtMt QUIET
|
||||
PATHS "${IRRLICHTMT_BUILD_DIR}"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
if(NOT TARGET IrrlichtMt::IrrlichtMt)
|
||||
# find_package() searches certain subdirectories. ${PATH}/cmake is not
|
||||
# the only one, but it is the one where IrrlichtMt is supposed to export
|
||||
# IrrlichtMtConfig.cmake
|
||||
message(FATAL_ERROR "Could not find IrrlichtMtConfig.cmake in ${IRRLICHTMT_BUILD_DIR}/cmake.")
|
||||
endif()
|
||||
elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lib/irrlichtmt")
|
||||
message(STATUS "Using user-provided IrrlichtMt at subdirectory 'lib/irrlichtmt'")
|
||||
if(TRUE)
|
||||
message(STATUS "Using imported IrrlichtMt at subdirectory 'irr'")
|
||||
if(BUILD_CLIENT)
|
||||
# tell IrrlichtMt to create a static library
|
||||
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared library" FORCE)
|
||||
add_subdirectory(lib/irrlichtmt EXCLUDE_FROM_ALL)
|
||||
add_subdirectory(irr EXCLUDE_FROM_ALL)
|
||||
unset(BUILD_SHARED_LIBS CACHE)
|
||||
|
||||
if(NOT TARGET IrrlichtMt)
|
||||
@ -120,44 +105,7 @@ elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lib/irrlichtmt")
|
||||
else()
|
||||
add_library(IrrlichtMt::IrrlichtMt INTERFACE IMPORTED)
|
||||
set_target_properties(IrrlichtMt::IrrlichtMt PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/lib/irrlichtmt/include")
|
||||
endif()
|
||||
else()
|
||||
find_package(IrrlichtMt QUIET)
|
||||
if(NOT TARGET IrrlichtMt::IrrlichtMt)
|
||||
string(CONCAT explanation_msg
|
||||
"You must install IrrlichMt as described in docs/compiling/\n")
|
||||
if(BUILD_CLIENT)
|
||||
message(FATAL_ERROR "IrrlichtMt is required to build the client, but it was not found.\n${explanation_msg}")
|
||||
endif()
|
||||
|
||||
include(MinetestFindIrrlichtHeaders)
|
||||
if(NOT IRRLICHT_INCLUDE_DIR)
|
||||
message(FATAL_ERROR "IrrlichtMt headers are required to build the server, but none found.\n${explanation_msg}")
|
||||
endif()
|
||||
message(STATUS "Found IrrlichtMt headers: ${IRRLICHT_INCLUDE_DIR}")
|
||||
add_library(IrrlichtMt::IrrlichtMt INTERFACE IMPORTED)
|
||||
# Note that we can't use target_include_directories() since that doesn't work for IMPORTED targets before CMake 3.11
|
||||
set_target_properties(IrrlichtMt::IrrlichtMt PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${IRRLICHT_INCLUDE_DIR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(ANDROID)
|
||||
# skipped for now
|
||||
elseif(BUILD_CLIENT AND TARGET IrrlichtMt::IrrlichtMt)
|
||||
# retrieve version somehow
|
||||
if(NOT IrrlichtMt_VERSION)
|
||||
get_target_property(IrrlichtMt_VERSION IrrlichtMt VERSION)
|
||||
endif()
|
||||
message(STATUS "Found IrrlichtMt ${IrrlichtMt_VERSION}")
|
||||
|
||||
set(TARGET_VER_S 1.9.0mt15)
|
||||
string(REPLACE "mt" "." TARGET_VER ${TARGET_VER_S})
|
||||
if(IrrlichtMt_VERSION VERSION_LESS ${TARGET_VER})
|
||||
message(FATAL_ERROR "At least IrrlichtMt ${TARGET_VER_S} is required to build")
|
||||
elseif(NOT DEVELOPMENT_BUILD AND IrrlichtMt_VERSION VERSION_GREATER ${TARGET_VER})
|
||||
message(FATAL_ERROR "IrrlichtMt ${TARGET_VER_S} is required to build")
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/irr/include")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
ARG DOCKER_IMAGE=alpine:3.19
|
||||
FROM $DOCKER_IMAGE AS dev
|
||||
|
||||
ENV IRRLICHT_VERSION master
|
||||
ENV SPATIALINDEX_VERSION master
|
||||
ENV LUAJIT_VERSION v2.1
|
||||
|
||||
@ -30,9 +29,7 @@ RUN git clone --recursive https://github.com/jupp0r/prometheus-cpp && \
|
||||
git clone --recursive https://luajit.org/git/luajit.git -b ${LUAJIT_VERSION} && \
|
||||
cd luajit && \
|
||||
make amalg && make install && \
|
||||
cd /usr/src/ && \
|
||||
git clone --depth=1 https://github.com/minetest/irrlicht -b ${IRRLICHT_VERSION} && \
|
||||
cp -r irrlicht/include /usr/include/irrlichtmt
|
||||
cd /usr/src/
|
||||
|
||||
FROM dev as builder
|
||||
|
||||
@ -48,6 +45,7 @@ COPY lib /usr/src/minetest/lib
|
||||
COPY misc /usr/src/minetest/misc
|
||||
COPY po /usr/src/minetest/po
|
||||
COPY src /usr/src/minetest/src
|
||||
COPY irr /usr/src/minetest/irr
|
||||
COPY textures /usr/src/minetest/textures
|
||||
|
||||
WORKDIR /usr/src/minetest
|
||||
|
@ -75,7 +75,7 @@ task prepareAssets() {
|
||||
from "${projRoot}/client/shaders" into "${assetsFolder}/client/shaders"
|
||||
}
|
||||
copy {
|
||||
from "../native/deps/armeabi-v7a/Irrlicht/Shaders" into "${assetsFolder}/client/shaders/Irrlicht"
|
||||
from "${projRoot}/irr/media/Shaders" into "${assetsFolder}/client/shaders/Irrlicht"
|
||||
}
|
||||
copy {
|
||||
from "${projRoot}/fonts" include "*.ttf" into "${assetsFolder}/fonts"
|
||||
|
@ -52,7 +52,7 @@ if (new File(depsDir, 'armeabi-v7a').exists()) {
|
||||
task downloadDeps(type: Download) {
|
||||
def depsZip = new File(buildDir, 'deps.zip')
|
||||
|
||||
src 'https://github.com/minetest/minetest_android_deps/releases/download/latest/deps.zip'
|
||||
src 'https://github.com/minetest/minetest_android_deps/releases/download/latest/deps-lite.zip'
|
||||
dest depsZip
|
||||
overwrite false
|
||||
|
||||
|
@ -1,31 +1,27 @@
|
||||
set(DEPS "${CMAKE_SOURCE_DIR}/android/native/deps/${ANDROID_ABI}")
|
||||
|
||||
add_library(IrrlichtMt::IrrlichtMt STATIC IMPORTED)
|
||||
set_target_properties(IrrlichtMt::IrrlichtMt PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${DEPS}/Irrlicht/include)
|
||||
set_target_properties(IrrlichtMt::IrrlichtMt PROPERTIES
|
||||
IMPORTED_LOCATION ${DEPS}/Irrlicht/libIrrlichtMt.a)
|
||||
set_target_properties(IrrlichtMt::IrrlichtMt PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES "EGL;GLESv1_CM;GLESv2;${DEPS}/Irrlicht/libpng.a;${DEPS}/Irrlicht/libjpeg.a")
|
||||
|
||||
set(CURL_INCLUDE_DIR ${DEPS}/Curl/include)
|
||||
set(CURL_LIBRARY ${DEPS}/Curl/libcurl.a;${DEPS}/Curl/libmbedcrypto.a;${DEPS}/Curl/libmbedtls.a;${DEPS}/Curl/libmbedx509.a)
|
||||
set(FREETYPE_INCLUDE_DIR_ft2build ${DEPS}/Freetype/include/freetype2)
|
||||
set(FREETYPE_INCLUDE_DIR_freetype2 ${FREETYPE_INCLUDE_DIR_ft2build}/freetype)
|
||||
set(FREETYPE_INCLUDE_DIR_ft2build ${DEPS}/Freetype/include/freetype2)
|
||||
set(FREETYPE_LIBRARY ${DEPS}/Freetype/libfreetype.a)
|
||||
set(GETTEXT_INCLUDE_DIR ${DEPS}/Gettext/include;${DEPS}/Iconv/include)
|
||||
set(GETTEXT_LIBRARY ${DEPS}/Gettext/libintl.a)
|
||||
set(ICONV_LIBRARY ${DEPS}/Iconv/libiconv.a;${DEPS}/Iconv/libcharset.a)
|
||||
set(JPEG_INCLUDE_DIR ${DEPS}/JPEG/include)
|
||||
set(JPEG_LIBRARY ${DEPS}/JPEG/libjpeg.a)
|
||||
set(LUA_INCLUDE_DIR ${DEPS}/LuaJIT/include)
|
||||
set(LUA_LIBRARY ${DEPS}/LuaJIT/libluajit.a)
|
||||
set(OGG_INCLUDE_DIR ${DEPS}/Vorbis/include)
|
||||
set(OGG_LIBRARY ${DEPS}/Vorbis/libogg.a)
|
||||
set(OPENAL_INCLUDE_DIR ${DEPS}/OpenAL-Soft/include)
|
||||
set(OPENAL_LIBRARY ${DEPS}/OpenAL-Soft/libopenal.a;OpenSLES)
|
||||
set(PNG_LIBRARY ${DEPS}/PNG/libpng.a)
|
||||
set(PNG_PNG_INCLUDE_DIR ${DEPS}/PNG/include)
|
||||
set(SQLITE3_INCLUDE_DIR ${DEPS}/SQLite/include)
|
||||
set(SQLITE3_LIBRARY ${DEPS}/SQLite/libsqlite3.a)
|
||||
set(VORBIS_INCLUDE_DIR ${DEPS}/Vorbis/include)
|
||||
set(VORBISFILE_LIBRARY ${DEPS}/Vorbis/libvorbisfile.a)
|
||||
set(VORBIS_LIBRARY ${DEPS}/Vorbis/libvorbis.a)
|
||||
set(VORBISFILE_LIBRARY ${DEPS}/Vorbis/libvorbisfile.a)
|
||||
set(ZSTD_INCLUDE_DIR ${DEPS}/Zstd/include)
|
||||
set(ZSTD_LIBRARY ${DEPS}/Zstd/libzstd.a)
|
||||
|
@ -1,18 +0,0 @@
|
||||
# Locate IrrlichtMt headers on system.
|
||||
|
||||
find_path(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h
|
||||
DOC "Path to the directory with IrrlichtMt includes"
|
||||
PATHS
|
||||
/usr/local/include/irrlichtmt
|
||||
/usr/include/irrlichtmt
|
||||
/system/develop/headers/irrlichtmt #Haiku
|
||||
PATH_SUFFIXES "include/irrlichtmt"
|
||||
)
|
||||
|
||||
# Handholding for users
|
||||
if(IRRLICHT_INCLUDE_DIR AND (NOT IS_DIRECTORY "${IRRLICHT_INCLUDE_DIR}" OR
|
||||
NOT EXISTS "${IRRLICHT_INCLUDE_DIR}/irrlicht.h"))
|
||||
message(WARNING "IRRLICHT_INCLUDE_DIR was set to ${IRRLICHT_INCLUDE_DIR} "
|
||||
"but irrlicht.h does not exist inside. The path will not be used.")
|
||||
unset(IRRLICHT_INCLUDE_DIR CACHE)
|
||||
endif()
|
@ -55,8 +55,6 @@ Library specific options:
|
||||
GETTEXT_LIBRARY - Optional/platform-dependent with gettext; path to libintl.so/libintl.dll.a
|
||||
GETTEXT_MSGFMT - Only when building with gettext; path to msgfmt/msgfmt.exe
|
||||
ICONV_LIBRARY - Optional/platform-dependent; path to libiconv.so/libiconv.dylib
|
||||
IRRLICHT_DLL - Only on Windows; path to IrrlichtMt.dll
|
||||
IRRLICHT_INCLUDE_DIR - Directory that contains IrrCompileConfig.h (usable for server build only)
|
||||
LEVELDB_INCLUDE_DIR - Only when building with LevelDB; directory that contains db.h
|
||||
LEVELDB_LIBRARY - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a
|
||||
LEVELDB_DLL - Only when building with LevelDB on Windows; path to libleveldb.dll
|
||||
|
@ -6,10 +6,9 @@
|
||||
| ---------- | ------- | ---------- |
|
||||
| GCC | 7.5+ | or Clang 7.0.1+ |
|
||||
| CMake | 3.5+ | |
|
||||
| IrrlichtMt | - | Custom version of Irrlicht, see https://github.com/minetest/irrlicht |
|
||||
| libjpeg | - | (via IrrlichtMt) |
|
||||
| libpng | - | (via IrrlichtMt) |
|
||||
| SDL | 2.x | (via IrrlichtMt) |
|
||||
| libjpeg | - | |
|
||||
| libpng | - | |
|
||||
| SDL | 2.x | |
|
||||
| Freetype | 2.0+ | |
|
||||
| SQLite3 | 3+ | |
|
||||
| Zlib | - | |
|
||||
@ -22,27 +21,27 @@
|
||||
|
||||
For Debian/Ubuntu users:
|
||||
|
||||
sudo apt install g++ make libc6-dev cmake libpng-dev libjpeg-dev libxi-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev libzstd-dev libluajit-5.1-dev gettext libsdl2-dev
|
||||
sudo apt install g++ make libc6-dev cmake libpng-dev libjpeg-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev libzstd-dev libluajit-5.1-dev gettext libsdl2-dev
|
||||
|
||||
For Fedora users:
|
||||
|
||||
sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libpng-devel libjpeg-devel libvorbis-devel libXi-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel libzstd-devel gettext SDL2-devel
|
||||
sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libpng-devel libjpeg-devel libvorbis-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel libzstd-devel gettext SDL2-devel
|
||||
|
||||
For openSUSE users:
|
||||
|
||||
sudo zypper install gcc cmake libjpeg8-devel libpng16-devel openal-soft-devel libcurl-devel sqlite3-devel luajit-devel libzstd-devel Mesa-libGL-devel libXi-devel libvorbis-devel freetype2-devel SDL2-devel
|
||||
sudo zypper install gcc cmake libjpeg8-devel libpng16-devel openal-soft-devel libcurl-devel sqlite3-devel luajit-devel libzstd-devel Mesa-libGL-devel libvorbis-devel freetype2-devel SDL2-devel
|
||||
|
||||
For Arch users:
|
||||
|
||||
sudo pacman -S --needed base-devel libcurl-gnutls cmake libxi libpng sqlite libogg libvorbis openal freetype2 jsoncpp gmp luajit leveldb ncurses zstd gettext sdl2
|
||||
sudo pacman -S --needed base-devel libcurl-gnutls cmake libpng sqlite libogg libvorbis openal freetype2 jsoncpp gmp luajit leveldb ncurses zstd gettext sdl2
|
||||
|
||||
For Alpine users:
|
||||
|
||||
sudo apk add build-base cmake libpng-dev jpeg-dev libxi-dev mesa-dev sqlite-dev libogg-dev libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev gmp-dev jsoncpp-dev luajit-dev zstd-dev gettext sdl2-dev
|
||||
sudo apk add build-base cmake libpng-dev jpeg-dev mesa-dev sqlite-dev libogg-dev libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev gmp-dev jsoncpp-dev luajit-dev zstd-dev gettext sdl2-dev
|
||||
|
||||
For Void users:
|
||||
|
||||
sudo xbps-install cmake libpng-devel jpeg-devel libXi-devel mesa sqlite-devel libogg-devel libvorbis-devel libopenal-devel libcurl-devel freetype-devel zlib-devel gmp-devel jsoncpp-devel LuaJIT-devel libzstd-devel gettext SDL2-devel
|
||||
sudo xbps-install cmake libpng-devel jpeg-devel mesa sqlite-devel libogg-devel libvorbis-devel libopenal-devel libcurl-devel freetype-devel zlib-devel gmp-devel jsoncpp-devel LuaJIT-devel libzstd-devel gettext SDL2-devel
|
||||
|
||||
## Download
|
||||
|
||||
@ -73,24 +72,12 @@ Download source (this is the URL to the latest of source repository, which might
|
||||
git clone --depth 1 https://github.com/minetest/minetest.git
|
||||
cd minetest
|
||||
|
||||
Download IrrlichtMt to `lib/irrlichtmt`, it will be used to satisfy the IrrlichtMt dependency that way:
|
||||
|
||||
git clone --depth 1 --branch "$(cat misc/irrlichtmt_tag.txt)" https://github.com/minetest/irrlicht.git lib/irrlichtmt
|
||||
|
||||
Download source, without using Git:
|
||||
|
||||
wget https://github.com/minetest/minetest/archive/master.tar.gz
|
||||
tar xf master.tar.gz
|
||||
cd minetest-master
|
||||
|
||||
Download IrrlichtMt, without using Git:
|
||||
|
||||
cd lib/
|
||||
wget https://github.com/minetest/irrlicht/archive/master.tar.gz
|
||||
tar xf master.tar.gz
|
||||
mv irrlicht-master irrlichtmt
|
||||
cd ..
|
||||
|
||||
## Build
|
||||
|
||||
Build a version that runs directly from the source directory:
|
||||
@ -109,12 +96,3 @@ Run it:
|
||||
- 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>`.
|
||||
- Debug build is slower, but gives much more useful output in a debugger.
|
||||
- If you build a bare server you don't need to compile IrrlichtMt, just the headers suffice.
|
||||
- In that case use `-DIRRLICHT_INCLUDE_DIR=/some/where/irrlichtmt/include`.
|
||||
|
||||
- Minetest will use the IrrlichtMt package that is found first, given by the following order:
|
||||
1. Specified `IRRLICHTMT_BUILD_DIR` CMake variable
|
||||
2. `${PROJECT_SOURCE_DIR}/lib/irrlichtmt` (if existent)
|
||||
3. Installation of IrrlichtMt in the system-specific library paths
|
||||
4. For server builds with disabled `BUILD_CLIENT` variable, the headers from `IRRLICHT_INCLUDE_DIR` will be used.
|
||||
- NOTE: Changing the IrrlichtMt build directory (includes system installs) requires regenerating the CMake cache (`rm CMakeCache.txt`)
|
||||
|
@ -20,12 +20,6 @@ git clone --depth 1 https://github.com/minetest/minetest.git
|
||||
cd minetest
|
||||
```
|
||||
|
||||
Download Minetest's fork of Irrlicht:
|
||||
|
||||
```bash
|
||||
git clone --depth 1 --branch "$(cat misc/irrlichtmt_tag.txt)" https://github.com/minetest/irrlicht.git lib/irrlichtmt
|
||||
```
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
|
@ -17,12 +17,6 @@ After you successfully built vcpkg you can easily install the required libraries
|
||||
vcpkg install zlib zstd curl[winssl] openal-soft libvorbis libogg libjpeg-turbo sqlite3 freetype luajit gmp jsoncpp gettext sdl2 --triplet x64-windows
|
||||
```
|
||||
|
||||
- **Don't forget about IrrlichtMt.** The easiest way is to clone it to `lib/irrlichtmt`:
|
||||
|
||||
```bat
|
||||
for /F %i in (misc\irrlichtmt_tag.txt) do git clone --depth 1 --branch %i https://github.com/minetest/irrlicht.git lib\irrlichtmt
|
||||
```
|
||||
|
||||
- `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.
|
||||
- `luajit` is optional, it replaces the integrated Lua interpreter with a faster just-in-time interpreter.
|
||||
|
@ -1 +0,0 @@
|
||||
1.9.0mt15
|
@ -883,10 +883,6 @@ if(WIN32)
|
||||
install(FILES ${GETTEXT_DLL} DESTINATION ${BINDIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(BUILD_CLIENT AND IRRLICHT_DLL)
|
||||
install(FILES ${IRRLICHT_DLL} DESTINATION ${BINDIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(BUILD_CLIENT AND NOT ANDROID)
|
||||
|
@ -25,13 +25,10 @@ echo "Using $toolchain_file"
|
||||
find_runtime_dlls ${compiler%-*}
|
||||
|
||||
# Get stuff
|
||||
irrlicht_version=$(cat $topdir/../../misc/irrlichtmt_tag.txt)
|
||||
|
||||
mkdir -p $libdir
|
||||
|
||||
cd $libdir
|
||||
libhost="http://minetest.kitsunemimi.pw"
|
||||
download "https://github.com/minetest/irrlicht/releases/download/$irrlicht_version/win32-llvm.zip" irrlicht-$irrlicht_version-win32.zip
|
||||
download "$libhost/llvm/zlib-$zlib_version-win32.zip"
|
||||
download "$libhost/llvm/zstd-$zstd_version-win32.zip"
|
||||
download "$libhost/llvm/libogg-$ogg_version-win32.zip"
|
||||
@ -43,6 +40,9 @@ download "$libhost/llvm/sqlite3-$sqlite3_version-win32.zip"
|
||||
download "$libhost/llvm/luajit-$luajit_version-win32.zip"
|
||||
download "$libhost/llvm/libleveldb-$leveldb_version-win32.zip"
|
||||
download "$libhost/llvm/openal-soft-$openal_version-win32.zip"
|
||||
download "$libhost/llvm/libjpeg-$libjpeg_version-win32.zip"
|
||||
download "$libhost/llvm/libpng-$libpng_version-win32.zip"
|
||||
download "$libhost/llvm/sdl2-$sdl2_version-win32.zip"
|
||||
|
||||
# Set source dir, downloading Minetest as needed
|
||||
get_sources
|
||||
|
@ -25,13 +25,10 @@ echo "Using $toolchain_file"
|
||||
find_runtime_dlls ${compiler%-*}
|
||||
|
||||
# Get stuff
|
||||
irrlicht_version=$(cat $topdir/../../misc/irrlichtmt_tag.txt)
|
||||
|
||||
mkdir -p $libdir
|
||||
|
||||
cd $libdir
|
||||
libhost="http://minetest.kitsunemimi.pw"
|
||||
download "https://github.com/minetest/irrlicht/releases/download/$irrlicht_version/win64-llvm.zip" irrlicht-$irrlicht_version-win64.zip
|
||||
download "$libhost/llvm/zlib-$zlib_version-win64.zip"
|
||||
download "$libhost/llvm/zstd-$zstd_version-win64.zip"
|
||||
download "$libhost/llvm/libogg-$ogg_version-win64.zip"
|
||||
@ -43,6 +40,9 @@ download "$libhost/llvm/sqlite3-$sqlite3_version-win64.zip"
|
||||
download "$libhost/llvm/luajit-$luajit_version-win64.zip"
|
||||
download "$libhost/llvm/libleveldb-$leveldb_version-win64.zip"
|
||||
download "$libhost/llvm/openal-soft-$openal_version-win64.zip"
|
||||
download "$libhost/llvm/libjpeg-$libjpeg_version-win64.zip"
|
||||
download "$libhost/llvm/libpng-$libpng_version-win64.zip"
|
||||
download "$libhost/llvm/sdl2-$sdl2_version-win64.zip"
|
||||
|
||||
# Set source dir, downloading Minetest as needed
|
||||
get_sources
|
||||
|
@ -13,6 +13,9 @@ luajit_version=20240125
|
||||
leveldb_version=1.23
|
||||
zlib_version=1.3.1
|
||||
zstd_version=1.5.5
|
||||
libjpeg_version=3.0.1
|
||||
libpng_version=1.6.40
|
||||
sdl2_version=2.28.5
|
||||
|
||||
download () {
|
||||
local url=$1
|
||||
@ -77,8 +80,13 @@ _dlls () {
|
||||
|
||||
add_cmake_libs () {
|
||||
cmake_args+=(
|
||||
-DCMAKE_PREFIX_PATH=$libdir/irrlicht
|
||||
-DIRRLICHT_DLL="$(_dlls $libdir/irrlicht/lib/*)"
|
||||
-DPNG_LIBRARY=$libdir/libpng/lib/libpng.dll.a
|
||||
-DPNG_PNG_INCLUDE_DIR=$libdir/libpng/include
|
||||
|
||||
-DJPEG_LIBRARY=$libdir/libjpeg/lib/libjpeg.dll.a
|
||||
-DJPEG_INCLUDE_DIR=$libdir/libjpeg/include
|
||||
|
||||
-DCMAKE_PREFIX_PATH=$libdir/sdl2/lib/cmake
|
||||
|
||||
-DZLIB_INCLUDE_DIR=$libdir/zlib/include
|
||||
-DZLIB_LIBRARY=$libdir/zlib/lib/libz.dll.a
|
||||
|
@ -4,12 +4,14 @@ aa86abc3eb054d74d5fe15996f281cf84230a61b4ab7b3a702ab7dbb71e1203f curl-8.5.0-win
|
||||
acf901e93aedbcfa92eb3aab1def252676af845b1747ca5c3e7c5866576168cc freetype-2.13.2-win64.zip
|
||||
41b10766de2773f0f0851fde16b363024685e0397f4bb2e5cd2a7be196960a01 gettext-0.20.2-win32.zip
|
||||
1ceed167ff16fea944f76ab6ea2969160c71a67419259b17c9c523e7a01eb883 gettext-0.20.2-win64.zip
|
||||
14bb60cbf9dd93e906d9c9117a99d19a500cda6bcfd6fc125e04f3c75778acc2 irrlicht-1.9.0mt15-win32.zip
|
||||
31edd6a0af033b9ab455c5e019748cfa7e0cf167c9cbc5957227e72e971c2565 irrlicht-1.9.0mt15-win64.zip
|
||||
53dfd31285f470fcf0dca88217c5cf9c557729af6d103afae5936e72ddc38d3c libjpeg-3.0.1-win32.zip
|
||||
3d44e0740914e6878300e30653aad39e974821b5d7f6c2567e246b4eb04a5324 libjpeg-3.0.1-win64.zip
|
||||
f54e9a577e2db47ed28f4a01e74181d2c607627c551d30f48263e01b59e84f67 libleveldb-1.23-win32.zip
|
||||
2f039848a4e6c05a2347fe5a7fa63c430dd08d1bc88235645a863c859e14f5f8 libleveldb-1.23-win64.zip
|
||||
0df94afb8efa361cceb132ecf9491720afbc45ba844a7b1c94607295829b53ca libogg-1.3.5-win32.zip
|
||||
5c4acb4c99429a04b5e69650719b2eb17616bf52837d2372a0f859952eebce48 libogg-1.3.5-win64.zip
|
||||
6baf4e819bfb3573760524b5dc9a04b5e479090d6d2046b86cf39a3107c0071f libpng-1.6.40-win32.zip
|
||||
c02e029f01fce44baea7f4aecfd2564bd8a03507c0c6af8b03339ae0452c8b7d libpng-1.6.40-win64.zip
|
||||
456ece10a2be4247b27fbe88f88ddd54aae604736a6b76ba9a922b602fe40f40 libvorbis-1.3.7-win32.zip
|
||||
57f4db02da00556895bb63fafa6e46b5f7dac87c25fde27af4315f56a1aa7a86 libvorbis-1.3.7-win64.zip
|
||||
0f21ff3be90311092fe32e0e30878ef3ae9d9437b8d9ac25ef279e0d84e9bb8e llvm-mingw-20231128-ucrt-ubuntu-20.04-x86_64.tar.xz
|
||||
@ -17,6 +19,8 @@ da6ad10632cf172992158e9ea0977a87914b5d5de93a972c3430b6a412237556 luajit-2024012
|
||||
2b1dabe83d478b398cf9226d96de7fa62c973365c4aea70d27ba5782fb49d2d0 luajit-20240125-win64.zip
|
||||
e2443451fe5c2066eb564c64b8a1762738a88b7fd749c8b5907fed45c785497b openal-soft-1.23.1-win32.zip
|
||||
cb041445a118469caefbad2647470cb8571c8337bce2adc07634011ab5625417 openal-soft-1.23.1-win64.zip
|
||||
f9f890af960e92fd3f532f2e9ac00681c33bc67a722e000dfdaeb41b0064f1a0 sdl2-2.28.5-win32.zip
|
||||
8dde2c6963544b7d8a2e87c128ebbdf51ad0e70c7e2df986ff4e963ce9996d9b sdl2-2.28.5-win64.zip
|
||||
326701086a0ed66e09a9f3ec4d971654c13b6bd79cfdd079c947ecdcd6409525 sqlite3-3.44.2-win32.zip
|
||||
b2d474e3625f8f426b6cc5c0ecac831a1de46f7d1027bf4a9f6267b0b0411d42 sqlite3-3.44.2-win64.zip
|
||||
8af10515d57dbfee5d2106cd66cafa2adeb4270d4c6047ccbf7e8b5d2d50681c zlib-1.3.1-win32.zip
|
||||
|
@ -4,19 +4,11 @@
|
||||
install_linux_deps() {
|
||||
local pkgs=(
|
||||
cmake gettext postgresql
|
||||
libpng-dev libjpeg-dev libxi-dev libgl1-mesa-dev
|
||||
libpng-dev libjpeg-dev libgl1-mesa-dev libsdl2-dev
|
||||
libsqlite3-dev libhiredis-dev libogg-dev libgmp-dev libvorbis-dev
|
||||
libopenal-dev libpq-dev libleveldb-dev libcurl4-openssl-dev libzstd-dev
|
||||
)
|
||||
|
||||
if [[ "$1" == "--no-irr" ]]; then
|
||||
shift
|
||||
else
|
||||
local ver=$(cat misc/irrlichtmt_tag.txt)
|
||||
wget "https://github.com/minetest/irrlicht/releases/download/$ver/ubuntu-focal.tar.gz"
|
||||
sudo tar -xaf ubuntu-focal.tar.gz -C /usr/local
|
||||
fi
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y --no-install-recommends "${pkgs[@]}" "$@"
|
||||
|
||||
|
Reference in New Issue
Block a user