39 , spaceNavSupport ? stdenv.isLinux
51 src = fetchFromGitHub {
55 hash = "sha256-itIrO+/mKXOPNs+2POKT8u4YZuqx/QAwVBWrHgKP1qQ=";
67 GitPython # for addon manager
87 pyyaml # (at least for) PyrateWorkbench
99 ] ++ lib.optionals spaceNavSupport [
105 "-DBUILD_FLAT_MESH:BOOL=ON"
107 "-DSHIBOKEN_INCLUDE_DIR=${shiboken2}/include"
108 "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
109 ("-DPYSIDE_INCLUDE_DIR=${pyside2}/include"
110 + ";${pyside2}/include/PySide2/QtCore"
111 + ";${pyside2}/include/PySide2/QtWidgets"
112 + ";${pyside2}/include/PySide2/QtGui"
114 "-DPYSIDE_LIBRARY=PySide2::pyside2"
117 # This should work on both x86_64, and i686 linux
119 export NIX_LDFLAGS="-L${gfortran.cc}/lib64 -L${gfortran.cc}/lib $NIX_LDFLAGS";
122 # Their main() removes PYTHONPATH=, and we rely on it.
124 sed '/putenv("PYTHONPATH/d' -i src/Main/MainGui.cpp
126 qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
130 "--set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1"
134 mv $out/share/doc $out
135 ln -s $out/bin/FreeCAD $out/bin/freecad
136 ln -s $out/bin/FreeCADCmd $out/bin/freecadcmd
140 homepage = "https://www.freecadweb.org/";
141 description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
143 FreeCAD is an open-source parametric 3D modeler made primarily to design
144 real-life objects of any size. Parametric modeling allows you to easily
145 modify your design by going back into your model history and changing its
148 FreeCAD allows you to sketch geometry constrained 2D shapes and use them
149 as a base to build other objects. It contains many components to adjust
150 dimensions or extract design details from 3D models to create high quality
151 production ready drawings.
153 FreeCAD is designed to fit a wide range of uses including product design,
154 mechanical engineering and architecture. Whether you are a hobbyist, a
155 programmer, an experienced CAD user, a student or a teacher, you will feel
156 right at home with FreeCAD.
158 license = licenses.lgpl2Plus;
159 maintainers = with maintainers; [ viric gebner AndersonTorres ];
160 platforms = platforms.linux;