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 (отладка или выпуск).