diff options
Diffstat (limited to 'gnu/packages/graphics.scm')
-rw-r--r-- | gnu/packages/graphics.scm | 82 |
1 files changed, 59 insertions, 23 deletions
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index a68715abae..697223cfdb 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -61,6 +61,7 @@ #: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 @@ #: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) @@ -747,6 +749,12 @@ many more.") (sha256 (base32 "1nyld18mf220ghm1vidnfnn0rdns9z5i4l9s66xgd0kfdgarb31f")))) (build-system cmake-build-system) + (arguments + ;; XXX: On i686-linux, tests fail due to rounding issues (excess + ;; precision), as was discussed and patched long ago: + ;; <https://issues.guix.gnu.org/22049>. It seems the relevant fixes + ;; didn't make it upstream, so skip tests. + (list #:tests? (not (target-x86-32?)))) (home-page "https://github.com/AcademySoftwareFoundation/Imath") (synopsis "Library of math operations for computer graphics") (description @@ -1175,13 +1183,15 @@ with strong support for multi-part, multi-channel use cases.") #t)) ,@(if (not (target-64bit?)) `((add-after 'change-directory 'disable-broken-test - ;; This test fails on i686. Upstream developers suggest that - ;; this test is broken on i686 and can be safely disabled: - ;; https://github.com/openexr/openexr/issues/67#issuecomment-21169748 (lambda _ (substitute* "IlmImfTest/main.cpp" - ((".*testOptimizedInterleavePatterns.*") "")) - #t))) + ;; This test fails on i686. Upstream developers suggest + ;; that this test is broken on i686 and can be safely + ;; disabled: + ;; https://github.com/openexr/openexr/issues/67#issuecomment-21169748 + ((".*testOptimizedInterleavePatterns.*") "") + ;; This one fails similarly on i686. + ((".*testCompression.*") ""))))) '())))) (native-inputs (list pkg-config)) @@ -2299,11 +2309,14 @@ a tetrahedral mesh, isovalue discretization and Lagrangian movement; ;; 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) @@ -2312,29 +2325,52 @@ a tetrahedral mesh, isovalue discretization and Lagrangian movement; (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 <cxxopts.hpp>") + (("^#include \"json\\.hpp\"") + "#include <nlohmann/json.hpp>")))))) (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 @@ -2357,10 +2393,10 @@ a tetrahedral mesh, isovalue discretization and Lagrangian movement; 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)))) |