Thread overview
I think we need to standardize where D headers are to be installed
Sep 28, 2012
1100110
Sep 28, 2012
jerro
September 28, 2012
It seems it's very inconsistent where D headers are installed across various systems/distros. Some use $PREFIX/include/d/, some use $PREFIX/include/<d compiler>/, $PREFIX/include/<target triple>/d/, etc...

Can people who are familiar with how some particular system does it weigh in here? I think that first of all, we need to figure out how it's done and then figure out how we want it to be done. C has always used $PREFIX/include, so we need some kind of standard, too.

FWIW I think $PREFIX/include/d/ would be sane enough, where particular projects could install their headers to $PREFIX/include/d/<project>/.

-- 
Alex Rønne Petersen
alex@lycus.org
http://lycus.org
September 28, 2012
On Fri, 28 Sep 2012 08:02:21 -0500, Alex Rønne Petersen <alex@lycus.org> wrote:

> It seems it's very inconsistent where D headers are installed across various systems/distros. Some use $PREFIX/include/d/, some use $PREFIX/include/<d compiler>/, $PREFIX/include/<target triple>/d/, etc...
>
> Can people who are familiar with how some particular system does it weigh in here? I think that first of all, we need to figure out how it's done and then figure out how we want it to be done. C has always used $PREFIX/include, so we need some kind of standard, too.
>
> FWIW I think $PREFIX/include/d/ would be sane enough, where particular projects could install their headers to $PREFIX/include/d/<project>/.
>


I have given it quite a bit of thought regarding package management, and such.
I think you are correct.  The ideal would be a single -I/path/to/include/d so that any program could then import deimos.ncurses, or gtkd.widget.

IMO the easiest way to standardize would be to add -I$PREFIX/include/d to the standard install config file.
Then we would have a sane standard that exists by default.

my dmd.conf ┕[1100110]━>cat /etc/dmd.conf
[Environment]
DFLAGS=-I/usr/include/d -I~/Code/vibe.d/source -I/usr/include/d/druntime/import -L-L/usr/lib -L-L/usr/lib32 -L-L/usr/lib64 -L--no-warn-search-mismatch

I don't know if it is in there by default or not, but the first -I is a lifesaver.
September 28, 2012
On Friday, 28 September 2012 at 13:01:48 UTC, Alex Rønne Petersen wrote:
> It seems it's very inconsistent where D headers are installed across various systems/distros. Some use $PREFIX/include/d/, some use $PREFIX/include/<d compiler>/, $PREFIX/include/<target triple>/d/, etc...
>
> Can people who are familiar with how some particular system does it weigh in here? I think that first of all, we need to figure out how it's done and then figure out how we want it to be done. C has always used $PREFIX/include, so we need some kind of standard, too.
>
> FWIW I think $PREFIX/include/d/ would be sane enough, where particular projects could install their headers to $PREFIX/include/d/<project>/.

I agree that we should standardize D headers location and that $PREFIX/include/d/ is a good option.