Line 46: | Line 46: | ||
==== Compiler options ==== | ==== Compiler options ==== | ||
%{_d_optflags} need be used for ldc options<BR> | %{_d_optflags} need be used for ldc options<BR> | ||
%{_d_optflags} define options -release -w -g<BR> | %{_d_optflags} define options ''-release -w -g''<BR> | ||
-release disables asserts, invariants, contracts and boundscheck<BR> | -release ''disables asserts, invariants, contracts and boundscheck''<BR> | ||
-w enable warnings<BR> | -w ''enable warnings''<BR> | ||
-g generate debug information<BR> | -g ''generate debug information''<BR> | ||
[[Category:Packaging guidelines]] | [[Category:Packaging guidelines]] |
Revision as of 13:44, 28 July 2010
Revision: 0.1
Last Revised: Wednesday Jul 28, 2010
Packaging Tips
File Locations
Libraries
D packages must install assemblies to %{_libdir} rather than /usr/lib or %{_datadir}.
Header
D package must install header file like .d or .di to %{_d_includedir}/%{name}
Libraries
At this time in D programming only OS X support shared lirbraries. So wait this feature or help ldc project. Feel free.
For build static librarie in D you need use ar and ranlib tools. ldc compiler support GNU strip.
short example from makefile:
DC=ldc HD=-Hd $(IMPORT_DEST) DFLAGS_REQ=-c -I ../DerelictUtil AL_SRC= \ derelict/openal/al.d \ derelict/openal/alfuncs.d \ derelict/openal/altypes.d PACKAGE_PATH=derelict/openal all : DerelictAL $(LIB_PRE)DerelictAL.$(LIB_EXT) : $(DC) $(DFLAGS) $(DFLAGS_REQ) $(AL_SRC) $(HD)/$(PACKAGE_PATH) $(AR) rcs $@ $^ $(RANLIB) $@ $(CP) $@ $(LIB_DEST) $(RM) $@
Macros
All D package need ldc for build and macro file is in ldc package, every package must have ldc in BuildRequire
Include directories
%{_d_includedir} need be used for devel file
%{_d_includedir} define /usr/include/d/ directory
Compiler options
%{_d_optflags} need be used for ldc options
%{_d_optflags} define options -release -w -g
-release disables asserts, invariants, contracts and boundscheck
-w enable warnings
-g generate debug information