Как собрать программу с двумя разными значениями переменной в CMake

Недавно я перенес свой проект Qtс qmakeна CMake. Моя основная программа содержит значение, которое зависит от директивы #define.

Я хочу указать, что директива define должна быть внешней через 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 исполняемых файла, которые печатают

8
задан Brian Tompsett - 汤莱恩 29 November 2015 в 12:57
поделиться