mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-12 17:26:19 +02:00
Everything builds in the dev shell now
This commit is contained in:
parent
429d6ae2b5
commit
46ec69a483
9 changed files with 238 additions and 8 deletions
|
@ -334,6 +334,10 @@
|
||||||
++ lib.optional (stdenv.cc.isClang && stdenv.hostPlatform == stdenv.buildPlatform) pkgs.buildPackages.clang-tools;
|
++ lib.optional (stdenv.cc.isClang && stdenv.hostPlatform == stdenv.buildPlatform) pkgs.buildPackages.clang-tools;
|
||||||
|
|
||||||
buildInputs = attrs.buildInputs or []
|
buildInputs = attrs.buildInputs or []
|
||||||
|
++ [
|
||||||
|
pkgs.gtest
|
||||||
|
pkgs.rapidcheck
|
||||||
|
]
|
||||||
++ lib.optional havePerl pkgs.perl
|
++ lib.optional havePerl pkgs.perl
|
||||||
;
|
;
|
||||||
});
|
});
|
||||||
|
|
|
@ -8,28 +8,26 @@ in
|
||||||
nix = callPackage ../package.nix { };
|
nix = callPackage ../package.nix { };
|
||||||
|
|
||||||
nix-util = callPackage ../src/libutil/package.nix { };
|
nix-util = callPackage ../src/libutil/package.nix { };
|
||||||
|
nix-util-c = callPackage ../src/libutil-c/package.nix { };
|
||||||
nix-util-test-support = callPackage ../src/libutil-test-support/package.nix { };
|
nix-util-test-support = callPackage ../src/libutil-test-support/package.nix { };
|
||||||
nix-util-test = callPackage ../src/libutil-test/package.nix { };
|
nix-util-test = callPackage ../src/libutil-test/package.nix { };
|
||||||
nix-util-c = callPackage ../src/libutil-c/package.nix { };
|
|
||||||
|
|
||||||
nix-store = callPackage ../src/libstore/package.nix { };
|
nix-store = callPackage ../src/libstore/package.nix { };
|
||||||
|
nix-store-c = callPackage ../src/libstore-c/package.nix { };
|
||||||
nix-store-test-support = callPackage ../src/libstore-test-support/package.nix { };
|
nix-store-test-support = callPackage ../src/libstore-test-support/package.nix { };
|
||||||
nix-store-test = callPackage ../src/libstore-test/package.nix { };
|
nix-store-test = callPackage ../src/libstore-test/package.nix { };
|
||||||
nix-store-c = callPackage ../src/libstore-c/package.nix { };
|
|
||||||
|
|
||||||
nix-fetchers = callPackage ../src/libfetchers/package.nix { };
|
nix-fetchers = callPackage ../src/libfetchers/package.nix { };
|
||||||
nix-fetchers-test = callPackage ../src/libfetchers-test/package.nix { };
|
nix-fetchers-test = callPackage ../src/libfetchers-test/package.nix { };
|
||||||
nix-fetchers-c = callPackage ../src/libfetchers-c/package.nix { };
|
|
||||||
|
|
||||||
nix-expr = callPackage ../src/libexpr/package.nix { };
|
nix-expr = callPackage ../src/libexpr/package.nix { };
|
||||||
|
nix-expr-c = callPackage ../src/libexpr-c/package.nix { };
|
||||||
nix-expr-test-support = callPackage ../src/libexpr-test-support/package.nix { };
|
nix-expr-test-support = callPackage ../src/libexpr-test-support/package.nix { };
|
||||||
nix-expr-test = callPackage ../src/libexpr-test/package.nix { };
|
nix-expr-test = callPackage ../src/libexpr-test/package.nix { };
|
||||||
nix-expr-c = callPackage ../src/libexpr-c/package.nix { };
|
|
||||||
|
|
||||||
nix-flake = callPackage ../src/libflake/package.nix { };
|
nix-flake = callPackage ../src/libflake/package.nix { };
|
||||||
|
|
||||||
nix-internal-api-docs = callPackage ../src/internal-api-docs/package.nix { };
|
nix-internal-api-docs = callPackage ../src/internal-api-docs/package.nix { };
|
||||||
|
|
||||||
nix-external-api-docs = callPackage ../src/external-api-docs/package.nix { };
|
nix-external-api-docs = callPackage ../src/external-api-docs/package.nix { };
|
||||||
|
|
||||||
nix-perl-bindings = callPackage ../src/perl/package.nix { };
|
nix-perl-bindings = callPackage ../src/perl/package.nix { };
|
||||||
|
|
|
@ -41,7 +41,7 @@ mkDerivation (finalAttrs: {
|
||||||
root = ./.;
|
root = ./.;
|
||||||
fileset = fileset.unions [
|
fileset = fileset.unions [
|
||||||
./meson.build
|
./meson.build
|
||||||
./meson.options
|
# ./meson.options
|
||||||
(fileset.fileFilter (file: file.hasExt "cc") ./.)
|
(fileset.fileFilter (file: file.hasExt "cc") ./.)
|
||||||
(fileset.fileFilter (file: file.hasExt "hh") ./.)
|
(fileset.fileFilter (file: file.hasExt "hh") ./.)
|
||||||
(fileset.fileFilter (file: file.hasExt "h") ./.)
|
(fileset.fileFilter (file: file.hasExt "h") ./.)
|
||||||
|
|
|
@ -39,6 +39,9 @@ deps_private += rapidcheck
|
||||||
gtest = dependency('gtest', main : true)
|
gtest = dependency('gtest', main : true)
|
||||||
deps_private += gtest
|
deps_private += gtest
|
||||||
|
|
||||||
|
gtest = dependency('gmock')
|
||||||
|
deps_private += gtest
|
||||||
|
|
||||||
add_project_arguments(
|
add_project_arguments(
|
||||||
# TODO(Qyriad): Yes this is how the autoconf+Make system did it.
|
# TODO(Qyriad): Yes this is how the autoconf+Make system did it.
|
||||||
# It would be nice for our headers to be idempotent instead.
|
# It would be nice for our headers to be idempotent instead.
|
||||||
|
|
|
@ -85,7 +85,7 @@ mkDerivation (finalAttrs: {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
(lib.mesonFeature "gc" enableGC)
|
(lib.mesonEnable "gc" enableGC)
|
||||||
];
|
];
|
||||||
|
|
||||||
env = {
|
env = {
|
||||||
|
|
111
src/libfetchers-test/package.nix
Normal file
111
src/libfetchers-test/package.nix
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, releaseTools
|
||||||
|
|
||||||
|
, meson
|
||||||
|
, ninja
|
||||||
|
, pkg-config
|
||||||
|
|
||||||
|
, nix-fetchers
|
||||||
|
, nix-store-test-support
|
||||||
|
|
||||||
|
, rapidcheck
|
||||||
|
, gtest
|
||||||
|
, runCommand
|
||||||
|
|
||||||
|
# Configuration Options
|
||||||
|
|
||||||
|
, versionSuffix ? ""
|
||||||
|
|
||||||
|
# Check test coverage of Nix. Probably want to use with at least
|
||||||
|
# one of `doCheck` or `doInstallCheck` enabled.
|
||||||
|
, withCoverageChecks ? false
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (lib) fileset;
|
||||||
|
|
||||||
|
version = lib.fileContents ./.version + versionSuffix;
|
||||||
|
|
||||||
|
mkDerivation =
|
||||||
|
if withCoverageChecks
|
||||||
|
then
|
||||||
|
# TODO support `finalAttrs` args function in
|
||||||
|
# `releaseTools.coverageAnalysis`.
|
||||||
|
argsFun:
|
||||||
|
releaseTools.coverageAnalysis (let args = argsFun args; in args)
|
||||||
|
else stdenv.mkDerivation;
|
||||||
|
in
|
||||||
|
|
||||||
|
mkDerivation (finalAttrs: {
|
||||||
|
pname = "nix-fetchers-test";
|
||||||
|
inherit version;
|
||||||
|
|
||||||
|
src = fileset.toSource {
|
||||||
|
root = ./.;
|
||||||
|
fileset = fileset.unions [
|
||||||
|
./meson.build
|
||||||
|
# ./meson.options
|
||||||
|
(fileset.fileFilter (file: file.hasExt "cc") ./.)
|
||||||
|
(fileset.fileFilter (file: file.hasExt "hh") ./.)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
nix-fetchers
|
||||||
|
nix-store-test-support
|
||||||
|
rapidcheck
|
||||||
|
gtest
|
||||||
|
];
|
||||||
|
|
||||||
|
preConfigure =
|
||||||
|
# "Inline" .version so it's not a symlink, and includes the suffix
|
||||||
|
''
|
||||||
|
echo ${version} > .version
|
||||||
|
'';
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
];
|
||||||
|
|
||||||
|
env = lib.optionalAttrs (stdenv.isLinux && !(stdenv.hostPlatform.isStatic && stdenv.system == "aarch64-linux")) {
|
||||||
|
LDFLAGS = "-fuse-ld=gold";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
separateDebugInfo = !stdenv.hostPlatform.isStatic;
|
||||||
|
|
||||||
|
# TODO Always true after https://github.com/NixOS/nixpkgs/issues/318564
|
||||||
|
strictDeps = !withCoverageChecks;
|
||||||
|
|
||||||
|
hardeningDisable = lib.optional stdenv.hostPlatform.isStatic "pie";
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
tests = {
|
||||||
|
run = runCommand "${finalAttrs.pname}-run" {
|
||||||
|
} ''
|
||||||
|
PATH="${lib.makeBinPath [ finalAttrs.finalPackage ]}:$PATH"
|
||||||
|
export _NIX_TEST_UNIT_DATA=${./data}
|
||||||
|
nix-fetchers-test
|
||||||
|
touch $out
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
platforms = lib.platforms.unix ++ lib.platforms.windows;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // lib.optionalAttrs withCoverageChecks {
|
||||||
|
lcovFilter = [ "*/boost/*" "*-tab.*" ];
|
||||||
|
|
||||||
|
hardeningDisable = [ "fortify" ];
|
||||||
|
})
|
111
src/libflake-test/package.nix
Normal file
111
src/libflake-test/package.nix
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, releaseTools
|
||||||
|
|
||||||
|
, meson
|
||||||
|
, ninja
|
||||||
|
, pkg-config
|
||||||
|
|
||||||
|
, nix-flake
|
||||||
|
, nix-expr-test-support
|
||||||
|
|
||||||
|
, rapidcheck
|
||||||
|
, gtest
|
||||||
|
, runCommand
|
||||||
|
|
||||||
|
# Configuration Options
|
||||||
|
|
||||||
|
, versionSuffix ? ""
|
||||||
|
|
||||||
|
# Check test coverage of Nix. Probably want to use with at least
|
||||||
|
# one of `doCheck` or `doInstallCheck` enabled.
|
||||||
|
, withCoverageChecks ? false
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (lib) fileset;
|
||||||
|
|
||||||
|
version = lib.fileContents ./.version + versionSuffix;
|
||||||
|
|
||||||
|
mkDerivation =
|
||||||
|
if withCoverageChecks
|
||||||
|
then
|
||||||
|
# TODO support `finalAttrs` args function in
|
||||||
|
# `releaseTools.coverageAnalysis`.
|
||||||
|
argsFun:
|
||||||
|
releaseTools.coverageAnalysis (let args = argsFun args; in args)
|
||||||
|
else stdenv.mkDerivation;
|
||||||
|
in
|
||||||
|
|
||||||
|
mkDerivation (finalAttrs: {
|
||||||
|
pname = "nix-flake-test";
|
||||||
|
inherit version;
|
||||||
|
|
||||||
|
src = fileset.toSource {
|
||||||
|
root = ./.;
|
||||||
|
fileset = fileset.unions [
|
||||||
|
./meson.build
|
||||||
|
# ./meson.options
|
||||||
|
(fileset.fileFilter (file: file.hasExt "cc") ./.)
|
||||||
|
(fileset.fileFilter (file: file.hasExt "hh") ./.)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
nix-flake
|
||||||
|
nix-expr-test-support
|
||||||
|
rapidcheck
|
||||||
|
gtest
|
||||||
|
];
|
||||||
|
|
||||||
|
preConfigure =
|
||||||
|
# "Inline" .version so it's not a symlink, and includes the suffix
|
||||||
|
''
|
||||||
|
echo ${version} > .version
|
||||||
|
'';
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
];
|
||||||
|
|
||||||
|
env = lib.optionalAttrs (stdenv.isLinux && !(stdenv.hostPlatform.isStatic && stdenv.system == "aarch64-linux")) {
|
||||||
|
LDFLAGS = "-fuse-ld=gold";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
separateDebugInfo = !stdenv.hostPlatform.isStatic;
|
||||||
|
|
||||||
|
# TODO Always true after https://github.com/NixOS/nixpkgs/issues/318564
|
||||||
|
strictDeps = !withCoverageChecks;
|
||||||
|
|
||||||
|
hardeningDisable = lib.optional stdenv.hostPlatform.isStatic "pie";
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
tests = {
|
||||||
|
run = runCommand "${finalAttrs.pname}-run" {
|
||||||
|
} ''
|
||||||
|
PATH="${lib.makeBinPath [ finalAttrs.finalPackage ]}:$PATH"
|
||||||
|
export _NIX_TEST_UNIT_DATA=${./data}
|
||||||
|
nix-flake-test
|
||||||
|
touch $out
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
platforms = lib.platforms.unix ++ lib.platforms.windows;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // lib.optionalAttrs withCoverageChecks {
|
||||||
|
lcovFilter = [ "*/boost/*" "*-tab.*" ];
|
||||||
|
|
||||||
|
hardeningDisable = [ "fortify" ];
|
||||||
|
})
|
|
@ -41,7 +41,7 @@ mkDerivation (finalAttrs: {
|
||||||
root = ./.;
|
root = ./.;
|
||||||
fileset = fileset.unions [
|
fileset = fileset.unions [
|
||||||
./meson.build
|
./meson.build
|
||||||
./meson.options
|
# ./meson.options
|
||||||
(fileset.fileFilter (file: file.hasExt "cc") ./.)
|
(fileset.fileFilter (file: file.hasExt "cc") ./.)
|
||||||
(fileset.fileFilter (file: file.hasExt "hh") ./.)
|
(fileset.fileFilter (file: file.hasExt "hh") ./.)
|
||||||
(fileset.fileFilter (file: file.hasExt "h") ./.)
|
(fileset.fileFilter (file: file.hasExt "h") ./.)
|
||||||
|
|
|
@ -36,6 +36,9 @@ deps_private += rapidcheck
|
||||||
gtest = dependency('gtest', main : true)
|
gtest = dependency('gtest', main : true)
|
||||||
deps_private += gtest
|
deps_private += gtest
|
||||||
|
|
||||||
|
gtest = dependency('gmock')
|
||||||
|
deps_private += gtest
|
||||||
|
|
||||||
add_project_arguments(
|
add_project_arguments(
|
||||||
# TODO(Qyriad): Yes this is how the autoconf+Make system did it.
|
# TODO(Qyriad): Yes this is how the autoconf+Make system did it.
|
||||||
# It would be nice for our headers to be idempotent instead.
|
# It would be nice for our headers to be idempotent instead.
|
||||||
|
|
Loading…
Reference in a new issue