cmake模块的安装路径

时间:2014-07-16 07:24:49

标签: cmake

因此,如果我正在使用cmake / cpack创建一个包,那么必须在cmake中设置一个变量,告诉它在哪里放置将由find_package用于我的模块的* .cmake文件......对吗?

那个变量是什么?

1 个答案:

答案 0 :(得分:0)

根据documentation of find_package,它是CMAKE_MODULE_PATH,但我不建议这样做,否则您可以将<name>-config.cmake个文件放在任何位置,只要您指定路径中的路径即可find_package致电。

否则可能会设置系统范围的路径,即CMAKE_SYSTEM_PREFIX_PATHCMAKE_SYSTEM_FRAMEWORK_PATHCMAKE_SYSTEM_APPBUNDLE_PATH

从文档中删除了不必要的信息:

find_package(<package> ...
         [CONFIG]
         ...
         [NAMES name1 [name2 ...]]
         [CONFIGS config1 [config2 ...]]
         [HINTS path1 [path2 ... ]]
         [PATHS path1 [path2 ... ]]
         [PATH_SUFFIXES suffix1 [suffix2 ...]]
         ...)

它将在所有<NAMES>-config.cmake和所有PATHS(按此顺序)中搜索HINTS,并预定义CMAKE路径。

确切的搜索顺序(来自上面引用的文档):

  
      
  1. 搜索特定于cmake的缓存变量中指定的路径。它们旨在用于-DVAR = value的命令行。如果传递NO_CMAKE_PATH,则可以跳过此

  2.   
  3. 搜索特定于cmake的环境变量中指定的路径。这些旨在在用户的shell配置中设置。如果通过NO_CMAKE_ENVIRONMENT_PATH

  4. ,则可以跳过此操作   
  5. 搜索HINTS选项指定的路径。这些应该是由系统内省计算的路径,例如由已找到的另一个项目的位置提供的提示。应使用PATHS选项指定硬编码猜测。

  6.   
  7. 搜索标准系统环境变量。如果传递NO_SYSTEM_ENVIRONMENT_PATH,则可以跳过此操作。以/ bin或/ sbin结尾的路径条目将自动转换为其父目录

  8.