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