# Copyright 2019, Collabora, Ltd. # SPDX-License-Identifier: BSL-1.0 spirv_shaders(SHADER_HEADERS shaders/distortion.vert shaders/none.frag shaders/panotools.frag shaders/vive.frag ) set(GL_SOURCE_FILES ${SHADER_HEADERS} client/comp_gl_client.c client/comp_gl_client.h client/comp_vk_client.c client/comp_vk_client.h client/comp_xlib_client.c common/comp_vk.c common/comp_vk.h common/comp_vk_swapchain.h common/comp_vk_swapchain.c main/comp_client_interface.h main/comp_compositor.c main/comp_compositor.h main/comp_distortion.c main/comp_distortion.h main/comp_documentation.h main/comp_glue_gl.c main/comp_glue_vk.c main/comp_glue_xlib.c main/comp_renderer.c main/comp_renderer.h main/comp_settings.c main/comp_settings.h main/comp_swapchain.c main/comp_window.h main/comp_window_direct_mode.cpp main/comp_window_xcb.cpp main/comp_window_wayland.c ) if (${XCB_FOUND}) add_definitions(-DVK_USE_PLATFORM_XCB_KHR) add_definitions(-DVK_USE_PLATFORM_XLIB_XRANDR_EXT) endif() # generate wayland protocols if("${WAYLAND_FOUND}" AND "${WAYLAND_SCANNER_FOUND}" AND "${WAYLAND_PROTOCOLS_FOUND}" AND "${BUILD_WITH_WAYLAND}") pkg_get_variable(WL_PROTOS_PKG_DIR wayland-protocols pkgdatadir) pkg_get_variable(WL_SCANNER wayland-scanner wayland_scanner) set(WL_PROTOS_DIR "${CMAKE_CURRENT_BINARY_DIR}/wayland-protocols/") file(MAKE_DIRECTORY "${WL_PROTOS_DIR}") set(WL_PROTOS_XML "${WL_PROTOS_PKG_DIR}/stable/xdg-shell/xdg-shell.xml") set(WL_PROTOS_C "${WL_PROTOS_DIR}/xdg-shell.c") set(WL_PROTOS_H "${WL_PROTOS_DIR}/xdg-shell-client-protocol.h") add_custom_command( COMMAND ${WL_SCANNER} private-code "${WL_PROTOS_XML}" "${WL_PROTOS_C}" OUTPUT "${WL_PROTOS_C}" VERBATIM) add_custom_command( COMMAND ${WL_SCANNER} client-header "${WL_PROTOS_XML}" "${WL_PROTOS_H}" OUTPUT "${WL_PROTOS_H}" VERBATIM) set(WL_PROTOS_SRC ${WL_PROTOS_C} ${WL_PROTOS_H}) add_definitions(-DVK_USE_PLATFORM_WAYLAND_KHR) endif() if (${VULKAN_ENABLE_VALIDATION}) add_definitions(-DXRT_ENABLE_VK_VALIDATION) endif() # Use OBJECT to not create a archive, since it just gets in the way. add_library(comp OBJECT ${GL_SOURCE_FILES} ${WL_PROTOS_SRC}) set_property(TARGET comp PROPERTY POSITION_INDEPENDENT_CODE ON) target_include_directories(comp PRIVATE ${XCB_INCLUDE_DIRS} ${VULKAN_INCLUDE_DIR} ${WL_PROTOS_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../include ${CMAKE_CURRENT_SOURCE_DIR}/../auxiliary ${CMAKE_CURRENT_SOURCE_DIR}/../../external ${CMAKE_CURRENT_BINARY_DIR} ) add_subdirectory(shaders)