From 4114e3047bd2cc975d829f24d73991650817ad66 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 31 Oct 2021 23:32:25 +0100 Subject: Update Android to new dependency repo (#11690) --- .github/workflows/android.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 660b5c8df..cc5fe83ef 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -21,15 +21,13 @@ on: jobs: build: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - name: Install deps - run: sudo apt-get update; sudo apt-get install -y --no-install-recommends gettext + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends gettext openjdk-11-jdk-headless - name: Build with Gradle run: cd android; ./gradlew assemblerelease - name: Save armeabi artifact -- cgit v1.2.3 From 8472141b79c25092c90dea24aa873bd7ff792142 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 18 Dec 2021 20:36:43 +0100 Subject: Restructure devtest's unittests and run them in CI (#11859) --- .github/workflows/build.yml | 2 +- games/devtest/mods/unittests/crafting.lua | 18 +- games/devtest/mods/unittests/init.lua | 199 ++++++++++++++++++++++- games/devtest/mods/unittests/itemdescription.lua | 3 +- games/devtest/mods/unittests/misc.lua | 38 +++++ games/devtest/mods/unittests/player.lua | 46 +++--- games/devtest/mods/unittests/random.lua | 10 -- src/script/cpp_api/s_base.h | 9 + src/script/cpp_api/s_server.cpp | 6 +- src/script/cpp_api/s_server.h | 2 +- src/script/lua_api/l_server.cpp | 2 +- util/test_multiplayer.sh | 26 ++- 12 files changed, 289 insertions(+), 72 deletions(-) create mode 100644 games/devtest/mods/unittests/misc.lua delete mode 100644 games/devtest/mods/unittests/random.lua (limited to '.github/workflows') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 417b4f650..af1de15ec 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -93,7 +93,7 @@ jobs: run: | ./bin/minetest --run-unittests - - name: Integration test + - name: Integration test + devtest run: | ./util/test_multiplayer.sh diff --git a/games/devtest/mods/unittests/crafting.lua b/games/devtest/mods/unittests/crafting.lua index eff13ce09..8c16d3efb 100644 --- a/games/devtest/mods/unittests/crafting.lua +++ b/games/devtest/mods/unittests/crafting.lua @@ -1,6 +1,7 @@ +dofile(core.get_modpath(core.get_current_modname()) .. "/crafting_prepare.lua") + -- Test minetest.clear_craft function local function test_clear_craft() - minetest.log("info", "[unittests] Testing minetest.clear_craft") -- Clearing by output minetest.register_craft({ output = "foo", @@ -22,11 +23,10 @@ local function test_clear_craft() minetest.clear_craft({recipe={{"foo", "bar"}}}) assert(minetest.get_all_craft_recipes("foo") == nil) end +unittests.register("test_clear_craft", test_clear_craft) -- Test minetest.get_craft_result function local function test_get_craft_result() - minetest.log("info", "[unittests] Testing minetest.get_craft_result") - -- normal local input = { method = "normal", @@ -107,14 +107,6 @@ local function test_get_craft_result() assert(output.item) minetest.log("info", "[unittests] unrepairable tool crafting output.item:to_table(): "..dump(output.item:to_table())) -- unrepairable tool must not yield any output - assert(output.item:get_name() == "") - + assert(output.item:is_empty()) end - -function unittests.test_crafting() - test_clear_craft() - test_get_craft_result() - minetest.log("action", "[unittests] Crafting tests passed!") - return true -end - +unittests.register("test_get_craft_result", test_get_craft_result) diff --git a/games/devtest/mods/unittests/init.lua b/games/devtest/mods/unittests/init.lua index 12c67f78b..0754d507f 100644 --- a/games/devtest/mods/unittests/init.lua +++ b/games/devtest/mods/unittests/init.lua @@ -1,18 +1,199 @@ unittests = {} +unittests.list = {} + +-- name: Name of the test +-- func: +-- for sync: function(player, pos), should error on failure +-- for async: function(callback, player, pos) +-- MUST call callback() or callback("error msg") in case of error once test is finished +-- this means you cannot use assert() in the test implementation +-- opts: { +-- player = false, -- Does test require a player? +-- map = false, -- Does test require map access? +-- async = false, -- Does the test run asynchronously? (read notes above!) +-- } +function unittests.register(name, func, opts) + local def = table.copy(opts or {}) + def.name = name + def.func = func + table.insert(unittests.list, def) +end + +function unittests.on_finished(all_passed) + -- free to override +end + +-- Calls invoke with a callback as argument +-- Suspends coroutine until that callback is called +-- Return values are passed through +local function await(invoke) + local co = coroutine.running() + assert(co) + local called_early = true + invoke(function(...) + if called_early == true then + called_early = {...} + else + coroutine.resume(co, ...) + end + end) + if called_early ~= true then + -- callback was already called before yielding + return unpack(called_early) + end + called_early = nil + return coroutine.yield() +end + +function unittests.run_one(idx, counters, out_callback, player, pos) + local def = unittests.list[idx] + if not def.player then + player = nil + elseif player == nil then + out_callback(false) + return false + end + if not def.map then + pos = nil + elseif pos == nil then + out_callback(false) + return false + end + + local tbegin = core.get_us_time() + local function done(status, err) + local tend = core.get_us_time() + local ms_taken = (tend - tbegin) / 1000 + + if not status then + core.log("error", err) + end + print(string.format("[%s] %s - %dms", + status and "PASS" or "FAIL", def.name, ms_taken)) + counters.time = counters.time + ms_taken + counters.total = counters.total + 1 + if status then + counters.passed = counters.passed + 1 + end + end + + if def.async then + core.log("info", "[unittest] running " .. def.name .. " (async)") + def.func(function(err) + done(err == nil, err) + out_callback(true) + end, player, pos) + else + core.log("info", "[unittest] running " .. def.name) + local status, err = pcall(def.func, player, pos) + done(status, err) + out_callback(true) + end + + return true +end + +local function wait_for_player(callback) + if #core.get_connected_players() > 0 then + return callback(core.get_connected_players()[1]) + end + local first = true + core.register_on_joinplayer(function(player) + if first then + callback(player) + first = false + end + end) +end + +local function wait_for_map(player, callback) + local check = function() + if core.get_node_or_nil(player:get_pos()) ~= nil then + callback() + else + minetest.after(0, check) + end + end + check() +end + +function unittests.run_all() + -- This runs in a coroutine so it uses await(). + local counters = { time = 0, total = 0, passed = 0 } + + -- Run standalone tests first + for idx = 1, #unittests.list do + local def = unittests.list[idx] + def.done = await(function(cb) + unittests.run_one(idx, counters, cb, nil, nil) + end) + end + + -- Wait for a player to join, run tests that require a player + local player = await(wait_for_player) + for idx = 1, #unittests.list do + local def = unittests.list[idx] + if not def.done then + def.done = await(function(cb) + unittests.run_one(idx, counters, cb, player, nil) + end) + end + end + + -- Wait for the world to generate/load, run tests that require map access + await(function(cb) + wait_for_map(player, cb) + end) + local pos = vector.round(player:get_pos()) + for idx = 1, #unittests.list do + local def = unittests.list[idx] + if not def.done then + def.done = await(function(cb) + unittests.run_one(idx, counters, cb, player, pos) + end) + end + end + + -- Print stats + assert(#unittests.list == counters.total) + print(string.rep("+", 80)) + print(string.format("Unit Test Results: %s", + counters.total == counters.passed and "PASSED" or "FAILED")) + print(string.format(" %d / %d failed tests.", + counters.total - counters.passed, counters.total)) + print(string.format(" Testing took %dms total.", counters.time)) + print(string.rep("+", 80)) + unittests.on_finished(counters.total == counters.passed) + return counters.total == counters.passed +end + +-------------- + local modpath = minetest.get_modpath("unittests") -dofile(modpath .. "/random.lua") +dofile(modpath .. "/misc.lua") dofile(modpath .. "/player.lua") -dofile(modpath .. "/crafting_prepare.lua") dofile(modpath .. "/crafting.lua") dofile(modpath .. "/itemdescription.lua") -if minetest.settings:get_bool("devtest_unittests_autostart", false) then - unittests.test_random() - unittests.test_crafting() - unittests.test_short_desc() - minetest.register_on_joinplayer(function(player) - unittests.test_player(player) +-------------- + +if core.settings:get_bool("devtest_unittests_autostart", false) then + core.after(0, function() + coroutine.wrap(unittests.run_all)() end) +else + minetest.register_chatcommand("unittests", { + privs = {basic_privs=true}, + description = "Runs devtest unittests (may modify player or map state)", + func = function(name, param) + unittests.on_finished = function(ok) + core.chat_send_player(name, + (ok and "All tests passed." or "There were test failures.") .. + " Check the console for detailed output.") + end + coroutine.wrap(unittests.run_all)() + return true, "" + end, + }) end - diff --git a/games/devtest/mods/unittests/itemdescription.lua b/games/devtest/mods/unittests/itemdescription.lua index d6ee6551a..dc62de7f0 100644 --- a/games/devtest/mods/unittests/itemdescription.lua +++ b/games/devtest/mods/unittests/itemdescription.lua @@ -25,7 +25,7 @@ minetest.register_chatcommand("item_description", { end }) -function unittests.test_short_desc() +local function test_short_desc() local function get_short_description(item) return ItemStack(item):get_short_description() end @@ -49,3 +49,4 @@ function unittests.test_short_desc() return true end +unittests.register("test_short_desc", test_short_desc) diff --git a/games/devtest/mods/unittests/misc.lua b/games/devtest/mods/unittests/misc.lua new file mode 100644 index 000000000..cf4f92cfa --- /dev/null +++ b/games/devtest/mods/unittests/misc.lua @@ -0,0 +1,38 @@ +local function test_random() + -- Try out PseudoRandom + local pseudo = PseudoRandom(13) + assert(pseudo:next() == 22290) + assert(pseudo:next() == 13854) +end +unittests.register("test_random", test_random) + +local function test_dynamic_media(cb, player) + if core.get_player_information(player:get_player_name()).protocol_version < 40 then + core.log("warning", "test_dynamic_media: Client too old, skipping test.") + return cb() + end + + -- Check that the client acknowledges media transfers + local path = core.get_worldpath() .. "/test_media.obj" + local f = io.open(path, "w") + f:write("# contents don't matter\n") + f:close() + + local call_ok = false + local ok = core.dynamic_add_media({ + filepath = path, + to_player = player:get_player_name(), + }, function(name) + if not call_ok then + cb("impossible condition") + end + cb() + end) + if not ok then + return cb("dynamic_add_media() returned error") + end + call_ok = true + + -- if the callback isn't called this test will just hang :shrug: +end +unittests.register("test_dynamic_media", test_dynamic_media, {async=true, player=true}) diff --git a/games/devtest/mods/unittests/player.lua b/games/devtest/mods/unittests/player.lua index 4a681310d..fa0557960 100644 --- a/games/devtest/mods/unittests/player.lua +++ b/games/devtest/mods/unittests/player.lua @@ -2,6 +2,21 @@ -- HP Change Reasons -- local expect = nil +minetest.register_on_player_hpchange(function(player, hp, reason) + if expect == nil then + return + end + + for key, value in pairs(reason) do + assert(expect[key] == value) + end + for key, value in pairs(expect) do + assert(reason[key] == value) + end + + expect = nil +end) + local function run_hpchangereason_tests(player) local old_hp = player:get_hp() @@ -20,7 +35,11 @@ local function run_hpchangereason_tests(player) player:set_hp(old_hp) end +unittests.register("test_hpchangereason", run_hpchangereason_tests, {player=true}) +-- +-- Player meta +-- local function run_player_meta_tests(player) local meta = player:get_meta() meta:set_string("foo", "bar") @@ -48,29 +67,4 @@ local function run_player_meta_tests(player) assert(meta:get_string("foo") == "") assert(meta:equals(meta2)) end - -function unittests.test_player(player) - minetest.register_on_player_hpchange(function(player, hp, reason) - if not expect then - return - end - - for key, value in pairs(reason) do - assert(expect[key] == value) - end - - for key, value in pairs(expect) do - assert(reason[key] == value) - end - - expect = nil - end) - - run_hpchangereason_tests(player) - run_player_meta_tests(player) - local msg = "Player tests passed for player '"..player:get_player_name().."'!" - minetest.chat_send_all(msg) - minetest.log("action", "[unittests] "..msg) - return true -end - +unittests.register("test_player_meta", run_player_meta_tests, {player=true}) diff --git a/games/devtest/mods/unittests/random.lua b/games/devtest/mods/unittests/random.lua deleted file mode 100644 index f94f0a88e..000000000 --- a/games/devtest/mods/unittests/random.lua +++ /dev/null @@ -1,10 +0,0 @@ -function unittests.test_random() - -- Try out PseudoRandom - minetest.log("action", "[unittests] Testing PseudoRandom ...") - local pseudo = PseudoRandom(13) - assert(pseudo:next() == 22290) - assert(pseudo:next() == 13854) - minetest.log("action", "[unittests] PseudoRandom test passed!") - return true -end - diff --git a/src/script/cpp_api/s_base.h b/src/script/cpp_api/s_base.h index 06df2abe3..244d81605 100644 --- a/src/script/cpp_api/s_base.h +++ b/src/script/cpp_api/s_base.h @@ -125,6 +125,15 @@ protected: friend class ModApiEnvMod; friend class LuaVoxelManip; + /* + Subtle edge case with coroutines: If for whatever reason you have a + method in a subclass that's called from existing lua_CFunction + (any of the l_*.cpp files) then make it static and take the lua_State* + as an argument. This is REQUIRED because getStack() will not return the + correct state if called inside coroutines. + + Also note that src/script/common/ is the better place for such helpers. + */ lua_State* getStack() { return m_luastack; } diff --git a/src/script/cpp_api/s_server.cpp b/src/script/cpp_api/s_server.cpp index 6ddb2630d..c255b0c71 100644 --- a/src/script/cpp_api/s_server.cpp +++ b/src/script/cpp_api/s_server.cpp @@ -198,10 +198,8 @@ std::string ScriptApiServer::formatChatMessage(const std::string &name, return ret; } -u32 ScriptApiServer::allocateDynamicMediaCallback(int f_idx) +u32 ScriptApiServer::allocateDynamicMediaCallback(lua_State *L, int f_idx) { - lua_State *L = getStack(); - if (f_idx < 0) f_idx = lua_gettop(L) + f_idx + 1; @@ -235,7 +233,7 @@ u32 ScriptApiServer::allocateDynamicMediaCallback(int f_idx) void ScriptApiServer::freeDynamicMediaCallback(u32 token) { - lua_State *L = getStack(); + SCRIPTAPI_PRECHECKHEADER verbosestream << "freeDynamicMediaCallback(" << token << ")" << std::endl; diff --git a/src/script/cpp_api/s_server.h b/src/script/cpp_api/s_server.h index c5c3d5596..58c8c0e48 100644 --- a/src/script/cpp_api/s_server.h +++ b/src/script/cpp_api/s_server.h @@ -51,7 +51,7 @@ public: const std::string &password); /* dynamic media handling */ - u32 allocateDynamicMediaCallback(int f_idx); + static u32 allocateDynamicMediaCallback(lua_State *L, int f_idx); void freeDynamicMediaCallback(u32 token); void on_dynamic_media_added(u32 token, const char *playername); diff --git a/src/script/lua_api/l_server.cpp b/src/script/lua_api/l_server.cpp index 82a692070..88ab5e16b 100644 --- a/src/script/lua_api/l_server.cpp +++ b/src/script/lua_api/l_server.cpp @@ -496,7 +496,7 @@ int ModApiServer::l_dynamic_add_media(lua_State *L) CHECK_SECURE_PATH(L, filepath.c_str(), false); - u32 token = server->getScriptIface()->allocateDynamicMediaCallback(2); + u32 token = server->getScriptIface()->allocateDynamicMediaCallback(L, 2); bool ok = server->dynamicAddMedia(filepath, token, to_player, ephemeral); if (!ok) diff --git a/util/test_multiplayer.sh b/util/test_multiplayer.sh index 9fb894a30..5ffc044e0 100755 --- a/util/test_multiplayer.sh +++ b/util/test_multiplayer.sh @@ -20,7 +20,7 @@ waitfor () { } gdbrun () { - gdb -q -ex 'set confirm off' -ex 'r' -ex 'bt' -ex 'quit' --args "$@" + gdb -q -batch -ex 'set confirm off' -ex 'r' -ex 'bt' --args "$@" } [ -e $minetest ] || { echo "executable $minetest missing"; exit 1; } @@ -33,17 +33,27 @@ printf '%s\n' >$testspath/client1.conf \ enable_{sound,minimap,shaders}=false printf '%s\n' >$testspath/server.conf \ - max_block_send_distance=1 + max_block_send_distance=1 devtest_unittests_autostart=true cat >$worldpath/worldmods/test/init.lua <<"LUA" core.after(0, function() io.close(io.open(core.get_worldpath() .. "/startup", "w")) end) -core.register_on_joinplayer(function(player) - io.close(io.open(core.get_worldpath() .. "/player_joined", "w")) +local function callback(test_ok) + if not test_ok then + io.close(io.open(core.get_worldpath() .. "/test_failure", "w")) + end + io.close(io.open(core.get_worldpath() .. "/done", "w")) core.request_shutdown("", false, 2) -end) +end +if core.settings:get_bool("devtest_unittests_autostart") then + unittests.on_finished = callback +else + core.register_on_joinplayer(function() callback(true) end) +end LUA +printf '%s\n' >$worldpath/worldmods/test/mod.conf \ + name=test optional_depends=unittests echo "Starting server" gdbrun $minetest --server --config $conf_server --world $worldpath --gameid $gameid 2>&1 | sed -u 's/^/(server) /' & @@ -51,10 +61,14 @@ waitfor $worldpath/startup echo "Starting client" gdbrun $minetest --config $conf_client1 --go --address 127.0.0.1 2>&1 | sed -u 's/^/(client) /' & -waitfor $worldpath/player_joined +waitfor $worldpath/done echo "Waiting for client and server to exit" wait +if [ -f $worldpath/test_failure ]; then + echo "There were test failures." + exit 1 +fi echo "Success" exit 0 -- cgit v1.2.3 From 76dbd0d2d04712dcad4f7c6afecb97fa8d662d6d Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 8 Jan 2022 14:53:25 +0100 Subject: Fully remove bitmap font support (#11863) Freetype is now a build requirement. --- .github/workflows/build.yml | 23 ------ README.md | 18 ++--- android/native/jni/Android.mk | 1 - builtin/settingtypes.txt | 16 +--- doc/Doxyfile.in | 1 - fonts/mono_dejavu_sans_10.xml | Bin 257014 -> 0 bytes fonts/mono_dejavu_sans_100.png | Bin 56121 -> 0 bytes fonts/mono_dejavu_sans_11.xml | Bin 263644 -> 0 bytes fonts/mono_dejavu_sans_110.png | Bin 67613 -> 0 bytes fonts/mono_dejavu_sans_12.xml | Bin 268932 -> 0 bytes fonts/mono_dejavu_sans_120.png | Bin 73938 -> 0 bytes fonts/mono_dejavu_sans_14.xml | Bin 269188 -> 0 bytes fonts/mono_dejavu_sans_140.png | Bin 89073 -> 0 bytes fonts/mono_dejavu_sans_16.xml | Bin 275642 -> 0 bytes fonts/mono_dejavu_sans_160.png | Bin 101939 -> 0 bytes fonts/mono_dejavu_sans_18.xml | Bin 279962 -> 0 bytes fonts/mono_dejavu_sans_180.png | Bin 122274 -> 0 bytes fonts/mono_dejavu_sans_20.xml | Bin 282588 -> 0 bytes fonts/mono_dejavu_sans_200.png | Bin 138662 -> 0 bytes fonts/mono_dejavu_sans_22.xml | Bin 283950 -> 0 bytes fonts/mono_dejavu_sans_220.png | Bin 152844 -> 0 bytes fonts/mono_dejavu_sans_24.xml | Bin 286626 -> 0 bytes fonts/mono_dejavu_sans_240.png | Bin 170247 -> 0 bytes fonts/mono_dejavu_sans_26.xml | Bin 289710 -> 0 bytes fonts/mono_dejavu_sans_260.png | Bin 190156 -> 0 bytes fonts/mono_dejavu_sans_28.xml | Bin 292596 -> 0 bytes fonts/mono_dejavu_sans_280.png | Bin 200848 -> 0 bytes fonts/mono_dejavu_sans_4.xml | Bin 237740 -> 0 bytes fonts/mono_dejavu_sans_40.png | Bin 15668 -> 0 bytes fonts/mono_dejavu_sans_6.xml | Bin 245472 -> 0 bytes fonts/mono_dejavu_sans_60.png | Bin 29291 -> 0 bytes fonts/mono_dejavu_sans_8.xml | Bin 251876 -> 0 bytes fonts/mono_dejavu_sans_80.png | Bin 45552 -> 0 bytes fonts/mono_dejavu_sans_9.xml | Bin 254016 -> 0 bytes fonts/mono_dejavu_sans_90.png | Bin 50995 -> 0 bytes src/CMakeLists.txt | 49 ++++------- src/client/fontengine.cpp | 153 +++++------------------------------ src/client/fontengine.h | 9 +-- src/cmake_config.h.in | 1 - src/constants.h | 1 - src/defaultsettings.cpp | 11 +-- src/gui/guiChatConsole.cpp | 14 +--- src/gui/guiHyperText.cpp | 23 ++---- src/gui/guiHyperText.h | 11 +-- src/irrlicht_changes/CMakeLists.txt | 7 +- src/irrlicht_changes/static_text.cpp | 13 +-- src/irrlicht_changes/static_text.h | 36 --------- src/version.cpp | 1 - util/buildbot/buildwin32.sh | 1 - util/buildbot/buildwin64.sh | 1 - 50 files changed, 71 insertions(+), 319 deletions(-) delete mode 100644 fonts/mono_dejavu_sans_10.xml delete mode 100644 fonts/mono_dejavu_sans_100.png delete mode 100644 fonts/mono_dejavu_sans_11.xml delete mode 100644 fonts/mono_dejavu_sans_110.png delete mode 100644 fonts/mono_dejavu_sans_12.xml delete mode 100644 fonts/mono_dejavu_sans_120.png delete mode 100644 fonts/mono_dejavu_sans_14.xml delete mode 100644 fonts/mono_dejavu_sans_140.png delete mode 100644 fonts/mono_dejavu_sans_16.xml delete mode 100644 fonts/mono_dejavu_sans_160.png delete mode 100644 fonts/mono_dejavu_sans_18.xml delete mode 100644 fonts/mono_dejavu_sans_180.png delete mode 100644 fonts/mono_dejavu_sans_20.xml delete mode 100644 fonts/mono_dejavu_sans_200.png delete mode 100644 fonts/mono_dejavu_sans_22.xml delete mode 100644 fonts/mono_dejavu_sans_220.png delete mode 100644 fonts/mono_dejavu_sans_24.xml delete mode 100644 fonts/mono_dejavu_sans_240.png delete mode 100644 fonts/mono_dejavu_sans_26.xml delete mode 100644 fonts/mono_dejavu_sans_260.png delete mode 100644 fonts/mono_dejavu_sans_28.xml delete mode 100644 fonts/mono_dejavu_sans_280.png delete mode 100644 fonts/mono_dejavu_sans_4.xml delete mode 100644 fonts/mono_dejavu_sans_40.png delete mode 100644 fonts/mono_dejavu_sans_6.xml delete mode 100644 fonts/mono_dejavu_sans_60.png delete mode 100644 fonts/mono_dejavu_sans_8.xml delete mode 100644 fonts/mono_dejavu_sans_80.png delete mode 100644 fonts/mono_dejavu_sans_9.xml delete mode 100644 fonts/mono_dejavu_sans_90.png (limited to '.github/workflows') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index af1de15ec..b1ba78ed0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -150,29 +150,6 @@ jobs: run: | ./bin/minetestserver --run-unittests - # Build without freetype (client-only) - clang_9_no_freetype: - name: "clang_9 (FREETYPE=0)" - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v2 - - name: Install deps - run: | - source ./util/ci/common.sh - install_linux_deps clang-9 - - - name: Build - run: | - ./util/ci/build.sh - env: - CC: clang-9 - CXX: clang++-9 - CMAKE_FLAGS: "-DENABLE_FREETYPE=0 -DBUILD_SERVER=0" - - - name: Test - run: | - ./bin/minetest --run-unittests - docker: name: "Docker image" runs-on: ubuntu-18.04 diff --git a/README.md b/README.md index 009ae8d38..03a161c9a 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,8 @@ Compiling | GCC | 4.9+ | Can be replaced with Clang 3.4+ | | CMake | 3.5+ | | | IrrlichtMt | - | Custom version of Irrlicht, see https://github.com/minetest/irrlicht | -| SQLite3 | 3.0+ | | +| Freetype | 2.0+ | | +| SQLite3 | 3+ | | | Zstd | 1.0+ | | | LuaJIT | 2.0+ | Bundled Lua 5.1 is used if not present | | GMP | 5.0.0+ | Bundled mini-GMP is used if not present | @@ -143,7 +144,7 @@ Compiling For Debian/Ubuntu users: - 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 libzstd-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 libzstd-dev libluajit-5.1-dev For Fedora users: @@ -247,7 +248,6 @@ General options and their default values: MinSizeRel - Release build with -Os passed to compiler to make executable as small as possible ENABLE_CURL=ON - Build with cURL; Enables use of online mod repo, public serverlist and remote media fetching via http ENABLE_CURSES=ON - Build with (n)curses; Enables a server side terminal (command line option: --terminal) - ENABLE_FREETYPE=ON - Build with FreeType2; Allows using TTF fonts ENABLE_GETTEXT=ON - Build with Gettext; Allows using translations ENABLE_GLES=OFF - Build for OpenGL ES instead of OpenGL (requires support by IrrlichtMt) ENABLE_LEVELDB=ON - Build with LevelDB; Enables use of LevelDB map backend @@ -273,10 +273,10 @@ Library specific options: EGL_INCLUDE_DIR - Only if building with GLES; directory that contains egl.h EGL_LIBRARY - Only if building with GLES; path to libEGL.a/libEGL.so EXTRA_DLL - Only on Windows; optional paths to additional DLLs that should be packaged - FREETYPE_INCLUDE_DIR_freetype2 - Only if building with FreeType 2; directory that contains an freetype directory with files such as ftimage.h in it - FREETYPE_INCLUDE_DIR_ft2build - Only if building with FreeType 2; directory that contains ft2build.h - FREETYPE_LIBRARY - Only if building with FreeType 2; path to libfreetype.a/libfreetype.so/freetype.lib - FREETYPE_DLL - Only if building with FreeType 2 on Windows; path to libfreetype.dll + FREETYPE_INCLUDE_DIR_freetype2 - Directory that contains files such as ftimage.h + FREETYPE_INCLUDE_DIR_ft2build - Directory that contains ft2build.h + FREETYPE_LIBRARY - Path to libfreetype.a/libfreetype.so/freetype.lib + FREETYPE_DLL - Only on Windows; path to libfreetype-6.dll GETTEXT_DLL - Only when building with gettext on Windows; paths to libintl + libiconv DLLs GETTEXT_INCLUDE_DIR - Only when building with gettext; directory that contains iconv.h GETTEXT_LIBRARY - Only when building with gettext on Windows; path to libintl.dll.a @@ -337,7 +337,6 @@ vcpkg install zlib zstd curl[winssl] openal-soft libvorbis libogg libjpeg-turbo - **Don't forget about IrrlichtMt.** The easiest way is to clone it to `lib/irrlichtmt` as described in the Linux section. - `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. -- `freetype` is optional, it allows true-type font rendering. - `luajit` is optional, it replaces the integrated Lua interpreter with a faster just-in-time interpreter. - `gmp` and `jsoncpp` are optional, otherwise the bundled versions will be compiled @@ -429,8 +428,7 @@ cmake .. \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 \ -DCMAKE_FIND_FRAMEWORK=LAST \ -DCMAKE_INSTALL_PREFIX=../build/macos/ \ - -DRUN_IN_PLACE=FALSE \ - -DENABLE_FREETYPE=TRUE -DENABLE_GETTEXT=TRUE + -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE make -j$(nproc) make install diff --git a/android/native/jni/Android.mk b/android/native/jni/Android.mk index 85c13bfb3..f8ca74d3c 100644 --- a/android/native/jni/Android.mk +++ b/android/native/jni/Android.mk @@ -91,7 +91,6 @@ LOCAL_CFLAGS += \ -DENABLE_GLES=1 \ -DUSE_CURL=1 \ -DUSE_SOUND=1 \ - -DUSE_FREETYPE=1 \ -DUSE_LEVELDB=0 \ -DUSE_LUAJIT=1 \ -DUSE_GETTEXT=1 \ diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 22e69e30a..c25a941de 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -886,10 +886,6 @@ tooltip_show_delay (Tooltip delay) int 400 # Append item name to tooltip. tooltip_append_itemname (Append item name) bool false -# Whether FreeType fonts are used, requires FreeType support to be compiled in. -# If disabled, bitmap and XML vectors fonts are used instead. -freetype (FreeType fonts) bool true - font_bold (Font bold by default) bool false font_italic (Font italic by default) bool false @@ -909,9 +905,7 @@ font_size (Font size) int 16 1 # sized 16, 32, 48, etc., so a mod requesting a size of 25 will get 32. font_size_divisible_by (Font size divisible by) int 1 1 -# Path to the default font. -# If “freetype” setting is enabled: Must be a TrueType font. -# If “freetype” setting is disabled: Must be a bitmap or XML vectors font. +# Path to the default font. Must be a TrueType font. # The fallback font will be used if the font cannot be loaded. font_path (Regular font path) filepath fonts/Arimo-Regular.ttf @@ -928,9 +922,7 @@ mono_font_size (Monospace font size) int 16 1 # sized 16, 32, 48, etc., so a mod requesting a size of 25 will get 32. mono_font_size_divisible_by (Monospace font size divisible by) int 1 1 -# Path to the monospace font. -# If “freetype” setting is enabled: Must be a TrueType font. -# If “freetype” setting is disabled: Must be a bitmap or XML vectors font. +# Path to the monospace font. Must be a TrueType font. # This font is used for e.g. the console and profiler screen. mono_font_path (Monospace font path) filepath fonts/Cousine-Regular.ttf @@ -938,9 +930,7 @@ mono_font_path_bold (Bold monospace font path) filepath fonts/Cousine-Bold.ttf mono_font_path_italic (Italic monospace font path) filepath fonts/Cousine-Italic.ttf mono_font_path_bold_italic (Bold and italic monospace font path) filepath fonts/Cousine-BoldItalic.ttf -# Path of the fallback font. -# If “freetype” setting is enabled: Must be a TrueType font. -# If “freetype” setting is disabled: Must be a bitmap or XML vectors font. +# Path of the fallback font. Must be a TrueType font. # This font will be used for certain languages or if the default font is unavailable. fallback_font_path (Fallback font path) filepath fonts/DroidSansFallbackFull.ttf diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index d7816f0e4..ae36fd6bf 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -16,7 +16,6 @@ PREDEFINED = "USE_SPATIAL=1" \ "USE_REDIS=1" \ "USE_SOUND=1" \ "USE_CURL=1" \ - "USE_FREETYPE=1" \ "USE_GETTEXT=1" # Input diff --git a/fonts/mono_dejavu_sans_10.xml b/fonts/mono_dejavu_sans_10.xml deleted file mode 100644 index 0276cedb6..000000000 Binary files a/fonts/mono_dejavu_sans_10.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_100.png b/fonts/mono_dejavu_sans_100.png deleted file mode 100644 index 45a312542..000000000 Binary files a/fonts/mono_dejavu_sans_100.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_11.xml b/fonts/mono_dejavu_sans_11.xml deleted file mode 100644 index f727ed2bb..000000000 Binary files a/fonts/mono_dejavu_sans_11.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_110.png b/fonts/mono_dejavu_sans_110.png deleted file mode 100644 index c90c0e242..000000000 Binary files a/fonts/mono_dejavu_sans_110.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_12.xml b/fonts/mono_dejavu_sans_12.xml deleted file mode 100644 index 38f6427be..000000000 Binary files a/fonts/mono_dejavu_sans_12.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_120.png b/fonts/mono_dejavu_sans_120.png deleted file mode 100644 index 0cebd70e8..000000000 Binary files a/fonts/mono_dejavu_sans_120.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_14.xml b/fonts/mono_dejavu_sans_14.xml deleted file mode 100644 index b90a34960..000000000 Binary files a/fonts/mono_dejavu_sans_14.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_140.png b/fonts/mono_dejavu_sans_140.png deleted file mode 100644 index a413759ea..000000000 Binary files a/fonts/mono_dejavu_sans_140.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_16.xml b/fonts/mono_dejavu_sans_16.xml deleted file mode 100644 index 3f7d2c2a2..000000000 Binary files a/fonts/mono_dejavu_sans_16.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_160.png b/fonts/mono_dejavu_sans_160.png deleted file mode 100644 index bd8a2f40a..000000000 Binary files a/fonts/mono_dejavu_sans_160.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_18.xml b/fonts/mono_dejavu_sans_18.xml deleted file mode 100644 index 92865cbfc..000000000 Binary files a/fonts/mono_dejavu_sans_18.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_180.png b/fonts/mono_dejavu_sans_180.png deleted file mode 100644 index a299afcbe..000000000 Binary files a/fonts/mono_dejavu_sans_180.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_20.xml b/fonts/mono_dejavu_sans_20.xml deleted file mode 100644 index acd8c77d0..000000000 Binary files a/fonts/mono_dejavu_sans_20.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_200.png b/fonts/mono_dejavu_sans_200.png deleted file mode 100644 index 68ee62681..000000000 Binary files a/fonts/mono_dejavu_sans_200.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_22.xml b/fonts/mono_dejavu_sans_22.xml deleted file mode 100644 index eafb4def6..000000000 Binary files a/fonts/mono_dejavu_sans_22.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_220.png b/fonts/mono_dejavu_sans_220.png deleted file mode 100644 index 042d7e094..000000000 Binary files a/fonts/mono_dejavu_sans_220.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_24.xml b/fonts/mono_dejavu_sans_24.xml deleted file mode 100644 index fc8b6232e..000000000 Binary files a/fonts/mono_dejavu_sans_24.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_240.png b/fonts/mono_dejavu_sans_240.png deleted file mode 100644 index d2d68c5bb..000000000 Binary files a/fonts/mono_dejavu_sans_240.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_26.xml b/fonts/mono_dejavu_sans_26.xml deleted file mode 100644 index 829f09948..000000000 Binary files a/fonts/mono_dejavu_sans_26.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_260.png b/fonts/mono_dejavu_sans_260.png deleted file mode 100644 index 3a8cb6c57..000000000 Binary files a/fonts/mono_dejavu_sans_260.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_28.xml b/fonts/mono_dejavu_sans_28.xml deleted file mode 100644 index b5b25bd07..000000000 Binary files a/fonts/mono_dejavu_sans_28.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_280.png b/fonts/mono_dejavu_sans_280.png deleted file mode 100644 index ccf62ba48..000000000 Binary files a/fonts/mono_dejavu_sans_280.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_4.xml b/fonts/mono_dejavu_sans_4.xml deleted file mode 100644 index cfebb39b3..000000000 Binary files a/fonts/mono_dejavu_sans_4.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_40.png b/fonts/mono_dejavu_sans_40.png deleted file mode 100644 index 24ed693f7..000000000 Binary files a/fonts/mono_dejavu_sans_40.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_6.xml b/fonts/mono_dejavu_sans_6.xml deleted file mode 100644 index d0e1de21d..000000000 Binary files a/fonts/mono_dejavu_sans_6.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_60.png b/fonts/mono_dejavu_sans_60.png deleted file mode 100644 index 326af996f..000000000 Binary files a/fonts/mono_dejavu_sans_60.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_8.xml b/fonts/mono_dejavu_sans_8.xml deleted file mode 100644 index c48bf7ccc..000000000 Binary files a/fonts/mono_dejavu_sans_8.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_80.png b/fonts/mono_dejavu_sans_80.png deleted file mode 100644 index 04326dbb2..000000000 Binary files a/fonts/mono_dejavu_sans_80.png and /dev/null differ diff --git a/fonts/mono_dejavu_sans_9.xml b/fonts/mono_dejavu_sans_9.xml deleted file mode 100644 index 74e841034..000000000 Binary files a/fonts/mono_dejavu_sans_9.xml and /dev/null differ diff --git a/fonts/mono_dejavu_sans_90.png b/fonts/mono_dejavu_sans_90.png deleted file mode 100644 index 65ac51858..000000000 Binary files a/fonts/mono_dejavu_sans_90.png and /dev/null differ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e3389cea9..ed0929564 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -122,16 +122,8 @@ if(BUILD_CLIENT) endif() endif() - -option(ENABLE_FREETYPE "Enable FreeType2 (TrueType fonts and basic unicode support)" TRUE) -set(USE_FREETYPE FALSE) - -if(BUILD_CLIENT AND ENABLE_FREETYPE) - find_package(Freetype) - if(FREETYPE_FOUND) - message(STATUS "Freetype enabled.") - set(USE_FREETYPE TRUE) - endif() +if(BUILD_CLIENT) + find_package(Freetype REQUIRED) endif() option(ENABLE_CURSES "Enable ncurses console" TRUE) @@ -495,13 +487,11 @@ include_directories( ${PROJECT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR} ${ZSTD_INCLUDE_DIR} - ${SOUND_INCLUDE_DIRS} ${SQLITE3_INCLUDE_DIR} ${LUA_INCLUDE_DIR} ${GMP_INCLUDE_DIR} ${JSON_INCLUDE_DIR} ${LUA_BIT_INCLUDE_DIR} - ${X11_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}/script ) @@ -509,8 +499,12 @@ if(USE_GETTEXT) include_directories(${GETTEXT_INCLUDE_DIR}) endif() -if(USE_FREETYPE) - include_directories(${FREETYPE_INCLUDE_DIRS}) +if(BUILD_CLIENT) + include_directories( + ${FREETYPE_INCLUDE_DIRS} + ${SOUND_INCLUDE_DIRS} + ${X11_INCLUDE_DIR} + ) endif() if(USE_CURL) @@ -539,6 +533,7 @@ if(BUILD_CLIENT) ${GMP_LIBRARY} ${JSON_LIBRARY} ${LUA_BIT_LIBRARY} + ${FREETYPE_LIBRARY} ${PLATFORM_LIBS} ) if(NOT USE_LUAJIT) @@ -573,17 +568,11 @@ if(BUILD_CLIENT) ${CURL_LIBRARY} ) endif() - if(USE_FREETYPE) - if(FREETYPE_PKGCONFIG_FOUND) - set_target_properties(${PROJECT_NAME} - PROPERTIES - COMPILE_FLAGS "${FREETYPE_CFLAGS_STR}" - ) - endif() - target_link_libraries( - ${PROJECT_NAME} - ${FREETYPE_LIBRARY} - ) + if(FREETYPE_PKGCONFIG_FOUND) + set_target_properties(${PROJECT_NAME} + PROPERTIES + COMPILE_FLAGS "${FREETYPE_CFLAGS_STR}" + ) endif() if (USE_CURSES) target_link_libraries(${PROJECT_NAME} ${CURSES_LIBRARIES}) @@ -896,14 +885,8 @@ if(BUILD_CLIENT) endforeach() endif() - # Install necessary fonts depending on configuration - if(USE_FREETYPE) - install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../fonts" DESTINATION "${SHAREDIR}" - FILES_MATCHING PATTERN "*.ttf" PATTERN "*.txt") - else() - install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../fonts" DESTINATION "${SHAREDIR}" - FILES_MATCHING PATTERN "*.png" PATTERN "*.xml") - endif() + install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../fonts" DESTINATION "${SHAREDIR}" + FILES_MATCHING PATTERN "*.ttf" PATTERN "*.txt") endif(BUILD_CLIENT) if(BUILD_SERVER) diff --git a/src/client/fontengine.cpp b/src/client/fontengine.cpp index e537b756c..ad8305b45 100644 --- a/src/client/fontengine.cpp +++ b/src/client/fontengine.cpp @@ -24,10 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "porting.h" #include "filesys.h" #include "gettext.h" - -#if USE_FREETYPE #include "irrlicht_changes/CGUITTFont.h" -#endif /** maximum size distance for getting a "similar" font size */ #define MAX_FONT_SIZE_OFFSET 10 @@ -45,9 +42,8 @@ static void font_setting_changed(const std::string &name, void *userdata) FontEngine::FontEngine(gui::IGUIEnvironment* env) : m_env(env) { - for (u32 &i : m_default_size) { - i = (FontMode) FONT_SIZE_UNSPECIFIED; + i = FONT_SIZE_UNSPECIFIED; } assert(g_settings != NULL); // pre-condition @@ -56,25 +52,19 @@ FontEngine::FontEngine(gui::IGUIEnvironment* env) : readSettings(); - if (m_currentMode != FM_Simple) { - g_settings->registerChangedCallback("font_size", font_setting_changed, NULL); - g_settings->registerChangedCallback("font_bold", font_setting_changed, NULL); - g_settings->registerChangedCallback("font_italic", font_setting_changed, NULL); - g_settings->registerChangedCallback("font_path", font_setting_changed, NULL); - g_settings->registerChangedCallback("font_path_bold", font_setting_changed, NULL); - g_settings->registerChangedCallback("font_path_italic", font_setting_changed, NULL); - g_settings->registerChangedCallback("font_path_bolditalic", font_setting_changed, NULL); - g_settings->registerChangedCallback("font_shadow", font_setting_changed, NULL); - g_settings->registerChangedCallback("font_shadow_alpha", font_setting_changed, NULL); - g_settings->registerChangedCallback("font_size_divisible_by", font_setting_changed, NULL); - g_settings->registerChangedCallback("fallback_font_path", font_setting_changed, NULL); - } + const char *settings[] = { + "font_size", "font_bold", "font_italic", "font_size_divisible_by", + "mono_font_size", "mono_font_size_divisible_by", + "font_shadow", "font_shadow_alpha", + "font_path", "font_path_bold", "font_path_italic", "font_path_bold_italic", + "mono_font_path", "mono_font_path_bold", "mono_font_path_italic", + "mono_font_path_bold_italic", + "fallback_font_path", + "screen_dpi", "gui_scaling", + }; - g_settings->registerChangedCallback("mono_font_path", font_setting_changed, NULL); - g_settings->registerChangedCallback("mono_font_size", font_setting_changed, NULL); - g_settings->registerChangedCallback("mono_font_size_divisible_by", font_setting_changed, NULL); - g_settings->registerChangedCallback("screen_dpi", font_setting_changed, NULL); - g_settings->registerChangedCallback("gui_scaling", font_setting_changed, NULL); + for (auto name : settings) + g_settings->registerChangedCallback(name, font_setting_changed, NULL); } /******************************************************************************/ @@ -108,16 +98,8 @@ irr::gui::IGUIFont *FontEngine::getFont(FontSpec spec, bool may_fail) { if (spec.mode == FM_Unspecified) { spec.mode = m_currentMode; - } else if (m_currentMode == FM_Simple) { - // Freetype disabled -> Force simple mode - spec.mode = (spec.mode == FM_Mono || - spec.mode == FM_SimpleMono) ? - FM_SimpleMono : FM_Simple; - // Support for those could be added, but who cares? - spec.bold = false; - spec.italic = false; } else if (spec.mode == _FM_Fallback) { - // Fallback font doesn't support these either + // Fallback font doesn't support these spec.bold = false; spec.italic = false; } @@ -134,11 +116,7 @@ irr::gui::IGUIFont *FontEngine::getFont(FontSpec spec, bool may_fail) return it->second; // Font does not yet exist - gui::IGUIFont *font = nullptr; - if (spec.mode == FM_Simple || spec.mode == FM_SimpleMono) - font = initSimpleFont(spec); - else - font = initFont(spec); + gui::IGUIFont *font = initFont(spec); if (!font && !may_fail) { errorstream << "Minetest cannot continue without a valid font. " @@ -185,13 +163,6 @@ unsigned int FontEngine::getDefaultFontSize() unsigned int FontEngine::getFontSize(FontMode mode) { - if (m_currentMode == FM_Simple) { - if (mode == FM_Mono || mode == FM_SimpleMono) - return m_default_size[FM_SimpleMono]; - else - return m_default_size[FM_Simple]; - } - if (mode == FM_Unspecified) return m_default_size[FM_Standard]; @@ -201,20 +172,12 @@ unsigned int FontEngine::getFontSize(FontMode mode) /******************************************************************************/ void FontEngine::readSettings() { - if (USE_FREETYPE && g_settings->getBool("freetype")) { - m_default_size[FM_Standard] = g_settings->getU16("font_size"); - m_default_size[_FM_Fallback] = g_settings->getU16("font_size"); - m_default_size[FM_Mono] = g_settings->getU16("mono_font_size"); + m_default_size[FM_Standard] = g_settings->getU16("font_size"); + m_default_size[_FM_Fallback] = g_settings->getU16("font_size"); + m_default_size[FM_Mono] = g_settings->getU16("mono_font_size"); - m_default_bold = g_settings->getBool("font_bold"); - m_default_italic = g_settings->getBool("font_italic"); - - } else { - m_currentMode = FM_Simple; - } - - m_default_size[FM_Simple] = g_settings->getU16("font_size"); - m_default_size[FM_SimpleMono] = g_settings->getU16("mono_font_size"); + m_default_bold = g_settings->getBool("font_bold"); + m_default_italic = g_settings->getBool("font_italic"); cleanCache(); updateFontCache(); @@ -283,7 +246,6 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec) Settings::getLayer(SL_DEFAULTS)->get(path_setting) }; -#if USE_FREETYPE for (const std::string &font_path : fallback_settings) { gui::CGUITTFont *font = gui::CGUITTFont::createTTFont(m_env, font_path.c_str(), size, true, true, font_shadow, @@ -302,80 +264,5 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec) } return font; } -#else - errorstream << "FontEngine: Tried to load TTF font but Minetest was" - " compiled without Freetype." << std::endl; -#endif return nullptr; } - -/** initialize a font without freetype */ -gui::IGUIFont *FontEngine::initSimpleFont(const FontSpec &spec) -{ - assert(spec.mode == FM_Simple || spec.mode == FM_SimpleMono); - assert(spec.size != FONT_SIZE_UNSPECIFIED); - - const std::string &font_path = g_settings->get( - (spec.mode == FM_SimpleMono) ? "mono_font_path" : "font_path"); - - size_t pos_dot = font_path.find_last_of('.'); - std::string basename = font_path, ending; - if (pos_dot != std::string::npos) - ending = lowercase(font_path.substr(pos_dot)); - - if (ending == ".ttf") { - errorstream << "FontEngine: Found font \"" << font_path - << "\" but freetype is not available." << std::endl; - return nullptr; - } - - if (ending == ".xml" || ending == ".png") - basename = font_path.substr(0, pos_dot); - - u32 size = std::floor( - RenderingEngine::getDisplayDensity() * - g_settings->getFloat("gui_scaling") * - spec.size); - - irr::gui::IGUIFont *font = nullptr; - std::string font_extensions[] = { ".png", ".xml" }; - - // Find nearest matching font scale - // Does a "zig-zag motion" (positibe/negative), from 0 to MAX_FONT_SIZE_OFFSET - for (s32 zoffset = 0; zoffset < MAX_FONT_SIZE_OFFSET * 2; zoffset++) { - std::stringstream path; - - // LSB to sign - s32 sign = (zoffset & 1) ? -1 : 1; - s32 offset = zoffset >> 1; - - for (const std::string &ext : font_extensions) { - path.str(""); // Clear - path << basename << "_" << (size + offset * sign) << ext; - - if (!fs::PathExists(path.str())) - continue; - - font = m_env->getFont(path.str().c_str()); - - if (font) { - verbosestream << "FontEngine: found font: " << path.str() << std::endl; - break; - } - } - - if (font) - break; - } - - // try name direct - if (font == NULL) { - if (fs::PathExists(font_path)) { - font = m_env->getFont(font_path.c_str()); - if (font) - verbosestream << "FontEngine: found font: " << font_path << std::endl; - } - } - - return font; -} diff --git a/src/client/fontengine.h b/src/client/fontengine.h index 403ac2e48..78608e517 100644 --- a/src/client/fontengine.h +++ b/src/client/fontengine.h @@ -34,8 +34,6 @@ enum FontMode : u8 { FM_Standard = 0, FM_Mono, _FM_Fallback, // do not use directly - FM_Simple, - FM_SimpleMono, FM_MaxMode, FM_Unspecified }; @@ -140,9 +138,6 @@ private: /** initialize a new TTF font */ gui::IGUIFont *initFont(const FontSpec &spec); - /** initialize a font without freetype */ - gui::IGUIFont *initSimpleFont(const FontSpec &spec); - /** update current minetest skin with font changes */ void updateSkin(); @@ -165,8 +160,8 @@ private: bool m_default_bold = false; bool m_default_italic = false; - /** current font engine mode */ - FontMode m_currentMode = FM_Standard; + /** default font engine mode (fixed) */ + static const FontMode m_currentMode = FM_Standard; DISABLE_CLASS_COPY(FontEngine); }; diff --git a/src/cmake_config.h.in b/src/cmake_config.h.in index cfcee4b58..cf436d6dc 100644 --- a/src/cmake_config.h.in +++ b/src/cmake_config.h.in @@ -18,7 +18,6 @@ #cmakedefine01 USE_GETTEXT #cmakedefine01 USE_CURL #cmakedefine01 USE_SOUND -#cmakedefine01 USE_FREETYPE #cmakedefine01 USE_CURSES #cmakedefine01 USE_LEVELDB #cmakedefine01 USE_LUAJIT diff --git a/src/constants.h b/src/constants.h index 3cc3af094..ed858912d 100644 --- a/src/constants.h +++ b/src/constants.h @@ -111,4 +111,3 @@ with this program; if not, write to the Free Software Foundation, Inc., */ #define TTF_DEFAULT_FONT_SIZE (16) -#define DEFAULT_FONT_SIZE (10) diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 47790a552..9e4bb14b5 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -303,8 +303,7 @@ void set_default_settings() settings->setDefault("main_menu_path", ""); settings->setDefault("serverlist_file", "favoriteservers.json"); -#if USE_FREETYPE - settings->setDefault("freetype", "true"); + // General font settings settings->setDefault("font_path", porting::getDataPath("fonts" DIR_DELIM "Arimo-Regular.ttf")); settings->setDefault("font_path_italic", porting::getDataPath("fonts" DIR_DELIM "Arimo-Italic.ttf")); settings->setDefault("font_path_bold", porting::getDataPath("fonts" DIR_DELIM "Arimo-Bold.ttf")); @@ -322,14 +321,6 @@ void set_default_settings() settings->setDefault("fallback_font_path", porting::getDataPath("fonts" DIR_DELIM "DroidSansFallbackFull.ttf")); std::string font_size_str = std::to_string(TTF_DEFAULT_FONT_SIZE); -#else - settings->setDefault("freetype", "false"); - settings->setDefault("font_path", porting::getDataPath("fonts" DIR_DELIM "mono_dejavu_sans")); - settings->setDefault("mono_font_path", porting::getDataPath("fonts" DIR_DELIM "mono_dejavu_sans")); - - std::string font_size_str = std::to_string(DEFAULT_FONT_SIZE); -#endif - // General font settings settings->setDefault("font_size", font_size_str); settings->setDefault("mono_font_size", font_size_str); settings->setDefault("chat_font_size", "0"); // Default "font_size" diff --git a/src/gui/guiChatConsole.cpp b/src/gui/guiChatConsole.cpp index 0610c85cc..01e10ea2e 100644 --- a/src/gui/guiChatConsole.cpp +++ b/src/gui/guiChatConsole.cpp @@ -30,12 +30,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/fontengine.h" #include "log.h" #include "gettext.h" +#include "irrlicht_changes/CGUITTFont.h" #include -#if USE_FREETYPE - #include "irrlicht_changes/CGUITTFont.h" -#endif - inline u32 clamp_u8(s32 value) { return (u32) MYMIN(MYMAX(value, 0), 255); @@ -328,19 +325,16 @@ void GUIChatConsole::drawText() core::rect destrect( x, y, x + m_fontsize.X * fragment.text.size(), y + m_fontsize.Y); -#if USE_FREETYPE if (m_font->getType() == irr::gui::EGFT_CUSTOM) { - // Draw colored text if FreeType is enabled - irr::gui::CGUITTFont *tmp = dynamic_cast(m_font); + // Draw colored text if possible + gui::CGUITTFont *tmp = static_cast(m_font); tmp->draw( fragment.text, destrect, false, false, &AbsoluteClippingRect); - } else -#endif - { + } else { // Otherwise use standard text m_font->draw( fragment.text.c_str(), diff --git a/src/gui/guiHyperText.cpp b/src/gui/guiHyperText.cpp index ccfdcb81d..40450ce5f 100644 --- a/src/gui/guiHyperText.cpp +++ b/src/gui/guiHyperText.cpp @@ -17,31 +17,26 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include "IGUIEnvironment.h" -#include "IGUIElement.h" +#include "guiHyperText.h" #include "guiScrollBar.h" -#include "IGUIFont.h" -#include -#include -#include -using namespace irr::gui; #include "client/fontengine.h" -#include #include "client/tile.h" #include "IVideoDriver.h" #include "client/client.h" #include "client/renderingengine.h" #include "hud.h" -#include "guiHyperText.h" #include "util/string.h" +#include "irrlicht_changes/CGUITTFont.h" -bool check_color(const std::string &str) +using namespace irr::gui; + +static bool check_color(const std::string &str) { irr::video::SColor color; return parseColorString(str, color, false); } -bool check_integer(const std::string &str) +static bool check_integer(const std::string &str) { if (str.empty()) return false; @@ -616,12 +611,10 @@ TextDrawer::TextDrawer(const wchar_t *text, Client *client, if (e.font) { e.dim.Width = e.font->getDimension(e.text.c_str()).Width; e.dim.Height = e.font->getDimension(L"Yy").Height; -#if USE_FREETYPE if (e.font->getType() == irr::gui::EGFT_CUSTOM) { - e.baseline = e.dim.Height - 1 - - ((irr::gui::CGUITTFont *)e.font)->getAscender() / 64; + CGUITTFont *tmp = static_cast(e.font); + e.baseline = e.dim.Height - 1 - tmp->getAscender() / 64; } -#endif } else { e.dim = {0, 0}; } diff --git a/src/gui/guiHyperText.h b/src/gui/guiHyperText.h index 5b936262e..04c664df5 100644 --- a/src/gui/guiHyperText.h +++ b/src/gui/guiHyperText.h @@ -19,16 +19,17 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once -#include "config.h" // for USE_FREETYPE +#include +#include +#include +#include +#include "irrlichttypes_extrabloated.h" using namespace irr; class ISimpleTextureSource; class Client; - -#if USE_FREETYPE -#include "irrlicht_changes/CGUITTFont.h" -#endif +class GUIScrollBar; class ParsedText { diff --git a/src/irrlicht_changes/CMakeLists.txt b/src/irrlicht_changes/CMakeLists.txt index 87c88f7e8..19f431af3 100644 --- a/src/irrlicht_changes/CMakeLists.txt +++ b/src/irrlicht_changes/CMakeLists.txt @@ -1,14 +1,9 @@ if (BUILD_CLIENT) set(client_irrlicht_changes_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/static_text.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/CGUITTFont.cpp ) - if (USE_FREETYPE) - set(client_irrlicht_changes_SRCS ${client_irrlicht_changes_SRCS} - ${CMAKE_CURRENT_SOURCE_DIR}/CGUITTFont.cpp - ) - endif() - # CMake require us to set a local scope and then parent scope # Else the last set win in parent scope set(client_irrlicht_changes_SRCS ${client_irrlicht_changes_SRCS} PARENT_SCOPE) diff --git a/src/irrlicht_changes/static_text.cpp b/src/irrlicht_changes/static_text.cpp index f548c3f71..baf0ea626 100644 --- a/src/irrlicht_changes/static_text.cpp +++ b/src/irrlicht_changes/static_text.cpp @@ -12,17 +12,12 @@ #include #include -#if USE_FREETYPE - #include "CGUITTFont.h" -#endif - +#include "CGUITTFont.h" #include "util/string.h" namespace irr { -#if USE_FREETYPE - namespace gui { //! constructor @@ -108,14 +103,12 @@ void StaticText::draw() font->getDimension(str.c_str()).Width; } -#if USE_FREETYPE if (font->getType() == irr::gui::EGFT_CUSTOM) { - irr::gui::CGUITTFont *tmp = static_cast(font); + CGUITTFont *tmp = static_cast(font); tmp->draw(str, r, HAlign == EGUIA_CENTER, VAlign == EGUIA_CENTER, (RestrainTextInside ? &AbsoluteClippingRect : NULL)); } else -#endif { // Draw non-colored text font->draw(str.c_str(), @@ -590,8 +583,6 @@ s32 StaticText::getTextWidth() const } // end namespace gui -#endif // USE_FREETYPE - } // end namespace irr diff --git a/src/irrlicht_changes/static_text.h b/src/irrlicht_changes/static_text.h index 17a3bf753..74ef62008 100644 --- a/src/irrlicht_changes/static_text.h +++ b/src/irrlicht_changes/static_text.h @@ -20,7 +20,6 @@ #include "config.h" #include -#if USE_FREETYPE namespace irr { @@ -230,41 +229,6 @@ inline void setStaticText(irr::gui::IGUIStaticText *static_text, const EnrichedS } } -#else // USE_FREETYPE - -namespace irr -{ -namespace gui -{ - -class StaticText -{ -public: - static irr::gui::IGUIStaticText *add( - irr::gui::IGUIEnvironment *guienv, - const EnrichedString &text, - const core::rect< s32 > &rectangle, - bool border = false, - bool wordWrap = true, - irr::gui::IGUIElement *parent = NULL, - s32 id = -1, - bool fillBackground = false) - { - return guienv->addStaticText(text.c_str(), rectangle, border, wordWrap, parent, id, fillBackground); - } -}; - -} // end namespace gui - -} // end namespace irr - -inline void setStaticText(irr::gui::IGUIStaticText *static_text, const EnrichedString &text) -{ - static_text->setText(text.c_str()); -} - -#endif - inline void setStaticText(irr::gui::IGUIStaticText *static_text, const wchar_t *text) { setStaticText(static_text, EnrichedString(text, static_text->getOverrideColor())); diff --git a/src/version.cpp b/src/version.cpp index c555f30af..f2aac37df 100644 --- a/src/version.cpp +++ b/src/version.cpp @@ -37,7 +37,6 @@ const char *g_build_info = #ifndef SERVER "USE_GETTEXT=" STR(USE_GETTEXT) "\n" "USE_SOUND=" STR(USE_SOUND) "\n" - "USE_FREETYPE=" STR(USE_FREETYPE) "\n" #endif "STATIC_SHAREDIR=" STR(STATIC_SHAREDIR) #if USE_GETTEXT && defined(STATIC_LOCALEDIR) diff --git a/util/buildbot/buildwin32.sh b/util/buildbot/buildwin32.sh index 696297aed..2eb9dab11 100755 --- a/util/buildbot/buildwin32.sh +++ b/util/buildbot/buildwin32.sh @@ -129,7 +129,6 @@ cmake -S $sourcedir -B . \ -DENABLE_SOUND=1 \ -DENABLE_CURL=1 \ -DENABLE_GETTEXT=1 \ - -DENABLE_FREETYPE=1 \ -DENABLE_LEVELDB=1 \ \ -DCMAKE_PREFIX_PATH=$libdir/irrlicht \ diff --git a/util/buildbot/buildwin64.sh b/util/buildbot/buildwin64.sh index 20d0b3a6a..3dd4db687 100755 --- a/util/buildbot/buildwin64.sh +++ b/util/buildbot/buildwin64.sh @@ -129,7 +129,6 @@ cmake -S $sourcedir -B . \ -DENABLE_SOUND=1 \ -DENABLE_CURL=1 \ -DENABLE_GETTEXT=1 \ - -DENABLE_FREETYPE=1 \ -DENABLE_LEVELDB=1 \ \ -DCMAKE_PREFIX_PATH=$libdir/irrlicht \ -- cgit v1.2.3 From 76e97e85a08ce71fea7654c729787c6c4409e0d8 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 14 Dec 2021 01:14:12 +0100 Subject: Update compiler versions in CI downgrade gcc 6 -> 5 to better match our minimum upgrade gcc and clang by moving two images to ubuntu 20.04 --- .github/workflows/build.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b1ba78ed0..79f9af5c7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,49 +30,49 @@ on: - '.dockerignore' jobs: - # This is our minor gcc compiler - gcc_6: + # Older gcc version (should be close to our minimum supported version) + gcc_5: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - name: Install deps run: | source ./util/ci/common.sh - install_linux_deps g++-6 + install_linux_deps g++-5 - name: Build run: | ./util/ci/build.sh env: - CC: gcc-6 - CXX: g++-6 + CC: gcc-5 + CXX: g++-5 - name: Test run: | ./bin/minetest --run-unittests - # This is the current gcc compiler (available in bionic) - gcc_8: - runs-on: ubuntu-18.04 + # Current gcc version + gcc_10: + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Install deps run: | source ./util/ci/common.sh - install_linux_deps g++-8 + install_linux_deps g++-10 - name: Build run: | ./util/ci/build.sh env: - CC: gcc-8 - CXX: g++-8 + CC: gcc-10 + CXX: g++-10 - name: Test run: | ./bin/minetest --run-unittests - # This is our minor clang compiler + # Older clang version (should be close to our minimum supported version) clang_3_9: runs-on: ubuntu-18.04 steps: @@ -97,22 +97,22 @@ jobs: run: | ./util/test_multiplayer.sh - # This is the current clang version - clang_9: - runs-on: ubuntu-18.04 + # Current clang version + clang_10: + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Install deps run: | source ./util/ci/common.sh - install_linux_deps clang-9 valgrind libluajit-5.1-dev + install_linux_deps clang-10 valgrind libluajit-5.1-dev - name: Build run: | ./util/ci/build.sh env: - CC: clang-9 - CXX: clang++-9 + CC: clang-10 + CXX: clang++-10 CMAKE_FLAGS: "-DREQUIRE_LUAJIT=1" - name: Test -- cgit v1.2.3 From b02b381af26c792d7f7feaa93198bb7efb2512de Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 16 Jan 2022 15:54:08 +0100 Subject: Bump IrrlichtMt to 1.9.0mt4 in CI --- .github/workflows/macos.yml | 2 +- .gitlab-ci.yml | 2 +- util/buildbot/buildwin32.sh | 2 +- util/buildbot/buildwin64.sh | 2 +- util/ci/common.sh | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index d97cff1aa..69253b70a 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -22,7 +22,7 @@ on: - '.github/workflows/macos.yml' env: - IRRLICHT_TAG: 1.9.0mt3 + IRRLICHT_TAG: 1.9.0mt4 MINETEST_GAME_REPO: https://github.com/minetest/minetest_game.git MINETEST_GAME_BRANCH: master MINETEST_GAME_NAME: minetest_game diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f1079c568..5d2600364 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,7 @@ stages: - deploy variables: - IRRLICHT_TAG: "1.9.0mt3" + IRRLICHT_TAG: "1.9.0mt4" MINETEST_GAME_REPO: "https://github.com/minetest/minetest_game.git" CONTAINER_IMAGE: registry.gitlab.com/$CI_PROJECT_PATH diff --git a/util/buildbot/buildwin32.sh b/util/buildbot/buildwin32.sh index 2eb9dab11..9eb9a4050 100755 --- a/util/buildbot/buildwin32.sh +++ b/util/buildbot/buildwin32.sh @@ -45,7 +45,7 @@ done echo "The compiler runtime DLLs could not be found, they might be missing in the final package." # Get stuff -irrlicht_version=1.9.0mt3 +irrlicht_version=1.9.0mt4 ogg_version=1.3.4 vorbis_version=1.3.7 curl_version=7.76.1 diff --git a/util/buildbot/buildwin64.sh b/util/buildbot/buildwin64.sh index 3dd4db687..eb1eae4c2 100755 --- a/util/buildbot/buildwin64.sh +++ b/util/buildbot/buildwin64.sh @@ -45,7 +45,7 @@ done echo "The compiler runtime DLLs could not be found, they might be missing in the final package." # Get stuff -irrlicht_version=1.9.0mt3 +irrlicht_version=1.9.0mt4 ogg_version=1.3.4 vorbis_version=1.3.7 curl_version=7.76.1 diff --git a/util/ci/common.sh b/util/ci/common.sh index 88bed9ed4..f9df54c4a 100644 --- a/util/ci/common.sh +++ b/util/ci/common.sh @@ -11,7 +11,7 @@ install_linux_deps() { shift pkgs+=(libirrlicht-dev) else - wget "https://github.com/minetest/irrlicht/releases/download/1.9.0mt3/ubuntu-bionic.tar.gz" + wget "https://github.com/minetest/irrlicht/releases/download/1.9.0mt4/ubuntu-bionic.tar.gz" sudo tar -xaf ubuntu-bionic.tar.gz -C /usr/local fi -- cgit v1.2.3 From ce199d6f9e65d6ba51cbf2e1f948586ddc617317 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 3 Feb 2022 21:34:30 +0100 Subject: Update MinGW used by CI This made a rebuild of 32-bit deps necessary. They were updated in the process and this was done for 64-bit too for consistency. --- .github/workflows/build.yml | 8 ++++---- .gitlab-ci.yml | 2 +- util/buildbot/buildwin32.sh | 34 +++++++++++++++++++--------------- util/buildbot/buildwin64.sh | 19 ++++++++++--------- 4 files changed, 34 insertions(+), 29 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 79f9af5c7..78027d09c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -162,13 +162,13 @@ jobs: win32: name: "MinGW cross-compiler (32-bit)" - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Install compiler run: | sudo apt-get update -q && sudo apt-get install gettext -qyy - wget http://minetest.kitsunemimi.pw/mingw-w64-i686_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz + wget http://minetest.kitsunemimi.pw/mingw-w64-i686_11.2.0_ubuntu20.04.tar.xz -O mingw.tar.xz sudo tar -xaf mingw.tar.xz -C /usr - name: Build @@ -180,13 +180,13 @@ jobs: win64: name: "MinGW cross-compiler (64-bit)" - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Install compiler run: | sudo apt-get update -q && sudo apt-get install gettext -qyy - wget http://minetest.kitsunemimi.pw/mingw-w64-x86_64_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz + wget http://minetest.kitsunemimi.pw/mingw-w64-x86_64_11.2.0_ubuntu20.04.tar.xz -O mingw.tar.xz sudo tar -xaf mingw.tar.xz -C /usr - name: Build diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5d2600364..feb334bee 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -198,7 +198,7 @@ build:fedora-28: before_script: - apt-get update - DEBIAN_FRONTEND=noninteractive apt-get install -y wget xz-utils unzip git cmake gettext - - wget -nv http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz + - wget -nv http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_11.2.0_ubuntu20.04.tar.xz -O mingw.tar.xz - tar -xaf mingw.tar.xz -C /usr .build_win_template: diff --git a/util/buildbot/buildwin32.sh b/util/buildbot/buildwin32.sh index 9eb9a4050..78b87ec57 100755 --- a/util/buildbot/buildwin32.sh +++ b/util/buildbot/buildwin32.sh @@ -46,16 +46,17 @@ done # Get stuff irrlicht_version=1.9.0mt4 -ogg_version=1.3.4 +ogg_version=1.3.5 +openal_version=1.21.1 vorbis_version=1.3.7 -curl_version=7.76.1 +curl_version=7.81.0 gettext_version=0.20.1 -freetype_version=2.10.4 -sqlite3_version=3.35.5 +freetype_version=2.11.1 +sqlite3_version=3.37.2 luajit_version=2.1.0-beta3 leveldb_version=1.23 zlib_version=1.2.11 -zstd_version=1.4.9 +zstd_version=1.5.2 mkdir -p $libdir @@ -78,19 +79,22 @@ download () { fi } +# 'dw2' just points to rebuilt versions after a toolchain change +# this distinction should be gotten rid of next time + cd $libdir -download "https://github.com/minetest/irrlicht/releases/download/$irrlicht_version/win32.zip" irrlicht-$irrlicht_version.zip -download "http://minetest.kitsunemimi.pw/zlib-$zlib_version-win32.zip" +download "https://github.com/minetest/irrlicht/releases/download/$irrlicht_version/win32-dw2.zip" irrlicht-$irrlicht_version.zip +download "http://minetest.kitsunemimi.pw/dw2/zlib-$zlib_version-win32.zip" download "http://minetest.kitsunemimi.pw/zstd-$zstd_version-win32.zip" download "http://minetest.kitsunemimi.pw/libogg-$ogg_version-win32.zip" -download "http://minetest.kitsunemimi.pw/libvorbis-$vorbis_version-win32.zip" +download "http://minetest.kitsunemimi.pw/dw2/libvorbis-$vorbis_version-win32.zip" download "http://minetest.kitsunemimi.pw/curl-$curl_version-win32.zip" -download "http://minetest.kitsunemimi.pw/gettext-$gettext_version-win32.zip" +download "http://minetest.kitsunemimi.pw/dw2/gettext-$gettext_version-win32.zip" download "http://minetest.kitsunemimi.pw/freetype2-$freetype_version-win32.zip" freetype-$freetype_version.zip download "http://minetest.kitsunemimi.pw/sqlite3-$sqlite3_version-win32.zip" -download "http://minetest.kitsunemimi.pw/luajit-$luajit_version-win32.zip" -download "http://minetest.kitsunemimi.pw/libleveldb-$leveldb_version-win32.zip" leveldb-$leveldb_version.zip -download "http://minetest.kitsunemimi.pw/openal_stripped.zip" '' unzip_nofolder +download "http://minetest.kitsunemimi.pw/dw2/luajit-$luajit_version-win32.zip" +download "http://minetest.kitsunemimi.pw/dw2/libleveldb-$leveldb_version-win32.zip" leveldb-$leveldb_version.zip +download "http://minetest.kitsunemimi.pw/openal-soft-$openal_version-win32.zip" # Set source dir, downloading Minetest as needed if [ -n "$EXISTING_MINETEST_DIR" ]; then @@ -154,9 +158,9 @@ cmake -S $sourcedir -B . \ -DVORBIS_DLL="$vorbis_dlls" \ -DVORBISFILE_LIBRARY=$libdir/libvorbis/lib/libvorbisfile.dll.a \ \ - -DOPENAL_INCLUDE_DIR=$libdir/openal_stripped/include/AL \ - -DOPENAL_LIBRARY=$libdir/openal_stripped/lib/libOpenAL32.dll.a \ - -DOPENAL_DLL=$libdir/openal_stripped/bin/OpenAL32.dll \ + -DOPENAL_INCLUDE_DIR=$libdir/openal/include/AL \ + -DOPENAL_LIBRARY=$libdir/openal/lib/libOpenAL32.dll.a \ + -DOPENAL_DLL=$libdir/openal/bin/OpenAL32.dll \ \ -DCURL_DLL=$libdir/curl/bin/libcurl-4.dll \ -DCURL_INCLUDE_DIR=$libdir/curl/include \ diff --git a/util/buildbot/buildwin64.sh b/util/buildbot/buildwin64.sh index eb1eae4c2..7526cc200 100755 --- a/util/buildbot/buildwin64.sh +++ b/util/buildbot/buildwin64.sh @@ -46,16 +46,17 @@ done # Get stuff irrlicht_version=1.9.0mt4 -ogg_version=1.3.4 +ogg_version=1.3.5 +openal_version=1.21.1 vorbis_version=1.3.7 -curl_version=7.76.1 +curl_version=7.81.0 gettext_version=0.20.1 -freetype_version=2.10.4 -sqlite3_version=3.35.5 +freetype_version=2.11.1 +sqlite3_version=3.37.2 luajit_version=2.1.0-beta3 leveldb_version=1.23 zlib_version=1.2.11 -zstd_version=1.4.9 +zstd_version=1.5.2 mkdir -p $libdir @@ -90,7 +91,7 @@ download "http://minetest.kitsunemimi.pw/freetype2-$freetype_version-win64.zip" download "http://minetest.kitsunemimi.pw/sqlite3-$sqlite3_version-win64.zip" download "http://minetest.kitsunemimi.pw/luajit-$luajit_version-win64.zip" download "http://minetest.kitsunemimi.pw/libleveldb-$leveldb_version-win64.zip" leveldb-$leveldb_version.zip -download "http://minetest.kitsunemimi.pw/openal_stripped64.zip" 'openal_stripped.zip' unzip_nofolder +download "http://minetest.kitsunemimi.pw/openal-soft-$openal_version-win64.zip" # Set source dir, downloading Minetest as needed if [ -n "$EXISTING_MINETEST_DIR" ]; then @@ -154,9 +155,9 @@ cmake -S $sourcedir -B . \ -DVORBIS_DLL="$vorbis_dlls" \ -DVORBISFILE_LIBRARY=$libdir/libvorbis/lib/libvorbisfile.dll.a \ \ - -DOPENAL_INCLUDE_DIR=$libdir/openal_stripped/include/AL \ - -DOPENAL_LIBRARY=$libdir/openal_stripped/lib/libOpenAL32.dll.a \ - -DOPENAL_DLL=$libdir/openal_stripped/bin/OpenAL32.dll \ + -DOPENAL_INCLUDE_DIR=$libdir/openal/include/AL \ + -DOPENAL_LIBRARY=$libdir/openal/lib/libOpenAL32.dll.a \ + -DOPENAL_DLL=$libdir/openal/bin/OpenAL32.dll \ \ -DCURL_DLL=$libdir/curl/bin/libcurl-4.dll \ -DCURL_INCLUDE_DIR=$libdir/curl/include \ -- cgit v1.2.3 From ea2fba877a6d1d1170bc64bc9586edb615da584d Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Wed, 1 Dec 2021 18:32:41 -0500 Subject: Use build directory for builds --- .github/workflows/macos.yml | 4 ++-- .gitlab-ci.yml | 4 ++-- README.md | 4 ++-- util/ci/build.sh | 4 ++-- util/ci/clang-tidy.sh | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 69253b70a..68813f961 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -45,8 +45,8 @@ jobs: git clone -b $MINETEST_GAME_BRANCH $MINETEST_GAME_REPO games/$MINETEST_GAME_NAME rm -rvf games/$MINETEST_GAME_NAME/.git git clone https://github.com/minetest/irrlicht -b $IRRLICHT_TAG lib/irrlichtmt - mkdir cmakebuild - cd cmakebuild + mkdir build + cd build cmake .. \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 \ -DCMAKE_FIND_FRAMEWORK=LAST \ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index feb334bee..626fd022b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,8 +20,8 @@ variables: - DEBIAN_FRONTEND=noninteractive apt-get -y install build-essential git cmake libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libleveldb-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev libzstd-dev script: - git clone https://github.com/minetest/irrlicht -b $IRRLICHT_TAG lib/irrlichtmt - - mkdir cmakebuild - - cd cmakebuild + - mkdir build + - cd build - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DBUILD_SERVER=TRUE .. - make -j2 - make install diff --git a/README.md b/README.md index 8f089ab48..8ecaabea0 100644 --- a/README.md +++ b/README.md @@ -418,8 +418,8 @@ git clone --depth 1 https://github.com/minetest/irrlicht.git lib/irrlichtmt #### Build ```bash -mkdir cmakebuild -cd cmakebuild +mkdir build +cd build cmake .. \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 \ diff --git a/util/ci/build.sh b/util/ci/build.sh index ba77cd645..32b5c92a7 100755 --- a/util/ci/build.sh +++ b/util/ci/build.sh @@ -1,7 +1,7 @@ #! /bin/bash -e -mkdir cmakebuild -cd cmakebuild +mkdir build +cd build cmake -DCMAKE_BUILD_TYPE=Debug \ -DRUN_IN_PLACE=TRUE -DENABLE_GETTEXT=TRUE \ -DBUILD_SERVER=TRUE ${CMAKE_FLAGS} .. diff --git a/util/ci/clang-tidy.sh b/util/ci/clang-tidy.sh index bb4e99fef..74578eeac 100755 --- a/util/ci/clang-tidy.sh +++ b/util/ci/clang-tidy.sh @@ -1,7 +1,7 @@ #! /bin/bash -eu -mkdir -p cmakebuild -cd cmakebuild +mkdir -p build +cd build cmake -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DRUN_IN_PLACE=TRUE \ @@ -12,6 +12,6 @@ make GenerateVersion cd .. ./util/ci/run-clang-tidy.py \ - -clang-tidy-binary=clang-tidy-9 -p cmakebuild \ + -clang-tidy-binary=clang-tidy-9 -p build \ -quiet -config="$(cat .clang-tidy)" \ 'src/.*' -- cgit v1.2.3 From 828461c193c9dcee1221a367b340084e4ee643ad Mon Sep 17 00:00:00 2001 From: x2048 Date: Sat, 30 Apr 2022 15:54:07 +0200 Subject: Run automated tests when lua files change (#12184) * Run automated tests when lua files change * skip busted on devtest * use newer build env * Add .luacheckrc for games/devetest Co-authored-by: sfan5 --- .github/workflows/lua.yml | 60 ++++++++++++++++++++++++++++++++++++++++++ .github/workflows/lua_lint.yml | 32 ---------------------- games/devtest/.luacheckrc | 43 ++++++++++++++++++++++++++++++ 3 files changed, 103 insertions(+), 32 deletions(-) create mode 100644 .github/workflows/lua.yml delete mode 100644 .github/workflows/lua_lint.yml create mode 100644 games/devtest/.luacheckrc (limited to '.github/workflows') diff --git a/.github/workflows/lua.yml b/.github/workflows/lua.yml new file mode 100644 index 000000000..0fa30bb15 --- /dev/null +++ b/.github/workflows/lua.yml @@ -0,0 +1,60 @@ +name: lua_lint + +# Lint on lua changes on builtin or if workflow changed +on: + push: + paths: + - 'builtin/**.lua' + - 'games/devtest/**.lua' + - '.github/workflows/**.yml' + pull_request: + paths: + - 'builtin/**.lua' + - 'games/devtest/**.lua' + - '.github/workflows/**.yml' + +jobs: + # Note that the integration tests are also run build.yml, but only when C++ code is changed. + integration_tests: + name: "Compile and run multiplayer tests" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - name: Install deps + run: | + source ./util/ci/common.sh + install_linux_deps clang-10 gdb + + - name: Build + run: | + ./util/ci/build.sh + env: + CC: clang-10 + CXX: clang++-10 + + - name: Integration test + devtest + run: | + ./util/test_multiplayer.sh + + luacheck: + name: "Builtin Luacheck and Unit Tests" + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Install luarocks + run: | + sudo apt-get install luarocks -qyy + + - name: Install luarocks tools + run: | + luarocks install --local luacheck + luarocks install --local busted + + - name: Run checks (builtin) + run: | + $HOME/.luarocks/bin/luacheck builtin + $HOME/.luarocks/bin/busted builtin + + - name: Run checks (devtest) + run: | + $HOME/.luarocks/bin/luacheck --config=games/devtest/.luacheckrc games/devtest diff --git a/.github/workflows/lua_lint.yml b/.github/workflows/lua_lint.yml deleted file mode 100644 index 738e5afff..000000000 --- a/.github/workflows/lua_lint.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: lua_lint - -# Lint on lua changes on builtin or if workflow changed -on: - push: - paths: - - 'builtin/**.lua' - - '.github/workflows/**.yml' - pull_request: - paths: - - 'builtin/**.lua' - - '.github/workflows/**.yml' - -jobs: - luacheck: - name: "Builtin Luacheck and Unit Tests" - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v2 - - name: Install luarocks - run: | - sudo apt-get install luarocks -qyy - - - name: Install luarocks tools - run: | - luarocks install --local luacheck - luarocks install --local busted - - - name: Run checks - run: | - $HOME/.luarocks/bin/luacheck builtin - $HOME/.luarocks/bin/busted builtin diff --git a/games/devtest/.luacheckrc b/games/devtest/.luacheckrc new file mode 100644 index 000000000..1c7d3994f --- /dev/null +++ b/games/devtest/.luacheckrc @@ -0,0 +1,43 @@ +unused_args = false +allow_defined_top = true +max_string_line_length = false +max_line_length = false + +ignore = { + "131", -- Unused global variable + "211", -- Unused local variable + "231", -- Local variable never accessed + "311", -- Value assigned to a local variable is unused + "412", -- Redefining an argument + "421", -- Shadowing a local variable + "431", -- Shadowing an upvalue + "432", -- Shadowing an upvalue argument + "611", -- Line contains only whitespace +} + +read_globals = { + "ItemStack", + "INIT", + "DIR_DELIM", + "dump", "dump2", + "fgettext", "fgettext_ne", + "vector", + "VoxelArea", + "profiler", + "Settings", + "check", + "PseudoRandom", + + string = {fields = {"split", "trim"}}, + table = {fields = {"copy", "getn", "indexof", "insert_all"}}, + math = {fields = {"hypot", "round"}}, +} + +globals = { + "aborted", + "minetest", + "core", + os = { fields = { "tempfolder" } }, + "_", +} + -- cgit v1.2.3 From 47cf257c4098f087d4dc46ac28ddb39141222b0c Mon Sep 17 00:00:00 2001 From: LoneWolfHT Date: Wed, 4 May 2022 14:55:02 -0700 Subject: Fix Windows Visual Studio actions (#11176) Co-authored-by: rubenwardy --- .github/workflows/build.yml | 24 ++++++++++++++---------- src/CMakeLists.txt | 7 ++++--- 2 files changed, 18 insertions(+), 13 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 78027d09c..61b9833be 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -199,13 +199,10 @@ jobs: msvc: name: VS 2019 ${{ matrix.config.arch }}-${{ matrix.type }} runs-on: windows-2019 - #### Disabled due to Irrlicht switch - if: false - #### Disabled due to Irrlicht switch env: - VCPKG_VERSION: 0bf3923f9fab4001c00f0f429682a0853b5749e0 -# 2020.11 - vcpkg_packages: irrlicht zlib zstd curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit + VCPKG_VERSION: 5cf60186a241e84e8232641ee973395d4fde90e1 + # 2022.02 + vcpkg_packages: zlib zstd curl[winssl] openal-soft libvorbis libogg libjpeg-turbo sqlite3 freetype luajit gmp jsoncpp opengl-registry strategy: fail-fast: false matrix: @@ -227,10 +224,17 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 + + - name: Checkout IrrlichtMT + uses: actions/checkout@v3 + with: + repository: minetest/irrlicht + path: lib/irrlichtmt/ + ref: "1.9.0mt4" - name: Restore from cache and run vcpkg - uses: lukka/run-vcpkg@v5 + uses: lukka/run-vcpkg@v7 with: vcpkgArguments: ${{env.vcpkg_packages}} vcpkgDirectory: '${{ github.workspace }}\vcpkg' @@ -238,7 +242,7 @@ jobs: vcpkgGitCommitId: ${{ env.VCPKG_VERSION }} vcpkgTriplet: ${{ matrix.config.vcpkg_triplet }} - - name: CMake + - name: Minetest CMake run: | cmake ${{matrix.config.generator}} ` -DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}\vcpkg\scripts\buildsystems\vcpkg.cmake" ` @@ -246,7 +250,7 @@ jobs: -DENABLE_POSTGRESQL=OFF ` -DRUN_IN_PLACE=${{ contains(matrix.type, 'portable') }} . - - name: Build + - name: Build Minetest run: cmake --build . --config Release - name: CPack diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f9ec419e9..03e48ddbd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -826,13 +826,14 @@ if(WIN32) if(LUA_DLL) install(FILES ${LUA_DLL} DESTINATION ${BINDIR}) endif() - if(BUILD_CLIENT AND IRRLICHT_DLL) - install(FILES ${IRRLICHT_DLL} DESTINATION ${BINDIR}) - endif() if(BUILD_CLIENT AND USE_GETTEXT AND GETTEXT_DLL) 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) -- cgit v1.2.3 From e108954633df9e4b2e235dd8e16b64f846a2d251 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 1 May 2022 14:44:48 +0200 Subject: Sort out some issues with our CI setup * add missing apt-get update where needed * move some jobs to run on ubuntu-20.04 * update actions plugins to latest * speed up the job that runs multiplayer tests --- .github/workflows/android.yml | 6 +++--- .github/workflows/build.yml | 31 +++++++++++++++---------------- .github/workflows/cpp_lint.yml | 14 +++++++------- .github/workflows/lua.yml | 11 ++++++----- .github/workflows/macos.yml | 4 ++-- README.md | 1 - util/ci/common.sh | 3 --- 7 files changed, 33 insertions(+), 37 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index cc5fe83ef..20411a332 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -23,7 +23,7 @@ jobs: build: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install deps run: | sudo apt-get update @@ -31,12 +31,12 @@ jobs: - name: Build with Gradle run: cd android; ./gradlew assemblerelease - name: Save armeabi artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: Minetest-armeabi-v7a.apk path: android/app/build/outputs/apk/release/app-armeabi-v7a-release-unsigned.apk - name: Save arm64 artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: Minetest-arm64-v8a.apk path: android/app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 61b9833be..340f1c604 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,7 +34,7 @@ jobs: gcc_5: runs-on: ubuntu-18.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install deps run: | source ./util/ci/common.sh @@ -55,7 +55,7 @@ jobs: gcc_10: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install deps run: | source ./util/ci/common.sh @@ -76,7 +76,7 @@ jobs: clang_3_9: runs-on: ubuntu-18.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install deps run: | source ./util/ci/common.sh @@ -101,7 +101,7 @@ jobs: clang_10: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install deps run: | source ./util/ci/common.sh @@ -126,9 +126,9 @@ jobs: # Build with prometheus-cpp (server-only) clang_9_prometheus: name: "clang_9 (PROMETHEUS=1)" - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install deps run: | source ./util/ci/common.sh @@ -152,9 +152,9 @@ jobs: docker: name: "Docker image" - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Build docker image run: | docker build . -t minetest:latest @@ -164,10 +164,10 @@ jobs: name: "MinGW cross-compiler (32-bit)" runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install compiler run: | - sudo apt-get update -q && sudo apt-get install gettext -qyy + sudo apt-get update && sudo apt-get install -y gettext wget http://minetest.kitsunemimi.pw/mingw-w64-i686_11.2.0_ubuntu20.04.tar.xz -O mingw.tar.xz sudo tar -xaf mingw.tar.xz -C /usr @@ -182,10 +182,10 @@ jobs: name: "MinGW cross-compiler (64-bit)" runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install compiler run: | - sudo apt-get update -q && sudo apt-get install gettext -qyy + sudo apt-get update && sudo apt-get install -y gettext wget http://minetest.kitsunemimi.pw/mingw-w64-x86_64_11.2.0_ubuntu20.04.tar.xz -O mingw.tar.xz sudo tar -xaf mingw.tar.xz -C /usr @@ -223,10 +223,9 @@ jobs: # Enable it, when working on the installer. steps: - - name: Checkout - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - - name: Checkout IrrlichtMT + - name: Checkout IrrlichtMt uses: actions/checkout@v3 with: repository: minetest/irrlicht @@ -269,7 +268,7 @@ jobs: - name: Package Clean run: rm -r $env:GITHUB_WORKSPACE\Package\_CPack_Packages - - uses: actions/upload-artifact@v1 + - uses: actions/upload-artifact@v3 with: name: msvc-${{ matrix.config.arch }}-${{ matrix.type }} path: .\Package\ diff --git a/.github/workflows/cpp_lint.yml b/.github/workflows/cpp_lint.yml index 2bd884c7a..581ee06d6 100644 --- a/.github/workflows/cpp_lint.yml +++ b/.github/workflows/cpp_lint.yml @@ -26,12 +26,13 @@ on: jobs: # clang_format: -# runs-on: ubuntu-18.04 +# runs-on: ubuntu-20.04 # steps: -# - uses: actions/checkout@v2 +# - uses: actions/checkout@v3 # - name: Install clang-format # run: | -# sudo apt-get install clang-format-9 -qyy +# sudo apt-get update +# sudo apt-get install -y clang-format-9 # # - name: Run clang-format # run: | @@ -41,14 +42,13 @@ jobs: # CLANG_FORMAT: clang-format-9 clang_tidy: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install deps run: | - sudo apt-get install clang-tidy-9 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps clang-tidy-9 - name: Run clang-tidy run: | diff --git a/.github/workflows/lua.yml b/.github/workflows/lua.yml index 0fa30bb15..3af4a6ee7 100644 --- a/.github/workflows/lua.yml +++ b/.github/workflows/lua.yml @@ -19,11 +19,11 @@ jobs: name: "Compile and run multiplayer tests" runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install deps run: | source ./util/ci/common.sh - install_linux_deps clang-10 gdb + install_linux_deps clang-10 gdb libluajit-5.1-dev - name: Build run: | @@ -31,6 +31,7 @@ jobs: env: CC: clang-10 CXX: clang++-10 + CMAKE_FLAGS: "-DENABLE_GETTEXT=0 -DBUILD_SERVER=0" - name: Integration test + devtest run: | @@ -38,12 +39,12 @@ jobs: luacheck: name: "Builtin Luacheck and Unit Tests" - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install luarocks run: | - sudo apt-get install luarocks -qyy + sudo apt-get update && sudo apt-get install -y luarocks - name: Install luarocks tools run: | diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 68813f961..1f1772bf3 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -31,7 +31,7 @@ jobs: build: runs-on: macos-10.15 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install deps run: | pkgs=(cmake freetype gettext gmp hiredis jpeg jsoncpp leveldb libogg libpng libvorbis luajit zstd) @@ -60,7 +60,7 @@ jobs: run: | ./build/macos/minetest.app/Contents/MacOS/minetest --run-unittests - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v3 with: name: minetest-macos path: ./build/macos/ diff --git a/README.md b/README.md index 8ecaabea0..f6fdd0faf 100644 --- a/README.md +++ b/README.md @@ -305,7 +305,6 @@ Library specific options: VORBIS_DLL - Only if building with sound on Windows; paths to vorbis DLLs VORBIS_INCLUDE_DIR - Only if building with sound; directory that contains a directory vorbis with vorbisenc.h inside VORBIS_LIBRARY - Only if building with sound; path to libvorbis.a/libvorbis.so/libvorbis.dll.a - XXF86VM_LIBRARY - Only on Linux; path to libXXf86vm.a/libXXf86vm.so ZLIB_DLL - Only on Windows; path to zlib1.dll ZLIB_INCLUDE_DIR - Directory that contains zlib.h ZLIB_LIBRARY - Path to libz.a/libz.so/zlib.lib diff --git a/util/ci/common.sh b/util/ci/common.sh index f9df54c4a..2802a004a 100644 --- a/util/ci/common.sh +++ b/util/ci/common.sh @@ -17,9 +17,6 @@ install_linux_deps() { sudo apt-get update sudo apt-get install -y --no-install-recommends ${pkgs[@]} "$@" - - # workaround for bug with Github Actions' ubuntu-18.04 image - sudo apt-get remove -y libgcc-11-dev gcc-11 || : } # Mac OSX build only -- cgit v1.2.3 From 4e1de06782b2541e8d487adfd87b0c2afeedeab3 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 6 May 2022 14:45:59 +0200 Subject: Bump IrrlichtMt to 1.9.0mt5 in CI --- .github/workflows/build.yml | 2 +- .github/workflows/macos.yml | 2 +- .gitlab-ci.yml | 2 +- util/buildbot/buildwin32.sh | 4 ++-- util/buildbot/buildwin64.sh | 2 +- util/ci/common.sh | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 340f1c604..2cc83923b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -230,7 +230,7 @@ jobs: with: repository: minetest/irrlicht path: lib/irrlichtmt/ - ref: "1.9.0mt4" + ref: "1.9.0mt5" - name: Restore from cache and run vcpkg uses: lukka/run-vcpkg@v7 diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 1f1772bf3..c0278a38c 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -22,7 +22,7 @@ on: - '.github/workflows/macos.yml' env: - IRRLICHT_TAG: 1.9.0mt4 + IRRLICHT_TAG: 1.9.0mt5 MINETEST_GAME_REPO: https://github.com/minetest/minetest_game.git MINETEST_GAME_BRANCH: master MINETEST_GAME_NAME: minetest_game diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 81007d7c7..c225bfcd4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,7 @@ stages: - deploy variables: - IRRLICHT_TAG: "1.9.0mt4" + IRRLICHT_TAG: "1.9.0mt5" MINETEST_GAME_REPO: "https://github.com/minetest/minetest_game.git" CONTAINER_IMAGE: registry.gitlab.com/$CI_PROJECT_PATH diff --git a/util/buildbot/buildwin32.sh b/util/buildbot/buildwin32.sh index bf5c9a0f2..e0c431711 100755 --- a/util/buildbot/buildwin32.sh +++ b/util/buildbot/buildwin32.sh @@ -45,7 +45,7 @@ done echo "The compiler runtime DLLs could not be found, they might be missing in the final package." # Get stuff -irrlicht_version=1.9.0mt4 +irrlicht_version=1.9.0mt5 ogg_version=1.3.5 openal_version=1.21.1 vorbis_version=1.3.7 @@ -83,7 +83,7 @@ download () { # this distinction should be gotten rid of next time cd $libdir -download "https://github.com/minetest/irrlicht/releases/download/$irrlicht_version/win32-dw2.zip" irrlicht-$irrlicht_version.zip +download "https://github.com/minetest/irrlicht/releases/download/$irrlicht_version/win32.zip" irrlicht-$irrlicht_version.zip download "http://minetest.kitsunemimi.pw/dw2/zlib-$zlib_version-win32.zip" download "http://minetest.kitsunemimi.pw/zstd-$zstd_version-win32.zip" download "http://minetest.kitsunemimi.pw/libogg-$ogg_version-win32.zip" diff --git a/util/buildbot/buildwin64.sh b/util/buildbot/buildwin64.sh index 30920cf53..e79397be4 100755 --- a/util/buildbot/buildwin64.sh +++ b/util/buildbot/buildwin64.sh @@ -45,7 +45,7 @@ done echo "The compiler runtime DLLs could not be found, they might be missing in the final package." # Get stuff -irrlicht_version=1.9.0mt4 +irrlicht_version=1.9.0mt5 ogg_version=1.3.5 openal_version=1.21.1 vorbis_version=1.3.7 diff --git a/util/ci/common.sh b/util/ci/common.sh index 2802a004a..e372dc682 100644 --- a/util/ci/common.sh +++ b/util/ci/common.sh @@ -11,7 +11,7 @@ install_linux_deps() { shift pkgs+=(libirrlicht-dev) else - wget "https://github.com/minetest/irrlicht/releases/download/1.9.0mt4/ubuntu-bionic.tar.gz" + wget "https://github.com/minetest/irrlicht/releases/download/1.9.0mt5/ubuntu-bionic.tar.gz" sudo tar -xaf ubuntu-bionic.tar.gz -C /usr/local fi -- cgit v1.2.3