Не могу толком разобраться, как задавать PRIFIX директорию в cmake.
В cmake существует переменная CMAKE_INSTALL_PREFIX. По-умолчанию она содержит путь /usr/local. А программу по-умолчанию нужно ставить в другую папку, например в /opt/program. Но при этом нужно дать возможность майнтейнеру указывать установочную папку через опцию:
cmake -DCMAKE_INSTALL_PREFIX=/usr/bin
И тут возникает такая логическая коллизия.
1. -DCMAKE_INSTALL_PREFIX не задан. ТОгда переменная CMAKE_INSTALL_PREFIX по-умолчанию содержит /usr/local. Мы проверяем, что CMAKE_INSTALL_PREFIX==/usr/local, делаем вывод что опция -DCMAKE_INSTALL_PREFIX не задана, и задаём директорию инсталляции /opt/program (ведь она у нас по-умолчанию такая должна быть).
2. -DCMAKE_INSTALL_PREFIX задан. При проверке мы видим, что CMAKE_INSTALL_PREFIX!=/usr/local. Мы делаем вывод, что опция -DCMAKE_INSTALL_PREFIX задана, и ставим программу в указанную в этой опции директорию.
3. -DCMAKE_INSTALL_PREFIX задан, и равен /usr/local. Ну вот так написал пользователь-параноик, на всякий случай. Что происходит дальше? Срабатывает логика как в пункте 1, и директория инсталляции устанавливается на /opt/program. Но ведь /usr/local был однозначно задан пользователем!
Вот и возникает у меня вопрос. Как же правильно задать опцию PREFIX-каталога, чтобы при всех вариантах срабатывало правильно?