我这样使用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
?
答案 0 :(得分:1)
仅在调用CMAKE_INSTALL_PREFIX
时,CMake才会设置project()
的默认值。由于模块GNUInstallDirs
使用此变量,因此应在project()
的之后:
project(MyProject)
# ...
include(GNUInstallDirs)