Я возился с 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
, но не добавила файлы шейдеров.
Столько всего перепробовал и почти ничего не добился. Если бы кто-то мог направить меня на правильный путь для этого, это было бы очень признательно.
add_library
не должен создавать статическую или разделяемую библиотеку? - person user7860670   schedule 10.09.2017