我正在尝试使用CMake获得跨平台的构建系统。现在,该软件具有一些依赖性。我自己编译了它们并将它们安装在我的系统上。一些已安装的示例文件:-- Installing: /usr/local/share/SomeLib/SomeDir/somefile-- Installing: /usr/local/share/SomeLib/SomeDir/someotherfile-- Installing: /usr/local/lib/SomeLib/somesharedlibrary-- Installing: /usr/local/lib/SomeLib/cmake/FindSomeLib.cmake-- Installing: /usr/local/lib/SomeLib/cmake/HelperFile.cmake现在,CMake具有一个find_package()可打开Find*.cmake文件并在系统上的库之后进行搜索并定义一些变量(如SomeLib_FOUNDetc)的功能。我的CMakeLists.txt包含以下内容:set(CMAKE_MODULE_PATH "/usr/local/lib/SomeLib/cmake/;${CMAKE_MODULE_PATH}")find_package(SomeLib REQUIRED)第一个命令定义了CMake在哪里搜索,Find*.cmake然后我添加SomeLib了FindSomeLib.cmake可以找到的目录,因此find_package()可以正常工作。但这find_package()有点奇怪,因为存在的原因之一就是要摆脱非跨平台的硬编码路径。通常如何做?我应该将cmake/目录复制SomeLib到我的项目中并设置CMAKE_MODULE_PATH相对位置吗?
3 回答
- 3 回答
- 0 关注
- 2669 浏览
添加回答
举报
0/150
提交
取消