[bug#36440] Add FreeCAD
diff mbox series

Message ID CAKf5CqV+zh2-zsnEBqLxB-_E6M+P2gK9LYQv=xVzbfPFWyLf7g@mail.gmail.com
State New
Headers show
Series
  • [bug#36440] Add FreeCAD
Related show

Commit Message

John Soo Sept. 4, 2019, 5:44 a.m. UTC
Hi Paul and everyone,

I added libxmu and libxi as inputs and that gets progress. I am not sure
whether we want to propagate them from opencascade-occt though. I can see
either way working well.

Now there is this error when building:

/tmp/guix-build-freecad-0.18.3.drv-0/source/src/Mod/Import/App/ImportOCAF.cpp:100:30:
fatal error: tbb/parallel_for.h: No such file or directory compilation
terminated.
make[2]: *** [src/Mod/Import/App/CMakeFiles/Import.dir/build.make:114:
src/Mod/Import/App/CMakeFiles/Import.dir/ImportOCAF.cpp.o] Error 1

Thanks again,

John


On Tue, Sep 3, 2019 at 7:45 PM Paul Garlick <
pgarlick@tourbillion-technology.com> wrote:

> Hi John,
>
> > Switching to opencascade-occt does not build. It fails with `ld:
> > cannot find -lXmu` when building the PartDesigner module.
>
> libxmu is one of the opencascade-occt dependencies.  It might make
> sense to propagate this input in the opencascade-occt package
> definition.
>
> Could you test whether FreeCAD builds successfully with a libxmu input?
> There may be other dependencies that need to be propagated too.
>
> Best regards,
>
> Paul.
>
>

Comments

John Soo Sept. 4, 2019, 5:47 a.m. UTC | #1
Oh wait, that's tbb, i will try with tbb as an input and report back.

On Wed, Sep 4, 2019 at 5:44 AM John Soo <jsoo1@asu.edu> wrote:

> Hi Paul and everyone,
>
> I added libxmu and libxi as inputs and that gets progress. I am not sure
> whether we want to propagate them from opencascade-occt though. I can see
> either way working well.
>
> Now there is this error when building:
>
>
> /tmp/guix-build-freecad-0.18.3.drv-0/source/src/Mod/Import/App/ImportOCAF.cpp:100:30:
> fatal error: tbb/parallel_for.h: No such file or directory compilation
> terminated.
> make[2]: *** [src/Mod/Import/App/CMakeFiles/Import.dir/build.make:114:
> src/Mod/Import/App/CMakeFiles/Import.dir/ImportOCAF.cpp.o] Error 1
>
> Thanks again,
>
> John
>
>
> On Tue, Sep 3, 2019 at 7:45 PM Paul Garlick <
> pgarlick@tourbillion-technology.com> wrote:
>
>> Hi John,
>>
>> > Switching to opencascade-occt does not build. It fails with `ld:
>> > cannot find -lXmu` when building the PartDesigner module.
>>
>> libxmu is one of the opencascade-occt dependencies.  It might make
>> sense to propagate this input in the opencascade-occt package
>> definition.
>>
>> Could you test whether FreeCAD builds successfully with a libxmu input?
>> There may be other dependencies that need to be propagated too.
>>
>> Best regards,
>>
>> Paul.
>>
>>

Patch
diff mbox series

From 5196710f4fcec44fa93ea1f061dc6057b7bdc0a7 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 7 Jul 2019 10:32:10 -0700
Subject: [PATCH 10/10] gnu: Add freecad.

* gnu/packages/engineering.scm (freecad): New variable.
---
 gnu/packages/engineering.scm | 86 ++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 5dd50cef3a..627ce5e22c 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -55,6 +55,7 @@ 
   #:use-module (gnu packages commencement)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages fpga)
@@ -67,10 +68,13 @@ 
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphics)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages linux)               ;FIXME: for pcb
   #:use-module (gnu packages m4)
@@ -91,6 +95,7 @@ 
   #:use-module (gnu packages tex)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages wxwidgets)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
 (define-public librecad
@@ -2148,6 +2153,87 @@  specification can be downloaded at @url{http://3mf.io/specification/}.")
     (home-page "https://3mf.io/")
     (license license:bsd-2)))
 
+(define-public freecad
+  (package
+    (name "freecad")
+    (version "0.18.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/FreeCAD/FreeCAD.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1ny29y0h8smg1bwi5yn4kcnyfprqh3v7v2z8837cmmhcwp8dr95m"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("graphviz" ,graphviz)
+       ("qttools" ,qttools)
+       ("pkg-config" ,pkg-config)
+       ("swig" ,swig)))
+    (inputs
+     `(("boost" ,boost)
+       ("coin3D" ,coin3D)
+       ("eigen" ,eigen)
+       ("freetype" ,freetype)
+       ("glew" ,glew)
+       ("hdf5" ,hdf5-1.10)
+       ("libarea" ,libarea)
+       ("libmedfile" ,libmedfile)
+       ("libspnav" ,libspnav)
+       ("libxi" ,libxi)
+       ("libxmu" ,libxmu)
+       ("openmpi" ,openmpi)
+       ("opencascade-occt" ,opencascade-occt)
+       ("python-matplotlib" ,python-matplotlib)
+       ("python-pyside-2" ,python-pyside-2)
+       ("python-pyside-2-tools" ,python-pyside-2-tools)
+       ("python-shiboken-2" ,python-shiboken-2)
+       ("python-wrapper" ,python-wrapper)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
+       ("qtx11extras" ,qtx11extras)
+       ("qtxmlpatterns" ,qtxmlpatterns)
+       ("qtwebkit" ,qtwebkit)
+       ("vtk" ,vtk)
+       ("xerces-c" ,xerces-c)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:tests? #f
+       #:configure-flags
+       (list
+        "-DBUILD_QT5=ON"
+        (string-append "-DCMAKE_INSTALL_LIBDIR="
+                       (assoc-ref %outputs "out") "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'restore-pythonpath
+           (lambda _
+             (substitute* "src/Main/MainGui.cpp"
+               (("_?putenv\\(\"PYTHONPATH=\"\\);") ""))
+             #t))
+         (add-after 'install 'wrap-pythonpath
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/FreeCAD")
+                 (list "PYTHONPATH"
+                       'prefix (list (getenv "PYTHONPATH")))))
+             #t)))))
+    (home-page "https://www.freecadweb.org/")
+    (synopsis "Your Own 3D Parametric Modeler")
+    (description
+     "FreeCAD is a general purpose feature-based, parametric 3D modeler for
+CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and
+product design but also fits a wider range of uses in engineering, such as
+architecture or other engineering specialties.  It is 100% Open Source (LGPL2+
+license) and extremely modular, allowing for very advanced extension and
+customization.")
+    ;; Help!
+    (license license:lgpl2.1+)))
+
 (define-public libmedfile
   (package
     (name "libmedfile")
-- 
2.23.0