writeCppScriptBin

This commit is contained in:
Aleksandr Lebedev 2025-08-11 19:26:27 +02:00
parent b09bddc403
commit 3d5d222c1d
2 changed files with 144 additions and 62 deletions

View file

@ -0,0 +1,36 @@
{
stdenv,
gcc,
writeText,
lib,
...
}:
with lib;
{
name,
code,
buildInputs ? [],
cxxFlags ? "-std=c++23 -O2 -Wall",
}:
stdenv.mkDerivation {
pname = name;
version = "1.0";
src = writeText "${name}.cpp" code;
inherit buildInputs;
nativeBuildInputs = [gcc];
buildPhase = ''
mkdir -p build
$CXX ${cxxFlags} -o ${name} $src \
${concatStringsSep " " (map (lib: "-I${lib}/include") buildInputs)} \
${concatStringsSep " " (map (lib: "-L${lib}/lib") buildInputs)} \
${concatStringsSep " " (map (lib: "-l" + builtins.baseNameOf lib) buildInputs)}
'';
dontUnpack = true;
installPhase = ''
mkdir -p $out/bin
cp ${name} $out/bin/
'';
}