diff options
Diffstat (limited to 'guix/wigust/packages/obs.scm')
| -rw-r--r-- | guix/wigust/packages/obs.scm | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/guix/wigust/packages/obs.scm b/guix/wigust/packages/obs.scm new file mode 100644 index 0000000..9472333 --- /dev/null +++ b/guix/wigust/packages/obs.scm @@ -0,0 +1,78 @@ +;;; SPDX-License-Identifier: GPL-3.0-or-later +;;; Copyright © 2022 Jelle Licht <jlicht@fsfe.org> +;;; Copyright © 2024, 2025 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2024 Murilo <murilo@disroot.org> + +(define-module (wigust packages video) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages video) + #:use-module (guix build utils) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module ((guix licenses) #:prefix license:)) + +(define-public obs-with-cef + (package + (inherit obs) + (name "obs-with-cef") + (inputs + (append (package-inputs obs) + `(("chromium-embedded-framework" ,chromium-embedded-framework)))) + (arguments + (substitute-keyword-arguments (package-arguments obs) + ((#:configure-flags flags) + #~(append #$flags + '("-DBUILD_BROWSER=ON" + "-DCEF_ROOT_DIR=../source/cef"))) + ((#:phases phases) + #~(modify-phases #$phases + (add-before 'configure 'add-cef + (lambda* (#:key inputs #:allow-other-keys) + (let ((chromium-embedded-framework + #$(this-package-input "chromium-embedded-framework"))) + (mkdir-p "cef/Release") + (mkdir-p "cef/Resources") + (for-each (lambda (file) + (symlink file (string-append "cef/Release/" + (basename file))) + (symlink file (string-append "cef/Resources/" + (basename file)))) + (filter + (lambda (file) + (not (string= (basename (dirname file)) + "locales"))) + (find-files + (string-append chromium-embedded-framework + "/share/cef")))) + (symlink (string-append chromium-embedded-framework + "/lib/libcef.so") + "cef/Release/libcef.so") + (mkdir-p "cef/libcef_dll_wrapper") + (symlink (string-append chromium-embedded-framework + "/lib/libcef_dll_wrapper.a") + "cef/libcef_dll_wrapper/libcef_dll_wrapper.a") + (symlink (string-append chromium-embedded-framework + "/include") + "cef/include")))) + (add-after 'install 'symlink-obs-browser + ;; Required for lib/obs-plugins/obs-browser.so file. + (lambda* (#:key outputs #:allow-other-keys) + (symlink + (string-append #$output + "/lib/libobs-frontend-api.so.0") + (string-append #$output + "/lib/obs-plugins/libobs-frontend-api.so.0")) + (symlink + (string-append #$output + "/lib/libobs.so.0") + (string-append #$output + "/lib/obs-plugins/libobs.so.0")))))))) + (description + (string-append + (package-description obs) + " This build of OBS includes embeded Chromium-based browser to enable +Browser source.")))) |
