Browse Source

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>
Desour 1 month ago
parent
commit
9cee9bc279

+ 0 - 2
.github/workflows/linux.yml

@@ -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'

+ 0 - 1
.github/workflows/macos.yml

@@ -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 .. \

+ 0 - 7
.github/workflows/windows.yml

@@ -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:

+ 1 - 1
.gitignore

@@ -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

+ 4 - 56
CMakeLists.txt

@@ -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()
 

+ 2 - 4
Dockerfile

@@ -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

+ 1 - 1
android/app/build.gradle

@@ -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"

+ 1 - 1
android/native/build.gradle

@@ -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
 

+ 6 - 10
cmake/Modules/MinetestAndroidLibs.cmake

@@ -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)

+ 0 - 18
cmake/Modules/MinetestFindIrrlichtHeaders.cmake

@@ -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()

+ 0 - 2
doc/compiling/README.md

@@ -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

+ 9 - 31
doc/compiling/linux.md

@@ -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`)

+ 0 - 6
doc/compiling/macos.md

@@ -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

+ 0 - 6
doc/compiling/windows.md

@@ -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.

+ 0 - 1
misc/irrlichtmt_tag.txt

@@ -1 +0,0 @@
-1.9.0mt15

+ 0 - 4
src/CMakeLists.txt

@@ -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)

+ 3 - 3
util/buildbot/buildwin32.sh

@@ -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

+ 3 - 3
util/buildbot/buildwin64.sh

@@ -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

+ 10 - 2
util/buildbot/common.sh

@@ -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

+ 6 - 2
util/buildbot/sha256sums.txt

@@ -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

+ 1 - 9
util/ci/common.sh

@@ -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[@]}" "$@"