From nobody Wed Sep 20 00:49:32 2023 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Rr0Km6S85z4tGTg; Wed, 20 Sep 2023 00:49:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rr0Km5QdBz4Sc5; Wed, 20 Sep 2023 00:49:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1695170972; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CgnddELiPivMEMJnVW2jX2jbt1uChc6AvvHv7ONMdA0=; b=gTSYucy3+yWHvA4u4jB9YFbSeqYqsasHp04oMmOtY54ucveZIE+LUeP/V4vAtUJvurMheX VPZCKOOaB6PUIOoRTguHYgXacyK+mk1+tzbuHzjC2tL9KHgMg7FFfhXooAYi3OqwEonaNi CzjJsDWvv+HBdiu+5ZcbW0QgkvlKzEfR7NqPHEifkZwCXaybmtTSc2aTV5a1yTIwP41jBw FoBGQPBLkFgudDyvgsV3Wc/uoQ3O4Z5VmArw2jmWdGGbo+g+Bb+7kmAQkV/z3QCRMaNms9 QATLp76e6g5q/wEh2CsGvCB+YRvZcSlWX8U66PyBua0VphHupmvM2UWbaNu6lA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1695170972; a=rsa-sha256; cv=none; b=Z1hi05dSB7Ns1cZcHYNtkIVg60b6TLcNhSeRy4ZHryZ0lIr+kl19gMpbxLtrO+VXdW2TiP 8BOnt/6zYXpZd1Tia03r6XkEYClZX3/5xwrhLfuiN/cVD6UXPPDsdvSSraSrbIIU2Zi4y1 qdWvIisW8SbBNANoKX8Bz8SPe6vNl7kR7ew9xAoDYjmRA3PPdzlIEnG4VUqLpjPLsvV4Gr dM1q1J+Ht7gNMXp0KIXV9ZxQ6HLQD6ZtesQbC2aKn4WXDiyZt/qj3HFHbo2MbKeYq+veks gO+drwVnMIrzIL1jkhFvmvvLDW+E3bXVotoC7p67T501DPyFxw+xUnH869VLBA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1695170972; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CgnddELiPivMEMJnVW2jX2jbt1uChc6AvvHv7ONMdA0=; b=KRQMbRdYsheiTuMOUFiF+BbSRRAAWU8WM1Zp1XkA7iOeFD7WRxFMlQ/SmqJjTGHvz4qnPU y5cmVbaQsMzA5lcEdsIjnIPik4IwmM5JPaZzOjIBpdUNWbF3tEzTSlErO0iZx7Dz0GSpMt qO3bnawA+5oes/AtNyTuX24zxukI5n+aHbsd9KgbEt1pgvcObYlCCJyNU0Q6Ty7zDzB3yh P9o+BRPUX1H3fIklr5sor67mBczIMoLE339rk2M+BCrtpgA2ZC7RpXhqW7Cm/q+VQbMBDU kB+Xvk+qUlzW77fb4PhV/ij4UFNjbWcyVLnBvrTv3jfB/HAWZn5SX5pr4NIeDw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Rr0Km4VSwzbR5; Wed, 20 Sep 2023 00:49:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38K0nWR1022219; Wed, 20 Sep 2023 00:49:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38K0nWO6022216; Wed, 20 Sep 2023 00:49:32 GMT (envelope-from git) Date: Wed, 20 Sep 2023 00:49:32 GMT Message-Id: <202309200049.38K0nWO6022216@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Dmitry Marakasov Subject: git: fc826dd91b57 - main - games/easyrpg-player: fix build with fmt 10+ List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: amdmi3 X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fc826dd91b570ee57cdb27cde122f63eb0f5cf30 Auto-Submitted: auto-generated The branch main has been updated by amdmi3: URL: https://cgit.FreeBSD.org/ports/commit/?id=fc826dd91b570ee57cdb27cde122f63eb0f5cf30 commit fc826dd91b570ee57cdb27cde122f63eb0f5cf30 Author: Dmitry Marakasov AuthorDate: 2023-09-20 00:48:51 +0000 Commit: Dmitry Marakasov CommitDate: 2023-09-20 00:48:54 +0000 games/easyrpg-player: fix build with fmt 10+ PR: 273877 Reported by: diizzy --- games/easyrpg-player/files/patch-fmt10 | 218 +++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) diff --git a/games/easyrpg-player/files/patch-fmt10 b/games/easyrpg-player/files/patch-fmt10 new file mode 100644 index 000000000000..7c643d41a99f --- /dev/null +++ b/games/easyrpg-player/files/patch-fmt10 @@ -0,0 +1,218 @@ +From a4672d2e30db4e4918c8f3580236faed3c9d04c1 Mon Sep 17 00:00:00 2001 +From: Ghabry +Date: Sun, 14 May 2023 14:41:13 +0200 +Subject: [PATCH] Fix building with fmtlib 10 + +to_string_view is a private API since fmt10. + +The new API only works properly since fmt8. + +Added casts to enum formating as they are not converted automatically anymore. + +Fix #3002 +--- + CMakeLists.txt | 1 + + Makefile.am | 1 + + src/game_interpreter.cpp | 6 +++--- + src/game_interpreter_map.cpp | 2 +- + src/output.h | 9 --------- + src/player.cpp | 2 +- + src/string_view.cpp | 34 ++++++++++++++++++++++++++++++++++ + src/string_view.h | 27 ++++++++++++++++++++++++--- + 8 files changed, 65 insertions(+), 17 deletions(-) + create mode 100644 src/string_view.cpp + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8507e5d103..28d595a214 100644 +--- CMakeLists.txt ++++ CMakeLists.txt +@@ -345,6 +345,7 @@ add_library(${PROJECT_NAME} OBJECT + src/state.cpp + src/state.h + src/std_clock.h ++ src/string_view.cpp + src/string_view.h + src/system.h + src/teleport_target.h +diff --git a/Makefile.am b/Makefile.am +index bed1b21941..4c4774892c 100644 +--- Makefile.am ++++ Makefile.am +@@ -327,6 +327,7 @@ libeasyrpg_player_a_SOURCES = \ + src/state.cpp \ + src/state.h \ + src/std_clock.h \ ++ src/string_view.cpp \ + src/string_view.h \ + src/system.h \ + src/teleport_target.h \ +diff --git a/src/game_interpreter.cpp b/src/game_interpreter.cpp +index 7877d77ff4..7ae056ccfb 100644 +--- src/game_interpreter.cpp ++++ src/game_interpreter.cpp +@@ -2187,7 +2187,7 @@ bool Game_Interpreter::CommandChangeVehicleGraphic(lcf::rpg::EventCommand const& + Game_Vehicle* vehicle = Game_Map::GetVehicle(vehicle_id); + + if (!vehicle) { +- Output::Warning("ChangeVehicleGraphic: Invalid vehicle ID {}", vehicle_id); ++ Output::Warning("ChangeVehicleGraphic: Invalid vehicle ID {}", static_cast(vehicle_id)); + return true; + } + +@@ -2261,7 +2261,7 @@ bool Game_Interpreter::CommandSetVehicleLocation(lcf::rpg::EventCommand const& c + // 0 because we adjust all vehicle IDs by +1 to match the lcf values + Output::Debug("SetVehicleLocation: Party referenced"); + } else { +- Output::Warning("SetVehicleLocation: Invalid vehicle ID {}", vehicle_id); ++ Output::Warning("SetVehicleLocation: Invalid vehicle ID {}", static_cast(vehicle_id)); + return true; + } + } +@@ -3494,7 +3494,7 @@ bool Game_Interpreter::CommandConditionalBranch(lcf::rpg::EventCommand const& co + Game_Vehicle* vehicle = Game_Map::GetVehicle(vehicle_id); + + if (!vehicle) { +- Output::Warning("ConditionalBranch: Invalid vehicle ID {}", vehicle_id); ++ Output::Warning("ConditionalBranch: Invalid vehicle ID {}", static_cast(vehicle_id)); + return true; + } + +diff --git a/src/game_interpreter_map.cpp b/src/game_interpreter_map.cpp +index 6c193c2f31..0b47a3db61 100644 +--- src/game_interpreter_map.cpp ++++ src/game_interpreter_map.cpp +@@ -345,7 +345,7 @@ bool Game_Interpreter_Map::CommandEndShop(lcf::rpg::EventCommand const& /* com * + + bool Game_Interpreter_Map::CommandShowInn(lcf::rpg::EventCommand const& com) { // code 10730 + int inn_type = com.parameters[0]; +- auto inn_price = com.parameters[1]; ++ int inn_price = com.parameters[1]; + // Not used, but left here for documentation purposes + // bool has_inn_handlers = com.parameters[2] != 0; + +diff --git a/src/output.h b/src/output.h +index 90e1118958..78ff3c0cad 100644 +--- src/output.h ++++ src/output.h +@@ -22,17 +22,8 @@ + #include + #include + #include +-#include +- + #include "filesystem_stream.h" + +-namespace lcf { +-// FIXME: liblcf doesn't depend on fmt, so we need to add this here to enable fmtlib support for lcf::DBString +-inline fmt::basic_string_view to_string_view(const lcf::DBString& s) { +- return to_string_view(StringView(s)); +-} +-} +- + enum class LogLevel { + Error, + Warning, +diff --git a/src/player.cpp b/src/player.cpp +index 0ed6bbb657..654d31e0dc 100644 +--- src/player.cpp ++++ src/player.cpp +@@ -1240,7 +1240,7 @@ void Player::SetupBattleTest() { + } + + Output::Debug("BattleTest Mode 2k3 troop=({}) background=({}) formation=({}) condition=({}) terrain=({})", +- args.troop_id, args.background.c_str(), args.formation, args.condition, args.terrain_id); ++ args.troop_id, args.background, static_cast(args.formation), static_cast(args.condition), args.terrain_id); + } else { + Output::Debug("BattleTest Mode 2k troop=({}) background=({})", args.troop_id, args.background); + } +diff --git a/src/string_view.cpp b/src/string_view.cpp +new file mode 100644 +index 0000000000..13a526504d +--- /dev/null ++++ src/string_view.cpp +@@ -0,0 +1,34 @@ ++/* ++ * This file is part of EasyRPG Player. ++ * ++ * EasyRPG Player is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * EasyRPG Player is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with EasyRPG Player. If not, see . ++ */ ++ ++#include "string_view.h" ++ ++#if FMT_VERSION >= EP_FMT_MODERN_VERSION ++ ++#include ++ ++auto fmt::formatter::format(const lcf::DBString& s, format_context& ctx) const -> decltype(ctx.out()) { ++ string_view sv(s.data(), s.size()); ++ return formatter::format(sv, ctx); ++} ++ ++auto fmt::formatter::format(const lcf::StringView& s, format_context& ctx) const -> decltype(ctx.out()) { ++ string_view sv(s.data(), s.size()); ++ return formatter::format(sv, ctx); ++} ++ ++#endif +diff --git a/src/string_view.h b/src/string_view.h +index 11e3550d5f..030bb09a10 100644 +--- src/string_view.h ++++ src/string_view.h +@@ -22,9 +22,9 @@ + #include + #include + +-// FIXME: needed to allow building with fmt 5, older versions are untested. ++// Needed to allow building with fmt 5, older versions are untested. + #if FMT_VERSION < 60000 +-#include ++# include + #endif + + using StringView = lcf::StringView; +@@ -33,12 +33,33 @@ using U32StringView = lcf::U32StringView; + using lcf::ToString; + using lcf::ToStringView; + ++// Version required to use the new formatting API ++#define EP_FMT_MODERN_VERSION 80000 ++ + // FIXME: liblcf doesn't depend on fmt, so we need to add this here to enable fmtlib support for our StringView. ++#if FMT_VERSION >= EP_FMT_MODERN_VERSION ++template<> ++struct fmt::formatter : fmt::formatter { ++ auto format(const lcf::StringView& s, format_context& ctx) const -> decltype(ctx.out()); ++}; ++ ++template<> ++struct fmt::formatter : formatter { ++ auto format(const lcf::DBString& s, format_context& ctx) const -> decltype(ctx.out()); ++}; ++#else + namespace nonstd { namespace sv_lite { + template + inline fmt::basic_string_view to_string_view(basic_string_view s) { +- return fmt::basic_string_view(s.data(), s.size()); ++ return fmt::basic_string_view(s.data(), s.size()); + } + } } + ++namespace lcf { ++inline fmt::basic_string_view to_string_view(const lcf::DBString& s) { ++ return to_string_view(StringView(s)); ++} ++} ++#endif ++ + #endif