|
1 | | -{ rev ? "c7e0e9ed5abd0043e50ee371129fcb8640264fc4" |
2 | | -, sha256 ? "0c28mpvjhjc8kiwj2w8zcjsr2rayw989a1wnsqda71zpcyas3mq2" |
3 | | -, pkgs ? import (builtins.fetchTarball { inherit sha256; |
4 | | - url = "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz"; |
5 | | - }) { } |
6 | | - |
7 | | -, stdenv ? if useClang |
8 | | - then (if pkgs.stdenv.cc.isClang |
9 | | - then pkgs.stdenv |
10 | | - else pkgs.llvmPackages_latest.stdenv) |
11 | | - else (if pkgs.stdenv.cc.isGNU |
12 | | - then pkgs.stdenv |
13 | | - else pkgs.gcc.stdenv) |
14 | | -, lib ? pkgs.lib |
| 1 | +{ source, rev, pkgs, lib, stdenv ? if useClang |
| 2 | + then (if pkgs.stdenv.cc.isClang |
| 3 | + then pkgs.stdenv |
| 4 | + else pkgs.llvmPackages_latest.stdenv) |
| 5 | + else (if pkgs.stdenv.cc.isGNU |
| 6 | + then pkgs.stdenv |
| 7 | + else pkgs.gcc.stdenv) |
15 | 8 |
|
16 | 9 | , debug ? false # Debug Build |
17 | 10 | , useClang ? false # Use Clang over GCC |
|
21 | 14 |
|
22 | 15 | let |
23 | 16 | pname = "matrix-construct"; |
24 | | - version = "development"; |
25 | | - |
26 | | - source = let |
27 | | - srcFilter = n: t: (lib.hasSuffix ".cc" n || lib.hasSuffix ".h" n || lib.hasSuffix ".S" n |
28 | | - || lib.hasSuffix ".md" n || t == "directory"); |
29 | | - repo = lib.cleanSourceWith { filter = srcFilter; src = lib.cleanSource ./.; }; |
30 | | - |
31 | | - buildFileWith = root: name: type: rec { |
32 | | - inherit name; file = "${root}/${name}"; |
33 | | - path = if type == "directory" then buildFarmFrom name file else "${file}"; |
34 | | - }; |
35 | | - buildFarm = root: lib.mapAttrsToList (buildFileWith root) (builtins.readDir root); |
36 | | - buildFarmFrom = basename: root: pkgs.linkFarm (lib.strings.sanitizeDerivationName basename) (buildFarm root); |
37 | | - in buildFarmFrom "construct" repo; |
| 17 | + version = lib.substring 0 9 rev; |
38 | 18 |
|
39 | 19 | buildArgs = buildInputs: nativeBuildInputs: { |
40 | 20 | inherit buildInputs nativeBuildInputs; |
41 | 21 | preferLocalBuild = true; |
42 | 22 | allowSubstitutes = false; |
43 | 23 | }; |
44 | | - |
45 | | - VERSION_COMMIT_CMD = "git rev-parse --short HEAD"; |
46 | | - VERSION_BRANCH_CMD = "git rev-parse --abbrev-ref HEAD"; |
47 | | - VERSION_TAG_CMD = "git describe --tags --abbrev=0 --dirty --always --broken"; |
48 | | - VERSION_CMD = "git describe --tags --always --broken"; |
49 | | - runWithGit = id: cmd: lib.removeSuffix "\n" (builtins.readFile (pkgs.runCommandNoCCLocal "construct-${id}" { |
50 | | - buildInputs = [ pkgs.git ]; |
51 | | - } "cd ${./.} && ${cmd} > $out")); |
52 | 24 | in stdenv.mkDerivation rec { |
53 | 25 | inherit pname version; |
54 | 26 | src = source; |
@@ -528,7 +500,7 @@ in stdenv.mkDerivation rec { |
528 | 500 | libtool --tag=CXX --mode=link g++ -std=gnu++17 -ftls-model=initial-exec -pthread ${CXXOPTS} -version-info 3:2:0 \ |
529 | 501 | -Wl,--no-undefined-version -Wl,--weak-unresolved-symbols -Wl,--unresolved-symbols=ignore-in-shared-libs \ |
530 | 502 | -Wl,--wrap=pthread_create -Wl,--wrap=pthread_join -Wl,--wrap=pthread_timedjoin_np -Wl,--wrap=pthread_self -Wl,--wrap=pthread_setname_np \ |
531 | | - -Wl,-z,nodelete -Wl,-z,nodlopen -Wl,-z,lazy -L${boost.out}/lib \ |
| 503 | + -Wl,-z,nodelete -Wl,-z,nodlopen -Wl,-z,lazy -L${pkgs.boost.out}/lib \ |
532 | 504 | -Wl,-fuse-ld=gold -Wl,--gdb-index -Wl,--warn-common -Wl,--warn-execstack -Wl,--detect-odr-violations -Wl,--rosegment -Wl,-z,noexecstack -Wl,-z,combreloc -Wl,-z,text-unlikely-segment \ |
533 | 505 | -o $out/${laFile} ${lib.concatStringsSep " " loFiles} ${extraArgs} \ |
534 | 506 | -lrocksdb -lboost_coroutine -lboost_context -lboost_thread -lboost_filesystem -lboost_chrono -lboost_system -lssl -lcrypto -L${pkgs.libsodium.out}/lib -lsodium -lmagic -lz -lpthread -latomic -lrocksdb -ldl |
@@ -570,11 +542,11 @@ in stdenv.mkDerivation rec { |
570 | 542 |
|
571 | 543 | versionDefs = let |
572 | 544 | versions = { |
573 | | - BRANDING_VERSION = "${runWithGit "version" VERSION_CMD}"; |
574 | | - RB_VERSION = "${runWithGit "version" VERSION_CMD}"; |
575 | | - RB_VERSION_BRANCH = "${runWithGit "version-branch" VERSION_BRANCH_CMD}"; |
576 | | - RB_VERSION_COMMIT = "${runWithGit "version-commit" VERSION_COMMIT_CMD}"; |
577 | | - RB_VERSION_TAG = "${runWithGit "version-tag" VERSION_TAG_CMD}"; |
| 545 | + BRANDING_VERSION = lib.substring 0 9 rev; |
| 546 | + RB_VERSION = lib.substring 0 9 rev; |
| 547 | + RB_VERSION_BRANCH = "master"; |
| 548 | + RB_VERSION_COMMIT = rev; |
| 549 | + RB_VERSION_TAG = rev; |
578 | 550 | }; |
579 | 551 | in lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "-U${k} -D'${k}=\"${v}\"'") versions); |
580 | 552 |
|
|
0 commit comments