包变量的CMake名称
CMake name of package variables
在 CMake(OS X Yosemite 上的 3.1.1 版本)上,不同包使用 find_package
设置的变量似乎遵循不同的约定。
使用 find_package(OpenGL)
,设置变量 OPENGL_LIBRARY
和 OPENGL_INCLUDE_DIR
(区分大小写)。
但是对于 find_package(OpenCV)
,具有这些名称的变量保持为空,但 OpenCV_LIBS
得到设置。
什么是正确的约定,有没有办法强制 CMake 在任何平台上使用它?
记录了正确的约定 here。例如,名为 Foo
的包应该在非缓存 Foo_LIBRARIES
变量中提供其库,并在非缓存 Foo_INCLUDE_DIRS
变量中提供其包含目录。
因为遵循这些约定完全取决于 CMake 查找模块的维护者,因此无法强制执行。
在 CMake(OS X Yosemite 上的 3.1.1 版本)上,不同包使用 find_package
设置的变量似乎遵循不同的约定。
使用 find_package(OpenGL)
,设置变量 OPENGL_LIBRARY
和 OPENGL_INCLUDE_DIR
(区分大小写)。
但是对于 find_package(OpenCV)
,具有这些名称的变量保持为空,但 OpenCV_LIBS
得到设置。
什么是正确的约定,有没有办法强制 CMake 在任何平台上使用它?
记录了正确的约定 here。例如,名为 Foo
的包应该在非缓存 Foo_LIBRARIES
变量中提供其库,并在非缓存 Foo_INCLUDE_DIRS
变量中提供其包含目录。
因为遵循这些约定完全取决于 CMake 查找模块的维护者,因此无法强制执行。