diff mbox series

[2/2] package/cegui: select libglu when libgl is detected

Message ID 20200428195844.48124-2-b.bilas@grinn-global.com
State Changes Requested
Headers show
Series [1/2] package/cegui: force libglew when libepoxy is also enabled | expand

Commit Message

Bartosz Bilas April 28, 2020, 7:58 p.m. UTC
Fixes:
  include/GL/glew.h:1205:14: fatal error: GL/glu.h: No such file or directory

Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
---
 package/cegui/Config.in | 1 +
 package/cegui/cegui.mk  | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

Comments

Thomas Petazzoni April 29, 2020, 8:53 p.m. UTC | #1
Hello,

Adding Bernd for libglew/libglu questions.

On Tue, 28 Apr 2020 21:58:44 +0200
Bartosz Bilas <b.bilas@grinn-global.com> wrote:

> Fixes:
>   include/GL/glew.h:1205:14: fatal error: GL/glu.h: No such file or directory
> 
> Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>

This should not be solved inside cegui: it's the glew.h header that
includes GL/glu.h, so from the look of it, glew should depend on glu.

However, it turns out that glew has a GLEW_NO_GLU flag:

#ifndef GLEW_NO_GLU
/* this is where we can safely include GLU */
#  if defined(__APPLE__) && defined(__MACH__)
#    include <OpenGL/glu.h>
#  else
#    include <GL/glu.h>
#  endif
#endif

I'm not sure how we should use that GLEW_NO_GLU flag. Should it be the
responsibility of the package using glew to define it?

Could you do a bit of research on this?

Thanks,

Thomas
Bartosz Bilas April 30, 2020, 7:54 p.m. UTC | #2
Hello all,

On 29.04.2020 22:53, Thomas Petazzoni wrote:
> Hello,
>
> Adding Bernd for libglew/libglu questions.
>
> On Tue, 28 Apr 2020 21:58:44 +0200
> Bartosz Bilas <b.bilas@grinn-global.com> wrote:
>
>> Fixes:
>>    include/GL/glew.h:1205:14: fatal error: GL/glu.h: No such file or directory
>>
>> Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
> This should not be solved inside cegui: it's the glew.h header that
> includes GL/glu.h, so from the look of it, glew should depend on glu.

Are you sure? There is a couple of packages which have similar fix such as:


package/ogre/Config.in:    select BR2_PACKAGE_LIBGLU # GL/glu.h
package/supertux/Config.in:    select BR2_PACKAGE_LIBGLU # GL/glu.h
package/lugaru/Config.in:    select BR2_PACKAGE_LIBGLU # GL/glu.h

>
> However, it turns out that glew has a GLEW_NO_GLU flag:
>
> #ifndef GLEW_NO_GLU
> /* this is where we can safely include GLU */
> #  if defined(__APPLE__) && defined(__MACH__)
> #    include <OpenGL/glu.h>
> #  else
> #    include <GL/glu.h>
> #  endif
> #endif
>
> I'm not sure how we should use that GLEW_NO_GLU flag. Should it be the
> responsibility of the package using glew to define it?
>
> Could you do a bit of research on this?
I will but not in the near future.
> Thanks, Thomas 
Best
Bartek
Thomas Petazzoni May 2, 2020, 9:39 a.m. UTC | #3
On Thu, 30 Apr 2020 21:54:15 +0200
Bartosz Bilas <b.bilas@grinn-global.com> wrote:

> >> Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>  
> > This should not be solved inside cegui: it's the glew.h header that
> > includes GL/glu.h, so from the look of it, glew should depend on glu.  
> 
> Are you sure? There is a couple of packages which have similar fix such as:
> 
> package/ogre/Config.in:    select BR2_PACKAGE_LIBGLU # GL/glu.h
> package/supertux/Config.in:    select BR2_PACKAGE_LIBGLU # GL/glu.h
> package/lugaru/Config.in:    select BR2_PACKAGE_LIBGLU # GL/glu.h

And these packages are similarly wrong I believe. And yes, I am sure,
see the code below:

> > However, it turns out that glew has a GLEW_NO_GLU flag:
> >
> > #ifndef GLEW_NO_GLU
> > /* this is where we can safely include GLU */
> > #  if defined(__APPLE__) && defined(__MACH__)
> > #    include <OpenGL/glu.h>
> > #  else
> > #    include <GL/glu.h>
> > #  endif
> > #endif

This clearly shows that glew is including <GL/glu.h>. So it should be
the responsibility of glew to depend on glu, or to make it properly
optional by defining GLEW_NO_GLU.

Hopefully Bernd will be able to comment on this.

Best regards,

Thomas
Bernd Kuhls May 3, 2020, 5:15 p.m. UTC | #4
Hi,

Am Thu, 30 Apr 2020 21:54:15 +0200 schrieb Bartosz Bilas:

> Are you sure? There is a couple of packages which have similar fix such
> as:
> 
> package/ogre/Config.in:    select BR2_PACKAGE_LIBGLU # GL/glu.h

