我应该安装.cmake文件以共享/ cmake还是lib / cmake?

问题描述 投票:2回答:1

在此问题的答案中:

Where should cmake files be installed?

[我们了解到,在其他方面,(就CMake的搜索模式而言)将.cmake文件安装在<prefix>/share/下(可能在其中的其他子目录中)或安装到<prefix>/lib/cmake是“可接受的”。

现在,一方面,已被接受的答案表明偏爱<prefix>/lib/cmake;但是另一方面,与大多数(?)Linux发行版捆绑在一起,CMake本身将其.cmake文件放在/usr/share/cmake下。

那么哪个选项更可取?或者更确切地说,哪一种是您最常使用的知识?

PS-如果使用GNUInstallDirs,则可以在${CMAKE_INSTALL_LIBDIR}/cmake${CMAKE_INSTALL_DATADIR}/cmake之间进行选择,这也许是多平台的。

c++ cmake packaging
1个回答
0
投票

我认为这取决于.cmake文件:

  • 对于用于在cmake项目中导入库的.cmake文件,我会将.cmake文件放置在<prefix>/lib/cmake
  • 对于.cmake文件,/usr/share/cmake中随附的cmake模块可能用于提供宏,我宁愿使用<prefix>/share/myapp

合理的原因是/usr/lib应该用于存储特定于平台的信息,而/usr/share用于存储与平台无关的数据。这是在Filesystem Hierarchy Standard中指定的内容:

应用程序可以使用/ usr / lib下的单个子目录。如果应用程序使用子目录,则所有应用程序专用的与体系结构相关的数据必须放在该子目录中。

/ usr / share层次结构适用于所有只读体系结构独立的数据文件。

© www.soinside.com 2019 - 2024. All rights reserved.