summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHilton Chain <hako@ultrarare.space>2025-04-11 10:57:02 +0800
committerHilton Chain <hako@ultrarare.space>2025-08-21 19:08:29 +0800
commitacb077f5084d7c8ba72e1415a19c062ab6873b7c (patch)
tree3331d2de2da580d035080c49627d75179ce36a9e
parent141d39db98ed3eba64b405be4102c3a024eab475 (diff)
gnu: libchewing: Switch to cmake-build-system.
* gnu/packages/language.scm (libchewing) [build-system]: Switch to cmake-build-system. [native-inputs]: Add rust, rust:cargo. Add rust-sysroot when cross-compiling. Remove cmake-minimal. Move corrosion to... [inputs]: ...here. Use ‘cargo-inputs’. [arguments]: Remove #:install-source?, #:vendor-dir, #:cargo-inputs, #:cargo-development-inputs. <#:out-of-source?>: Disable, added from the 'cmake-configure phase. <#:phases>: Add 'prepare-cargo-build-system after 'unpack. Remove added phases that are part of cmake-build-system's %standard-phases. * gnu/packages/rust-crates.scm (lookup-cargo-inputs)[libchewing]: New entry. Change-Id: I9af2b5d4efd88bdc2440a16edca683cf1bcb8f72
-rw-r--r--gnu/packages/language.scm57
-rw-r--r--gnu/packages/rust-crates.scm90
2 files changed, 115 insertions, 32 deletions
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 45e3e2ed811..2fc073ce432 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -63,6 +63,7 @@
#:use-module (gnu packages perl-check)
#:use-module (gnu packages qt)
#:use-module (gnu packages ruby)
+ #:use-module (gnu packages rust)
#:use-module (gnu packages scheme)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages serialization)
@@ -289,51 +290,43 @@ Random Cage Fighting Birds, Cool Music etc.")
(file-name (git-file-name name version))
(sha256
(base32 "0gh64wvrk5pn0fhmpvj1j99d5g7f7697rk96zbkc8l72yjr819z5"))))
- (build-system cargo-build-system)
+ (build-system cmake-build-system)
(arguments
- `(#:modules ((guix build cargo-build-system)
+ `(#:modules (((guix build cargo-build-system) #:prefix cargo:)
(guix build utils)
- ((guix build cmake-build-system) #:prefix cmake:))
+ (guix build cmake-build-system))
#:imported-modules ((guix build cmake-build-system)
,@%cargo-build-system-modules)
- #:install-source? #f
- ;; Keep the vendor-dir outside of cmake's directories.
- #:vendor-dir "../guix-vendor"
- #:cargo-inputs
- (("rust-anyhow" ,rust-anyhow-1)
- ("rust-clap" ,rust-clap-4)
- ("rust-clap-mangen" ,rust-clap-mangen-0.2)
- ("rust-der" ,rust-der-0.7)
- ("rust-directories" ,rust-directories-5)
- ("rust-env-logger" ,rust-env-logger-0.10)
- ("rust-log" ,rust-log-0.4)
- ("rust-rusqlite" ,rust-rusqlite-0.29))
- #:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3))
+ #:out-of-source? #f ;For the tests.
#:phases
(modify-phases %standard-phases
- (add-after 'configure 'cmake-configure
+ (add-after 'unpack 'prepare-cargo-build-system
(lambda args
- (apply (assoc-ref cmake:%standard-phases 'configure)
- ;; For the tests.
- (append args (list #:out-of-source? #f)))))
+ (for-each
+ (lambda (phase)
+ (format #t "Running cargo phase: ~a~%" phase)
+ (apply (assoc-ref cargo:%standard-phases phase)
+ ;; Keep the vendor-dir outside of cmake's directories.
+ #:vendor-dir "../guix-vendor"
+ #:cargo-target ,(cargo-triplet)
+ args))
+ '(unpack-rust-crates
+ configure
+ check-for-pregenerated-files
+ patch-cargo-checksums))))
(add-after 'unpack 'work-around-genkeystroke
(lambda _
;; Remove this phase when we can find ncurses with cmake.
(substitute* "tests/CMakeLists.txt"
- (("CURSES_FOUND") "FALSE"))))
- (replace 'build
- (assoc-ref cmake:%standard-phases 'build))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys #:rest args)
- (when tests?
- ((assoc-ref cmake:%standard-phases 'check)))))
- (replace 'install
- (assoc-ref cmake:%standard-phases 'install)))))
+ (("CURSES_FOUND") "FALSE")))))))
(native-inputs
- (list corrosion cmake-minimal))
+ (append
+ (list rust `(,rust "cargo") )
+ (or (and=> (%current-target-system)
+ (compose list make-rust-sysroot))
+ '())))
(inputs
- (list ncurses sqlite))
+ (cons* corrosion ncurses sqlite (cargo-inputs 'libchewing)))
(synopsis "Chinese phonetic input method")
(description "Chewing is an intelligent phonetic (Zhuyin/Bopomofo) input
method, one of the most popular choices for Traditional Chinese users.")
diff --git a/gnu/packages/rust-crates.scm b/gnu/packages/rust-crates.scm
index ddaf549c16a..6f222405154 100644
--- a/gnu/packages/rust-crates.scm
+++ b/gnu/packages/rust-crates.scm
@@ -1309,6 +1309,10 @@
(crate-source "directories" "4.0.1"
"045jbj5y2f1fmjs9rfcw95y0vjydb2rqqhz1sdnqhdmxv96ms77m"))
+(define rust-directories-5.0.1
+ (crate-source "directories" "5.0.1"
+ "0dba6xzk79s1clqzxh2qlgzk3lmvvks1lzzjhhi3hd70hhxifjcs"))
+
(define rust-directories-6.0.0
(crate-source "directories" "6.0.0"
"0zgy2w088v8w865c11dmc3dih899fgrhvrfp7g83h6v6ai60kx8n"))
@@ -2580,6 +2584,10 @@
(crate-source "hashbrown" "0.15.2"
"12dj0yfn59p3kh3679ac0w1fagvzf4z2zp87a13gbbqbzw0185dz"))
+(define rust-hashlink-0.10.0
+ (crate-source "hashlink" "0.10.0"
+ "1h8lzvnl9qxi3zyagivzz2p1hp6shgddfmccyf6jv7s1cdicz0kk"))
+
(define rust-hashlink-0.9.1
(crate-source "hashlink" "0.9.1"
"1byq4nyrflm5s6wdx5qwp96l1qbp2d0nljvrr5yqrsfy51qzz93b"))
@@ -4896,6 +4904,10 @@
(crate-source "rusqlite" "0.32.1"
"0vlx040bppl414pbjgbp7qr4jdxwszi9krx0m63zzf2f2whvflvp"))
+(define rust-rusqlite-0.34.0
+ (crate-source "rusqlite" "0.34.0"
+ "0hy15qj9fzi4xhpslq32ajl6x07x2lzkrqn0qx8y1n48va349qrp"))
+
(define rust-rust-argon2-2.1.0
(crate-source "rust-argon2" "2.1.0"
"1s66kgbvnv5vaq4vlglx587bq93c662whrniz6ycpjb03m9li64x"))
@@ -8916,6 +8928,84 @@
rust-wyz-0.5.1
rust-x11rb-0.13.1
rust-x11rb-protocol-0.13.1))
+ (libchewing =>
+ (list rust-anstream-0.6.18
+ rust-anstyle-1.0.10
+ rust-anstyle-parse-0.2.6
+ rust-anstyle-query-1.1.2
+ rust-anstyle-wincon-3.0.7
+ rust-anyhow-1.0.97
+ rust-bitflags-2.9.0
+ rust-cfg-if-1.0.0
+ rust-clap-4.5.35
+ rust-clap-builder-4.5.35
+ rust-clap-derive-4.5.32
+ rust-clap-lex-0.7.4
+ rust-clap-mangen-0.2.26
+ rust-colorchoice-1.0.3
+ rust-der-0.7.9
+ rust-directories-5.0.1
+ rust-dirs-sys-0.4.1
+ rust-env-filter-0.1.3
+ rust-env-logger-0.11.8
+ rust-errno-0.3.11
+ rust-fallible-iterator-0.3.0
+ rust-fallible-streaming-iterator-0.1.9
+ rust-fastrand-2.3.0
+ rust-foldhash-0.1.5
+ rust-getrandom-0.2.15
+ rust-getrandom-0.3.2
+ rust-hashbrown-0.15.2
+ rust-hashlink-0.10.0
+ rust-heck-0.5.0
+ rust-is-terminal-polyfill-1.70.1
+ rust-libc-0.2.171
+ rust-libredox-0.1.3
+ rust-libsqlite3-sys-0.32.0
+ rust-linux-raw-sys-0.9.4
+ rust-log-0.4.27
+ rust-once-cell-1.21.3
+ rust-option-ext-0.2.0
+ rust-pkg-config-0.3.32
+ rust-proc-macro2-1.0.94
+ rust-quote-1.0.40
+ rust-r-efi-5.2.0
+ rust-redox-users-0.4.6
+ rust-roff-0.2.2
+ rust-rusqlite-0.34.0
+ rust-rustix-1.0.5
+ rust-smallvec-1.15.0
+ rust-strsim-0.11.1
+ rust-syn-2.0.100
+ rust-tempfile-3.19.1
+ rust-thiserror-1.0.69
+ rust-thiserror-impl-1.0.69
+ rust-unicode-ident-1.0.18
+ rust-utf8parse-0.2.2
+ rust-vcpkg-0.2.15
+ rust-wasi-0.11.0+wasi-snapshot-preview1
+ rust-wasi-0.14.2+wasi-0.2.4
+ rust-windows-sys-0.48.0
+ rust-windows-sys-0.59.0
+ rust-windows-targets-0.48.5
+ rust-windows-targets-0.52.6
+ rust-windows-aarch64-gnullvm-0.48.5
+ rust-windows-aarch64-gnullvm-0.52.6
+ rust-windows-aarch64-msvc-0.48.5
+ rust-windows-aarch64-msvc-0.52.6
+ rust-windows-i686-gnu-0.48.5
+ rust-windows-i686-gnu-0.52.6
+ rust-windows-i686-gnullvm-0.52.6
+ rust-windows-i686-msvc-0.48.5
+ rust-windows-i686-msvc-0.52.6
+ rust-windows-x86-64-gnu-0.48.5
+ rust-windows-x86-64-gnu-0.52.6
+ rust-windows-x86-64-gnullvm-0.48.5
+ rust-windows-x86-64-gnullvm-0.52.6
+ rust-windows-x86-64-msvc-0.48.5
+ rust-windows-x86-64-msvc-0.52.6
+ rust-wit-bindgen-rt-0.39.0
+ rust-zeroize-1.8.1))
(librsvg =>
(list rust-adler2-2.0.0
rust-aho-corasick-1.1.3