From 9cee9bc279c53fff9c3b5d60b423afdeae7b9fb3 Mon Sep 17 00:00:00 2001 From: Desour Date: Thu, 21 Mar 2024 20:43:20 +0100 Subject: [PATCH] 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 --- .github/workflows/linux.yml | 2 - .github/workflows/macos.yml | 1 - .github/workflows/windows.yml | 7 --- .gitignore | 2 +- CMakeLists.txt | 60 ++----------------- Dockerfile | 6 +- android/app/build.gradle | 2 +- android/native/build.gradle | 2 +- cmake/Modules/MinetestAndroidLibs.cmake | 16 ++--- .../Modules/MinetestFindIrrlichtHeaders.cmake | 18 ------ doc/compiling/README.md | 2 - doc/compiling/linux.md | 40 +++---------- doc/compiling/macos.md | 6 -- doc/compiling/windows.md | 6 -- misc/irrlichtmt_tag.txt | 1 - src/CMakeLists.txt | 4 -- util/buildbot/buildwin32.sh | 6 +- util/buildbot/buildwin64.sh | 6 +- util/buildbot/common.sh | 12 +++- util/buildbot/sha256sums.txt | 8 ++- util/ci/common.sh | 10 +--- 21 files changed, 47 insertions(+), 170 deletions(-) delete mode 100644 cmake/Modules/MinetestFindIrrlichtHeaders.cmake delete mode 100644 misc/irrlichtmt_tag.txt diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 5ca19a747..e80e4df31 100644 --- a/.github/workflows/linux.yml +++ b/.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' diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 56b3f9fdc..77df1e3ea 100644 --- a/.github/workflows/macos.yml +++ b/.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 .. \ diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index eb9a13fac..e2303ff24 100644 --- a/.github/workflows/windows.yml +++ b/.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: diff --git a/.gitignore b/.gitignore index c9fc16611..37e27bfed 100644 --- a/.gitignore +++ b/.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 diff --git a/CMakeLists.txt b/CMakeLists.txt index e6586425e..3e867d3b1 100644 --- a/CMakeLists.txt +++ b/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() diff --git a/Dockerfile b/Dockerfile index 95476663f..701c0492a 100644 --- a/Dockerfile +++ b/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 diff --git a/android/app/build.gradle b/android/app/build.gradle index c7471d2c7..30ee19c95 100644 --- a/android/app/build.gradle +++ b/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" diff --git a/android/native/build.gradle b/android/native/build.gradle index e78ddfc49..925ab8912 100644 --- a/android/native/build.gradle +++ b/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 diff --git a/cmake/Modules/MinetestAndroidLibs.cmake b/cmake/Modules/MinetestAndroidLibs.cmake index a133976cb..02383903f 100644 --- a/cmake/Modules/MinetestAndroidLibs.cmake +++ b/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) diff --git a/cmake/Modules/MinetestFindIrrlichtHeaders.cmake b/cmake/Modules/MinetestFindIrrlichtHeaders.cmake deleted file mode 100644 index e434b582f..000000000 --- a/cmake/Modules/MinetestFindIrrlichtHeaders.cmake +++ /dev/null @@ -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() diff --git a/doc/compiling/README.md b/doc/compiling/README.md index 4ecaa88bb..ba40a07e2 100644 --- a/doc/compiling/README.md +++ b/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 diff --git a/doc/compiling/linux.md b/doc/compiling/linux.md index ffe38d339..c0a6d5dbe 100644 --- a/doc/compiling/linux.md +++ b/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 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`) diff --git a/doc/compiling/macos.md b/doc/compiling/macos.md index bea40f6ef..6b9b4b6b8 100644 --- a/doc/compiling/macos.md +++ b/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 diff --git a/doc/compiling/windows.md b/doc/compiling/windows.md index b42bf8206..c63a7b319 100644 --- a/doc/compiling/windows.md +++ b/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. diff --git a/misc/irrlichtmt_tag.txt b/misc/irrlichtmt_tag.txt deleted file mode 100644 index 98b3fdbf1..000000000 --- a/misc/irrlichtmt_tag.txt +++ /dev/null @@ -1 +0,0 @@ -1.9.0mt15 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 00f6b724e..bf849493a 100644 --- a/src/CMakeLists.txt +++ b/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) diff --git a/util/buildbot/buildwin32.sh b/util/buildbot/buildwin32.sh index 3504505e5..34767f707 100755 --- a/util/buildbot/buildwin32.sh +++ b/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 diff --git a/util/buildbot/buildwin64.sh b/util/buildbot/buildwin64.sh index 774a1dfb8..c63a18901 100755 --- a/util/buildbot/buildwin64.sh +++ b/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 diff --git a/util/buildbot/common.sh b/util/buildbot/common.sh index 5db13820e..1ef96d7b2 100644 --- a/util/buildbot/common.sh +++ b/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 diff --git a/util/buildbot/sha256sums.txt b/util/buildbot/sha256sums.txt index 42fddbcb8..fce73a0a9 100644 --- a/util/buildbot/sha256sums.txt +++ b/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 diff --git a/util/ci/common.sh b/util/ci/common.sh index 257899880..ac80029f0 100644 --- a/util/ci/common.sh +++ b/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[@]}" "$@"