Я использую CMake v3.13.4 с генератором Visual Studio 2017 Win64
, и мне нужно изменить параметры командной строки для библиотекаря Visual Studio (для библиотеки объектов CMake).
Для этого CMake предлагает целевое свойство STATIC_LIBRARY_OPTIONS
, которое можно установить с помощью команд set_property
и set_target_properties
.
В документации говорится, что STATIC_LIBRARY_OPTIONS
поддерживает выражения генератора:
Содержимое STATIC_LIBRARY_OPTIONS
может использовать «выражения генератора» с
синтаксис $<...>
. Смотрите cmake-generator-expression (7)
Руководство по доступным выражениям. См. cmake-buildsystem (7)
руководство для получения дополнительной информации по определению свойств системы сборки.
Но: Независимо от того, что я пытаюсь, значения не экранируются должным образом, например,
set_property(TARGET object_library PROPERTY STATIC_LIBRARY_OPTIONS $<$<CONFIG:Release>:/WX /NOLOGO /LTCG /ERRORREPORT:NONE>)
приводит к следующему в Visual Studio:
All Options: `/OUT:"..." /LTCG /MACHINE:X64 /NOLOGO
Additional Options: %(AdditionalOptions) /machine:x64 ""$"<1:/WX" "/ERRORREPORT:NONE>"
Я попробовал следующее, похоже, все они не работают.
set_property(TARGET object_library PROPERTY
STATIC_LIBRARY_OPTIONS $<$<CONFIG:Release>:/WX /NOLOGO /LTCG /ERRORREPORT:NONE>
#STATIC_LIBRARY_OPTIONS "$<$<CONFIG:Release>:/WX /NOLOGO /LTCG /ERRORREPORT:NONE>"
#STATIC_LIBRARY_OPTIONS $<$<CONFIG:Release>:"/WX /NOLOGO /LTCG /ERRORREPORT:NONE">
#STATIC_LIBRARY_OPTIONS $<$<CONFIG:Release>:/WX /NOLOGO /LTCG /ERRORREPORT:NONE>
#STATIC_LIBRARY_OPTIONS $<$<CONFIG:Release>:/WX;/NOLOGO;/LTCG;/ERRORREPORT:NONE>
#STATIC_LIBRARY_OPTIONS $<$<CONFIG:Release>:"/WX;/NOLOGO;/LTCG;/ERRORREPORT:NONE">
#STATIC_LIBRARY_OPTIONS "$<$<CONFIG:Release>:/WX;/NOLOGO;/LTCG;/ERRORREPORT:NONE>"
)
Итак, мой вопрос: как я могу передать несколько значений с помощью выражений генератора в STATIC_LIBRARY_OPTIONS
с помощью команды set_property
или set_target_properties
?