On 18 October 2016 at 18:33, Chad Versace <chadvers...@chromium.org> wrote:
> This patch contains just the CMake changes for the new surfaceless_egl
> platform. Code will come in the following patches.
>
> Cc: Gurchetan Singh <gurchetansi...@chromium.org>
> Cc: Haixia Shi <h...@chromium.org>
> ---
>  Options.cmake                                       |  3 +++
>  cmake/Modules/WaffleDefineCompilerFlags.cmake       |  4 ++++
>  cmake/Modules/WaffleDefineInternalOptions.cmake     |  3 ++-
>  cmake/Modules/WafflePrintConfigurationSummary.cmake |  3 +++
>  cmake/Modules/WaffleValidateOptions.cmake           | 15 ++++++++++++++-
>  5 files changed, 26 insertions(+), 2 deletions(-)
>
> diff --git a/Options.cmake b/Options.cmake
> index 4f097a0..699ec59 100644
> --- a/Options.cmake
> +++ b/Options.cmake
> @@ -23,11 +23,14 @@ if(waffle_on_linux)
>          set(gbm_default OFF)
>      endif()
>
> +    set(surfaceless_egl_default ${egl_FOUND})
> +
>      # On Linux, you must enable at least one of the below options.
>      option(waffle_has_glx "Build support for GLX" ${glx_default})
>      option(waffle_has_wayland "Build support for Wayland" ${wayland_default})
>      option(waffle_has_x11_egl "Build support for X11/EGL" ${x11_egl_default})
>      option(waffle_has_gbm "Build support for GBM" ${gbm_default})
> +    option(waffle_has_surfaceless_egl "Build support for 
> EGL_MESA_platform_surfaceless" ${surfaceless_egl_default})
>      option(waffle_has_nacl "Build support for NaCl" OFF)
>
>      # NaCl specific settings.
> diff --git a/cmake/Modules/WaffleDefineCompilerFlags.cmake 
> b/cmake/Modules/WaffleDefineCompilerFlags.cmake
> index 7b67325..4eb4392 100644
> --- a/cmake/Modules/WaffleDefineCompilerFlags.cmake
> +++ b/cmake/Modules/WaffleDefineCompilerFlags.cmake
> @@ -122,6 +122,10 @@ if(waffle_on_linux)
>          add_definitions(-DWAFFLE_HAS_GBM)
>      endif()
>
> +    if(waffle_has_surfaceless_egl)
> +        add_definitions(-DWAFFLE_HAS_SURFACELESS_EGL)
> +    endif()
> +
>      if(waffle_has_tls)
>          add_definitions(-DWAFFLE_HAS_TLS)
>      endif()
> diff --git a/cmake/Modules/WaffleDefineInternalOptions.cmake 
> b/cmake/Modules/WaffleDefineInternalOptions.cmake
> index 3ef7a25..b3a4f7b 100644
> --- a/cmake/Modules/WaffleDefineInternalOptions.cmake
> +++ b/cmake/Modules/WaffleDefineInternalOptions.cmake
> @@ -1,4 +1,5 @@
> -if(waffle_has_wayland OR waffle_has_x11_egl OR waffle_has_gbm)
> +if(waffle_has_wayland OR waffle_has_x11_egl OR waffle_has_gbm OR
> +   waffle_has_surfaceless_egl)
>      set(waffle_has_egl TRUE)
>  else(waffle_has_wayland OR waffle_has_x11_egl)
IIRC expressions in the else statements are meaningless in cmake.

Can we drop the above one (which seems to be the only such case in
waffle) ? Be that here or as separate commit ?

>      set(waffle_has_egl FALSE)
> diff --git a/cmake/Modules/WafflePrintConfigurationSummary.cmake 
> b/cmake/Modules/WafflePrintConfigurationSummary.cmake
> index 1199ea3..f36555c 100644
> --- a/cmake/Modules/WafflePrintConfigurationSummary.cmake
> +++ b/cmake/Modules/WafflePrintConfigurationSummary.cmake
> @@ -47,6 +47,9 @@ endif()
>  if(waffle_has_gbm)
>      message("    gbm")
>  endif()
> +if(waffle_has_surfaceless_egl)
> +    message("    surfaceless_egl")
> +endif()
>  if(waffle_on_windows)
>      message("    wgl")
>  endif()
> diff --git a/cmake/Modules/WaffleValidateOptions.cmake 
> b/cmake/Modules/WaffleValidateOptions.cmake
> index 1275463..8f83338 100644
> --- a/cmake/Modules/WaffleValidateOptions.cmake
> +++ b/cmake/Modules/WaffleValidateOptions.cmake
> @@ -47,12 +47,14 @@ endif()
>  if(waffle_on_linux)
>      if(NOT waffle_has_glx AND NOT waffle_has_wayland AND
>         NOT waffle_has_x11_egl AND NOT waffle_has_gbm AND
> +       NOT waffle_has_surfaceless_egl AND
>         NOT waffle_has_nacl)
>          message(FATAL_ERROR
>                  "Must enable at least one of: "
>                  "waffle_has_glx, waffle_has_wayland, "
>                  "waffle_has_x11_egl, waffle_has_gbm, "
> -                "waffle_has_nacl.")
> +                "waffle_has_surfaceless_egl, "
> +                "waffle_has_nacl")
>      endif()
>      if(waffle_has_nacl)
>          if(NOT EXISTS ${nacl_sdk_path})
> @@ -149,6 +151,11 @@ if(waffle_on_linux)
>              message(FATAL_ERROR "x11_egl dependency is missing: 
> ${x11_egl_missing_deps}")
>          endif()
>      endif()
> +    if(waffle_has_surfaceless_egl)
> +        if(NOT egl_FOUND)
> +            message(FATAL_ERROR "surfaceless_egl dependency is missing: egl")
> +        endif()
> +    endif()
I'm wondering if we cannot rework these (or the whole file in general)
to minimise the boilerplate.
Sadly no wise ideas come to mind :-(

>  elseif(waffle_on_mac)
>      if(waffle_has_gbm)
>          message(FATAL_ERROR "Option is not supported on Darwin: 
> waffle_has_gbm.")
> @@ -162,6 +169,9 @@ elseif(waffle_on_mac)
>      if(waffle_has_x11_egl)
>          message(FATAL_ERROR "Option is not supported on Darwin: 
> waffle_has_x11_egl.")
>      endif()
> +    if(waffle_has_surfaceless_egl)
> +        message(FATAL_ERROR "Option is not supported on Darwin: 
> waffle_has_surfaceless_egl.")
> +    endif()
>  elseif(waffle_on_windows)
>      if(waffle_has_gbm)
>          message(FATAL_ERROR "Option is not supported on Windows: 
> waffle_has_gbm.")
> @@ -175,4 +185,7 @@ elseif(waffle_on_windows)
>      if(waffle_has_x11_egl)
>          message(FATAL_ERROR "Option is not supported on Windows: 
> waffle_has_x11_egl.")
>      endif()
> +    if(waffle_has_surfaceless_egl)
> +        message(FATAL_ERROR "Option is not supported on Darwin: 
> waffle_has_surfaceless_egl.")
... because the about should read s/Darwin/Windows/

-Emil
_______________________________________________
waffle mailing list
waffle@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/waffle

Reply via email to