[Piglit] [PATCH] cmake: don't fail, on Linux, if X11 is not found

Dylan Baker baker.dylan.c at gmail.com
Wed Apr 20 17:58:13 UTC 2016


Quoting Mircea Gherzan (2016-04-20 09:23:00)
> On 16-Feb-16 9:12 PM, Dylan Baker wrote:
> > Quoting Mircea Gherzan (2016-02-16 10:54:30)
> >> If X11 is not found then GLX cannot be available, so just disable the
> >> building of the OpenGL test instead of hardcoding libGL/GLX as a build
> >> requirement. GLES tests are on by default on Linux, so the build still
> >> makes sense.
> >>
> >> Signed-off-by: Mircea Gherzan <mircea.gherzan at intel.com>
> >> ---
> >>  CMakeLists.txt | 4 ++++
> >>  1 file changed, 4 insertions(+)
> >>
> >> diff --git a/CMakeLists.txt b/CMakeLists.txt
> >> index 736677f..902ca3e 100644
> >> --- a/CMakeLists.txt
> >> +++ b/CMakeLists.txt
> >> @@ -45,6 +45,10 @@ option(PIGLIT_BUILD_GLES2_TESTS "Build tests for OpenGL ES2" ${PIGLIT_BUILD_GLES
> >>  option(PIGLIT_BUILD_GLES3_TESTS "Build tests for OpenGL ES3" ${PIGLIT_BUILD_GLES_TESTS_DEFAULT})
> >>  option(PIGLIT_BUILD_CL_TESTS "Build tests for OpenCL" OFF)
> >>
> >> +if((NOT X11_FOUND) AND (CMAKE_SYSTEM_NAME STREQUAL "Linux"))
> >> +       set(PIGLIT_BUILD_GL_TESTS OFF)
> >> +endif()
> >> +
> >>  if(PIGLIT_BUILD_GL_TESTS)
> >>         find_package(OpenGL REQUIRED)
> >>  endif()
> >> --
> >> 2.5.0
> >>
> >
> > NAK. This is throwing the baby out with the bath water. We absolutely
> > don't need to have X11 to run piglit tests.
> >
> > The only things that rely on X11 directly are glean (which are going
> > away) and the EGL tests, everything else uses waffle to handle this.
> > It's trivial extend the guard around glean and add one around EGL in
> > tests/CMakeLists.txt.
> 
> Then can you please suggest another approach for allowing piglit to 
> build on a system with no X11 or GLX headers?
> 
> Right now, on such a system, I get:
> 
> CMake Error at 
> /usr/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:138 
> (message):
>    Could NOT find OpenGL (missing: OPENGL_gl_LIBRARY OPENGL_INCLUDE_DIR)
> Call Stack (most recent call first):
>    /usr/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:374 
> (_FPHSA_FAILURE_MESSAGE)
>    /usr/share/cmake-3.2/Modules/FindOpenGL.cmake:168 
> (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
>    CMakeLists.txt:49 (find_package)

Whoa, hold up. That's not GLX you're missing, that's OpenGL you're
missing. That's two completely different problems.

Are you trying to run piglit on a system with only GLES or with desktop
OpenGL but no X11 (or at least GLX)?

In the short term you could pass -DPIGLIT_BUILD_GL_TESTS=0 to cmake right?

> 
> What about the following approach?
> 
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index 8e2abba..efb03a8 100644
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -39,15 +39,17 @@ else()
>          set(PIGLIT_BUILD_GLES_TESTS_DEFAULT OFF)
>   endif()
> 
> -option(PIGLIT_BUILD_GL_TESTS "Build tests for OpenGL" ON)
>   option(PIGLIT_BUILD_GLES1_TESTS "Build tests for OpenGL ES1" 
> ${PIGLIT_BUILD_GLES_TESTS_DEFAULT})
>   option(PIGLIT_BUILD_GLES2_TESTS "Build tests for OpenGL ES2" 
> ${PIGLIT_BUILD_GLES_TESTS_DEFAULT})
>   option(PIGLIT_BUILD_GLES3_TESTS "Build tests for OpenGL ES3" 
> ${PIGLIT_BUILD_GLES_TESTS_DEFAULT})
>   option(PIGLIT_BUILD_CL_TESTS "Build tests for OpenCL" OFF)
> 
> -if(PIGLIT_BUILD_GL_TESTS)
> -       find_package(OpenGL REQUIRED)
> -endif()
> +find_package(OpenGL)
> +if (OpenGL_FOUND)
> +       option(PIGLIT_BUILD_GL_TESTS "Build tests for OpenGL" ON)
> +else ()
> +       option(PIGLIT_BUILD_GL_TESTS "Build tests for OpenGL" OFF)
> +endif ()
> 
> 
> Thanks.
> 
> -- 
> - Mircea
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20160420/acde5134/attachment.sig>


More information about the Piglit mailing list