How to add macro's definition in cmake?

Viewed 44717

I am using Mongodb client and Boost in my C++ application. Because the Mongodb client is still using Boost old filesystem and my C++ application is using filesystem version 3 from boost 1.47.0, they conflict.

I found a way to solve this compilation problem, namely add a macro definition before all include statements for the header files from Boost in my cpp files:

#define BOOST_FILESYSTEM_VERSION 2

But I want to know how to put the above macro's definition into my CMake project files.

2 Answers

Since CMake 3 there's target_compile_definitions to set defines for specific target only.

Example:

target_compile_definitions(your_target_name PUBLIC BOOST_FILESYSTEM_VERSION=2)
Related