在cmake脚本中 我有一套依赖于set插件的测试(其输出因Windows Debug / Release / RelWithDebInfo等中的配置而异)。
我希望并使用正确的路径改变变量,例如
if(WIN32)
set_tests_properties(${my_test} PROPERTIES ENVIRONMENT "MYVAR=\\dir_for_plugins\\debug")
endif()
这显然只适用于Debug版本。
我试过了
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时解决。有没有办法对这些表达式进行延迟评估,直到给定配置的正确套件测试运行?
答案 0 :(得分:0)
所以使用" $< CONFIG>":
if(WIN32)
set_tests_properties(${my_test} PROPERTIES ENVIRONMENT "MYVAR=\\dir_for_plugins\\$<CONFIG>")
endif()