1{ lib
2, stdenv
3, fetchFromGitHub
4, cmake
5, pkg-config
6, python3
7, gitUpdater
8}:
9
10stdenv.mkDerivation (finalAttrs: {
11 pname = "zxing-cpp";
12 version = "2.2.1";
13
14 src = fetchFromGitHub {
15 owner = "zxing-cpp";
16 repo = "zxing-cpp";
17 rev = "v${finalAttrs.version}";
18 hash = "sha256-teFspdATn9M7Z1vSr/7PdJx/xAv+TVai8rIekxqpBZk=";
19 };
20
21 nativeBuildInputs = [
22 cmake
23 pkg-config
24 ];
25
26 cmakeFlags = [
27 "-DBUILD_EXAMPLES=OFF"
28 "-DBUILD_BLACKBOX_TESTS=OFF"
29 ];
30
31 passthru = {
32 tests = {
33 inherit (python3.pkgs) zxing-cpp;
34 };
35 updateScript = gitUpdater {
36 rev-prefix = "v";
37 };
38 };
39
40 meta = {
41 homepage = "https://github.com/zxing-cpp/zxing-cpp";
42 description = "C++ port of zxing (a Java barcode image processing library)";
43 longDescription = ''
44 ZXing-C++ ("zebra crossing") is an open-source, multi-format 1D/2D barcode
45 image processing library implemented in C++.
46
47 It was originally ported from the Java ZXing Library but has been
48 developed further and now includes many improvements in terms of quality
49 and performance. It can both read and write barcodes in a number of
50 formats.
51 '';
52 license = lib.licenses.asl20;
53 maintainers = with lib.maintainers; [ AndersonTorres lukegb ];
54 platforms = lib.platforms.unix;
55 };
56})