Port over compilation instructions to Sphinx

This commit is contained in:
Dion Moult
2022-08-29 11:40:38 +10:00
parent 33a8ba9834
commit 819466a819
4 changed files with 282 additions and 5 deletions
@@ -143,7 +143,10 @@ and run your script using the **Text > Run Script** menu or by clicking on the
interface. `Read more
<https://blenderbim.org/docs/users/exploring_an_ifc_model.html>`_.
Compiling from source
---------------------
TODO
Advanced developers may want to compile IfcOpenShell. Refer to the
:doc:`IfcOpenShell installation guide <../ifcopenshell/installation>` for
instructions.
@@ -1,13 +1,20 @@
IfcOpenShell
============
This documentation is free software! You are free to contribute and help write
this document.
IfcOpenShell is an open source (LGPL-3.0-or-later) software library for working
with the Industry Foundation Classes (IFC) file format. Extensive geometric
support is implemented for the IFC releases IFC2x3 TC1 and IFC4 Add2 TC1.
Support for parsing is provided for IFC4x1, IFC4x2, and the IFC4x3 release
candidates. Extending with support for arbitrary IFC schemas is possible at
compile-time when using C++ and at run-time when using Python.
.. toctree::
:hidden:
:maxdepth: 1
:caption: Contents:
ifcopenshell/installation
Indices and tables
------------------
@@ -0,0 +1,267 @@
Installation
============
You will need:
- `Git <https://git-scm.com/>`__
- `CMake <https://cmake.org/>`__ (3.1.3 or newer)
IfcOpenShell depends on:
- `Boost <http://www.boost.org/>`__
- (Optional) `OpenCascade <https://dev.opencascade.org/>`__ - for building IfcGeom
For converting IFC representation items into BRep solids and tessellated meshes
- (Optional) `OpenCOLLADA <https://github.com/khronosGroup/OpenCOLLADA/>`__ -
for IfcConvert to be able to write tessellated Collada (.dae) files
- (Optional) `SWIG <http://www.swig.org/>`__ and `Python
<https://www.python.org/>`__ - for building the IfcOpenShell Python interface
and use in the BlenderBIM Add-on
- (Optional) `HDF5 <https://www.hdfgroup.org/solutions/hdf5>`__ - for caching
geometry using the HDF5 format
- (Optional) `3ds Max SDK
<http://www.autodesk.com/products/3ds-max/free-trial>`__ - for building the
3ds Max plug-in. All recent versions of 3ds Max (2014 and newer) are 64-bit
only, so a 64-bit installation is assumed.
Compiling on Linux
------------------
The following instructions are for Ubuntu, modify as required for other
operating systems. GCC (4.7 or newer) or Clang (any version) is required.
.. seealso::
The `nix/build-all.py <https://github.com/IfcOpenShell/IfcOpenShell/tree/master/nix/build-all.py>`__
script can be experimented with and studied for pointers for other operating
systems. Note that this script is not currently meant to be used for a
typical IfcOpenShell workspace setup.
1. Fetch the latest source code, including all submodules.
::
$ git clone --recursive https://github.com/IfcOpenShell/IfcOpenshell.git
.. warning::
The path where the source code is cloned to can contain spaces but non-ASCII
characters are very likely to cause problems with the build.
2. Install basic dependencies:
::
$ sudo apt-get install git cmake gcc g++ libboost-all-dev libcgal-dev
3. Install OpenCascade Technology (OCCT).
::
$ sudo apt-get install libocct-data-exchange-dev libocct-draw-dev libocct-foundation-dev libocct-modeling-algorithms-dev libocct-modeling-data-dev libocct-ocaf-dev libocct-visualization-dev
.. seealso::
If OCCT is not available, you can `manually compile OCCT
<https://dev.opencascade.org/release>`__.
Alternatively you may use OpenCascade Community Edition (OCE) but it may lag behind OCCT so is not recommended.
::
$ sudo apt-get install liboce-foundation-dev liboce-modeling-dev liboce-ocaf-dev liboce-visualization-dev liboce-ocaf-lite-dev
You may also manually compile OCE:
::
$ sudo apt-get install libftgl-dev libtbb2 libtbb-dev libgl1-mesa-dev libfreetype6-dev
$ git clone https://github.com/tpaviot/oce.git
$ cd oce
$ mkdir build && cd build
$ cmake ..
# Replace X with number of CPU cores + 1
$ make -j X
$ sudo make install
4. For building IfcConvert with COLLADA (.dae) support (on by default), OpenCOLLADA is needed:
::
$ sudo apt-get install libpcre3-dev libxml2-dev
$ git clone https://github.com/KhronosGroup/OpenCOLLADA.git
$ cd OpenCOLLADA
# Using a known good revision, but HEAD should work too:
$ git checkout 064a60b65c2c31b94f013820856bc84fb1937cc6
$ mkdir build && cd build
$ cmake ..
# Replace X with number of CPU cores + 1
$ make -j X
$ sudo make install
5. For building the IfcPython wrapper (on by default), SWIG and Python development are needed:
::
$ sudo apt-get install python-all-dev swig
6. For building support for HDF5 caching (off by default), install dependencies:
::
$ sudo apt-get install libhdf5-dev libaec-dev zlibc
7. Compile IfcOpenShell itself.
::
$ cd /path/to/IfcOpenShell
$ mkdir build && cd build
# Customise the compile options to suit your environment
# Check all paths are valid for your environment
$ cmake ../cmake \
-DOCC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu/ \
-DOCC_INCLUDE_DIR=/usr/include/ \
# Optional Collada support
-COLLADA_SUPPORT=On
-DOPENCOLLADA_INCLUDE_DIR="/usr/local/include/opencollada" \
-DOPENCOLLADA_LIBRARY_DIR="/usr/local/lib/opencollada" \
-DPCRE_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu/ \
# Optional HDF5 support
-DHDF5_SUPPORT=On
-DHDF5_LIBRARIES="/usr/local/hdf5/lib/libhdf5_cpp.so;/usr/local/hdf5/lib/libhdf5.so;/usr/lib64/libz.so;/usr/lib64/libsz.so;/usr/lib64/libaec.so" \
-DHDF5_INCLUDE_DIR="/usr/local/hdf5/include" \
-DCGAL_INCLUDE_DIR=/usr/include \
-DGMP_INCLUDE_DIR=/usr/include \
-DMPFR_INCLUDE_DIR=/usr/include \
-DGMP_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \
-DMPFR_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu
# Replace X with number of CPU cores + 1
$ make -j X
# Optionally install to the system
$ sudo make install
Compiling on MacOS
------------------
GCC (4.7 or newer) or Clang (any version) is required.
1. Fetch the latest source code, including all submodules.
::
$ git clone --recursive https://github.com/IfcOpenShell/IfcOpenshell.git
.. warning::
The path where the source code is cloned to can contain spaces but non-ASCII
characters are very likely to cause problems with the build.
2. Install all dependencies using `Homebrew <https://brew.sh/>`__
::
$ brew install boost swig cmake ftgl cgal gmp libaec opencascade
3. Build IfcOpenShell with flags for Homebrew dependencies (``/usr/local/``)
::
$ cd /path/to/IfcOpenShell
$ mkdir build && cd build
$ cmake ../cmake -DOCC_LIBRARY_DIR=/usr/local/lib/ \
-DOCC_INCLUDE_DIR=/usr/local/include/opencascade/ \
-DCOLLADA_SUPPORT=0 \
-DCGAL_INCLUDE_DIR=/usr/local/include/ \
-DGMP_LIBRARY_DIR=/usr/local/lib/ \
-DMPFR_LIBRARY_DIR=/usr/local/lib/
# Replace X with number of CPU cores + 1
$ make -j X -lboost_options
Compiling on Windows (Visual Studio)
------------------------------------
This is for users of `Visual Studio <https://www.visualstudio.com/>`__ 2008 to
2019 (2022 not yet supported by dependency CMake) with C++ toolset (or `Visual
C++ Build Tools <http://landinghub.visualstudio.com/visual-cpp-build-tools>`__).
1. Fetch the latest source code, including all submodules.
::
$ git clone --recursive https://github.com/IfcOpenShell/IfcOpenshell.git
.. warning::
The path where the source code is cloned to can contain spaces but non-ASCII
characters are very likely to cause problems with the build.
2. Assuming Visual Studio 2015 x64 environment variables set, build dependencies
and run cmake.
::
$ cd IfcOpenShell\win
$ build-deps.cmd
$ run-cmake.bat
3. Open and build the solution file in Visual Studio:
::
$ ..\build-vs2015-x64\IfcOpenShell.sln
As the scripts default to using the ``RelWithDebInfo`` configuration, and a
freshly created solution by CMake defaults to ``Debug``, make sure to switch the
used build configuration. Build the ``INSTALL`` project (right-click -> Project
Only) to deploy the headers and binaries into a single location if
wanted/needed.
Alternatively, one can use the utility batch file(s) to build and install the
project easily from the command-line (installing a project will build it
also, if required):
::
$ install-ifcopenshell.bat
.. seealso::
For more information on configuring a Windows compilation see the `Windows
Readme
<https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.7.0/win/readme.md>`__.
Compiling on Windows (MSYS2 + MinGW)
------------------------------------
This is for users of `MSYS2 <https://msys2.github.io/>`__ and `MinGW
<https://www.mingw-w64.org/>`__.
1. Fetch the latest source code, including all submodules.
::
$ git clone --recursive https://github.com/IfcOpenShell/IfcOpenshell.git
.. warning::
The path where the source code is cloned to can contain spaces but non-ASCII
characters are very likely to cause problems with the build.
2. Start the MSYS2 Shell and then:
::
$ cd IfcOpenShell/win
$ ./build-deps.sh
$ ./run-cmake.sh
$ ./install-ifcopenshell.sh
.. seealso::
For more information on configuring a Windows compilation see the `Windows
Readme
<https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.7.0/win/readme.md>`__.