Bug 205726 - x11-toolkits/mygui: Add configure options for Dummy and Ogre RenderSystem
Summary: x11-toolkits/mygui: Add configure options for Dummy and Ogre RenderSystem
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Dmitry Marakasov
URL:
Keywords: needs-patch, needs-qa, patch
Depends on:
Blocks:
 
Reported: 2015-12-30 10:50 UTC by Thibault Payet
Modified: 2016-01-16 17:49 UTC (History)
1 user (show)

See Also:
monwarez: maintainer-feedback? (amdmi3)


Attachments
mygui diff (2.69 KB, patch)
2015-12-30 10:50 UTC, Thibault Payet
no flags Details | Diff
mygui diff (2.70 KB, patch)
2015-12-30 10:58 UTC, Thibault Payet
no flags Details | Diff
mygui diff (2.54 KB, patch)
2015-12-30 12:13 UTC, Thibault Payet
no flags Details | Diff
mygui diff (2.53 KB, patch)
2015-12-30 16:38 UTC, Thibault Payet
no flags Details | Diff
mygui diff (2.79 KB, patch)
2015-12-30 21:23 UTC, Thibault Payet
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Thibault Payet 2015-12-30 10:50:50 UTC
Created attachment 164855 [details]
mygui diff

Here is a patch to add configure options to have MyGui with Ogre support.
The Dummy rendersystem stay as default in the configure options

It pass portlint, poudriere test port in progress
Comment 1 Thibault Payet 2015-12-30 10:58:36 UTC
Created attachment 164856 [details]
mygui diff

I forget one %%OGRE%% in pkg-plist
poudriere testport work with Dummy RenderSystem (the default)
Comment 2 Kubilay Kocak freebsd_committer freebsd_triage 2015-12-30 11:40:40 UTC
Correctly assign to MAINTAINER. Missing space between [PATCH] and category/portname caused auto-assigner not to work.

@Thibault, you may use OPTIONS_SINGLE to force 'at least' one mutually exclusive option from a group to be selected.

For more information, see: http://www2.au.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html#makefile-options
Comment 3 Thibault Payet 2015-12-30 12:13:18 UTC
Created attachment 164860 [details]
mygui diff

Thanks you it's more simpler with this options (I have miss that part in the porter's handbook).
Comment 4 Dmitry Marakasov freebsd_committer freebsd_triage 2015-12-30 15:40:56 UTC
Note that I'll only able to process this in about a week due to holidays.

Do you need ogre support for something specific? I was always worried that mutually exclusive rendersystem selection of mygui will pose a problem, because one consumer will need ogre version and another dummy one, and I'd prefer to solve it in some sane way, and having an option for ogre is only a temporary solution. In the end, we'll probably have to split rendersystem-dependent parts into separate ports.

Meanwhile, could you please check whether ogre-enabled build of mygui works with openmw? If it does, enabling ogre by default could another temporary solution.
Comment 5 Thibault Payet 2015-12-30 16:38:19 UTC
Created attachment 164871 [details]
mygui diff

