diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 3f6e7d64a5..7adab4a9bf 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -61,6 +61,7 @@ (define-module (gnu packages graphics) #:use-module (gnu packages cdrom) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages crypto) #:use-module (gnu packages datastructures) #:use-module (gnu packages documentation) @@ -88,6 +89,7 @@ (define-module (gnu packages graphics) #:use-module (gnu packages logging) #:use-module (gnu packages llvm) #:use-module (gnu packages lua) + #:use-module (gnu packages man) #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages multiprecision) @@ -2307,11 +2309,14 @@ (define-public f3d ;; There have been many improvements since the last tagged version (1.2.1, ;; released in December 2021), including support for the Alembic file ;; format. - (let ((commit "9cc79b65ed750b178f58012dbba091aa24722dab") + (let ((commit "46df21fe9409349917af5e6f7d1cb931f4c68e59") (revision "0")) (package (name "f3d") - (version (git-version "1.2.1" revision commit)) + ;; F3D has not actually been tagged as 1.3.0-pre, but upstream commit + ;; 401d4d27b2094568378c07f400fbad48b7af3168 updated the version string + ;; to 1.3.0. + (version (git-version "1.3.0-pre" revision commit)) (source (origin (method git-fetch) @@ -2320,29 +2325,52 @@ (define-public f3d (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "041gqi2wfny2br4j68vhifg0bd18kbl0qsaallkz7yywk47njxfi")))) + (base32 "0x0jw9vqf1b8pxh84xpr47hzcjynk07dp8q7r2xihh9cd00kglp1")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file "application/cxxopts.hpp") + (delete-file "application/json.hpp") + (substitute* "application/F3DOptionsParser.cxx" + (("^#include \"cxxopts\\.hpp\"") + "#include ") + (("^#include \"json\\.hpp\"") + "#include ")))))) (build-system cmake-build-system) + ;; The package cannot easily be split into out and lib outputs because + ;; VTK's vtkModule.cmake complains, and also the CMake files in + ;; /lib/cmake/f3d expect the f3d executable and library to be available, + ;; as they set up targets for both of them. (arguments (list ;; Many tests require files supplied by git-lfs. ;; Also, some tests segfault (after an exception?) but the tested ;; behavior, i.e., when the program is run manually, does not (for ;; example, TestNonExistentConfigFile and TestInvalidConfigFile). - ;; Upstream is aware of occasionally flaky tests (see - ;; https://github.com/f3d-app/f3d/issues/92) but the tests run in CI - ;; seem to be passing. + ;; Upstream is aware of occasionally flaky tests [1], but the tests + ;; run in CI seem to be passing. ;; Anyway, the program runs and is able to open at least STL files ;; without issue. + ;; + ;; [1]: https://github.com/f3d-app/f3d/issues/92 #:tests? #f #:configure-flags - #~(list "-DBUILD_TESTING=OFF" + #~(list (string-append "-DCMAKE_INSTALL_DOCDIR=" #$output + "/share/doc/" #$name "-" #$version) + "-DBUILD_TESTING=OFF" + "-DF3D_GENERATE_MAN=ON" + "-DF3D_INSTALL_DEFAULT_CONFIGURATION_FILE=ON" + "-DF3D_INSTALL_DEFAULT_CONFIGURATION_FILE_IN_PREFIX=ON" + "-DF3D_INSTALL_MIME_TYPES_FILE=ON" + "-DF3D_INSTALL_THUMBNAILER_FILES=ON" "-DF3D_MODULE_ALEMBIC=ON" "-DF3D_MODULE_ASSIMP=ON" - "-DF3D_MODULE_OCCT=ON" - ;; Prefer Guix's versioned documentation directory to F3D's - ;; unversioned one. - (string-append "-DCMAKE_INSTALL_DOCDIR=" #$output - "/share/doc/" #$name "-" #$version)))) + "-DF3D_MODULE_EXTERNAL_RENDERING=ON" + "-DF3D_MODULE_OCCT=ON"))) + (native-inputs + (list cxxopts + help2man + json-modern-cxx)) (inputs (list alembic assimp @@ -2365,10 +2393,10 @@ (define-public f3d vtk zlib)) (home-page "https://f3d-app.github.io/f3d/") - (synopsis "VTK based 3D viewer") - (description "F3D (pronounced @samp{/fɛd/}) is a VTK-based 3D viewer, it -has simple interaction mechanisms and is fully controllable using arguments on -the command line. It supports a range of file formats (including animated -glTF, STL, STEP, PLY, OBJ, FBX), and provides numerous rendering and texturing -options.") + (synopsis "VTK-based 3D viewer") + (description "F3D (pronounced @samp{/fɛd/}) is a VTK-based 3D viewer +with simple interaction mechanisms and which is fully controllable using +arguments on the command line. It supports a range of file formats (including +animated glTF, STL, STEP, PLY, OBJ, FBX), and provides numerous rendering and +texturing options.") (license license:bsd-3))))