Hi Werner,

As I start researching about SVG rendering libraries, one thing I'll be
concerned with will be the dependency tree and the size of those libraries.

Thinking about the sizes, brought me to the question of how will we be
linking the default SVG Rendering library. For the sake of this question,
let's ASSUME we choose to use `svgnative' with its `cairo' backend. Which
of the following would be our case:

1. We specify `svgnative' and `cairo' as a dependency, just like 'libpng'
is defined currently (provided it is configured to be `yes' in ./configure
step). `libpng' is NOT directly a part of `libfreetype.a', rather it's
supposed to be already installed in the system and is dynamically linked
within `libfreetype.so'. The same goes for `harfbuzz' and `graphite2'. Am I
correct? Is this exactly what we will be doing with the `svgnative' and
`cairo'?

2. We make `svgnative' a part of our codebase. Take the responsibility of
compiling it within our build system. At the same time, we specify `cairo'
as an external dependency and dynamically link it within `libfreetype.so'.

3. We make everything a part of our codebase. Including `svgnative' and
`cairo' and all of their major dependencies. Sounds like a really horrible
idea given the size of these things. But I wanted to make sure I list
everything that I have in my mind.

Which one is it going to be? Some variation of any one of these? None of
these?

My understanding about linking had been really weak. I have learned a lot
more about it with my recent experiences with compiling `svgnative' with
its `skia' port (which I have now successfully done). So, if I have got any
major concept wrong or if I am unaware of common practices, I apologize,
please point it out and I'll read about it.

Regards,
Moazin
_______________________________________________
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel

Reply via email to