mirror of
https://gitlab.com/nonguix/nonguix.git
synced 2024-12-26 00:34:53 +01:00
nongnu: Add chromium-embedded-framework.
* nongnu/packages/chromium.scm (chromium-embedded-framework): New variable.
This commit is contained in:
parent
301fc39b85
commit
674d04a5fb
1 changed files with 163 additions and 0 deletions
163
nongnu/packages/chromium.scm
Normal file
163
nongnu/packages/chromium.scm
Normal file
|
@ -0,0 +1,163 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix 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.
|
||||
;;;
|
||||
;;; GNU Guix 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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages chromium)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (nonguix build-system binary)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages cups)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public chromium-embedded-framework
|
||||
(let ((git-revision "d0bbcbb")
|
||||
(chromium-version "103.0.5060.114")
|
||||
(arch (match (or (%current-target-system) (%current-system))
|
||||
("aarch64-linux" "linuxarm64")
|
||||
("armhf-linux" "linuxarm")
|
||||
(_ "linux64"))))
|
||||
(package
|
||||
(name "chromium-embedded-framework")
|
||||
(version "103.0.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://cef-builds.spotifycdn.com/cef_binary_"
|
||||
version
|
||||
"+g" git-revision
|
||||
"+chromium-" chromium-version
|
||||
"_" arch "_minimal.tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"143x0jmasl4z16bkxlrbz874chd9x9xpc5qylb9h7j80gfcrzlsi"))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
`(#:patchelf-plan
|
||||
`(("Release/libcef.so" ("alsa-lib"
|
||||
"at-spi2-atk"
|
||||
"at-spi2-core"
|
||||
"atk"
|
||||
"cairo"
|
||||
"cups"
|
||||
"dbus"
|
||||
"expat"
|
||||
"gcc"
|
||||
"glib"
|
||||
"glibc"
|
||||
"gtk+"
|
||||
"libdrm"
|
||||
"libx11"
|
||||
"libxcb"
|
||||
"libxcomposite"
|
||||
"libxdamage"
|
||||
"libxext"
|
||||
"libxfixes"
|
||||
"libxkbcommon"
|
||||
"libxrandr"
|
||||
"libxshmfence"
|
||||
"mesa"
|
||||
"nspr"
|
||||
("nss" "/lib/nss")
|
||||
"pango")))
|
||||
#:install-plan
|
||||
`(("Release/libcef.so" "lib/")
|
||||
("libcef_dll_wrapper/libcef_dll_wrapper.a" "lib/")
|
||||
("Release/" "share/cef/"
|
||||
#:include-regexp (".*.bin"))
|
||||
("Resources/" "share/cef/")
|
||||
("include" "./"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'install 'build
|
||||
(lambda _
|
||||
(invoke "cmake" "-DCMAKE_BUILD_TYPE=Release" ".")
|
||||
(invoke "make" "libcef_dll_wrapper"))))))
|
||||
(inputs
|
||||
(list
|
||||
alsa-lib
|
||||
at-spi2-atk
|
||||
at-spi2-core
|
||||
atk
|
||||
cairo
|
||||
cups
|
||||
dbus
|
||||
expat
|
||||
`(,gcc "lib")
|
||||
glib
|
||||
gtk+
|
||||
libdrm
|
||||
libx11
|
||||
libxcb
|
||||
libxcomposite
|
||||
libxdamage
|
||||
libxext
|
||||
libxfixes
|
||||
libxkbcommon
|
||||
libxrandr
|
||||
libxshmfence
|
||||
mesa
|
||||
nspr
|
||||
nss
|
||||
pango))
|
||||
(native-inputs
|
||||
;; FIXME: We specify glibc here so that Cmake does not pick the wrong
|
||||
;; architecture (e.g. glibc32 while on a 64-bit system).
|
||||
;; The build system could be smarter.
|
||||
(list glibc
|
||||
cmake))
|
||||
(synopsis "Embed Chromium-based browsers in other applications")
|
||||
(supported-systems '("armhf-linux" "aarch64-linux" "x86_64-linux"))
|
||||
(description "This library provides a simple framework for embedding
|
||||
Chromium-based browsers in other applications.
|
||||
|
||||
Unlike the Chromium project itself, which focuses mainly on Google Chrome
|
||||
application development, CEF focuses on facilitating embedded browser use
|
||||
cases in third-party applications. CEF insulates the user from the underlying
|
||||
Chromium and Blink code complexity by offering production-quality stable
|
||||
APIs.
|
||||
|
||||
Some use cases for CEF include:
|
||||
|
||||
@itemize
|
||||
@item Embedding an HTML5-compliant Web browser control in an existing native
|
||||
application.
|
||||
@item Creating a light-weight native \"shell\" application that hosts a user
|
||||
interface developed primarily using Web technologies.
|
||||
@item Rendering Web content “off-screen” in applications that have their own
|
||||
custom drawing frameworks.
|
||||
@item Acting as a host for automated testing of existing Web properties and
|
||||
applications.
|
||||
@end itemize\n")
|
||||
(home-page "https://bitbucket.org/chromiumembedded/cef")
|
||||
(license license:bsd-3))))
|
Loading…
Reference in a new issue