From 6a53312dd3054659dbaadeeb90668ecc9353aa3a Mon Sep 17 00:00:00 2001 From: Tee KOBAYASHI Date: Fri, 29 Apr 2022 03:56:41 +0900 Subject: [PATCH] sfml: Fix unresolved symbols issue --- x11-packages/sfml/build.sh | 5 ++--- .../sfml/include-SFML-Config.hpp.patch | 16 +++++++++++++++ .../src-SFML-System-Unix-ThreadImpl.cpp.patch | 20 +++++++++++++++++++ 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 x11-packages/sfml/include-SFML-Config.hpp.patch create mode 100644 x11-packages/sfml/src-SFML-System-Unix-ThreadImpl.cpp.patch diff --git a/x11-packages/sfml/build.sh b/x11-packages/sfml/build.sh index 165b2343a..3026125fa 100644 --- a/x11-packages/sfml/build.sh +++ b/x11-packages/sfml/build.sh @@ -3,17 +3,16 @@ TERMUX_PKG_DESCRIPTION="A simple, fast, cross-platform and object-oriented multi TERMUX_PKG_LICENSE="ZLIB" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=2.5.1 +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/SFML/SFML/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=438c91a917cc8aa19e82c6f59f8714da353c488584a007d401efac8368e1c785 TERMUX_PKG_DEPENDS="freetype, libc++, libflac, libogg, libvorbis, libx11, libxrandr, mesa, openal-soft" termux_step_post_get_source() { - cp src/SFML/Window/Android/JoystickImpl.cpp src/SFML/Window/Unix/ + cp src/SFML/Window/Android/JoystickImpl.{cpp,hpp} src/SFML/Window/Unix/ } termux_step_pre_configure() { - CPPFLAGS+=" -DSFML_SYSTEM_LINUX" - _NEED_DUMMY_LIBPTHREAD_A= _LIBPTHREAD_A=$TERMUX_PREFIX/lib/libpthread.a if [ ! -e $_LIBPTHREAD_A ]; then diff --git a/x11-packages/sfml/include-SFML-Config.hpp.patch b/x11-packages/sfml/include-SFML-Config.hpp.patch new file mode 100644 index 000000000..8ee5f7ee2 --- /dev/null +++ b/x11-packages/sfml/include-SFML-Config.hpp.patch @@ -0,0 +1,16 @@ +--- a/include/SFML/Config.hpp ++++ b/include/SFML/Config.hpp +@@ -71,12 +71,7 @@ + #elif defined(__unix__) + + // UNIX system, see which one it is +- #if defined(__ANDROID__) +- +- // Android +- #define SFML_SYSTEM_ANDROID +- +- #elif defined(__linux__) ++ #if defined(__linux__) + + // Linux + #define SFML_SYSTEM_LINUX diff --git a/x11-packages/sfml/src-SFML-System-Unix-ThreadImpl.cpp.patch b/x11-packages/sfml/src-SFML-System-Unix-ThreadImpl.cpp.patch new file mode 100644 index 000000000..f4c7834f3 --- /dev/null +++ b/x11-packages/sfml/src-SFML-System-Unix-ThreadImpl.cpp.patch @@ -0,0 +1,20 @@ +--- a/src/SFML/System/Unix/ThreadImpl.cpp ++++ b/src/SFML/System/Unix/ThreadImpl.cpp +@@ -62,7 +62,7 @@ + { + if (m_isActive) + { +- #ifndef SFML_SYSTEM_ANDROID ++ #ifndef __ANDROID__ + pthread_cancel(m_thread); + #else + // See https://stackoverflow.com/questions/4610086/pthread-cancel-al +@@ -78,7 +78,7 @@ + // The Thread instance is stored in the user data + Thread* owner = static_cast(userData); + +- #ifndef SFML_SYSTEM_ANDROID ++ #ifndef __ANDROID__ + // Tell the thread to handle cancel requests immediately + pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); + #endif