CompileOnMac

From FreeCAD Documentation
Revision as of 17:42, 8 November 2014 by Renatorivo (talk | contribs) (Created page with "=== Kompilera === Konfigurera, kompilera, och installera nu FreeCAD genom att använda följande kommandon inifrån FreeCAD's rotmapp. Om du lägger din FreeCAD.app bunt på ...")

Att kompilera FreeCAD på en Mac skiljer sig inte så mycket från stegen i Linux eller andra UNIX varianter. Den största utmaningen är att verkligen få alla beroenden installerade. I de följande avsnitten, kommer Jag (lhagan) att beskriva exakt de stegen som jag fick gå igenom för att få denna applikation att kompileras på Leopard och Snow Leopard med en Intel Mac (PowerPC borde vara möjligt, men kräver omkompilering av några binära bibliotek som jag inte hunnit än). Såvitt jag vet, så är jag den enda som har lyckats bygga FreeCAD på en Mac nyligen, så var snäll och posta på discussion forum om dessa steg fungerar för dig, påhelp forum om de inte fungerar, eller redigera denna sidan om du hittar fel.

Ladda ned FreeCAD källkoden

Först så behöver du en kopia av FreeCAD's källkodsträd. Kolla den senaste revisionen från Sourceforge subversion programförråd genom att använda detta kommandot i terminalen:

Git

The quickest and best way to get the code is to clone the read-only git repository (you need the git package installed):

git clone git://free-cad.git.sourceforge.net/gitroot/free-cad/free-cad freecad

This will place a copy of the latest version of the FreeCAD source code in a new directory called "freecad". The first time you try connecting to the free-cad.git.sourceforge.net host, you will receive a message asking to authenticate the sourceforge SSH key, which is normally safe to accept (you can check their SSH keys on the sourceforge website if you are not sure)

Github

There is an always up to date FreeCAD repository on Gihub: github.com/FreeCAD/FreeCAD_sf_master

Source package

Alternatively you can download a source package, but they could be already quite old so it's always better to get the latest sources. Depending on your distribution, there are several ways to obtain a source package:

Official FreeCAD source packages (distribution-independent): https://sourceforge.net/projects/free-cad/files/FreeCAD%20Source/

Debian: http://packages.debian.org/source/sid/freecad

Ubuntu: http://packages.ubuntu.com/source/precise/freecad

Install Dependencies

On Mac OS X 10.7, the following dependencies are NOT bundled with the operating and thus must be installed before building FreeCAD:

  • sip
  • fortran
  • xerces-c
  • boost
  • eigen
  • ftgl
  • coin3d
  • OpenCASCADE
  • Qt
  • pyqt
  • soqt

Option 1: Homebrew

Note: this section is still a work in progress! See the help forum post for the latest.

https://forum.freecadweb.org/viewtopic.php?f=4&t=2064&p=15405

Download and install the package manager Homebrew:

http://mxcl.github.com/homebrew/

Then compile and install most of FreeCAD's dependencies:

brew install sip gfortran xerces-c boost eigen coin qt pyqt soqt ftgl

Go on to CompileOnMac#Build OpenCASCADE.

Option 2: MacPorts/Fink

Note: this section is in need of updates.

Sedan, om du inte redan har gjort det, installera MacPorts. MacPorts är ett system som tillåter dig att ladda ned, kompilera, och installera många vanliga öppen-källkodsapplikationer med ett enda kommando. Liknanade applikationer från UNIX/Linux världen är PKGSRC och APT. För att installera, ladda bara ned diskavbildningen från MacPorts sajten och följ anvisningarna:

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

Antingen eller om du just installerade MacPorts, så vill du förmodligen försäkra dig om att den är uppdaterad. Kör:

sudo port selfupdate

Nu när MacPorts är installerad och uppdaterad, så kan du börja att installera några av FreeCAD's nödvändiga paket:

  • xercesc
  • boost
  • py-sip
  • ftlg
  • f2c
  • eigen3
  • py-pyqt4
  • Coin

Följande kommando kommer att kompilera/installera alla nödvändiga bibliotek. Om MacPorts producerar fel, såkanske du kan prova att installera dem en åt gången.

sudo port install xercesc boost ftgl f2c eigen3 py-sip py-pyqt4 Coin

Note that for python packages like py-sip and py-pyqt4, there are multiple packages, one for each MacPorts version of Python.

Note that boost is a large package, and py-pyqt4 depends on qt4-mac, which is a large package. You may want to run port -v install so that you have more of an idea what's going on during these long builds.

Qt4 is also available for Mac as a binary installer from the Qt web site. I'm not sure how nicely this approach plays with FreeCAD compiling.

It is also possible to choose the version of the gcc compiler to use, some recent versions might sometimes cause problems:

sudo port -v install gcc_select
sudo port select --list gcc
sudo port select --set gcc mp-gcc46

Install Fortran Compiler

You also need a FORTRAN compiler. Apple's fork of gcc on OSX does not come with FORTRAN.

An installer for GFortran can be found here, and will do the trick: http://gcc.gnu.org/wiki/GFortranBinaries#MacOS If you are using fink, another method is to use the following commands (attempted by Shaneyfelt 2100.Nov.14)

sudo fink selfupdate
sudo fink install gcc46

This installs another gcc compiler collection with the name gcc-4 to avoid a name conflict with the apple one.

