Skip to content
47 changes: 47 additions & 0 deletions tur/libdatachannel/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
TERMUX_PKG_HOMEPAGE=https://libdatachannel.org/
TERMUX_PKG_DESCRIPTION="C/C++ WebRTC network library featuring Data Channels, Media Transport, and WebSockets"
TERMUX_PKG_LICENSE="MPL-2.0, MIT, BSD 3-Clause"
TERMUX_PKG_MAINTAINER="@termux-user-repository"
TERMUX_PKG_VERSION=(
"0.24.2"
"1.1.11"
"0.9.5.0"
"1.7.1"
"2.8.0"
)
TERMUX_PKG_SRCURL=(
"https://github.com/paullouisageneau/libdatachannel/archive/refs/tags/v${TERMUX_PKG_VERSION[0]}.tar.gz"
"https://github.com/SergiusTheBest/plog/archive/refs/tags/${TERMUX_PKG_VERSION[1]}.tar.gz"
"https://github.com/sctplab/usrsctp/archive/refs/tags/${TERMUX_PKG_VERSION[2]}.tar.gz"
"https://github.com/paullouisageneau/libjuice/archive/refs/tags/v${TERMUX_PKG_VERSION[3]}.tar.gz"
"https://github.com/cisco/libsrtp/archive/refs/tags/v${TERMUX_PKG_VERSION[4]}.tar.gz"
)
TERMUX_PKG_SHA256=(
91a4795c98e13e91935127ab7880109309bf35b5e5a96c8fcc08e08322576402
d60b8b35f56c7c852b7f00f58cbe9c1c2e9e59566c5b200512d0cdbb6309a7c2
260107caf318650a57a8caa593550e39bca6943e93f970c80d6c17e59d62cd92
c127629ff42b9fffc06c65e94abb25fce03856160ce05d9fdfdad4ed80ea59bf
d123dcff5c56d4f1a9006f2b311ea99a85016cbf3bb24b1007885d422237db85
)
TERMUX_PKG_DEPENDS="openssl"
TERMUX_PKG_BUILD_DEPENDS="nlohmann-json"
TERMUX_PKG_AUTO_UPDATE=false
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-DUSE_GNUTLS=OFF
-DUSE_NICE=OFF
-DNO_EXAMPLES=ON
-DNO_TESTS=ON
-DUSE_SYSTEM_JSON=ON
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
"

