How can I pass a macro to the preprocessor? For example, if I want to compile some part of my code because a user wants to compile unit test, I would do this:
#ifdef _COMPILE_UNIT_TESTS_
BLA BLA
#endif //_COMPILE_UNIT_TESTS_
Now I need to pass this value from CMake to the preprocessor. Setting a variable doesn't work, so how can I accomplish this?
解决方案
add_definitions(-DCOMPILE_UNIT_TESTS) (cf. CMake's doc) or modify one of the flag variables (CMAKE_CXX_FLAGS, or CMAKE_CXX_FLAGS_) or set COMPILE_FLAGS variable on the target.
Also, identifiers that begin with an underscore followed by an uppercase letter are reserved for the implementation. Identifiers containing double underscore, too. So don't use them.