无法在子CMake项目中包含glm

时间:2019-04-01 11:15:34

标签: c++ opengl cmake glm-math

我有一个这样的项目结构(简化):

3rdparty 
    |--glm
src
   |--graphics
      |--Shader.cpp
      |--Shader.h
      |--CMakeLists.txt (3)
   |--CMakeLists.txt (2)
CMakeLists.txt (1)

在(1)中,我有:

add_executable(Main main.cpp
        $<TARGET_OBJECTS:${PROJECT_NAME}-graphics>)

...

target_include_directories(${PROJECT_NAME}-graphics PRIVATE ${CMAKE_SOURCE_DIR}/src)

...


include_directories(3rdparty/glm)
link_libraries(3rdparty/glm)
target_link_libraries(Main glm)

在(2)中,我有:

include_directories(
        ${CMAKE_CURRENT_SOURCE_DIR}/graphics
)
add_subdirectory(graphics)

在(3)中,我有:

add_library(${PROJECT_NAME}-graphics OBJECT
        Shader.cpp
        )

target_link_libraries(${PROJECT_NAME}-graphics glm glfw ${GLEW_LIBRARIES} )

使用此设置,我无法从Shader源文件中包含glm / glm.hpp(我可以从main.cpp中执行此操作)。我没有问题,包括与glfw / glew相关的东西。我对CMake不太熟悉,我在做什么错?另外,我的方法是设置CMake项目的正确方法吗?

0 个答案:

没有答案