2015-02-07 76 views
1

在CMake(OS X Yosemite上的3.1.1版)中,由不同軟件包使用find_package設置的變量似乎遵循不同的約定。軟件包變量的CMake名稱

隨着find_package(OpenGL),變量OPENGL_LIBRARYOPENGL_INCLUDE_DIR被設置(區分大小寫)。

但與find_package(OpenCV),這些名稱的變量保持空白,但OpenCV_LIBS設置。

什麼是正確的約定,有沒有辦法強迫CMake在任何平臺上使用它?

回答

2

正確的約定記錄在here。例如,一個名爲Foo的程序包應該使其非庫緩存的Foo_LIBRARIES變量中的庫可用,並將其包含的目錄放入非緩存的變量Foo_INCLUDE_DIRS中。

因爲它完全取決於CMake查找模塊的維護者遵循這些約定,因此無法執行它們。