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

Mircea Gherzan mircea.gherzan at intel.com
Wed Apr 20 16:23:00 UTC 2016


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)

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


More information about the Piglit mailing list