summaryrefslogtreecommitdiff
path: root/utils/fpdoc/fpmake.pp
blob: c8299ef8f04c86e66e5f46ed89de1286786b54cd (plain)
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
{$ifndef ALLPACKAGES}
{$mode objfpc}{$H+}
program fpmake;

uses fpmkunit, sysutils;
{$endif ALLPACKAGES}

procedure add_fpdoc(const ADirectory: string);

Var
  P : TPackage;
  T : TTarget;
  Bin2Obj : string;

begin
  AddCustomFpmakeCommandlineOption('bin2obj', 'Use indicated bin2obj executable.');
  With Installer do
    begin
    P:=AddPackage('utils-fpdoc');
    P.ShortName:='fpdoc';
    P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
    if Defaults.CPU=jvm then
      P.OSes := P.OSes - [java,android];

    P.Author := '<various>';
    P.License := 'LGPL with modification';
    P.HomepageURL := 'www.freepascal.org';
    P.Email := '';
    P.Description := 'Free Pascal documentation generation utility.';
    P.NeedLibC:= false;

    P.OSes:=AllOSes-[embedded,msdos,win16,go32v2,nativent,macos,palmos,atari];
    if Defaults.CPU=jvm then
      P.OSes := P.OSes - [java,android];

    P.Dependencies.Add('fcl-base');
    P.Dependencies.Add('fcl-xml');
    P.Dependencies.Add('fcl-passrc');
    P.Dependencies.Add('fcl-process');
    P.Dependencies.Add('chm');
    P.Dependencies.Add('univint',[darwin,iphonesim]);

    P.Directory:=ADirectory;
    P.Version:='3.2.0-beta';

    P.Options.Add('-S2h');

    T:=P.Targets.AddProgram('fpdoc.pp');
    T.Dependencies.AddUnit('dglobals');
    T.Dependencies.AddUnit('dw_ipflin');
    T.Dependencies.AddUnit('dwriter');
    T.Dependencies.AddUnit('dw_xml');
    T.Dependencies.AddUnit('dglobals');
    T.Dependencies.AddUnit('sh_pas');
    T.Dependencies.AddUnit('dw_html');
    T.Dependencies.AddUnit('dw_latex');
    T.Dependencies.AddUnit('dwlinear');
    T.Dependencies.AddUnit('dw_txt');
    T.Dependencies.AddUnit('dw_linrtf');

    T:=P.Targets.AddProgram('makeskel.pp');
    T.ResourceStrings:=true;
    T.Dependencies.AddUnit('dglobals');

    T:=P.Targets.AddProgram('unitdiff.pp');
    T.ResourceStrings:=true;
    T:=P.Targets.AddProgram('fpclasschart.pp');
    T.ResourceStrings:=true;

    T := P.Targets.AddUnit('dglobals.pp');
    T.install:=false;
    T.ResourceStrings:=true;

    T := P.Targets.AddUnit('dwriter.pp');
    T.install:=false;
    T.ResourceStrings:=true;

    T := P.Targets.AddUnit('fpdocxmlopts.pas');
    T.install:=false;
    T.ResourceStrings:=true;

    P.Targets.AddUnit('dw_xml.pp').install:=false;
    P.Targets.AddUnit('sh_pas.pp').install:=false;
    P.Targets.AddUnit('dw_html.pp').install:=false;
    T:=P.Targets.AddUnit('dw_latex.pp');
    T.install:=false;
    T.ResourceStrings:=true;
    P.Targets.AddUnit('dw_txt.pp').install:=false;
    P.Targets.AddUnit('dw_man.pp').install:=false;
    P.Targets.AddUnit('dwlinear.pp').install:=false;
    P.Targets.AddUnit('dw_linrtf.pp').install:=false;
    P.Targets.AddUnit('dw_dxml.pp').install:=false;
    P.Targets.AddUnit('fpdocproj.pas').install:=false;
    P.Targets.AddUnit('fpdocclasstree.pp').install:=false;
    P.Targets.AddUnit('mkfpdoc.pp').install:=false;
    P.Targets.AddUnit('dw_ipflin.pas').install:=false;

    Bin2Obj := GetCustomFpmakeCommandlineOptionValue('bin2obj');
    if Bin2Obj<>'' then
      Bin2Obj:= ExpandFileName(Bin2Obj);
    if Bin2Obj='' then
      Bin2Obj := ExeSearch(AddProgramExtension('bin2obj', Defaults.BuildOS));
    if Bin2Obj <> '' then
      begin
      P.Commands.AddCommand(Bin2Obj,'-o $(DEST) -c DefaultCSS $(SOURCE)','css.inc','fpdoc.css');
      P.Commands.AddCommand(Bin2Obj,'-o $(DEST) -c PlusImageData $(SOURCE)','plusimage.inc','images/plus.png');
      P.Commands.AddCommand(Bin2Obj,'-o $(DEST) -c MinusImageData $(SOURCE)','minusimage.inc','images/minus.png');
      end;
    end;
end;

{$ifndef ALLPACKAGES}
begin
  add_fpdoc('');
  Installer.Run;
end.
{$endif ALLPACKAGES}