PackageSecurity.pas 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. {
  2. $Project$
  3. $Workfile$
  4. $Revision$
  5. $DateUTC$
  6. $Id$
  7. This file is part of the Indy (Internet Direct) project, and is offered
  8. under the dual-licensing agreement described on the Indy website.
  9. (http://www.indyproject.org/)
  10. Copyright:
  11. (c) 1993-2005, Chad Z. Hower and the Indy Pit Crew. All rights reserved.
  12. }
  13. {
  14. $Log$
  15. }
  16. {
  17. { Rev 1.1 3/28/2005 1:11:46 PM JPMugaas
  18. { Package build errors.
  19. }
  20. {
  21. { Rev 1.0 3/28/2005 5:53:06 AM JPMugaas
  22. { New security package.
  23. }
  24. unit PackageSecurity;
  25. interface
  26. uses
  27. Package;
  28. type
  29. TPackageSecurity = class(TPackage)
  30. protected
  31. procedure GenRequires; override;
  32. procedure GenFooter; override;
  33. public
  34. constructor Create; override;
  35. procedure Generate(ACompiler: TCompiler; const AFlags: TGenerateFlags); override;
  36. end;
  37. implementation
  38. uses
  39. DModule;
  40. { TPackageSecurity }
  41. constructor TPackageSecurity.Create;
  42. begin
  43. inherited;
  44. FOutputSubDir := 'Lib\Security';
  45. end;
  46. procedure TPackageSecurity.Generate(ACompiler: TCompiler; const AFlags: TGenerateFlags);
  47. begin
  48. if not (ACompiler in Delphi_DotNet) then Exit;
  49. FName := iif(gfDesignTime in AFlags, 'dcl', '') + 'IndySecurity' + GPackageVer[ACompiler];
  50. FDesc := 'Security';
  51. FExt := '.dpk';
  52. inherited Generate(ACompiler, AFlags);
  53. WriteFile;
  54. end;
  55. procedure TPackageSecurity.GenRequires;
  56. begin
  57. Code('');
  58. Code('requires');
  59. if FDesignTime then begin
  60. Code(' Borland.Studio.Vcl.Design,');
  61. end else begin
  62. Code(' Borland.Delphi,');
  63. Code(' Borland.VclRtl,');
  64. end;
  65. Code(' IndySystem' + GPackageVer[FCompiler] + ',');
  66. Code(' IndyCore' + GPackageVer[FCompiler] + ',');
  67. Code(' IndyProtocols'+ GPackageVer[FCompiler] + ',');
  68. if FDesignTime then begin
  69. Code(' IndySecurity'+ GPackageVer[FCompiler] + ',');
  70. Code(' dclIndyCore' + GPackageVer[FCompiler]+',');
  71. Code(' dclIndyProtocols' + GPackageVer[FCompiler]+',');
  72. end;
  73. Code(' Mono.Security,');
  74. Code(' System,');
  75. Code(' System.Data,');
  76. Code(' System.XML;');
  77. end;
  78. procedure TPackageSecurity.GenFooter;
  79. begin
  80. //back door for embedding version information into an assembly
  81. //without having to do anything to the package directly.
  82. Code(iif(FDesignTime, '{$I IddclSecurity90ASM90.inc}', '{$I IdSecurity90ASM90.inc}'));
  83. inherited GenFooter;
  84. end;
  85. end.