Compile on MacOS

From FreeCAD Documentation
Revision as of 02:45, 27 August 2009 by Lhagan (talk | contribs)

Compiling FreeCAD on a Mac isn't much different from the steps on Linux or other UNIX variants. The biggest challenge is really getting all of the dependencies installed. In the following sections, I (lhagan) will detail the exact steps I had to go through to get this application to compile on Leopard using an Intel Mac (PowerPC should be feasible, but requires recompiling some binary libraries that I haven't got to yet). As far as I know, I'm the only one to successfully build FreeCAD on a Mac recently, so please post on the discussion forum if these steps work for you, on the help forum if they don't, or edit this page if you find errors.

And in case you were wondering, FreeCAD does not use X11 (like the GIMP does, for example) thanks to Qt4.5's support for the 'native' OS X interface. Not that I have anything against X11, it's a nice tool, but I'd much rather work in something more consistent with OS X if at all possible. Qt seems to do a nice job while maintaining full interface portability to Windows and Linux.

Download the FreeCAD sources

First you need to get a copy of the FreeCAD source tree. Just check out the latest revision from the Sourceforge subversion repository using this command in the terminal:

svn co https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk freecad

This will put the FreeCAD source and related files in your home folder (~/freecad/). Location is not important if you'd rather put it somewhere else, you just need full access to the files.

Install MacPorts and Library Dependencies

Next, if you don't already have it, install MacPorts. MacPorts is a system that allows you to download, compile, and install many common open-source applications with a single command. Similar applications from the UNIX/Linux world are PKGSRC and APT. To install, just download the disk image from the MacPorts site and follow the directions:

http://www.macports.org/install.php

Whether or not you just installed MacPorts, you'll probably want to make sure it's up to date. Run:

sudo port selfupdate

Now that MacPorts is installed and up to date, you can start installing some of FreeCAD's required packages:

  • ode
  • xercesc
  • boost
  • gts
  • opencv

The following command will compile/install all required libraries. If MacPorts produces errors, you may want to try installing them one at a time.

sudo port install ode xercesc boost gts opencv

Install Frameworks and OpenCASCADE

FreeCAD has other dependencies (see CompileOnUNIX), but the rest are either included by default in OS X Leopard or can be installed using Installer packages. Download and install the following:

Get the "Framework Only" version unless you plan to develop using Qt (it's much smaller). FreeCAD compiles on OS X Leopard with Qt 4.5. Installs in /Library/Frameworks and /usr/bin.
Install Coin.pkg AND CoinTools.pkg. FreeCAD compiles on OS X Leopard with Coin 3.1.0. Installs in /Library/Frameworks.
Install SoQt.pkg AND SoQtTools.pkg. For some reason, the SoQt framework is not provided as an official binary. For convenience, I'm providing the above compiled version. If you'd like to compile your own, download the latest source from http://www.coin3d.org/lib/soqt/releases and follow the directions in README.MACOSX. FreeCAD compiles on OS X Leopard with SoQt 1.4.1. Installs in /Library/Frameworks.
The above OCC 6.3.0 binary distribution is a modified version of the one provided by the maintainers of PythonOCC http://www.pythonocc.org/. You can use the version from PythonOCC, however changes to the .la files are needed in order for the FreeCAD build process to properly link to it and you'll need to download the OCC source separately. I have not yet successfully built OpenCASCADE myself, but would like to eventually -- this would be key to providing a PowerPC distribution (if that's even possible). If you get OpenCASCADE to build on OS X, let me know how. Installs in /usr/local/lib/OCC and /usr/local/include/OCC.

Download and 'install' the FreeCAD.app template

The following archive contains an application bundle template for FreeCAD. This is not strictly necessary, but it makes working with FreeCAD more convenient than the default installation configuration. Mine is in the /Applications folder, but you should be able to put it anywhere you want. Running make install using the configuration below will install into this bundle.

http://files.me.com/l.hagan/pvm1te

Compile

Now configure, compile, and install FreeCAD using the following commands from within the root FreeCAD folder. If you put your FreeCAD.app bundle somewhere other than /Applications (or aren't using the bundle), change the 'PREFIX' line accordingly.

./autogen.sh
	
PREFIX=/Applications/FreeCAD.app/Contents
	
./configure --with-boost-lib=/opt/local/lib --with-boost-include=/opt/local/include --with-qt4-bin=/usr/bin \
--with-qt4-framework=/Library/Frameworks --with-occ-lib=/usr/local/lib/OCC --with-occ-include=/usr/local/include/OCC \
--with-coin=/Library/Frameworks --with-soqt=/Library/Frameworks --prefix=$PREFIX --bindir=$PREFIX/MacOS \
--libdir=$PREFIX/Frameworks/FreeCAD --includedir=$PREFIX/Resources/include --datarootdir=$PREFIX/Resources/share
	
make LDFLAGS=-Wl,-headerpad_max_install_names
	
make install

Depending on your machine, the make step can take quite a while.

Run

If everything went properly, double-clicking the .app bundle should start FreeCAD. If you have any issues, post the details on the help forum.