nonguix/modules/nongnu/packages/chromium.scm
Giacomo Leidi 89b524ab58
Move Guile modules under modules/ .
This patch moves Guile modules shipped as a Guix channel under the
modules directory.  The rationale behind this is that we are probably
adding unwanted files into Guile's load path, such as the news file and
possible scripts that could be added to the channel repository in the future.

* guix-channel (channel): Set directory field.

* nongnu/*: Move under modules/nongnu.

* nonguix/*: Move under modules/nonguix.
2025-01-04 02:11:36 +01:00

149 lines
5.2 KiB
Scheme

;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
(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 "5053a95")
(chromium-version "117.0.5938.150")
(arch (match (or (%current-target-system) (%current-system))
("aarch64-linux" "linuxarm64")
("armhf-linux" "linuxarm")
(_ "linux64"))))
(package
(name "chromium-embedded-framework")
(version "117.2.4")
(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
"0vzzwq1k6bv9d209yg3samvfnfwj7s58y9r3p3pd98wxa9iyzf4j"))))
(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))))