2012-07-31 15 views
30

Versión corta: Tengo opciones de compilación que solo funcionan en una plataforma. El archivo autotools que estoy convirtiendo formulario tiene una verificación del formulario if test "$platform_linux" != "yes". ¿Puedo hacer lo mismo en mi CMakeLists.txt (probar si el valor NO es igual)?Si el valor no es igual en cmake 2.8

versión ligeramente más largo: tengo una prueba para varias plataformas siguientes el consejo encontró here:


IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux") 
    # Linux specific code 
    SET(OperatingSystem "Linux") 
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux") 

me gustaría hacer una prueba de la forma IF(${CMAKE_SYSTEM_NAME} NOT MATCHES "Linux"). Esto no parece funcionar, y la única documentación que puedo encontrar es una publicación de la lista de correo desde 2002, que sugiere que NOT no es válido para cmake antes de 1.2. [Link].

¿Sigue siendo así en las versiones posteriores cmake, específicamente en 2.6 y/o 2.8?

Respuesta

45

¡Estás cerca! La sintaxis correcta para IF es

IF(NOT <expression>) 

Así, en su caso específico, usted quiere

IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux"). 
Cuestiones relacionadas