He transferido recientemente mi proyecto Qt
de qmake
a CMake
. Mi programa principal contiene un valor que depende de una directiva #define
.Cómo construir un programa con 2 valores diferentes de una variable en CMake
Quiero especificar que se defina la directiva externamente a través de CMake
y compilar 3 versiones con nombres diferentes del mismo ejecutable.
¿Cómo debo hacerlo?
He visto set_target_properties
pero esto solo funciona para bibliotecas y no para archivos ejecutables.
Por ejemplo, yo quiero que el siguiente programa,
int main()
{
cout << BUILDTYPE << endl;
}
es compilado en 3 sabores diferentes (3 ejecutables) basado en el BUILDTYPE "define"
Por ejemplo en mi CMakeLists.txt
quiero especificar
add_executable(myAppV1 -DBUILDTYPE=1)
add_executable(myAppV2 -DBUILDTYPE=2)
add_executable(myAppV3 -DBUILDTYPE=3)
pero esta no es la sintaxis correcta. ¿Alguna pista? y obtengo 3 ejecutables que imprime
¡Gracias! tengo que mover los set_target_properties después de la add_executable y utilizarlo en la segunda versión que escribió add_executable (main.cpp myAppv1) set_target_properties (myAppV1 PROPIEDADES COMPILE_DEFINITIONS "buildtype = 1") pero no de esta manera add_executable (myAppv1 main.cpp) set_target_properties (myAppV1 PROPERTIES COMPILE_DEFINITIONS "-DBUILDTYPE = 1") – linello