127 lines
3.2 KiB
Nix
127 lines
3.2 KiB
Nix
{
|
|
boost,
|
|
cmake,
|
|
darwin,
|
|
doxygen,
|
|
fetchFromGitHub,
|
|
fontconfig,
|
|
lib,
|
|
jrl-cmakemodules,
|
|
libsForQt5,
|
|
makeWrapper,
|
|
openscenegraph,
|
|
osgqt,
|
|
pkg-config,
|
|
python3Packages,
|
|
qgv,
|
|
stdenv,
|
|
runCommand,
|
|
}:
|
|
let
|
|
gepetto-viewer = stdenv.mkDerivation (finalAttrs: {
|
|
pname = "gepetto-viewer";
|
|
version = "5.2.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "gepetto";
|
|
repo = "gepetto-viewer";
|
|
rev = "v${finalAttrs.version}";
|
|
hash = "sha256-kAQPi7bO48H0CZKz1bxfkvMiNy8RsXvRvpDK0KF7XLM=";
|
|
};
|
|
|
|
cmakeFlags = [
|
|
(lib.cmakeBool "BUILD_PY_QCUSTOM_PLOT" (!stdenv.hostPlatform.isDarwin))
|
|
(lib.cmakeBool "BUILD_PY_QGV" (!stdenv.hostPlatform.isDarwin))
|
|
];
|
|
|
|
outputs = [
|
|
"out"
|
|
"dev"
|
|
"bin"
|
|
"doc"
|
|
];
|
|
|
|
buildInputs = [
|
|
python3Packages.boost
|
|
python3Packages.python-qt
|
|
libsForQt5.qtbase
|
|
];
|
|
|
|
nativeBuildInputs =
|
|
[
|
|
cmake
|
|
doxygen
|
|
libsForQt5.wrapQtAppsHook
|
|
pkg-config
|
|
python3Packages.python
|
|
]
|
|
++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
|
|
darwin.autoSignDarwinBinariesHook
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
jrl-cmakemodules
|
|
openscenegraph
|
|
osgqt
|
|
qgv
|
|
];
|
|
|
|
doCheck = true;
|
|
|
|
# wrapQtAppsHook uses isMachO, which fails to detect binaries without this
|
|
# ref. https://github.com/NixOS/nixpkgs/pull/138334
|
|
preFixup = lib.optionalString stdenv.hostPlatform.isDarwin "export LC_ALL=C";
|
|
|
|
postFixup = ''
|
|
# CMake is not aware exports are in $dev
|
|
substituteInPlace $dev/lib/cmake/gepetto-viewer/gepetto-viewerConfig.cmake --replace-fail \
|
|
"$out/lib/cmake" \
|
|
"$dev/lib/cmake"
|
|
|
|
# wrapQtAppsHook does only wrap stuff in $out, we want $bin
|
|
echo wrapping $bin/bin/gepetto-gui
|
|
wrapQtApp $bin/bin/gepetto-gui
|
|
'';
|
|
|
|
# Fontconfig error: Cannot load default config file: No such file: (null)
|
|
env.FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf";
|
|
|
|
# Fontconfig error: No writable cache directories
|
|
preBuild = "export XDG_CACHE_HOME=$(mktemp -d)";
|
|
|
|
passthru.withPlugins =
|
|
plugins:
|
|
runCommand "gepetto-gui"
|
|
{
|
|
meta = {
|
|
# can't just "inherit (gepetto-viewer) meta;" because:
|
|
# error: derivation '/nix/store/…-gepetto-gui.drv' does not have wanted outputs 'bin'
|
|
inherit (gepetto-viewer.meta)
|
|
description
|
|
homepage
|
|
license
|
|
maintainers
|
|
mainProgram
|
|
platforms
|
|
;
|
|
};
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
propagatedBuildInputs = plugins;
|
|
}
|
|
''
|
|
makeWrapper ${lib.getExe gepetto-viewer} $out/bin/gepetto-gui \
|
|
--set GEPETTO_GUI_PLUGIN_DIRS ${lib.makeLibraryPath plugins}
|
|
'';
|
|
|
|
meta = {
|
|
description = "Graphical Interface for Pinocchio and HPP.";
|
|
homepage = "https://github.com/gepetto/gepetto-viewer";
|
|
license = lib.licenses.lgpl3Only;
|
|
maintainers = [ lib.maintainers.nim65s ];
|
|
mainProgram = "gepetto-gui";
|
|
platforms = lib.platforms.unix;
|
|
};
|
|
});
|
|
in
|
|
gepetto-viewer
|