fpmake.pp 3.9 KB

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