fpmake.pp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. {$ifndef ALLPACKAGES}
  2. {$mode objfpc}{$H+}
  3. program fpmake;
  4. uses {$ifdef unix}cthreads,{$endif} fpmkunit;
  5. {$endif ALLPACKAGES}
  6. procedure add_rtl_unicode(const ADirectory: string);
  7. Const
  8. CollationOSes = [aix,android,macosclassic,darwin,emx,freebsd,go32v2,linux,netbsd,openbsd,os2,solaris,win32,win64,dragonfly,haiku,freertos,watcom,wasip1,wasip1threads];
  9. CPUnits = [aix,amiga,aros,android,beos,macosclassic,darwin,iphonesim,ios,emx,gba,nds,freebsd,go32v2,haiku,linux,morphos,netbsd,netware,netwlibc,openbsd,os2,solaris,watcom,wii,win32,win64,wince,dragonfly,freertos,wasip1,wasip1threads];
  10. utf8bidiOSes = [netware,netwlibc];
  11. freebidiOSes = [netware,netwlibc];
  12. UnicodeBaseOnlyOSes = [msdos,win16];
  13. UnicodeAllOSes = CollationOSes + utf8bidiOSes + freebidiOSes + CPUnits + UnicodeBaseOnlyOSes;
  14. GraphemeBreakPropertyOSes = UnicodeAllOSes;
  15. EastAsianWidthOSes = UnicodeAllOSes;
  16. Var
  17. P : TPackage;
  18. T : TTarget;
  19. begin
  20. With Installer do
  21. begin
  22. P:=AddPackage('rtl-unicode');
  23. P.ShortName:='rtlu';
  24. P.Directory:=ADirectory;
  25. P.Version:='3.3.1';
  26. P.Author := 'FPC core team';
  27. P.License := 'LGPL with modification, ';
  28. P.HomepageURL := 'www.freepascal.org';
  29. P.OSes:=unicodeAllOSes;
  30. if Defaults.CPU=jvm then
  31. P.OSes := P.OSes - [java,android];
  32. P.Email := '';
  33. P.Description := 'Rtl-unicode, misc Unicode units';
  34. P.NeedLibC:= false;
  35. P.Dependencies.Add('rtl-objpas');
  36. P.SourcePath.Add('src/inc');
  37. P.SourcePath.Add('src/collations');
  38. P.IncludePath.Add('src/inc');
  39. P.IncludePath.Add('src/collations');
  40. T:=P.Targets.AddUnit('utf8utils.pp');
  41. T:=P.Targets.AddUnit('unicodeducet.pas',CollationOSes);
  42. with T.Dependencies do
  43. begin
  44. AddInclude('ucadata.inc');
  45. AddInclude('ucadata_le.inc');
  46. AddInclude('ucadata_be.inc');
  47. end;
  48. T:=P.Targets.AddUnit('buildcollations.pas',CollationOSes);
  49. T.Install:=False;
  50. with T.Dependencies do
  51. begin
  52. AddUnit('collation_ru');
  53. AddUnit('collation_de');
  54. AddUnit('collation_ja');
  55. AddUnit('collation_sv');
  56. AddUnit('collation_es');
  57. AddUnit('collation_ko');
  58. AddUnit('collation_fr_ca');
  59. AddUnit('collation_zh');
  60. end;
  61. T:=P.Targets.AddImplicitUnit('collation_ru.pas',CollationOSes);
  62. T:=P.Targets.AddImplicitUnit('collation_de.pas',CollationOSes);
  63. with T.Dependencies do
  64. begin
  65. AddInclude('collation_de_le.inc');
  66. end;
  67. T:=P.Targets.AddImplicitUnit('collation_ja.pas',CollationOSes);
  68. with T.Dependencies do
  69. begin
  70. AddInclude('collation_ja_le.inc');
  71. AddInclude('collation_ja_be.inc');
  72. end;
  73. T:=P.Targets.AddImplicitUnit('collation_sv.pas',CollationOSes);
  74. with T.Dependencies do
  75. begin
  76. AddInclude('collation_sv_be.inc');
  77. AddInclude('collation_sv_le.inc');
  78. end;
  79. T:=P.Targets.AddImplicitUnit('collation_es.pas',CollationOSes);
  80. with T.Dependencies do
  81. begin
  82. AddInclude('collation_es_le.inc');
  83. AddInclude('collation_es_be.inc');
  84. end;
  85. T:=P.Targets.AddImplicitUnit('collation_ko.pas',CollationOSes);
  86. with T.Dependencies do
  87. begin
  88. AddInclude('collation_ko_be.inc');
  89. AddInclude('collation_ko_le.inc');
  90. end;
  91. T:=P.Targets.AddImplicitUnit('collation_fr_ca.pas',CollationOSes);
  92. T:=P.Targets.AddImplicitUnit('collation_zh.pas',CollationOSes);
  93. with T.Dependencies do
  94. begin
  95. AddInclude('collation_zh_be.inc');
  96. AddInclude('collation_zh_le.inc');
  97. end;
  98. T:=P.Targets.AddUnit('freebidi.pp',freebidiOSes);
  99. T:=P.Targets.AddUnit('utf8bidi.pp',utf8bidiOSes);
  100. with T.Dependencies do
  101. AddUnit('freebidi');
  102. T:=P.Targets.AddUnit('cpbuildu.pp',CPUnits);
  103. T.Install:=False;
  104. with T.Dependencies do
  105. begin
  106. AddUnit('cp895',CPUnits);
  107. AddUnit('cp932',CPUnits);
  108. AddUnit('cp936',CPUnits);
  109. AddUnit('cp949',CPUnits);
  110. AddUnit('cp950',CPUnits);
  111. end;
  112. T:=P.Targets.AddImplicitUnit('cp895.pas',CPUnits);
  113. T:=P.Targets.AddImplicitUnit('cp932.pas',CPUnits);
  114. T:=P.Targets.AddImplicitUnit('cp936.pas',CPUnits);
  115. T:=P.Targets.AddImplicitUnit('cp949.pas',CPUnits);
  116. T:=P.Targets.AddImplicitUnit('cp950.pas',CPUnits);
  117. // T:=P.Targets.AddUnit('character.pp',characterOSes);
  118. T:=P.Targets.AddUnit('graphemebreakproperty.pp',GraphemeBreakPropertyOSes);
  119. with T.Dependencies do
  120. begin
  121. AddInclude('graphemebreakproperty_code.inc');
  122. end;
  123. T:=P.Targets.AddUnit('eastasianwidth.pp',EastAsianWidthOSes);
  124. with T.Dependencies do
  125. begin
  126. AddInclude('eastasianwidth_code.inc');
  127. end;
  128. P.NamespaceMap:='namespaces.lst';
  129. end
  130. end;
  131. {$ifndef ALLPACKAGES}
  132. begin
  133. add_rtl_unicode('');
  134. Installer.Run;
  135. end.
  136. {$endif ALLPACKAGES}