fpc/packages/graph/fpmake.pp
2024-10-26 14:14:54 +03:00

152 lines
5.0 KiB
ObjectPascal

{$ifndef ALLPACKAGES}
{$mode objfpc}{$H+}
program fpmake;
uses {$ifdef unix}cthreads,{$endif} fpmkunit;
Var
P : TPackage;
T : TTarget;
begin
With Installer do
begin
{$endif ALLPACKAGES}
P:=AddPackage('graph');
P.ShortName:='grph';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
P.Version:='3.3.1';
P.Author := 'FPC team';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
P.Email := '';
P.Description := 'A portable, yet usable substitute for the Turbo Pascal Graph unit.';
P.NeedLibC:= false; // true for headers that indirectly link to libc? OS specific?
P.CPUs:=[i386,x86_64,powerpc,i8086,aarch64];
P.OSes:=[go32v2,win32,win64,linux,freebsd,openbsd,darwin,msdos,netbsd];
P.Dependencies.Add('sdl',[i386,powerpc],[win32,linux,freebsd,darwin]);
P.Dependencies.Add('ptc',[win32,win64,linux,darwin,openbsd,freebsd,netbsd]);
// Dependencies for ptc, due to fpcmake bug:
P.Dependencies.Add('fcl-base',[win32,win64,linux,openbsd,freebsd,darwin,netbsd]);
P.Dependencies.Add('x11',[freebsd,openbsd,linux,netbsd]); // ptc only depends on bsd and linux on x11
P.Dependencies.Add('hermes',[win32,win64,linux,openbsd,freebsd,darwin,netbsd]);
P.Dependencies.Add('opengl',[win32,win64,linux,openbsd,freebsd,netbsd]);
P.SourcePath.Add('src');
P.SourcePath.Add('src/ptcgraph');
P.SourcePath.Add('src/macosx',[darwin]);
P.SourcePath.Add('src/amiga',[amiga]);
P.SourcePath.Add('src/go32v2',[go32v2]);
P.SourcePath.Add('src/msdos',[msdos]);
P.SourcePath.Add('src/win32',[win32,win64]);
P.SourcePath.Add('src/unix',[freebsd,linux,openbsd,netbsd]); // Darwin has own.
P.IncludePath.Add('src/inc');
P.IncludePath.Add('src/go32v2',[go32v2]);
P.IncludePath.Add('src/msdos',[msdos]);
P.IncludePath.Add('src/unix',[freebsd,linux,openbsd,netbsd]); // Darwin has own.
P.IncludePath.Add('src/go32v2',[go32v2]);
T:=P.Targets.AddUnit('ggigraph.pp',[linux,freebsd]);
with T.Dependencies do
begin
AddInclude('graphh.inc');
AddInclude('graph.inc');
AddInclude('fontdata.inc');
AddInclude('clip.inc');
AddInclude('palette.inc');
AddInclude('modes.inc');
AddInclude('fills.inc');
AddInclude('gtext.inc');
end;
// Graph unit, restricted to i8086, i386 and x86_64 CPUs
T:=P.Targets.AddUnit('graph.pp',[i8086,i386,x86_64],[go32v2,freebsd,linux,msdos]);
with T.Dependencies do
begin
AddInclude('graphh.inc');
AddInclude('graph.inc');
AddInclude('fontdata.inc');
AddInclude('clip.inc');
AddInclude('palette.inc');
AddInclude('modes.inc');
AddInclude('fills.inc');
AddInclude('gtext.inc');
AddInclude('graph16.inc',[freebsd,linux]);
AddInclude('vesa.inc',[go32v2,msdos]);
AddInclude('vesah.inc',[go32v2,msdos]);
end;
// Graph unit, for win32 and win64 target
T:=P.Targets.AddUnit('graph.pp',[win32,win64]);
with T.Dependencies do
begin
AddInclude('graphh.inc');
AddInclude('graph.inc');
AddInclude('fontdata.inc');
AddInclude('clip.inc');
AddInclude('palette.inc');
AddInclude('modes.inc');
AddInclude('fills.inc');
AddInclude('gtext.inc');
end;
T:=P.Targets.AddUnit('src/sdlgraph/sdlgraph.pp',[i386,powerpc],[win32,linux,freebsd,darwin]);
with T.Dependencies do
begin
AddInclude('graphh.inc');
AddInclude('graph.inc');
AddInclude('fontdata.inc');
AddInclude('clip.inc');
AddInclude('palette.inc');
AddInclude('modes.inc');
AddInclude('fills.inc');
AddInclude('gtext.inc');
end;
T:=P.Targets.AddUnit('wincrt.pp',[win32, win64]);
with T.Dependencies do
begin
AddUnit('graph');
end;
T:=P.Targets.AddUnit('winmouse.pp',[win32, win64]);
with T.Dependencies do
begin
AddUnit('graph');
end;
T:=P.Targets.AddUnit('ptcgraph.pp',[win32,win64,linux,openbsd,freebsd,darwin,netbsd]);
with T.Dependencies do
begin
AddInclude('graphh.inc');
AddInclude('graph.inc');
AddInclude('fontdata.inc');
AddInclude('clip.inc');
AddInclude('palette.inc');
AddInclude('modes.inc');
AddInclude('fills.inc');
AddInclude('gtext.inc');
end;
T:=P.Targets.AddUnit('ptccrt.pp',[win32,win64,linux,openbsd,freebsd,darwin,netbsd]);
with T.Dependencies do
begin
AddUnit('ptcgraph');
end;
T:=P.Targets.AddUnit('ptcmouse.pp',[win32,win64,linux,openbsd,freebsd,darwin,netbsd]);
with T.Dependencies do
begin
AddUnit('ptcgraph');
end;
P.NamespaceMap:='namespaces.lst';
{$ifndef ALLPACKAGES}
Run;
end;
end.
{$endif ALLPACKAGES}