fpmake.pp 13 KB

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