Presented here is a somewhat terse step-by-step guide to building FreeCAD from source using Conda and the Conda Forge feedstock for FreeCAD.
I need to do this to ensure I can run the latest FreeCAD code AND use a 3DConnexion SpaceMouse on a MacBook Pro.
The steps below were compiled through trial and error, much hair-pulling and extraction of useful information from here, here and here.
Install 3DConnexion Drivers
Download and install the latest driver for macOS.
Install miniconda
NOTE: Replace <home>
below with your home directory e.g. /Users/vectronic
or possibly $HOME
.
curl -L -O https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
bash Miniconda3-latest-MacOSX-x86_64.sh -b
rm Miniconda3-latest-MacOSX-x86_64.sh
echo ". <home>/miniconda3/etc/profile.d/conda.sh" >> ~/.bash_profile
Install MacOSX10.9.sdk
curl -L -O https://github.com/phracker/MacOSX-SDKs/releases/download/10.13/MacOSX10.9.sdk.tar.xz
sudo tar -C /opt/ -xf MacOSX10.9.sdk.tar.xz
rm MacOSX10.9.sdk.tar.xz
Set SDK location for Conda
echo "CONDA_BUILD_SYSROOT:" > ~/conda_build_config.yaml
echo " - /opt/MacOSX10.9.sdk # [osx]" >> ~/conda_build_config.yaml
Link to SDK for Circle CI based support scripts
mkdir -p /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
ln -s /opt/MacOSX10.9.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
Prepare Conda environment
conda create -n freecad_0_18_1 -y
conda activate freecad_0_18_1
conda config --add channels conda-forge
conda install conda-build -y
Get FreeCAD feedstock
git clone https://github.com/conda-forge/freecad-feedstock
cd freecad-feedstock/
Build FreeCAD
conda build ./recipe -m ./.ci_support/osx_python3.7.yaml
NOTE: I found it wasn’t necessary to add -D FREECAD_USE_3DCONNEXION=ON
to recipe/build.sh
as the build seemed to pick up the
presence of the installed driver and use it by default.
NOTE: To modify the version of FreeCAD which is build, edit recipe/meta.yaml
and change the version
variable e.g.:
{% set version = "master" %}
Install FreeCAD
conda install -c file://${CONDA_PREFIX}/conda-bld/ freecad=0.18.1 -y
NOTE: conda install --use-local freecad=0.18.1
didn’t seem to use the locally built package - possibly related to this reported issue.
Use it!
FreeCAD