mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-11-12 14:57:20 +00:00
Build the Windows client against the MSVC ABI while retaining clang language support. Use vcpkg for ANGLE and libsamplerate, and build MsQuic with its bundled static OpenSSL.
119 lines
2.7 KiB
CMake
119 lines
2.7 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
project(renderer_EGL LANGUAGES C CXX)
|
|
|
|
include(MakeObject)
|
|
function(build_shaders header_dir)
|
|
file(GLOB headers "${header_dir}/*.h")
|
|
set(EGL_SHADER_PROCESSED)
|
|
set(include_dir "${CMAKE_CURRENT_SOURCE_DIR}/${header_dir}")
|
|
foreach(shader ${ARGN})
|
|
set(out_f "${CMAKE_CURRENT_BINARY_DIR}/${shader}")
|
|
add_custom_command(
|
|
OUTPUT "${out_f}"
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
"-DLG_MAKE_OBJECT_ACTION=PREPROCESS"
|
|
"-DLG_MAKE_OBJECT_INPUT=${CMAKE_CURRENT_SOURCE_DIR}/${shader}"
|
|
"-DLG_MAKE_OBJECT_OUTPUT=${out_f}"
|
|
"-DLG_MAKE_OBJECT_INCLUDE_DIR=${include_dir}"
|
|
-P "${LG_MAKE_OBJECT_SCRIPT}"
|
|
MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/${shader}"
|
|
DEPENDS ${headers} "${LG_MAKE_OBJECT_SCRIPT}"
|
|
COMMENT "Preprocessing shader ${shader}"
|
|
VERBATIM
|
|
)
|
|
endforeach()
|
|
|
|
set(CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
|
make_object(
|
|
EGL_SHADER
|
|
${ARGN}
|
|
)
|
|
|
|
set(EGL_SHADER_OBJS "${EGL_SHADER_OBJS}" PARENT_SCOPE)
|
|
set(EGL_SHADER_INCS "${EGL_SHADER_INCS}" PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
build_shaders(
|
|
shader
|
|
shader/desktop.vert
|
|
shader/desktop_rgb.frag
|
|
shader/cursor.vert
|
|
shader/cursor_rgb.frag
|
|
shader/cursor_mono.frag
|
|
shader/damage.vert
|
|
shader/damage.frag
|
|
shader/hdr_overlay.vert
|
|
shader/hdr_overlay.frag
|
|
shader/hdr_compose.vert
|
|
shader/hdr_compose.frag
|
|
shader/basic.vert
|
|
shader/hdr_decode.frag
|
|
shader/convert_24bit.frag
|
|
shader/ffx_cas.frag
|
|
shader/ffx_fsr1_easu.frag
|
|
shader/ffx_fsr1_rcas.frag
|
|
shader/downscale.frag
|
|
shader/downscale_lanczos2.frag
|
|
shader/downscale_linear.frag
|
|
)
|
|
|
|
make_defines(
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/shader/desktop_rgb.frag"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/shader/desktop_rgb.def.h"
|
|
)
|
|
|
|
set(RENDERER_EGL_SOURCES
|
|
egl.c
|
|
egldebug.c
|
|
state.c
|
|
shader.c
|
|
texture_util.c
|
|
texture.c
|
|
texture_buffer.c
|
|
texture_external.c
|
|
texture_framebuffer.c
|
|
model.c
|
|
desktop.c
|
|
desktop_rects.c
|
|
cursor.c
|
|
damage.c
|
|
hdr_overlay.c
|
|
hdr_compose.c
|
|
framebuffer.c
|
|
effect.c
|
|
postprocess.c
|
|
postprocess_order.c
|
|
ffx.c
|
|
filter_glsl.c
|
|
filter_24bit.c
|
|
filter_hdr.c
|
|
filter_ffx_cas.c
|
|
filter_ffx_fsr1.c
|
|
filter_downscale.c
|
|
${EGL_SHADER_OBJS}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/shader/desktop_rgb.def.h"
|
|
)
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
list(APPEND RENDERER_EGL_SOURCES texture_dmabuf.c)
|
|
else()
|
|
list(APPEND RENDERER_EGL_SOURCES texture_dmabuf_stub.c)
|
|
endif()
|
|
|
|
add_library(renderer_EGL STATIC ${RENDERER_EGL_SOURCES})
|
|
|
|
target_compile_definitions(renderer_EGL PRIVATE CIMGUI_DEFINE_ENUMS_AND_STRUCTS=1 IMGUI_IMPL_OPENGL_ES3)
|
|
|
|
target_link_libraries(renderer_EGL
|
|
lg_egl_provider
|
|
lg_common
|
|
|
|
lg_gui
|
|
)
|
|
|
|
target_include_directories(renderer_EGL
|
|
PRIVATE
|
|
src
|
|
${EGL_SHADER_INCS}
|
|
)
|