mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
Port over compilation instructions to Sphinx
This commit is contained in:
@@ -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>`__.
|
||||
Reference in New Issue
Block a user