Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / fa / fastcdr / package.nix
blob140e67df70e4099cf268e7215fbccc8bfe22b555
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , cmake
5 , gtest
6 , withDocs ? true
7 , doxygen
8 , graphviz-nox
9 }:
11 stdenv.mkDerivation (finalAttrs: {
12   pname = "fastcdr";
13   version = "2.2.2";
15   src = fetchFromGitHub {
16     owner = "eProsima";
17     repo = "Fast-CDR";
18     rev = "v${finalAttrs.version}";
19     hash = "sha256-gNVHG52KSp6CKGU4RWyFHcI3gAp8kjylS80mCjm/DiY=";
20   };
22   patches = [
23     ./0001-Do-not-require-wget-and-unzip.patch
24   ];
26   cmakeFlags = lib.optional (stdenv.hostPlatform.isStatic) "-DBUILD_SHARED_LIBS=OFF"
27   # upstream turns BUILD_TESTING=OFF by default and doesn't honor cmake's default (=ON)
28   ++ lib.optional (finalAttrs.finalPackage.doCheck) "-DBUILD_TESTING=ON"
29   ++ lib.optional withDocs "-DBUILD_DOCUMENTATION=ON";
31   outputs = [ "out" ] ++ lib.optional withDocs "doc";
33   nativeBuildInputs = [
34     cmake
35   ] ++ lib.optionals withDocs [
36     doxygen
37     graphviz-nox
38   ];
40   doCheck = true;
42   checkInputs = [ gtest ];
44   meta = with lib; {
45     homepage = "https://github.com/eProsima/Fast-CDR";
46     description = "Serialization library for OMG's Common Data Representation (CDR)";
47     longDescription = ''
48       A C++ library that provides two serialization mechanisms. One is the
49       standard CDR serialization mechanism, while the other is a faster
50       implementation that modifies the standard.
51     '';
52     license = licenses.asl20;
53     maintainers = with maintainers; [ panicgh ];
54     platforms = platforms.unix;
55   };