Skip to content

Latest commit

 

History

History
74 lines (53 loc) · 1.98 KB

BUILDING.md

File metadata and controls

74 lines (53 loc) · 1.98 KB

Building with CMake

Dependencies

For a list of dependencies, please refer to vcpkg.json.

Build

Here are the steps for building in release mode with a single-configuration generator, like the Unix Makefiles one:

cmake -B build -D CMAKE_BUILD_TYPE=Release
cmake --build build

Here are the steps for building in release mode with a multi-configuration generator, like the Visual Studio ones:

cmake -B build
cmake --build build --config Release

Building with MSVC

If you are building this project with MSVC, you need to pass some flags (like /permissive- and other /Zc switches) to requires ISO C++ conformant behavior. See the flags-windows preset in the CMakePresets.json file for the flags and with what variable to provide them to CMake during configuration.

Install

The below commands require at least CMake 3.15 to run, because that is the version in which Install a Project was added.

Here is the command for installing the release mode artifacts with a single-configuration generator, like the Unix Makefiles one:

cmake --install build

Here is the command for installing the release mode artifacts with a multi-configuration generator, like the Visual Studio ones:

cmake --install build --config Release

CMake package

This project exports a CMake package to be used with the find_package command of CMake:

  • Package name: Microsoft.IFC
  • Target names:
    • Microsoft.IFC::Core
    • Microsoft.IFC::DOM
    • Microsoft.IFC::SDK - it's recommended to use this target

Example usage:

find_package(Microsoft.IFC REQUIRED)
# Declare the imported target as a build requirement using PRIVATE, where
# project_target is a target created in the consuming project
target_link_libraries(
    project_target PRIVATE
    Microsoft.IFC::SDK
)