使用include(LocalInstallDirs)而不是include(GNUInstallDirs)?

时间:2016-09-14 11:42:09

标签: c++ cmake install header-files

我们有一个提供CMakeList.txt file的C ++库,它带有以下内容:

cmake_minimum_required(VERSION 2.8.5 FATAL_ERROR)    
project(cryptopp)

set(cryptopp_VERSION_MAJOR 5)
set(cryptopp_VERSION_MINOR 6)
set(cryptopp_VERSION_PATCH 5)

include(GNUInstallDirs)
...

根据GNUInstallDirs的CMake手册:

  

提供为GNU软件定义的安装目录变量...

...
INCLUDEDIR       - C header files (include)
OLDINCLUDEDIR    - C header files for non-gcc (/usr/include)
...

我们的政策是安装到/usr/local;并且不要安装到/usr。在某些平台上将库安装到/usr会破坏库,因为编译器会将/usr/include中的所有标头视为C文件,而 不是 C ++标头文件。 OpenBSD可以打破我们,但是当它们安装到/usr/local/include时,它会按预期处理库头文件。

我执行很多的跨平台测试,我不知道任何Unix兼容的发行版无法支持/usr/local中的软件安装。我知道,当/usr/local可用时,我们可以安装到GNUInstallDirs

我访问了CMake modules,但我看不到include(LocalInstallDirs)以外的其他选择。我们如何指定与include(GNUInstallDirs)类似的内容而不是results

0 个答案:

没有答案