2012-06-14 8 views
7

Estoy tratando de incluir opciones del compilador dependientes de depuración/liberación, tales como:Cmake ignorando CMAKE_BUILD_TYPE = depuración

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x -Wall -DUSE_BOOST") 
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") 
set(CMAKE_CSS_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -O3") 

Creo mi carpeta de compilación con un comando como:

cmake -DCMAKE_BUILD_TYPE=Release -D UseFortran=True -D CMAKE_CXX_COMPILER=g++-4.6 ~/repos/cliques/cliques 

Sin embargo, parece con CMAKE versión 2.8.7, se está ignorando CMAKE_BUILD_TYPE. Parece funcionar perfectamente con la versión 2.8.4 (en una máquina diferente), por lo que este método ha quedado obsoleto o hay algún otro problema aquí?

Zenna

+0

No está en desuso. ¿Cómo estás evaluando que se está ignorando? – Fraser

+0

No hay símbolos de depuración en el archivo ejecutable, y si agrego comandos incorrectos, p. set (CMAKE_CXX_FLAGS_DEBUG "$ {CMAKE_CXX_FLAGS_DEBUG} -Wall lot of bad commands"), no hay ningún efecto. – zenna

+2

Debe leer: http://www.cmake.org/pipermail/cmake/2008-September/023808.html – bitek

Respuesta

4

El problema era que debe haber un espacio entre el -D y la variable. Es decir, que debe ser:

cmake -D CMAKE_BUILD_TYPE=Release -D UseFortran=True -D CMAKE_CXX_COMPILER=g++-4.6 ~/repos/cliques/cliques 
+1

Y no olvide definir el tipo de variable. De los documentos de CMake, es: '-D : = ' –

+5

Nunca _he_ tenido que usar un espacio después de -D. ¿Estás seguro de que tu 'CMAKE_CXX_FLAGS_DEBUG' contenía' -g'? Si volvió a utilizar el mismo directorio de compilación, es posible que se hayan reutilizado los valores no válidos en la memoria caché de variables. – Mark

+0

¿Son los tipos de compilación 'RELEASE' y' Release' equivalentes? – nn0p

1

¿Por qué no aprovechan -DCMAKE_BUILD_TYPE=Debug, al crear construir carpeta? Cmake compilación Proyecto tipo liberación o proyecto tipo Depuración, no ambos juntos.

2

Creo que hicieron un Typo en CMAKE_BUILD_TYPE en la versión anterior. Tuvimos este problema y aquí una línea que funciona.

cmake -D CMAKE_BUILD_TYPE:STRING=Debug ../src 

Es posible comprobar que cada cosas iban bien usando:

cmake -L ../src 

El uso de este comando le puede dar la forma correcta para nombrar la variable CMAKE_BUILD_TYPE.

Buena suerte.

5

Tiene un error tipográfico. Su código dice CMAKE_CSS_FLAGS_RELEASE. Aviso CSS, debe ser CXX.

Cuestiones relacionadas