2012-07-31 9 views
30

Versione corta: Ho opzioni di compilazione che funzionano solo su una piattaforma. Il file autotools che sto convertendo ha un controllo del modulo if test "$platform_linux" != "yes". Posso fare la stessa cosa nel mio CMakeLists.txt (verificare se il valore NON è uguale)?Se il valore non è uguale in cmake 2.8

versione leggermente più lunga: Ho un banco di prova per varie piattaforme seguenti il ​​consiglio trovato here:


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

mi piacerebbe fare un test della forma IF(${CMAKE_SYSTEM_NAME} NOT MATCHES "Linux"). Questo non sembra funzionare e l'unica documentazione che riesco a trovare è un post di mailing list del 2002, che suggerisce che lo NOT non è valido per cmake prima di 1.2. [Link].

È questo il caso nelle versioni successive di cmake, in particolare 2.6 e/o 2.8?

risposta

45

Sei vicino! La sintassi corretta per IF è

IF(NOT <expression>) 

Quindi nel tuo caso specifico, si vuole

IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux"). 
Problemi correlati