[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