2016-07-02 62 views
1

在一個cmake腳本 我有一套測試取決於一組插件(其輸出因Windows Debug/Release/RelWithDebInfo等配置而異)。設置CTest(cmake)環境變量配置特定

而且我想,用正確的道路環境變量,像

if(WIN32) 
    set_tests_properties(${my_test} PROPERTIES ENVIRONMENT "MYVAR=\\dir_for_plugins\\debug") 
endif() 

這顯然只適用於調試版本。

我試圖要麼

if(WIN32) 
    foreach(cfg_ ${CMAKE_CONFIGURATION_TYPES}) 
    set_tests_properties(${test_name} PROPERTIES 
     ENVIRONMENT_${cfg__} "MYVAR=\\dir_for_plugins\\${cfg__}") 
    endforeach() 
endif 

if(WIN32) 
    set_tests_properties(${my_test} PROPERTIES ENVIRONMENT "MYVAR=\\dir_for_plugins\\env{MY_CONFIG_TYPE}") 
endif 

if(WIN32) 
    set_tests_properties(${my_test} PROPERTIES ENVIRONMENT "MYVAR=\\dir_for_plugins\\%MY_CONFIG_TYPE%") 
endif 

但沒有一個似乎對所有的配置工作,因爲ENV在cmake的時間解決。有沒有辦法對這些表達式進行懶評估,直到給定配置的適當套件測試正在運行?

回答