Подтвердить что ты не робот

Если значение не равно в cmake 2.8

Краткая версия: У меня есть варианты сборки, которые работают только на одной платформе. Форма преобразования autotools, которую я конвертирую, имеет проверку формы if test "$platform_linux" != "yes". Могу ли я сделать то же самое в своем CMakeLists.txt (если значение НЕ равно)?

Немного более длинная версия: У меня есть тест для различных платформ, следуя советам здесь:


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

Я хотел бы пройти тест формы IF(${CMAKE_SYSTEM_NAME} NOT MATCHES "Linux"). Это, похоже, не работает, и единственной документацией, которую я могу найти, является почтовая рассылка с 2002 года, которая предполагает, что NOT недействителен для cmake до 1.2. [Ссылка].

Это все еще имеет место в более поздних версиях cmake, в частности 2.6 и/или 2.8?

4b9b3361

Ответ 1

Ты близок! Правильный синтаксис IF -

IF(NOT <expression>)

Итак, в вашем конкретном случае вы хотите

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