2012-08-22 30 views
1

我已經把這兩行放在我的Findglm.cmake文件中以指向這個頭文件庫的頭文件。Cmake腳本問題find_path

find_path(glm_INCLUDE_DIR NAMES glm.hpp matrix_transform.hpp type_ptr.hpp PATHS 
    ${CMAKE_SOURCE_DIR}/libs/glm-0.9.3.2/glm ${CMAKE_SOURCE_DIR}/libs/glm-0.9.3.2/glm/gtc 
    ${CMAKE_SOURCE_DIR}/libs/glm-0.9.3.2/glm/gtx ${CMAKE_SOURCE_DIR}/libs/glm-0.9.3.2glm/core) 
set(glm_INCLUDE_DIRS ${glm_INCLUDE_DIR}) 

然而,當我生成我的Xcode項目它說,它無法找到matrix_transform.hpp和type_ptr.hpp

我與周圍打出這樣一些似乎只能找到我想知道的第一個參數如果我使用查找路徑錯誤?

我正在使用cmake 2.8.8 darwinports。

+0

我知道一個FindX.cmake用於找出include目錄和庫目錄是用於通用os搜索的,其實我所做的應該放在我的cmake.txt文件中,但是幫助我。 –

+0

您是否執行了以下命令:'include_directories($ glm_INCLUDE_DIRS)'? –

+0

是在我CMake.txt我執行 find_package(魔鬼必填) include_directories($ {} DevIL_INCLUDE_DIRS) 集(LIBS $ {LIBS} $ {} DevIL_LIBRARY) find_package(GLFW必填) include_directories($ {glfw_INCLUDE_DIRS }) 組(LIBS $ {LIBS} $ {glfw_LIBRARIES}) find_package(GLM REQUIRED) include_directories($ {glm_INCLUDE_DIRS}) find_package(Assimp REQUIRED) include_directories($ {Assimp_INCLUDE_DIRS}) 組(LIBS $ {LIBS} $ {Assimp_LIBRARIES}) –

回答

1

find_path()命令返回單個目錄。就你而言,它是第一個包含第一個文件的目錄。

如果GLM將始終位於你的源代碼目錄,這將是足以完成

include_directories(${CMAKE_SOURCE_DIR}/libs/glm-0.9.3.2/glm 
    ${CMAKE_SOURCE_DIR}/libs/glm-0.9.3.2/glm/gtc 
    ${CMAKE_SOURCE_DIR}/libs/glm-0.9.3.2/glm/gtx 
    ${CMAKE_SOURCE_DIR}/libs/glm-0.9.3.2/glm/core) 

find_path()用於確定您的項目之外的某處目錄。

+0

您的權利我一直在錯誤地使用它,我將不得不循環每一個或者像上面那樣做,它可能會更聰明。 –