Diggler/src/render/CMakeLists.txt

52 lines
1.8 KiB
CMake

set(DIGGLER_ENABLE_GL_RENDERER TRUE CACHE BOOL "Enable OpenGL (ES) renderer")
set(DIGGLER_ENABLE_VK_RENDERER TRUE CACHE BOOL "Enable Vulkan renderer")
set(DIGGLER_GL_LOADER "libepoxy" CACHE STRING
"OpenGL loader to use. One of 'libepoxy', 'glad', 'glbinding', 'glew'")
if (DIGGLER_ENABLE_GL_RENDERER)
if ("${DIGGLER_GL_LOADER}" STREQUAL "libepoxy")
pkg_search_module(EPOXY REQUIRED epoxy)
set(DIGGLER_GL_USE_LIBEPOXY TRUE)
set(DIGGLER_GL_LOADER_SUPPORTED TRUE)
diggler_add_definition("DIGGLER_GL_USE_LIBEPOXY")
diggler_include_directories(${EPOXY_INCLUDE_DIRS})
diggler_link_libraries(${EPOXY_LIBRARIES})
endif()
if ("${DIGGLER_GL_LOADER}" STREQUAL "glad")
set(DIGGLER_GL_USE_GLAD TRUE)
set(DIGGLER_GL_LOADER_SUPPORTED TRUE)
diggler_add_definition("DIGGLER_GL_USE_GLAD")
diggler_add_sources("${CMAKE_CURRENT_SOURCE_DIR}/../glad.c")
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
diggler_link_libraries(dl)
endif()
endif()
if ("${DIGGLER_GL_LOADER}" STREQUAL "glbinding")
find_package(glbinding REQUIRED)
set(DIGGLER_GL_USE_GLAD TRUE)
set(DIGGLER_GL_LOADER_SUPPORTED TRUE)
diggler_add_definition("DIGGLER_GL_USE_GLBINDING")
diggler_include_directories(${glbinding_INCLUDE_DIRS})
diggler_link_libraries(glbinding)
endif()
if ("${DIGGLER_GL_LOADER}" STREQUAL "glew")
pkg_search_module(GLEW REQUIRED glew)
set(DIGGLER_GL_USE_GLEW TRUE)
set(DIGGLER_GL_LOADER_SUPPORTED TRUE)
diggler_add_definition("DIGGLER_GL_USE_GLEW")
diggler_include_directories(${GLEW_INCLUDE_DIRS})
diggler_link_libraries(${GLEW_LIBRARIES})
endif()
if (NOT DIGGLER_GL_LOADER_SUPPORTED)
message(SEND_ERROR "OpenGL loader \"${DIGGLER_GL_LOADER}\" is unsupported")
endif()
add_subdirectory("gl")
endif()
if (DIGGLER_ENABLE_VK_RENDERER)
add_subdirectory("vk")
endif()