lol
1{ lib
2, stdenv
3, fetchFromGitHub
4, pkg-config
5, blas
6, lapack
7, gfortran
8, enableAMPL ? true, libamplsolver
9}:
10
11assert (!blas.isILP64) && (!lapack.isILP64);
12
13stdenv.mkDerivation rec {
14 pname = "ipopt";
15 version = "3.14.16";
16
17 src = fetchFromGitHub {
18 owner = "coin-or";
19 repo = "Ipopt";
20 rev = "releases/${version}";
21 sha256 = "sha256-ZuiZZMq7NzOm6CCJgMBgEWs8PEfM3pVr2yOWbS42l8U=";
22 };
23
24 CXXDEFS = [ "-DHAVE_RAND" "-DHAVE_CSTRING" "-DHAVE_CSTDIO" ];
25
26 configureFlags = [
27 "--with-asl-cflags=-I${libamplsolver}/include"
28 "--with-asl-lflags=-lamplsolver"
29 ];
30
31 nativeBuildInputs = [ pkg-config gfortran ];
32 buildInputs = [ blas lapack ] ++ lib.optionals enableAMPL [ libamplsolver ];
33
34 enableParallelBuilding = true;
35
36 meta = with lib; {
37 description = "A software package for large-scale nonlinear optimization";
38 homepage = "https://projects.coin-or.org/Ipopt";
39 license = licenses.epl10;
40 platforms = platforms.unix;
41 maintainers = with maintainers; [ abbradar ];
42 };
43}