nixpkgs/pkgs/applications/science/misc/openmvs/default.nix

63 lines
1.9 KiB
Nix

{ stdenv, fetchFromGitHub, pkgconfig, cmake
, eigen, opencv, ceres-solver, cgal, boost, vcg
, gmp, mpfr, glog, google-gflags, libjpeg_turbo }:
stdenv.mkDerivation rec {
name = "openmvs-unstable-2018-05-26";
src = fetchFromGitHub {
owner = "cdcseacave";
repo = "openmvs";
rev = "939033c55b50478339084431aac2c2318041afad";
sha256 = "12dgkwwfdp24581y3i41gsd1k9hq0aw917q0ja5s0if4qbmc8pni";
};
buildInputs = [ eigen opencv ceres-solver cgal boost vcg gmp mpfr glog google-gflags libjpeg_turbo ];
nativeBuildInputs = [ cmake pkgconfig ];
preConfigure = ''
cmakeFlagsArray=(
$cmakeFlagsArray
"-DCMAKE_CXX_FLAGS=-std=c++11"
"-DBUILD_SHARED_LIBS=ON"
"-DBUILD_STATIC_RUNTIME=ON"
"-DINSTALL_BIN_DIR=$out/bin"
"-DVCG_DIR=${vcg}"
"-DCGAL_ROOT=${cgal}/lib/cmake/CGAL"
"-DCERES_DIR=${ceres-solver}/lib/cmake/Ceres/"
)
'';
postFixup = ''
rp=$(patchelf --print-rpath $out/bin/DensifyPointCloud)
patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/DensifyPointCloud
rp=$(patchelf --print-rpath $out/bin/InterfaceVisualSFM)
patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/InterfaceVisualSFM
rp=$(patchelf --print-rpath $out/bin/ReconstructMesh)
patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/ReconstructMesh
rp=$(patchelf --print-rpath $out/bin/RefineMesh)
patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/RefineMesh
rp=$(patchelf --print-rpath $out/bin/TextureMesh)
patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/TextureMesh
'';
cmakeDir = "./";
dontUseCmakeBuildDir = true;
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "A library for computer-vision scientists and especially targeted to the Multi-View Stereo reconstruction community";
homepage = http://cdcseacave.github.io/openMVS/;
license = licenses.agpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ mdaiter ];
};
}