lazarus-ccr/components/nvidia-widgets/fpmake.pp
blaszijk 00e2a4261c moved config file, one level down
fixed build system (linked all fpmake files together)



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2258 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2012-01-12 22:34:57 +00:00

94 lines
2.5 KiB
ObjectPascal

program fpmake;
{$mode objfpc} {$H+}
uses
fpmkunit,
Classes,
SysUtils;
{$define ALLPACKAGES}
{$include config.inc}
var
P: TPackage;
be: TBuildEngine;
i: integer;
procedure CreateClassChart(Sender: TObject);
var
i: integer;
APackage: TPackage;
T: TTarget;
cmdOpts: string;
Cmd: string;
begin
APackage := TPackage(Sender);
cmdOpts := '--format=graphviz --output=nvwidgets.dot';
for i := 0 to APackage.Targets.Count - 1 do
begin
T := APackage.Targets.TargetItems[i];
if T.TargetType = ttFPDoc then
//check if a documentation target is given
cmdOpts := cmdOpts + ' --input=' + be.AddPathPrefix(APackage, T.Directory + T.Name + T.Extension);
end;
//execute fpclasschart
Cmd := ExeSearch('fpclasschart', GetEnvironmentvariable('PATH'));
if Cmd = '' then
Cmd := 'fpclasschart';
//writeln(cmdOpts);
ExecuteProcess(Cmd, cmdOpts);
//create the graphviz chart
Cmd := ExeSearch('dot', GetEnvironmentvariable('PATH'));
if Cmd = '' then
Cmd := 'dot';
ExecuteProcess(Cmd, '-Tpng nvwidgets.dot -o./fpdoc/images/nvwidgets.png');
//remove the dot file
DeleteFile('nvwidgets.dot');
end;
{$include fpmake_proc.inc}
begin
{$include fpmake_add.inc}
with Installer do
begin
be := BuildEngine;
//create nvwidgets package
P := AddPackage('nvidia-widgets');
P.FPDocFormat := [ffHtml, ffCHM];
P.BeforeDocProc := @CreateClassChart;
//later add --footer-date="mmm dd yyyy"
P.FPDocSwitches := '--auto-index --auto-toc --make-searchable --css-file=./fpdoc/fpdoc.css --image-url=fpdoc/images/';
//base source files
P.Targets.AddFPDoc('./src/nvtypes.pas', './fpdoc/nvtypes.xml');
P.Targets.AddFPDoc('./src/nvpainter.pas', './fpdoc/nvpainter.xml');
P.Targets.AddFPDoc('./src/nvcontext.pas', './fpdoc/nvcontext.xml');
P.Targets.AddFPDoc('./src/nvbasefont.pas', './fpdoc/nvbasefont.xml');
//contexts
P.Targets.AddFPDoc('./src/glut/nvglutcontext.pas', './fpdoc/nvglutcontext.xml');
//painters
P.Targets.AddFPDoc('./src/gl/nvglpainter.pas', './fpdoc/nvglpainter.xml');
P.Targets.AddFPDoc('./src/gl/nvshaderutils.pas', './fpdoc/nvshaderutils.xml');
//fonts
P.Targets.AddFPDoc('./src/gl/glfreetype.pas', './fpdoc/glfreetype.xml');
P.Targets.AddFPDoc('./src/gl/glfreetypefont.pas', './fpdoc/glfreetypefont.xml');
P.Targets.AddFPDoc('./src/glut/glutbitmapfont.pas', './fpdoc/glutbitmapfont.xml');
Run;
end;
end.