GLFW also works on linux so allow proper fallback handling of tests.
This means Waffle to GLFW to GLUT.
---
 CMakeLists.txt |   56 +++++++++++++++++++++++++++-----------------------------
 1 file changed, 27 insertions(+), 29 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3dd488f..b70ae1d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,31 +26,29 @@ else()
        find_package(OpenGL)
 endif()
 
-if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-       option(PIGLIT_USE_WAFFLE "Use Waffle in place of GLUT" ON)
-       option(PIGLIT_USE_GLFW3 "Use GLFW in place of GLUT" ON)
-else()
-       option(PIGLIT_USE_WAFFLE "Use Waffle in place of GLUT" OFF)
-       option(PIGLIT_USE_GLFW3 "Use GLFW in place of GLUT" ON)
-endif()
+option(PIGLIT_USE_WAFFLE "Attempt to use Waffle in place of GLUT" ON)
+option(PIGLIT_USE_GLFW3 "Attempt to use GLFW in place of GLUT" ON)
 
 if(PIGLIT_USE_WAFFLE)
-       pkg_check_modules(WAFFLE REQUIRED waffle-1>=1.2.2)
+       pkg_check_modules(WAFFLE waffle-1>=1.2.2)
+
+       if(WAFFLE_FOUND)
+               add_definitions(-DPIGLIT_USE_WAFFLE)
+               set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WAFFLE_CFLAGS}")
+               set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WAFFLE_CFLAGS}")
+       else()
+               # Waffle not found.
+               set(PIGLIT_USE_WAFFLE OFF CACHE "" FORCE)
+    endif()
 
-       if(NOT WAFFLE_FOUND)
-               message(FATAL_ERROR "Failed to find Waffle. If Waffle is not "
-               "packaged for your distribution, you can get it at "
-               "http://people.freedesktop.org/~chadversary/waffle.";
-       )
-        endif()
 
-        add_definitions(-DPIGLIT_USE_WAFFLE)
-       set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WAFFLE_CFLAGS}")
-       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WAFFLE_CFLAGS}")
-elseif(PIGLIT_USE_GLFW3)
-       pkg_search_module(GLFW3  glfw3)
+endif(PIGLIT_USE_WAFFLE)
+
+if(PIGLIT_USE_GLFW3 AND( NOT PIGLIT_USE_WAFFLE))
+       pkg_search_module(GLFW3 glfw3)
        if(GLFW3_FOUND)
                include_directories(${GLFW3_INCLUDE_DIRS})
+               add_definitions(-DPIGLIT_USE_GLFW3)
        else()
                if(EXISTS "${CMAKE_SOURCE_DIR}/glfw/CMakeLists.txt")
                        set(GLFW_BUILD_EXAMPLES OFF CACHE STRING "" FORCE)
@@ -84,18 +82,17 @@ elseif(PIGLIT_USE_GLFW3)
                         RUNTIME_OUTPUT_DIRECTORY_DEBUG 
"${CMAKE_BINARY_DIR}/bin"
                         RUNTIME_OUTPUT_DIRECTORY_RELEASE 
"${CMAKE_BINARY_DIR}/bin"
                         )
-                if(MSVC_IDE)
-                endif()
                        endif(WIN32)
+                       add_definitions(-DPIGLIT_USE_GLFW3)
                else()
-                       message(FATAL_ERROR "Failed to find GLFW version 3.\n"
-                               "If GLFW3 is not installed, You can download 
GLFW3 from "
-                               "their website at http://www.glfw.org/";
-                       )
+                       # GLFW3 not found.
+                       set(PIGLIT_USE_GLFW3 OFF CACHE "" FORCE)
                endif()
        endif()
-        add_definitions(-DPIGLIT_USE_GLFW3)
-else()
+
+endif(PIGLIT_USE_GLFW3 AND( NOT PIGLIT_USE_WAFFLE))
+
+if(NOT (PIGLIT_USE_GLFW3 OR PIGLIT_USE_WAFFLE))
        find_package(GLUT REQUIRED)
 
        # The 'REQUIRED' above correctly produces an error for
@@ -109,9 +106,10 @@ else()
        #
        # Work around the bug and error out quickly here instead.
        if (NOT GLUT_FOUND)
-               message(FATAL_ERROR "GLUT library not found")
+                message(FATAL_ERROR 
+                       "Unable to find Framework to use. Please Install GLUT, 
GLFW, nor Waffle.")
        endif()
-endif(PIGLIT_USE_WAFFLE)
+endif(NOT (PIGLIT_USE_GLFW3 OR PIGLIT_USE_WAFFLE))
 
 if(PIGLIT_BUILD_GLES1_TESTS AND NOT PIGLIT_USE_WAFFLE)
        message(FATAL_ERROR "Option PIGLIT_BUILD_GLES1_TESTS requires 
PIGLIT_USE_WAFFLE")
-- 
1.7.9.5

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to