Add support for multiple libraries #14

Open
opened 8 months ago by Letterus · 6 comments
Owner

Multi library support is going to enable the generator automatically pull in library definitions one library depends on.

This adds some complexity of course, because as well as for the class dependencies, we need to create a dependency graph first and start with the topmost tree element to get the correct order.

For this to work

  • the parameter to start with is the directory containing the GIR files
  • a further parameter tells which library definition to exclude
  • within the walk of dependency tree (OGTKMapper) we need to add a flag at the topmost parent elements: For those classes the library includes have to be written on generation.

We probaby want to exclude the very basic Glib libs, because we want to replace those with ObjFW (otherwise a wrapper would be of no use and we are going to write an ObjC runtime for the GObject runtime ;-)). We may want to create a very small shadow lib (OGObject) that just wraps GObject and pulls in ObjFW.

This depends on #3 and #11.

Multi library support is going to enable the generator automatically pull in library definitions one library depends on. This adds some complexity of course, because as well as for the class dependencies, we need to create a dependency graph first and start with the topmost tree element to get the correct order. For this to work - the parameter to start with is the directory containing the GIR files - a further parameter tells which library definition to exclude - within the walk of dependency tree (`OGTKMapper`) we need to add a flag at the topmost parent elements: For those classes the library includes have to be written on generation. We probaby want to exclude the very basic Glib libs, because we want to replace those with ObjFW (otherwise a wrapper would be of no use and we are going to write an ObjC runtime for the GObject runtime ;-)). We may want to create a very small shadow lib (`OGObject`) that just wraps `GObject` and pulls in ObjFW. This depends on #3 and #11.
Letterus added this to the First release of ObjGTK(0.3) milestone 8 months ago
Letterus added the
enhancement
label 8 months ago
Letterus self-assigned this 8 months ago
Letterus modified the milestone from First release of ObjGTK(0.3) to Second tech preview of ObjGTK (0.2) 6 months ago
Poster
Owner

Further work done with cde8d59d8a, 1ad78247bf.

Further work done with cde8d59d8a, 1ad78247bf.
Poster
Owner

Multilib support functional by 5ba2baca17.

Multilib support functional by 5ba2baca17.
Poster
Owner

Still to do to further subtasks to complete this huge task:

  • 1. iterate through deps recursively to catch all depending dependencies
  • 2. Generate list of source files into Makefiles
  • 3. Add ObjFW package dependencies for autoconf (configure.ac)
  • 4. Update and add missing documentation
Still to do to further subtasks to complete this huge task: - [x] 1. iterate through deps recursively to catch all depending dependencies - [x] 2. Generate list of source files into Makefiles - [x] 3. Add ObjFW package dependencies for autoconf (`configure.ac`) - [ ] 4. Update and add missing documentation
Poster
Owner
  1. done with cb08da4f01
1. done with cb08da4f01
Poster
Owner

Third almost done with the above and 2d4350d18a.

Third almost done with the above and 2d4350d18a.
Poster
Owner

Third done with 777a93f822 and f3c0ba19b6.

Third done with 777a93f822 and f3c0ba19b6.
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.