По указанным вами причинам вы не можете этого сделать.Возможно, это можно считать ограничением файлов цепочки инструментов, но именно так оно и работает в настоящее время.
Теперь копаемся в модулях, модуль, который загружает GNU.cmake
, равен CMakeCInformation.cmake
и CMakeCXXInformation.cmake
.
Возможно, можно переопределить эти настройки, используя другой файл, который загружается после GNU.cmake
, используя переменную CMAKE_USER_MAKE_RULES_OVERRIDE_<lang>
.Я нашел это старое электронное письмо, в котором говорится об этом: https://cmake.org/pipermail/cmake/2008-April/021337.html
Здесь также упоминается: https://cmake.org/cmake/help/latest/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.html?highlight=cmake_user_make_rules_override
Итак, вы можете изменить значение, выполнив что-то подобное изв этом файле переопределения:
string(REPLACE "-O3" "-O2" CMAKE_CXX_FLAGS_RELEASE_INIT ${CMAKE_CXX_FLAGS_RELEASE_INIT })
Я никогда раньше не слышал об этих переменных, поэтому я не совсем уверен, как они работают в отношении местоположений путей при установке CMAKE_USER_MAKE_RULES_OVERRIDE_<lang>
.
Я подозреваючто вы можете установить CMAKE_USER_MAKE_RULES_OVERRIDE_<lang>
из файла набора инструментов вместо CMakeLists.txt
файла.