diff --git a/modules/radix/packages/cpp.scm b/modules/radix/packages/cpp.scm new file mode 100644 index 0000000..594ffeb --- /dev/null +++ b/modules/radix/packages/cpp.scm @@ -0,0 +1,31 @@ +(define-module (radix packages cpp) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages check) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system cmake) + #:use-module ((guix licenses) #:prefix license:)) + +;; Special thanks to Murilo (6a046e63e2ccdd0d9af9364883597b4bb50e3ab9) +(define-public gsl-microsoft + (package + (name "gsl-microsoft") + (version "4.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Microsoft/GSL") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dgb3rb6x2276d3v7x568m3zhqr67rhk8ynqgm3c304avnmcaw3i")))) + (build-system cmake-build-system) + (native-inputs (list pkg-config)) + (inputs (list googletest)) + (home-page "https://github.com/saitoha/libsixel") + (synopsis "Guidelines Support Library") + (description "The Guidelines Support Library (GSL) contains functions and +types that are suggested for use by the C++ Core Guidelines maintained by the +Standard C++ Foundation. This repo contains Microsoft's implementation of GSL.") + (license license:expat))) diff --git a/modules/radix/packages/image-viewers.scm b/modules/radix/packages/image-viewers.scm index 87e8ef4..47b9251 100644 --- a/modules/radix/packages/image-viewers.scm +++ b/modules/radix/packages/image-viewers.scm @@ -8,6 +8,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages check) #:use-module (gnu packages image-processing) #:use-module (gnu packages image-viewers) #:use-module (gnu packages imagemagick) @@ -28,6 +29,7 @@ #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) + #:use-module (radix packages cpp) #:use-module ((guix licenses) #:prefix license:)) (define-public libsixel @@ -57,7 +59,7 @@ graphics, and some converter programs.") (license:non-copyleft "file:///LICENSE.pnmcolormap") (license:non-copyleft "file:///LICENSE.mesa"))))) -;; Currently broken +;; Special thanks to Murilo (6a046e63e2ccdd0d9af9364883597b4bb50e3ab9) (define-public ueberzug++ (package (name "ueberzug++") @@ -68,59 +70,44 @@ graphics, and some converter programs.") (uri (git-reference (url "https://github.com/jstkdng/ueberzugpp") (commit (string-append "v" version)))) - (patches (list (local-file "../patches/uerberzug++-cmakelists.patch"))) (file-name (git-file-name name version)) (sha256 (base32 "1ibpyy7ypj4lk837n24ws6dq4aq6crm0kjx0zcnnrdkjjjj232n8")))) (build-system cmake-build-system) (arguments - (list #:phases + (list #:configure-flags + #~(list "-DENABLE_OPENCV=ON" + "-DENABLE_X11=ON" + "-DENABLE_WAYLAND=OFF") + #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'absolutize-headers - (lambda _ - (let ((libxcb-file - (lambda (path) - (string-append "\"" #$libxcb path "\""))) - (nlohmann-json-file - (lambda (path) - (string-append "\"" #$nlohmann-json path "\"")))) - (substitute* "src/util/x11.cpp" - (("") (libxcb-file "/include/xcb/res.h"))) - #;(substitute* - (list "src/canvas/wayland/config/hyprland.hpp" - "src/canvas/wayland/config/sway.hpp" - "src/canvas/wayland/config/wayfire.hpp" - "src/util/util.cpp" - "src/application.cpp" - "src/flags.cpp") - (("json/json\\.h") - (nlohmann-json-file "/include/nlohmann/json.hpp"))))))))) + (delete 'check)))) (native-inputs - (list pkg-config - spdlog - gsl - fmt - libxcb - libgsf - orc - fftw - imagemagick - matio - expat - librsvg - lcms - openexr - cairo - pango - libwebp - libexif - imath - poppler - opencv - gobject-introspection - xcb-util-image + (list cairo cli11 - nlohmann-json)) + expat + fftw + fmt + gobject-introspection + gsl-microsoft + imagemagick + imath + lcms + libexif + libgsf + librsvg + libwebp + libxcb + matio + nlohmann-json + opencv + openexr + orc + pango + pkg-config + poppler + spdlog + xcb-util-image)) (inputs (list libsixel vips @@ -150,5 +137,3 @@ workspaces @item Fast image downscaling (through opencv and opencl) @item Cache resized images for faster viewing") (license license:gpl3))) - -ueberzug++ diff --git a/modules/radix/patches/uerberzug++-cmakelists.patch b/modules/radix/patches/uerberzug++-cmakelists.patch deleted file mode 100644 index bda81f7..0000000 --- a/modules/radix/patches/uerberzug++-cmakelists.patch +++ /dev/null @@ -1,115 +0,0 @@ -diff --git a/CMakeLists.txt b/home/radio/a -index 92ff7f2..8b9bf6e 100644 ---- a/CMakeLists.txt -+++ b/home/radio/a -@@ -40,7 +40,6 @@ option(ENABLE_OPENCV "Enable OpenCV image processing." ON) - option(ENABLE_TURBOBASE64 "Enable Turbo-Base64 for base64 encoding." OFF) - option(ENABLE_OPENGL "Enable canvas rendering with OpenGL." OFF) - --include(FetchContent) - include(GNUInstallDirs) - include(CheckCXXSymbolExists) - -@@ -56,55 +55,6 @@ if (HAVE_STD_EXECUTION_H) - target_compile_definitions(ueberzug PRIVATE HAVE_STD_EXECUTION_H) - endif() - --find_package(Microsoft.GSL CONFIG QUIET) --if (NOT Microsoft.GSL_FOUND) -- FetchContent_Declare(GSL -- URL https://github.com/microsoft/GSL/archive/refs/tags/v4.0.0.tar.gz -- ) -- list(APPEND FC_LIBS GSL) --endif() -- --find_package(CLI11 QUIET) --if(NOT CLI11_FOUND) -- if (FETCHCONTENT_FULLY_DISCONNECTED) -- add_subdirectory("${CMAKE_SOURCE_DIR}/third_party/CLI11") -- else() -- FetchContent_Declare(cli11 -- URL https://github.com/CLIUtils/CLI11/archive/refs/tags/v2.3.2.tar.gz -- ) -- list(APPEND FC_LIBS cli11) -- endif() --endif() -- --find_package(nlohmann_json QUIET) --if(NOT nlohmann_json_FOUND) -- FetchContent_Declare(nlohmann_json -- URL https://github.com/nlohmann/json/releases/download/v3.11.2/json.tar.xz -- ) -- list(APPEND FC_LIBS nlohmann_json) --endif() -- --find_package(fmt QUIET) --if(NOT fmt_FOUND) -- FetchContent_Declare(fmt -- URL https://github.com/fmtlib/fmt/archive/refs/tags/10.1.0.tar.gz -- ) -- list(APPEND FC_LIBS fmt) --endif() -- --find_package(spdlog QUIET) --if(NOT spdlog_FOUND) -- set(SPDLOG_FMT_EXTERNAL ON) -- FetchContent_Declare(spdlog -- URL https://github.com/gabime/spdlog/archive/refs/tags/v1.12.0.tar.gz -- ) -- list(APPEND FC_LIBS spdlog) --endif() -- --if(FC_LIBS) -- FetchContent_MakeAvailable(${FC_LIBS}) --endif() -- - if(ENABLE_OPENGL) - target_compile_definitions(ueberzug PRIVATE ENABLE_OPENGL) - find_package(OpenGL REQUIRED) -@@ -196,23 +146,6 @@ if(ENABLE_OPENCV) - ) - endif() - --if(ENABLE_TURBOBASE64) -- add_compile_definitions(ENABLE_TURBOBASE64) -- find_package(turbobase64 QUIET) -- if (NOT turbobase64_FOUND) -- FetchContent_Declare( -- turbobase64 -- URL https://github.com/powturbo/Turbo-Base64/archive/refs/tags/2023.08.tar.gz -- ) -- FetchContent_Populate(turbobase64) -- add_subdirectory(${turbobase64_SOURCE_DIR} ${turbobase64_BINARY_DIR} EXCLUDE_FROM_ALL) -- list(APPEND UEBERZUG_LIBRARIES base64) -- else() -- add_compile_definitions(WITH_SYSTEM_TURBOBASE64) -- list(APPEND UEBERZUG_LIBRARIES turbo::base64) -- endif() --endif() -- - set(PROJECT_WARNINGS_CXX - -Wall - -Wextra -@@ -235,22 +168,6 @@ pkg_check_modules(VIPS REQUIRED IMPORTED_TARGET vips-cpp) - pkg_check_modules(SIXEL REQUIRED IMPORTED_TARGET libsixel) - pkg_check_modules(CHAFA REQUIRED IMPORTED_TARGET chafa>=1.6) - --if (APPLE) -- list(APPEND UEBERZUG_SOURCES src/process/apple.cpp) -- -- find_package(range-v3 QUIET) -- if (NOT range-v3_FOUND) -- FetchContent_Declare(range-v3 -- URL https://github.com/ericniebler/range-v3/archive/refs/tags/0.12.0.tar.gz -- ) -- FetchContent_Populate(range-v3) -- add_subdirectory(${range-v3_SOURCE_DIR} ${range-v3_BINARY_DIR} EXCLUDE_FROM_ALL) -- endif() -- list(APPEND UEBERZUG_LIBRARIES range-v3) --else() -- list(APPEND UEBERZUG_SOURCES src/process/linux.cpp) --endif() -- - configure_file("include/version.hpp.in" version.hpp) - configure_file("docs/ueberzugpp.1.in" ueberzugpp.1) -