Building ifm3d from source on Windows

Following Instruction are for ifm3d-v1.0.0 and above which provide full support for O3R devices. if you are using O3D/O3X device please use ifm3d-v0.20.3 and follow these instructions

This tutorial details how to compile the ifm3d library and its dependencies on a Windows platform using Visual Studio and cmake.

Dependencies

Build tools

  • CMake v3.11.0 or newer (also available through the Visual Studio installer)

  • Git for Windows (also available through the Visual Studio installer)

  • Microsoft Visual Studio version 2017 or 2019. The free ‘Community’ edition is sufficient. Be sure to select the ‘Desktop development with C++’ workflow.

Source Dependencies

ifm3d depends on several additional libraries (curl, xmlrpc-c, glog, and gtest) which are not available as binary packages on Windows.

Building source dependencies with ifm3d

ifm3d from version 0.90.4 onwards provides BUILD_IN_DEPS option to cmake configure command, which fetches the required dependencies and builds them with ifm3d. After a successful first installation, the user can disable BUILD_IN_DEPS option and can use the installed dependencies for future builds of the ifm3d.

Following instructions detail how to build ifm3d along with its dependencies.

⚠ The code on the branch main is updated nightly and contains the latest changes to the library. It is typically a work in progress.
⚠ We recommend using tagged versions for your builds, to ensure consistency between builds. The latest tagged version can be found here.

Open Command Prompt and execute following instructions

#set the environment variables
set IFM3D_CMAKE_GENERATOR="Visual Studio 16 2019"
set IFM3D_BUILD_DIR=C:\ifm3d
set CONFIG=Release #set to Debug for debug binaries

#make the working dir
mkdir %IFM3D_BUILD_DIR%

# Clone the repository
cd %IFM3D_BUILD_DIR%
git clone https://github.com/ifm/ifm3d.git --branch v1.0.0
cd %IFM3D_BUILD_DIR%\ifm3d

# Configure
mkdir build
cd build
cmake -G %IFM3D_CMAKE_GENERATOR% -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON -DBUILD_SDK_PKG=ON -DCMAKE_PREFIX_PATH=%IFM3D_BUILD_DIR%\install -DCMAKE_BUILD_TYPE=%CONFIG% -DCMAKE_INSTALL_PREFIX=%IFM3D_BUILD_DIR%\install -DBUILD_IN_DEPS=ON ..

# Build ifm3d and dependencies
cmake --build . --config %CONFIG% --target ALL_BUILD

# install
cmake --build . --config %CONFIG% --target install

On successful execution of install step, user can disable the BUILD_IN_DEPS flag by appending -DBUILD_IN_DEPS=OFF to cmake configure step, this will avoid building dependencies on every clean build.

Building the Examples

To build the examples, provide the path IFM3D_BINARY_DIR to CMAKE_PREFIX_PATH when running cmake configure stage. To build the examples from source alongside the ifm3d library, enable the build with the -DBUILD_EXAMPLES=ON.

Running ifm3d command line tools

After Building ifm3d, the binary files will be installed at %IFM3D_BUILD_DIR%\install\bin. To run the ifm3d tool you need to add this directory to your path.

If built targeting Visual Studio 2017/2019:

$ set PATH=%IFM3D_BUILD_DIR%\install\bin;%PATH%

After that you should be able to run the ifm3d tool

$ ifm3d

Using ifm3d-playground projects

After installing the ifm3d, one can use ifm3d-playground example, which shows basic cmake configuration required for using installed ifm3d libraries ifm3d playground example