MacPorts gcc4x packages also include FORTRAN compilers, so this should also work:

sudo port install gcc46

Another possible MacPorts package is g95. This seems to be a valid FORTRAN90 compiler and will pass FreeCAD's cmake configuration tests, but the actual build seems to ask for gcc-specific options, so probably easier to stick to gcc4x.

Install Eigen3

Download and unzip the latest eigen3 library here: http://eigen.tuxfamily.org/index.php?title=Main_Page These are needed for solver functionality. Once unzipped, the folder named 'Eigen' can be dropped into

/usr/local/include/eigen3/

Build OpenCASCADE

Currently, the easiest way to build OpenCASCADE on OS X is from the community edition (oce). Download the source or check out the Git repository from:

https://github.com/tpaviot/oce

Then, in terminal:

mkdir build
cd build
cmake ..
cd ..
make
make install/strip

You may need cmake:

sudo port install cmake

Ladda ned och 'installera' FreeCAD.app mall

Följande arkiv innehåller en applikationsbunt mall för FreeCAD. Denna är inte strikt nödvändig, men den gör arbete med FreeCAD mycket smidigare är standardinstallationskonfigurationen. Min är i /Applications mappen, men du ska kunna lägga den var du vill -- kom bara ihåg att bunten inte kan flyttas efter att FreeCAD har kompilerats och installerats (utan några ytterligare ändringar). Genom att köra make install med konfigurationen nedan kommer mallen att installeras i denna bunt.

http://dl.getdropbox.com/u/103808/FreeCAD/FreeCAD_bundle_template_20091128.tar.gz

Kompilera

Konfigurera, kompilera, och installera nu FreeCAD genom att använda följande kommandon inifrån FreeCAD's rotmapp. Om du lägger din FreeCAD.app bunt på någon annan plats än /Applications (eller inte använder bunten), ändra 'PREFIX' raden motsvarande.

./autogen.sh
 	
PREFIX=/Applications/FreeCAD.app/Contents

If you installed dependencies using Option 1 (Homebrew):

Note: this config line has not been verified and may contain errors!

./configure --with-xercesc-lib=/usr/local/lib --with-xercesc-include=/usr/local/include \
--with-boost-lib=/usr/local/lib --with-boost-include=/usr/local/include \
--with-qt4-dir=/usr/local--with-qt4-lib=/usr/local/lib --with-qt4-include=/usr/local/include \
--with-qt4-framework=/usr/local/lib --with-qt4-bin=/usr/local/bin --with-occ-lib=/usr/local/lib \
--with-occ-include=/usr/local/include/oce  --with-coin=/usr/local/lib --with-soqt=/usr/local/lib \
--prefix=/Applications/FreeCAD.app/Contents --bindir=/Applications/FreeCAD.app/Contents/MacOS \
--libdir=/Applications/FreeCAD.app/Contents/Frameworks/FreeCAD \
--includedir=/Applications/FreeCAD.app/Contents/Resources/include \
--datarootdir=/Applications/FreeCAD.app/Contents/Resources/share --enable-debug=no  \
--with-python-include=/System/Library/Frameworks/Python.framework/Versions/2.5/Headers

Or if you installed dependencies using Option 2 (MacPorts/Fink):

./configure --with-xercesc-lib=/opt/local/lib --with-xercesc-include=/opt/local/include \
--with-boost-lib=/opt/local/lib --with-boost-include=/opt/local/include \
--with-qt4-dir=/usr/local/Trolltech/Qt-4.8.0 --with-qt4-lib=/usr/local/Trolltech/Qt-4.8.0/lib \
--with-qt4-include=/usr/local/Trolltech/Qt-4.8.0/include --with-qt4-framework=/Library/Frameworks \
--with-qt4-bin=/usr/local/Trolltech/Qt-4.8.0/bin --with-occ-lib=/usr/local/lib \
--with-occ-include=/usr/local/include/oce  --with-coin=/Library/Frameworks \
--with-soqt=/Library/Frameworks --prefix=/Applications/FreeCAD.app/Contents \
--bindir=/Applications/FreeCAD.app/Contents/MacOS --libdir=/Applications/FreeCAD.app/Contents/Frameworks/FreeCAD \
--includedir=/Applications/FreeCAD.app/Contents/Resources/include \
--datarootdir=/Applications/FreeCAD.app/Contents/Resources/share --enable-debug=no  \
--with-python-include=/System/Library/Frameworks/Python.framework/Versions/2.5/Headers

Then:

make	
make install

Depending on your machine's processing power, the make step can take quite a while.

Run

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

PyQt4

Some users reported facing a "No Module named PyQt4" message on FreeCAD startup. This is a workaround to correct it:

cd /Library/Python/2.6/site-packages
sudo ln -s /contrib/lib/python2.6/site-packages/PyQt4 .
sudo ln -s /contrib/lib/python2.6/site-packages/sip* .
cd /volatile/FreeCAD-r5443-ser/bin/pivy
cp _coin.dylib _coin.so
cd /volatile/FreeCAD-r5443-ser/lib
for i in *.dylib; do j=`basename $i .dylib`; cp $i $j.so; done

Pivy

Some FreeCAD components won't work without Pivy. See here for partial build instructions.


CompileOnUnix
Third Party Libraries