(define-module (gchannel packages bolt-launcher) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages algebra) #:use-module (gnu packages assembly) #:use-module (gnu packages astronomy) #:use-module (gnu packages audio) #:use-module (gnu packages avahi) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages backup) #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages chromium) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages documentation) #:use-module (gnu packages engineering) #:use-module (gnu packages fltk) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages gd) #:use-module (gnu packages geo) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages golang) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages gps) #:use-module (gnu packages graphviz) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages image-processing) #:use-module (gnu packages javascript) #:use-module (gnu packages jemalloc) #:use-module (gnu packages libedit) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages logging) #:use-module (gnu packages lua) #:use-module (gnu packages man) #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) #:use-module (gnu packages nss) #:use-module (gnu packages openstack) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages protobuf) #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages ruby) #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages swig) #:use-module (gnu packages tcl) #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages toolkits) #:use-module (gnu packages vulkan) #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xiph) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages version-control) #:use-module (guix build-system cmake) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix build-system qt) #:use-module (guix build utils) #:use-module (guix build gnu-build-system) #:use-module (guix base16) #:use-module (nongnu packages chromium) #:use-module (nongnu packages editors) ) (define-public bolt-launcher (package (name "bolt-launcher") (version "0.11.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Adamcake/Bolt") (commit "1720eb0758221d9cd79abddf613d7335ed05e032") (recursive? #t))) (sha256 (base32 "075dbjsy4nkbsnd1w57l85gpqk9sg2q75gp07xykl5g3j0qgwhcx")))) (build-system cmake-build-system) (inputs (list chromium-embedded-framework eudev libarchive glib glibc gtk xdg-utils hicolor-icon-theme nss fmt spng mesa vulkan-loader vscodium wayland)) (arguments (list #:tests? #f ; no check target #:configure-flags #~(list ;; Can probably clean this up (string-append "-D " "CMAKE_INSTALL_PREFIX=" (assoc-ref %outputs "out")) ;;(string-append "-D " "BOLT_DEV_SHOW_DEVTOOLS=" "1") (string-append "-DBOLT_BINDIR=" "./bin") (string-append "-DBOLT_SHAREDIR=" "./share") (string-append "-DBOLT_LIBDIR=" "./lib") (string-append "-DCEF_DIR=" (assoc-ref %build-inputs "chromium-embedded-framework")) (string-append "-DCEF_ROOT=" (assoc-ref %build-inputs "chromium-embedded-framework")) (string-append "-DBOLT_CEF_RESOURCEDIR_OVERRIDE=" (assoc-ref %build-inputs "chromium-embedded-framework") "/share/cef") (string-append "-DBOLT_LIBCEF_DIRECTORY=" (assoc-ref %build-inputs "chromium-embedded-framework") "/lib") (string-append "-DBOLT_CEF_INCLUDEPATH=" (assoc-ref %build-inputs "chromium-embedded-framework")) (string-append "-DBOLT_CEF_DLLWRAPPER=" (assoc-ref %build-inputs "chromium-embedded-framework") "/lib/libcef_dll_wrapper.a") "-D BOLT_META_NAME=bolt-launcher" "-D BOLT_SKIP_LIBRARIES=1") #:phases #~(modify-phases %standard-phases (add-after 'install 'link-cef (lambda _ (map (lambda (entry) (let* ((source (car entry)) (file (cdr entry))) (symlink (string-append (assoc-ref %build-inputs source) file) (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/" (basename file))))) (append (map (lambda (file) (cons "chromium-embedded-framework" file)) '("/lib/libcef.so" "/share/cef/icudtl.dat" "/share/cef/v8_context_snapshot.bin")) (map (lambda (file) (cons "vscodium" file)) '("/opt/vscodium/libGLESv2.so" "/opt/vscodium/libEGL.so" "/opt/vscodium/libvulkan.so.1" "/opt/vscodium/libvk_swiftshader.so")))) (wrap-program (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/bolt") `("LD_LIBRARY_PATH" ":" prefix ( ,(string-append #$(this-package-input "mesa") "/lib") ,(string-append #$(this-package-input "eudev") "/lib") ,(string-append #$(this-package-input "nss") "/lib/nss") )) `("XDG_DATA_DIRS" ":" prefix ( ,(string-append #$(this-package-input "gtk") "/share") )) `("PATH" ":" prefix ( ,(string-append #$(this-package-input "xdg-utils") "/bin") ))) (invoke "mv" (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/bolt") (string-append (assoc-ref %outputs "out") "/bin/bolt")) #t)) ))) (native-inputs (list cmake git wayland)) (synopsis "Soup") (home-page "https://bolt.adamcake.com/") (description "Free open-source third-party implementation of the Jagex Launcher") (license license:agpl3))) bolt-launcher