在CMake上(OS X Yosemite上的版本3.1.1),使用find_package
的不同包设置的变量似乎遵循不同的约定。
使用find_package(OpenGL)
,变量OPENGL_LIBRARY
和OPENGL_INCLUDE_DIR
得到设置(区分大小写)。
但是对于find_package(OpenCV)
,包含这些名称的变量仍为空,但OpenCV_LIBS
已设置。
什么是正确的约定,有没有办法迫使CMake在任何平台上使用它?
答案 0 :(得分:3)
正确的约定记录在案here。例如,名为Foo
的包应该使其库在非缓存的Foo_LIBRARIES
变量中可用,并且在非缓存的Foo_INCLUDE_DIRS
变量中包含目录。
因为完全由CMake查找模块的维护者来遵循这些约定,所以没有办法强制执行它们。