Невозможно включить glm в проекты sub CMake - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть такая структура проекта (упрощенно):

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} )

Используя эту настройку, я не могу включить glm / glm.hpp из исходных файлов моего шейдера (я могу сделать это из main.cpp). У меня нет проблем, включая GLFW / GLEW связанные вещи внутри. Я не очень знаком с CMake, что я там не так делаю? Кроме того, мой способ правильный способ настройки проектов CMake?

...