termux_step_post_get_source() {
# Remove the empty placeholder folders
rm -rf deps/plog deps/usrsctp deps/libjuice deps/libsrtp

# Move the extracted GitHub folders into their correct deps/ locations
mv "plog-${TERMUX_PKG_VERSION[1]}" deps/plog
mv "usrsctp-${TERMUX_PKG_VERSION[2]}" deps/usrsctp
mv "libjuice-${TERMUX_PKG_VERSION[3]}" deps/libjuice
mv "libsrtp-${TERMUX_PKG_VERSION[4]}" deps/libsrtp
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
From 492e1671ab90f067605225608d2da7a3154d3dc2 Mon Sep 17 00:00:00 2001
From: lumaparallax <257510328+lumaparallax@users.noreply.github.com>
Date: Fri, 24 Apr 2026 22:16:38 +0900
Subject: [PATCH] cmake android build compatibility

---
cmake/common/compiler_common.cmake | 6 +++++-
cmake/common/osconfig.cmake | 11 ++++++++---
2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/cmake/common/compiler_common.cmake b/cmake/common/compiler_common.cmake
index fcd2568..aacfd47 100644
--- a/cmake/common/compiler_common.cmake
+++ b/cmake/common/compiler_common.cmake
@@ -79,5 +79,9 @@ if(CMAKE_CXX_STANDARD GREATER_EQUAL 20)
endif()

if(NOT DEFINED CMAKE_COMPILE_WARNING_AS_ERROR)
- set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
+ if(OS_ANDROID)
+ set(CMAKE_COMPILE_WARNING_AS_ERROR OFF)
+ else()
+ set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
+ endif()
endif()
diff --git a/cmake/common/osconfig.cmake b/cmake/common/osconfig.cmake
index 87d435a..9b700c9 100644
--- a/cmake/common/osconfig.cmake
+++ b/cmake/common/osconfig.cmake
@@ -12,9 +12,14 @@ elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
set(CMAKE_CXX_EXTENSIONS FALSE)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/macos")
set(OS_MACOS TRUE)
-elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD")
+elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD|Android")
set(CMAKE_CXX_EXTENSIONS FALSE)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/linux")
- string(TOUPPER "${CMAKE_HOST_SYSTEM_NAME}" _SYSTEM_NAME_U)
- set(OS_${_SYSTEM_NAME_U} TRUE)
+ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")
+ set(OS_LINUX TRUE)
+ set(OS_ANDROID TRUE)
+ else()
+ string(TOUPPER "${CMAKE_HOST_SYSTEM_NAME}" _SYSTEM_NAME_U)
+ set(OS_${_SYSTEM_NAME_U} TRUE)
+ endif()
endif()
--
2.54.0

19 changes: 19 additions & 0 deletions tur/obs-backgroundremoval/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
TERMUX_PKG_HOMEPAGE="https://github.com/royshil/obs-backgroundremoval"
TERMUX_PKG_DESCRIPTION="Portrait background removal/virtual green-screen and low-light enhancement for obs studio"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="@termux-user-repository"
TERMUX_PKG_VERSION=1.3.7
TERMUX_PKG_SRCURL="https://github.com/royshil/obs-backgroundremoval/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256=0994dd60cb34f132273fb3d0be7db770cdb7c732d08908b584b74b44bc820da1
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="obs-studio, onnxruntime, opencv"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-DBUILD_OUT_OF_TREE=ON
-DCMAKE_CXX_SCAN_FOR_MODULES=OFF
-DOpenCV_DIR=${TERMUX_PREFIX}/lib/cmake/opencv4
"

termux_step_pre_configure() {
# Ensuring the compiler can find OpenCV headers in the Termux prefix
CXXFLAGS+=" -I${TERMUX_PREFIX}/include/opencv4"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
From f13058e19801abd8e5b2a7c3209221dfb0069691 Mon Sep 17 00:00:00 2001
From: lumaparallax <257510328+lumaparallax@users.noreply.github.com>
Date: Fri, 24 Apr 2026 22:22:24 +0900
Subject: [PATCH] cmake android build compatablity

---
cmake/common/compiler_common.cmake | 6 +++++-
cmake/common/osconfig.cmake | 11 ++++++++---
2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/cmake/common/compiler_common.cmake b/cmake/common/compiler_common.cmake
index fcd2568..aacfd47 100644
--- a/cmake/common/compiler_common.cmake
+++ b/cmake/common/compiler_common.cmake
@@ -79,5 +79,9 @@ if(CMAKE_CXX_STANDARD GREATER_EQUAL 20)
endif()

if(NOT DEFINED CMAKE_COMPILE_WARNING_AS_ERROR)
- set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
+ if(OS_ANDROID)
+ set(CMAKE_COMPILE_WARNING_AS_ERROR OFF)
+ else()
+ set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
+ endif()
endif()
diff --git a/cmake/common/osconfig.cmake b/cmake/common/osconfig.cmake
index 87d435a..9b700c9 100644
--- a/cmake/common/osconfig.cmake
+++ b/cmake/common/osconfig.cmake
@@ -12,9 +12,14 @@ elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
set(CMAKE_CXX_EXTENSIONS FALSE)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/macos")
set(OS_MACOS TRUE)
-elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD")
+elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD|Android")
set(CMAKE_CXX_EXTENSIONS FALSE)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/linux")
- string(TOUPPER "${CMAKE_HOST_SYSTEM_NAME}" _SYSTEM_NAME_U)
- set(OS_${_SYSTEM_NAME_U} TRUE)
+ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")
+ set(OS_LINUX TRUE)
+ set(OS_ANDROID TRUE)
+ else()
+ string(TOUPPER "${CMAKE_HOST_SYSTEM_NAME}" _SYSTEM_NAME_U)
+ set(OS_${_SYSTEM_NAME_U} TRUE)
+ endif()
endif()
--
2.54.0

16 changes: 16 additions & 0 deletions tur/obs-move-transition/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
TERMUX_PKG_HOMEPAGE=https://github.com/exeldro/obs-move-transition
TERMUX_PKG_DESCRIPTION="Move transition for OBS Studio"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux-user-repository"
TERMUX_PKG_VERSION="3.2.1"
TERMUX_PKG_SRCURL="https://github.com/exeldro/obs-move-transition/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256=676259c4346832eac964301166b97ac12c2914a874ee53c4b91e31a613859c36
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="obs-studio"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-DBUILD_OUT_OF_TREE=ON
"

termux_step_pre_configure() {
LDFLAGS+=" -lm"
}
17 changes: 17 additions & 0 deletions tur/obs-stroke-glow-shadow/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
TERMUX_PKG_HOMEPAGE="https://github.com/FiniteSingularity/obs-stroke-glow-shadow"
TERMUX_PKG_DESCRIPTION="An OBS plugin to provide Stroke, Glow, and Shadow effect on masked sources"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux-user-repository"
TERMUX_PKG_VERSION="1.5.3"
TERMUX_PKG_SRCURL="https://github.com/FiniteSingularity/obs-stroke-glow-shadow/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256=bd82a676249fd8bc14c7bd368ce705d23d14eedfff0ac43566f096028463d823
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="obs-studio"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-DBUILD_OUT_OF_TREE=ON
-DCMAKE_CXX_SCAN_FOR_MODULES=OFF
"

termux_step_pre_configure() {
LDFLAGS+=" -lm"
}
133 changes: 133 additions & 0 deletions tur/obs-studio/0001-android-build-compatabilty.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
From bab337368cb4af98ba86f96fb97bd11973358bba Mon Sep 17 00:00:00 2001
From: lumaparallax <257510328+lumaparallax@users.noreply.github.com>
Date: Mon, 20 Apr 2026 20:19:17 +0900
Subject: [PATCH 01/10] android-build-compatabilty

---
CMakeLists.txt | 10 ++++++++++
cmake/common/compiler_common.cmake | 6 +++++-
cmake/common/osconfig.cmake | 11 ++++++++---
cmake/linux/compilerconfig.cmake | 10 ++++++++++
frontend/cmake/os-linux.cmake | 6 ++++--
plugins/CMakeLists.txt | 4 +++-
6 files changed, 40 insertions(+), 7 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4af6f90b7..22daf3e67 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,6 +4,16 @@ include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/common/bootstrap.cmake" NO_POLICY_SCO

project(obs-studio VERSION ${OBS_VERSION_CANONICAL})

+# OBS subdirectories and Find*.cmake modules often strictly check for "Linux".
+if(CMAKE_SYSTEM_NAME MATCHES "Android" OR CMAKE_HOST_SYSTEM_NAME MATCHES "Android")
+ message(STATUS "Android platform detected. Enforcing Linux build paths.")
+ set(CMAKE_SYSTEM_NAME "Linux")
+ set(CMAKE_HOST_SYSTEM_NAME "Linux")
+ set(OS_LINUX TRUE)
+ set(OS_POSIX TRUE)
+ set(OS_ANDROID TRUE)
+endif()
+
if(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/windows/architecture.cmake")
if(NOT OBS_PARENT_ARCHITECTURE STREQUAL CMAKE_VS_PLATFORM_NAME)
diff --git a/cmake/common/compiler_common.cmake b/cmake/common/compiler_common.cmake
index f6b9dd36f..bcb522b39 100644
--- a/cmake/common/compiler_common.cmake
+++ b/cmake/common/compiler_common.cmake
@@ -83,7 +83,11 @@ if(CMAKE_CXX_STANDARD GREATER_EQUAL 20)
endif()

if(NOT DEFINED CMAKE_COMPILE_WARNING_AS_ERROR)
- set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
+ if(OS_ANDROID)
+ set(CMAKE_COMPILE_WARNING_AS_ERROR OFF)
+ else()
+ set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
+ endif()
endif()

# Enable interprocedural optimization
diff --git a/cmake/common/osconfig.cmake b/cmake/common/osconfig.cmake
index 2dc6dedb8..2c765d35b 100644
--- a/cmake/common/osconfig.cmake
+++ b/cmake/common/osconfig.cmake
@@ -12,9 +12,14 @@ elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
set(CMAKE_CXX_EXTENSIONS FALSE)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/macos")
set(OS_MACOS TRUE)
-elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD")
+elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD|Android")
set(CMAKE_CXX_EXTENSIONS FALSE)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/linux")
- string(TOUPPER "${CMAKE_HOST_SYSTEM_NAME}" _SYSTEM_NAME_U)
- set(OS_${_SYSTEM_NAME_U} TRUE)
+ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")
+ set(OS_LINUX TRUE)
+ set(OS_ANDROID TRUE)
+ else()
+ string(TOUPPER "${CMAKE_HOST_SYSTEM_NAME}" _SYSTEM_NAME_U)
+ set(OS_${_SYSTEM_NAME_U} TRUE)
+ endif()
endif()
diff --git a/cmake/linux/compilerconfig.cmake b/cmake/linux/compilerconfig.cmake
index 3f4d45e4d..53bd28c82 100644
--- a/cmake/linux/compilerconfig.cmake
+++ b/cmake/linux/compilerconfig.cmake
@@ -85,3 +85,13 @@ else()
endif()

add_compile_definitions($<$<CONFIG:DEBUG>:DEBUG> $<$<CONFIG:DEBUG>:_DEBUG> SIMDE_ENABLE_OPENMP)
+
+if(OS_ANDROID OR CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64")
+ add_compile_options(-fPIC)
+ add_compile_options(-ftls-model=global-dynamic)
+ if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.13)
+ add_link_options(-fPIC)
+ else()
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fPIC")
+ endif()
+endif()
diff --git a/frontend/cmake/os-linux.cmake b/frontend/cmake/os-linux.cmake
index d146e7297..0aa18d558 100644
--- a/frontend/cmake/os-linux.cmake
+++ b/frontend/cmake/os-linux.cmake
@@ -16,8 +16,10 @@ if(Qt6_VERSION AND Qt6_VERSION VERSION_LESS "6.9.0")
target_link_libraries(obs-studio PRIVATE Qt::GuiPrivate)
endif()

-find_package(Libpci REQUIRED)
-target_link_libraries(obs-studio PRIVATE Libpci::pci)
+if(NOT OS_ANDROID)
+ find_package(Libpci REQUIRED)
+ target_link_libraries(obs-studio PRIVATE Libpci::pci)
+endif()

if(TARGET OBS::python)
find_package(Python REQUIRED COMPONENTS Interpreter Development)
diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
index c12f015c8..5f540bd77 100644
--- a/plugins/CMakeLists.txt
+++ b/plugins/CMakeLists.txt
@@ -61,13 +61,15 @@ check_obs_browser()
add_obs_plugin(obs-ffmpeg)
add_obs_plugin(obs-filters)
add_obs_plugin(obs-libfdk)
-add_obs_plugin(obs-nvenc PLATFORMS WINDOWS LINUX ARCHITECTURES x64 x86_64)
add_obs_plugin(obs-outputs)
+if (NOT OS_ANDROID)
+add_obs_plugin(obs-nvenc PLATFORMS WINDOWS LINUX ARCHITECTURES x64 x86_64)
add_obs_plugin(
obs-qsv11
PLATFORMS WINDOWS LINUX
ARCHITECTURES x64 x86_64
)
+endif()
add_obs_plugin(obs-text PLATFORMS WINDOWS)
add_obs_plugin(obs-transitions)
add_obs_plugin(
--
2.54.0

Loading
Loading