at 24.11-pre 50 lines 1.3 kB view raw
1{ fetchFromGitHub 2, lib, stdenv 3, cmake 4, eigen 5, nlopt 6, ipopt 7, boost 8, tbb 9 # tests pass but take 30+ minutes 10, runTests ? false 11}: 12 13stdenv.mkDerivation rec { 14 pname = "pagmo2"; 15 version = "2.19.0"; 16 17 src = fetchFromGitHub { 18 owner = "esa"; 19 repo = "pagmo2"; 20 rev = "v${version}"; 21 sha256 = "sha256-z5kg2xKZ666EPK844yp+hi4iGisaIPme9xNdzsAEEjw="; 22 }; 23 24 nativeBuildInputs = [ cmake ]; 25 buildInputs = [ eigen nlopt boost tbb ] ++ lib.optional (!stdenv.isDarwin) ipopt; 26 27 cmakeFlags = [ 28 "-DPAGMO_BUILD_TESTS=${if runTests then "ON" else "OFF"}" 29 "-DPAGMO_WITH_EIGEN3=yes" 30 "-DPAGMO_WITH_NLOPT=yes" 31 "-DNLOPT_LIBRARY=${nlopt}/lib/libnlopt${stdenv.hostPlatform.extensions.sharedLibrary}" 32 ] ++ lib.optionals stdenv.isLinux [ 33 "-DPAGMO_WITH_IPOPT=yes" 34 "-DCMAKE_CXX_FLAGS='-fuse-ld=gold'" 35 ] ++ lib.optionals stdenv.isDarwin [ 36 # FIXME: fails ipopt test with Invalid_Option on darwin, so disable. 37 "-DPAGMO_WITH_IPOPT=no" 38 "-DLLVM_USE_LINKER=gold" 39 ]; 40 41 doCheck = runTests; 42 43 meta = with lib; { 44 homepage = "https://esa.github.io/pagmo2/"; 45 description = "Scientific library for massively parallel optimization"; 46 license = licenses.gpl3Plus; 47 platforms = platforms.unix; 48 maintainers = [ maintainers.costrouc ]; 49 }; 50}