2016-02-26 2 views
0

Я пытаюсь скопировать некоторую библиотеку dll в папку Output, где проживает сгенерированная двоичная информация, а некоторые из dll - это визуальная версия студии. Я попробовал что-то похожее ниже шаблона, но это дает мне ошибки.Как использовать условие if при использовании INSTALL в cmake?

INSTALL(FILES 
    ../x.dll 
    ../y.dll 
    ../z.dll 
    IF(${CMAKE_GENERATOR} STREQUAL "Visual Studio 12 2013") 
     ../xyz.dll   
    ELSE() 
     ../xy.dll 
    ENDIF() 
    DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Release) 

Где я иду не так? (Я новичок в CMAKE)

+1

В командах CMake ** невозможно вставить **. Вместо этого одна команда может установить некоторую переменную, и эта переменная может быть разыменована в другой команде. Вам нужно прочитать руководство по CMake. – Tsyvarev

+0

Спасибо за ваше предложение, это помогло. –

ответ

0

Я решил проблему с помощью шаблона ниже.

IF(${CMAKE_GENERATOR} STREQUAL "Visual Studio 12 2013") 
    SET (VS_DEPENDENT_DLL ../xyz.dll) 
ELSE() 
    SET (VS_DEPENDENT_DLL ../xy.dll) 
ENDIF() 

INSTALL(FILES 
    ../x.dll 
    ../y.dll 
    ../z.dll 
    ${VS_DEPENDENT_DLL} 
    DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Release)