fpmake.pp 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572
  1. {$ifndef ALLPACKAGES}
  2. {$mode objfpc}{$H+}
  3. program fpmake;
  4. uses {$ifdef unix}cthreads,{$endif} fpmkunit;
  5. {$endif ALLPACKAGES}
  6. procedure add_fcl_web(const ADirectory: string);
  7. Const
  8. LibMicroHttpdOSes = AllUnixOSes + [win32,win64];
  9. SqldbConnectionOSes = [aix,beos,haiku,linux,freebsd,darwin,iphonesim,ios,netbsd,openbsd,solaris,win32,win64,wince,android,dragonfly];
  10. SqliteOSes = [aix,beos,haiku,linux,freebsd,darwin,iphonesim,ios,netbsd,openbsd,solaris,win32,win64,wince,android,dragonfly];
  11. NoSocketsOSes = [amiga,aros,morphos,wasi];
  12. NoApacheOSes = [amiga,aros,morphos,wasi];
  13. ApacheOSes = AllOSes - NoApacheOSes;
  14. SocketsOSes = AllOSes - NoSocketsOSes;
  15. Var
  16. T : TTarget;
  17. P : TPackage;
  18. begin
  19. With Installer do
  20. begin
  21. P:=AddPackage('fcl-web');
  22. P.ShortName:='fclw';
  23. P.Directory:=ADirectory;
  24. P.Version:='3.3.1';
  25. P.OSes := [beos,haiku,freebsd,darwin,iphonesim,ios,solaris,netbsd,openbsd,linux,win32,win64,wince,aix,amiga,aros,morphos,dragonfly,android,wasi];
  26. if Defaults.CPU=jvm then
  27. P.OSes := P.OSes - [java,android];
  28. P.Dependencies.Add('fcl-base');
  29. P.Dependencies.Add('fcl-db');
  30. P.Dependencies.Add('fcl-xml');
  31. P.Dependencies.Add('fcl-json');
  32. P.Dependencies.Add('fcl-net',SocketsOSes);
  33. P.Dependencies.Add('fcl-process',SocketsOSes); // FGI-gate
  34. P.Dependencies.Add('fcl-fpcunit');
  35. P.Dependencies.Add('fcl-hash');
  36. P.Dependencies.Add('hash');
  37. P.Dependencies.Add('fcl-registry', AllWindowsOSes);
  38. P.Dependencies.Add('openssl', AllUnixOSes+AllWindowsOSes);
  39. P.Dependencies.Add('fastcgi',SocketsOSes);
  40. {$ifndef ALLPACKAGES}
  41. P.Dependencies.Add('httpd20', ApacheOSes);
  42. {$endif ALLPACKAGES}
  43. P.Dependencies.Add('httpd22', ApacheOSes);
  44. P.Dependencies.Add('httpd24', ApacheOSes);
  45. P.Dependencies.Add('winunits-base', [Win32,Win64]);
  46. // (Temporary) indirect dependencies, not detected by fpcmake:
  47. P.Dependencies.Add('univint', [MacOSX,iphonesim,ios]);
  48. P.Dependencies.Add('libmicrohttpd', LibMicroHttpdOSes);
  49. P.Author := 'FreePascal development team';
  50. P.License := 'LGPL with modification, ';
  51. P.HomepageURL := 'www.freepascal.org';
  52. P.Email := '';
  53. P.Description := 'Web(app) related parts of Free Component Libraries (FCL), FPC''s OOP library.';
  54. P.NeedLibC:= false;
  55. P.SourcePath.Add('src/base');
  56. P.SourcePath.Add('src/webdata');
  57. P.SourcePath.Add('src/jwt');
  58. P.SourcePath.Add('src/jsonrpc');
  59. P.SourcePath.Add('src/hpack');
  60. P.SourcePath.Add('src/restbridge');
  61. P.SourcePath.Add('src/websocket');
  62. P.SourcePath.Add('src/fcm');
  63. T:=P.Targets.addUnit('fpmimetypes.pp');
  64. T:=P.Targets.AddUnit('httpdefs.pp');
  65. T.ResourceStrings:=true;
  66. T.Dependencies.AddUnit('httpprotocol');
  67. T:=P.Targets.AddUnit('httproute.pp');
  68. T.ResourceStrings:=true;
  69. T.Dependencies.AddUnit('httpdefs');
  70. T:=P.Targets.AddUnit('httpjson.pp');
  71. T.ResourceStrings:=true;
  72. T.Dependencies.AddUnit('httpdefs');
  73. T.Dependencies.AddUnit('httpprotocol');
  74. T:=P.Targets.AddUnit('cgiapp.pp');
  75. T.ResourceStrings:=true;
  76. T:=P.Targets.AddUnit('custcgi.pp');
  77. T.ResourceStrings:=true;
  78. with T.Dependencies do
  79. begin
  80. AddUnit('httpprotocol');
  81. AddUnit('cgiprotocol');
  82. AddUnit('httpdefs');
  83. end;
  84. T:=P.Targets.AddUnit('ezcgi.pp');
  85. T:=P.Targets.AddUnit('fpcgi.pp');
  86. with T.Dependencies do
  87. begin
  88. AddUnit('httpdefs');
  89. AddUnit('fphttp');
  90. end;
  91. T:=P.Targets.AddUnit('fpdatasetform.pp');
  92. with T.Dependencies do
  93. begin
  94. AddUnit('fphtml');
  95. end;
  96. T:=P.Targets.AddUnit('fphtml.pp');
  97. T.ResourceStrings:=true;
  98. with T.Dependencies do
  99. begin
  100. AddUnit('httpdefs');
  101. AddUnit('fphttp');
  102. end;
  103. T:=P.Targets.AddUnit('fphttp.pp');
  104. T.ResourceStrings:=true;
  105. with T.Dependencies do
  106. begin
  107. AddUnit('httpdefs');
  108. end;
  109. T:=P.Targets.AddUnit('fpweb.pp');
  110. T.ResourceStrings:=true;
  111. with T.Dependencies do
  112. begin
  113. AddUnit('httpdefs');
  114. AddUnit('fphttp');
  115. AddUnit('websession');
  116. end;
  117. T:=P.Targets.AddUnit('httpprotocol.pp');
  118. T:=P.Targets.AddUnit('cgiprotocol.pp');
  119. T:=P.Targets.AddUnit('iniwebsession.pp');
  120. T.ResourceStrings:=true;
  121. with T.Dependencies do
  122. begin
  123. AddUnit('fphttp');
  124. AddUnit('httpdefs');
  125. end;
  126. T:=P.Targets.AddUnit('websession.pp');
  127. with T.Dependencies do
  128. begin
  129. AddUnit('iniwebsession');
  130. end;
  131. T:=P.Targets.AddUnit('webutil.pp');
  132. with T.Dependencies do
  133. begin
  134. AddUnit('httpdefs');
  135. end;
  136. with P.Targets.AddUnit('custweb.pp') do
  137. begin
  138. ResourceStrings:=true;
  139. Dependencies.AddUnit('httpdefs');
  140. Dependencies.AddUnit('httproute');
  141. Dependencies.AddUnit('fphttp');
  142. end;
  143. with P.Targets.AddUnit('webpage.pp') do
  144. begin
  145. Dependencies.AddUnit('httpdefs');
  146. Dependencies.AddUnit('fphtml');
  147. Dependencies.AddUnit('fpweb');
  148. end;
  149. with P.Targets.AddUnit('fpfcgi.pp') do
  150. begin
  151. OSes:=SocketsOSes;
  152. Dependencies.AddUnit('custfcgi');
  153. end;
  154. with P.Targets.AddUnit('custfcgi.pp') do
  155. begin
  156. OSes:=SocketsOSes;
  157. Dependencies.AddUnit('httpprotocol');
  158. Dependencies.AddUnit('cgiprotocol');
  159. Dependencies.AddUnit('custcgi');
  160. Dependencies.AddUnit('httpdefs');
  161. Dependencies.AddUnit('custweb');
  162. ResourceStrings:=true;
  163. end;
  164. with P.Targets.AddUnit('custapache.pp') do
  165. begin
  166. OSes:=ApacheOses;
  167. Dependencies.AddUnit('httpprotocol');
  168. Dependencies.AddUnit('fphttp');
  169. Dependencies.AddUnit('custweb');
  170. ResourceStrings:=true;
  171. end;
  172. with P.Targets.AddUnit('fpapache.pp') do
  173. begin
  174. OSes:=ApacheOSes;
  175. Dependencies.AddUnit('custapache');
  176. end;
  177. with P.Targets.AddUnit('custapache24.pp') do
  178. begin
  179. OSes:=ApacheOSes;
  180. Dependencies.AddUnit('fphttp');
  181. Dependencies.AddUnit('custweb');
  182. ResourceStrings:=true;
  183. end;
  184. with P.Targets.AddUnit('fpapache24.pp') do
  185. begin
  186. OSes:=ApacheOSes;
  187. Dependencies.AddUnit('custapache24');
  188. end;
  189. with P.Targets.AddUnit('custhttpsys.pp') do
  190. begin
  191. OSes:=[Win32,Win64];
  192. Dependencies.AddUnit('custweb');
  193. Dependencies.AddUnit('httpdefs');
  194. Dependencies.AddUnit('httpprotocol');
  195. ResourceStrings:=true;
  196. end;
  197. with P.Targets.AddUnit('fphttpsys.pp') do
  198. begin
  199. OSes:=[Win32,Win64];
  200. Dependencies.AddUnit('custhttpsys');
  201. end;
  202. with P.Targets.AddUnit('custmicrohttpapp.pp') do
  203. begin
  204. Dependencies.AddUnit('custweb');
  205. Dependencies.AddUnit('httpdefs');
  206. Dependencies.AddUnit('httpprotocol');
  207. ResourceStrings:=true;
  208. OSes := LibMicroHttpdOSes;
  209. if Defaults.CPU=jvm then
  210. OSes := OSes - [java,android];
  211. end;
  212. with P.Targets.AddUnit('microhttpapp.pp') do
  213. begin
  214. Dependencies.AddUnit('custweb');
  215. Dependencies.AddUnit('httpdefs');
  216. Dependencies.AddUnit('httpprotocol');
  217. Dependencies.AddUnit('custmicrohttpapp');
  218. OSes := LibMicroHttpdOSes;
  219. if Defaults.CPU=jvm then
  220. OSes := OSes - [java,android];
  221. end;
  222. with P.Targets.AddUnit('fphttpstatus.pas') do
  223. begin
  224. OSes:=SocketsOSes;
  225. Dependencies.AddUnit('fphttpserver');
  226. Dependencies.AddUnit('HTTPDefs');
  227. end;
  228. T:=P.Targets.AddUnit('fcgigate.pp');
  229. T.ResourceStrings:=true;
  230. T.OSes:=SocketsOSes;
  231. With T.Dependencies do
  232. begin
  233. AddUnit('httpdefs');
  234. AddUnit('custcgi');
  235. end;
  236. T:=P.Targets.AddUnit('fphttpserver.pp');
  237. T.ResourceStrings:=true;
  238. T.OSes:=SocketsOSes;
  239. with T.Dependencies do
  240. begin
  241. AddUnit('httpdefs');
  242. end;
  243. T:=P.Targets.AddUnit('fphttpclient.pp');
  244. T.OSes:=SocketsOSes;
  245. T.ResourceStrings:=true;
  246. T:=P.Targets.AddUnit('custhttpapp.pp');
  247. T.OSes:=SocketsOSes;
  248. // T.ResourceStrings:=true;
  249. T:=P.Targets.AddUnit('fphttpapp.pp');
  250. T.OSes:=SocketsOSes;
  251. T:=P.Targets.AddUnit('fpwebfile.pp');
  252. With T.Dependencies do
  253. begin
  254. AddUnit('fphttp');
  255. AddUnit('httpdefs');
  256. AddUnit('httproute');
  257. end;
  258. T:=P.Targets.AddUnit('fpdebugcapturesvc.pp');
  259. With T.Dependencies do
  260. begin
  261. AddUnit('fphttp');
  262. AddUnit('httpdefs');
  263. AddUnit('httproute');
  264. end;
  265. T:=P.Targets.AddUnit('fpwebproxy.pp');
  266. T.OSes:=SocketsOSes;
  267. With T.Dependencies do
  268. begin
  269. AddUnit('fphttp');
  270. AddUnit('httpdefs');
  271. AddUnit('httpprotocol');
  272. AddUnit('fphttpclient');
  273. end;
  274. T.ResourceStrings:=true;
  275. T:=P.Targets.AddUnit('fpwebdata.pp');
  276. T.ResourceStrings:=true;
  277. With T.Dependencies do
  278. begin
  279. AddUnit('httpdefs');
  280. AddUnit('fphttp');
  281. AddUnit('websession');
  282. end;
  283. T:=P.Targets.AddUnit('sqldbwebdata.pp');
  284. T.ResourceStrings:=true;
  285. T.OSes:=SqldbConnectionOSes;
  286. With T.Dependencies do
  287. begin
  288. AddUnit('fpwebdata');
  289. AddUnit('fphttp');
  290. end;
  291. T:=P.Targets.AddUnit('fpextjs.pp');
  292. T.ResourceStrings:=true;
  293. With T.Dependencies do
  294. begin
  295. AddUnit('fpwebdata');
  296. AddUnit('httpdefs');
  297. AddUnit('fphttp');
  298. end;
  299. T:=P.Targets.AddUnit('extjsxml.pp');
  300. T.ResourceStrings:=true;
  301. With T.Dependencies do
  302. begin
  303. AddUnit('fpwebdata');
  304. AddUnit('httpdefs');
  305. AddUnit('fpextjs');
  306. end;
  307. T:=P.Targets.AddUnit('extjsjson.pp');
  308. T.ResourceStrings:=true;
  309. With T.Dependencies do
  310. begin
  311. AddUnit('fpwebdata');
  312. AddUnit('httpdefs');
  313. AddUnit('fpextjs');
  314. end;
  315. T:=P.Targets.AddUnit('fprpcstrings.pp');
  316. T.ResourceStrings:=true;
  317. T:=P.Targets.AddUnit('fpjsonrpc.pp');
  318. T:=P.Targets.AddUnit('webjsonrpc.pp');
  319. With T.Dependencies do
  320. begin
  321. AddUnit('fpjsonrpc');
  322. end;
  323. T:=P.Targets.AddUnit('fprpcrtti.pp');
  324. With T.Dependencies do
  325. begin
  326. AddUnit('fpjsonrpc');
  327. end;
  328. T:=P.Targets.AddUnit('fprpcclient.pp');
  329. T.OSes:=SocketsOSes;
  330. T.Dependencies.AddUnit('fpwebclient');
  331. T.Dependencies.AddUnit('fphttpwebclient');
  332. T:=P.Targets.AddUnit('fprpccodegen.pp');
  333. T:=P.Targets.AddUnit('fpdispextdirect.pp');
  334. T.OSes:=AllOSes-[wasi];
  335. With T.Dependencies do
  336. begin
  337. AddUnit('fpjsonrpc');
  338. end;
  339. T:=P.Targets.AddUnit('fpextdirect.pp');
  340. T.OSes:=AllOSes-[wasi];
  341. With T.Dependencies do
  342. begin
  343. AddUnit('fpdispextdirect');
  344. AddUnit('webjsonrpc');
  345. AddUnit('httpdefs');
  346. end;
  347. T:=P.Targets.AddUnit('fpwebclient.pp');
  348. T:=P.Targets.AddUnit('fpjwt.pp');
  349. T:=P.Targets.AddUnit('fpoauth2.pp');
  350. T.ResourceStrings:=true;
  351. T.Dependencies.AddUnit('fpwebclient');
  352. T.Dependencies.AddUnit('fpjwt');
  353. T:=P.Targets.AddUnit('fpoauth2ini.pp');
  354. T.Dependencies.AddUnit('fpoauth2');
  355. T:=P.Targets.AddUnit('fpjwasha256.pp');
  356. T.Dependencies.AddUnit('fpjwt');
  357. T:=P.Targets.AddUnit('fpjwasha512.pp');
  358. T.Dependencies.AddUnit('fpjwt');
  359. T:=P.Targets.AddUnit('fpjwasha384.pp');
  360. T.Dependencies.AddUnit('fpjwt');
  361. T:=P.Targets.AddUnit('fpjwaes256.pp');
  362. T.Dependencies.AddUnit('fpjwt');
  363. T:=P.Targets.AddUnit('fpjwarsa.pp');
  364. T.Dependencies.AddUnit('fpjwt');
  365. T:=P.Targets.AddUnit('fphttpwebclient.pp');
  366. T.oses:=SocketsOSes;
  367. T.Dependencies.AddUnit('fpwebclient');
  368. T:=P.Targets.AddUnit('restbase.pp');
  369. T:=P.Targets.AddUnit('restcodegen.pp');
  370. T:=P.Targets.AddUnit('uhpacktables.pp');
  371. T:=P.Targets.AddUnit('uhpackimp.pp');
  372. With T.Dependencies do
  373. AddUnit('uhpacktables');
  374. T:=P.Targets.AddUnit('uhpack.pp');
  375. With T.Dependencies do
  376. begin
  377. AddUnit('uhpackimp');
  378. end;
  379. T:=P.Targets.AddUnit('sqldbrestconst.pp');
  380. T.ResourceStrings:=true;
  381. T.OSes:=SqldbConnectionOSes;
  382. T:=P.Targets.AddUnit('sqldbrestschema.pp');
  383. T.OSes:=SqldbConnectionOSes;
  384. With T.Dependencies do
  385. begin
  386. AddUnit('sqldbrestconst');
  387. end;
  388. T:=P.Targets.AddUnit('sqldbrestio.pp');
  389. T.OSes:=SqldbConnectionOSes;
  390. With T.Dependencies do
  391. begin
  392. AddUnit('sqldbrestconst');
  393. AddUnit('sqldbrestschema');
  394. end;
  395. T:=P.Targets.AddUnit('sqldbrestdata.pp');
  396. T.OSes:=SqldbConnectionOSes;
  397. With T.Dependencies do
  398. begin
  399. AddUnit('sqldbrestconst');
  400. AddUnit('sqldbrestschema');
  401. AddUnit('sqldbrestio');
  402. end;
  403. T:=P.Targets.AddUnit('sqldbrestauth.pp');
  404. T.OSes:=SqldbConnectionOSes;
  405. With T.Dependencies do
  406. begin
  407. AddUnit('sqldbrestconst');
  408. AddUnit('sqldbrestio');
  409. AddUnit('sqldbrestschema');
  410. end;
  411. T:=P.Targets.AddUnit('sqldbrestjson.pp');
  412. T.OSes:=SqldbConnectionOSes;
  413. With T.Dependencies do
  414. begin
  415. AddUnit('sqldbrestio');
  416. AddUnit('sqldbrestschema');
  417. AddUnit('sqldbrestconst');
  418. end;
  419. T:=P.Targets.AddUnit('sqldbrestbridge.pp');
  420. T.OSes:=SqldbConnectionOSes;
  421. With T.Dependencies do
  422. begin
  423. AddUnit('sqldbrestio');
  424. AddUnit('sqldbrestdata');
  425. AddUnit('sqldbrestschema');
  426. AddUnit('sqldbrestconst');
  427. end;
  428. T:=P.Targets.AddUnit('sqldbrestcds.pp');
  429. T.OSes:=SqldbConnectionOSes;
  430. With T.Dependencies do
  431. begin
  432. AddUnit('sqldbrestio');
  433. AddUnit('sqldbrestschema');
  434. AddUnit('sqldbrestconst');
  435. end;
  436. T:=P.Targets.AddUnit('sqldbrestcsv.pp');
  437. T.OSes:=SqldbConnectionOSes;
  438. With T.Dependencies do
  439. begin
  440. AddUnit('sqldbrestio');
  441. AddUnit('sqldbrestschema');
  442. AddUnit('sqldbrestconst');
  443. end;
  444. T:=P.Targets.AddUnit('sqldbrestxml.pp');
  445. T.OSes:=SqldbConnectionOSes;
  446. With T.Dependencies do
  447. begin
  448. AddUnit('sqldbrestio');
  449. AddUnit('sqldbrestschema');
  450. AddUnit('sqldbrestconst');
  451. end;
  452. T:=P.Targets.AddUnit('sqldbrestado.pp');
  453. T.OSes:=SqldbConnectionOSes;
  454. With T.Dependencies do
  455. begin
  456. AddUnit('sqldbrestio');
  457. AddUnit('sqldbrestschema');
  458. AddUnit('sqldbrestconst');
  459. end;
  460. T:=P.Targets.AddUnit('sqldbrestini.pp');
  461. T.OSes:=SqldbConnectionOSes;
  462. With T.Dependencies do
  463. begin
  464. AddUnit('sqldbrestbridge');
  465. AddUnit('sqldbrestschema');
  466. AddUnit('sqldbrestconst');
  467. end;
  468. T:=P.Targets.AddUnit('sqldbrestauthini.pp');
  469. T.OSes:=SqldbConnectionOSes;
  470. With T.Dependencies do
  471. begin
  472. AddUnit('sqldbrestauth');
  473. AddUnit('sqldbrestschema');
  474. AddUnit('sqldbrestconst');
  475. end;
  476. T:=P.Targets.AddUnit('sqldbrestmodule.pp');
  477. T.OSes:=SqldbConnectionOSes;
  478. With T.Dependencies do
  479. begin
  480. AddUnit('sqldbrestbridge');
  481. AddUnit('sqldbrestconst');
  482. end;
  483. T:=P.Targets.AddUnit('fpwebsocket.pp');
  484. T.OSes:=SocketsOSes;
  485. T.Resourcestrings:=True;
  486. T:=P.Targets.AddUnit('fpcustwsserver.pp');
  487. T.OSes:=SocketsOSes;
  488. With T.Dependencies do
  489. begin
  490. AddUnit('fpwebsocket');
  491. end;
  492. T:=P.Targets.AddUnit('fpwebsocketserver.pp');
  493. T.OSes:=SocketsOSes;
  494. With T.Dependencies do
  495. begin
  496. AddUnit('fpwebsocket');
  497. AddUnit('fpcustwsserver');
  498. end;
  499. T:=P.Targets.AddUnit('fpwebsocketclient.pp');
  500. T.OSes:=SocketsOSes;
  501. With T.Dependencies do
  502. begin
  503. AddUnit('fpwebsocket');
  504. end;
  505. T:=P.Targets.AddUnit('wsupgrader.pp');
  506. T.OSes:=SocketsOSes;
  507. With T.Dependencies do
  508. begin
  509. AddUnit('fpwebsocket');
  510. AddUnit('fpcustwsserver');
  511. end;
  512. end;
  513. T:=P.Targets.AddUnit('fphttpclientpool.pas');
  514. T.OSes:=SocketsOSes;
  515. T.Resourcestrings:=True;
  516. With T.Dependencies do
  517. begin
  518. AddUnit('fphttpclient');
  519. end;
  520. T:=P.Targets.AddUnit('fphttpclientasyncpool.pas');
  521. T.OSes:=SocketsOSes;
  522. With T.Dependencies do
  523. begin
  524. AddUnit('fphttpclient');
  525. AddUnit('fphttpclientpool');
  526. end;
  527. P.NamespaceMap:='namespaces.lst';
  528. T:=P.Targets.AddUnit('fpfcmstrings.pp');
  529. T:=P.Targets.AddUnit('fpfcmtypes.pp');
  530. With T.Dependencies do
  531. begin
  532. AddUnit('fpjwt');
  533. AddUnit('fpfcmstrings');
  534. end;
  535. T:=P.Targets.AddUnit('fpfcmclient.pp');
  536. With T.Dependencies do
  537. begin
  538. AddUnit('fpfcmstrings');
  539. AddUnit('fpfcmtypes');
  540. end;
  541. end;
  542. {$ifndef ALLPACKAGES}
  543. begin
  544. add_fcl_web('');
  545. Installer.Run;
  546. end.
  547. {$endif ALLPACKAGES}