Last active
January 30, 2017 02:18
-
-
Save kkremitzki/324fe2c837e99be7ee4adf22bebc02c4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Released under GPL v2.0 | |
# bernd@bimstatik.org | |
# based on script for vagrant box from FreeCAD source, https://github.com/FreeCAD/FreeCAD/blob/master/vagrant/FreeCAD.sh | |
# modified Jan 28 2016 by Kurt Kremitzki | |
# tested on Ubuntu Xenial = 16.04 | |
cd | |
INSTALL_PREFIX=/opt/local/FreeCAD-0.17-py3 | |
[[ ! -d "build_FreeCAD" ]] && mkdir build_FreeCAD | |
cd build_FreeCAD | |
base_dir=$(pwd) | |
package_list=" doxygen \ | |
libboost1.58-dev \ | |
libboost-filesystem1.58-dev \ | |
libboost-program-options1.58-dev \ | |
libboost-python1.58-dev \ | |
libboost-regex1.58-dev \ | |
libboost-signals1.58-dev \ | |
libboost-system1.58-dev \ | |
libboost-thread1.58-dev \ | |
libcoin80v5 \ | |
libcoin80-dev \ | |
libeigen3-dev \ | |
libpyside-dev \ | |
libqtcore4 \ | |
libshiboken-dev \ | |
libxerces-c-dev \ | |
libxmu-dev \ | |
libxmu-headers \ | |
libxmu6 \ | |
libxmuu-dev \ | |
libxmuu1 \ | |
pyside-tools \ | |
python-dev \ | |
python3-dev \ | |
python3-pyside \ | |
python-pyside \ | |
python-matplotlib \ | |
python3-matplotlib \ | |
qt4-dev-tools \ | |
qt4-qmake \ | |
libqtwebkit-dev \ | |
shiboken \ | |
calculix-ccx \ | |
swig " | |
sudo apt-get update | |
sudo apt-get install -y dictionaries-common | |
sudo apt-get install -y $package_list | |
sudo apt-get install -y python-pivy | |
sudo apt-get install -y git | |
sudo apt-get install -y cmake | |
sudo apt-get install -y g++ | |
sudo apt-get install -y libfreetype6-dev | |
# sudo apt-get install -y tcl8.5 # to run DRAWEXE of occt, but it does not run either | |
sudo apt-get install -y tcl8.5-dev tk8.5-dev | |
sudo apt-get install -y automake # netgen | |
sudo apt-get install -y libtogl-dev | |
sudo apt-get install -y libhdf5-dev | |
# get MED | |
cd "$base_dir" | |
[[ ! -d "med" ]] && mkdir med | |
cd med | |
[[ ! -d "libMED" ]] && git clone https://github.com/berndhahnebach/libMED.git | |
# get VTK | |
cd "$base_dir" | |
[[ ! -d "vtk" ]] && mkdir vtk | |
cd vtk | |
[[ ! -f "VTK-7.0.0.tar.gz" ]] && wget http://www.vtk.org/files/release/7.0/VTK-7.0.0.tar.gz | |
tar xzf VTK-7.0.0.tar.gz | |
# get OCCT | |
cd "$base_dir" | |
[[ ! -d "occt" ]] && mkdir occt | |
cd occt | |
[[ ! -f "occt.tgz" ]] && wget "http://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=b00770133187b83761e651df50051b2fa3433858;sf=tgz" && mv "index.html?p=occt.git;a=snapshot;h=b00770133187b83761e651df50051b2fa3433858;sf=tgz" occt.tgz | |
tar xzf occt.tgz | |
cd occt-b007701 | |
grep -v vtkRenderingFreeTypeOpenGL src/TKIVtk/EXTERNLIB >& /tmp/EXTERNLIB | |
cp /tmp/EXTERNLIB src/TKIVtk/EXTERNLIB | |
grep -v vtkRenderingFreeTypeOpenGL src/TKIVtkDraw/EXTERNLIB >& /tmp/EXTERNLIB | |
cp /tmp/EXTERNLIB src/TKIVtkDraw/EXTERNLIB | |
# get Netgen | |
cd "$base_dir" | |
[[ ! -d "netgen" ]] && mkdir netgen | |
cd netgen | |
[[ ! -d "Netgen" ]] && git clone https://github.com/berndhahnebach/Netgen | |
# get FreeCAD | |
cd "$base_dir" | |
[[ ! -d "freecad" ]] && mkdir freecad | |
cd freecad | |
[[ ! -d "FreeCAD" ]] && git clone https://github.com/looooo/FreeCAD -b py3-21 | |
# building MED | |
cd "$base_dir" | |
cd med | |
[[ ! -d "build" ]] && mkdir build | |
cd build | |
cmake ../libMED -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX | |
make -j$(nproc) | |
sudo make install | |
# building VTK | |
cd "$base_dir" | |
cd vtk | |
[[ ! -d "build" ]] && mkdir build | |
cd build | |
cmake ../VTK-7.0.0 -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX -DVTK_Group_Rendering:BOOL=OFF -DVTK_Group_StandAlone:BOOL=ON -DVTK_RENDERING_BACKEND=None | |
make -j$(nproc) | |
sudo make install | |
# building OCCT | |
cd "$base_dir" | |
cd occt | |
[[ ! -d "build" ]] && mkdir build | |
cd build | |
cmake ../occt-b007701 -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX -DUSE_VTK:BOOL=OFF | |
make -j$(nproc) | |
sudo make install | |
# building Netgen | |
cd "$base_dir" | |
cd netgen | |
cd Netgen/netgen-5.3.1 | |
./configure --prefix=$INSTALL_PREFIX --with-tcl=/usr/lib/tcl8.5 --with-tk=/usr/lib/tk8.5 --enable-occ --with-occ=$INSTALL_PREFIX --enable-shared --enable-nglib CXXFLAGS="-DNGLIB_EXPORTS -std=gnu++11" | |
make -j$(nproc) | |
sudo make install | |
# copy libsrc, FreeCAD needs it | |
cd "$base_dir" | |
cd netgen | |
sudo cp -rf Netgen/netgen-5.3.1/libsrc $INSTALL_PREFIX/libsrc | |
# building FreeCAD | |
cd "$base_dir" | |
cd freecad | |
[[ ! -d "build" ]] && mkdir build | |
cd build | |
# no oce-dev packages, no netgen | |
# cmake ../FreeCAD -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX \ | |
# -DOCC_INCLUDE_DIR=$INSTALL_PREFIX/include/opencascade | |
# with oce-dev installed, no netgen | |
# cmake ../FreeCAD -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX -DFREECAD_USE_OCC_VARIANT="Official Version" \ | |
# -DOCC_INCLUDE_DIR=$INSTALL_PREFIX/include/opencascade -DOCC_LIBRARY=$INSTALL_PREFIX/lib/libTKernel.so | |
# no oce-dev packages, with netgen | |
# cmake ../FreeCAD -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX -DBUILD_FEM_NETGEN=1 -DCMAKE_CXX_FLAGS="-DNETGEN_V5" \ | |
# -DNETGEN_ROOT=$INSTALL_PREFIX -DOCC_INCLUDE_DIR=$INSTALL_PREFIX/include/opencascade | |
# with oce-dev installed, with netgen | |
cmake ../FreeCAD -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX -DBUILD_FEM_NETGEN=1 \ | |
-DCMAKE_CXX_FLAGS="-DNETGEN_V5" -DNETGEN_ROOT=$INSTALL_PREFIX -DFREECAD_USE_OCC_VARIANT="Official Version" \ | |
-DOCC_INCLUDE_DIR=$INSTALL_PREFIX/include/opencascade -DOCC_LIBRARY=$INSTALL_PREFIX/lib/libTKernel.so \ | |
-DPYTHON_BASENAME=.cpython-35m-x86_64-linux-gnu -DPYTHON_SUFFIX=.cpython-35m-x86_64-linux-gnu \ | |
-DPYTHON_EXECUTABLE=/usr/bin/python3.5m -DPYTHON_INCLUDE_DIR=/usr/include/python3.5m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so | |
make -j$(nproc) | |
sudo make install |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment