Martin Weinelt ae4a1a485a
treewide: add explicit format attribute for Python packages
If a Python package does not come with either `format` or `pyproject` we
consider it a setuptools build, that calls `setup.py` directly, which is
deprecated.

This change, as a first step, migrates a large chunk of these packages to
set setuptools as their explicit format

This is so we can unify the problem space for the next step of the
migration.
2025-07-02 05:56:47 +02:00

55 lines
1.1 KiB
Nix

{
lib,
buildPythonApplication,
fetchFromGitHub,
ply,
}:
buildPythonApplication rec {
pname = "cxxtest";
version = "4.4";
format = "setuptools";
src = fetchFromGitHub {
owner = "CxxTest";
repo = pname;
rev = version;
sha256 = "19w92kipfhp5wvs47l0qpibn3x49sbmvkk91yxw6nwk6fafcdl17";
};
sourceRoot = "${src.name}/python";
nativeCheckInputs = [ ply ];
preCheck = ''
cd ../
'';
postCheck = ''
cd python3
python scripts/cxxtestgen --error-printer -o build/GoodSuite.cpp ../../test/GoodSuite.h
$CXX -I../../ -o build/GoodSuite build/GoodSuite.cpp
build/GoodSuite
'';
preInstall = ''
cd python3
'';
postInstall = ''
mkdir -p "$out/include"
cp -r ../../cxxtest "$out/include"
'';
dontWrapPythonPrograms = true;
meta = with lib; {
homepage = "https://github.com/CxxTest/cxxtest";
description = "Unit testing framework for C++";
mainProgram = "cxxtestgen";
license = licenses.lgpl3;
platforms = platforms.unix;
maintainers = with maintainers; [ juliendehos ];
};
}