fpmake.pp 14 KB

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