# EGL powers the surfaceless headless context the GL tests assert pixels # against. It is a *test-only* dependency: plot_core never links or includes it, # so a machine without EGL can still build the library (-DPLOT_BUILD_TESTS=OFF). # Prefer CMake's own module, fall back to pkg-config, and fail loudly if neither # can supply EGL rather than silently dropping the GL tests. find_package(EGL QUIET) if(NOT EGL_FOUND) find_package(PkgConfig QUIET) if(PkgConfig_FOUND) pkg_check_modules(EGL_PC QUIET IMPORTED_TARGET egl) endif() endif() if(TARGET EGL::EGL) set(plot_egl_library EGL::EGL) elseif(TARGET PkgConfig::EGL_PC) set(plot_egl_library PkgConfig::EGL_PC) else() message(FATAL_ERROR "plot: PLOT_BUILD_TESTS=ON requires EGL (EGL/egl.h plus libEGL) for the headless " "OpenGL context used by the GL tests. Install it (e.g. libegl-dev, libegl1-mesa-dev " "or mesa-libEGL-devel) or configure with -DPLOT_BUILD_TESTS=OFF.") endif() add_executable(plot_tests main.cpp test_transform.cpp test_gl_context.cpp egl_headless.cpp ) target_link_libraries(plot_tests PRIVATE plot::core ${plot_egl_library}) plot_apply_warnings(plot_tests) add_test(NAME plot_tests COMMAND plot_tests)