Установите MSV C время выполнения проекта CMake из командной строки - PullRequest
1 голос
/ 07 января 2020

Есть ли способ установить время выполнения MSV C в командной строке при вызове CMake? Я хочу избежать необходимости менять CMakeList.txt.

Спасибо

1 Ответ

1 голос
/ 07 января 2020

CMake не поддерживает настройку библиотеки времени выполнения MSV C из командной строки. Фактически, CMake только недавно получил поддержку для установки времени выполнения MSV C через MSVC_RUNTIME_LIBRARY. Однако вы можете использовать пользовательскую переменную командной строки, чтобы влиять на то, как переменная MSVC_RUNTIME_LIBRARY определена в вашем проекте. Добавьте что-то вроде этого в свой код CMake:

if(MY_MSVC_RUNTIME STREQUAL "MT")
    message("Setting MT(d)")
    set_property(TARGET MyTarget PROPERTY
        MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
elseif(MY_MSVC_RUNTIME STREQUAL "MD")
    message("Setting MD(d)")
    set_property(TARGET MyTarget PROPERTY
        MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
else()
    message("Setting MT(d) (default)")
    set_property(TARGET MyTarget PROPERTY
        MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()

Теперь вызовите cmake из командной строки с переменной MY_MSVC_RUNTIME, установленной в «MT» или «MD»:

cmake -DMY_MSVC_RUNTIME=MD ..

Это позволяет вам переключаться между MultiThreaded и MultiThreadedDLL из командной строки. Часть Debug будет добавлена ​​или исключена автоматически в зависимости от конфигурации решения Visual Studio (отладка или выпуск).

...