depot/third_party/nixpkgs/pkgs/by-name/lu/lutok/package.nix
Default email 159e378cbb Project import generated by Copybara.
GitOrigin-RevId: c04d5652cfa9742b1d519688f65d1bbccea9eb7e
2024-09-19 17:19:46 +03:00

87 lines
2.1 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
lib,
stdenv,
fetchFromGitHub,
atf,
autoreconfHook,
kyua,
lua,
pkg-config,
gitUpdater,
}:
lib.fix (
drv:
let
# Avoid infinite recursions:
# - Lutok depends on ATF and Kyua for testing; but
# - ATF depends on Kyua for testing, and Kyua depends on Lutok as a build input.
# To break the cycle (ATF -> Kyua -> Lutok -> ATF and Kyua):
# - Build ATF without testing (avoiding the Kyua dependency); and
# - Build Kyua against a version of Lutok without testing (also avoiding the ATF and Kyua dependencies).
atf' = atf.overrideAttrs (_: {
doInstallCheck = false;
});
kyua' =
(kyua.override {
lutok = drv.overrideAttrs (_: {
doCheck = false;
});
}).overrideAttrs
(_: {
# Assume Kyuas install check phase will run when Kyua is built. Dont run it again
# while building Lutok because it can take four to five minutes to run.
doInstallCheck = false;
});
in
stdenv.mkDerivation (finalAttrs: {
pname = "lutok";
version = "0.4";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "freebsd";
repo = "lutok";
rev = "lutok-${finalAttrs.version}";
hash = "sha256-awAFxx9q8dZ6JO1/mShjhJnOPTLn1wCT4VrB4rlgWyg=";
};
strictDeps = true;
propagatedBuildInputs = [ lua ];
nativeBuildInputs = [
atf'
autoreconfHook
pkg-config
];
enableParallelBuilding = true;
makeFlags = [
# Lutok isnt compatible with C++17, which is the default on current clang and GCC.
"CXXFLAGS=-std=c++11"
];
doCheck = true;
checkInputs = [ atf' ];
nativeCheckInputs = [ kyua' ];
passthru.updateScript = gitUpdater { rev-prefix = "lutok-"; };
__structuredAttrs = true;
meta = {
description = "Lightweight C++ API for Lua";
homepage = "https://github.com/freebsd/lutok/";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ reckenrode ];
platforms = lib.platforms.unix;
};
})
)