Добавление содержимого из подкаталога для сборки

Я возился с OpenGL в C++ около недели и начал использовать файлы для своих шейдеров. Обратите внимание, что они живут в ./shaders/core.*, оканчивающемся на .frag или .vert.

Используя CMake, я думал, что это будет так же просто, как add_subdirectory(shaders) и включить CMakeLists.txt в подкаталог. Я ошибался.

Мой текущий корень CMakeLists.txt:

cmake_minimum_required(VERSION 3.7)
project(OpenGL)

set(CMAKE_CXX_STANDARD 14)

find_package(OpenGL REQUIRED)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -framework OpenGL -lglfw -lglew")

add_subdirectory(shaders)

set(SOURCE_FILES
        main.cpp
        shader.h
)

add_executable(OpenGL ${SOURCE_FILES})

И ./shaders/CMakeLists.txt:

set(SAHDERS_SOURCE_FILES
        core.frag
        core.vert
)

set_source_files_properties(${SHADERS_SOURCE_FILES} PROPERTIES HEADER_FILE_ONLY TRUE)

add_library(shaders ${SHADERS_SOURCE_FILES})

Текущая настройка дала мне некоторую надежду на то, от чего я собирался отказаться, поскольку она, наконец, сгенерировала shaders.dir в папке cmake-build-debug, но не добавила файлы шейдеров.

Столько всего перепробовал и почти ничего не добился. Если бы кто-то мог направить меня на правильный путь для этого, это было бы очень признательно.


person jammehcow    schedule 09.09.2017    source источник
comment
Что cmake должен делать с файлами шейдеров? Разве add_library не должен создавать статическую или разделяемую библиотеку?   -  person user7860670    schedule 10.09.2017
comment
Если вы просто хотите скопировать шейдеры, посмотрите stackoverflow.com/questions/34799916/   -  person camelCase    schedule 10.09.2017