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



在这个问题的答案中:

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 层次结构适用于所有与只读体系结构无关的数据文件。

最新更新