Как правильно установить MSVC_RUNTIME_LIBRARY для разных конфигураций? - PullRequest
1 голос
/ 14 июля 2020

В среде windows и Visual Studio 2019 IDE, как правильно установить MSVC_RUNTIME_LIBRARY для двух разных конфигураций Test_Debug и Debug, которые обе являются DEBUG_CONFIGURATIONS? Как-то это не работает:

add_executable(foo foo.c)
set_target_properties(foo PROPERTIES
  MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>"
  MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Test_Debug>:Debug>")

Может ли кто-нибудь посоветовать правильный способ go об этом?

1 Ответ

1 голос
/ 14 июля 2020

Если вы устанавливаете какое-либо свойство дважды в одном вызове set_target_properties, вы перезаписываете предыдущую настройку. Таким образом, применяется только параметр последний :

MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Test_Debug>:Debug>"

Если вы хотите установить MSVC_RUNTIME_LIBRARY на MultiThreadedDebug, когда конфигурация Debug или Test_Debug, вы можете использовать OR логический оператор выражение генератора:

$<OR:conditions>

Полное выражение будет:

set_target_properties(MyExe1 PROPERTIES
    MSVC_RUNTIME_LIBRARY 
        "MultiThreaded$<$<OR:$<CONFIG:Debug>,$<CONFIG:Test_Debug>>:Debug>"
)
...