Спасибо @arrowd за то, что он указал мне правильное направление, теперь у меня есть ответ, хотя это не совсем то, на что я надеялся.
CMAKE_LIBRARY_OUTPUT_DIRECTORY
и CMAKE_RUNTIME_OUTPUT_DIRECTORY
, однако, укажите build выходные каталоги, а не install каталоги.Однако, как выясняется, для каталогов установки также есть переменные, называемые CMAKE_INSTALL_BINDIR
и CMAKE_INSTALL_LIBDIR
- они на самом деле хорошо видны (вместе со множеством других) в интерфейсе cmake-gui, когда проверено «Advanced».
Я попытался установить эти два вручную (bin\i686
и lib\i686
), и это работает: цель Protobuf INSTALL
копирует файлы туда, где я хотел их получить, то есть, где скрипт CMake моего потребительского проектанайдет их безопасным для архитектуры способом.
Я не уверен, что я чувствую по этому поводу - я бы предпочел что-то вроде переменной CMAKE_INSTALL_ARCHITECTURE
или CMAKE_ARCHITECTURE_SUBDIR
, которую CMake автоматически добавлял бы к соответствующей установкепути.Приведенное выше решение требует переопределения значений по умолчанию, которые я предпочел бы оставить нетронутыми.
В сложившихся обстоятельствах мой резервный подход все еще может быть лучшим вариантом.Однако этот подход требует, чтобы выбор архитектуры был сделан очень рано, обычно при запуске сценария, который инициализирует переменные среды, специфичные для CMake, которые будут переданы в cmake
при настройке каталогов сборки.И еще хуже при использовании cmake-gui
, который требует от пользователя установки всех каталогов вручную.
В конце концов, я все еще не определился.