2017-01-30 6 views
0

Я перекрестно скомпонован с CMake через Visual Studio. Платформа кросс-компилятора (реализованная на страницах свойств платформы Visual Studio) требует, чтобы в каждый проект добавлялась отдельная страница свойств или она сразу же не компилируется. В ночной ветке CMake есть свойство VS_USER_PROPS_CXX, которое вы можете использовать, чтобы добавить этот лист свойств. Это фиксирует как файл проекта, так и файл проекта INSTALL.Добавление свойств к объектам ALL_BUILD и ZERO_CHECK от CMake

Однако, это свойство не применяется ни к ALL_BUILD, ни к ZERO_CHECK целям. Я могу установить CMAKE_SUPPRESS_REGENERATION, что позволит избежать проблем с ZERO_CHECK (при отключении повторного генерации в Visual Studio), но я ничего не могу сказать о ALL_BUILD. Следствием этого является то, что когда я это сделаю: cmake --build <project dir>, ALL_BUILD не удастся (хотя мой проект преуспеет).

Есть ли способ отключить ALL_BUILD или добавить к нему свойства?

ответ

0

После проверки исходного кода для CMake, очевидно, что невозможно добавить дополнительные свойства к ALL_BUILD (или ZERO_CHECK), по крайней мере, не из коробки. Тем не менее, исходный код может быть изменен (er ... взломан), так что конкретные свойства могут быть включены в целевые объекты.

В частности, в для генератора Visual Studio, cmGlobalVisualStudio8Generator::AddCheckTarget добавляет ZERO_CHECK цели, и cmGlobalVisualStudioGenerator::AddExtraIDETargets добавляет ALL_BUILD цели. Вы можете изменить их исходный код и вызвать cmTarget::SetProperty в соответствующем месте с соответствующими значениями.

Если это требование, к сожалению, это означает, что вам необходимо сохранить свою собственную версию CMake.