如何获取要在CMake中使用的软件包名称?

时间:2019-07-01 20:08:45

标签: cmake dependencies

我有一些依赖于我的代码的CMake构建的软件包。我通过apt-get获得了它们,它们起作用了。

具体的软件包是;

  • mingw-w64
  • mingw-w64-i686-dev

我确实意识到有些人可能希望从源代码构建这些依赖关系,而且恐怕apt-get软件包的名称可能与已安装的源软件包的名称不同。我只是想知道,对于这两种情况中的一种还是两种情况,我应该在find_package(XXX REQUIRED)指令的CMakeLists.txt文件中放入哪个软件包名称?

1 个答案:

答案 0 :(得分:1)

find_package(<package>)有两种模式,ModuleConfig

Config模式(将首先使用)中,在CMAKE_PREFIX_PATH中查找名为<package>-config.cmake / <package>Config.cmake的文件。

Module模式下,CMake查找名为Find<package>.cmake的文件。

因此,如果您的软件包名为mingw-w64,则必须有上述文件之一,例如mingw-w64Config.cmake

mingw-w64-i686-dev机器提供了特殊的体系结构软件包32bit。您将在32位计算机上安装该软件包,该软件包仍称为mingw-w64

PS:请记住,并非所有软件包都提供cmake文件。在这种情况下,您必须编写自己的Findmingw-w64.cmake文件。看一下here以获得灵感。