Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compile same file with different flags using CMAKE

Tags:

g++

cmake

I want to compile the same .cpp source file into two different target executables and I am using cmake. One will have some instrumentation code and the other won't. That way I can compare the overhead of instrumentation.

I have the instrumentation code separated with #ifdefs so I want to define a value using the -D flag. I see that is possible with

add_definitions(-DINSTRUMENT)

But it looks like this then applies to all the executables created in that directory. I'm wondering if there is a good way to set the definition only for a specific executable target.

like image 473
Gabriel Southern Avatar asked Oct 21 '11 00:10

Gabriel Southern


1 Answers

You can set the COMPILE_DEFINITIONS property of one of the targets to have target-specific definitions:

set_target_properties (instrumented_target PROPERTIES COMPILE_DEFINITIONS "INSTRUMENT")

Update:

Starting from CMake 2.8.11 you can also use target_compile_definitions for the same purpose.

like image 160
szx Avatar answered Sep 21 '22 01:09

szx