1{ lib
2, stdenv
3, fetchFromGitHub
4}:
5
6stdenv.mkDerivation (finalAttrs: {
7 pname = "qrcodegen";
8 version = "1.8.0";
9
10 src = fetchFromGitHub {
11 owner = "nayuki";
12 repo = "QR-Code-generator";
13 rev = "v${finalAttrs.version}";
14 hash = "sha256-aci5SFBRNRrSub4XVJ2luHNZ2pAUegjgQ6pD9kpkaTY=";
15 };
16
17 sourceRoot = "${finalAttrs.src.name}/c";
18
19 nativeBuildInputs = lib.optionals stdenv.cc.isClang [
20 stdenv.cc.cc.libllvm.out
21 ];
22
23 makeFlags = lib.optionals stdenv.cc.isClang [ "AR=llvm-ar" ];
24
25 doCheck = true;
26 checkPhase = ''
27 runHook preCheck
28
29 ./qrcodegen-test
30
31 runHook postCheck
32 '';
33
34 installPhase = ''
35 runHook preInstall
36
37 install -Dt $out/lib/ libqrcodegen.a
38 install -Dt $out/include/qrcodegen/ qrcodegen.h
39
40 runHook postInstall
41 '';
42
43 meta = {
44 homepage = "https://www.nayuki.io/page/qr-code-generator-library";
45 description = "High-quality QR Code generator library in many languages";
46 license = lib.licenses.mit;
47 maintainers = with lib.maintainers; [ AndersonTorres ];
48 platforms = lib.platforms.unix;
49 };
50})
51# TODO: build the other languages
52# TODO: multiple outputs