add_definitions()相当于 C/C++ 里面的 #define 宏定义功能.
其中在main.cpp 有
#include <iostream>
int main() {
#ifdef TEST_IT_CMAKE
std::cout<<"in ifdef"<<std::endl;
#endif
std::cout<<"not in ifdef"<<std::endl;
}
cmake_minimum_required(VERSION 3.10)
project(optiontest)
add_executable(optiontest main.cpp)
option(TEST_IT_CMAKE "test" ON)
message(${TEST_IT_CMAKE})
if(TEST_IT_CMAKE)
message("itis" ${TEST_IT_CMAKE})
add_definitions(-DTEST_IT_CMAKE)
endif()
上面为cmakelist.txt 内容。
通过add_definitions()添加的内容是直接可以通过 main.cpp 中c/c++.cpp引用到的。