nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 fetchpatch2,
6 cmake,
7 gmp,
8 flint,
9 mpfr,
10 libmpc,
11 withShared ? !stdenv.hostPlatform.isStatic,
12}:
13
14stdenv.mkDerivation (finalAttrs: {
15 pname = "symengine";
16 version = "0.14.0";
17
18 src = fetchFromGitHub {
19 owner = "symengine";
20 repo = "symengine";
21 rev = "v${finalAttrs.version}";
22 hash = "sha256-WriVcYt3fkObR2U4J6a4KGGc2HgyyFyFpdrwxBD+AHA=";
23 };
24
25 outputs = [
26 "out"
27 "dev"
28 ];
29
30 # upgrade supported cmake version in SymEngineConfig.cmake
31 patches = [
32 (fetchpatch2 {
33 url = "https://github.com/symengine/symengine/commit/c149b874b8ff947e51e8e58670a0d37daf588f86.patch?full_index=1";
34 hash = "sha256-LqkJRPdsbE8OE8G6AkpWX9B+GqnOQjUNPHpKKIcCL3Q=";
35 })
36 (fetchpatch2 {
37 url = "https://github.com/symengine/symengine/commit/186f72e208220efd12362c336a49378076f63f30.patch?full_index=1";
38 hash = "sha256-CuQra9K3MTxm8M0bt3LooJz9HgW0/Jy6ydRBCvEgkO4=";
39 })
40 ];
41
42 nativeBuildInputs = [ cmake ];
43
44 buildInputs = [
45 gmp
46 flint
47 mpfr
48 libmpc
49 ];
50
51 cmakeFlags = [
52 (lib.cmakeBool "WITH_FLINT" true)
53 (lib.cmakeFeature "INTEGER_CLASS" "flint")
54 (lib.cmakeBool "WITH_SYMENGINE_THREAD_SAFE" true)
55 (lib.cmakeBool "WITH_MPC" true)
56 (lib.cmakeBool "BUILD_FOR_DISTRIBUTION" true)
57 (lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck)
58 (lib.cmakeBool "BUILD_SHARED_LIBS" withShared)
59 ];
60
61 doCheck = true;
62
63 meta = {
64 description = "Fast symbolic manipulation library";
65 homepage = "https://github.com/symengine/symengine";
66 platforms = with lib.platforms; unix ++ windows;
67 license = lib.licenses.bsd3;
68 maintainers = with lib.maintainers; [ costrouc ];
69 };
70})