52 lines
1.8 KiB
CMake
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()
|