[graphviz-interest] Static library of Graphviz
Klaus Kneupner <[email protected]> Fri, 14 Apr 2017 18:42:21 +0000
| Newsgroups | gmane.comp.video.graphviz |
|---|---|
| Message-ID | <CAAFAexNvjtKgeT+J_mK0a8-oiQhvvx8REF6a4tU7NAQBgpbTJg@mail.gmail.com> |
--===============5455870313662814866==
Content-Type: multipart/alternative; boundary=94eb2c093362e974fc054d24cd73
--94eb2c093362e974fc054d24cd73
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
All,
I am looking for a clear simple explanation on how to use Graphviz as a
static library.
I need scripts etc. in order to create static libraries from the Graphviz
libraries that I can link with macOS and iOS applications in Xcode.
Graphviz can easily be installed using Homebrew on a Mac and does compile.
However, the result are dynamic libraries. In order to deliver through the
Apple App Stores (macOS & iOS) I would like to use static libraries.
Another problem that I try to avoid is the configuration file (=E2=80=9Ccon=
fig6=E2=80=9D)
for graphviz that doesn=E2=80=99t work well with the Sandbox.
All of this was already done once by Glen Low. He gave instructions that
path the way (see first link below). I believe this to be relatively easy
task for somebody that is used to GNU autotools (./configure, make, make
install). Unfortunately, I lack knowledge of GNU Autotools to take it
further.
Solution must have:
1. Clear repeatable steps to create a static library for Graphviz that
includes the main plugins (as provided by Glen Low, however some of his
library settings might be outdated).
2. Solution must not use the graphviz configuration file config6 at all.
Instead a static initiation is needed. I assume that such an initiation
involves to set lt_symlist_t lt_preloaded_symbols[]. See the
builtins.c file from Glen Low (see below).
3. Solution must be compilable & executable for macOS Sierra without any
dynamic graphviz libraries. I need to be able to reproduce the steps. An=
y
additional comfort is much welcome.
4. Solution is not allowed to depend on any none-standard dynamic
libraries. I want it to be able to run on any Mac. And I want to be able=
to
distribute through App Store.
5. A small demo program showing that communication to library works. I
have a minimal working Swift wrapper below but another wrapper might be
enough.
Solution should have:
1. Should work together with
https://github.com/TheMadOne/GraphvizWrapper/blob/master/GraphvizWrapper=
.swift
.
2. Should work together with
https://github.com/TheMadOne/GraphvizWrapper/blob/master/GraphvizWrapper=
Tests/useGV.swift
3. Should come with a small sample Xcode project that puts it all
together.
4. An iOS version should be covered. I believe that it would only entail
small changes.
Nice to have:
1. Selection of included libraries. How can one add one or more
libraries?
2. Result checked in as Homebrew formula or as a GitHub open source
project (e.g. https://github.com/TheMadOne/GraphvizWrapper/, please note
that that GitHub project is a failed attempt where I tried to package
dynamic libraries). I think the great Graphviz library should be availab=
le
for everybody that wants to use the App Store.
3. Result is configured as a Framework for macOS and iOS. This might
make it easier.
Relevant links:
- Overall, but outdated, guidelines from Glen Low:
http://marc.info/?l=3Dgraphviz-devel&m=3D132335419922240 I believe this =
is
rather complete. A few comments:
- The builtins.c file is meant to replace the need for config6 file
by providing a static initiation of plugins
- cgraph seems to be standard by now
- A few other libraries might be outdated. I am mostly interested in
basic plugins.
- I am not understanding why he wants directories created and what
they are used for.
- http://www.graphviz.org/content/graphviz-iphone - another interesting
comment from Glen Low.
- http://www.graphviz.org/pdf/libguide.pdf - Graphviz as a library,
however this is based on dynamic libraries
I opened a $100 bounty to solve the above. Please have a look:
https://bountify.co/static-version-of-public-source-graphviz-libraries
Thank you for helping me!
One more thing. I know that a Bounty is quite unusual. I have wasted so
much time. For some odd reason I didn't come up with the idea of posting my
question here. Only when I realised that I need more attention to my bounty
I considered this forum. My apologies. I don't want to upset anybody. I
simply have wasted already too much of my hardly available spare time.
Kind regards,
TheMadOne
--94eb2c093362e974fc054d24cd73
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>All,=C2=A0</div><div><br></div><div>I am looking for =
a clear simple explanation on how to use Graphviz as a static library.=C2=
=A0</div><div><br></div><div><div>I need scripts etc. in order to create st=
atic libraries from the Graphviz libraries that I can link with macOS and i=
OS applications in Xcode.=C2=A0</div><div>Graphviz can easily be installed =
using Homebrew on a Mac and does compile. However, the result are dynamic l=
ibraries. In order to deliver through the Apple App Stores (macOS & iOS=
) I would like to use static libraries. Another problem that I try to avoid=
is the configuration file (=E2=80=9Cconfig6=E2=80=9D) for graphviz that do=
esn=E2=80=99t work well with the Sandbox.=C2=A0</div><div><br></div><div>Al=
l of this was already done once by Glen Low. He gave instructions that path=
the way (see first link below). I believe this to be relatively easy task =
for somebody that is used to GNU autotools (./configure, make, make install=
). Unfortunately, I lack knowledge of GNU Autotools to take it further.=C2=
=A0</div><div><br></div><div>Solution must have:</div><ol><li>Clear repeata=
ble steps to create a static library for Graphviz that includes the main pl=
ugins (as provided by Glen Low, however some of his library settings might =
be outdated).=C2=A0</li><li>Solution must not use the graphviz configuratio=
n file config6 at all. Instead a static initiation is needed. I assume that=
such an initiation involves to set lt_symlist_t lt_preloaded_symbols[]. Se=
e the builtins.c=C2=A0file from Glen Low (see below).=C2=A0</li><li>Solutio=
n must be compilable & executable for macOS Sierra without any dynamic =
graphviz libraries. I need to be able to reproduce the steps. Any additiona=
l comfort is much welcome.=C2=A0</li><li>Solution is not allowed to depend =
on any none-standard dynamic libraries. I want it to be able to run on any =
Mac. And I want to be able to distribute through App Store.=C2=A0</li><li>A=
small demo program showing that communication to library works. I have a m=
inimal working Swift wrapper below but another wrapper might be enough.</li=
></ol><div><br></div><div>Solution should have:</div><ol><li>Should work to=
gether with=C2=A0<a href=3D"https://github.com/TheMadOne/GraphvizWrapper/bl=
ob/master/GraphvizWrapper.swift">https://github.com/TheMadOne/GraphvizWrapp=
er/blob/master/GraphvizWrapper.swift</a>.=C2=A0</li><li>Should work togethe=
r with=C2=A0<a href=3D"https://github.com/TheMadOne/GraphvizWrapper/blob/ma=
ster/GraphvizWrapperTests/useGV.swift">https://github.com/TheMadOne/Graphvi=
zWrapper/blob/master/GraphvizWrapperTests/useGV.swift</a></li><li>Should co=
me with a small sample Xcode project that puts it all together. =C2=A0</li>=
<li>An iOS version should be covered. I believe that it would only entail s=
mall changes.=C2=A0</li></ol><div><br></div><div>Nice to have:</div><ol><li=
>Selection of included libraries. How can one add one or more libraries?</l=
i><li>Result checked in as Homebrew formula or as a GitHub open source proj=
ect (e.g. <a href=3D"https://github.com/TheMadOne/GraphvizWrapper/">https:/=
/github.com/TheMadOne/GraphvizWrapper/</a>, please note that that GitHub pr=
oject is a failed attempt where I tried to package dynamic libraries). I th=
ink the great Graphviz library should be available for everybody that wants=
to use the App Store.=C2=A0</li><li>Result is configured as a Framework fo=
r macOS and iOS. This might make it easier.=C2=A0</li></ol><div><br></div><=
div>Relevant links:=C2=A0</div><ul><li>Overall, but outdated, guidelines fr=
om Glen Low:=C2=A0<a href=3D"http://marc.info/?l=3Dgraphviz-devel&m=3D1=
32335419922240">http://marc.info/?l=3Dgraphviz-devel&m=3D13233541992224=
0</a>=C2=A0I believe this is rather complete. A few comments:=C2=A0</li><ul=
><li>The builtins.c file is meant to replace the need for config6 file by p=
roviding a static initiation of plugins=C2=A0</li><li>cgraph seems to be st=
andard by now</li><li>A few other libraries might be outdated. I am mostly =
interested in basic plugins.=C2=A0</li><li>I am not understanding why he wa=
nts directories created and what they are used for.=C2=A0</li></ul><li><a h=
ref=3D"http://www.graphviz.org/content/graphviz-iphone">http://www.graphviz=
.org/content/graphviz-iphone</a>=C2=A0- another interesting comment from Gl=
en Low.=C2=A0</li><li><a href=3D"http://www.graphviz.org/pdf/libguide.pdf">=
http://www.graphviz.org/pdf/libguide.pdf</a>=C2=A0- Graphviz as a library, =
however this is based on dynamic libraries</li></ul></div><div><br></div><d=
iv>I opened a $100 bounty to solve the above. Please have a look: <a href=
=3D"https://bountify.co/static-version-of-public-source-graphviz-libraries"=
>https://bountify.co/static-version-of-public-source-graphviz-libraries</a>=
</div><div>Thank you for helping me!</div><div><br></div><div>One more thin=
g. I know that a Bounty is quite unusual. I have wasted so much time. For s=
ome odd reason I didn't come up with the idea of posting my question he=
re. Only when I realised that I need more attention to my bounty I consider=
ed this forum. My apologies. I don't want to upset anybody. I simply ha=
ve wasted already too much of my hardly available spare time.=C2=A0</div><d=
iv><br></div><div>Kind regards,</div><div>TheMadOne</div></div>
--94eb2c093362e974fc054d24cd73--
--===============5455870313662814866==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
[email protected]
http://lists.research.att.com/mailman/listinfo/graphviz-interest
--===============5455870313662814866==--