git: 84ba2383e7be - main - games/openenroth: unbreak the port's build in pre-C++20 environments
Date: Sat, 04 Feb 2023 15:11:13 UTC
The branch main has been updated by danfe:
URL: https://cgit.FreeBSD.org/ports/commit/?id=84ba2383e7be058b5e4f799fbe3fafeefcfb3761
commit 84ba2383e7be058b5e4f799fbe3fafeefcfb3761
Author: Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2023-02-04 15:10:00 +0000
Commit: Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2023-02-04 15:10:00 +0000
games/openenroth: unbreak the port's build in pre-C++20 environments
Pull Clang 13 when it's not available in the base (via USES+=llvm:13)
and use Boost's ``unordered_map'' implementation while the system one
is insufficient; avoid ``std::u8string'' for the same reason.
Set LLD_UNSAFE to unbreak linking against OpenAL on i386 (ld: error:
cannot preempt symbol: alGetError).
While here, slightly wordsmith the installation message.
Reported by: pkg-fallout
---
games/openenroth/Makefile | 19 +++++++++++++++++++
games/openenroth/files/pkg-message.in | 6 +++---
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/games/openenroth/Makefile b/games/openenroth/Makefile
index 11d8fd314767..7074cc1e72bd 100644
--- a/games/openenroth/Makefile
+++ b/games/openenroth/Makefile
@@ -28,6 +28,18 @@ GH_SUBDIR= thirdparty/cli11:cli11 thirdparty/fast_float:ff \
thirdparty/magic_enum:me thirdparty/mini:mini \
thirdparty/nlohmann_json:nj
+.include <bsd.port.options.mk>
+
+.if !exists(/usr/include/c++/v1/concepts)
+BUILD_DEPENDS+= ${LOCALBASE}/include/boost/unordered_map.hpp:devel/boost-libs
+USES+= llvm:13
+CXX= ${LLVM_PREFIX}/bin/clang++
+.endif
+
+.if ${ARCH} == i386
+LLD_UNSAFE= yes
+.endif
+
post-patch:
@${REINPLACE_CMD} -e '/CMAKE_CXX_STANDARD/s,23,20,' \
${WRKSRC}/CMakeLists.txt
@@ -40,6 +52,13 @@ post-patch:
${WRKSRC}/src/Utility/CMakeLists.txt
@${REINPLACE_CMD} -e 's, c++abi,,' \
${WRKSRC}/thirdparty/luajit/cmake/src/CMakeLists.txt
+.if !exists(/usr/include/c++/v1/concepts)
+ @${REINPLACE_CMD} -e '/#include/s,unordered_map,boost/&.hpp,' \
+ -e 's,std::unordered_map,boost::unordered_map,' \
+ ${WRKSRC}/src/Library/Serialization/EnumSerializer.h
+ @${REINPLACE_CMD} -e '/#ifdef/s,ANDROID,${OPSYS},' \
+ ${WRKSRC}/src/Utility/FileSystem.cpp
+.endif
do-install:
${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/OpenEnroth \
diff --git a/games/openenroth/files/pkg-message.in b/games/openenroth/files/pkg-message.in
index d0d13d57a170..ac65d1724090 100644
--- a/games/openenroth/files/pkg-message.in
+++ b/games/openenroth/files/pkg-message.in
@@ -1,12 +1,12 @@
[
{ type: install
message: <<EOM
-OpenEnroth requires original or GoG version of Might and Magic VII
+OpenEnroth requires original or GOG version of Might and Magic VII
game assets available in the current directory or the path pointed
by the OPENENROTH_MM7_PATH environment variable.
-Additionally, then you would have to copy (or create symbolic link
-to) the `%%DATADIR%%/shaders' directory there.
+Additionally, you would have to copy (or create a symbolic link to)
+the `%%DATADIR%%/shaders' directory there.
EOM
}
]