sent http://patchwork.ozlabs.org/project/buildroot/patch/
20200503171227.1411086-1-bernd.kuhls@t-online.de/

which removes the libglu dependency coming from upstream-included glew.h.

> package/supertux/Config.in:    select BR2_PACKAGE_LIBGLU # GL/glu.h

dito, sent http://patchwork.ozlabs.org/project/buildroot/patch/
20200503171227.1411086-2-bernd.kuhls@t-online.de/

> package/lugaru/Config.in:    select BR2_PACKAGE_LIBGLU # GL/glu.h

This package directly includes GL/glu.h:

https://bitbucket.org/osslugaru/lugaru/src/
f6049187585733143f2fb2d688097cc711e15cf0/Source/gamegl.h#lines-42

and does not make use of libglew at all.

Cegui also directly includes GL/glu.h:

https://github.com/cegui/cegui/blob/master/cegui/include/CEGUI/
RendererModules/OpenGL/GL.h#L49

which makes libglu a hard dependency for this package even when
-DGLEW_NO_GLU was added to CXXFLAGS.

Regards, Bernd
Bernd Kuhls May 3, 2020, 5:16 p.m. UTC | #5
Am Tue, 28 Apr 2020 21:58:44 +0200 schrieb Bartosz Bilas:

> Fixes:
>   include/GL/glew.h:1205:14: fatal error: GL/glu.h: No such file or
>   directory

Cegui directly includes GL/glu.h:

https://github.com/cegui/cegui/blob/master/cegui/include/CEGUI/
RendererModules/OpenGL/GL.h#L49

which makes libglu a hard dependency for this package even when
-DGLEW_NO_GLU was added to CXXFLAGS.

Reviewed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Bartosz Bilas May 9, 2020, 8:28 a.m. UTC | #6
Hi guys,

On 03.05.2020 19:16, Bernd Kuhls wrote:
> Am Tue, 28 Apr 2020 21:58:44 +0200 schrieb Bartosz Bilas:
>
>> Fixes:
>>    include/GL/glew.h:1205:14: fatal error: GL/glu.h: No such file or
>>    directory
> Cegui directly includes GL/glu.h:
>
> https://github.com/cegui/cegui/blob/master/cegui/include/CEGUI/
> RendererModules/OpenGL/GL.h#L49
>
> which makes libglu a hard dependency for this package even when
> -DGLEW_NO_GLU was added to CXXFLAGS.
>
> Reviewed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Thomas could you give some feedback with that patch then?
>
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Best
Bartek
Bartosz Bilas May 17, 2020, 8:18 p.m. UTC | #7
Hi Thomas,

On 09.05.2020 10:28, Bartosz Bilas wrote:
> Hi guys,
>
> On 03.05.2020 19:16, Bernd Kuhls wrote:
>> Am Tue, 28 Apr 2020 21:58:44 +0200 schrieb Bartosz Bilas:
>>
>>> Fixes:
>>>    include/GL/glew.h:1205:14: fatal error: GL/glu.h: No such file or
>>>    directory
>> Cegui directly includes GL/glu.h:
>>
>> https://github.com/cegui/cegui/blob/master/cegui/include/CEGUI/
>> RendererModules/OpenGL/GL.h#L49
>>
>> which makes libglu a hard dependency for this package even when
>> -DGLEW_NO_GLU was added to CXXFLAGS.
>>
>> Reviewed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> Thomas could you give some feedback with that patch then?
gently ping due to the fact that the issue is still there and causing 
autobuilders failure.
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot@busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
> Best
> Bartek
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Best
Bartek
diff mbox series

Patch

diff --git a/package/cegui/Config.in b/package/cegui/Config.in
index f917be0cc5..0c7932098c 100644
--- a/package/cegui/Config.in
+++ b/package/cegui/Config.in
@@ -9,6 +9,7 @@  config BR2_PACKAGE_CEGUI
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_USE_WCHAR
 	select BR2_PACKAGE_GLM
+	select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_HAS_LIBGL
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	help
 	  Crazy Eddie's GUI System is a free library providing windowing
diff --git a/package/cegui/cegui.mk b/package/cegui/cegui.mk
index 0e3d015948..4aaa065818 100644
--- a/package/cegui/cegui.mk
+++ b/package/cegui/cegui.mk
@@ -16,7 +16,8 @@  CEGUI_DEPENDENCIES = glm \
 		$(if $(BR2_PACKAGE_HAS_LIBGL),libgl) \
 		$(if $(BR2_PACKAGE_HAS_LIBGLES),libgles) \
 		$(if $(BR2_PACKAGE_LIBGLEW),libglew) \
-		$(if $(BR2_PACKAGE_LIBICONV),libiconv)
+		$(if $(BR2_PACKAGE_LIBICONV),libiconv) \
+		$(if $(BR2_PACKAGE_LIBGLU),libglu)
 
 ifeq ($(BR2_PACKAGE_LIBEPOXY)$(BR2_PACKAGE_LIBGLEW),y)
 CEGUI_DEPENDENCIES += libepoxy