Неправильная установка CMake dirs - PullRequest
0 голосов
/ 31 декабря 2018

Я использую CMake GNUInstallDirs следующим образом:

set(BINDIR "${CMAKE_INSTALL_FULL_BINDIR}" CACHE STRING "Where install binary")
set(DATADIR "${CMAKE_INSTALL_FULL_DATADIR}/cubosphere" CACHE STRING "Data location (install-time)")
set(RUNTIME_DATADIR "${DATADIR}" CACHE STRING "Data location (run-time)")

Однако, если CMAKE_INSTALL_PREFIX не указано, я получаю /bin и /shared в качестве значений.

Странные результаты также можно получить, используя message(WARNING "${CMAKE_INSTALL_FULL_DATADIR}"): /bin при чистом запуске, /usr/local/bin при кэшировании.

Есть ли способ решить эту проблему, например, использовать /usr/local/bin вместо /bin

1 Ответ

0 голосов
/ 01 января 2019

CMake устанавливает по умолчанию значение CMAKE_INSTALL_PREFIX только при вызове project().Поскольку модуль GNUInstallDirs использует эту переменную, она должна быть включена после project():

project(MyProject)
# ...
include(GNUInstallDirs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...