我正在开发两个CMake项目:libABC
和libXYZ
。 libXYZ
需要libABC
,因此我希望在Mac和Linux计算机上的适当位置安装FindABC.cmake
。
libABC
及其相关文件默认安装在/usr/local
下,我认为FindABC.cmake
也应安装在同一目录下。我尝试在以下六个不同的位置安装它。
/usr/local/lib/cmake/ABC/FindABC.cmake
/usr/local/share/cmake/ABC/FindABC.cmake
/usr/local/lib/ABC/FindABC.cmake
/usr/local/share/ABC/FindABC.cmake
/usr/local/lib/ABC/cmake/FindABC.cmake
/usr/local/share/ABC/cmake/FindABC.cmake
但CMakeList.txt
的{{1}}找不到以下错误。
libXYZ
我的CMake Error at CMakeLists.txt:51 (find_package):
By not providing "FindABC.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"ABC", but CMake did not find one.
命令已安装在cmake
下,在OS X上使用MacPorts。所以我认为它不是/opt/local
,而只是/usr/local
。
我知道在执行/opt/local
命令时定义CMAKE_MODULE_PATH
解决了这个问题(例如,cmake
),但我不想让所有用户每次都这样做。
我的问题是
Q1。在cmake -DCMAKE_MODULE_PATH=/usr/local/lib/cmake/ABC
安装过程中,我应该在哪里安装FindABC.cmake
?
Q2。如果libABC
FindABC.cmake
CMakeLists.txt
没有硬编码libXYZ
,我如何正确查找CMAKE_MODULE_PATH
?