fpmake.pp 14 KB

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