1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-25 10:41:16 +02:00

Merge pull request #11054 from NixOS/meson-fixes

Meson fixes
This commit is contained in:
John Ericson 2024-07-06 17:11:11 -04:00 committed by GitHub
commit 41b6c735eb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 64 additions and 60 deletions

View file

@ -205,4 +205,6 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main - uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main - uses: DeterminateSystems/magic-nix-cache-action@main
- run: nix build -L .#hydraJobs.build.{nix-fetchers,nix-store,nix-util}.$(nix-instantiate --eval --expr builtins.currentSystem | sed -e 's/"//g') # Only meson packages that don't have a tests.run derivation.
# Those that have it are already built and tested as part of nix flake check.
- run: nix build -L .#hydraJobs.build.{nix-cmd,nix-main}.$(nix-instantiate --eval --expr builtins.currentSystem | sed -e 's/"//g')

View file

@ -25,7 +25,6 @@
let let
inherit (nixpkgs) lib; inherit (nixpkgs) lib;
inherit (lib) fileset;
officialRelease = false; officialRelease = false;

View file

@ -1,5 +1,5 @@
{ lib { lib
, stdenv , mkMesonDerivation
, meson , meson
, ninja , ninja
@ -14,27 +14,27 @@ let
inherit (lib) fileset; inherit (lib) fileset;
in in
stdenv.mkDerivation (finalAttrs: { mkMesonDerivation (finalAttrs: {
pname = "nix-external-api-docs"; pname = "nix-external-api-docs";
version = lib.fileContents ./.version + versionSuffix; version = lib.fileContents ./.version + versionSuffix;
src = fileset.toSource { workDir = ./.;
root = ../..; fileset =
fileset = let
let cpp = fileset.fileFilter (file: file.hasExt "cc" || file.hasExt "h");
cpp = fileset.fileFilter (file: file.hasExt "cc" || file.hasExt "h"); in
in fileset.unions [
fileset.unions [ ./.version
./meson.build ../../.version
./doxygen.cfg.in ./meson.build
./README.md ./doxygen.cfg.in
# Source is not compiled, but still must be available for Doxygen ./README.md
# to gather comments. # Source is not compiled, but still must be available for Doxygen
(cpp ../libexpr-c) # to gather comments.
(cpp ../libstore-c) (cpp ../libexpr-c)
(cpp ../libutil-c) (cpp ../libstore-c)
]; (cpp ../libutil-c)
}; ];
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
@ -42,14 +42,10 @@ stdenv.mkDerivation (finalAttrs: {
doxygen doxygen
]; ];
postUnpack = ''
sourceRoot=$sourceRoot/src/external-api-docs
'';
preConfigure = preConfigure =
# "Inline" .version so it's not a symlink, and includes the suffix
'' ''
echo ${finalAttrs.version} > .version chmod u+w ./.version
echo ${finalAttrs.version} > ./.version
''; '';
postInstall = '' postInstall = ''

View file

@ -1,5 +1,5 @@
{ lib { lib
, stdenv , mkMesonDerivation
, meson , meson
, ninja , ninja
@ -14,22 +14,22 @@ let
inherit (lib) fileset; inherit (lib) fileset;
in in
stdenv.mkDerivation (finalAttrs: { mkMesonDerivation (finalAttrs: {
pname = "nix-internal-api-docs"; pname = "nix-internal-api-docs";
version = lib.fileContents ./.version + versionSuffix; version = lib.fileContents ./.version + versionSuffix;
src = fileset.toSource { workDir = ./.;
root = ../..; fileset = let
fileset = let cpp = fileset.fileFilter (file: file.hasExt "cc" || file.hasExt "hh");
cpp = fileset.fileFilter (file: file.hasExt "cc" || file.hasExt "hh"); in fileset.unions [
in fileset.unions [ ./.version
./meson.build ../../.version
./doxygen.cfg.in ./meson.build
# Source is not compiled, but still must be available for Doxygen ./doxygen.cfg.in
# to gather comments. # Source is not compiled, but still must be available for Doxygen
(cpp ../.) # to gather comments.
]; (cpp ../.)
}; ];
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
@ -37,14 +37,10 @@ stdenv.mkDerivation (finalAttrs: {
doxygen doxygen
]; ];
postUnpack = ''
sourceRoot=$sourceRoot/src/internal-api-docs
'';
preConfigure = preConfigure =
# "Inline" .version so it's not a symlink, and includes the suffix
'' ''
echo ${finalAttrs.version} > .version chmod u+w ./.version
echo ${finalAttrs.version} > ./.version
''; '';
postInstall = '' postInstall = ''

View file

@ -7,6 +7,8 @@
, ninja , ninja
, pkg-config , pkg-config
, openssl
, nix-util , nix-util
, nix-store , nix-store
@ -47,6 +49,7 @@ mkMesonDerivation (finalAttrs: {
propagatedBuildInputs = [ propagatedBuildInputs = [
nix-util nix-util
nix-store nix-store
openssl
]; ];
preConfigure = preConfigure =

View file

@ -1,5 +1,6 @@
{ lib { lib
, stdenv , stdenv
, mkMesonDerivation
, perl , perl
, perlPackages , perlPackages
, meson , meson
@ -8,38 +9,44 @@
, nix-store , nix-store
, darwin , darwin
, versionSuffix ? "" , versionSuffix ? ""
, curl
, bzip2
, libsodium
}: }:
let let
inherit (lib) fileset; inherit (lib) fileset;
in in
perl.pkgs.toPerlModule (stdenv.mkDerivation (finalAttrs: { perl.pkgs.toPerlModule (mkMesonDerivation (finalAttrs: {
pname = "nix-perl"; pname = "nix-perl";
version = lib.fileContents ./.version + versionSuffix; version = lib.fileContents ./.version + versionSuffix;
src = fileset.toSource { workDir = ./.;
root = ./.; fileset = fileset.unions ([
fileset = fileset.unions ([ ./.version
./MANIFEST ../../.version
./lib ./MANIFEST
./meson.build ./lib
./meson.options ./meson.build
] ++ lib.optionals finalAttrs.doCheck [ ./meson.options
./.yath.rc.in ] ++ lib.optionals finalAttrs.doCheck [
./t ./.yath.rc.in
]); ./t
}; ]);
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja
pkg-config pkg-config
perl perl
curl
]; ];
buildInputs = [ buildInputs = [
nix-store nix-store
bzip2
libsodium
]; ];
# `perlPackages.Test2Harness` is marked broken for Darwin # `perlPackages.Test2Harness` is marked broken for Darwin
@ -52,6 +59,7 @@ perl.pkgs.toPerlModule (stdenv.mkDerivation (finalAttrs: {
preConfigure = preConfigure =
# "Inline" .version so its not a symlink, and includes the suffix # "Inline" .version so its not a symlink, and includes the suffix
'' ''
chmod u+w .version
echo ${finalAttrs.version} > .version echo ${finalAttrs.version} > .version
''; '';