Re: [waffle] [PATCH 4/7] cmake: Add option waffle_has_surfaceless_egl

2016-10-29 Thread Chad Versace
On Wed 19 Oct 2016, Emil Velikov wrote:
> On 18 October 2016 at 18:33, Chad Versace  wrote:
> > This patch contains just the CMake changes for the new surfaceless_egl
> > platform. Code will come in the following patches.
> >
> > Cc: Gurchetan Singh 
> > Cc: Haixia Shi 
> > ---
> >  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/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 ?

Done. I have a local commit that drops it. It's trivial, so I'll just
push it with this series.



> > @@ -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 :-(

Sigh... I felt the pain of the boilerplate when writing this patch.
Likewise, I saw no easy fix.

> > @@ -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/

Oops. Fixed locally.
___
waffle mailing list
waffle@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/waffle


Re: [waffle] [PATCH 4/7] cmake: Add option waffle_has_surfaceless_egl

2016-10-18 Thread Emil Velikov
On 18 October 2016 at 18:33, Chad Versace  wrote:
> This patch contains just the CMake changes for the new surfaceless_egl
> platform. Code will come in the following patches.
>
> Cc: Gurchetan Singh 
> Cc: Haixia Shi 
> ---
>  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_h

[waffle] [PATCH 4/7] cmake: Add option waffle_has_surfaceless_egl

2016-10-18 Thread Chad Versace
This patch contains just the CMake changes for the new surfaceless_egl
platform. Code will come in the following patches.

Cc: Gurchetan Singh 
Cc: Haixia Shi 
---
 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)
 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()
 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.")
+endif()
 endif()
-