fpmake.pp 12 KB

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