Files
filament/third_party/OpenImageDenoise/doc/compilation.md
2019-05-28 11:43:50 -07:00

150 lines
5.6 KiB
Markdown

Building Open Image Denoise from Source
=======================================
The latest Open Image Denoise sources are always available at the
[Open Image Denoise GitHub repository](http://github.com/OpenImageDenoise/oidn).
The default `master` branch should always point to the latest tested bugfix
release.
Prerequisites
-------------
Open Image Denoise currently supports 64-bit Linux, Windows, and macOS
operating systems. In addition, before you can build Open Image Denoise
you need the following prerequisites:
- You can clone the latest Open Image Denoise sources via:
git clone --recursive https://github.com/OpenImageDenoise/oidn.git
- To build Open Image Denoise you need [CMake](http://www.cmake.org) 3.1 or
later, a C++11 compiler (we recommend using Clang, but also support GCC,
Microsoft Visual Studio 2015 or later, and
[Intel® C++ Compiler](https://software.intel.com/en-us/c-compilers) 17.0 or
later), and Python 2.7 or later.
- Additionally you require a copy of [Intel® Threading Building
Blocks](https://www.threadingbuildingblocks.org/) (TBB) 2017 or later.
Depending on your Linux distribution you can install these dependencies
using `yum` or `apt-get`. Some of these packages might already be installed or
might have slightly different names.
Type the following to install the dependencies using `yum`:
sudo yum install cmake
sudo yum install tbb-devel
Type the following to install the dependencies using `apt-get`:
sudo apt-get install cmake-curses-gui
sudo apt-get install libtbb-dev
Under macOS these dependencies can be installed using
[MacPorts](http://www.macports.org/):
sudo port install cmake tbb
Under Windows please directly use the appropriate installers or packages for
[CMake](https://cmake.org/download/),
[Python](https://www.python.org/downloads/),
and [TBB](https://github.com/01org/tbb/releases).
Compiling Open Image Denoise on Linux/macOS
-------------------------------------------
Assuming the above prerequisites are all fulfilled, building Open Image Denoise
through CMake is easy:
- Create a build directory, and go into it
mkdir oidn/build
cd oidn/build
(We do recommend having separate build directories for different
configurations such as release, debug, etc.).
- The compiler CMake will use by default will be whatever the `CC` and
`CXX` environment variables point to. Should you want to specify a
different compiler, run cmake manually while specifying the desired
compiler. The default compiler on most Linux machines is `gcc`, but
it can be pointed to `clang` instead by executing the following:
cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang ..
CMake will now use Clang instead of GCC. If you are OK with using
the default compiler on your system, then simply skip this step.
Note that the compiler variables cannot be changed after the first
`cmake` or `ccmake` run.
- Open the CMake configuration dialog
ccmake ..
- Make sure to properly set the build mode and enable the components you
need, etc.; then type 'c'onfigure and 'g'enerate. When back on the
command prompt, build it using
make
- You should now have `libOpenImageDenoise.so` as well as a set of example
applications.
Compiling Open Image Denoise on Windows
---------------------------------------
On Windows using the CMake GUI (`cmake-gui.exe`) is the most convenient way to
configure Open Image Denoise and to create the Visual Studio solution files:
- Browse to the Open Image Denoise sources and specify a build directory (if
it does not exist yet CMake will create it).
- Click "Configure" and select as generator the Visual Studio version you
have (Open Image Denoise needs Visual Studio 14 2015 or newer), for Win64
(32-bit builds are not supported), e.g., "Visual Studio 15 2017 Win64".
- If the configuration fails because some dependencies could not be found
then follow the instructions given in the error message, e.g., set the
variable `TBB_ROOT` to the folder where TBB was installed.
- Optionally change the default build options, and then click "Generate" to
create the solution and project files in the build directory.
- Open the generated `OpenImageDenoise.sln` in Visual Studio, select the
build configuration and compile the project.
Alternatively, Open Image Denoise can also be built without any GUI, entirely on the
console. In the Visual Studio command prompt type:
cd path\to\oidn
mkdir build
cd build
cmake -G "Visual Studio 15 2017 Win64" [-D VARIABLE=value] ..
cmake --build . --config Release
Use `-D` to set variables for CMake, e.g., the path to TBB with "`-D
TBB_ROOT=\path\to\tbb`".
CMake Configuration
-------------------
The default CMake configuration in the configuration dialog should be appropriate
for most usages. The following list describes the options that can be configured
in CMake:
- `CMAKE_BUILD_TYPE`: Can be used to switch between Debug mode
(Debug), Release mode (Release) (default), and Release mode with
enabled assertions and debug symbols (RelWithDebInfo).
- `OIDN_STATIC_LIB`: Builds Open Image Denoise as a static library (OFF by
default). CMake 3.13.0 or later is required to enable this option. When using
the statically compiled Open Image Denoise library, you either have to use
the generated CMake configuration files (recommended), or you have to
manually define `OIDN_STATIC_LIB` before including the library headers in your
application.
- `TBB_ROOT`: The path to the TBB installation (autodetected by default).