1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
|
{$ifndef ALLPACKAGES}
{$mode objfpc}{$H+}
program fpmake;
uses fpmkunit;
{$endif ALLPACKAGES}
procedure add_rtl_unicode(const ADirectory: string);
Const
// All Unices have full set of KVM+Crt in unix/ except QNX which is not
// in workable state atm.
UnixLikes = AllUnixOSes -[QNX];
CollationOSes = [aix,android,darwin,emx,freebsd,go32v2,linux,netbsd,openbsd,os2,solaris,win32,win64,dragonfly,haiku];
CPUnits = [aix,amiga,aros,android,beos,darwin,iphonesim,emx,gba,nds,freebsd,go32v2,haiku,linux,morphos,netbsd,netware,netwlibc,openbsd,os2,solaris,watcom,wii,win32,win64,wince,dragonfly];
utf8bidiOSes = [netware,netwlibc];
freebidiOSes = [netware,netwlibc];
// Character not movable because fpwidestring depends on it.
// CharacterOSes = [android,darwin,freebsd,linux,netbsd,openbsd,solaris,win32,win64,dragonfly];
UnicodeAllOSes = CollationOSes + utf8bidiOSes + freebidiOSes + CPUnits;
// Amiga has a crt in its RTL dir, but it is commented in the makefile
Var
P : TPackage;
T : TTarget;
begin
With Installer do
begin
P:=AddPackage('rtl-unicode');
P.ShortName:='rtlu';
P.Directory:=ADirectory;
P.Version:='3.2.0';
P.Author := 'FPC core team';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
P.OSes:=unicodeAllOSes;
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
P.Email := '';
P.Description := 'Rtl-unicode, misc Unicode units';
P.NeedLibC:= false;
P.SourcePath.Add('src/inc');
P.SourcePath.Add('src/collations');
P.IncludePath.Add('src/inc');
P.IncludePath.Add('src/collations');
T:=P.Targets.AddUnit('unicodeducet.pas',CollationOSes);
with T.Dependencies do
begin
AddInclude('ucadata.inc');
AddInclude('ucadata_le.inc');
AddInclude('ucadata_be.inc');
end;
T:=P.Targets.AddUnit('buildcollations.pas',CollationOSes);
T.Install:=False;
with T.Dependencies do
begin
AddUnit('collation_ru');
AddUnit('collation_de');
AddUnit('collation_ja');
AddUnit('collation_sv');
AddUnit('collation_es');
AddUnit('collation_ko');
AddUnit('collation_fr_ca');
AddUnit('collation_zh');
end;
T:=P.Targets.AddImplicitUnit('collation_ru.pas',CollationOSes);
with T.Dependencies do
begin
AddInclude('collation_ru_be.inc');
AddInclude('collation_ru_le.inc');
end;
T:=P.Targets.AddImplicitUnit('collation_de.pas',CollationOSes);
with T.Dependencies do
begin
AddInclude('collation_de_le.inc');
end;
T:=P.Targets.AddImplicitUnit('collation_ja.pas',CollationOSes);
with T.Dependencies do
begin
AddInclude('collation_ja_le.inc');
AddInclude('collation_ja_be.inc');
end;
T:=P.Targets.AddImplicitUnit('collation_sv.pas',CollationOSes);
with T.Dependencies do
begin
AddInclude('collation_sv_be.inc');
AddInclude('collation_sv_le.inc');
end;
T:=P.Targets.AddImplicitUnit('collation_es.pas',CollationOSes);
with T.Dependencies do
begin
AddInclude('collation_es_le.inc');
AddInclude('collation_es_be.inc');
end;
T:=P.Targets.AddImplicitUnit('collation_ko.pas',CollationOSes);
with T.Dependencies do
begin
AddInclude('collation_ko_be.inc');
AddInclude('collation_ko_le.inc');
end;
T:=P.Targets.AddImplicitUnit('collation_fr_ca.pas',CollationOSes);
T:=P.Targets.AddImplicitUnit('collation_zh.pas',CollationOSes);
with T.Dependencies do
begin
AddInclude('collation_zh_be.inc');
AddInclude('collation_zh_le.inc');
end;
T:=P.Targets.AddUnit('freebidi.pp',freebidiOSes);
T:=P.Targets.AddUnit('utf8bidi.pp',utf8bidiOSes);
with T.Dependencies do
AddUnit('freebidi');
T:=P.Targets.AddUnit('cpbuildu.pp',CPUnits);
T.Install:=False;
with T.Dependencies do
begin
AddUnit('cp895',CPUnits);
AddUnit('cp932',CPUnits);
AddUnit('cp936',CPUnits);
AddUnit('cp949',CPUnits);
AddUnit('cp950',CPUnits);
end;
T:=P.Targets.AddImplicitUnit('cp895.pas',CPUnits);
T:=P.Targets.AddImplicitUnit('cp932.pas',CPUnits);
T:=P.Targets.AddImplicitUnit('cp936.pas',CPUnits);
T:=P.Targets.AddImplicitUnit('cp949.pas',CPUnits);
T:=P.Targets.AddImplicitUnit('cp950.pas',CPUnits);
// T:=P.Targets.AddUnit('character.pp',characterOSes);
end
end;
{$ifndef ALLPACKAGES}
begin
add_rtl_unicode('');
Installer.Run;
end.
{$endif ALLPACKAGES}
|