237 lines
8.5 KiB
Scheme
237 lines
8.5 KiB
Scheme
;; This file is provided to assist in setting up a development
|
|
;; environment for Lumina.
|
|
;;
|
|
;; Author: Chris Cochrun
|
|
;;
|
|
;;
|
|
;;
|
|
;;
|
|
;;
|
|
;;
|
|
;;
|
|
;;
|
|
;;
|
|
;;
|
|
|
|
(use-modules (gnu packages)
|
|
(gnu packages rust)
|
|
(gnu packages rust-apps)
|
|
(gnu packages llvm)
|
|
(gnu packages qt)
|
|
(gnu packages gdb)
|
|
(gnu packages mold)
|
|
(gnu packages pkg-config)
|
|
(gnu packages kde-frameworks)
|
|
(gnu packages kde)
|
|
(gnu packages python)
|
|
(gnu packages video)
|
|
(gnu packages cmake)
|
|
(gnu packages commencement)
|
|
(gnu packages crates-io)
|
|
(gnu services)
|
|
(guix gexp)
|
|
(guix packages)
|
|
(guix git-download)
|
|
(guix build-system qt)
|
|
(guix build-system cmake)
|
|
(guix utils)
|
|
((guix licenses) #:prefix license:))
|
|
|
|
(define this-directory
|
|
(dirname (local-file-absolute-file-name (local-file "guix.scm"))))
|
|
|
|
(define source
|
|
(local-file this-directory
|
|
#:recursive? #t
|
|
#:select? (git-predicate this-directory)))
|
|
|
|
;; Corrosion allows us to build a cmake project that uses rust too.
|
|
(define-public corrosion
|
|
(let ((commit "6ae04cf691fa721945428b2f96b0818085135890")
|
|
(revision "0.4.1"))
|
|
(package
|
|
(name "corrosion")
|
|
(version (git-version "0.4.1" revision commit))
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/corrosion-rs/corrosion.git")
|
|
(commit commit)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"1f0zmqm0iz669zqv74222x9759jbn1zq5z4snjwkd5g3lv0p4mkw"))))
|
|
(build-system cmake-build-system)
|
|
(arguments `(#:tests? #f))
|
|
(inputs (list
|
|
cmake
|
|
`(,rust "out")
|
|
`(,rust "cargo")))
|
|
(license license:gpl3+)
|
|
(home-page "idk")
|
|
(synopsis "Adding rust to cmake projects")
|
|
(description "idk"))))
|
|
|
|
(define lumina-declarative
|
|
(package
|
|
(inherit qtdeclarative-5)
|
|
(name "qtdeclarative")
|
|
(arguments
|
|
(substitute-keyword-arguments (package-arguments qtsvg-5)
|
|
((#:phases phases)
|
|
#~(modify-phases #$phases
|
|
(add-after 'build 'fix-qt5core-install-prefix
|
|
(lambda _
|
|
;; The Qt5Core install prefix is set to qtbase, but qmlcachegen
|
|
;; is provided by qtdeclarative-5.
|
|
(substitute*
|
|
"lib/cmake/Qt5QuickCompiler/Qt5QuickCompilerConfig.cmake"
|
|
(("\\$\\{_qt5Core_install_prefix\\}") #$output))
|
|
|
|
(substitute* "lib/headers"
|
|
(("\\$\\$\\[QT_INSTALL_HEADERS\\]")
|
|
"$$clean_path($$replace(dir, mkspecs/modules, ../../include/qt5))"))
|
|
(substitute* "lib"
|
|
(("\\$\\$\\[QT_INSTALL_LIBS\\]")
|
|
"$$clean_path($$replace(dir, mkspecs/modules, ../../lib))")
|
|
(("\\$\\$\\[QT_HOST_LIBS\\]")
|
|
"$$clean_path($$replace(dir, mkspecs/modules, ../../lib))"))
|
|
(substitute* "bin"
|
|
(("\\$\\$\\[QT_INSTALL_BINS\\]")
|
|
"$$clean_path($$replace(dir, mkspecs/modules, ../../bin))"))))))))))
|
|
|
|
;; (define-public rust-cxx-qt-1
|
|
;; (package
|
|
;; (name "rust-cxx")
|
|
;; (version "1.0.86")
|
|
;; (source
|
|
;; (origin
|
|
;; (method url-fetch)
|
|
;; (uri (crate-uri "cxx" version))
|
|
;; (file-name
|
|
;; (string-append name "-" version ".tar.gz"))
|
|
;; (sha256
|
|
;; (base32
|
|
;; "0yc5gz723hiwqk7waygj63655fh5vzq3551p1j2wyzc06xf0glai"))))
|
|
;; (build-system cargo-build-system)
|
|
;; (arguments
|
|
;; `(#:tests? #f ; Cannot compile cxx-test-suite.
|
|
;; #:cargo-inputs
|
|
;; (("rust-cc" ,rust-cc-1)
|
|
;; ("rust-cxxbridge-flags" ,rust-cxxbridge-flags-1)
|
|
;; ("rust-cxxbridge-macro" ,rust-cxxbridge-macro-1)
|
|
;; ("rust-link-cplusplus" ,rust-link-cplusplus-1))
|
|
;; #:cargo-development-inputs
|
|
;; (("rust-cxx-build" ,rust-cxx-build-1)
|
|
;; ("rust-cxx-gen" ,rust-cxx-gen-0.7)
|
|
;; ("rust-cxx-test-suite" ,rust-cxx-test-suite-0.0.0)
|
|
;; ("rust-rustversion" ,rust-rustversion-1)
|
|
;; ("rust-trybuild" ,rust-trybuild-1))))
|
|
;; (home-page "https://cxx.rs")
|
|
;; (synopsis "Safe interop between Rust and C++")
|
|
;; (description "This package provides a safe interop between Rust and C++.")
|
|
;; (license (list license:expat license:asl2.0))))
|
|
|
|
;; (define-public rust-youtube-dl-0.9
|
|
;; (package
|
|
;; (name "rust-youtube-dl")
|
|
;; (version "0.9.0")
|
|
;; (source
|
|
;; (origin
|
|
;; (method url-fetch)
|
|
;; (uri (crate-uri "youtube_dl" version))
|
|
;; (file-name (string-append name "-" version ".tar.gz"))
|
|
;; (sha256
|
|
;; (base32 "1fas41jl0f2c3lmdfikvcqbagi5skg9mfnb8xa976p2l5fc1lygw"))))
|
|
;; (build-system cargo-build-system)
|
|
;; (arguments
|
|
;; `(#:cargo-inputs (("rust-log" ,rust-log-0.4)
|
|
;; ("rust-reqwest" ,rust-reqwest-0.11)
|
|
;; ("rust-serde" ,rust-serde-1)
|
|
;; ("rust-serde-json" ,rust-serde-json-1)
|
|
;; ("rust-tokio" ,rust-tokio-1)
|
|
;; ("rust-wait-timeout" ,rust-wait-timeout-0.2))
|
|
;; #:cargo-development-inputs (("rust-env-logger" ,rust-env-logger-0.10)
|
|
;; ("rust-tempfile" ,rust-tempfile-3)
|
|
;; ("rust-tokio" ,rust-tokio-1))))
|
|
;; (home-page "https://github.com/GyrosOfWar/youtube-dl-rs")
|
|
;; (synopsis "Runs yt-dlp and parses its JSON output.")
|
|
;; (description "Runs yt-dlp and parses its JSON output.")
|
|
;; (license (list license:expat license:asl2.0))))
|
|
|
|
(define-public lumina
|
|
(package
|
|
(name "lumina")
|
|
(version "0.0.1")
|
|
(source source)
|
|
(build-system qt-build-system)
|
|
;; (arguments `(#:phases
|
|
;; (modify-phases %standard-phases
|
|
;; (replace 'build
|
|
;; (lambda* (#:key outputs #:allow-other-keys)
|
|
;; (invoke "just" "build"))))))
|
|
|
|
(inputs (list mpv
|
|
ffmpeg))
|
|
(propagated-inputs (list clang
|
|
cmake
|
|
mold
|
|
clazy
|
|
clang-toolchain
|
|
gdb
|
|
pkg-config
|
|
lumina-declarative
|
|
qtbase-5
|
|
qttools-5
|
|
qt-creator
|
|
qtdeclarative-5
|
|
qtquickcontrols2-5
|
|
qtx11extras
|
|
qtwayland-5
|
|
qtwebengine-5
|
|
kirigami
|
|
kirigami-addons
|
|
qqc2-desktop-style
|
|
extra-cmake-modules
|
|
karchive
|
|
kcoreaddons
|
|
ki18n
|
|
sonnet
|
|
just
|
|
;; corrosion is needed for build and is yet to
|
|
;; be packaged.
|
|
corrosion
|
|
|
|
`(,rust "out")
|
|
`(,rust "rustfmt")
|
|
`(,rust "cargo")
|
|
rust-analyzer
|
|
rust-clippy-0.0
|
|
;; rust-youtube-dl-0.9
|
|
rust-configparser-3
|
|
rust-serde-1
|
|
rust-quote-1
|
|
rust-cxx-1
|
|
rust-dirs-5
|
|
rust-diesel-1
|
|
rust-diesel-migrations-1
|
|
rust-tar-0.4
|
|
rust-serde-json-1
|
|
rust-fastrand-1
|
|
rust-tokio-1
|
|
rust-tracing-subscriber-0.3
|
|
rust-tracing-0.1
|
|
rust-time-0.3))
|
|
|
|
(native-search-paths
|
|
(list (search-path-specification
|
|
(variable "CMAKE_INCLUDE_PATH")
|
|
(files '("include")))))
|
|
|
|
(license license:gpl3+)
|
|
(home-page "idk")
|
|
(synopsis "A Church Presentation Application")
|
|
(description "idk")))
|
|
|
|
lumina
|