Я недавно портировал свой проект Qt
от qmake
до CMake
. Моя основная программа содержит значение, которое зависит от директивы #define
.Как создать программу с двумя различными значениями переменной в CMake
Я хочу указать, что определять директиву извне через CMake
и построить 3 разных именованных варианта одного и того же исполняемого файла.
Как мне это сделать?
Я видел set_target_properties
, но это работает только для библиотек, а не для исполняемых файлов.
Например, я хочу, что следующая программа,
int main()
{
cout << BUILDTYPE << endl;
}
он составлен в 3-х различных вкусов (3 исполняемых) на основе BUILDTYPE "define"
, например, в моем CMakeLists.txt
Я хочу, чтобы указать
add_executable(myAppV1 -DBUILDTYPE=1)
add_executable(myAppV2 -DBUILDTYPE=2)
add_executable(myAppV3 -DBUILDTYPE=3)
, но это не правильный синтаксис. Некоторые намеки? и я получаю 3 исполняемых файла, который печатает
Спасибо! я должен переместить set_target_properties после add_executable и использовать его во второй версии вы написали add_executable (myAppv1 main.cpp) set_target_properties (myAppV1 СВОЙСТВА COMPILE_DEFINITIONS "BUILDTYPE = 1") но НЕ так add_executable (myAppv1 main.cpp) set_target_properties (myAppV1 PROPERTIES COMPILE_DEFINITIONS "-DBUILDTYPE = 1") – linello