I am trying to build rigs of rods,who need that mygui have ogre in rendersystem.
I did not finished yet. Don't worry I don't need the port right now (I don't actually know how much time it will takes to get rigs of rods build).
I succeed to build games/openmw with ogre option. Unfortunately I can't say if it's still work in game since I don't have the data.
Comment 6 Dmitry Marakasov freebsd_committer freebsd_triage 2015-12-30 17:08:15 UTC
For RoR you might want to check out SVN archives:

https://svnweb.freebsd.org/ports/head/games/rigsofrods/?pathrev=305979

I've used to maintain that port but then lost interest because of too high maintenance cost (see number of patches). Seems like they improved since then - they no longer bundle depends and generally seem more *nix oriented (judging by travis usage at least), also it'd be easier to upstream patches via github.
Comment 7 Thibault Payet 2015-12-30 17:55:40 UTC
I think I will wait for a next release for rigs of rods, the version 0.4.5.1 don't have the ogre 1.9 update who is in master branch
Comment 8 Thibault Payet 2015-12-30 21:23:40 UTC
Created attachment 164878 [details]
mygui diff

I miss MyGUI_LastHeader.h
Comment 9 Dmitry Marakasov freebsd_committer freebsd_triage 2016-01-07 18:20:41 UTC
Ok, I have some progress on this. Please try WIP ports from here:

https://github.com/AMDmi3/freebsd-ports/tree/master/x11-toolkits

You'll have to rebuild mygui, and mygui-ogre now contains everything related to ogre rendersystem including mentioned header file. I'm not yet sure that module libraries are built correctly though.
Comment 10 Thibault Payet 2016-01-08 16:13:39 UTC
I test by building only mygui then openmw (for the build at least , openmw need only mygui) , then I test mygui-ogre and mygui-dummy they both build too. Installing the 3 ports works. Maybe mygui-* should have mygui at dependency (I don't know if it's automatic with the .include"$MASTERDIR}/Makefile")
Comment 11 Dmitry Marakasov freebsd_committer freebsd_triage 2016-01-10 00:40:50 UTC
(In reply to Thibault Payet from comment #10)
> I test by building only mygui then openmw (for the build at least , openmw
> need only mygui) , then I test mygui-ogre and mygui-dummy they both build
> too. Installing the 3 ports works.

I've already tested that, I've meant for you to test RoR if you already have anything buildable.

> Maybe mygui-* should have mygui at dependency (I don't know if it's
> automatic with the .include"$MASTERDIR}/Makefile")

Yes, the dependency is there.
Comment 12 Thibault Payet 2016-01-10 22:12:50 UTC
I don't have anything completely buildable for the moment (maybe the problem is that I build with the minimum of dependency, like no socketw, no angelscript, no caelum and no paged). I don't know if it's cmake fault, but I get a weird error with linking: /usr/bin/ld cannot find -l-lMyGuiEngine (I don't know why there is a double -l).
Do you think it would be better to start port caelum,socketw,paged; and then trying build RoR ?
Comment 13 Dmitry Marakasov freebsd_committer freebsd_triage 2016-01-10 23:23:03 UTC
(In reply to Thibault Payet from comment #12)
> I don't have anything completely buildable for the moment (maybe the problem
> is that I build with the minimum of dependency, like no socketw, no
> angelscript, no caelum and no paged). I don't know if it's cmake fault, but
> I get a weird error with linking: /usr/bin/ld cannot find -l-lMyGuiEngine (I
> don't know why there is a double -l).

CMake expects paths or library names, but RoR devs put raw pkgconfig output to libraries list (see CMakeDependenciesConfig.txt). There's a common pattern of using pkgconfig output as a hint to standard find_files/find_libraries, it should probably be used here as well.

> Do you think it would be better to start port caelum,socketw,paged; and then
> trying build RoR ?

Are there optional for RoR? If yes, I'd start from maximally stripped version of RoR, then add the depends. If no, you have no other way than to port the depends first.
Comment 14 Thibault Payet 2016-01-11 09:38:09 UTC
They are optional, I will try with the latest commits of RoR ( the commits that I used does not have all the necessary #ifdef to build without having to do some patch who just do #ifdef USE_SOMEOPTIONALFEATURE ... #endif)
Comment 15 commit-hook freebsd_committer freebsd_triage 2016-01-16 17:49:15 UTC
A commit references this bug:

Author: amdmi3
Date: Sat Jan 16 17:48:13 UTC 2016
New revision: 406252
URL: https://svnweb.freebsd.org/changeset/ports/406252

Log:
  Split render engine modules into separate ports to allow multiple
  render modules installed at the same time without introducing
  unneeded dependencies.

  PR:		205726

Changes:
  head/x11-toolkits/Makefile
  head/x11-toolkits/mygui/Makefile
  head/x11-toolkits/mygui/pkg-plist
  head/x11-toolkits/mygui-dummy/
  head/x11-toolkits/mygui-dummy/Makefile
  head/x11-toolkits/mygui-dummy/pkg-plist
  head/x11-toolkits/mygui-ogre/
  head/x11-toolkits/mygui-ogre/Makefile
  head/x11-toolkits/mygui-ogre/pkg-plist
  head/x11-toolkits/mygui-opengl/
  head/x11-toolkits/mygui-opengl/Makefile
  head/x11-toolkits/mygui-opengl/pkg-plist