achille-roussel / nanomsgxx

Nanomsg binding for C++11
MIT License
114 stars 35 forks source link

added initial pkg-config support #2

Closed chybz closed 10 years ago

chybz commented 10 years ago

Hi Achille,

as I needed pkg-config support for your excellent bindings, I thought you might be interested to have a look at what worked for me and perhaps integrate it.

Looking forward to collaborate with you !

achille-roussel commented 10 years ago

Hello! I'm glad you find this useful. Your changes look good, as I'm not familiar with pkg-config I'm unsure what it's supposed to do here, could you describe what is expected to happen so I can reproduce on my side ? Also since not everyone is going to use pkg-config you may want to add an option to the waf script to turn it on/off, that would be my only request.

chybz commented 10 years ago

Hello, pkg-config is a tool to find another's package build and/or link flags (include paths, link libraries, ...). It does not modify a program/library behaviour in any way. It greatly simplifies finding dependencies locations without having to hardcode any paths. What I added only generates and installs one file, libnnxx.pc (installs in PREFIX/lib/pkgconfig), which would allow users of your library to say: "Hey, pkg-config, where's libnnxx and I do I use (link) it ?".

Once installed, you can:

$ pkg-config --libs libnnxx
-L/usr/pkg/lib -lnnxx -lnanomsg

which automagically brings in the nanomsg (which has a .pc file ;) ) library also.

Anyway, I've added an option to disable generation of the libnnxx.pc file.

Thank you again for your great work.

achille-roussel commented 10 years ago

Alright that's pretty cool. I made a change to have the --nopkgconfig option be part of the configure step instead of the the build step, I'd like to keep as many of the configuration options away from the build step to make things easier to understand (waf doesn't enforce anything and it can get messy). I've pushed the changes to your branch I think, unsure why they're not showing up on the pull request, if you're good I'll merge that all.

achille-roussel commented 10 years ago

Hm... actually the push created your branch with my changes on my repo... unsure what the work flow should be to get that done, anyways I'm gonna merge all that, thanks for your help!

chybz commented 10 years ago

And thanks for your software ;)