在这个问题的答案中:
cmake 文件应该安装在哪里?
我们了解到,在其他地方,在<prefix>/share/
下安装.cmake
文件(也许在里面的其他子目录中(或<prefix>/lib/cmake
是"可以接受的"(就 CMake 的搜索模式而言(。
现在,一方面,那里接受的答案表明了对<prefix>/lib/cmake
的偏好;但另一方面,CMake 本身,正如大多数人(?Linux 发行版将其.cmake
文件放在/usr/share/cmake
下。
那么哪个选项更可取呢?或者更确切地说,您最常使用哪种?
PS - 如果你使用GNUInstallDirs
,选择是在${CMAKE_INSTALL_LIBDIR}/cmake
与${CMAKE_INSTALL_DATADIR}/cmake
之间,这可能更多平台。
我认为这取决于.cmake
文件:
- 对于用于在 cmake 项目中导入库
.cmake
文件,我会将.cmake
文件放在<prefix>/lib/cmake
- 对于可用于提供宏的
.cmake
文件,如/usr/share/cmake
中附带的 cmake 模块,我宁愿使用<prefix>/share/myapp
理由是/usr/lib
应该用于存储平台特定信息,而/usr/share
用于独立于平台的数据。这是文件系统层次结构标准中指定的:
/应用程序可以使用/usr/lib 下的单个子目录。如果应用程序使用子目录,则所有 应用程序专门使用的依赖于体系结构的数据必须放置在该子目录中。
usr/share 层次结构适用于所有与只读体系结构无关的数据文件。