Compare commits
917
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7248e185c4 | ||
|
|
439d6c8c82 | ||
|
|
8427c0c455 | ||
|
|
88f46ca664 | ||
|
|
d5eccf9907 | ||
|
|
64287131fc | ||
|
|
d6f93ff450 | ||
|
|
961684edff | ||
|
|
6b52ee1bdf | ||
|
|
22de896416 | ||
|
|
fddae29c41 | ||
|
|
a27c0164cf | ||
|
|
648ab28529 | ||
|
|
a251837534 | ||
|
|
f924c7b244 | ||
|
|
82895be625 | ||
|
|
ee7950cf32 | ||
|
|
de01419022 | ||
|
|
d45e087497 | ||
|
|
69ab106ada | ||
|
|
4c575021c7 | ||
|
|
3a9e04c001 | ||
|
|
880c78393c | ||
|
|
e6b77e0b06 | ||
|
|
7effd2e72c | ||
|
|
385adbd9bd | ||
|
|
96b15ff9f6 | ||
|
|
4dab6d3efb | ||
|
|
fc0255af91 | ||
|
|
d9d4467ee7 | ||
|
|
4443c3177b | ||
|
|
f4d4331782 | ||
|
|
b3960702d2 | ||
|
|
2ac9cdcd73 | ||
|
|
6cc00def7f | ||
|
|
568aff25e3 | ||
|
|
435c078290 | ||
|
|
93dd0ea623 | ||
|
|
5406225cc1 | ||
|
|
0fad3893a7 | ||
|
|
49201a46ad | ||
|
|
71018d9954 | ||
|
|
188c4a20f4 | ||
|
|
2439cb752a | ||
|
|
feb0337f75 | ||
|
|
08c1b1b2c6 | ||
|
|
bd73d3bc98 | ||
|
|
30d34a3e70 | ||
|
|
9ac7d18c6d | ||
|
|
fa8c01a36d | ||
|
|
d0e53f4558 | ||
|
|
2c5e56832a | ||
|
|
5f54d6e35c | ||
|
|
14e507ab0f | ||
|
|
69726197d8 | ||
|
|
d3daca383d | ||
|
|
652558eef5 | ||
|
|
434e26477d | ||
|
|
e2f0af2714 | ||
|
|
a20eb8bc6a | ||
|
|
bf2c7d3f0a | ||
|
|
4dce301da4 | ||
|
|
9f4d273655 | ||
|
|
7de3da420f | ||
|
|
986775b761 | ||
|
|
b5dd9ceaab | ||
|
|
b3722a8c03 | ||
|
|
af55dc01d8 | ||
|
|
029911a413 | ||
|
|
4478afff2a | ||
|
|
5860f82135 | ||
|
|
ac8205c8ee | ||
|
|
a4b27124be | ||
|
|
5c6745ec03 | ||
|
|
3b26998f18 | ||
|
|
2ecb2c5da4 | ||
|
|
d284f9118b | ||
|
|
b33dac7519 | ||
|
|
42725da7ba | ||
|
|
f3cd1bab12 | ||
|
|
a95bde4890 | ||
|
|
71a5f30a95 | ||
|
|
535d9351df | ||
|
|
2109289587 | ||
|
|
e31b21beff | ||
|
|
d50475d2e7 | ||
|
|
7f743eb32b | ||
|
|
0321a464b9 | ||
|
|
232912fd60 | ||
|
|
940919e356 | ||
|
|
a9af7dc696 | ||
|
|
0a6c6bf801 | ||
|
|
14b58a3e20 | ||
|
|
102d340fa6 | ||
|
|
05ad3060a8 | ||
|
|
538ca551b7 | ||
|
|
7e4c95c24e | ||
|
|
10b1362daa | ||
|
|
0a21b6eed5 | ||
|
|
61e2cc66b9 | ||
|
|
8bced55797 | ||
|
|
cd0fea5763 | ||
|
|
1154dfa4f0 | ||
|
|
a93fc66525 | ||
|
|
a83fb66df9 | ||
|
|
ff93032670 | ||
|
|
63e9714b2e | ||
|
|
cca1a031f7 | ||
|
|
800194c7f4 | ||
|
|
eb58711740 | ||
|
|
dace399671 | ||
|
|
65b29252af | ||
|
|
6a89806ee6 | ||
|
|
165eea24c0 | ||
|
|
1e47aa3a2e | ||
|
|
03c0cbaafd | ||
|
|
03dd129a16 | ||
|
|
7093dc16ae | ||
|
|
4864c57e4d | ||
|
|
4ee7135c5a | ||
|
|
905f8b73d7 | ||
|
|
17a2efee72 | ||
|
|
f80e08da71 | ||
|
|
10f3bcbb8d | ||
|
|
c7706471ad | ||
|
|
c418b4db02 | ||
|
|
562da42399 | ||
|
|
88928b4fff | ||
|
|
e125854648 | ||
|
|
dde7348f86 | ||
|
|
2d4422bbba | ||
|
|
01f1143ddf | ||
|
|
0aad2eded0 | ||
|
|
fa96d47dfc | ||
|
|
0dcd38a24d | ||
|
|
9582b7a005 | ||
|
|
4a3783d6df | ||
|
|
88f4b5757c | ||
|
|
97e33af67f | ||
|
|
a43258ca27 | ||
|
|
b166c166e7 | ||
|
|
f963e96259 | ||
|
|
aa6bf4e80b | ||
|
|
fef64f5de5 | ||
|
|
ac81afab4f | ||
|
|
111470b8a2 | ||
|
|
67c8c51001 | ||
|
|
4b52c0611f | ||
|
|
8796676d52 | ||
|
|
3095406395 | ||
|
|
8133abce26 | ||
|
|
66ce9bc185 | ||
|
|
db1368a130 | ||
|
|
5f00348134 | ||
|
|
8061873d98 | ||
|
|
0548037236 | ||
|
|
6048f838e3 | ||
|
|
2fd7fd7369 | ||
|
|
2e55b5dd3a | ||
|
|
b522ab7c2a | ||
|
|
234032f005 | ||
|
|
5c18029325 | ||
|
|
2d7d8d6fd1 | ||
|
|
4b6e6f5c2c | ||
|
|
b099f09ec9 | ||
|
|
f2fa51ec73 | ||
|
|
d282dddcfd | ||
|
|
e24b8208b0 | ||
|
|
0056593b61 | ||
|
|
71e90a29ad | ||
|
|
20a3d4112f | ||
|
|
4ba51a6b66 | ||
|
|
bb662c4f7a | ||
|
|
e82486aa49 | ||
|
|
9ef1e66fba | ||
|
|
d702f1dcba | ||
|
|
c31f8caa4d | ||
|
|
5178c9fe83 | ||
|
|
a0b91a68d7 | ||
|
|
4f6b05865f | ||
|
|
0e0db3eebb | ||
|
|
609c82da5e | ||
|
|
e1d9fc8bc1 | ||
|
|
eb1fba12e2 | ||
|
|
3912efe30f | ||
|
|
fadad8447c | ||
|
|
3858e79861 | ||
|
|
4893e98712 | ||
|
|
70efeebc57 | ||
|
|
3cf7de3328 | ||
|
|
8b2e59a8c8 | ||
|
|
1ae6a7c4d3 | ||
|
|
7c308a99f7 | ||
|
|
902548b5ec | ||
|
|
0a57b1e0c7 | ||
|
|
4d20eb490b | ||
|
|
b6b37b7c74 | ||
|
|
0da7d37ae9 | ||
|
|
23a39ad85f | ||
|
|
fb7805683f | ||
|
|
3fe5d2c50d | ||
|
|
a37a480bf5 | ||
|
|
7ccad65c74 | ||
|
|
b099048f89 | ||
|
|
cc1ea405b7 | ||
|
|
25b0e9b76d | ||
|
|
5c1c118b8a | ||
|
|
e1b559b602 | ||
|
|
8f511d22c9 | ||
|
|
691d6c5fc0 | ||
|
|
1be1ad4d27 | ||
|
|
d6ef48a710 | ||
|
|
3a52401ad2 | ||
|
|
bd24ad87ac | ||
|
|
559b1b2e28 | ||
|
|
985deea75b | ||
|
|
4da420a519 | ||
|
|
19128173ab | ||
|
|
875011d6f2 | ||
|
|
da34f9f408 | ||
|
|
97bb071f95 | ||
|
|
b2d6d22bf0 | ||
|
|
09d76814f4 | ||
|
|
b66fac0f73 | ||
|
|
fd550b5cb8 | ||
|
|
88c4d1b817 | ||
|
|
cb86661230 | ||
|
|
4fa79a7023 | ||
|
|
039786589f | ||
|
|
09489c384b | ||
|
|
d7c57a0c14 | ||
|
|
0e4baeaa35 | ||
|
|
a7943f6350 | ||
|
|
650bb69c7b | ||
|
|
60f0a67594 | ||
|
|
a025151f2d | ||
|
|
5c3426d524 | ||
|
|
cb3067db94 | ||
|
|
899a818f23 | ||
|
|
970eb178b2 | ||
|
|
135e331c3a | ||
|
|
9ff2ef9fe1 | ||
|
|
de58f61c2a | ||
|
|
8fb869a726 | ||
|
|
635ba5bd14 | ||
|
|
e499be71f0 | ||
|
|
9feb99ecb1 | ||
|
|
06740b2fe5 | ||
|
|
78cb74134b | ||
|
|
c1432f0462 | ||
|
|
db32da8682 | ||
|
|
a8a1f62999 | ||
|
|
5af2155539 | ||
|
|
c9498e0b05 | ||
|
|
7fe677cf6b | ||
|
|
71581e9afa | ||
|
|
4882c7bc07 | ||
|
|
dde6018798 | ||
|
|
21d149f5e9 | ||
|
|
dc7f50b812 | ||
|
|
6fb310bb09 | ||
|
|
45f4c1b34e | ||
|
|
4562b6d22c | ||
|
|
0dee7bed88 | ||
|
|
f4a5ba54ac | ||
|
|
b1ac90a4a8 | ||
|
|
1528383bf1 | ||
|
|
e6d42cbc43 | ||
|
|
f9d43f296c | ||
|
|
c3ceb84d68 | ||
|
|
23015fefad | ||
|
|
b9b2db3c5f | ||
|
|
0b12aaa081 | ||
|
|
01ff23f34d | ||
|
|
8727b0b49a | ||
|
|
6e5503565e | ||
|
|
51f172a42a | ||
|
|
0f6435157f | ||
|
|
f6bf9def7e | ||
|
|
b01a4e6bd3 | ||
|
|
1a3d7da175 | ||
|
|
b4169bc203 | ||
|
|
1d58e7eba2 | ||
|
|
4e8007f55d | ||
|
|
e4f4cb135c | ||
|
|
0cb9c0b3f8 | ||
|
|
66c3ad95b6 | ||
|
|
4073788a7e | ||
|
|
ed50905900 | ||
|
|
2a51e8e640 | ||
|
|
cb357cc4bf | ||
|
|
99cd5e5444 | ||
|
|
8f6b586b58 | ||
|
|
934c9819c7 | ||
|
|
e634d18c48 | ||
|
|
7ec3df7ddd | ||
|
|
cb435cd742 | ||
|
|
8678f0ba6a | ||
|
|
269d6061c3 | ||
|
|
cb6415b2d5 | ||
|
|
34630d5ca1 | ||
|
|
b50a64424f | ||
|
|
72ab4731bf | ||
|
|
93c204b162 | ||
|
|
ee4c12f1b4 | ||
|
|
5142b5748e | ||
|
|
5d75a1e629 | ||
|
|
662d103e7d | ||
|
|
0d4d978c52 | ||
|
|
5721de48ca | ||
|
|
bb3e4af18d | ||
|
|
e41cc9b99b | ||
|
|
ce70b3ebe4 | ||
|
|
dc55749c58 | ||
|
|
af368b9049 | ||
|
|
b824cdafec | ||
|
|
6c2dedfaa4 | ||
|
|
9e7c74bb55 | ||
|
|
55777cb64d | ||
|
|
89b3243fd8 | ||
|
|
9cd8ebbfe8 | ||
|
|
ad4985397d | ||
|
|
ecd951296b | ||
|
|
bc62e73bb8 | ||
|
|
d5ba2b9a38 | ||
|
|
c708a47b25 | ||
|
|
daa1e38bab | ||
|
|
2426c3bd63 | ||
|
|
d84809538f | ||
|
|
d832d24006 | ||
|
|
ea836428c1 | ||
|
|
afdd41dd6a | ||
|
|
8b9e2d4583 | ||
|
|
e6fdf643b3 | ||
|
|
b90ddeb75c | ||
|
|
b264aa7c57 | ||
|
|
2e36c3e97b | ||
|
|
3b5e99739b | ||
|
|
f1d8f0a503 | ||
|
|
7b258bd47c | ||
|
|
7b458b0a03 | ||
|
|
17437636cb | ||
|
|
3c192328ca | ||
|
|
214cce5517 | ||
|
|
dcb9cf19bb | ||
|
|
86070b6f26 | ||
|
|
a46ef482b3 | ||
|
|
a570556b6e | ||
|
|
cc4e06ba60 | ||
|
|
9631a6e074 | ||
|
|
24a53e6920 | ||
|
|
1b050f07c1 | ||
|
|
209a4cd4ff | ||
|
|
0ae1b02c78 | ||
|
|
7ad8f9bfd7 | ||
|
|
2d48fa2684 | ||
|
|
c8a2ab1879 | ||
|
|
b20c1053ab | ||
|
|
6c81bff536 | ||
|
|
e8b57cc705 | ||
|
|
636cda54f0 | ||
|
|
8a631b4d12 | ||
|
|
ea30a47ef4 | ||
|
|
f981dcbe94 | ||
|
|
8e85d70b91 | ||
|
|
0d3b650a17 | ||
|
|
8db5a8ae20 | ||
|
|
1b671ec0dd | ||
|
|
66cd404c19 | ||
|
|
aa73ee6e56 | ||
|
|
16c428e8b9 | ||
|
|
624802c0f3 | ||
|
|
4b07d6b1e2 | ||
|
|
480e15a41c | ||
|
|
beb9469222 | ||
|
|
f1a3e189ec | ||
|
|
44b80fc8ad | ||
|
|
68c9014a4a | ||
|
|
84be74fba6 | ||
|
|
baec983c04 | ||
|
|
fea176b546 | ||
|
|
7b90822271 | ||
|
|
19591e2473 | ||
|
|
875729efc9 | ||
|
|
2aabb685b6 | ||
|
|
1b654bc947 | ||
|
|
dc52697066 | ||
|
|
5aff1b51d1 | ||
|
|
b55915dc2d | ||
|
|
ec6493f2b8 | ||
|
|
74867b094c | ||
|
|
5c21ccca7b | ||
|
|
dab38fe514 | ||
|
|
28aca7303b | ||
|
|
43cbca4fbf | ||
|
|
01cd0a0e45 | ||
|
|
d5fb294747 | ||
|
|
f07a0838c2 | ||
|
|
94b7fc5ca7 | ||
|
|
99d97ce43f | ||
|
|
7278dc8cbc | ||
|
|
3de98b6fb6 | ||
|
|
b38f2f3429 | ||
|
|
cea3281fa1 | ||
|
|
b537b155ed | ||
|
|
ccdaf5990b | ||
|
|
bd808f7dcc | ||
|
|
5e3100e225 | ||
|
|
e88b3c601b | ||
|
|
38808ad999 | ||
|
|
a01dee70ea | ||
|
|
11ab70fd89 | ||
|
|
1dfad0a9d3 | ||
|
|
d24753dbf1 | ||
|
|
1958ac85c0 | ||
|
|
6ad83f332d | ||
|
|
995249252e | ||
|
|
c7a571a771 | ||
|
|
0cf8975e2a | ||
|
|
a367c2d812 | ||
|
|
7b34cb4a15 | ||
|
|
c6afdfc531 | ||
|
|
6cc142428e | ||
|
|
24f8828f4d | ||
|
|
a7346777c6 | ||
|
|
082bbbea10 | ||
|
|
f748950db6 | ||
|
|
304456608e | ||
|
|
3ab0bb6501 | ||
|
|
b4b10b99d7 | ||
|
|
ce74537dd7 | ||
|
|
da8d758711 | ||
|
|
e7cf3a048c | ||
|
|
401ff4964c | ||
|
|
76f4308926 | ||
|
|
abc2391b16 | ||
|
|
077a6cbece | ||
|
|
6cdf0568cf | ||
|
|
4bdb2c7b6e | ||
|
|
791b296b8e | ||
|
|
7d0bbc47d7 | ||
|
|
f6627105c2 | ||
|
|
be130b0337 | ||
|
|
40c5514475 | ||
|
|
62d918cae7 | ||
|
|
8ebcf55a9f | ||
|
|
cd3de32c6b | ||
|
|
36db921e01 | ||
|
|
e569e9e9ab | ||
|
|
c34088c42a | ||
|
|
1b6a0ff3b0 | ||
|
|
31181a01b6 | ||
|
|
08f8cf1a9e | ||
|
|
2ea0874f3f | ||
|
|
2d357d6e45 | ||
|
|
502fec899c | ||
|
|
1d7632f6e0 | ||
|
|
9ca9c5016b | ||
|
|
ee9184e1a9 | ||
|
|
c4db257e2e | ||
|
|
7c6afac7e6 | ||
|
|
f1d660fcb3 | ||
|
|
98d42037a5 | ||
|
|
326bfdff35 | ||
|
|
de6f149f5f | ||
|
|
48c4185146 | ||
|
|
0eb53a0627 | ||
|
|
370566c1e6 | ||
|
|
dfa4a65a52 | ||
|
|
24d8781502 | ||
|
|
e2ce695c5d | ||
|
|
3170aa3764 | ||
|
|
114535264c | ||
|
|
35dc38b268 | ||
|
|
d4406723ec | ||
|
|
b9f37656c8 | ||
|
|
d554c361d3 | ||
|
|
e0792c933b | ||
|
|
b4f22927e5 | ||
|
|
1978e5ad54 | ||
|
|
08fa057f64 | ||
|
|
a9d4c8d1cd | ||
|
|
d0020e0e23 | ||
|
|
5cced2c4ac | ||
|
|
a331adea33 | ||
|
|
ba9e9a59a9 | ||
|
|
6e5baa7e71 | ||
|
|
327160f25e | ||
|
|
69a513d135 | ||
|
|
56ec7b2901 | ||
|
|
d99e33e348 | ||
|
|
f145c7fbd2 | ||
|
|
9534c91a41 | ||
|
|
810f50427c | ||
|
|
97d5fe7c2b | ||
|
|
3f43b4f84e | ||
|
|
923be72f83 | ||
|
|
700440e0f3 | ||
|
|
7d59bf0f64 | ||
|
|
3f8091f15a | ||
|
|
8e0716b082 | ||
|
|
1eb17e0903 | ||
|
|
14c5e416e3 | ||
|
|
2e70d1dbe5 | ||
|
|
d8ceb92fcc | ||
|
|
ddd949b958 | ||
|
|
780e40c538 | ||
|
|
c939f74973 | ||
|
|
6e2188ef57 | ||
|
|
ebff9819e9 | ||
|
|
c4d746554b | ||
|
|
dfa5717634 | ||
|
|
14e9c92103 | ||
|
|
5f4f0bf1e6 | ||
|
|
deb0e4ee28 | ||
|
|
59040bcaaa | ||
|
|
a6a2d6ced9 | ||
|
|
5303e4fc8c | ||
|
|
010caf4f10 | ||
|
|
beea64e0dc | ||
|
|
5c2cca7db2 | ||
|
|
5637219381 | ||
|
|
58b76f95b2 | ||
|
|
7a6af69ba8 | ||
|
|
6b4720e854 | ||
|
|
72c2ffce20 | ||
|
|
352041bd83 | ||
|
|
7778d0116c | ||
|
|
3ea2a44644 | ||
|
|
0ce06d0a65 | ||
|
|
efc03cf36f | ||
|
|
9087f55082 | ||
|
|
c4618712a0 | ||
|
|
5d722018ba | ||
|
|
17c37ca31c | ||
|
|
0f9b3af702 | ||
|
|
122acc8cfc | ||
|
|
f4148ccf2d | ||
|
|
852b5011b5 | ||
|
|
9aadfdb56c | ||
|
|
2162d59e4e | ||
|
|
da37aa322d | ||
|
|
b335e24a13 | ||
|
|
9a0c9856d3 | ||
|
|
86256cad5d | ||
|
|
c0d43e104e | ||
|
|
bb617aa011 | ||
|
|
f3b1fa4a60 | ||
|
|
71b8db3a9a | ||
|
|
aef01f5394 | ||
|
|
cb54d306f9 | ||
|
|
70debab1ce | ||
|
|
71edf928c8 | ||
|
|
251a65dfe2 | ||
|
|
b2a81a3d7e | ||
|
|
c1ee663c10 | ||
|
|
32b0659781 | ||
|
|
261e788b4b | ||
|
|
d7d393915e | ||
|
|
d64b72d8fd | ||
|
|
5e124df2db | ||
|
|
54cca63d30 | ||
|
|
a360d1ff46 | ||
|
|
f0f7d04113 | ||
|
|
af3de31400 | ||
|
|
8195694d54 | ||
|
|
e13b7bf325 | ||
|
|
a1e0baea6b | ||
|
|
16999286b6 | ||
|
|
673fb318a9 | ||
|
|
7a29841637 | ||
|
|
372a2a96af | ||
|
|
bbb91873be | ||
|
|
912328358c | ||
|
|
293ec0d7c9 | ||
|
|
f0c7d69b86 | ||
|
|
a2080b3378 | ||
|
|
1b611e1bee | ||
|
|
a3059ecfb2 | ||
|
|
ca60852f72 | ||
|
|
95655e1884 | ||
|
|
40a88a72aa | ||
|
|
2607730ae3 | ||
|
|
3c66bcb735 | ||
|
|
1dc49da1cb | ||
|
|
bd0d093bad | ||
|
|
770dd633db | ||
|
|
944bea7be8 | ||
|
|
9ea5c1a2b0 | ||
|
|
0ac7bff9c6 | ||
|
|
9ded4a5c19 | ||
|
|
c6d1381fb4 | ||
|
|
e45ea65375 | ||
|
|
e115aca98d | ||
|
|
300e6fafe8 | ||
|
|
0e0fc46b35 | ||
|
|
5f9fe4c7b3 | ||
|
|
e174970572 | ||
|
|
6a0ca4e14c | ||
|
|
379052de37 | ||
|
|
338cdcc115 | ||
|
|
e4abfe81b8 | ||
|
|
b15dc02b2a | ||
|
|
bd0892c974 | ||
|
|
9247bf55f4 | ||
|
|
94d3df3717 | ||
|
|
fd8f8e85b0 | ||
|
|
7520900f79 | ||
|
|
550e49b9df | ||
|
|
de090950d0 | ||
|
|
ff74101e1b | ||
|
|
196f398e9f | ||
|
|
2ab4e97376 | ||
|
|
edf5dfe3e9 | ||
|
|
7d6d88eb1c | ||
|
|
ca052cf9ed | ||
|
|
0e8128247f | ||
|
|
2210bdaf09 | ||
|
|
f2bca09409 | ||
|
|
71820613ac | ||
|
|
07b458931d | ||
|
|
460ff921b5 | ||
|
|
455497137d | ||
|
|
c3e0794dac | ||
|
|
9c7449fb49 | ||
|
|
9a6ca5c470 | ||
|
|
df7ef174ae | ||
|
|
c07a381b03 | ||
|
|
349112862e | ||
|
|
57d6a76259 | ||
|
|
adb1650aa3 | ||
|
|
bc01294a88 | ||
|
|
218a91458a | ||
|
|
8565b15660 | ||
|
|
a034b5b04e | ||
|
|
9b753ab59f | ||
|
|
d8892d524c | ||
|
|
a0ecb0cc3c | ||
|
|
9e8816331f | ||
|
|
aff1f2501e | ||
|
|
1f531e65e3 | ||
|
|
a8485dc6d6 | ||
|
|
165eb1f3e7 | ||
|
|
c489ce3000 | ||
|
|
ea6c1b6230 | ||
|
|
5a7a1ab379 | ||
|
|
5bdca475f1 | ||
|
|
ab8975174d | ||
|
|
c7d153cbbb | ||
|
|
3fcdad6278 | ||
|
|
dc785821c0 | ||
|
|
4ddbdc2f1b | ||
|
|
60aa83fdd4 | ||
|
|
4078b3aa79 | ||
|
|
bb33ee662c | ||
|
|
dd843d4484 | ||
|
|
a65023af76 | ||
|
|
6e4e90b77a | ||
|
|
ef3d4161e5 | ||
|
|
c6a7fdc9d4 | ||
|
|
e33638fe9d | ||
|
|
23dca0cd0d | ||
|
|
c815194539 | ||
|
|
3929f9e90e | ||
|
|
e507bdc0e4 | ||
|
|
eb94916257 | ||
|
|
19d1fdff7c | ||
|
|
ac3567a097 | ||
|
|
93069ee44f | ||
|
|
e9fe9e755c | ||
|
|
2146c122aa | ||
|
|
67681ec324 | ||
|
|
febd18f728 | ||
|
|
745e9ef82f | ||
|
|
4fa72e4d11 | ||
|
|
a905678adc | ||
|
|
88670a2902 | ||
|
|
fa450103b8 | ||
|
|
96b3e6bc09 | ||
|
|
8e247cc6a3 | ||
|
|
6625300b0d | ||
|
|
7e6ae2d3b4 | ||
|
|
1bd82c3ea9 | ||
|
|
81f7db2d51 | ||
|
|
1fd30794f5 | ||
|
|
03d79b534e | ||
|
|
baee7785fd | ||
|
|
693f52fa84 | ||
|
|
369748c404 | ||
|
|
3bb36458a1 | ||
|
|
fb90452743 | ||
|
|
d3734ecb52 | ||
|
|
03eff5665c | ||
|
|
7393667c57 | ||
|
|
a6bfdceed2 | ||
|
|
6bdfb292f2 | ||
|
|
cd11dabef8 | ||
|
|
18b33c63ad | ||
|
|
ee58b4b226 | ||
|
|
a54a0757a8 | ||
|
|
5ea2ee0bfb | ||
|
|
ce3e961fed | ||
|
|
443637dcd2 | ||
|
|
cf0978ad98 | ||
|
|
8058b22442 | ||
|
|
0a074deaa3 | ||
|
|
74bb80deb6 | ||
|
|
0f506c60ed | ||
|
|
a6be688d45 | ||
|
|
d5e9e1ba68 | ||
|
|
4c439372a6 | ||
|
|
07df807261 | ||
|
|
eba3a79748 | ||
|
|
eddf277649 | ||
|
|
7e01424293 | ||
|
|
9a2719509c | ||
|
|
4366d35d49 | ||
|
|
47e2f9e1fb | ||
|
|
5ed9b2f277 | ||
|
|
5530db2715 | ||
|
|
6b33a12391 | ||
|
|
f2e4744fc4 | ||
|
|
f70603d910 | ||
|
|
2c6bdbf7af | ||
|
|
47e1f51328 | ||
|
|
faee828d70 | ||
|
|
2367b2f504 | ||
|
|
9d702a3135 | ||
|
|
3fcc1a8bb2 | ||
|
|
56c39ebf06 | ||
|
|
f64464d18f | ||
|
|
7bf96e0035 | ||
|
|
7add1b667d | ||
|
|
93c9217da1 | ||
|
|
03a7150261 | ||
|
|
74dd7b71b7 | ||
|
|
2cf3949e32 | ||
|
|
54b083e10a | ||
|
|
3bf35df982 | ||
|
|
ace71ee517 | ||
|
|
82d26bceb4 | ||
|
|
0841fa9252 | ||
|
|
0802e6030b | ||
|
|
51d6aedd18 | ||
|
|
33fd941d6d | ||
|
|
75e82a9831 | ||
|
|
af1fba790a | ||
|
|
23e3000209 | ||
|
|
7a7d102788 | ||
|
|
a8fc23ad30 | ||
|
|
90f7b103f2 | ||
|
|
2c5e45746f | ||
|
|
c0b81d11b0 | ||
|
|
f6019494d6 | ||
|
|
b3f2fec373 | ||
|
|
4472e53a91 | ||
|
|
40ca720fc0 | ||
|
|
31ca9f0983 | ||
|
|
45c2d577fb | ||
|
|
9b0179044f | ||
|
|
aaf74cba98 | ||
|
|
1c506bb857 | ||
|
|
903a415ea1 | ||
|
|
87224fa4f1 | ||
|
|
c55d5a67a4 | ||
|
|
c2c0e55bca | ||
|
|
1ca5801ff3 | ||
|
|
63701cbbb5 | ||
|
|
2b0fe4a3ef | ||
|
|
d46e9784ab | ||
|
|
66da10b424 | ||
|
|
ab6d0556fe | ||
|
|
6beacbba8a | ||
|
|
ad696be16d | ||
|
|
8e89253fad | ||
|
|
8b2d288738 | ||
|
|
020cd464d7 | ||
|
|
cfd25c802a | ||
|
|
2974c5c956 | ||
|
|
614543396a | ||
|
|
b86fc1b20a | ||
|
|
1c58843ce0 | ||
|
|
f3965a147d | ||
|
|
93c27b3700 | ||
|
|
68f3bddbba | ||
|
|
0e3bef1402 | ||
|
|
bf5c26184b | ||
|
|
3da55b052d | ||
|
|
be8b424ef4 | ||
|
|
1ebc8b52e0 | ||
|
|
fd7023a353 | ||
|
|
be7b10605c | ||
|
|
0bb8bcc8c3 | ||
|
|
bf2ec5f3b4 | ||
|
|
928eb67b32 | ||
|
|
94a306dd5a | ||
|
|
68c74682db | ||
|
|
8f7ab1f284 | ||
|
|
de1e171000 | ||
|
|
2240efba03 | ||
|
|
ea12e36ad2 | ||
|
|
a907c61697 | ||
|
|
4e78b01087 | ||
|
|
86b29e49ca | ||
|
|
e790fdecba | ||
|
|
9efa1e9368 | ||
|
|
916d53022c | ||
|
|
583dd7c2a4 | ||
|
|
79ed51d25a | ||
|
|
0706496a46 | ||
|
|
afdadec486 | ||
|
|
c6322dc7d5 | ||
|
|
254025c6d6 | ||
|
|
eab48b4a77 | ||
|
|
9e753e6ef6 | ||
|
|
0f6cd492bf | ||
|
|
02e0539f3c | ||
|
|
c80c627dd0 | ||
|
|
c21651adee | ||
|
|
b5ea9b23ad | ||
|
|
b915f649c2 | ||
|
|
3093caddbc | ||
|
|
70087dd659 | ||
|
|
11b22d6cfc | ||
|
|
26b8539d56 | ||
|
|
7f0c9dd962 | ||
|
|
eec22adfe0 | ||
|
|
229e7db6f0 | ||
|
|
6d80c9d7b2 | ||
|
|
8d35c7488a | ||
|
|
ffb69fa8ba | ||
|
|
72222df509 | ||
|
|
ac8aa9269d | ||
|
|
f29ba4cae8 | ||
|
|
06a7c01750 | ||
|
|
d3391fa4fd | ||
|
|
18c99e164e | ||
|
|
1ff0350e45 | ||
|
|
f6935ef437 | ||
|
|
fd233bc509 | ||
|
|
a36eeea1e6 | ||
|
|
60f8d06e71 | ||
|
|
38b9f7c216 | ||
|
|
6f9b9b347c | ||
|
|
e845a3e53c | ||
|
|
cfc3f536cf | ||
|
|
ae922795ba | ||
|
|
76760079f6 | ||
|
|
be8f8c1c1d | ||
|
|
5577c42401 | ||
|
|
2ecf82e6f6 | ||
|
|
34841b6dd2 | ||
|
|
0789141841 | ||
|
|
e520a7d033 | ||
|
|
b2b4b1a7d6 | ||
|
|
82e8d56a5d | ||
|
|
397348f0b7 | ||
|
|
a00ca413eb | ||
|
|
6b0a86d114 | ||
|
|
fbc9cb0e59 | ||
|
|
f0bcf18fae | ||
|
|
72f98c7020 | ||
|
|
3d88b47d7c | ||
|
|
9709bf12cd | ||
|
|
dfca061c55 | ||
|
|
20ab62487b | ||
|
|
6fd90733fe | ||
|
|
37b2f98291 | ||
|
|
2839095171 | ||
|
|
4c60bb7b4f | ||
|
|
ea39f6c212 | ||
|
|
13ce09d30d | ||
|
|
f89809c565 | ||
|
|
b1c7e13886 | ||
|
|
e37698c1ea | ||
|
|
765ab9c3a9 | ||
|
|
661f405b28 | ||
|
|
c6331ec4ed | ||
|
|
5059bde3ee | ||
|
|
edf06331d0 | ||
|
|
1d92ed1fd2 | ||
|
|
cab2cccea8 | ||
|
|
04d4b6cdfa | ||
|
|
0735721a7b | ||
|
|
35e57ad723 | ||
|
|
be146086e9 | ||
|
|
fa6bfbbcd7 | ||
|
|
5ba44669e0 | ||
|
|
0460dbd4bd | ||
|
|
f22c68ab50 | ||
|
|
af9dc0bf29 | ||
|
|
6dcc8167f2 | ||
|
|
841cd34c3b | ||
|
|
8e8ff12a3c | ||
|
|
50e955e88a | ||
|
|
74163d999b | ||
|
|
1db8ba614a | ||
|
|
5baad7eda8 | ||
|
|
25ea4a18de | ||
|
|
52e2e677d7 | ||
|
|
275fb469b9 | ||
|
|
28fbeaaa88 | ||
|
|
7532f625dd | ||
|
|
d43a93d92e | ||
|
|
8e6975b78a | ||
|
|
4e9f9ef1a9 | ||
|
|
f94d27eca3 | ||
|
|
ae48cd402d | ||
|
|
70c6034e0b | ||
|
|
00c1e6ee3a | ||
|
|
4df16d173b | ||
|
|
b801838329 | ||
|
|
5e3e3efa52 | ||
|
|
b43caa2a52 | ||
|
|
7e97ffc51b | ||
|
|
dab1ef112e | ||
|
|
1d6ca919e2 |
@@ -64,7 +64,6 @@ unix/pkgs8/*
|
||||
unix/pkgs/*
|
||||
win/Debug*
|
||||
win/Release*
|
||||
win/tcl.pc
|
||||
win/*.manifest
|
||||
win/pkgs8/*
|
||||
win/pkgs/*
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"problemMatcher": [
|
||||
{
|
||||
"owner": "tcltest",
|
||||
"pattern": [
|
||||
{
|
||||
"regexp": "^==== ([-\\w]+) (.+) (FAILED)$",
|
||||
"severity": 3,
|
||||
"message": 2,
|
||||
"code": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,250 +0,0 @@
|
||||
# This workflow is meant for development use and run only on demand.
|
||||
# It is customizable to select
|
||||
# - Platforms
|
||||
# - Toolchains
|
||||
# - Branches (no need for core-* prefixes)
|
||||
# - Tests
|
||||
# To run the workflow, select "Custom" on the left side in the GH Actions
|
||||
# page. Then click the Run workflow button on the right. This will display
|
||||
# a dropdown that allows customization as above.
|
||||
#
|
||||
# To run the workflow, you need to have permissions to the repository.
|
||||
# The simplest way is to clone the Tcl mirror on Github. However, that means
|
||||
# if you work in fossil, you have a potential 24-hour wait before the mirror
|
||||
# updates, which apart from nostalgia about the punched card batch processing
|
||||
# era, is not so convenient. My preference instead is to mirror the fossil
|
||||
# repository to Github via a local checkout on my system, do the work there
|
||||
# pushing to github and running this workflow to verify across platforms
|
||||
# and then committing back to the master fossil repository.
|
||||
#
|
||||
# Improvements to the workflow welcome.
|
||||
|
||||
name: Custom
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
platform:
|
||||
description: 'Target platform(s)")'
|
||||
required: true
|
||||
default: 'all'
|
||||
type: choice
|
||||
options:
|
||||
- all
|
||||
- windows
|
||||
- linux
|
||||
- macos
|
||||
|
||||
windows_toolchains:
|
||||
description: 'Windows toolchain'
|
||||
required: true
|
||||
type: choice
|
||||
options:
|
||||
- '["nmake", "msys"]'
|
||||
- '["nmake"]'
|
||||
- '["msys"]'
|
||||
default: '["nmake"]'
|
||||
|
||||
windows_architectures:
|
||||
description: 'Architecture (Windows Nmake only)'
|
||||
required: true
|
||||
type: choice
|
||||
options:
|
||||
- '["x64"]'
|
||||
- '["x86"]'
|
||||
- '["x64", "x86"]'
|
||||
default: '["x64"]'
|
||||
|
||||
linux_compiler:
|
||||
description: 'Linux compiler'
|
||||
required: true
|
||||
default: 'gcc'
|
||||
type: choice
|
||||
options:
|
||||
- gcc
|
||||
- clang
|
||||
run_tests:
|
||||
description: 'Run tests'
|
||||
required: false
|
||||
default: true
|
||||
type: boolean
|
||||
test_flags:
|
||||
description: 'TESTFLAGS'
|
||||
required: false
|
||||
default: ''
|
||||
|
||||
jobs:
|
||||
windows:
|
||||
if: ${{ github.event.inputs.platform == 'windows' || github.event.inputs.platform == 'all' }}
|
||||
runs-on: windows-2025-vs2026
|
||||
strategy:
|
||||
matrix:
|
||||
arch: ${{ fromJSON(github.event.inputs.windows_architectures) }}
|
||||
toolchain: ${{ fromJSON(github.event.inputs.windows_toolchains) }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ github.ref }}
|
||||
|
||||
# Nmake builds
|
||||
- name: Setup MSVC (for nmake)
|
||||
if: ${{ matrix.toolchain == 'nmake' }}
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: ${{ matrix.arch }}
|
||||
|
||||
- name: Build with nmake (Visual C++)
|
||||
if: ${{ matrix.toolchain == 'nmake' }}
|
||||
shell: cmd
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
working-directory: win
|
||||
run: |
|
||||
nmake /s /f makefile.vc
|
||||
|
||||
- name: Tests with nmake (Visual C++)
|
||||
if: ${{ matrix.toolchain == 'nmake' && inputs.run_tests != 'false' }}
|
||||
shell: cmd
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
TESTFLAGS: ${{ github.event.inputs.test_flags }}
|
||||
working-directory: win
|
||||
run: |
|
||||
echo TESTFLAGS=%TESTFLAGS%
|
||||
nmake /s /f makefile.vc test
|
||||
|
||||
# Msys builds
|
||||
|
||||
- name: Set up msys2 (x64)
|
||||
if: ${{ matrix.toolchain == 'msys' && matrix.arch == 'x64'}}
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: UCRT64
|
||||
pacboy: "git: make: gcc:p"
|
||||
path-type: minimal
|
||||
release: true
|
||||
update: false
|
||||
cache: true
|
||||
|
||||
- name: Set up msys2 (x86)
|
||||
if: ${{ matrix.toolchain == 'msys' && matrix.arch == 'x86'}}
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: MINGW32
|
||||
pacboy: "git: make: gcc:p"
|
||||
path-type: minimal
|
||||
release: true
|
||||
update: false
|
||||
cache: true
|
||||
|
||||
- name: Verify toolchain
|
||||
if: ${{ matrix.toolchain == 'msys' }}
|
||||
shell: bash -l {0}
|
||||
run: |
|
||||
gcc -v
|
||||
make -v
|
||||
|
||||
- name: Configure with MSYS
|
||||
if: ${{ matrix.toolchain == 'msys' }}
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
working-directory: win
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
../configure
|
||||
|
||||
- name: Compile with MSYS
|
||||
if: ${{ matrix.toolchain == 'msys' }}
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
shell: msys2 {0}
|
||||
working-directory: win\build
|
||||
run: |
|
||||
file ../../libtommath/win32/tommath.lib
|
||||
make -s
|
||||
|
||||
- name: Tests with MSYS
|
||||
if: ${{ matrix.toolchain == 'msys' && inputs.run_tests != 'false' }}
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
TESTFLAGS: ${{ github.event.inputs.test_flags }}
|
||||
working-directory: win\build
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
echo TESTFLAGS=$TESTFLAGS
|
||||
make -s test
|
||||
|
||||
linux:
|
||||
if: ${{ github.event.inputs.platform == 'linux' || github.event.inputs.platform == 'all' }}
|
||||
runs-on: ubuntu-26.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ github.ref }}
|
||||
|
||||
- name: Configure with ${{ github.event.inputs.linux_compiler }}
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
CC: ${{ github.event.inputs.linux_compiler }}
|
||||
working-directory: unix
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
echo CC=$CC
|
||||
../configure || (cat config.log && exit 1)
|
||||
|
||||
- name: Compile
|
||||
working-directory: unix/build
|
||||
run: |
|
||||
make -s
|
||||
|
||||
- name: Run tests
|
||||
if: ${{ inputs.run_tests != 'false' }}
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
TESTFLAGS: ${{ github.event.inputs.test_flags }}
|
||||
working-directory: unix/build
|
||||
run: |
|
||||
echo TESTFLAGS=$TESTFLAGS
|
||||
make -s test
|
||||
|
||||
macos:
|
||||
if: ${{ github.event.inputs.platform == 'macos' || github.event.inputs.platform == 'all' }}
|
||||
runs-on: macos-26
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ github.ref }}
|
||||
|
||||
- name: Configure
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
working-directory: unix
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
../configure --enable-framework || (cat config.log && exit 1)
|
||||
make -s
|
||||
|
||||
- name: Compile
|
||||
working-directory: unix/build
|
||||
run: |
|
||||
make -s
|
||||
|
||||
- name: Run tests
|
||||
if: ${{ inputs.run_tests != 'false' }}
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
TESTFLAGS: ${{ github.event.inputs.test_flags }}
|
||||
working-directory: unix/build
|
||||
run: |
|
||||
echo TESTFLAGS=$TESTFLAGS
|
||||
make -s test
|
||||
@@ -3,15 +3,14 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- "main"
|
||||
- "core-9-1-branch"
|
||||
- "core-9-0-branch"
|
||||
tags:
|
||||
- "core-*"
|
||||
workflow_dispatch:
|
||||
permissions:
|
||||
contents: read
|
||||
jobs:
|
||||
plan:
|
||||
runs-on: ubuntu-26.04
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
gcc: ${{ steps.matrix.outputs.gcc }}
|
||||
steps:
|
||||
@@ -22,7 +21,7 @@ jobs:
|
||||
echo gcc=$(jq -nc '{config: (if env.IsMatched == "true" then env.FULL else env.PARTIAL end) | fromjson }' )
|
||||
) | tee -a $GITHUB_OUTPUT
|
||||
env:
|
||||
IsMatched: ${{ github.ref_name == 'main' || github.ref_name == 'core-9-1-branch' }}
|
||||
IsMatched: ${{ github.ref_name == 'main' || github.ref_name == 'core-9-0-branch' }}
|
||||
# DO NOT CHANGE THESE MATRIX SPECS; IT AFFECTS OUR COST CONTROLS
|
||||
FULL: >
|
||||
[
|
||||
@@ -44,7 +43,7 @@ jobs:
|
||||
]
|
||||
gcc:
|
||||
needs: plan
|
||||
runs-on: ubuntu-26.04
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.plan.outputs.gcc) }}
|
||||
defaults:
|
||||
@@ -53,7 +52,7 @@ jobs:
|
||||
working-directory: unix
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v5
|
||||
timeout-minutes: 5
|
||||
- name: Install 32-bit dependencies if needed
|
||||
# Duplicated from above
|
||||
@@ -86,12 +85,9 @@ jobs:
|
||||
make runtest SCRIPT=../.github/workflows/info.tcl || echo 'get info failed'
|
||||
- name: Run Tests
|
||||
run: |
|
||||
echo "::add-matcher::.github/tcltest.json"
|
||||
make test
|
||||
echo "::remove-matcher::.github/tcltest.json"
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
CI: 1
|
||||
timeout-minutes: 30
|
||||
- name: Test-Drive Installation
|
||||
run: |
|
||||
|
||||
@@ -3,15 +3,14 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- "main"
|
||||
- "core-9-1-branch"
|
||||
- "core-9-0-branch"
|
||||
tags:
|
||||
- "core-*"
|
||||
workflow_dispatch:
|
||||
permissions:
|
||||
contents: read
|
||||
jobs:
|
||||
plan:
|
||||
runs-on: ubuntu-26.04
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
clang: ${{ steps.matrix.outputs.clang }}
|
||||
steps:
|
||||
@@ -22,7 +21,7 @@ jobs:
|
||||
echo clang=$(jq -nc '{config: (if env.IsMatched == "true" then env.FULL else env.PARTIAL end) | fromjson }' )
|
||||
) | tee -a $GITHUB_OUTPUT
|
||||
env:
|
||||
IsMatched: ${{ github.ref_name == 'main' || github.ref_name == 'core-9-1-branch' }}
|
||||
IsMatched: ${{ github.ref_name == 'main' || github.ref_name == 'core-9-0-branch' }}
|
||||
# DO NOT CHANGE THIS MATRIX SPEC; IT AFFECTS OUR COST CONTROLS
|
||||
FULL: >
|
||||
[
|
||||
@@ -39,14 +38,14 @@ jobs:
|
||||
"--enable-symbols=all"
|
||||
]
|
||||
xcode:
|
||||
runs-on: macos-26
|
||||
runs-on: macos-15
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
working-directory: macosx
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v5
|
||||
timeout-minutes: 5
|
||||
- name: Prepare
|
||||
run: |
|
||||
@@ -58,15 +57,13 @@ jobs:
|
||||
CFLAGS: -arch x86_64 -arch arm64
|
||||
timeout-minutes: 15
|
||||
- name: Run Tests
|
||||
run: |
|
||||
echo "::add-matcher::.github/tcltest.json"
|
||||
make -j4 test styles=develop
|
||||
run: make -j4 test styles=develop
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
MAC_CI: 1
|
||||
timeout-minutes: 30
|
||||
timeout-minutes: 15
|
||||
clang:
|
||||
runs-on: macos-26
|
||||
runs-on: macos-15
|
||||
needs: plan
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.plan.outputs.clang) }}
|
||||
@@ -76,7 +73,7 @@ jobs:
|
||||
working-directory: unix
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v5
|
||||
timeout-minutes: 5
|
||||
- name: Prepare
|
||||
run: |
|
||||
@@ -102,9 +99,8 @@ jobs:
|
||||
make runtest SCRIPT=../.github/workflows/info.tcl || echo 'get info failed'
|
||||
- name: Run Tests
|
||||
run: |
|
||||
echo "::add-matcher::.github/tcltest.json"
|
||||
make test
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
MAC_CI: 1
|
||||
timeout-minutes: 30
|
||||
timeout-minutes: 15
|
||||
|
||||
@@ -3,23 +3,22 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- "main"
|
||||
- "core-9-1-branch"
|
||||
- "core-9-0-branch"
|
||||
tags:
|
||||
- "core-*"
|
||||
workflow_dispatch:
|
||||
permissions:
|
||||
contents: read
|
||||
jobs:
|
||||
linux:
|
||||
name: Linux
|
||||
runs-on: ubuntu-26.04
|
||||
runs-on: ubuntu-24.04
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v5
|
||||
- name: Prepare
|
||||
run: |
|
||||
touch generic/tclStubInit.c generic/tclOOStubInit.c
|
||||
@@ -46,7 +45,7 @@ jobs:
|
||||
ulimit -a || echo 'get limit failed'
|
||||
echo 'puts exe:\t[info nameofexecutable]\nver:\t[info patchlevel]\t[if {![catch tcl::build-info ret]} {set ret}]\nlib:\t[info library]\nplat:\t[lsort -dictionary -stride 2 [array get tcl_platform]]' | make runtest || echo 'get info failed'
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v7
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Tclsh ${{ env.TCL_PATCHLEVEL }} Linux single-file build (snapshot)
|
||||
path: 1dist/*.tar
|
||||
@@ -55,25 +54,25 @@ jobs:
|
||||
url: ${{ steps.upload.outputs.artifact-url }}
|
||||
macos:
|
||||
name: macOS
|
||||
runs-on: macos-26
|
||||
runs-on: macos-13
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v5
|
||||
- name: Checkout create-dmg
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
repository: create-dmg/create-dmg
|
||||
ref: v1.2.2
|
||||
ref: v1.0.8
|
||||
path: create-dmg
|
||||
- name: Prepare
|
||||
run: |
|
||||
mkdir 1dist
|
||||
touch generic/tclStubInit.c generic/tclOOStubInit.c || true
|
||||
wget https://github.com/culler/macher/releases/download/v1.8/macher
|
||||
wget https://github.com/culler/macher/releases/download/v1.7/macher
|
||||
sudo cp macher /usr/local/bin
|
||||
sudo chmod a+x /usr/local/bin/macher
|
||||
echo "VER_PATH=$(cd tools; pwd)/addVerToFile.tcl" >> $GITHUB_ENV
|
||||
@@ -116,7 +115,7 @@ jobs:
|
||||
ulimit -a || echo 'get limit failed'
|
||||
echo 'puts exe:\t[info nameofexecutable]\nver:\t[info patchlevel]\t[if {![catch tcl::build-info ret]} {set ret}]\nlib:\t[info library]\nplat:\t[lsort -dictionary -stride 2 [array get tcl_platform]]' | make runtest || echo 'get info failed'
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v7
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Tclsh ${{ env.TCL_PATCHLEVEL }} macOS single-file build (snapshot)
|
||||
path: 1dist/*.dmg
|
||||
@@ -125,7 +124,7 @@ jobs:
|
||||
url: ${{ steps.upload.outputs.artifact-url }}
|
||||
win:
|
||||
name: Windows
|
||||
runs-on: windows-2025-vs2026
|
||||
runs-on: windows-2025
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
@@ -140,7 +139,7 @@ jobs:
|
||||
msystem: UCRT64
|
||||
install: git mingw-w64-ucrt-x86_64-toolchain make zip
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v5
|
||||
- name: Prepare
|
||||
run: |
|
||||
touch generic/tclStubInit.c generic/tclOOStubInit.c
|
||||
@@ -168,7 +167,7 @@ jobs:
|
||||
ulimit -a || echo 'get limit failed'
|
||||
echo 'puts exe:\t[info nameofexecutable]\nver:\t[info patchlevel]\t[if {![catch tcl::build-info ret]} {set ret}]\nlib:\t[info library]\nplat:\t[lsort -dictionary -stride 2 [array get tcl_platform]]' | make runtest || echo 'get info failed'
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v7
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Tclsh ${{ env.TCL_PATCHLEVEL }} Windows single-file build (snapshot)
|
||||
path: '1dist/*_snapshot.exe'
|
||||
@@ -181,7 +180,7 @@ jobs:
|
||||
- macos
|
||||
- win
|
||||
name: Combine Artifacts (prototype)
|
||||
runs-on: ubuntu-26.04
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
@@ -195,7 +194,7 @@ jobs:
|
||||
run: |
|
||||
mkdir data
|
||||
- name: Get Linux build
|
||||
uses: actions/download-artifact@v8
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
path: data
|
||||
# Can't download by artifact ID; stupid missing feature!
|
||||
@@ -206,7 +205,7 @@ jobs:
|
||||
working-directory: data
|
||||
- name: Transfer built files
|
||||
# https://github.com/marketplace/actions/rsync-deployments-action
|
||||
uses: burnett01/rsync-deployments@9.0.1
|
||||
uses: burnett01/rsync-deployments@7.1.0
|
||||
id: rsync
|
||||
if: false # Disabled... for now
|
||||
with:
|
||||
@@ -220,7 +219,7 @@ jobs:
|
||||
# MUST be a literal passwordless key
|
||||
- name: Publish files
|
||||
# https://github.com/marketplace/actions/ssh-remote-commands
|
||||
uses: appleboy/ssh-action@v1.2.5
|
||||
uses: appleboy/ssh-action@v1.2.2
|
||||
id: ssh
|
||||
if: steps.rsync.outcome == 'success'
|
||||
with:
|
||||
|
||||
@@ -3,15 +3,14 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- "main"
|
||||
- "core-9-1-branch"
|
||||
- "core-9-0-branch"
|
||||
tags:
|
||||
- "core-*"
|
||||
workflow_dispatch:
|
||||
permissions:
|
||||
contents: read
|
||||
jobs:
|
||||
plan:
|
||||
runs-on: ubuntu-26.04
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
msvc: ${{ steps.matrix.outputs.msvc }}
|
||||
gcc: ${{ steps.matrix.outputs.gcc }}
|
||||
@@ -20,11 +19,11 @@ jobs:
|
||||
id: matrix
|
||||
run: |
|
||||
(
|
||||
echo msvc=$(jq -nc '{arch: ["x64"], config: (if env.IsMatched == "true" then env.MSVC_FULL else env.MSVC_PARTIAL end) | fromjson }' )
|
||||
echo msvc=$(jq -nc '{config: (if env.IsMatched == "true" then env.MSVC_FULL else env.MSVC_PARTIAL end) | fromjson }' )
|
||||
echo gcc=$(jq -nc '{config: (if env.IsMatched == "true" then env.GCC_FULL else env.GCC_PARTIAL end) | fromjson }' )
|
||||
) | tee -a $GITHUB_OUTPUT
|
||||
env:
|
||||
IsMatched: ${{ github.ref_name == 'main' || github.ref_name == 'core-9-1-branch' }}
|
||||
IsMatched: ${{ github.ref_name == 'main' || github.ref_name == 'core-9-0-branch' }}
|
||||
# DO NOT CHANGE THESE MATRIX SPECS; IT AFFECTS OUR COST CONTROLS
|
||||
MSVC_FULL: >
|
||||
[
|
||||
@@ -57,7 +56,7 @@ jobs:
|
||||
"--enable-symbols=all"
|
||||
]
|
||||
msvc:
|
||||
runs-on: windows-2025-vs2026
|
||||
runs-on: windows-2025
|
||||
needs: plan
|
||||
defaults:
|
||||
run:
|
||||
@@ -68,14 +67,11 @@ jobs:
|
||||
# Using powershell means we need to explicitly stop on failure
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v5
|
||||
timeout-minutes: 5
|
||||
- name: Init MSVC
|
||||
shell: cmd
|
||||
run: |
|
||||
for /f "usebackq tokens=*" %%i in (`vswhere -latest -property installationPath`) do set "VS_PATH=%%i"
|
||||
call "%VS_PATH%\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.arch }}
|
||||
set | findstr /i "^VC ^VCTools ^Windows ^Universal ^INCLUDE ^LIB ^PATH ^DevEnv" >> %GITHUB_ENV%
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
timeout-minutes: 5
|
||||
- name: Build ${{ matrix.config }}
|
||||
run: |
|
||||
&nmake -f makefile.vc ${{ matrix.config }} all
|
||||
@@ -92,7 +88,6 @@ jobs:
|
||||
timeout-minutes: 5
|
||||
- name: Run Tests ${{ matrix.config }}
|
||||
run: |
|
||||
Write-Output "::add-matcher::.github/tcltest.json"
|
||||
&nmake -f makefile.vc ${{ matrix.config }} test
|
||||
if ($lastexitcode -ne 0) {
|
||||
throw "nmake exit code: $lastexitcode"
|
||||
@@ -101,7 +96,7 @@ jobs:
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
gcc:
|
||||
runs-on: windows-2025-vs2026
|
||||
runs-on: windows-2025
|
||||
needs: plan
|
||||
defaults:
|
||||
run:
|
||||
@@ -117,7 +112,7 @@ jobs:
|
||||
install: git mingw-w64-x86_64-toolchain make
|
||||
timeout-minutes: 10
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v5
|
||||
timeout-minutes: 5
|
||||
- name: Prepare
|
||||
run: |
|
||||
@@ -141,15 +136,10 @@ jobs:
|
||||
ulimit -a || echo 'get limit failed'
|
||||
make runtest SCRIPT=../.github/workflows/info.tcl || echo 'get info failed'
|
||||
- name: Run Tests
|
||||
run: |
|
||||
echo "::add-matcher::.github/tcltest.json"
|
||||
make test
|
||||
run: make test
|
||||
timeout-minutes: 30
|
||||
env:
|
||||
ERROR_ON_FAILURES: 1
|
||||
- name: Install
|
||||
run: make install
|
||||
timeout-minutes: 5
|
||||
|
||||
# If you add builds with Wine, be sure to define the environment variable
|
||||
# CI_USING_WINE when running them so that broken tests know not to run.
|
||||
|
||||
@@ -65,6 +65,5 @@ win/pkgs8/*
|
||||
win/pkgs/*
|
||||
win/coffbase.txt
|
||||
win/tcl.hpj
|
||||
win/tcl.pc
|
||||
win/nmakehlp.out
|
||||
win/nmhlp-out.txt
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# README: Tcl
|
||||
|
||||
This is the **Tcl 9.1b1** source distribution.
|
||||
This is the **Tcl 9.1a1** source distribution.
|
||||
|
||||
You can get any source release of Tcl from [our distribution
|
||||
site](https://sourceforge.net/projects/tcl/files/Tcl/).
|
||||
@@ -64,7 +64,7 @@ There have been many Tcl books on the market. Many are mentioned in
|
||||
The complete set of reference manual entries for Tcl 9.1 is [online,
|
||||
here](https://www.tcl-lang.org/man/tcl9.1/).
|
||||
|
||||
### <a id="doc.unix"></a> Unix man pages
|
||||
### <a id="doc.unix">2a.</a> Unix Documentation
|
||||
The `doc` subdirectory in this release contains a complete set of
|
||||
reference manual entries for Tcl. Files with extension "`.1`" are for
|
||||
programs (for example, `tclsh.1`); files with extension "`.3`" are for C
|
||||
@@ -82,17 +82,27 @@ normal "man" mechanisms, such as
|
||||
|
||||
man Tcl
|
||||
|
||||
### <a id="doc.win">2b.</a> Windows Documentation
|
||||
The "doc" subdirectory in this release contains a complete set of Windows
|
||||
help files for Tcl. Once you install this Tcl release, a shortcut to the
|
||||
Windows help Tcl documentation will appear in the "Start" menu:
|
||||
|
||||
Start | Programs | Tcl | Tcl Help
|
||||
|
||||
## <a id="build">3.</a> Compiling and installing Tcl
|
||||
There are brief notes in the `unix/README`, `win/README`, and `macosx/README`
|
||||
about compiling on these different platforms. There is additional information
|
||||
about building Tcl from sources
|
||||
[online](https://www.tcl-lang.org/doc/howto/compile.html).
|
||||
|
||||
## <a id="news">4.</a> News feeds
|
||||
## <a id="devtools">4.</a> Development tools
|
||||
ActiveState produces a high-quality set of commercial quality development
|
||||
tools that is available to accelerate your Tcl application development.
|
||||
Tcl Dev Kit builds on the earlier TclPro toolset and provides a debugger,
|
||||
static code checker, single-file wrapping utility, bytecode compiler, and
|
||||
more. More information can be found at
|
||||
|
||||
You can keep up with the latest happenings in the Tcl world via
|
||||
[fosstodon](https://fosstodon.org/@tcl_tk) or
|
||||
[X](https://twitter.com/TclLang) feeds.
|
||||
https://www.activestate.com/products/tcl/
|
||||
|
||||
## <a id="complangtcl">5.</a> Tcl newsgroup
|
||||
There is a USENET newsgroup, "`comp.lang.tcl`", intended for the exchange of
|
||||
|
||||
+9
-45
@@ -4,7 +4,7 @@ changes to the Tcl source code at
|
||||
|
||||
> [Tcl Source Code](https://core.tcl-lang.org/tcl/timeline)
|
||||
|
||||
Release Tcl 9.1b1 arises from the check-in with tag `core-9-1-b1`.
|
||||
Release Tcl 9.1a1 arises from the check-in with tag `core-9-1-a1`.
|
||||
|
||||
Highlighted differences between Tcl 9.1 and Tcl 9.0 are summarized below,
|
||||
with focus on changes important to programmers using the Tcl library and
|
||||
@@ -12,58 +12,22 @@ writing Tcl scripts.
|
||||
|
||||
# New commands and options
|
||||
|
||||
- [New options `-backslashes`, `-commands` and `-variables` for `subst` command](https://core.tcl-lang.org/tips/doc/trunk/tip/712.md)
|
||||
- [New command `unicode` for Unicode normalization](https://core.tcl-lang.org/tips/doc/trunk/tip/726.md)
|
||||
- [New `timer` command, switch to monotonic clock and microsecond resolution](https://core.tcl-lang.org/tips/doc/trunk/tip/723.md)
|
||||
- [Remove `expr` behavior from `lseq`](https://core.tcl-lang.org/tips/doc/trunk/tip/746.md) *Incompatibility*
|
||||
- [File paths are now treated as case-insensitive on MacOS](https://core.tcl-lang.org/tcl/tktview/e6ca0b1b) *Incompatibility*
|
||||
- New command `tcl::registry` as a synonym for the `registry` command without needing
|
||||
the registry package to be loaded. The registry module is now part of the core
|
||||
Tcl DLL in all build configurations.
|
||||
- [New `lfilter` command for selecting items from a list](https://core.tcl-lang.org/tips/doc/trunk/tip/735.md)
|
||||
- [Many new functions from C99](https://core.tcl-lang.org/tips/doc/trunk/tip/745.md), specifically: `acosh()`, `asinh()`, `atanh()`, `cbrt()`, `copysign()`, `dim()`, `erf()`, `erfc()`, `exp2()`, `expm1()`, `fma()`, `gamma()`, `ldexp()`, `lgamma()`, `log1p()`, `log2()`, `logb()`, `nextafter()`, `remainder()`, `signbit()`, and `trunc()`, and (for functions that return multiple values in their C99 API) the commands: `divmod`, `frexp`, `modf`, and `remquo`. (See [this page](https://en.cppreference.com/w/c/numeric/math.html) for more information about these functions; the Tcl functions are _intentionally_ only thin wrappers around the functions in the C99 standard.)
|
||||
- [New `switch` option `-integer` to compare values as integers](https://core.tcl-lang.org/tips/doc/trunk/tip/730.md)
|
||||
- [Reading and writing of child interpreter variables](https://core.tcl-lang.org/tips/doc/trunk/tip/728.md)
|
||||
- [Updated Tcl Bytecode opcodes](https://core.tcl-lang.org/tips/doc/trunk/tip/720.md)
|
||||
|
||||
- New `tcltest::configure` option `-iterations` to control number of iterations of each test.
|
||||
- [New options -backslashes, -commands and -variables for subst command](https://core.tcl-lang.org/tips/doc/trunk/tip/712.md)
|
||||
- [New command unicode for Unicode normalization](https://core.tcl-lang.org/tips/doc/trunk/tip/726.md)
|
||||
|
||||
# New public C API
|
||||
|
||||
- [`Tcl_IsEmpty()` — checks if the string representation of a value would be the empty string](https://core.tcl-lang.org/tips/doc/trunk/tip/711.md)
|
||||
- [`Tcl_GetEncodingNameForUser()` — returns name of encoding from user settings](https://core.tcl-lang.org/tips/doc/trunk/tip/716.md)
|
||||
- [`Tcl_AttemptCreateHashEntry()` — version of `Tcl_CreateHashEntry()` that returns NULL instead of panic'ing on memory allocation errors](https://core.tcl-lang.org/tips/doc/trunk/tip/717.md)
|
||||
- [`Tcl_ListObjRange()`, `Tcl_ListObjRepeat()`, `Tcl_ListObjReverse()` — C API for new list operations](https://core.tcl-lang.org/tips/doc/trunk/tip/649.md)
|
||||
- [`Tcl_UtfToNormalized()`, `Tcl_UtfToNormalizedDString()` — C API for Unicode normalization](https://core.tcl-lang.org/tips/doc/trunk/tip/726.md)
|
||||
- [`Tcl_UtfToExternalEx()` and `Tcl_ExternalToUtfEx()` — C encoding API supporting output buffers larger than INT_MAX](https://core.tcl-lang.org/tips/doc/trunk/tip/737.md)
|
||||
- [New API for monotonic clock and microseconds resolution](https://core.tcl-lang.org/tips/doc/trunk/tip/723.md)
|
||||
- [Windows `auto_execok` enhancements and `exec` search reform](https://core.tcl-lang.org/tips/doc/trunk/tip/753.md)
|
||||
- [New timer API using long long in stead of Tcl_Time](https://core.tcl-lang.org/tips/doc/trunk/tip/752.md)
|
||||
|
||||
# Changes in interpreter initialization
|
||||
|
||||
- [Custom applications must call Tcl\_FindExecutable or TclZipfs_AppHook to initialize Tcl](https://core.tcl-lang.org/tips/doc/trunk/tip/732.md) *Potential incompatibility*
|
||||
- [Search path for locating Tcl core script and encodings is changed](https://core.tcl-lang.org/tips/doc/trunk/tip/732.md) *Potential incompatibility*
|
||||
- [`Tcl_RegisterPostInitProc` callback for post-initialization of interpreters](https://core.tcl-lang.org/tips/doc/trunk/tip/755.md)
|
||||
|
||||
- [Tcl\_IsEmpty checks if the string representation of a value would be the empty string](https://core.tcl-lang.org/tips/doc/trunk/tip/711.md)
|
||||
- [Tcl\_GetEncodingNameForUser returns name of encoding from user settings](https://core.tcl-lang.org/tips/doc/trunk/tip/716.md)
|
||||
- [Tcl\_AttemptCreateHashEntry - version of Tcl\_CreateHashEntry that returns NULL instead of panic'ing on memory allocation errors](https://core.tcl-lang.org/tips/doc/trunk/tip/717.md)
|
||||
- [Tcl\_ListObjRange, Tcl\_ListObjRepeat, Tcl\_TclListObjReverse - C API for new list operations](https://core.tcl-lang.org/tips/doc/trunk/tip/649.md)
|
||||
- [Tcl\_UtfToNormalized, Tcl\_UtfToNormalizedDString - C API for Unicode normalization](https://core.tcl-lang.org/tips/doc/trunk/tip/726.md)
|
||||
|
||||
# Performance
|
||||
|
||||
- [Memory efficient internal representations](https://core.tcl-lang.org/tcl/wiki?name=New+abstract+list+representations)
|
||||
for list operations on large lists.
|
||||
- [Continued 64-bit capacity: Command line arguments larger than 2Gb](https://core.tcl-lang.org/tips/doc/trunk/tip/626.md)
|
||||
- [Support for long paths on Windows](https://core.tcl-lang.org/tips/doc/trunk/tip/744.md)
|
||||
- [Faster UTF-8 encoding and I/O](https://core.tcl-lang.org/tcl/wiki?name=Faster+UTF+encoding)
|
||||
- Faster interpreter creation
|
||||
|
||||
# Bug fixes
|
||||
- [Inconsistent `glob` matching on MacOS](https://core.tcl-lang.org/tcl/tktview/e6ca0b1b)
|
||||
- [`file normalize` does not uniquely identify a file on MacOS](https://core.tcl-lang.org/tcl/tktview/10890417)
|
||||
- [Inconsistencies between `cd` and `file normalize` for volume-relative paths on Windows](https://core.tcl-lang.org/tcl/tktview/bca391ab)
|
||||
- [Tcl cannot run from an arbitrary build directory with --disable-zipfs](https://core.tcl-lang.org/tcl/tktview/006bef5d)
|
||||
- [Crash on finalization with an active thread running.](https://core.tcl-lang.org/tcl/tktview/e55a589d)
|
||||
- [Crash on use-after-free in Windows socket thread.](https://core.tcl-lang.org/tcl/tktview/06f19cc4)
|
||||
- [tclEpollNotfy PlatformEventsControl panics if websocket disconnected](https://core.tcl-lang.org/tcl/tktview/010d8f38)
|
||||
|
||||
# Updated bundled packages, libraries, standards, data
|
||||
- Unicode 18.0.0 (draft)
|
||||
- platorm 1.2b1
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
* This file provides the gettimeofday function on systems
|
||||
* that only have the System V ftime function.
|
||||
*
|
||||
* Copyright © 1995 Sun Microsystems, Inc.
|
||||
* Copyright (c) 1995 Sun Microsystems, Inc.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution
|
||||
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Source code for the "mkstemp" library routine.
|
||||
*
|
||||
* Copyright © 2009 Donal K. Fellows
|
||||
* Copyright (c) 2009 Donal K. Fellows
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
*
|
||||
* Source code for the "strncasecmp" library routine.
|
||||
*
|
||||
* Copyright © 1988-1993 The Regents of the University of California.
|
||||
* Copyright © 1995-1996 Sun Microsystems, Inc.
|
||||
* Copyright (c) 1988-1993 The Regents of the University of California.
|
||||
* Copyright (c) 1995-1996 Sun Microsystems, Inc.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
|
||||
+2
-2
@@ -5,8 +5,8 @@
|
||||
* that don't have waitpid but do have wait3. This code is based on a
|
||||
* prototype version written by Mark Diekhans and Karl Lehenbauer.
|
||||
*
|
||||
* Copyright © 1993 The Regents of the University of California.
|
||||
* Copyright © 1994 Sun Microsystems, Inc.
|
||||
* Copyright (c) 1993 The Regents of the University of California.
|
||||
* Copyright (c) 1994 Sun Microsystems, Inc.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
|
||||
@@ -1,134 +0,0 @@
|
||||
# Copied from https://github.com/bazelbuild/bazel-central-registry/tree/main/modules/zlib/1.3.1.bcr.4/patches
|
||||
# Adapted from https://github.com/protocolbuffers/protobuf/blob/master/third_party/zlib.BUILD
|
||||
|
||||
# Copyright 2008 Google Inc. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above
|
||||
# copyright notice, this list of conditions and the following disclaimer
|
||||
# in the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Google Inc. nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# Code generated by the Protocol Buffer compiler is owned by the owner
|
||||
# of the input file used when generating it. This code is not
|
||||
# standalone and requires a support library to be linked with it. This
|
||||
# support library is itself covered by the above license.
|
||||
|
||||
load("@rules_cc//cc:defs.bzl", "cc_library")
|
||||
load("@rules_license//rules:license.bzl", "license")
|
||||
|
||||
package(
|
||||
default_applicable_licenses = [":license"],
|
||||
)
|
||||
|
||||
license(
|
||||
name = "license",
|
||||
license_kinds = ["@rules_license//licenses/spdx:Zlib"],
|
||||
license_text = "LICENSE",
|
||||
)
|
||||
|
||||
exports_files([
|
||||
"LICENSE",
|
||||
])
|
||||
|
||||
_ZLIB_HEADERS = [
|
||||
"crc32.h",
|
||||
"deflate.h",
|
||||
"gzguts.h",
|
||||
"inffast.h",
|
||||
"inffixed.h",
|
||||
"inflate.h",
|
||||
"inftrees.h",
|
||||
"trees.h",
|
||||
"zconf.h",
|
||||
"zlib.h",
|
||||
"zutil.h",
|
||||
]
|
||||
|
||||
_ZLIB_PREFIXED_HEADERS = ["zlib/include/" + hdr for hdr in _ZLIB_HEADERS]
|
||||
|
||||
# In order to limit the damage from the `includes` propagation
|
||||
# via `:zlib`, copy the public headers to a subdirectory and
|
||||
# expose those.
|
||||
genrule(
|
||||
name = "copy_public_headers",
|
||||
srcs = _ZLIB_HEADERS,
|
||||
outs = _ZLIB_PREFIXED_HEADERS,
|
||||
cmd_bash = "cp $(SRCS) $(@D)/zlib/include/",
|
||||
cmd_bat = " && ".join(
|
||||
["@copy /Y \"$(location %s)\" \"$(@D)\\zlib\\include\\\" >NUL" %
|
||||
s for s in _ZLIB_HEADERS],
|
||||
),
|
||||
)
|
||||
|
||||
config_setting(
|
||||
name = "mingw_gcc_compiler",
|
||||
flag_values = {
|
||||
"@bazel_tools//tools/cpp:compiler": "mingw-gcc",
|
||||
},
|
||||
visibility = [":__subpackages__"],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "z",
|
||||
srcs = [
|
||||
"adler32.c",
|
||||
"compress.c",
|
||||
"crc32.c",
|
||||
"deflate.c",
|
||||
"gzclose.c",
|
||||
"gzlib.c",
|
||||
"gzread.c",
|
||||
"gzwrite.c",
|
||||
"infback.c",
|
||||
"inffast.c",
|
||||
"inflate.c",
|
||||
"inftrees.c",
|
||||
"trees.c",
|
||||
"uncompr.c",
|
||||
"zutil.c",
|
||||
# Include the un-prefixed headers in srcs to work
|
||||
# around the fact that zlib isn't consistent in its
|
||||
# choice of <> or "" delimiter when including itself.
|
||||
] + _ZLIB_HEADERS,
|
||||
hdrs = _ZLIB_PREFIXED_HEADERS,
|
||||
copts = select({
|
||||
":mingw_gcc_compiler": [
|
||||
"-fpermissive",
|
||||
],
|
||||
"@platforms//os:windows": [],
|
||||
"//conditions:default": [
|
||||
"-Wno-deprecated-non-prototype",
|
||||
"-Wno-unused-variable",
|
||||
"-Wno-implicit-function-declaration",
|
||||
],
|
||||
}),
|
||||
includes = ["zlib/include/"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
alias(
|
||||
name = "zlib",
|
||||
actual = ":z",
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
+152
-244
@@ -1,126 +1,98 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
cmake_minimum_required(VERSION 2.4.4...3.15.0)
|
||||
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
|
||||
|
||||
project(
|
||||
zlib
|
||||
LANGUAGES C
|
||||
VERSION 1.3.2
|
||||
HOMEPAGE_URL "https://zlib.net/"
|
||||
DESCRIPTION "a general-purpose lossless data-compression library")
|
||||
project(zlib C)
|
||||
|
||||
# ============================================================================
|
||||
# CPack
|
||||
# ============================================================================
|
||||
set(CPACK_PACKAGE_VENDOR "zlib-Project")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE ${zlib_SOURCE_DIR}/README)
|
||||
set(CPACK_RESOURCE_FILE_LICENSE ${zlib_SOURCE_DIR}/LICENSE)
|
||||
set(CPACK_RESOURCE_FILE_README ${zlib_SOURCE_DIR}/README)
|
||||
set(VERSION "1.3.1")
|
||||
|
||||
# ============================================================================
|
||||
# configuration
|
||||
# ============================================================================
|
||||
option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" ON)
|
||||
|
||||
option(ZLIB_BUILD_TESTING "Enable Zlib Examples as tests" ON)
|
||||
option(ZLIB_BUILD_SHARED "Enable building zlib shared library" ON)
|
||||
option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON)
|
||||
option(ZLIB_INSTALL "Enable installation of zlib" ON)
|
||||
option(ZLIB_PREFIX "prefix for all types and library functions, see zconf.h.in"
|
||||
OFF)
|
||||
mark_as_advanced(ZLIB_PREFIX)
|
||||
set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
|
||||
set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
|
||||
set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
|
||||
set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages")
|
||||
set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
|
||||
|
||||
get_property(IS_MULTI GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
|
||||
if(NOT DEFINED CMAKE_BUILD_TYPE AND NOT IS_MULTI)
|
||||
message(STATUS "No CMAKE_BUILD_TYPE set -- using Release")
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
endif(NOT DEFINED CMAKE_BUILD_TYPE AND NOT IS_MULTI)
|
||||
|
||||
include(CheckCSourceCompiles)
|
||||
include(CheckTypeSize)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckIncludeFile)
|
||||
include(CMakePackageConfigHelpers)
|
||||
include(CheckTypeSize)
|
||||
include(CPack)
|
||||
include(GNUInstallDirs)
|
||||
include(CheckCSourceCompiles)
|
||||
enable_testing()
|
||||
|
||||
set(CPACK_INCLUDED TRUE)
|
||||
|
||||
if(NOT ZLIB_CONF_WRITTEN)
|
||||
set(Z_PREFIX ${ZLIB_PREFIX})
|
||||
set(CONF_OUT_FILE ${zlib_BINARY_DIR}/zconf.h.cmakein)
|
||||
file(READ ${zlib_SOURCE_DIR}/zconf.h ZCONF_CONTENT LIMIT 245)
|
||||
file(WRITE ${CONF_OUT_FILE} ${ZCONF_CONTENT})
|
||||
file(APPEND ${CONF_OUT_FILE} "#cmakedefine Z_PREFIX 1\n")
|
||||
file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_STDARG_H 1\n")
|
||||
file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_UNISTD_H 1\n")
|
||||
file(READ ${zlib_SOURCE_DIR}/zconf.h ZCONF_CONTENT OFFSET 244)
|
||||
set(FIRST_ITEM TRUE)
|
||||
|
||||
foreach(item IN LISTS ZCONF_CONTENT)
|
||||
if(FIRST_ITEM)
|
||||
string(APPEND OUT_CONTENT ${item})
|
||||
set(FIRST_ITEM FALSE)
|
||||
else(FIRST_ITEM)
|
||||
string(APPEND OUT_CONTENT "\;" ${item})
|
||||
endif(FIRST_ITEM)
|
||||
endforeach(item IN LISTS ${ZCONF_CONTENT})
|
||||
|
||||
file(APPEND ${CONF_OUT_FILE} ${OUT_CONTENT})
|
||||
set(ZLIB_CONF_WRITTEN
|
||||
TRUE
|
||||
CACHE BOOL "zconf.h.cmakein was created")
|
||||
mark_as_advanced(ZLIB_CONF_WRITTEN)
|
||||
endif(NOT ZLIB_CONF_WRITTEN)
|
||||
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
|
||||
check_include_file(stdint.h HAVE_STDINT_H)
|
||||
check_include_file(stddef.h HAVE_STDDEF_H)
|
||||
|
||||
#
|
||||
# Check to see if we have large file support
|
||||
#
|
||||
set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1)
|
||||
# We add these other definitions here because CheckTypeSize.cmake
|
||||
# in CMake 2.4.x does not automatically do so and we want
|
||||
# compatibility with CMake 2.4.x.
|
||||
if(HAVE_SYS_TYPES_H)
|
||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H)
|
||||
endif()
|
||||
if(HAVE_STDINT_H)
|
||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H)
|
||||
endif()
|
||||
if(HAVE_STDDEF_H)
|
||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H)
|
||||
endif()
|
||||
check_type_size(off64_t OFF64_T)
|
||||
unset(CMAKE_REQUIRED_DEFINITIONS) # clear variable
|
||||
if(HAVE_OFF64_T)
|
||||
add_definitions(-D_LARGEFILE64_SOURCE=1)
|
||||
endif()
|
||||
set(CMAKE_REQUIRED_DEFINITIONS) # clear variable
|
||||
|
||||
#
|
||||
# Check for fseeko
|
||||
#
|
||||
check_function_exists(fseeko HAVE_FSEEKO)
|
||||
|
||||
#
|
||||
# Check for stdarg.h
|
||||
#
|
||||
check_include_file(stdarg.h HAVE_STDARG_H)
|
||||
if(NOT HAVE_FSEEKO)
|
||||
add_definitions(-DNO_FSEEKO)
|
||||
endif()
|
||||
|
||||
#
|
||||
# Check for unistd.h
|
||||
#
|
||||
check_include_file(unistd.h HAVE_UNISTD_H)
|
||||
check_include_file(unistd.h Z_HAVE_UNISTD_H)
|
||||
|
||||
#
|
||||
# Check visibility attribute is supported
|
||||
#
|
||||
if(MSVC)
|
||||
set(CMAKE_REQUIRED_FLAGS "-WX")
|
||||
else(MSVC)
|
||||
set(CMAKE_REQUIRED_FLAGS "-Werror")
|
||||
endif(MSVC)
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
||||
add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
check_c_source_compiles(
|
||||
"
|
||||
#include <stdlib.h>
|
||||
static void f(void) __attribute__ ((visibility(\"hidden\")));
|
||||
int main(void) {return 0;}
|
||||
"
|
||||
HAVE___ATTR__VIS_HIDDEN)
|
||||
if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
|
||||
# If we're doing an out of source build and the user has a zconf.h
|
||||
# in their source tree...
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h)
|
||||
message(STATUS "Renaming")
|
||||
message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h")
|
||||
message(STATUS "to 'zconf.h.included' because this file is included with zlib")
|
||||
message(STATUS "but CMake generates it automatically in the build directory.")
|
||||
file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
unset(CMAKE_COMPILE_FLAGS)
|
||||
set(ZLIB_PC ${zlib_BINARY_DIR}/zlib.pc)
|
||||
configure_file(${zlib_SOURCE_DIR}/zlib.pc.cmakein ${ZLIB_PC} @ONLY)
|
||||
configure_file(${zlib_BINARY_DIR}/zconf.h.cmakein ${zlib_BINARY_DIR}/zconf.h)
|
||||
set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc)
|
||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein
|
||||
${ZLIB_PC} @ONLY)
|
||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein
|
||||
${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
|
||||
|
||||
# ============================================================================
|
||||
|
||||
#============================================================================
|
||||
# zlib
|
||||
# ============================================================================
|
||||
|
||||
set(ZLIB_PUBLIC_HDRS ${zlib_BINARY_DIR}/zconf.h zlib.h)
|
||||
#============================================================================
|
||||
|
||||
set(ZLIB_PUBLIC_HDRS
|
||||
${CMAKE_CURRENT_BINARY_DIR}/zconf.h
|
||||
zlib.h
|
||||
)
|
||||
set(ZLIB_PRIVATE_HDRS
|
||||
crc32.h
|
||||
deflate.h
|
||||
@@ -130,8 +102,8 @@ set(ZLIB_PRIVATE_HDRS
|
||||
inflate.h
|
||||
inftrees.h
|
||||
trees.h
|
||||
zutil.h)
|
||||
|
||||
zutil.h
|
||||
)
|
||||
set(ZLIB_SRCS
|
||||
adler32.c
|
||||
compress.c
|
||||
@@ -147,164 +119,100 @@ set(ZLIB_SRCS
|
||||
inffast.c
|
||||
trees.c
|
||||
uncompr.c
|
||||
zutil.c)
|
||||
zutil.c
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(zlib_static_suffix "s")
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
endif(WIN32)
|
||||
if(NOT MINGW)
|
||||
set(ZLIB_DLL_SRCS
|
||||
win32/zlib1.rc # If present will override custom build rule below.
|
||||
)
|
||||
endif()
|
||||
|
||||
if(ZLIB_BUILD_SHARED)
|
||||
add_library(
|
||||
zlib SHARED ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}
|
||||
$<$<OR:$<BOOL:${WIN32}>,$<BOOL:${CYGWIN}>>:win32/zlib1.rc>)
|
||||
add_library(ZLIB::ZLIB ALIAS zlib)
|
||||
target_include_directories(
|
||||
zlib
|
||||
PUBLIC $<BUILD_INTERFACE:${zlib_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${zlib_SOURCE_DIR}>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
target_compile_definitions(
|
||||
zlib
|
||||
PRIVATE ZLIB_BUILD
|
||||
$<$<BOOL:NOT:${HAVE_FSEEKO}>:NO_FSEEKO>
|
||||
$<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>
|
||||
$<$<BOOL:${MSVC}>:_CRT_SECURE_NO_DEPRECATE>
|
||||
$<$<BOOL:${MSVC}>:_CRT_NONSTDC_NO_DEPRECATE>
|
||||
PUBLIC $<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>)
|
||||
set(INSTALL_VERSION ${zlib_VERSION})
|
||||
# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION
|
||||
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents)
|
||||
string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*"
|
||||
"\\1" ZLIB_FULL_VERSION ${_zlib_h_contents})
|
||||
|
||||
if(NOT CYGWIN)
|
||||
set_target_properties(zlib PROPERTIES SOVERSION ${zlib_VERSION_MAJOR}
|
||||
VERSION ${INSTALL_VERSION})
|
||||
endif(NOT CYGWIN)
|
||||
if(MINGW)
|
||||
# This gets us DLL resource information when compiling on MinGW.
|
||||
if(NOT CMAKE_RC_COMPILER)
|
||||
set(CMAKE_RC_COMPILER windres.exe)
|
||||
endif()
|
||||
|
||||
set_target_properties(
|
||||
zlib
|
||||
PROPERTIES DEFINE_SYMBOL ZLIB_DLL
|
||||
EXPORT_NAME ZLIB
|
||||
OUTPUT_NAME z)
|
||||
if(UNIX
|
||||
AND NOT APPLE
|
||||
AND NOT (CMAKE_SYSTEM_NAME STREQUAL AIX)
|
||||
AND NOT (CMAKE_SYSTEM_NAME STREQUAL SunOS))
|
||||
# On unix-like platforms the library is almost always called libz
|
||||
set_target_properties(
|
||||
zlib
|
||||
PROPERTIES LINK_FLAGS
|
||||
"-Wl,--version-script,\"${zlib_SOURCE_DIR}/zlib.map\"")
|
||||
endif(
|
||||
UNIX
|
||||
AND NOT APPLE
|
||||
AND NOT (CMAKE_SYSTEM_NAME STREQUAL AIX)
|
||||
AND NOT (CMAKE_SYSTEM_NAME STREQUAL SunOS))
|
||||
endif(ZLIB_BUILD_SHARED)
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
|
||||
COMMAND ${CMAKE_RC_COMPILER}
|
||||
-D GCC_WINDRES
|
||||
-I ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
-I ${CMAKE_CURRENT_BINARY_DIR}
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
|
||||
-i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc)
|
||||
set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
|
||||
endif(MINGW)
|
||||
|
||||
if(ZLIB_BUILD_STATIC)
|
||||
add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS}
|
||||
${ZLIB_PRIVATE_HDRS})
|
||||
add_library(ZLIB::ZLIBSTATIC ALIAS zlibstatic)
|
||||
target_include_directories(
|
||||
zlibstatic
|
||||
PUBLIC $<BUILD_INTERFACE:${zlib_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${zlib_SOURCE_DIR}>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
target_compile_definitions(
|
||||
zlibstatic
|
||||
PRIVATE ZLIB_BUILD
|
||||
$<$<BOOL:NOT:${HAVE_FSEEKO}>:NO_FSEEKO>
|
||||
$<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>
|
||||
$<$<BOOL:${MSVC}>:_CRT_SECURE_NO_DEPRECATE>
|
||||
$<$<BOOL:${MSVC}>:_CRT_NONSTDC_NO_DEPRECATE>
|
||||
PUBLIC $<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>)
|
||||
set_target_properties(
|
||||
zlibstatic PROPERTIES EXPORT_NAME ZLIBSTATIC OUTPUT_NAME
|
||||
z${zlib_static_suffix})
|
||||
endif(ZLIB_BUILD_STATIC)
|
||||
add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
||||
target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
||||
target_include_directories(zlibstatic PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
|
||||
set_target_properties(zlib PROPERTIES SOVERSION 1)
|
||||
|
||||
if(ZLIB_INSTALL)
|
||||
if(ZLIB_BUILD_SHARED)
|
||||
install(
|
||||
TARGETS zlib
|
||||
COMPONENT Runtime
|
||||
EXPORT zlibSharedExport
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
install(
|
||||
EXPORT zlibSharedExport
|
||||
FILE ZLIB-shared.cmake
|
||||
NAMESPACE ZLIB::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
|
||||
if(NOT CYGWIN)
|
||||
# This property causes shared libraries on Linux to have the full version
|
||||
# encoded into their final filename. We disable this on Cygwin because
|
||||
# it causes cygz-${ZLIB_FULL_VERSION}.dll to be created when cygz.dll
|
||||
# seems to be the default.
|
||||
#
|
||||
# This has no effect with MSVC, on that platform the version info for
|
||||
# the DLL comes from the resource file win32/zlib1.rc
|
||||
set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION})
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
install(
|
||||
FILES $<TARGET_PDB_FILE:zlib>
|
||||
COMPONENT Runtime
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
CONFIGURATIONS Debug OR RelWithDebInfo
|
||||
OPTIONAL)
|
||||
endif(MSVC)
|
||||
endif(ZLIB_BUILD_SHARED)
|
||||
if(UNIX)
|
||||
# On unix-like platforms the library is almost always called libz
|
||||
set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z)
|
||||
if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX))
|
||||
set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
|
||||
endif()
|
||||
elseif(BUILD_SHARED_LIBS AND WIN32)
|
||||
# Creates zlib1.dll when building shared library version
|
||||
set_target_properties(zlib PROPERTIES SUFFIX "1.dll")
|
||||
endif()
|
||||
|
||||
if(ZLIB_BUILD_STATIC)
|
||||
install(
|
||||
TARGETS zlibstatic
|
||||
COMPONENT Development
|
||||
EXPORT zlibStaticExport
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
install(
|
||||
EXPORT zlibStaticExport
|
||||
FILE ZLIB-static.cmake
|
||||
NAMESPACE ZLIB::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
|
||||
endif(ZLIB_BUILD_STATIC)
|
||||
if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
|
||||
install(TARGETS zlib zlibstatic
|
||||
RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
|
||||
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
|
||||
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" )
|
||||
endif()
|
||||
if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
|
||||
install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}")
|
||||
endif()
|
||||
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
|
||||
install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3")
|
||||
endif()
|
||||
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
|
||||
install(FILES ${ZLIB_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}")
|
||||
endif()
|
||||
|
||||
configure_package_config_file(
|
||||
${zlib_SOURCE_DIR}/zlibConfig.cmake.in
|
||||
${zlib_BINARY_DIR}/ZLIBConfig.cmake
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
|
||||
#============================================================================
|
||||
# Example binaries
|
||||
#============================================================================
|
||||
if(ZLIB_BUILD_EXAMPLES)
|
||||
add_executable(example test/example.c)
|
||||
target_link_libraries(example zlib)
|
||||
add_test(example example)
|
||||
|
||||
write_basic_package_version_file(
|
||||
"${zlib_BINARY_DIR}/ZLIBConfigVersion.cmake"
|
||||
VERSION "${zlib_VERSION}"
|
||||
COMPATIBILITY AnyNewerVersion)
|
||||
add_executable(minigzip test/minigzip.c)
|
||||
target_link_libraries(minigzip zlib)
|
||||
|
||||
install(FILES ${zlib_BINARY_DIR}/ZLIBConfig.cmake
|
||||
${zlib_BINARY_DIR}/ZLIBConfigVersion.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
|
||||
install(
|
||||
FILES ${ZLIB_PUBLIC_HDRS}
|
||||
COMPONENT Development
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
install(
|
||||
FILES zlib.3
|
||||
COMPONENT Docs
|
||||
DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
|
||||
install(
|
||||
FILES LICENSE
|
||||
doc/algorithm.txt
|
||||
doc/crc-doc.1.0.pdf
|
||||
doc/rfc1950.txt
|
||||
doc/rfc1951.txt
|
||||
doc/rfc1952.txt
|
||||
doc/txtvsbin.txt
|
||||
COMPONENT Docs
|
||||
DESTINATION "${CMAKE_INSTALL_DOCDIR}/zlib")
|
||||
install(
|
||||
FILES ${ZLIB_PC}
|
||||
COMPONENT Development
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
||||
endif(ZLIB_INSTALL)
|
||||
if(HAVE_OFF64_T)
|
||||
add_executable(example64 test/example.c)
|
||||
target_link_libraries(example64 zlib)
|
||||
set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
|
||||
add_test(example64 example64)
|
||||
|
||||
# ============================================================================
|
||||
# Tests
|
||||
# ============================================================================
|
||||
if(ZLIB_BUILD_TESTING)
|
||||
enable_testing()
|
||||
add_subdirectory(test)
|
||||
endif(ZLIB_BUILD_TESTING)
|
||||
|
||||
add_subdirectory(contrib)
|
||||
add_executable(minigzip64 test/minigzip.c)
|
||||
target_link_libraries(minigzip64 zlib)
|
||||
set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -1,57 +1,6 @@
|
||||
|
||||
ChangeLog file for zlib
|
||||
|
||||
Changes in 1.3.2 (17 Feb 2026)
|
||||
- Continued rewrite of CMake build [Vollstrecker]
|
||||
- Various portability improvements
|
||||
- Various github workflow additions and improvements
|
||||
- Check for negative lengths in crc32_combine functions
|
||||
- Copy only the initialized window contents in inflateCopy
|
||||
- Prevent the use of insecure functions without an explicit request
|
||||
- Add compressBound_z and deflateBound_z functions for large values
|
||||
- Use atomics to build inflate fixed tables once
|
||||
- Add definition of ZLIB_INSECURE to build tests with c89 and c94
|
||||
- Add --undefined option to ./configure for UBSan checker
|
||||
- Copy only the initialized deflate state in deflateCopy
|
||||
- Zero inflate state on allocation
|
||||
- Remove untgz from contrib
|
||||
- Add _z versions of the compress and uncompress functions
|
||||
- Vectorize the CRC-32 calculation on the s390x
|
||||
- Set bit 11 of the zip header flags in minizip if UTF-8
|
||||
- Update OS/400 support
|
||||
- Add a test to configure to check for a working compiler
|
||||
- Check for invalid NULL pointer inputs to zlib operations
|
||||
- Add --mandir to ./configure to specify manual directory
|
||||
- Add LICENSE.Info-Zip to contrib/minizip
|
||||
- Remove vstudio projects in lieu of cmake-generated projects
|
||||
- Replace strcpy() with memcpy() in contrib/minizip
|
||||
|
||||
Changes in 1.3.1.2 (8 Dec 2025)
|
||||
- Improve portability to RISC OS
|
||||
- Permit compiling contrib/minizip/unzip.c with decryption
|
||||
- Enable build of shared library on AIX
|
||||
- Make deflateBound() more conservative and handle Z_STREAM_END
|
||||
- Add zipAlreadyThere() to minizip zip.c to help avoid duplicates
|
||||
- Make z_off_t 64 bits by default
|
||||
- Add deflateUsed() function to get the used bits in the last byte
|
||||
- Avoid out-of-bounds pointer arithmetic in inflateCopy()
|
||||
- Add Haiku to configure for proper LDSHARED settings
|
||||
- Add Bazel targets
|
||||
- Complete rewrite of CMake build [Vollstrecker]
|
||||
- Clarify the use of errnum in gzerror()
|
||||
- Note that gzseek() requests are deferred until the next operation
|
||||
- Note the use of gzungetc() to run a deferred seek while reading
|
||||
- Fix bug in inflatePrime() for 16-bit ints
|
||||
- Add a "G" option to force gzip, disabling transparency in gzread()
|
||||
- Improve the discrimination between trailing garbage and bad gzip
|
||||
- Allow gzflush() to write empty gzip members
|
||||
- Remove redundant frees of point list on error in examples/zran.c
|
||||
- Clarify the use of inflateGetHeader()
|
||||
- Update links to the RFCs
|
||||
- Return all available uncompressed data on error in gzread.c
|
||||
- Support non-blocking devices in the gz* routines
|
||||
- Various other small improvements
|
||||
|
||||
Changes in 1.3.1 (22 Jan 2024)
|
||||
- Reject overflows of zip header fields in minizip
|
||||
- Fix bug in inflateSync() for data held in bit buffer
|
||||
|
||||
+21
-25
@@ -3,8 +3,8 @@
|
||||
|
||||
|
||||
If your question is not there, please check the zlib home page
|
||||
https://zlib.net/ which may have more recent information.
|
||||
The latest zlib FAQ is at https://zlib.net/zlib_faq.html
|
||||
http://zlib.net/ which may have more recent information.
|
||||
The latest zlib FAQ is at http://zlib.net/zlib_faq.html
|
||||
|
||||
|
||||
1. Is zlib Y2K-compliant?
|
||||
@@ -19,7 +19,7 @@ The latest zlib FAQ is at https://zlib.net/zlib_faq.html
|
||||
3. Where can I get a Visual Basic interface to zlib?
|
||||
|
||||
See
|
||||
* https://zlib.net/nelson/
|
||||
* http://marknelson.us/1997/01/01/zlib-engine/
|
||||
* win32/DLL_FAQ.txt in the zlib distribution
|
||||
|
||||
4. compress() returns Z_BUF_ERROR.
|
||||
@@ -38,7 +38,7 @@ The latest zlib FAQ is at https://zlib.net/zlib_faq.html
|
||||
made with more input or output space. A Z_BUF_ERROR may in fact be
|
||||
unavoidable depending on how the functions are used, since it is not
|
||||
possible to tell whether or not there is more output pending when
|
||||
strm.avail_out returns with zero. See https://zlib.net/zlib_how.html for a
|
||||
strm.avail_out returns with zero. See http://zlib.net/zlib_how.html for a
|
||||
heavily annotated example.
|
||||
|
||||
6. Where's the zlib documentation (man pages, etc.)?
|
||||
@@ -109,8 +109,8 @@ The latest zlib FAQ is at https://zlib.net/zlib_faq.html
|
||||
|
||||
16. Can zlib decode Flate data in an Adobe PDF file?
|
||||
|
||||
Yes. See https://www.pdflib.com/ . To modify PDF forms, see
|
||||
https://sourceforge.net/projects/acroformtool/ .
|
||||
Yes. See http://www.pdflib.com/ . To modify PDF forms, see
|
||||
http://sourceforge.net/projects/acroformtool/ .
|
||||
|
||||
17. Why am I getting this "register_frame_info not found" error on Solaris?
|
||||
|
||||
@@ -156,10 +156,6 @@ The latest zlib FAQ is at https://zlib.net/zlib_faq.html
|
||||
library memory allocation routines by default. zlib's *Init* functions
|
||||
allow for the application to provide custom memory allocation routines.
|
||||
|
||||
If the non-default BUILDFIXED or DYNAMIC_CRC_TABLE defines are used on a
|
||||
system without atomics (e.g. pre-C11), then inflate() and crc32() will not
|
||||
be thread safe.
|
||||
|
||||
Of course, you should only operate on any given zlib or gzip stream from a
|
||||
single thread at a time.
|
||||
|
||||
@@ -239,7 +235,7 @@ The latest zlib FAQ is at https://zlib.net/zlib_faq.html
|
||||
As far as we know, no. In fact, that was originally the whole point behind
|
||||
zlib. Look here for some more information:
|
||||
|
||||
https://web.archive.org/web/20180729212847/http://www.gzip.org/#faq11
|
||||
http://www.gzip.org/#faq11
|
||||
|
||||
32. Can zlib work with greater than 4 GB of data?
|
||||
|
||||
@@ -262,20 +258,20 @@ The latest zlib FAQ is at https://zlib.net/zlib_faq.html
|
||||
33. Does zlib have any security vulnerabilities?
|
||||
|
||||
The only one that we are aware of is potentially in gzprintf(). If zlib is
|
||||
compiled to use sprintf() or vsprintf(), which requires that ZLIB_INSECURE
|
||||
be defined, then there is no protection against a buffer overflow of an 8K
|
||||
string space (or other value as set by gzbuffer()), other than the caller
|
||||
of gzprintf() assuring that the output will not exceed 8K. On the other
|
||||
hand, if zlib is compiled to use snprintf() or vsnprintf(), which should
|
||||
normally be the case, then there is no vulnerability. The ./configure
|
||||
script will display warnings if an insecure variation of sprintf() will be
|
||||
used by gzprintf(). Also the zlibCompileFlags() function will return
|
||||
information on what variant of sprintf() is used by gzprintf().
|
||||
compiled to use sprintf() or vsprintf(), then there is no protection
|
||||
against a buffer overflow of an 8K string space (or other value as set by
|
||||
gzbuffer()), other than the caller of gzprintf() assuring that the output
|
||||
will not exceed 8K. On the other hand, if zlib is compiled to use
|
||||
snprintf() or vsnprintf(), which should normally be the case, then there is
|
||||
no vulnerability. The ./configure script will display warnings if an
|
||||
insecure variation of sprintf() will be used by gzprintf(). Also the
|
||||
zlibCompileFlags() function will return information on what variant of
|
||||
sprintf() is used by gzprintf().
|
||||
|
||||
If you don't have snprintf() or vsnprintf() and would like one, you can
|
||||
find a good portable implementation in stb_sprintf.h here:
|
||||
find a portable implementation here:
|
||||
|
||||
https://github.com/nothings/stb
|
||||
http://www.ijs.si/software/snprintf/
|
||||
|
||||
Note that you should be using the most recent version of zlib. Versions
|
||||
1.1.3 and before were subject to a double-free vulnerability, and versions
|
||||
@@ -287,7 +283,7 @@ The latest zlib FAQ is at https://zlib.net/zlib_faq.html
|
||||
Probably what you want is to use zlib in Java. zlib is already included
|
||||
as part of the Java SDK in the java.util.zip package. If you really want
|
||||
a version of zlib written in the Java language, look on the zlib home
|
||||
page for links: https://zlib.net/ .
|
||||
page for links: http://zlib.net/ .
|
||||
|
||||
35. I get this or that compiler or source-code scanner warning when I crank it
|
||||
up to maximally-pedantic. Can't you guys write proper code?
|
||||
@@ -318,9 +314,9 @@ The latest zlib FAQ is at https://zlib.net/zlib_faq.html
|
||||
|
||||
zlib doesn't support encryption. The original PKZIP encryption is very
|
||||
weak and can be broken with freely available programs. To get strong
|
||||
encryption, use GnuPG, https://www.gnupg.org/ , which already includes zlib
|
||||
encryption, use GnuPG, http://www.gnupg.org/ , which already includes zlib
|
||||
compression. For PKZIP compatible "encryption", look at
|
||||
https://infozip.sourceforge.net/
|
||||
http://www.info-zip.org/
|
||||
|
||||
39. What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
|
||||
|
||||
|
||||
+2
-1
@@ -21,11 +21,12 @@ zlib.pc.cmakein zlib.pc template for cmake
|
||||
zlib2ansi perl script to convert source files for C++ compilation
|
||||
|
||||
amiga/ makefiles for Amiga SAS C
|
||||
as400/ makefiles for AS/400
|
||||
doc/ documentation for formats and algorithms
|
||||
msdos/ makefiles for MSDOS
|
||||
nintendods/ makefile for Nintendo DS
|
||||
old/ makefiles for various architectures and zlib documentation
|
||||
files that have not yet been updated for zlib 1.2.x
|
||||
os400/ makefiles for OS/400
|
||||
qnx/ makefiles for QNX
|
||||
watcom/ makefiles for OpenWatcom
|
||||
win32/ makefiles for Windows
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
Copyright notice:
|
||||
|
||||
(C) 1995-2026 Jean-loup Gailly and Mark Adler
|
||||
(C) 1995-2022 Jean-loup Gailly and Mark Adler
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
module(
|
||||
name = "zlib",
|
||||
version = "0.0.0",
|
||||
compatibility_level = 1,
|
||||
)
|
||||
|
||||
bazel_dep(name = "platforms", version = "0.0.10")
|
||||
bazel_dep(name = "rules_cc", version = "0.0.16")
|
||||
bazel_dep(name = "rules_license", version = "1.0.0")
|
||||
+18
-34
@@ -1,5 +1,5 @@
|
||||
# Makefile for zlib
|
||||
# Copyright (C) 1995-2026 Jean-loup Gailly, Mark Adler
|
||||
# Copyright (C) 1995-2024 Jean-loup Gailly, Mark Adler
|
||||
# For conditions of distribution and use, see copyright notice in zlib.h
|
||||
|
||||
# To compile and test, type:
|
||||
@@ -13,8 +13,6 @@
|
||||
# make install prefix=$HOME
|
||||
|
||||
CC=cc
|
||||
GCOV=GCOV
|
||||
LLVM_GCOV_FLAG=LLMV_GCOV_FLAG
|
||||
|
||||
CFLAGS=-O
|
||||
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
|
||||
@@ -27,11 +25,10 @@ LDFLAGS=
|
||||
TEST_LIBS=-L. libz.a
|
||||
LDSHARED=$(CC)
|
||||
CPP=$(CC) -E
|
||||
VGFMAFLAG=
|
||||
|
||||
STATICLIB=libz.a
|
||||
SHAREDLIB=libz.so
|
||||
SHAREDLIBV=libz.so.1.3.2
|
||||
SHAREDLIBV=libz.so.1.3.1
|
||||
SHAREDLIBM=libz.so.1
|
||||
LIBS=$(STATICLIB) $(SHAREDLIBV)
|
||||
|
||||
@@ -115,16 +112,16 @@ test64: all64
|
||||
fi
|
||||
@rm -f tmp64_$$
|
||||
|
||||
infcover.o: $(SRCDIR)test/infcover.c $(SRCDIR)zlib.h zconf.h $(SRCDIR)inflate.h $(SRCDIR)inftrees.h
|
||||
$(CC) $(CFLAGS) $(ZINCOUT) -c -coverage -o $@ $(SRCDIR)test/infcover.c
|
||||
infcover.o: $(SRCDIR)test/infcover.c $(SRCDIR)zlib.h zconf.h
|
||||
$(CC) $(CFLAGS) $(ZINCOUT) -c -o $@ $(SRCDIR)test/infcover.c
|
||||
|
||||
infcover: infcover.o libz.a
|
||||
$(CC) $(CFLAGS) -coverage -o $@ infcover.o libz.a
|
||||
$(CC) $(CFLAGS) -o $@ infcover.o libz.a
|
||||
|
||||
cover: infcover
|
||||
rm -f *.gcda
|
||||
${QEMU_RUN} ./infcover
|
||||
${GCOV} ${LLVM_GCOV_FLAG} inf*.c -o ./infcover.gcda
|
||||
gcov inf*.c
|
||||
|
||||
libz.a: $(OBJS)
|
||||
$(AR) $(ARFLAGS) $@ $(OBJS)
|
||||
@@ -161,9 +158,6 @@ adler32.o: $(SRCDIR)adler32.c
|
||||
crc32.o: $(SRCDIR)crc32.c
|
||||
$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)crc32.c
|
||||
|
||||
crc32_vx.o: $(SRCDIR)contrib/crc32vx/crc32_vx.c
|
||||
$(CC) $(CFLAGS) $(VGFMAFLAG) $(ZINC) -c -o $@ $(SRCDIR)contrib/crc32vx/crc32_vx.c
|
||||
|
||||
deflate.o: $(SRCDIR)deflate.c
|
||||
$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)deflate.c
|
||||
|
||||
@@ -182,7 +176,7 @@ inftrees.o: $(SRCDIR)inftrees.c
|
||||
trees.o: $(SRCDIR)trees.c
|
||||
$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)trees.c
|
||||
|
||||
zutil.o: $(SRCDIR)zutil.c $(SRCDIR)gzguts.h
|
||||
zutil.o: $(SRCDIR)zutil.c
|
||||
$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)zutil.c
|
||||
|
||||
compress.o: $(SRCDIR)compress.c
|
||||
@@ -214,11 +208,6 @@ crc32.lo: $(SRCDIR)crc32.c
|
||||
$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/crc32.o $(SRCDIR)crc32.c
|
||||
-@mv objs/crc32.o $@
|
||||
|
||||
crc32_vx.lo: $(SRCDIR)contrib/crc32vx/crc32_vx.c
|
||||
-@mkdir objs 2>/dev/null || test -d objs
|
||||
$(CC) $(SFLAGS) $(VGFMAFLAG) $(ZINC) -DPIC -c -o objs/crc32_vx.o $(SRCDIR)contrib/crc32vx/crc32_vx.c
|
||||
-@mv objs/crc32_vx.o $@
|
||||
|
||||
deflate.lo: $(SRCDIR)deflate.c
|
||||
-@mkdir objs 2>/dev/null || test -d objs
|
||||
$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/deflate.o $(SRCDIR)deflate.c
|
||||
@@ -249,7 +238,7 @@ trees.lo: $(SRCDIR)trees.c
|
||||
$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/trees.o $(SRCDIR)trees.c
|
||||
-@mv objs/trees.o $@
|
||||
|
||||
zutil.lo: $(SRCDIR)zutil.c $(SRCDIR)gzguts.h
|
||||
zutil.lo: $(SRCDIR)zutil.c
|
||||
-@mkdir objs 2>/dev/null || test -d objs
|
||||
$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/zutil.o $(SRCDIR)zutil.c
|
||||
-@mv objs/zutil.o $@
|
||||
@@ -285,7 +274,7 @@ gzwrite.lo: $(SRCDIR)gzwrite.c
|
||||
-@mv objs/gzwrite.o $@
|
||||
|
||||
|
||||
placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a $(SRCDIR)zlib.map
|
||||
placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a
|
||||
$(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS)
|
||||
rm -f $(SHAREDLIB) $(SHAREDLIBM)
|
||||
ln -s $@ $(SHAREDLIB)
|
||||
@@ -360,13 +349,12 @@ docs: zlib.3.pdf
|
||||
zlib.3.pdf: $(SRCDIR)zlib.3
|
||||
groff -mandoc -f H -T ps $(SRCDIR)zlib.3 | ps2pdf - $@
|
||||
|
||||
# zconf.h.cmakein: $(SRCDIR)zconf.h.in
|
||||
# -@ TEMPFILE=zconfh_$$; \
|
||||
# echo "/#define ZCONF_H/ a\\\\\n#cmakedefine Z_PREFIX\\\\\n#cmakedefine Z_HAVE_UNISTD_H\n" >> $$TEMPFILE &&\
|
||||
# sed -f $$TEMPFILE $(SRCDIR)zconf.h.in > $@ &&\
|
||||
# touch -r $(SRCDIR)zconf.h.in $@ &&\
|
||||
# rm $$TEMPFILE
|
||||
#
|
||||
zconf.h.cmakein: $(SRCDIR)zconf.h.in
|
||||
-@ TEMPFILE=zconfh_$$; \
|
||||
echo "/#define ZCONF_H/ a\\\\\n#cmakedefine Z_PREFIX\\\\\n#cmakedefine Z_HAVE_UNISTD_H\n" >> $$TEMPFILE &&\
|
||||
sed -f $$TEMPFILE $(SRCDIR)zconf.h.in > $@ &&\
|
||||
touch -r $(SRCDIR)zconf.h.in $@ &&\
|
||||
rm $$TEMPFILE
|
||||
|
||||
zconf: $(SRCDIR)zconf.h.in
|
||||
cp -p $(SRCDIR)zconf.h.in zconf.h
|
||||
@@ -390,7 +378,7 @@ clean: minizip-clean
|
||||
rm -f contrib/infback9/*.gcda contrib/infback9/*.gcno contrib/infback9/*.gcov
|
||||
|
||||
maintainer-clean: distclean
|
||||
distclean: clean zconf # zconf.h.cmakein
|
||||
distclean: clean zconf zconf.h.cmakein
|
||||
rm -f Makefile zlib.pc configure.log
|
||||
-@rm -f .DS_Store
|
||||
@if [ -f Makefile.in ]; then \
|
||||
@@ -401,8 +389,7 @@ distclean: clean zconf # zconf.h.cmakein
|
||||
tags:
|
||||
etags $(SRCDIR)*.[ch]
|
||||
|
||||
adler32.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
|
||||
zutil.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
|
||||
adler32.o zutil.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
|
||||
gzclose.o gzlib.o gzread.o gzwrite.o: $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
|
||||
compress.o example.o minigzip.o uncompr.o: $(SRCDIR)zlib.h zconf.h
|
||||
crc32.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)crc32.h
|
||||
@@ -411,10 +398,8 @@ infback.o inflate.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.
|
||||
inffast.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h
|
||||
inftrees.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h
|
||||
trees.o: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)trees.h
|
||||
crc32_vx.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)contrib/crc32vx/crc32_vx_hooks.h
|
||||
|
||||
adler32.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
|
||||
zutil.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
|
||||
adler32.lo zutil.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
|
||||
gzclose.lo gzlib.lo gzread.lo gzwrite.lo: $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
|
||||
compress.lo example.lo minigzip.lo uncompr.lo: $(SRCDIR)zlib.h zconf.h
|
||||
crc32.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)crc32.h
|
||||
@@ -423,4 +408,3 @@ infback.lo inflate.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftree
|
||||
inffast.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h
|
||||
inftrees.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h
|
||||
trees.lo: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)trees.h
|
||||
crc32_vx.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)contrib/crc32vx/crc32_vx_hooks.h
|
||||
+15
-13
@@ -1,10 +1,10 @@
|
||||
ZLIB DATA COMPRESSION LIBRARY
|
||||
|
||||
zlib 1.3.2 is a general purpose data compression library. All the code is
|
||||
thread safe (though see the FAQ for caveats). The data format used by the zlib
|
||||
library is described by RFCs (Request for Comments) 1950 to 1952 at
|
||||
https://datatracker.ietf.org/doc/html/rfc1950 (zlib format), rfc1951 (deflate
|
||||
format) and rfc1952 (gzip format).
|
||||
zlib 1.3.1 is a general purpose data compression library. All the code is
|
||||
thread safe. The data format used by the zlib library is described by RFCs
|
||||
(Request for Comments) 1950 to 1952 in the files
|
||||
http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
|
||||
rfc1952 (gzip format).
|
||||
|
||||
All functions of the compression library are documented in the file zlib.h
|
||||
(volunteer to write man pages welcome, contact zlib@gzip.org). A usage example
|
||||
@@ -21,17 +21,17 @@ make_vms.com.
|
||||
|
||||
Questions about zlib should be sent to <zlib@gzip.org>, or to Gilles Vollant
|
||||
<info@winimage.com> for the Windows DLL version. The zlib home page is
|
||||
https://zlib.net/ . Before reporting a problem, please check this site to
|
||||
http://zlib.net/ . Before reporting a problem, please check this site to
|
||||
verify that you have the latest version of zlib; otherwise get the latest
|
||||
version and check whether the problem still exists or not.
|
||||
|
||||
PLEASE read the zlib FAQ https://zlib.net/zlib_faq.html before asking for help.
|
||||
PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help.
|
||||
|
||||
Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan. 1997
|
||||
issue of Dr. Dobb's Journal; a copy of the article is available at
|
||||
https://zlib.net/nelson/ .
|
||||
https://marknelson.us/posts/1997/01/01/zlib-engine.html .
|
||||
|
||||
The changes made in version 1.3.2 are documented in the file ChangeLog.
|
||||
The changes made in version 1.3.1 are documented in the file ChangeLog.
|
||||
|
||||
Unsupported third party contributions are provided in directory contrib/ .
|
||||
|
||||
@@ -43,9 +43,9 @@ can be found at https://github.com/pmqs/IO-Compress .
|
||||
|
||||
A Python interface to zlib written by A.M. Kuchling <amk@amk.ca> is
|
||||
available in Python 1.5 and later versions, see
|
||||
https://docs.python.org/3/library/zlib.html .
|
||||
http://docs.python.org/library/zlib.html .
|
||||
|
||||
zlib is built into tcl: https://wiki.tcl-lang.org/page/zlib .
|
||||
zlib is built into tcl: http://wiki.tcl.tk/4610 .
|
||||
|
||||
An experimental package to read and write files in .zip format, written on top
|
||||
of zlib by Gilles Vollant <info@winimage.com>, is available in the
|
||||
@@ -69,7 +69,9 @@ Notes for some targets:
|
||||
- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with
|
||||
other compilers. Use "make test" to check your compiler.
|
||||
|
||||
- For PalmOs, see https://palmzlib.sourceforge.net/
|
||||
- gzdopen is not supported on RISCOS or BEOS.
|
||||
|
||||
- For PalmOs, see http://palmzlib.sourceforge.net/
|
||||
|
||||
|
||||
Acknowledgments:
|
||||
@@ -81,7 +83,7 @@ Acknowledgments:
|
||||
|
||||
Copyright notice:
|
||||
|
||||
(C) 1995-2026 Jean-loup Gailly and Mark Adler
|
||||
(C) 1995-2024 Jean-loup Gailly and Mark Adler
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
# For building with cmake at least version 3.12 (minizip 3.12) is needed
|
||||
|
||||
In most cases the usual
|
||||
|
||||
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
|
||||
|
||||
will create everything you need, however if you want something off default you can adjust several options fit your needs.
|
||||
Every option is list below (excluding the cmake-standard options), they can be set via cmake-gui or on cmdline with
|
||||
|
||||
-D<option>=ON/OFF
|
||||
|
||||
## ZLIB-options with defaults ##
|
||||
|
||||
ZLIB_BUILD_TESTING=ON -- Enable Zlib Examples as tests
|
||||
|
||||
ZLIB_BUILD_SHARED=ON -- Enable building zlib shared library
|
||||
|
||||
ZLIB_BUILD_STATIC=ON -- Enable building zlib static library
|
||||
|
||||
ZLIB_BUILD_MINIZIP=ON -- Enable building libminizip contrib library
|
||||
|
||||
If this option is turned on, additional options are available from minizip (see below)
|
||||
|
||||
ZLIB_INSTALL=ON -- Enable installation of zlib
|
||||
|
||||
ZLIB_PREFIX=OFF -- prefix for all types and library functions, see zconf.h.in
|
||||
|
||||
This option is only on windows available and may/will be turned off and removed somewhen in the future.
|
||||
If you rely cmake for finding and using zlib, this can be turned off, as `zlib1.dll` will never be used.
|
||||
|
||||
## minizip-options with defaults ##
|
||||
|
||||
MINIZIP_BUILD_SHARED=ON -- Enable building minizip shared library
|
||||
|
||||
MINIZIP_BUILD_STATIC=ON -- Enable building minizip static library
|
||||
|
||||
MINIZIP_BUILD_TESTING=ON -- Enable testing of minizip
|
||||
|
||||
MINIZIP_ENABLE_BZIP2=ON -- Build minizip withj bzip2 support
|
||||
|
||||
A usable installation of bzip2 is needed or config will fail. Turn this option of in this case.
|
||||
|
||||
MINIZIP_INSTALL=ON -- Enable installation of minizip
|
||||
|
||||
This option is only available on mingw as they tend to name this lib different. Maybe this will also be
|
||||
removed in the future as. If you rely cmake for finding and using zlib, this can be turned off, as
|
||||
the other file will never be used.
|
||||
|
||||
## Using the libs ##
|
||||
|
||||
To pull in what you need it's enough to just write
|
||||
|
||||
find_package(ZLIB CONFIG)
|
||||
|
||||
or
|
||||
|
||||
find_package(minizip CONFIG)
|
||||
|
||||
in your CMakeLists.txt, however it is advised to specify what you really want via:
|
||||
|
||||
find_package(ZLIB CONFIG COMPONENTS shared static REQUIRED)
|
||||
|
||||
or
|
||||
|
||||
find_package(minizip CONFIG COMPONENTS shared static REQUIRED)
|
||||
|
||||
As it's possible to only build the shared or the static lib, you can make sure that everything you need
|
||||
is found. If no COMPONENTS are requested, everything needs to be found to satisfy your request. If the
|
||||
libraries are optional in you project, you can omit the REQUIRED and check yourself if the targets you
|
||||
want to link against are created.
|
||||
|
||||
When you search for minizip, it will search zlib for you, so only one of both is needed.
|
||||
|
||||
## Imported targets ##
|
||||
|
||||
When found the following targets are created for you:
|
||||
|
||||
ZLIB::ZLIB and ZLIB::ZLIBSTATIC -- for zlib
|
||||
MINIZIP::minizip and MINIZIP::minizipstatic -- for minizip
|
||||
+10
-34
@@ -1,5 +1,5 @@
|
||||
/* compress.c -- compress a memory buffer
|
||||
* Copyright (C) 1995-2026 Jean-loup Gailly, Mark Adler
|
||||
* Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
@@ -18,19 +18,13 @@
|
||||
compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
|
||||
memory, Z_BUF_ERROR if there was not enough room in the output buffer,
|
||||
Z_STREAM_ERROR if the level parameter is invalid.
|
||||
|
||||
The _z versions of the functions take size_t length arguments.
|
||||
*/
|
||||
int ZEXPORT compress2_z(Bytef *dest, z_size_t *destLen, const Bytef *source,
|
||||
z_size_t sourceLen, int level) {
|
||||
int ZEXPORT compress2(Bytef *dest, uLongf *destLen, const Bytef *source,
|
||||
uLong sourceLen, int level) {
|
||||
z_stream stream;
|
||||
int err;
|
||||
const uInt max = (uInt)-1;
|
||||
z_size_t left;
|
||||
|
||||
if ((sourceLen > 0 && source == NULL) ||
|
||||
destLen == NULL || (*destLen > 0 && dest == NULL))
|
||||
return Z_STREAM_ERROR;
|
||||
uLong left;
|
||||
|
||||
left = *destLen;
|
||||
*destLen = 0;
|
||||
@@ -49,36 +43,23 @@ int ZEXPORT compress2_z(Bytef *dest, z_size_t *destLen, const Bytef *source,
|
||||
|
||||
do {
|
||||
if (stream.avail_out == 0) {
|
||||
stream.avail_out = left > (z_size_t)max ? max : (uInt)left;
|
||||
stream.avail_out = left > (uLong)max ? max : (uInt)left;
|
||||
left -= stream.avail_out;
|
||||
}
|
||||
if (stream.avail_in == 0) {
|
||||
stream.avail_in = sourceLen > (z_size_t)max ? max :
|
||||
(uInt)sourceLen;
|
||||
stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen;
|
||||
sourceLen -= stream.avail_in;
|
||||
}
|
||||
err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH);
|
||||
} while (err == Z_OK);
|
||||
|
||||
*destLen = (z_size_t)(stream.next_out - dest);
|
||||
*destLen = stream.total_out;
|
||||
deflateEnd(&stream);
|
||||
return err == Z_STREAM_END ? Z_OK : err;
|
||||
}
|
||||
int ZEXPORT compress2(Bytef *dest, uLongf *destLen, const Bytef *source,
|
||||
uLong sourceLen, int level) {
|
||||
int ret;
|
||||
z_size_t got = *destLen;
|
||||
ret = compress2_z(dest, &got, source, sourceLen, level);
|
||||
*destLen = (uLong)got;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* ===========================================================================
|
||||
*/
|
||||
int ZEXPORT compress_z(Bytef *dest, z_size_t *destLen, const Bytef *source,
|
||||
z_size_t sourceLen) {
|
||||
return compress2_z(dest, destLen, source, sourceLen,
|
||||
Z_DEFAULT_COMPRESSION);
|
||||
}
|
||||
int ZEXPORT compress(Bytef *dest, uLongf *destLen, const Bytef *source,
|
||||
uLong sourceLen) {
|
||||
return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
|
||||
@@ -88,12 +69,7 @@ int ZEXPORT compress(Bytef *dest, uLongf *destLen, const Bytef *source,
|
||||
If the default memLevel or windowBits for deflateInit() is changed, then
|
||||
this function needs to be updated.
|
||||
*/
|
||||
z_size_t ZEXPORT compressBound_z(z_size_t sourceLen) {
|
||||
z_size_t bound = sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
|
||||
(sourceLen >> 25) + 13;
|
||||
return bound < sourceLen ? (z_size_t)-1 : bound;
|
||||
}
|
||||
uLong ZEXPORT compressBound(uLong sourceLen) {
|
||||
z_size_t bound = compressBound_z(sourceLen);
|
||||
return (uLong)bound != bound ? (uLong)-1 : (uLong)bound;
|
||||
return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
|
||||
(sourceLen >> 25) + 13;
|
||||
}
|
||||
|
||||
Vendored
+39
-188
@@ -87,15 +87,10 @@ zprefix=0
|
||||
zconst=0
|
||||
build64=0
|
||||
gcc=0
|
||||
clang=0
|
||||
warn=0
|
||||
debug=0
|
||||
address=0
|
||||
memory=0
|
||||
undefined=0
|
||||
insecure=0
|
||||
unknown=0
|
||||
enable_crcvx=1
|
||||
old_cc="$CC"
|
||||
old_cflags="$CFLAGS"
|
||||
OBJC='$(OBJZ) $(OBJG)'
|
||||
@@ -121,49 +116,40 @@ case "$1" in
|
||||
-h* | --help)
|
||||
echo 'usage:' | tee -a configure.log
|
||||
echo ' configure [--const] [--zprefix] [--prefix=PREFIX] [--eprefix=EXPREFIX]' | tee -a configure.log
|
||||
echo ' [--insecure] [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log
|
||||
echo ' [--includedir=INCLUDEDIR] [--mandir=MANDIR]' | tee -a configure.log
|
||||
echo ' [--archs="-arch i386 -arch x86_64"] [--disable-crcvx]' | tee -a configure.log
|
||||
echo ' [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log
|
||||
echo ' [--includedir=INCLUDEDIR] [--archs="-arch i386 -arch x86_64"]' | tee -a configure.log
|
||||
exit 0 ;;
|
||||
-p*=* | --prefix=*) prefix=`echo $1 | sed 's/[^=]*=//'`; shift ;;
|
||||
-e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/[^=]*=//'`; shift ;;
|
||||
-l*=* | --libdir=*) libdir=`echo $1 | sed 's/[^=]*=//'`; shift ;;
|
||||
--sharedlibdir=*) sharedlibdir=`echo $1 | sed 's/[^=]*=//'`; shift ;;
|
||||
-i*=* | --includedir=*) includedir=`echo $1 | sed 's/[^=]*=//'`;shift ;;
|
||||
-m*=* | --mandir=*) mandir=`echo $1 | sed 's/[^=]*=//'`;shift ;;
|
||||
-u*=* | --uname=*) uname=`echo $1 | sed 's/[^=]*=//'`;shift ;;
|
||||
-p*=* | --prefix=*) prefix=`echo $1 | sed 's/.*=//'`; shift ;;
|
||||
-e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/.*=//'`; shift ;;
|
||||
-l*=* | --libdir=*) libdir=`echo $1 | sed 's/.*=//'`; shift ;;
|
||||
--sharedlibdir=*) sharedlibdir=`echo $1 | sed 's/.*=//'`; shift ;;
|
||||
-i*=* | --includedir=*) includedir=`echo $1 | sed 's/.*=//'`;shift ;;
|
||||
-u*=* | --uname=*) uname=`echo $1 | sed 's/.*=//'`;shift ;;
|
||||
-p* | --prefix) prefix="$2"; shift; shift ;;
|
||||
-e* | --eprefix) exec_prefix="$2"; shift; shift ;;
|
||||
-l* | --libdir) libdir="$2"; shift; shift ;;
|
||||
--sharedlibdir) sharedlibdir="$2"; shift; shift ;;
|
||||
-i* | --includedir) includedir="$2"; shift; shift ;;
|
||||
-m* | --mandir) mandir="$2"; shift; shift ;;
|
||||
-u* | --uname) uname="$2"; shift; shift ;;
|
||||
-s* | --shared | --enable-shared) shared=1; shift ;;
|
||||
-t | --static | --disable-shared) shared=0; shift ;;
|
||||
-t | --static) shared=0; shift ;;
|
||||
--solo) solo=1; shift ;;
|
||||
--cover) cover=1; shift ;;
|
||||
-z* | --zprefix) zprefix=1; shift ;;
|
||||
-6* | --64) build64=1; shift ;;
|
||||
-a*=* | --archs=*) ARCHS=`echo $1 | sed 's/[^=]*=//'`; shift ;;
|
||||
-a* | --archs) ARCHS="$2"; shift; shift ;;
|
||||
-a*=* | --archs=*) ARCHS=`echo $1 | sed 's/.*=//'`; shift ;;
|
||||
--sysconfdir=*) echo "ignored option: --sysconfdir" | tee -a configure.log; shift ;;
|
||||
--localstatedir=*) echo "ignored option: --localstatedir" | tee -a configure.log; shift ;;
|
||||
-c* | --const) zconst=1; shift ;;
|
||||
-w* | --warn) warn=$((warn + 1)); shift ;;
|
||||
-w* | --warn) warn=1; shift ;;
|
||||
-d* | --debug) debug=1; shift ;;
|
||||
--sanitize) address=1; shift ;;
|
||||
--address) address=1; shift ;;
|
||||
--memory) memory=1; shift ;;
|
||||
--undefined) undefined=1; shift ;;
|
||||
--insecure) insecure=1; shift ;;
|
||||
--disable-crcvx) enable_crcvx=0; shift ;;
|
||||
*) unknown=1; echo "unknown option ignored: $1" | tee -a configure.log; shift;;
|
||||
*)
|
||||
echo "unknown option: $1" | tee -a configure.log
|
||||
echo "$0 --help for help" | tee -a configure.log
|
||||
leave 1;;
|
||||
esac
|
||||
done
|
||||
if test $unknown -eq 1; then
|
||||
echo "$0 --help for help" | tee -a configure.log
|
||||
fi
|
||||
|
||||
# temporary file name
|
||||
test=ztest$$
|
||||
@@ -198,89 +184,41 @@ else
|
||||
fi
|
||||
|
||||
case "$cc" in
|
||||
*gcc*) gcc=1
|
||||
GCOV="gcov" ;;
|
||||
*clang*) gcc=1
|
||||
clang=1 ;;
|
||||
*gcc*) gcc=1 ;;
|
||||
*clang*) gcc=1 ;;
|
||||
esac
|
||||
case `$cc -v 2>&1` in
|
||||
*gcc*) gcc=1
|
||||
GCOV="gcov" ;;
|
||||
*clang*) gcc=1
|
||||
clang=1 ;;
|
||||
*gcc*) gcc=1 ;;
|
||||
*clang*) gcc=1 ;;
|
||||
esac
|
||||
|
||||
if test $cover -eq 1; then
|
||||
if test "$clang" -eq 1; then
|
||||
if test "$cc" = "clang"; then
|
||||
if command -v llvm-cov >/dev/null 2>&1; then
|
||||
GCOV="llvm-cov"
|
||||
LLVM_GCOV_FLAG="gcov"
|
||||
GCOV="llvm-cov"
|
||||
LLVM_GCOV_FLAG="gcov"
|
||||
echo "Using ${GCOV} for coverage"
|
||||
else
|
||||
cover=0
|
||||
GCOV=""
|
||||
LLVM_GCOV_FLAG=""
|
||||
echo "Deactivating cover as no suitable gcov can be found"
|
||||
fi
|
||||
else
|
||||
clangV=`echo "$cc" | sed -e 's/^.*-//'`
|
||||
if command -v llvm-cov-${clangV} >/dev/null 2>&1; then
|
||||
GCOV="llvm-cov-${clangV}"
|
||||
LLVM_GCOV_FLAG="gcov"
|
||||
echo "Using ${GCOV} for coverage"
|
||||
else
|
||||
cover=0
|
||||
GCOV=""
|
||||
LLVM_GCOV_FLAG=""
|
||||
echo "Deactivating cover as no suitable gcov can be found"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
show $cc -c $test.c
|
||||
if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
|
||||
echo ... using gcc >> configure.log
|
||||
CC="$cc"
|
||||
CFLAGS="${CFLAGS--O3} -fPIC"
|
||||
SFLAGS="${CFLAGS--O3}"
|
||||
CFLAGS="${CFLAGS--O3}"
|
||||
SFLAGS="${CFLAGS--O3} -fPIC"
|
||||
if test "$ARCHS"; then
|
||||
CFLAGS="${CFLAGS} ${ARCHS}"
|
||||
SFLAGS="${SFLAGS} ${ARCHS}"
|
||||
LDFLAGS="${LDFLAGS} ${ARCHS}"
|
||||
fi
|
||||
if test $build64 -eq 1; then
|
||||
CFLAGS="${CFLAGS} -m64"
|
||||
SFLAGS="${SFLAGS} -m64"
|
||||
fi
|
||||
if test "$warn" -ge 1; then
|
||||
CFLAGS="${CFLAGS} -Wall -Wextra"
|
||||
if test "$warn" -ge 2; then
|
||||
CFLAGS="${CFLAGS} -Wconversion -Wshadow -Wundef"
|
||||
if test "$warn" -eq 1; then
|
||||
if test "$zconst" -eq 1; then
|
||||
CFLAGS="${CFLAGS} -Wall -Wextra -Wcast-qual -DZLIB_CONST"
|
||||
else
|
||||
CFLAGS="${CFLAGS} -Wall -Wextra"
|
||||
fi
|
||||
fi
|
||||
if test "$zconst" -eq 1; then
|
||||
if test "$warn" -ge 1; then
|
||||
CFLAGS="${CFLAGS} -Wcast-qual"
|
||||
fi
|
||||
CFLAGS="${CFLAGS} -DZLIB_CONST"
|
||||
fi
|
||||
if test $address -eq 1; then
|
||||
CFLAGS="${CFLAGS} -g -fsanitize=address -fno-omit-frame-pointer"
|
||||
fi
|
||||
if test $memory -eq 1; then
|
||||
CFLAGS="${CFLAGS} -g -fsanitize=memory -fno-omit-frame-pointer"
|
||||
fi
|
||||
if test $undefined -eq 1; then
|
||||
CFLAGS="${CFLAGS} -g -fsanitize=undefined -fno-omit-frame-pointer"
|
||||
fi
|
||||
if test $insecure -eq 1; then
|
||||
CFLAGS="${CFLAGS} -DZLIB_INSECURE"
|
||||
SFLAGS="${SFLAGS} -DZLIB_INSECURE"
|
||||
fi
|
||||
if test $debug -eq 1; then
|
||||
CFLAGS="${CFLAGS} -DZLIB_DEBUG"
|
||||
SFLAGS="${SFLAGS} -DZLIB_DEBUG"
|
||||
@@ -289,7 +227,7 @@ if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
|
||||
uname=`(uname -s || echo unknown) 2>/dev/null`
|
||||
fi
|
||||
case "$uname" in
|
||||
Linux* | linux* | *-linux* | GNU | GNU/* | solaris* | Haiku)
|
||||
Linux* | linux* | *-linux* | GNU | GNU/* | solaris*)
|
||||
case "$mname" in
|
||||
*sparc*)
|
||||
LDFLAGS="${LDFLAGS} -Wl,--no-warn-rwx-segments" ;;
|
||||
@@ -320,7 +258,6 @@ if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
|
||||
SHAREDLIB='libz.sl' ;;
|
||||
esac ;;
|
||||
AIX*)
|
||||
LDSHARED=${LDSHARED-"$cc -shared"}
|
||||
LDFLAGS="${LDFLAGS} -Wl,-brtl" ;;
|
||||
Darwin* | darwin* | *-darwin*)
|
||||
shared_ext='.dylib'
|
||||
@@ -426,12 +363,7 @@ else
|
||||
AIX*) # Courtesy of dbakker@arrayasolutions.com
|
||||
SFLAGS=${CFLAGS-"-O -qmaxmem=8192"}
|
||||
CFLAGS=${CFLAGS-"-O -qmaxmem=8192"}
|
||||
LDSHARED=${LDSHARED-"xlc -G"}
|
||||
if test $build64 -eq 1; then
|
||||
CFLAGS="${CFLAGS} -q64"
|
||||
SFLAGS="${SFLAGS} -q64"
|
||||
ARFLAGS="-X64 ${ARFLAGS}"
|
||||
fi ;;
|
||||
LDSHARED=${LDSHARED-"xlc -G"} ;;
|
||||
# send working options for other systems to zlib@gzip.org
|
||||
*) SFLAGS=${CFLAGS-"-O"}
|
||||
CFLAGS=${CFLAGS-"-O"}
|
||||
@@ -492,13 +424,6 @@ tryboth()
|
||||
cat > $test.c << EOF
|
||||
int foo() { return 0; }
|
||||
EOF
|
||||
echo "Checking for compiler..." >> configure.log
|
||||
if try $CC -c $test.c; then
|
||||
:
|
||||
else
|
||||
echo "Missing or broken C compiler." | tee -a configure.log
|
||||
leave 1
|
||||
fi
|
||||
echo "Checking for obsessive-compulsive compiler options..." >> configure.log
|
||||
if try $CC -c $CFLAGS $test.c; then
|
||||
:
|
||||
@@ -518,7 +443,7 @@ if test $shared -eq 1; then
|
||||
echo Checking for shared library support... | tee -a configure.log
|
||||
# we must test in two steps (cc then ld), required at least on SunOS 4.x
|
||||
if try $CC -c $SFLAGS $test.c &&
|
||||
try $LDSHARED $SFLAGS $LDFLAGS -o $test$shared_ext $test.o; then
|
||||
try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then
|
||||
echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log
|
||||
elif test -z "$old_cc" -a -z "$old_cflags"; then
|
||||
echo No shared library support. | tee -a configure.log
|
||||
@@ -580,7 +505,7 @@ int main(void) {
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
|
||||
if try $CC $CFLAGS -o $test $test.c; then
|
||||
sizet=`./$test`
|
||||
echo "Checking for a pointer-size integer type..." $sizet"." | tee -a configure.log
|
||||
CFLAGS="${CFLAGS} -DNO_SIZE_T=${sizet}"
|
||||
@@ -614,7 +539,7 @@ int main(void) {
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
|
||||
if try $CC $CFLAGS -o $test $test.c; then
|
||||
echo "Checking for fseeko... Yes." | tee -a configure.log
|
||||
else
|
||||
CFLAGS="${CFLAGS} -DNO_FSEEKO"
|
||||
@@ -631,7 +556,7 @@ cat > $test.c <<EOF
|
||||
#include <errno.h>
|
||||
int main() { return strlen(strerror(errno)); }
|
||||
EOF
|
||||
if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
|
||||
if try $CC $CFLAGS -o $test $test.c; then
|
||||
echo "Checking for strerror... Yes." | tee -a configure.log
|
||||
else
|
||||
CFLAGS="${CFLAGS} -DNO_STRERROR"
|
||||
@@ -650,7 +575,7 @@ cat > $test.c <<EOF
|
||||
int main() { return 0; }
|
||||
EOF
|
||||
if try $CC -c $CFLAGS $test.c; then
|
||||
sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/ HAVE_UNISTD_H-0\(.*\) may be/ 1\1 was/" > zconf.temp.h
|
||||
sed < zconf.h "/^#ifdef HAVE_UNISTD_H.* may be/s/def HAVE_UNISTD_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
|
||||
mv zconf.temp.h zconf.h
|
||||
echo "Checking for unistd.h... Yes." | tee -a configure.log
|
||||
else
|
||||
@@ -665,7 +590,7 @@ cat > $test.c <<EOF
|
||||
int main() { return 0; }
|
||||
EOF
|
||||
if try $CC -c $CFLAGS $test.c; then
|
||||
sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/ HAVE_STDARG_H-0\(.*\) may be/ 1\1 was/" > zconf.temp.h
|
||||
sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/def HAVE_STDARG_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
|
||||
mv zconf.temp.h zconf.h
|
||||
echo "Checking for stdarg.h... Yes." | tee -a configure.log
|
||||
else
|
||||
@@ -693,6 +618,7 @@ fi
|
||||
|
||||
# if code coverage testing was requested, use older gcc if defined, e.g. "gcc-4.2" on Mac OS X
|
||||
if test $cover -eq 1; then
|
||||
CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage"
|
||||
if test -n "$GCC_CLASSIC"; then
|
||||
CC=$GCC_CLASSIC
|
||||
fi
|
||||
@@ -737,7 +663,7 @@ int main()
|
||||
return (mytest("Hello%d\n", 1));
|
||||
}
|
||||
EOF
|
||||
if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
|
||||
if try $CC $CFLAGS -o $test $test.c; then
|
||||
echo "Checking for vsnprintf() in stdio.h... Yes." | tee -a configure.log
|
||||
|
||||
echo >> configure.log
|
||||
@@ -777,10 +703,7 @@ EOF
|
||||
echo " WARNING: vsnprintf() not found, falling back to vsprintf(). zlib" | tee -a configure.log
|
||||
echo " can build but will be open to possible buffer-overflow security" | tee -a configure.log
|
||||
echo " vulnerabilities." | tee -a configure.log
|
||||
if test $insecure -ne 1; then
|
||||
echo " The --insecure option must be provided to ./configure in order to" | tee -a configure.log
|
||||
echo " compile using the insecure vsprintf() function." | tee -a configure.log
|
||||
fi
|
||||
|
||||
echo >> configure.log
|
||||
cat >$test.c <<EOF
|
||||
#include <stdio.h>
|
||||
@@ -830,7 +753,7 @@ int main()
|
||||
}
|
||||
EOF
|
||||
|
||||
if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
|
||||
if try $CC $CFLAGS -o $test $test.c; then
|
||||
echo "Checking for snprintf() in stdio.h... Yes." | tee -a configure.log
|
||||
|
||||
echo >> configure.log
|
||||
@@ -864,10 +787,7 @@ EOF
|
||||
echo " WARNING: snprintf() not found, falling back to sprintf(). zlib" | tee -a configure.log
|
||||
echo " can build but will be open to possible buffer-overflow security" | tee -a configure.log
|
||||
echo " vulnerabilities." | tee -a configure.log
|
||||
if test $insecure -ne 1; then
|
||||
echo " The --insecure option must be provided to ./configure in order to" | tee -a configure.log
|
||||
echo " compile using the insecure sprintf() function." | tee -a configure.log
|
||||
fi
|
||||
|
||||
echo >> configure.log
|
||||
cat >$test.c <<EOF
|
||||
#include <stdio.h>
|
||||
@@ -915,70 +835,6 @@ EOF
|
||||
fi
|
||||
fi
|
||||
|
||||
# check for ibm s390x build
|
||||
HAVE_S390X=0
|
||||
cat > $test.c << EOF
|
||||
#ifndef __s390x__
|
||||
#error
|
||||
#endif
|
||||
EOF
|
||||
if try $CC -c $CFLAGS $test.c; then
|
||||
echo "Checking for s390x build ... Yes." | tee -a configure.log
|
||||
HAVE_S390X=1
|
||||
else
|
||||
echo "Checking for s390x build ... No." | tee -a configure.log
|
||||
fi
|
||||
|
||||
# check for ibm s390x vx vector extensions
|
||||
HAVE_S390X_VX=0
|
||||
if test $HAVE_S390X -eq 1 && test $enable_crcvx -eq 1 ; then
|
||||
# preset the compiler specific flags
|
||||
if test $clang -eq 1; then
|
||||
VGFMAFLAG=-fzvector
|
||||
else
|
||||
VGFMAFLAG=-mzarch
|
||||
fi
|
||||
|
||||
cat > $test.c <<EOF
|
||||
#ifndef __s390x__
|
||||
#error
|
||||
#endif
|
||||
#include <vecintrin.h>
|
||||
int main(void) {
|
||||
unsigned long long a __attribute__((vector_size(16))) = { 0 };
|
||||
unsigned long long b __attribute__((vector_size(16))) = { 0 };
|
||||
unsigned char c __attribute__((vector_size(16))) = { 0 };
|
||||
c = vec_gfmsum_accum_128(a, b, c);
|
||||
return c[0];
|
||||
}
|
||||
EOF
|
||||
|
||||
# cflags already contains a valid march
|
||||
if try $CC -c $CFLAGS $VGFMAFLAG $test.c; then
|
||||
echo "Checking for s390x vx vector extension ... Yes." | tee -a configure.log
|
||||
HAVE_S390X_VX=1
|
||||
# or set march for our compile units
|
||||
elif try $CC -c $CFLAGS $VGFMAFLAG -march=z13 $test.c; then
|
||||
echo "Checking for s390x vx vector extension (march=z13) ... Yes." | tee -a configure.log
|
||||
HAVE_S390X_VX=1
|
||||
VGFMAFLAG="$VGFMAFLAG -march=z13"
|
||||
# else we are not on s390x
|
||||
else
|
||||
echo "Checking for s390x vx vector extension ... No." | tee -a configure.log
|
||||
fi
|
||||
|
||||
# prepare compiling for s390x
|
||||
if test $HAVE_S390X_VX -eq 1; then
|
||||
CFLAGS="$CFLAGS -DHAVE_S390X_VX"
|
||||
SFLAGS="$SFLAGS -DHAVE_S390X_VX"
|
||||
OBJC="$OBJC crc32_vx.o"
|
||||
PIC_OBJC="$PIC_OBJC crc32_vx.lo"
|
||||
else
|
||||
# target has no vx extension
|
||||
VGFMAFLAG=""
|
||||
fi
|
||||
fi
|
||||
|
||||
# show the results in the log
|
||||
echo >> configure.log
|
||||
echo ALL = $ALL >> configure.log
|
||||
@@ -1010,15 +866,10 @@ echo mandir = $mandir >> configure.log
|
||||
echo prefix = $prefix >> configure.log
|
||||
echo sharedlibdir = $sharedlibdir >> configure.log
|
||||
echo uname = $uname >> configure.log
|
||||
echo HAVE_S390X = $HAVE_S390X >> configure.log
|
||||
echo HAVE_S390X_VX = $HAVE_S390X_VX >> configure.log
|
||||
echo VGFMAFLAG = $VGFMAFLAG >> configure.log
|
||||
|
||||
# update Makefile with the configure results
|
||||
sed < ${SRCDIR}Makefile.in "
|
||||
/^CC *=/s#=.*#=$CC#
|
||||
/^GCOV *=/s#=.*#=$GCOV#
|
||||
/^LLVM_GCOV_FLAG *=/s#=.*#=$LLVM_GCOV_FLAG#
|
||||
/^CFLAGS *=/s#=.*#=$CFLAGS#
|
||||
/^SFLAGS *=/s#=.*#=$SFLAGS#
|
||||
/^LDFLAGS *=/s#=.*#=$LDFLAGS#
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
function(zlib_add_contrib_lib name description dir)
|
||||
option(ZLIB_BUILD_${name} "Enable building of ${description}" OFF)
|
||||
|
||||
if(ZLIB_BUILD_${name})
|
||||
if(NOT DEFINED ZLIB_${name}_BUILD_SHARED)
|
||||
set(ZLIB_${name}_BUILD_SHARED ${ZLIB_BUILD_SHARED} CACHE BOOL "")
|
||||
endif(NOT DEFINED ZLIB_${name}_BUILD_SHARED)
|
||||
|
||||
if(NOT DEFINED ZLIB_${name}_BUILD_STATIC)
|
||||
set(ZLIB_${name}_BUILD_STATIC ${ZLIB_BUILD_STATIC} CACHE BOOL "")
|
||||
endif(NOT DEFINED ZLIB_${name}_BUILD_STATIC)
|
||||
|
||||
if(NOT DEFINED ZLIB_${name}_BUILD_TESTING)
|
||||
set(ZLIB_${name}_BUILD_TESTING ${ZLIB_BUILD_TESTING} CACHE BOOL "")
|
||||
endif(NOT DEFINED ZLIB_${name}_BUILD_TESTING)
|
||||
|
||||
if(NOT DEFINED ZLIB_${name}_INSTALL)
|
||||
set(ZLIB_${name}_INSTALL ${ZLIB_INSTALL} CACHE BOOL "")
|
||||
endif(NOT DEFINED ZLIB_${name}_INSTALL)
|
||||
|
||||
add_subdirectory(${dir}/)
|
||||
endif(ZLIB_BUILD_${name})
|
||||
endfunction(zlib_add_contrib_lib name description dir)
|
||||
|
||||
function(zlib_add_contrib_feature name description dir)
|
||||
if(ARGC EQUAL 4)
|
||||
set(default_on ${ARGV3})
|
||||
else()
|
||||
set(default_on Off)
|
||||
endif()
|
||||
|
||||
option(ZLIB_WITH_${name}
|
||||
"Enable build ${description}"
|
||||
${default_on})
|
||||
|
||||
if(ZLIB_WITH_${name})
|
||||
add_subdirectory(${dir}/)
|
||||
endif(ZLIB_WITH_${name})
|
||||
endfunction(zlib_add_contrib_feature name description dir)
|
||||
|
||||
zlib_add_contrib_feature("GVMAT64"
|
||||
"of an optimized longest_match for 32 bits x86_64"
|
||||
gcc_gvmat64)
|
||||
|
||||
zlib_add_contrib_feature(INFBACK9 "with support for method 9 deflate" infback9)
|
||||
zlib_add_contrib_feature(CRC32VX "with S390X-CRC32VX implementation" crc32vx)
|
||||
zlib_add_contrib_lib(ADA "Ada bindings" ada)
|
||||
zlib_add_contrib_lib(BLAST "blast binary" blast)
|
||||
zlib_add_contrib_lib(IOSTREAM3 "IOStream C++ bindings V3" iostream3)
|
||||
zlib_add_contrib_lib(MINIZIP "minizip library" minizip)
|
||||
zlib_add_contrib_lib(PUFF "puff decompress library" puff)
|
||||
|
||||
if(WIN32)
|
||||
zlib_add_contrib_lib(TESTZLIB "testzlib binary" testzlib)
|
||||
|
||||
if (ZLIB_BUILD_ZLIB1_DLL)
|
||||
add_subdirectory(zlib1-dll/)
|
||||
endif (ZLIB_BUILD_ZLIB1_DLL)
|
||||
|
||||
option(ZLIB_BUILD_ZLIB1_DLL "Build the legacy zlib + minizip DLL" OFF)
|
||||
endif(WIN32)
|
||||
@@ -6,7 +6,7 @@ for help about these, not the zlib authors. Thanks.
|
||||
|
||||
ada/ by Dmitriy Anisimkov <anisimkov@yahoo.com>
|
||||
Support for Ada
|
||||
See https://zlib-ada.sourceforge.net/
|
||||
See http://zlib-ada.sourceforge.net/
|
||||
|
||||
blast/ by Mark Adler <madler@alumni.caltech.edu>
|
||||
Decompressor for output of PKWare Data Compression Library (DCL)
|
||||
@@ -37,7 +37,7 @@ iostream3/ by Ludwig Schwardt <schwardt@sun.ac.za>
|
||||
minizip/ by Gilles Vollant <info@winimage.com>
|
||||
Mini zip and unzip based on zlib
|
||||
Includes Zip64 support by Mathias Svensson <mathias@result42.com>
|
||||
See https://www.winimage.com/zLibDll/minizip.html
|
||||
See http://www.winimage.com/zLibDll/minizip.html
|
||||
|
||||
pascal/ by Bob Dellaca <bobdl@xtra.co.nz> et al.
|
||||
Support for Pascal
|
||||
@@ -46,12 +46,12 @@ puff/ by Mark Adler <madler@alumni.caltech.edu>
|
||||
Small, low memory usage inflate. Also serves to provide an
|
||||
unambiguous description of the deflate format.
|
||||
|
||||
crc32vx/ by Ilya Leoshkevich <iii@linux.ibm.com>
|
||||
Hardware-accelerated CRC32 on IBM Z with Z13 VX extension.
|
||||
|
||||
testzlib/ by Gilles Vollant <info@winimage.com>
|
||||
Example of the use of zlib
|
||||
|
||||
zlib1-dll/
|
||||
by @Vollstrecker on github.com
|
||||
Build the legacy zlib1.dll with zlib and minizip.
|
||||
untgz/ by Pedro A. Aranda Gutierrez <paag@tid.es>
|
||||
A very simple tar.gz file extractor using zlib
|
||||
|
||||
vstudio/ by Gilles Vollant <info@winimage.com>
|
||||
Building a minizip-enhanced zlib with Microsoft Visual Studio
|
||||
Includes vc11 from kreuzerkrieg and vc12 from davispuh
|
||||
|
||||
@@ -1,217 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
|
||||
|
||||
project(
|
||||
zlibAda
|
||||
VERSION 1.0.0
|
||||
LANGUAGES C ADA
|
||||
DESCRIPTION "A library for creating zipfiles based in zlib"
|
||||
HOMEPAGE_URL "https://www.zlib.net")
|
||||
|
||||
option(ZLIB_ADA_BUILD_SHARED "Enable building ada bindings shared library" ON)
|
||||
option(ZLIB_ADA_BUILD_STATIC "Enable building ada bindings static library" ON)
|
||||
option(ZLIB_ADA_BUILD_TESTING "Enable building tests for ada bindings library" ON)
|
||||
|
||||
if(WIN32 OR CYGWIN)
|
||||
set(zlib_Ada_static_suffix "s")
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
endif(WIN32 OR CYGWIN)
|
||||
|
||||
if(NOT DEFINED ZLIB_BUILD_ADA)
|
||||
if(ZLIB_ADA_BUILD_SHARED)
|
||||
list(APPEND REQUIRED_COMPONENTS "shared")
|
||||
endif(ZLIB_ADA_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_ADA_BUILD_STATIC)
|
||||
list(APPEND REQUIRED_COMPONENTS "static")
|
||||
endif(ZLIB_ADA_BUILD_STATIC)
|
||||
|
||||
find_package(ZLIB REQUIRED COMPONENTS ${REQUIRED_COMPONENTS} CONFIG)
|
||||
endif(NOT DEFINED ZLIB_BUILD_ADA)
|
||||
|
||||
function(ZLIB_ADA_findTestEnv testName)
|
||||
set(testEnv "PATH=")
|
||||
|
||||
if(MSVC OR MINGW)
|
||||
set(separator "\\\;")
|
||||
else()
|
||||
set(separator ":")
|
||||
endif()
|
||||
|
||||
string(APPEND testEnv "$<TARGET_FILE_DIR:ZLIB::ZLIB>${separator}")
|
||||
string(APPEND testEnv "$ENV{PATH}")
|
||||
|
||||
set_tests_properties(${testName} PROPERTIES ENVIRONMENT "${testEnv}")
|
||||
endfunction(ZLIB_ADA_findTestEnv testName)
|
||||
|
||||
if(ZLIB_ADA_BUILD_SHARED)
|
||||
ada_add_library(zlib_ada_Ada SHARED
|
||||
zlib-thin.adb
|
||||
zlib.adb)
|
||||
|
||||
set_target_properties(zlib_ada_Ada
|
||||
PROPERTIES OUTPUT_NAME zlib-ada)
|
||||
|
||||
target_link_libraries(zlib_ada_Ada
|
||||
INTERFACE ZLIB::ZLIB)
|
||||
|
||||
ada_add_library(zlib_ada_streams SHARED
|
||||
zlib-streams.adb)
|
||||
|
||||
target_link_libraries(zlib_ada_streams
|
||||
PUBLIC
|
||||
zlib_ada_Ada)
|
||||
|
||||
ada_find_ali(zlib_ada_streams)
|
||||
|
||||
if(ZLIB_ADA_BUILD_TESTING)
|
||||
enable_testing()
|
||||
ada_add_executable(zlib_ada_test test.adb)
|
||||
|
||||
target_link_libraries(zlib_ada_test
|
||||
PRIVATE
|
||||
zlib_ada_Ada
|
||||
zlib_ada_streams)
|
||||
|
||||
ada_find_ali(zlib_ada_test)
|
||||
|
||||
add_test(NAME zlib_ada_ada-test COMMAND zlib_ada_test)
|
||||
set_tests_properties(zlib_ada_ada-test PROPERTIES FIXTURES_REQUIRED zlib_ada_cleanup)
|
||||
|
||||
if(MSVC
|
||||
OR MSYS
|
||||
OR MINGW
|
||||
OR CYGWIN)
|
||||
zlib_ada_findtestenv(zlib_ada_ada-test)
|
||||
endif(
|
||||
MSVC
|
||||
OR MSYS
|
||||
OR MINGW
|
||||
OR CYGWIN)
|
||||
|
||||
ada_add_executable(zlib_ada_buffer_demo buffer_demo.adb)
|
||||
|
||||
target_link_libraries(zlib_ada_buffer_demo
|
||||
PRIVATE
|
||||
zlib_ada_Ada)
|
||||
|
||||
ada_find_ali(zlib_ada_buffer_demo)
|
||||
|
||||
add_test(NAME zlib_ada_buffer-demo COMMAND zlib_ada_buffer_demo)
|
||||
|
||||
if(MSVC
|
||||
OR MSYS
|
||||
OR MINGW
|
||||
OR CYGWIN)
|
||||
zlib_ada_findtestenv(zlib_ada_buffer-demo)
|
||||
endif(
|
||||
MSVC
|
||||
OR MSYS
|
||||
OR MINGW
|
||||
OR CYGWIN)
|
||||
|
||||
ada_add_executable(zlib_ada_mtest mtest.adb)
|
||||
|
||||
target_link_libraries(zlib_ada_mtest
|
||||
PRIVATE
|
||||
zlib_ada_Ada)
|
||||
|
||||
ada_find_ali(zlib_ada_mtest)
|
||||
|
||||
#Not adding test as this is an endless-loop
|
||||
|
||||
ada_add_executable(zlib_ada_read read.adb)
|
||||
|
||||
target_link_libraries(zlib_ada_read
|
||||
PRIVATE
|
||||
zlib_ada_Ada)
|
||||
|
||||
ada_find_ali(zlib_ada_read)
|
||||
|
||||
add_test(NAME zlib_ada_read COMMAND zlib_ada_read)
|
||||
|
||||
if(MSVC
|
||||
OR MSYS
|
||||
OR MINGW
|
||||
OR CYGWIN)
|
||||
zlib_ada_findtestenv(zlib_ada_read)
|
||||
endif(
|
||||
MSVC
|
||||
OR MSYS
|
||||
OR MINGW
|
||||
OR CYGWIN)
|
||||
endif(ZLIB_ADA_BUILD_TESTING)
|
||||
endif(ZLIB_ADA_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_ADA_BUILD_STATIC)
|
||||
ada_add_library(zlib_ada_AdaStatic STATIC
|
||||
zlib-thin.adb
|
||||
zlib.adb)
|
||||
|
||||
target_link_libraries(zlib_ada_AdaStatic
|
||||
INTERFACE ZLIB::ZLIBSTATIC)
|
||||
|
||||
set_target_properties(zlib_ada_AdaStatic
|
||||
PROPERTIES OUTPUT_NAME zlib-ada${zlib_Ada_static_suffix})
|
||||
|
||||
ada_add_library(zlib_ada_streamsStatic STATIC
|
||||
zlib-streams.adb)
|
||||
|
||||
target_link_libraries(zlib_ada_streamsStatic
|
||||
PUBLIC
|
||||
zlib_ada_AdaStatic)
|
||||
|
||||
ada_find_ali(zlib_ada_streamsStatic)
|
||||
|
||||
if(ZLIB_ADA_BUILD_TESTING)
|
||||
enable_testing()
|
||||
ada_add_executable(zlib_ada_testStatic test.adb)
|
||||
|
||||
target_link_libraries(zlib_ada_testStatic
|
||||
PRIVATE
|
||||
zlib_ada_AdaStatic
|
||||
zlib_ada_streamsStatic)
|
||||
|
||||
ada_find_ali(zlib_ada_testStatic)
|
||||
|
||||
add_test(NAME zlib_ada_testStatic COMMAND zlib_ada_testStatic)
|
||||
set_tests_properties(zlib_ada_testStatic PROPERTIES FIXTURES_REQUIRED zlib_ada_cleanup)
|
||||
|
||||
ada_add_executable(zlib_ada_buffer-demoStatic buffer_demo.adb)
|
||||
|
||||
target_link_libraries(zlib_ada_buffer-demoStatic
|
||||
PRIVATE
|
||||
zlib_ada_AdaStatic)
|
||||
|
||||
ada_find_ali(zlib_ada_buffer-demoStatic)
|
||||
|
||||
add_test(NAME zlib_ada_buffer-demoStatic COMMAND zlib_ada_buffer-demoStatic)
|
||||
|
||||
ada_add_executable(zlib_ada_mtestStatic mtest.adb)
|
||||
|
||||
target_link_libraries(zlib_ada_mtestStatic
|
||||
PRIVATE
|
||||
zlib_ada_AdaStatic)
|
||||
|
||||
ada_find_ali(zlib_ada_mtestStatic)
|
||||
|
||||
# Not adding test as this is an endless-loop
|
||||
|
||||
ada_add_executable(zlib_ada_readStatic read.adb)
|
||||
|
||||
target_link_libraries(zlib_ada_readStatic
|
||||
PRIVATE
|
||||
zlib_ada_AdaStatic)
|
||||
|
||||
ada_find_ali(zlib_ada_readStatic)
|
||||
|
||||
add_test(NAME zlib_ada_readStatic COMMAND zlib_ada_readStatic)
|
||||
endif(ZLIB_ADA_BUILD_TESTING)
|
||||
endif(ZLIB_ADA_BUILD_STATIC)
|
||||
|
||||
if(ZLIB_ADA_BUILD_TESTING)
|
||||
add_test(NAME zlib_ada_cleanup COMMAND ${CMAKE_COMMAND} -E rm ${CMAKE_CURRENT_BINARY_DIR}/testzlib.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/testzlib.out ${CMAKE_CURRENT_BINARY_DIR}/testzlib.zlb)
|
||||
set_tests_properties(zlib_ada_cleanup PROPERTIES FIXTURES_CLEANUP zlib_ada_cleanup)
|
||||
endif(ZLIB_ADA_BUILD_TESTING)
|
||||
@@ -1,23 +0,0 @@
|
||||
set(CMAKE_ADA_COMPILER "@CMAKE_ADA_COMPILER@")
|
||||
set(CMAKE_ADA_COMPILER_ARG1 "@CMAKE_ADA_COMPILER_ARG1@")
|
||||
set(CMAKE_ADA_COMPILER_ID "@CMAKE_ADA_COMPILER_ID@")
|
||||
set(CMAKE_ADA_COMPILER_VERSION "@CMAKE_ADA_COMPILER_VERSION@")
|
||||
set(CMAKE_ADA_PLATFORM_ID "@CMAKE_ADA_PLATFORM_ID@")
|
||||
set(CMAKE_AR "@CMAKE_AR@")
|
||||
#set(CMAKE_RANLIB "@CMAKE_RANLIB@")
|
||||
#set(CMAKE_LINKER "@CMAKE_LINKER@")
|
||||
set(CMAKE_ADA_COMPILER_LOADED TRUE)
|
||||
set(CMAKE_ADA_COMPILER_WORKS @CMAKE_ADA_COMPILER_WORKS@)
|
||||
#set(CMAKE_ADA_ABI_COMPILED @CMAKE_ADA_ABI_COMPILED@)
|
||||
|
||||
set(CMAKE_ADA_COMPILER_ENV_VAR "ADA")
|
||||
|
||||
set(CMAKE_ADA_COMPILER_ID_RUN TRUE)
|
||||
set(CMAKE_ADA_SOURCE_FILE_EXTENSIONS adb;ADB)
|
||||
set(CMAKE_ADA_IGNORE_EXTENSIONS ;o;O;obj;OBJ;ali)
|
||||
|
||||
set(CMAKE_ADA_BINDER_HELPER "@CMAKE_ADA_BINDER_HELPER@")
|
||||
set(CMAKE_ADA_COMPILER_HELPER "@CMAKE_ADA_COMPILER_HELPER@")
|
||||
set(CMAKE_ADA_EXE_LINK_HELPER "@CMAKE_ADA_EXE_LINK_HELPER@")
|
||||
set(CMAKE_ADA_SHARED_LINK_HELPER "@CMAKE_ADA_SHARED_LINK_HELPER@")
|
||||
set(CMAKE_ADA_STATIC_LINK_HELPER "@CMAKE_ADA_STATIC_LINK_HELPER@")
|
||||
@@ -1,133 +0,0 @@
|
||||
include(CMakeLanguageInformation)
|
||||
|
||||
set(CMAKE_ADA_OUTPUT_EXTENSION .o)
|
||||
set(CMAKE_ADA_OUTPUT_EXTENSION_REPLACE TRUE)
|
||||
|
||||
if(CMAKE_USER_MAKE_RULES_OVERRIDE)
|
||||
include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
|
||||
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
|
||||
endif(CMAKE_USER_MAKE_RULES_OVERRIDE)
|
||||
|
||||
|
||||
if(CMAKE_USER_MAKE_RULES_OVERRIDE_ADA)
|
||||
include(${CMAKE_USER_MAKE_RULES_OVERRIDE_ADA} RESULT_VARIABLE _override)
|
||||
set(CMAKE_USER_MAKE_RULES_OVERRIDE_ADA "${_override}")
|
||||
endif(CMAKE_USER_MAKE_RULES_OVERRIDE_ADA)
|
||||
|
||||
set(CMAKE_ADA_FLAGS_INIT "$ENV{ADAFLAGS} ${CMAKE_ADA_FLAGS_INIT}")
|
||||
|
||||
string(APPEND CMAKE_ADA_FLAGS_INIT " ")
|
||||
string(APPEND CMAKE_ADA_FLAGS_DEBUG_INIT " -g")
|
||||
string(APPEND CMAKE_ADA_FLAGS_MINSIZEREL_INIT " -Os")
|
||||
string(APPEND CMAKE_ADA_FLAGS_RELEASE_INIT " -O3")
|
||||
string(APPEND CMAKE_ADA_FLAGS_RELWITHDEBINFO_INIT " -O2 -g")
|
||||
|
||||
cmake_initialize_per_config_variable(CMAKE_ADA_FLAGS "Flags used by the Ada compiler")
|
||||
|
||||
if(CMAKE_ADA_STANDARD_LIBRARIES_INIT)
|
||||
set(CMAKE_ADA_STANDARD_LIBRARIES
|
||||
"${CMAKE_ADA_STANDARD_LIBRARIES_INIT}"
|
||||
CACHE
|
||||
STRING "Libraries linked by default with all Ada applications.")
|
||||
mark_as_advanced(CMAKE_ADA_STANDARD_LIBRARIES)
|
||||
endif(CMAKE_ADA_STANDARD_LIBRARIES_INIT)
|
||||
|
||||
if(NOT CMAKE_ADA_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_ADA_COMPILER_LAUNCHER})
|
||||
set(CMAKE_ADA_COMPILER_LAUNCHER
|
||||
"$ENV{CMAKE_ADA_COMPILER_LAUNCHER}"
|
||||
CACHE
|
||||
STRING "Compiler launcher for Ada.")
|
||||
endif(NOT CMAKE_ADA_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_ADA_COMPILER_LAUNCHER})
|
||||
|
||||
if(NOT CMAKE_ADA_LINKER_LAUNCHER AND DEFINED ENV{CMAKE_ADA_LINKER_LAUNCHER})
|
||||
set(CMAKE_ADA_LINKER_LAUNCHER
|
||||
"$ENV{CMAKE_ADA_LINKER_LAUNCHER}"
|
||||
CACHE
|
||||
STRING "Linker launcher for Ada.")
|
||||
endif(NOT CMAKE_ADA_LINKER_LAUNCHER AND DEFINED ENV{CMAKE_ADA_LINKER_LAUNCHER})
|
||||
|
||||
include(CMakeCommonLanguageInclude)
|
||||
_cmake_common_language_platform_flags(ADA)
|
||||
|
||||
if(NOT CMAKE_ADA_CREATE_SHARED_LIBRARY)
|
||||
set(CMAKE_ADA_CREATE_SHARED_LIBRARY
|
||||
"${CMAKE_ADA_BINDER_HELPER} <CMAKE_ADA_COMPILER> <OBJECTS> FLAGS <FLAGS> <LINK_FLAGS>"
|
||||
"${CMAKE_ADA_SHARED_LINK_HELPER} <CMAKE_ADA_COMPILER> <TARGET> <OBJECTS> <LINK_LIBRARIES>")
|
||||
endif(NOT CMAKE_ADA_CREATE_SHARED_LIBRARY)
|
||||
|
||||
if(NOT CMAKE_ADA_CREATE_STATIC_LIBRARY)
|
||||
set(CMAKE_ADA_CREATE_STATIC_LIBRARY
|
||||
"${CMAKE_ADA_STATIC_LINK_HELPER} ${CMAKE_AR} <TARGET> <OBJECTS>")
|
||||
endif(NOT CMAKE_ADA_CREATE_STATIC_LIBRARY)
|
||||
|
||||
if(NOT CMAKE_ADA_COMPILE_OBJECT)
|
||||
set(CMAKE_ADA_COMPILE_OBJECT
|
||||
"${CMAKE_ADA_COMPILER_HELPER} <CMAKE_ADA_COMPILER> <OBJECT_DIR> <SOURCE> <FLAGS>")
|
||||
endif(NOT CMAKE_ADA_COMPILE_OBJECT)
|
||||
|
||||
if(NOT CMAKE_ADA_LINK_EXECUTABLE)
|
||||
set(CMAKE_ADA_LINK_EXECUTABLE
|
||||
"${CMAKE_ADA_BINDER_HELPER} <CMAKE_ADA_COMPILER> <OBJECTS> FLAGS <FLAGS> <LINK_FLAGS>"
|
||||
"${CMAKE_ADA_EXE_LINK_HELPER} <CMAKE_ADA_COMPILER> <TARGET> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> OBJ <OBJECTS> LIBS <LINK_LIBRARIES>")
|
||||
endif(NOT CMAKE_ADA_LINK_EXECUTABLE)
|
||||
|
||||
function(ada_add_executable)
|
||||
if(ARGC GREATER 1)
|
||||
math(EXPR last_index "${ARGC} - 1")
|
||||
foreach(source RANGE 1 ${last_index})
|
||||
list(APPEND SOURCES ${ARGV${source}})
|
||||
string(REPLACE ".adb" "" ali "${ARGV${source}}")
|
||||
set(clean_file "CMakeFiles/${ARGV0}.dir/${ali}.ali")
|
||||
list(APPEND CLEAN_FILES ${clean_file})
|
||||
list(APPEND CLEAN_FILES b~${ali}.adb)
|
||||
list(APPEND CLEAN_FILES b~${ali}.ads)
|
||||
list(APPEND CLEAN_FILES b~${ali}.ali)
|
||||
list(APPEND CLEAN_FILES b~${ali}.o)
|
||||
endforeach(source RANGE 1 ${ARGC})
|
||||
|
||||
add_executable(${ARGV0} ${ARGV1} ${SOURCES})
|
||||
|
||||
set_target_properties(${ARGV0}
|
||||
PROPERTIES
|
||||
ADDITIONAL_CLEAN_FILES "${CLEAN_FILES}")
|
||||
endif(ARGC GREATER 1)
|
||||
endfunction(ada_add_executable)
|
||||
|
||||
function(ada_add_library)
|
||||
if(ARGC GREATER 2)
|
||||
math(EXPR last_index "${ARGC} - 1")
|
||||
foreach(source RANGE 2 ${last_index})
|
||||
list(APPEND SOURCES ${ARGV${source}})
|
||||
string(REPLACE ".adb" "" ali "${ARGV${source}}")
|
||||
set(clean_file "CMakeFiles/${ARGV0}.dir/${ali}.ali")
|
||||
list(APPEND CLEAN_FILES ${clean_file})
|
||||
list(APPEND CLEAN_FILES b~${ali}.adb)
|
||||
list(APPEND CLEAN_FILES b~${ali}.ads)
|
||||
list(APPEND CLEAN_FILES b~${ali}.ali)
|
||||
list(APPEND CLEAN_FILES b~${ali}.o)
|
||||
endforeach(source RANGE 2 ${ARGC})
|
||||
|
||||
add_library(${ARGV0} ${ARGV1} ${SOURCES})
|
||||
|
||||
set_target_properties(${ARGV0}
|
||||
PROPERTIES
|
||||
ADDITIONAL_CLEAN_FILES "${CLEAN_FILES};dummylib.adb;dummylib.ali;dummylib.o"
|
||||
ALI_FLAG "-aO${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${ARGV0}.dir/")
|
||||
endif(ARGC GREATER 2)
|
||||
endfunction(ada_add_library)
|
||||
|
||||
function(ada_find_ali)
|
||||
get_target_property(link_libs ${ARGV0} LINK_LIBRARIES)
|
||||
|
||||
foreach(lib IN LISTS link_libs)
|
||||
get_target_property(ali ${lib} ALI_FLAG)
|
||||
string(APPEND FLAGS ${ali} " ")
|
||||
unset(ali)
|
||||
endforeach(lib IN LISTS link_libs)
|
||||
|
||||
set_target_properties(${ARGV0}
|
||||
PROPERTIES
|
||||
LINK_FLAGS ${FLAGS})
|
||||
endfunction(ada_find_ali)
|
||||
|
||||
set(CMAKE_ADA_INFORMATION_LOADED TRUE)
|
||||
@@ -1,33 +0,0 @@
|
||||
include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
|
||||
|
||||
# Load system-specific compiler preferences for this language.
|
||||
include(Platform/${CMAKE_SYSTEM_NAME}-Determine-Ada OPTIONAL)
|
||||
include(Platform/${CMAKE_SYSTEM_NAME}-Ada OPTIONAL)
|
||||
|
||||
if(NOT CMAKE_ADA_COMPILER_NAMES)
|
||||
set(CMAKE_ADA_COMPILER_NAMES gnat)
|
||||
|
||||
foreach(ver RANGE 11 99)
|
||||
list(APPEND CMAKE_ADA_COMPILER_NAMES gnat-${ver})
|
||||
endforeach(ver RANGE 11 99)
|
||||
endif(NOT CMAKE_ADA_COMPILER_NAMES)
|
||||
|
||||
if(NOT CMAKE_ADA_COMPILER)
|
||||
set(CMAKE_ADA_COMPILER_INIT NOTFOUND)
|
||||
_cmake_find_compiler(ADA)
|
||||
else(NOT CMAKE_REAL_ADA_COMPILER)
|
||||
_cmake_find_compiler_path(ADA)
|
||||
endif(NOT CMAKE_ADA_COMPILER)
|
||||
|
||||
mark_as_advanced(CMAKE_ADA_COMPILER)
|
||||
set(CMAKE_ADA_COMPILER_ID "GNU")
|
||||
set(CMAKE_ADA_BINDER_HELPER "${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/binder_helper.cmake")
|
||||
set(CMAKE_ADA_COMPILER_HELPER "${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compile_helper.cmake")
|
||||
set(CMAKE_ADA_EXE_LINK_HELPER "${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/exe_link_helper.cmake")
|
||||
set(CMAKE_ADA_SHARED_LINK_HELPER "${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/shared_link_helper.cmake")
|
||||
set(CMAKE_ADA_STATIC_LINK_HELPER "${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/static_link_helper.cmake")
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/CMakeADACompiler.cmake.in
|
||||
${CMAKE_PLATFORM_INFO_DIR}/CMakeADACompiler.cmake
|
||||
@ONLY)
|
||||
@@ -1,46 +0,0 @@
|
||||
include(CMakeTestCompilerCommon)
|
||||
unset(CMAKE_ADA_COMPILER_WORKS CACHE)
|
||||
|
||||
if(NOT CMAKE_ADA_COMPILER_WORKS)
|
||||
PrintTestCompilerStatus("ADA" "")
|
||||
set(_ADA_TEST_FILE "${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.adb")
|
||||
|
||||
file(WRITE ${_ADA_TEST_FILE}
|
||||
"with Ada.Text_IO; use Ada.Text_IO;\n"
|
||||
"\n"
|
||||
"procedure main is\n"
|
||||
"begin\n"
|
||||
"Put_Line(\"Hello, World!\");\n"
|
||||
"end Main;\n")
|
||||
|
||||
try_compile(CMAKE_ADA_COMPILER_WORKS ${CMAKE_BINARY_DIR}
|
||||
${_ADA_TEST_FILE}
|
||||
OUTPUT_VARIABLE __CMAKE_ADA_COMPILER_OUTPUT)
|
||||
|
||||
set(CMAKE_ADA_COMPILER_WORKS ${CMAKE_ADA_COMPILER_WORKS})
|
||||
unset(CMAKE_ADA_COMPILER_WORKS CACHE)
|
||||
set(ADA_TEST_WAS_RUN TRUE)
|
||||
endif(NOT CMAKE_ADA_COMPILER_WORKS)
|
||||
|
||||
if(NOT CMAKE_ADA_COMPILER_WORKS)
|
||||
PrintTestCompilerStatus("ADA" " -- broken")
|
||||
|
||||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Determining if the Ada compiler works failed with "
|
||||
"the following output:\n${__CMAKE_ADA_COMPILER_OUTPUT}\n\n")
|
||||
|
||||
message(FATAL_ERROR "The Ada compiler \"${CMAKE_ADA_COMPILER}\" "
|
||||
"is not able to compile a simple test program.\nIt fails "
|
||||
"with the following output:\n ${__CMAKE_ADA_COMPILER_OUTPUT}\n\n"
|
||||
"CMake will not be able to correctly generate this project.")
|
||||
else(NOT CMAKE_ADA_COMPILER_WORKS)
|
||||
if(ADA_TEST_WAS_RUN)
|
||||
PrintTestCompilerStatus("ADA" " -- works")
|
||||
|
||||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
"Determining if the Ada compiler works passed with "
|
||||
"the following output:\n${__CMAKE_ADA_COMPILER_OUTPUT}\n\n")
|
||||
endif(ADA_TEST_WAS_RUN)
|
||||
endif(NOT CMAKE_ADA_COMPILER_WORKS)
|
||||
|
||||
unset(__CMAKE_ADA_COMPILER_OUTPUT)
|
||||
@@ -1,47 +0,0 @@
|
||||
#CMAKE_ARGV0 = /path/to/cmake
|
||||
#CMAKE_ARGV1 = -P
|
||||
#CMAKE_ARGV2 = path/to/this/file
|
||||
#CMAKE_ARGV3 = binder
|
||||
#CMAKE_ARGV4 = ali
|
||||
|
||||
if(NOT CMAKE_ARGV3)
|
||||
message(FATAL_ERROR "binder not set")
|
||||
endif(NOT CMAKE_ARGV3)
|
||||
|
||||
string(REPLACE ".o" ".ali" ALI ${CMAKE_ARGV4})
|
||||
|
||||
set (REACHED_FLAGS FALSE)
|
||||
#iterate over additional objects, only the main one is needed
|
||||
foreach(arg RANGE 5 ${CMAKE_ARGC})
|
||||
if(CMAKE_ARGV${arg} STREQUAL FLAGS)
|
||||
set(REACHED_FLAGS TRUE)
|
||||
continue()
|
||||
endif(CMAKE_ARGV${arg} STREQUAL FLAGS)
|
||||
|
||||
string(SUBSTRING "${CMAKE_ARGV${arg}}" 0 2 start)
|
||||
|
||||
if(start STREQUAL "-O")
|
||||
continue()
|
||||
endif(start STREQUAL "-O")
|
||||
|
||||
if(REACHED_FLAGS)
|
||||
list(APPEND FLAGS ${CMAKE_ARGV${arg}})
|
||||
endif(REACHED_FLAGS)
|
||||
endforeach(arg RANGE 5 CMAKE_ARGC)
|
||||
|
||||
#first see if there is a main function
|
||||
execute_process(COMMAND ${CMAKE_ARGV3} bind ${ALI} ${FLAGS}
|
||||
RESULT_VARIABLE MAIN_RESULT
|
||||
OUTPUT_VARIABLE dont_care
|
||||
ERROR_VARIABLE ERROR)
|
||||
|
||||
if(MAIN_RESULT)
|
||||
execute_process(COMMAND ${CMAKE_ARGV3} bind -n ${ALI} ${FLAGS}
|
||||
RESULT_VARIABLE RESULT
|
||||
OUTPUT_VARIABLE dont_care
|
||||
ERROR_VARIABLE ERROR)
|
||||
endif(MAIN_RESULT)
|
||||
|
||||
if(RESULT)
|
||||
message(FATAL_ERROR ${RESULT} ${ERROR})
|
||||
endif(RESULT)
|
||||
@@ -1,32 +0,0 @@
|
||||
#CMAKE_ARGV0 = /path/to/cmake
|
||||
#CMAKE_ARGV1 = -P
|
||||
#CMAKE_ARGV2 = path/to/this/file
|
||||
#CMAKE_ARGV3 = compiler
|
||||
#CMAKE_ARGV4 = OBJECT-DIR
|
||||
#CMAKE_ARGV5 = source-file
|
||||
|
||||
if(NOT CMAKE_ARGV3)
|
||||
message(FATAL_ERROR "compiler not set")
|
||||
endif(NOT CMAKE_ARGV3)
|
||||
|
||||
if(NOT CMAKE_ARGV4)
|
||||
message(FATAL_ERROR "object dir not set")
|
||||
endif(NOT CMAKE_ARGV4)
|
||||
|
||||
if(NOT CMAKE_ARGV5)
|
||||
message(FATAL_ERROR "source not set")
|
||||
endif(NOT CMAKE_ARGV5)
|
||||
|
||||
foreach(arg RANGE 6 ${CMAKE_ARGC})
|
||||
list(APPEND FLAGS "${CMAKE_ARGV${arg}}")
|
||||
endforeach(arg RANGE 6 ${CMAKE_ARGC})
|
||||
|
||||
execute_process(COMMAND ${CMAKE_ARGV3} compile ${FLAGS} ${CMAKE_ARGV5}
|
||||
WORKING_DIRECTORY ${CMAKE_ARGV4}
|
||||
RESULT_VARIABLE RESULT
|
||||
OUTPUT_VARIABLE dont_care
|
||||
ERROR_VARIABLE ERROR)
|
||||
|
||||
if(RESULT)
|
||||
message(FATAL_ERROR ${RESULT} ${ERROR})
|
||||
endif(RESULT)
|
||||
@@ -1,53 +0,0 @@
|
||||
#CMAKE_ARGV0 = /path/to/cmake
|
||||
#CMAKE_ARGV1 = -P
|
||||
#CMAKE_ARGV2 = path/to/this/file
|
||||
#CMAKE_ARGV3 = linker
|
||||
#CMAKE_ARGV4 = output-name
|
||||
#CMAKE_ARGV5...CMAKE_AGVN = OBJECTS
|
||||
#CMAKE_ARGVN+1 = LIBS
|
||||
#CMAKE_ARGVN+2...CMAKE_ARGVM libraries
|
||||
|
||||
if(NOT CMAKE_ARGV3)
|
||||
message(FATAL_ERROR "linker not set")
|
||||
endif(NOT CMAKE_ARGV3)
|
||||
|
||||
set(REACHED_LIBS FALSE)
|
||||
set(REACHED_OBJ FALSE)
|
||||
foreach(arg RANGE 5 ${CMAKE_ARGC})
|
||||
if(CMAKE_ARGV${arg} STREQUAL LIBS)
|
||||
set(REACHED_LIBS TRUE)
|
||||
set(REACHED_OBJ FALSE)
|
||||
continue()
|
||||
endif(CMAKE_ARGV${arg} STREQUAL LIBS)
|
||||
|
||||
if(CMAKE_ARGV${arg} STREQUAL OBJ)
|
||||
set(REACHED_LIBS FALSE)
|
||||
set(REACHED_OBJ TRUE)
|
||||
continue()
|
||||
endif(CMAKE_ARGV${arg} STREQUAL OBJ)
|
||||
|
||||
if(CMAKE_ARGC EQUAL arg)
|
||||
continue()
|
||||
endif(CMAKE_ARGC EQUAL arg)
|
||||
|
||||
if(REACHED_LIBS)
|
||||
list(APPEND LIBS "${CMAKE_ARGV${arg}}")
|
||||
elseif(REACHED_OBJ AND NOT ALI)
|
||||
string(REPLACE ".o" ".ali" ALI "${CMAKE_ARGV${arg}}")
|
||||
else(REACHED_LIBS)
|
||||
string(SUBSTRING "${CMAKE_ARGV${arg}}" 0 3 start)
|
||||
|
||||
if(NOT start STREQUAL -aO)
|
||||
list(APPEND FLAGS "${CMAKE_ARGV${arg}}")
|
||||
endif(NOT start STREQUAL -aO)
|
||||
endif(REACHED_LIBS)
|
||||
endforeach(arg RANGE 5 ${CMAKE_ARGC})
|
||||
|
||||
execute_process(COMMAND ${CMAKE_ARGV3} link ${ALI} -o ${CMAKE_ARGV4} ${FLAGS} ${OTHER_OBJECTS} ${LIBS}
|
||||
RESULT_VARIABLE RESULT
|
||||
OUTPUT_VARIABLE dont_care
|
||||
ERROR_VARIABLE ERROR)
|
||||
|
||||
if(RESULT)
|
||||
message(FATAL_ERROR ${RESULT} ${ERROR})
|
||||
endif(RESULT)
|
||||
@@ -1,52 +0,0 @@
|
||||
#CMAKE_ARGV0 = /path/to/cmake
|
||||
#CMAKE_ARGV1 = -P
|
||||
#CMAKE_ARGV2 = path/to/this/file
|
||||
#CMAKE_ARGV3 = linker
|
||||
#CMAKE_ARGV4 = output-name
|
||||
#CMAKE_ARGV5...CMAKE_AGVN = OBJECTS
|
||||
#CMAKE_ARGVN+1 = LIBS
|
||||
#CMAKE_ARGVN+2...CMAKE_ARGVM libraries
|
||||
|
||||
if(NOT CMAKE_ARGV3)
|
||||
message(FATAL_ERROR "linker not set")
|
||||
endif(NOT CMAKE_ARGV3)
|
||||
|
||||
set(REACHED_FILES FALSE)
|
||||
foreach(arg RANGE 5 ${CMAKE_ARGC})
|
||||
if(CMAKE_ARGV${arg} STREQUAL "LIBS")
|
||||
set(REACHED_FILES TRUE)
|
||||
continue()
|
||||
endif(CMAKE_ARGV${arg} STREQUAL "LIBS")
|
||||
|
||||
if(CMAKE_ARGC EQUAL arg)
|
||||
continue()
|
||||
endif(CMAKE_ARGC EQUAL arg)
|
||||
|
||||
if(REACHED_LIBS)
|
||||
list(APPEND LIBS "${CMAKE_ARGV${arg}} ")
|
||||
else(REACHED_LIBS)
|
||||
list(APPEND OBJECT_FILES "${CMAKE_ARGV${arg}}")
|
||||
endif(REACHED_LIBS)
|
||||
endforeach(arg RANGE 5 ${CMAKE_ARGC})
|
||||
|
||||
file(WRITE dummylib.adb
|
||||
"procedure dummylib is\n"
|
||||
"begin\n"
|
||||
" null;\n"
|
||||
"end;\n")
|
||||
|
||||
execute_process(COMMAND ${CMAKE_ARGV3} compile -fPIC dummylib.adb
|
||||
OUTPUT_VARIABLE dont_care
|
||||
ERROR_VARIABLE ERROR)
|
||||
execute_process(COMMAND ${CMAKE_ARGV3} bind -n dummylib.ali
|
||||
OUTPUT_VARIABLE dont_care
|
||||
ERROR_VARIABLE ERROR)
|
||||
|
||||
execute_process(COMMAND ${CMAKE_ARGV3} link -shared dummylib.ali -o ${CMAKE_ARGV4} ${OBJECT_FILES} ${LIBS}
|
||||
RESULT_VARIABLE RESULT
|
||||
OUTPUT_VARIABLE dont_care
|
||||
ERROR_VARIABLE ERROR)
|
||||
|
||||
if(RESULT)
|
||||
message(FATAL_ERROR ${RESULT} ${ERROR})
|
||||
endif(RESULT)
|
||||
@@ -1,25 +0,0 @@
|
||||
#CMAKE_ARGV0 = /path/to/cmake
|
||||
#CMAKE_ARGV1 = -P
|
||||
#CMAKE_ARGV2 = path/to/this/file
|
||||
#CMAKE_ARGV3 = path/to/ar
|
||||
#CMAKE_ARGV4 = output-name
|
||||
#CMAKE_ARGV5...CMAKE_AGVN = OBJECTS
|
||||
|
||||
if(NOT CMAKE_ARGV3)
|
||||
message(FATAL_ERROR "linker not set")
|
||||
endif(NOT CMAKE_ARGV3)
|
||||
|
||||
foreach(arg RANGE 5 ${CMAKE_ARGC})
|
||||
if(NOT CMAKE_ARGC EQUAL arg)
|
||||
list(APPEND OBJECT_FILES "${CMAKE_ARGV${arg}}")
|
||||
endif(NOT CMAKE_ARGC EQUAL arg)
|
||||
endforeach(arg RANGE 6 ${CMAKE_ARGC})
|
||||
|
||||
execute_process(COMMAND ${CMAKE_ARGV3} rcs ${CMAKE_ARGV4} ${OBJECT_FILES}
|
||||
RESULT_VARIABLE RESULT
|
||||
OUTPUT_VARIABLE dont_care
|
||||
ERROR_VARIABLE ERROR)
|
||||
|
||||
if(RESULT)
|
||||
message(FATAL_ERROR ${RESULT} ${ERROR})
|
||||
endif(RESULT)
|
||||
@@ -2,7 +2,7 @@
|
||||
Release 1.3
|
||||
|
||||
ZLib.Ada is a thick binding interface to the popular ZLib data
|
||||
compression library, available at https://zlib.net/.
|
||||
compression library, available at http://www.gzip.org/zlib/.
|
||||
It provides Ada-style access to the ZLib C library.
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ the main functionality of ZLib.Ada.
|
||||
The routines from the package specifications are commented.
|
||||
|
||||
|
||||
Homepage: https://zlib-ada.sourceforge.net/
|
||||
Homepage: http://zlib-ada.sourceforge.net/
|
||||
Author: Dmitriy Anisimkov <anisimkov@yahoo.com>
|
||||
|
||||
Contributors: Pascal Obry <pascal@obry.org>, Steve Sangwine <sjs@essex.ac.uk>
|
||||
|
||||
@@ -12,8 +12,7 @@ package body ZLib.Thin is
|
||||
|
||||
ZLIB_VERSION : constant Chars_Ptr := zlibVersion;
|
||||
|
||||
Dummy : Z_Stream;
|
||||
Z_Stream_Size : constant Int := Dummy'Size / System.Storage_Unit;
|
||||
Z_Stream_Size : constant Int := Z_Stream'Size / System.Storage_Unit;
|
||||
|
||||
--------------
|
||||
-- Avail_In --
|
||||
|
||||
@@ -145,7 +145,7 @@ LastMatchGood:
|
||||
movl %eax, %ebx
|
||||
LookaheadLess: movl %ebx, nicematch(%esp)
|
||||
|
||||
/* Bytef *scan = s->window + s->strstart; */
|
||||
/* register Bytef *scan = s->window + s->strstart; */
|
||||
|
||||
movl dsWindow(%edx), %esi
|
||||
movl %esi, window(%esp)
|
||||
@@ -181,8 +181,8 @@ LimitPositive:
|
||||
addl %eax, %esi
|
||||
movl %esi, windowbestlen(%esp)
|
||||
|
||||
/* ush scan_start = *(ushf*)scan; */
|
||||
/* ush scan_end = *(ushf*)(scan+best_len-1); */
|
||||
/* register ush scan_start = *(ushf*)scan; */
|
||||
/* register ush scan_end = *(ushf*)(scan+best_len-1); */
|
||||
/* Posf *prev = s->prev; */
|
||||
|
||||
movzwl (%edi), %ebx
|
||||
|
||||
@@ -1,166 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
blast
|
||||
VERSION 1.3.0
|
||||
LANGUAGES C
|
||||
DESCRIPTION "A library for creating zipfiles based in zlib"
|
||||
HOMEPAGE_URL "https://www.zlib.net")
|
||||
|
||||
option(ZLIB_BLAST_BUILD_SHARED "Enable building blast shared library" ON)
|
||||
option(ZLIB_BLAST_BUILD_STATIC "Enable building blast static library" ON)
|
||||
option(ZLIB_BLAST_BUILD_TESTING "Enable building tests for blast" ON)
|
||||
option(ZLIB_BLAST_INSTALL "Enable installation of blast" ON)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
if(WIN32 OR CYGWIN)
|
||||
set(zlibblast_static_suffix "s")
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
endif(WIN32 OR CYGWIN)
|
||||
|
||||
function(blast_findTestEnv testName)
|
||||
set(testEnv "PATH=")
|
||||
|
||||
if(MSVC OR MINGW)
|
||||
set(separator "\\\;")
|
||||
else()
|
||||
set(separator ":")
|
||||
endif()
|
||||
|
||||
string(APPEND testEnv "$<TARGET_FILE_DIR:BLAST::BLAST>${separator}")
|
||||
string(APPEND testEnv "$ENV{PATH}")
|
||||
|
||||
set_tests_properties(${testName} PROPERTIES ENVIRONMENT "${testEnv}")
|
||||
endfunction(blast_findTestEnv testName)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_SHARED)
|
||||
add_library(zlib_blast_blast SHARED
|
||||
blast.c
|
||||
blast.h)
|
||||
|
||||
add_library(BLAST::BLAST ALIAS zlib_blast_blast)
|
||||
|
||||
if(NOT CYGWIN)
|
||||
set_target_properties(zlib_blast_blast
|
||||
PROPERTIES
|
||||
SOVERSION ${blast_VERSION_MAJOR}
|
||||
VERSION ${blast_VERSION})
|
||||
endif(NOT CYGWIN)
|
||||
|
||||
set_target_properties(zlib_blast_blast
|
||||
PROPERTIES
|
||||
EXPORT_NAME BLAST
|
||||
OUTPUT_NAME blast)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_TESTING)
|
||||
enable_testing()
|
||||
add_executable(zlib_blast_blast-test blast-test.c)
|
||||
target_link_libraries(zlib_blast_blast-test PRIVATE zlib_blast_blast)
|
||||
|
||||
add_test(NAME zlib_blast_blast-test
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/tester.cmake
|
||||
"$<TARGET_FILE:zlib_blast_blast-test>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
||||
if(MSVC
|
||||
OR MSYS
|
||||
OR MINGW
|
||||
OR CYGWIN)
|
||||
blast_findtestenv(zlib_blast_blast-test)
|
||||
endif(
|
||||
MSVC
|
||||
OR MSYS
|
||||
OR MINGW
|
||||
OR CYGWIN)
|
||||
endif(ZLIB_BLAST_BUILD_TESTING)
|
||||
endif(ZLIB_BLAST_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_STATIC)
|
||||
add_library(zlib_blast_blastStatic STATIC
|
||||
blast.c
|
||||
blast.h)
|
||||
|
||||
add_library(BLAST::BLASTSTATIC ALIAS zlib_blast_blastStatic)
|
||||
|
||||
set_target_properties(zlib_blast_blastStatic
|
||||
PROPERTIES
|
||||
EXPORT_NAME BLASTSTATIC
|
||||
OUTPUT_NAME blast${zlibblast_static_suffix})
|
||||
|
||||
if(ZLIB_BLAST_BUILD_TESTING)
|
||||
enable_testing()
|
||||
add_executable(zlib_blast_testStatic blast-test.c)
|
||||
target_link_libraries(zlib_blast_testStatic
|
||||
PRIVATE zlib_blast_blastStatic)
|
||||
|
||||
add_test(NAME zlib_blast_testStatic
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/tester.cmake
|
||||
"$<TARGET_FILE:zlib_blast_testStatic>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
endif(ZLIB_BLAST_BUILD_TESTING)
|
||||
endif(ZLIB_BLAST_BUILD_STATIC)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_TESTING)
|
||||
add_subdirectory(test)
|
||||
endif(ZLIB_BLAST_BUILD_TESTING)
|
||||
|
||||
if(ZLIB_BLAST_INSTALL)
|
||||
if(ZLIB_BLAST_BUILD_SHARED)
|
||||
install(
|
||||
TARGETS zlib_blast_blast
|
||||
COMPONENT Runtime
|
||||
EXPORT zlibBlastSharedExport
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
install(
|
||||
EXPORT zlibBlastSharedExport
|
||||
FILE blast-shared.cmake
|
||||
NAMESPACE BLAST::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
|
||||
|
||||
if(MSVC)
|
||||
install(
|
||||
FILES $<TARGET_PDB_FILE:zlib_blast_blast>
|
||||
COMPONENT Development
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
CONFIGURATIONS Debug OR RelWithDebInfo
|
||||
OPTIONAL)
|
||||
endif(MSVC)
|
||||
endif(ZLIB_BLAST_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_STATIC)
|
||||
install(
|
||||
TARGETS zlib_blast_blastStatic
|
||||
COMPONENT Development
|
||||
EXPORT zlibBlastStaticExport
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
install(
|
||||
EXPORT zlibBlastStaticExport
|
||||
FILE blast-static.cmake
|
||||
NAMESPACE BLAST::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
|
||||
endif(ZLIB_BLAST_BUILD_STATIC)
|
||||
|
||||
configure_package_config_file(
|
||||
${blast_SOURCE_DIR}/blastConfig.cmake.in
|
||||
${blast_BINARY_DIR}/blastConfig.cmake
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
|
||||
|
||||
write_basic_package_version_file(
|
||||
"${blast_BINARY_DIR}/blastConfigVersion.cmake"
|
||||
VERSION "${blast_VERSION}"
|
||||
COMPATIBILITY AnyNewerVersion)
|
||||
|
||||
install(FILES ${blast_BINARY_DIR}/blastConfig.cmake
|
||||
${blast_BINARY_DIR}/blastConfigVersion.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
|
||||
install(
|
||||
FILES blast.h
|
||||
COMPONENT Development
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
endif(ZLIB_BLAST_INSTALL)
|
||||
@@ -1,14 +1,8 @@
|
||||
all: test
|
||||
blast: blast.c blast.h
|
||||
cc -DTEST -o blast blast.c
|
||||
|
||||
libblast.so: blast.c blast.h
|
||||
cc -o libblast.so -shared blast.c
|
||||
|
||||
blast-test: libblast.so
|
||||
cc -o blast-test.o -c blast-test.c
|
||||
cc -o blast-test blast-test.o libblast.so
|
||||
|
||||
test: blast-test
|
||||
LD_LIBRARY_PATH=./ ./blast-test < test.pk | cmp - test.txt
|
||||
test: blast
|
||||
blast < test.pk | cmp - test.txt
|
||||
|
||||
clean:
|
||||
rm -f libblast.so blast-test blast-test.o
|
||||
rm -f blast blast.o
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
#include "blast.h" /* prototype for blast() */
|
||||
|
||||
/* Example of how to use blast() */
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define CHUNK 16384
|
||||
|
||||
local unsigned inf(void *how, unsigned char **buf)
|
||||
{
|
||||
static unsigned char hold[CHUNK];
|
||||
|
||||
*buf = hold;
|
||||
return fread(hold, 1, CHUNK, (FILE *)how);
|
||||
}
|
||||
|
||||
local int outf(void *how, unsigned char *buf, unsigned len)
|
||||
{
|
||||
return fwrite(buf, 1, len, (FILE *)how) != len;
|
||||
}
|
||||
|
||||
/* Decompress a PKWare Compression Library stream from stdin to stdout */
|
||||
int main(void)
|
||||
{
|
||||
int ret;
|
||||
unsigned left;
|
||||
|
||||
/* decompress to stdout */
|
||||
left = 0;
|
||||
ret = blast(inf, stdin, outf, stdout, &left, NULL);
|
||||
if (ret != 0)
|
||||
fprintf(stderr, "blast error: %d\n", ret);
|
||||
|
||||
/* count any leftover bytes */
|
||||
while (getchar() != EOF)
|
||||
left++;
|
||||
if (left)
|
||||
fprintf(stderr, "blast warning: %u unused bytes of input\n", left);
|
||||
|
||||
/* return blast() error code */
|
||||
return ret;
|
||||
}
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <setjmp.h> /* for setjmp(), longjmp(), and jmp_buf */
|
||||
#include "blast.h" /* prototype for blast() */
|
||||
|
||||
#define local static /* for local function definitions */
|
||||
#define MAXBITS 13 /* maximum code length */
|
||||
#define MAXWIN 4096 /* maximum window size */
|
||||
|
||||
@@ -420,3 +421,46 @@ int blast(blast_in infun, void *inhow, blast_out outfun, void *outhow,
|
||||
err = 1;
|
||||
return err;
|
||||
}
|
||||
|
||||
#ifdef TEST
|
||||
/* Example of how to use blast() */
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define CHUNK 16384
|
||||
|
||||
local unsigned inf(void *how, unsigned char **buf)
|
||||
{
|
||||
static unsigned char hold[CHUNK];
|
||||
|
||||
*buf = hold;
|
||||
return fread(hold, 1, CHUNK, (FILE *)how);
|
||||
}
|
||||
|
||||
local int outf(void *how, unsigned char *buf, unsigned len)
|
||||
{
|
||||
return fwrite(buf, 1, len, (FILE *)how) != len;
|
||||
}
|
||||
|
||||
/* Decompress a PKWare Compression Library stream from stdin to stdout */
|
||||
int main(void)
|
||||
{
|
||||
int ret;
|
||||
unsigned left;
|
||||
|
||||
/* decompress to stdout */
|
||||
left = 0;
|
||||
ret = blast(inf, stdin, outf, stdout, &left, NULL);
|
||||
if (ret != 0)
|
||||
fprintf(stderr, "blast error: %d\n", ret);
|
||||
|
||||
/* count any leftover bytes */
|
||||
while (getchar() != EOF)
|
||||
left++;
|
||||
if (left)
|
||||
fprintf(stderr, "blast warning: %u unused bytes of input\n", left);
|
||||
|
||||
/* return blast() error code */
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
Mark Adler madler@alumni.caltech.edu
|
||||
*/
|
||||
|
||||
#define local static /* for local function definitions */
|
||||
|
||||
/*
|
||||
* blast() decompresses the PKWare Data Compression Library (DCL) compressed
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
set(_blast_supported_components "shared" "static")
|
||||
|
||||
if(blast_FIND_COMPONENTS)
|
||||
foreach(_comp ${blast_FIND_COMPONENTS})
|
||||
if(NOT _comp IN_LIST _blast_supported_components)
|
||||
set(blast_FOUND False)
|
||||
set(blast_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}")
|
||||
endif(NOT _comp IN_LIST _blast_supported_components)
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/blast-${_comp}.cmake")
|
||||
endforeach(_comp ${blast_FIND_COMPONENTS})
|
||||
else(blast_FIND_COMPONENTS)
|
||||
foreach(_component_config IN LISTS _blast_supported_components)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/blast-${_component_config}.cmake")
|
||||
endforeach(_component_config IN LISTS _blast_supported_components)
|
||||
endif(blast_FIND_COMPONENTS)
|
||||
@@ -1,193 +0,0 @@
|
||||
# if we are built from with zlib, use this path's)
|
||||
if(DEFINED ZLIB_BUILD_BLAST)
|
||||
set(WORK_DIR ${zlib_BINARY_DIR})
|
||||
set(inst_setup zlib_install)
|
||||
else(DEFINED ZLIB_BUILD_BLAST)
|
||||
set(WORK_DIR ${blast_BINARY_DIR})
|
||||
set(inst_setup zlib_blast_install)
|
||||
set(ZLIB_ARG "-DZLIB_DIR=${ZLIB_DIR}")
|
||||
|
||||
add_test(
|
||||
NAME zlib_blast_install
|
||||
COMMAND ${CMAKE_COMMAND} --install ${blast_BINARY_DIR} --prefix
|
||||
${CMAKE_CURRENT_BINARY_DIR}/test_install --config $<CONFIG>
|
||||
WORKING_DIRECTORY ${blast_BINARY_DIR})
|
||||
|
||||
set_tests_properties(zlib_blast_install
|
||||
PROPERTIES
|
||||
FIXTURES_SETUP zlib_blast_install)
|
||||
endif(DEFINED ZLIB_BUILD_BLAST)
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/find_package_test.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/findpackage_test/CMakeLists.txt @ONLY)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_test.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test/CMakeLists.txt @ONLY)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_exclude_test.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test/CMakeLists.txt
|
||||
@ONLY)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/find_package_no_components_test.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test/CMakeLists.txt
|
||||
@ONLY)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/find_package_wrong_components_test.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test/CMakeLists.txt
|
||||
@ONLY)
|
||||
|
||||
# CMAKE_GENERATOR_PLATFORM doesn't work in the if
|
||||
set(GENERATOR ${CMAKE_GENERATOR_PLATFORM})
|
||||
|
||||
if(GENERATOR)
|
||||
set(PLATFORM "-A ${GENERATOR}")
|
||||
endif(GENERATOR)
|
||||
|
||||
#
|
||||
# findpackage_test
|
||||
#
|
||||
add_test(
|
||||
NAME zlib_blast_find_package_configure
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} ${PLATFORM}
|
||||
-B${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build
|
||||
-DCMAKE_BUILD_TYPE=$<CONFIG>
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
|
||||
--fresh
|
||||
-G "${CMAKE_GENERATOR}"
|
||||
-S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
|
||||
|
||||
add_test(
|
||||
NAME zlib_blast_find_package_build
|
||||
COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build)
|
||||
|
||||
set_tests_properties(
|
||||
zlib_blast_find_package_configure
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED ${inst_setup}
|
||||
FIXTURES_SETUP blast_fp_config)
|
||||
|
||||
set_tests_properties(zlib_blast_find_package_build
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED blast_fp_config)
|
||||
|
||||
#
|
||||
# add_subdirectory_test
|
||||
#
|
||||
add_test(
|
||||
NAME zlib_blast_add_subdirectory_configure
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} ${PLATFORM}
|
||||
-B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build
|
||||
-DCMAKE_BUILD_TYPE=$<CONFIG>
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
|
||||
--fresh
|
||||
-G "${CMAKE_GENERATOR}"
|
||||
-S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
|
||||
|
||||
add_test(
|
||||
NAME zlib_blast_add_subdirectory_build
|
||||
COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build)
|
||||
|
||||
set_tests_properties(
|
||||
zlib_blast_add_subdirectory_configure
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED ${inst_setup}
|
||||
FIXTURES_SETUP blast_as_config)
|
||||
|
||||
set_tests_properties(zlib_blast_add_subdirectory_build
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED blast_as_config)
|
||||
|
||||
#
|
||||
# add_subdirectory_exclude_test
|
||||
#
|
||||
add_test(
|
||||
NAME zlib_blast_add_subdirectory_exclude_configure
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} ${PLATFORM}
|
||||
-B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build
|
||||
-DCMAKE_BUILD_TYPE=$<CONFIG>
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
|
||||
--fresh
|
||||
-G "${CMAKE_GENERATOR}"
|
||||
-S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
|
||||
|
||||
add_test(
|
||||
NAME zlib_blast_add_subdirectory_exclude_build
|
||||
COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
|
||||
WORKING_DIRECTORY
|
||||
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build)
|
||||
|
||||
set_tests_properties(zlib_blast_add_subdirectory_exclude_configure
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED ${inst_setup}
|
||||
FIXTURES_SETUP blast_asx_config)
|
||||
|
||||
set_tests_properties(zlib_blast_add_subdirectory_exclude_build
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED blast_asx_config)
|
||||
|
||||
#
|
||||
# findpackage_no_components_test
|
||||
#
|
||||
add_test(
|
||||
NAME zlib_blast_find_package_no_components_configure
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} ${PLATFORM}
|
||||
-B${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test_build
|
||||
-DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
|
||||
--fresh
|
||||
-G "${CMAKE_GENERATOR}"
|
||||
-S${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test)
|
||||
|
||||
set_tests_properties(
|
||||
zlib_blast_find_package_no_components_configure
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED ${inst_setup})
|
||||
|
||||
if(NOT ZLIB_BLAST_BUILD_SHARED OR NOT ZLIB_BLAST_BUILD_STATIC)
|
||||
set_tests_properties(zlib_blast_find_package_no_components_configure
|
||||
PROPERTIES
|
||||
WILL_FAIL TRUE)
|
||||
endif(NOT ZLIB_BLAST_BUILD_SHARED OR NOT ZLIB_BLAST_BUILD_STATIC)
|
||||
|
||||
#
|
||||
# findpackage_wrong_components_test
|
||||
#
|
||||
add_test(
|
||||
NAME zlib_blast_find_package_wrong_components_configure
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} ${PLATFORM}
|
||||
-B${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test_build
|
||||
-DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
|
||||
--fresh
|
||||
-G "${CMAKE_GENERATOR}"
|
||||
-S${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test)
|
||||
|
||||
set_tests_properties(zlib_blast_find_package_wrong_components_configure
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED ${inst_setup}
|
||||
WILL_FAIL TRUE)
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
blast_find_package
|
||||
LANGUAGES C
|
||||
VERSION @blast_VERSION@)
|
||||
|
||||
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
|
||||
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
|
||||
option(ZLIB_BLAST_BUILD_TESTING "" @ZLIB_BLAST_BUILD_TESTING@)
|
||||
|
||||
add_subdirectory(@blast_SOURCE_DIR@
|
||||
${CMAKE_CURRENT_BINARY_DIR}/blast
|
||||
EXCLUDE_FROM_ALL)
|
||||
|
||||
set(BLAST_SRCS
|
||||
@blast_SOURCE_DIR@/blast-test.c)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_SHARED)
|
||||
add_executable(test_example ${BLAST_SRCS})
|
||||
target_link_libraries(test_example BLAST::BLAST)
|
||||
endif(ZLIB_BLAST_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_STATIC)
|
||||
add_executable(test_example_static ${BLAST_SRCS})
|
||||
target_link_libraries(test_example_static BLAST::BLASTSTATIC)
|
||||
endif(ZLIB_BLAST_BUILD_STATIC)
|
||||
@@ -1,25 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
blast_find_package
|
||||
LANGUAGES C
|
||||
VERSION @blast_VERSION@)
|
||||
|
||||
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
|
||||
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
|
||||
option(ZLIB_BLAST_BUILD_TESTING "" @ZLIB_BLAST_BUILD_TESTING@)
|
||||
|
||||
add_subdirectory(@blast_SOURCE_DIR@ ${CMAKE_CURRENT_BINARY_DIR}/blast)
|
||||
|
||||
set(BLAST_SRCS
|
||||
@blast_SOURCE_DIR@/blast-test.c)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_SHARED)
|
||||
add_executable(test_example ${BLAST_SRCS})
|
||||
target_link_libraries(test_example BLAST::BLAST)
|
||||
endif(ZLIB_BLAST_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_STATIC)
|
||||
add_executable(test_example_static ${BLAST_SRCS})
|
||||
target_link_libraries(test_example_static BLAST::BLASTSTATIC)
|
||||
endif(ZLIB_BLAST_BUILD_STATIC)
|
||||
@@ -1,24 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
blast_find_package
|
||||
LANGUAGES C
|
||||
VERSION @blast_VERSION@)
|
||||
|
||||
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
|
||||
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
|
||||
|
||||
find_package(blast REQUIRED CONFIG)
|
||||
|
||||
set(BLAST_SRCS
|
||||
@blast_SOURCE_DIR@/blast-test.c)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_SHARED)
|
||||
add_executable(test_example ${BLAST_SRCS})
|
||||
target_link_libraries(test_example BLAST::BLAST)
|
||||
endif(ZLIB_BLAST_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_STATIC)
|
||||
add_executable(test_example_static ${BLAST_SRCS})
|
||||
target_link_libraries(test_example_static BLAST::BLASTSTATIC)
|
||||
endif(ZLIB_BLAST_BUILD_STATIC)
|
||||
@@ -1,24 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
blast_find_package
|
||||
LANGUAGES C
|
||||
VERSION @blast_VERSION@)
|
||||
|
||||
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
|
||||
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
|
||||
|
||||
set(BLAST_SRCS
|
||||
@blast_SOURCE_DIR@/blast-test.c)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_SHARED)
|
||||
find_package(blast REQUIRED COMPONENTS shared CONFIG)
|
||||
add_executable(test_example ${BLAST_SRCS})
|
||||
target_link_libraries(test_example BLAST::BLAST)
|
||||
endif(ZLIB_BLAST_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_STATIC)
|
||||
find_package(blast REQUIRED COMPONENTS static CONFIG)
|
||||
add_executable(test_example_static ${BLAST_SRCS})
|
||||
target_link_libraries(test_example_static BLAST::BLASTSTATIC)
|
||||
endif(ZLIB_BLAST_BUILD_STATIC)
|
||||
@@ -1,24 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
blast_find_package
|
||||
LANGUAGES C
|
||||
VERSION @blast_VERSION@)
|
||||
|
||||
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
|
||||
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
|
||||
|
||||
find_package(blast REQUIRED COMPONENTS wrong CONFIG)
|
||||
|
||||
set(BLAST_SRCS
|
||||
@blast_SOURCE_DIR@/blast-test.c)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_SHARED)
|
||||
add_executable(test_example ${BLAST_SRCS})
|
||||
target_link_libraries(test_example BLAST::BLAST)
|
||||
endif(ZLIB_BLAST_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_BLAST_BUILD_STATIC)
|
||||
add_executable(test_example_static ${BLAST_SRCS})
|
||||
target_link_libraries(test_example_static BLAST::BLASTSTATIC)
|
||||
endif(ZLIB_BLAST_BUILD_STATIC)
|
||||
@@ -1,28 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
#CMAKE_ARGV0 = ${CMAKE_COMMAND}
|
||||
#CMAKE_ARGV1 = -P
|
||||
#CMAKE_ARGV2 = ${CMAKE_CURRENT_SOURCE_DIR}/tester.cmake
|
||||
#CMAKE_ARGV3 = "$<TARGET_FILE:blast-test>"
|
||||
#CMAKE_ARGV4 = "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
#CMAKE_ARGV5 = "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
||||
execute_process(COMMAND ${CMAKE_ARGV3}
|
||||
INPUT_FILE "${CMAKE_ARGV4}/test.pk"
|
||||
OUTPUT_FILE "${CMAKE_ARGV5}/output.txt"
|
||||
RESULT_VARIABLE RESULT)
|
||||
|
||||
if(RESULT)
|
||||
message(FATAL_ERROR "Command exitited with: ${RESULT}")
|
||||
endif(RESULT)
|
||||
|
||||
execute_process(COMMAND ${CMAKE_ARGV0} -E compare_files
|
||||
"${CMAKE_ARGV4}/test.txt"
|
||||
"${CMAKE_ARGV5}/output.txt"
|
||||
RESULT_VARIABLE RESULT)
|
||||
|
||||
file(REMOVE "${CMAKE_ARGV5}/output.txt")
|
||||
|
||||
if(RESULT)
|
||||
message(FATAL_ERROR "Files differ")
|
||||
endif(RESULT)
|
||||
@@ -1,67 +0,0 @@
|
||||
# check if we compile for IBM s390x
|
||||
#
|
||||
CHECK_C_SOURCE_COMPILES("
|
||||
#ifndef __s390x__
|
||||
#error
|
||||
#endif
|
||||
int main() {return 0;}
|
||||
" HAS_S390X_SUPPORT)
|
||||
|
||||
#
|
||||
# Check for IBM S390X - VX extensions
|
||||
#
|
||||
if(ZLIB_WITH_CRC32VX AND HAS_S390X_SUPPORT)
|
||||
# preset the compiler specific flags
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
||||
set(VGFMAFLAG "-fzvector")
|
||||
else()
|
||||
set(VGFMAFLAG "-mzarch")
|
||||
endif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
||||
|
||||
set(S390X_VX_TEST
|
||||
"#ifndef __s390x__ \n\
|
||||
#error \n\
|
||||
#endif \n\
|
||||
#include <vecintrin.h> \n\
|
||||
int main(void) { \
|
||||
unsigned long long a __attribute__((vector_size(16))) = { 0 }; \
|
||||
unsigned long long b __attribute__((vector_size(16))) = { 0 }; \
|
||||
unsigned char c __attribute__((vector_size(16))) = { 0 }; \
|
||||
c = vec_gfmsum_accum_128(a, b, c); \
|
||||
return c[0]; \
|
||||
}")
|
||||
|
||||
# cflags already contains a valid march
|
||||
set(CMAKE_REQUIRED_FLAGS "${VGFMAFLAG}")
|
||||
check_c_source_compiles("${S390X_VX_TEST}" HAS_S390X_VX_SUPPORT)
|
||||
unset(CMAKE_REQUIRED_FLAGS)
|
||||
|
||||
# or set march for our compile units
|
||||
if(NOT HAS_S390X_VX_SUPPORT)
|
||||
set(CMAKE_REQUIRED_FLAGS "${VGFMAFLAG} -march=z13")
|
||||
check_c_source_compiles("${S390X_VX_TEST}" HAS_Z13_S390X_VX_SUPPORT)
|
||||
unset(CMAKE_REQUIRED_FLAGS )
|
||||
list(APPEND VGFMAFLAG "-march=z13")
|
||||
endif(NOT HAS_S390X_VX_SUPPORT)
|
||||
|
||||
# prepare compiling for s390x
|
||||
if(HAS_S390X_VX_SUPPORT OR HAS_Z13_S390X_VX_SUPPORT)
|
||||
if(ZLIB_BUILD_SHARED)
|
||||
target_sources(zlib
|
||||
PRIVATE
|
||||
crc32_vx.c
|
||||
crc32_vx_hooks.h)
|
||||
target_compile_definitions(zlib PUBLIC -DHAVE_S390X_VX=1)
|
||||
endif(ZLIB_BUILD_SHARED)
|
||||
if(ZLIB_BUILD_STATIC)
|
||||
target_sources(zlibstatic
|
||||
PRIVATE
|
||||
crc32_vx.c
|
||||
crc32_vx_hooks.h)
|
||||
target_compile_definitions(zlibstatic PUBLIC -DHAVE_S390X_VX=1)
|
||||
endif(ZLIB_BUILD_STATIC)
|
||||
set_source_files_properties(
|
||||
crc32_vx.c
|
||||
PROPERTIES COMPILE_OPTIONS "${VGFMAFLAG}")
|
||||
endif(HAS_S390X_VX_SUPPORT OR HAS_Z13_S390X_VX_SUPPORT)
|
||||
endif(ZLIB_WITH_CRC32VX AND HAS_S390X_SUPPORT)
|
||||
@@ -1,9 +0,0 @@
|
||||
IBM Z mainframes starting from version z13 provide vector instructions, which
|
||||
allows vectorization of crc32. This extension is build by default when targeting
|
||||
ibm s390x. However this extension can disabled if desired:
|
||||
|
||||
# for configure build
|
||||
$ ./configure --disable-crcvx
|
||||
|
||||
# for cmake build
|
||||
$ cmake .. -DZLIB_CRC32VX=off
|
||||
@@ -1,254 +0,0 @@
|
||||
/*
|
||||
* Hardware-accelerated CRC-32 variants for Linux on z Systems
|
||||
*
|
||||
* Use the z/Architecture Vector Extension Facility to accelerate the
|
||||
* computing of bitreflected CRC-32 checksums.
|
||||
*
|
||||
* This CRC-32 implementation algorithm is bitreflected and processes
|
||||
* the least-significant bit first (Little-Endian).
|
||||
*
|
||||
* This code was originally written by Hendrik Brueckner
|
||||
* <brueckner@linux.vnet.ibm.com> for use in the Linux kernel and has been
|
||||
* relicensed under the zlib license.
|
||||
*/
|
||||
#define Z_ONCE
|
||||
#include "../../zutil.h"
|
||||
#include "crc32_vx_hooks.h"
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <vecintrin.h>
|
||||
#include <sys/auxv.h>
|
||||
|
||||
#ifdef __clang__
|
||||
# if ((__clang_major__ == 18) || (__clang_major__ == 19 && (__clang_minor__ < 1 || (__clang_minor__ == 1 && __clang_patchlevel__ < 2))))
|
||||
# error crc32_vx optimizations are broken due to compiler bug in Clang versions: 18.0.0 <= clang_version < 19.1.2. \
|
||||
Either disable the zlib crc32_vx optimization, or switch to another compiler/compiler version.
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define VX_MIN_LEN 64
|
||||
#define VX_ALIGNMENT 16L
|
||||
#define VX_ALIGN_MASK (VX_ALIGNMENT - 1)
|
||||
|
||||
typedef unsigned char uv16qi __attribute__((vector_size(16)));
|
||||
typedef unsigned int uv4si __attribute__((vector_size(16)));
|
||||
typedef unsigned long long uv2di __attribute__((vector_size(16)));
|
||||
|
||||
local uint32_t crc32_le_vgfm_16(uint32_t crc, const unsigned char *buf, size_t len) {
|
||||
/*
|
||||
* The CRC-32 constant block contains reduction constants to fold and
|
||||
* process particular chunks of the input data stream in parallel.
|
||||
*
|
||||
* For the CRC-32 variants, the constants are precomputed according to
|
||||
* these definitions:
|
||||
*
|
||||
* R1 = [(x4*128+32 mod P'(x) << 32)]' << 1
|
||||
* R2 = [(x4*128-32 mod P'(x) << 32)]' << 1
|
||||
* R3 = [(x128+32 mod P'(x) << 32)]' << 1
|
||||
* R4 = [(x128-32 mod P'(x) << 32)]' << 1
|
||||
* R5 = [(x64 mod P'(x) << 32)]' << 1
|
||||
* R6 = [(x32 mod P'(x) << 32)]' << 1
|
||||
*
|
||||
* The bitreflected Barret reduction constant, u', is defined as
|
||||
* the bit reversal of floor(x**64 / P(x)).
|
||||
*
|
||||
* where P(x) is the polynomial in the normal domain and the P'(x) is the
|
||||
* polynomial in the reversed (bitreflected) domain.
|
||||
*
|
||||
* CRC-32 (IEEE 802.3 Ethernet, ...) polynomials:
|
||||
*
|
||||
* P(x) = 0x04C11DB7
|
||||
* P'(x) = 0xEDB88320
|
||||
*/
|
||||
const uv16qi perm_le2be = {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; /* BE->LE mask */
|
||||
const uv2di r2r1 = {0x1C6E41596, 0x154442BD4}; /* R2, R1 */
|
||||
const uv2di r4r3 = {0x0CCAA009E, 0x1751997D0}; /* R4, R3 */
|
||||
const uv2di r5 = {0, 0x163CD6124}; /* R5 */
|
||||
const uv2di ru_poly = {0, 0x1F7011641}; /* u' */
|
||||
const uv2di crc_poly = {0, 0x1DB710641}; /* P'(x) << 1 */
|
||||
|
||||
/*
|
||||
* Load the initial CRC value.
|
||||
*
|
||||
* The CRC value is loaded into the rightmost word of the
|
||||
* vector register and is later XORed with the LSB portion
|
||||
* of the loaded input data.
|
||||
*/
|
||||
uv2di v0 = {0, 0};
|
||||
v0 = (uv2di)vec_insert(crc, (uv4si)v0, 3);
|
||||
|
||||
/* Load a 64-byte data chunk and XOR with CRC */
|
||||
uv2di v1 = vec_perm(((uv2di *)buf)[0], ((uv2di *)buf)[0], perm_le2be);
|
||||
uv2di v2 = vec_perm(((uv2di *)buf)[1], ((uv2di *)buf)[1], perm_le2be);
|
||||
uv2di v3 = vec_perm(((uv2di *)buf)[2], ((uv2di *)buf)[2], perm_le2be);
|
||||
uv2di v4 = vec_perm(((uv2di *)buf)[3], ((uv2di *)buf)[3], perm_le2be);
|
||||
|
||||
v1 ^= v0;
|
||||
buf += 64;
|
||||
len -= 64;
|
||||
|
||||
while (len >= 64) {
|
||||
/* Load the next 64-byte data chunk */
|
||||
uv16qi part1 = vec_perm(((uv16qi *)buf)[0], ((uv16qi *)buf)[0], perm_le2be);
|
||||
uv16qi part2 = vec_perm(((uv16qi *)buf)[1], ((uv16qi *)buf)[1], perm_le2be);
|
||||
uv16qi part3 = vec_perm(((uv16qi *)buf)[2], ((uv16qi *)buf)[2], perm_le2be);
|
||||
uv16qi part4 = vec_perm(((uv16qi *)buf)[3], ((uv16qi *)buf)[3], perm_le2be);
|
||||
|
||||
/*
|
||||
* Perform a GF(2) multiplication of the doublewords in V1 with
|
||||
* the R1 and R2 reduction constants in V0. The intermediate result
|
||||
* is then folded (accumulated) with the next data chunk in PART1 and
|
||||
* stored in V1. Repeat this step for the register contents
|
||||
* in V2, V3, and V4 respectively.
|
||||
*/
|
||||
v1 = (uv2di)vec_gfmsum_accum_128(r2r1, v1, part1);
|
||||
v2 = (uv2di)vec_gfmsum_accum_128(r2r1, v2, part2);
|
||||
v3 = (uv2di)vec_gfmsum_accum_128(r2r1, v3, part3);
|
||||
v4 = (uv2di)vec_gfmsum_accum_128(r2r1, v4, part4);
|
||||
|
||||
buf += 64;
|
||||
len -= 64;
|
||||
}
|
||||
|
||||
/*
|
||||
* Fold V1 to V4 into a single 128-bit value in V1. Multiply V1 with R3
|
||||
* and R4 and accumulating the next 128-bit chunk until a single 128-bit
|
||||
* value remains.
|
||||
*/
|
||||
v1 = (uv2di)vec_gfmsum_accum_128(r4r3, v1, (uv16qi)v2);
|
||||
v1 = (uv2di)vec_gfmsum_accum_128(r4r3, v1, (uv16qi)v3);
|
||||
v1 = (uv2di)vec_gfmsum_accum_128(r4r3, v1, (uv16qi)v4);
|
||||
|
||||
while (len >= 16) {
|
||||
/* Load next data chunk */
|
||||
v2 = vec_perm(*(uv2di *)buf, *(uv2di *)buf, perm_le2be);
|
||||
|
||||
/* Fold next data chunk */
|
||||
v1 = (uv2di)vec_gfmsum_accum_128(r4r3, v1, (uv16qi)v2);
|
||||
|
||||
buf += 16;
|
||||
len -= 16;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set up a vector register for byte shifts. The shift value must
|
||||
* be loaded in bits 1-4 in byte element 7 of a vector register.
|
||||
* Shift by 8 bytes: 0x40
|
||||
* Shift by 4 bytes: 0x20
|
||||
*/
|
||||
uv16qi v9 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
v9 = vec_insert((unsigned char)0x40, v9, 7);
|
||||
|
||||
/*
|
||||
* Prepare V0 for the next GF(2) multiplication: shift V0 by 8 bytes
|
||||
* to move R4 into the rightmost doubleword and set the leftmost
|
||||
* doubleword to 0x1.
|
||||
*/
|
||||
v0 = vec_srb(r4r3, (uv2di)v9);
|
||||
v0[0] = 1;
|
||||
|
||||
/*
|
||||
* Compute GF(2) product of V1 and V0. The rightmost doubleword
|
||||
* of V1 is multiplied with R4. The leftmost doubleword of V1 is
|
||||
* multiplied by 0x1 and is then XORed with rightmost product.
|
||||
* Implicitly, the intermediate leftmost product becomes padded
|
||||
*/
|
||||
v1 = (uv2di)vec_gfmsum_128(v0, v1);
|
||||
|
||||
/*
|
||||
* Now do the final 32-bit fold by multiplying the rightmost word
|
||||
* in V1 with R5 and XOR the result with the remaining bits in V1.
|
||||
*
|
||||
* To achieve this by a single VGFMAG, right shift V1 by a word
|
||||
* and store the result in V2 which is then accumulated. Use the
|
||||
* vector unpack instruction to load the rightmost half of the
|
||||
* doubleword into the rightmost doubleword element of V1; the other
|
||||
* half is loaded in the leftmost doubleword.
|
||||
* The vector register with CONST_R5 contains the R5 constant in the
|
||||
* rightmost doubleword and the leftmost doubleword is zero to ignore
|
||||
* the leftmost product of V1.
|
||||
*/
|
||||
v9 = vec_insert((unsigned char)0x20, v9, 7);
|
||||
v2 = vec_srb(v1, (uv2di)v9);
|
||||
v1 = vec_unpackl((uv4si)v1); /* Split rightmost doubleword */
|
||||
v1 = (uv2di)vec_gfmsum_accum_128(r5, v1, (uv16qi)v2);
|
||||
|
||||
/*
|
||||
* Apply a Barret reduction to compute the final 32-bit CRC value.
|
||||
*
|
||||
* The input values to the Barret reduction are the degree-63 polynomial
|
||||
* in V1 (R(x)), degree-32 generator polynomial, and the reduction
|
||||
* constant u. The Barret reduction result is the CRC value of R(x) mod
|
||||
* P(x).
|
||||
*
|
||||
* The Barret reduction algorithm is defined as:
|
||||
*
|
||||
* 1. T1(x) = floor( R(x) / x^32 ) GF2MUL u
|
||||
* 2. T2(x) = floor( T1(x) / x^32 ) GF2MUL P(x)
|
||||
* 3. C(x) = R(x) XOR T2(x) mod x^32
|
||||
*
|
||||
* Note: The leftmost doubleword of vector register containing
|
||||
* CONST_RU_POLY is zero and, thus, the intermediate GF(2) product
|
||||
* is zero and does not contribute to the final result.
|
||||
*/
|
||||
|
||||
/* T1(x) = floor( R(x) / x^32 ) GF2MUL u */
|
||||
v2 = vec_unpackl((uv4si)v1);
|
||||
v2 = (uv2di)vec_gfmsum_128(ru_poly, v2);
|
||||
|
||||
/*
|
||||
* Compute the GF(2) product of the CRC polynomial with T1(x) in
|
||||
* V2 and XOR the intermediate result, T2(x), with the value in V1.
|
||||
* The final result is stored in word element 2 of V2.
|
||||
*/
|
||||
v2 = vec_unpackl((uv4si)v2);
|
||||
v2 = (uv2di)vec_gfmsum_accum_128(crc_poly, v2, (uv16qi)v1);
|
||||
|
||||
return ((uv4si)v2)[2];
|
||||
}
|
||||
|
||||
|
||||
local unsigned long s390_crc32_vx(unsigned long crc, const unsigned char FAR *buf, z_size_t len)
|
||||
{
|
||||
uintptr_t prealign, aligned, remaining;
|
||||
|
||||
if (buf == Z_NULL) return 0UL;
|
||||
|
||||
if (len < VX_MIN_LEN + VX_ALIGN_MASK)
|
||||
return crc32_z(crc, buf, len);
|
||||
|
||||
if ((uintptr_t)buf & VX_ALIGN_MASK) {
|
||||
prealign = VX_ALIGNMENT - ((uintptr_t)buf & VX_ALIGN_MASK);
|
||||
len -= prealign;
|
||||
crc = crc32_z(crc, buf, prealign);
|
||||
buf += prealign;
|
||||
}
|
||||
aligned = len & ~VX_ALIGN_MASK;
|
||||
remaining = len & VX_ALIGN_MASK;
|
||||
|
||||
crc = crc32_le_vgfm_16(crc ^ 0xffffffff, buf, (size_t)aligned) ^ 0xffffffff;
|
||||
|
||||
if (remaining)
|
||||
crc = crc32_z(crc, buf + aligned, remaining);
|
||||
|
||||
return crc;
|
||||
}
|
||||
|
||||
local z_once_t s390_crc32_made = Z_ONCE_INIT;
|
||||
local void s390_crc32_setup() {
|
||||
unsigned long hwcap = getauxval(AT_HWCAP);
|
||||
|
||||
if (hwcap & HWCAP_S390_VX)
|
||||
crc32_z_hook = s390_crc32_vx;
|
||||
else
|
||||
crc32_z_hook = crc32_z;
|
||||
}
|
||||
|
||||
local unsigned long s390_crc32_init(unsigned long crc, const unsigned char FAR *buf, z_size_t len)
|
||||
{
|
||||
z_once(&s390_crc32_made,s390_crc32_setup);
|
||||
return crc32_z_hook(crc, buf, len);
|
||||
}
|
||||
|
||||
ZLIB_INTERNAL unsigned long (*crc32_z_hook)(unsigned long crc, const unsigned char FAR *buf, z_size_t len) = s390_crc32_init;
|
||||
@@ -1,9 +0,0 @@
|
||||
#ifndef CRC32_VX_HOOKS_H
|
||||
#define CRC32_VX_HOOKS_H
|
||||
|
||||
/**
|
||||
* CRC HOOKS
|
||||
*/
|
||||
ZLIB_INTERNAL extern unsigned long (*crc32_z_hook)(unsigned long crc, const unsigned char FAR *buf, z_size_t len);
|
||||
|
||||
#endif /* CRC32_VX_HOOKS_H */
|
||||
@@ -152,7 +152,7 @@ procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer;
|
||||
const OutBuf: Pointer; BufSize: Integer);
|
||||
|
||||
const
|
||||
zlib_version = '1.3.2';
|
||||
zlib_version = '1.3.1';
|
||||
|
||||
type
|
||||
EZlibError = class(Exception);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © Copyright Henrik Ravn 2004
|
||||
//
|
||||
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © Copyright Henrik Ravn 2004
|
||||
//
|
||||
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © Copyright Henrik Ravn 2004
|
||||
//
|
||||
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © Copyright Henrik Ravn 2004
|
||||
//
|
||||
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © Copyright Henrik Ravn 2004
|
||||
//
|
||||
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © Copyright Henrik Ravn 2004
|
||||
//
|
||||
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © Copyright Henrik Ravn 2004
|
||||
//
|
||||
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © Copyright Henrik Ravn 2004
|
||||
//
|
||||
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
using System;
|
||||
@@ -17,7 +17,7 @@ using NUnit.Framework;
|
||||
// Unit tests for the DotZLib class library
|
||||
// ----------------------------------------
|
||||
//
|
||||
// Use this with NUnit 2 from https://www.nunit.org
|
||||
// Use this with NUnit 2 from http://www.nunit.org
|
||||
//
|
||||
|
||||
namespace DotZLibTests
|
||||
@@ -156,7 +156,7 @@ namespace DotZLibTests
|
||||
public void Info_Version()
|
||||
{
|
||||
Info info = new Info();
|
||||
Assert.AreEqual("1.3.2", Info.Version);
|
||||
Assert.AreEqual("1.3.1", Info.Version);
|
||||
Assert.AreEqual(32, info.SizeOfUInt);
|
||||
Assert.AreEqual(32, info.SizeOfULong);
|
||||
Assert.AreEqual(32, info.SizeOfPointer);
|
||||
|
||||
@@ -55,4 +55,4 @@ Build instructions:
|
||||
Copyright (c) Henrik Ravn 2004
|
||||
|
||||
Use, modification and distribution are subject to the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
|
||||
(See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
enable_language(ASM)
|
||||
|
||||
# Need to push CMAKE_ASM_COMPILE_OBJECT to cache as otherwise it's not
|
||||
# available in top-level
|
||||
|
||||
set(CMAKE_ASM_COMPILE_OBJECT ${CMAKE_ASM_COMPILE_OBJECT} CACHE INTERNAL "" FORCE)
|
||||
|
||||
if(MSVC)
|
||||
#cmake 4.1 doesn't consider cl an asm compiler
|
||||
cmake_policy(SET CMP0194 NEW)
|
||||
endif(MSVC)
|
||||
|
||||
if(ZLIB_BUILD_SHARED)
|
||||
target_sources(zlib PRIVATE gvmat64.S)
|
||||
endif(ZLIB_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_BUILD_STATIC)
|
||||
target_sources(zlibstatic PRIVATE gvmat64.S)
|
||||
endif(ZLIB_BUILD_STATIC)
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,19 +0,0 @@
|
||||
if(ZLIB_BUILD_SHARED)
|
||||
target_sources(zlib
|
||||
PRIVATE
|
||||
infback9.c
|
||||
inftree9.c
|
||||
infback9.h
|
||||
inffix9.h
|
||||
inftree9.h)
|
||||
endif(ZLIB_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_BUILD_STATIC)
|
||||
target_sources(zlibstatic
|
||||
PRIVATE
|
||||
infback9.c
|
||||
inftree9.c
|
||||
infback9.h
|
||||
inffix9.h
|
||||
inftree9.h)
|
||||
endif(ZLIB_BUILD_STATIC)
|
||||
@@ -293,7 +293,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
mode = TABLE;
|
||||
break;
|
||||
case 3:
|
||||
strm->msg = (z_const char *)"invalid block type";
|
||||
strm->msg = (char *)"invalid block type";
|
||||
mode = BAD;
|
||||
}
|
||||
DROPBITS(2);
|
||||
@@ -304,7 +304,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
BYTEBITS(); /* go to byte boundary */
|
||||
NEEDBITS(32);
|
||||
if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
|
||||
strm->msg = (z_const char *)"invalid stored block lengths";
|
||||
strm->msg = (char *)"invalid stored block lengths";
|
||||
mode = BAD;
|
||||
break;
|
||||
}
|
||||
@@ -341,7 +341,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
state->ncode = BITS(4) + 4;
|
||||
DROPBITS(4);
|
||||
if (state->nlen > 286) {
|
||||
strm->msg = (z_const char *)"too many length symbols";
|
||||
strm->msg = (char *)"too many length symbols";
|
||||
mode = BAD;
|
||||
break;
|
||||
}
|
||||
@@ -362,7 +362,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
ret = inflate_table9(CODES, state->lens, 19, &(state->next),
|
||||
&(lenbits), state->work);
|
||||
if (ret) {
|
||||
strm->msg = (z_const char *)"invalid code lengths set";
|
||||
strm->msg = (char *)"invalid code lengths set";
|
||||
mode = BAD;
|
||||
break;
|
||||
}
|
||||
@@ -386,7 +386,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
NEEDBITS(here.bits + 2);
|
||||
DROPBITS(here.bits);
|
||||
if (state->have == 0) {
|
||||
strm->msg = (z_const char *)"invalid bit length repeat";
|
||||
strm->msg = (char *)"invalid bit length repeat";
|
||||
mode = BAD;
|
||||
break;
|
||||
}
|
||||
@@ -409,7 +409,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
DROPBITS(7);
|
||||
}
|
||||
if (state->have + copy > state->nlen + state->ndist) {
|
||||
strm->msg = (z_const char *)"invalid bit length repeat";
|
||||
strm->msg = (char *)"invalid bit length repeat";
|
||||
mode = BAD;
|
||||
break;
|
||||
}
|
||||
@@ -423,7 +423,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
|
||||
/* check for end-of-block code (better have one) */
|
||||
if (state->lens[256] == 0) {
|
||||
strm->msg = (z_const char *)"invalid code -- missing end-of-block";
|
||||
strm->msg = (char *)"invalid code -- missing end-of-block";
|
||||
mode = BAD;
|
||||
break;
|
||||
}
|
||||
@@ -437,7 +437,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
ret = inflate_table9(LENS, state->lens, state->nlen,
|
||||
&(state->next), &(lenbits), state->work);
|
||||
if (ret) {
|
||||
strm->msg = (z_const char *)"invalid literal/lengths set";
|
||||
strm->msg = (char *)"invalid literal/lengths set";
|
||||
mode = BAD;
|
||||
break;
|
||||
}
|
||||
@@ -447,7 +447,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
state->ndist, &(state->next), &(distbits),
|
||||
state->work);
|
||||
if (ret) {
|
||||
strm->msg = (z_const char *)"invalid distances set";
|
||||
strm->msg = (char *)"invalid distances set";
|
||||
mode = BAD;
|
||||
break;
|
||||
}
|
||||
@@ -495,7 +495,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
|
||||
/* invalid code */
|
||||
if (here.op & 64) {
|
||||
strm->msg = (z_const char *)"invalid literal/length code";
|
||||
strm->msg = (char *)"invalid literal/length code";
|
||||
mode = BAD;
|
||||
break;
|
||||
}
|
||||
@@ -527,7 +527,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
}
|
||||
DROPBITS(here.bits);
|
||||
if (here.op & 64) {
|
||||
strm->msg = (z_const char *)"invalid distance code";
|
||||
strm->msg = (char *)"invalid distance code";
|
||||
mode = BAD;
|
||||
break;
|
||||
}
|
||||
@@ -541,7 +541,7 @@ int ZEXPORT inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,
|
||||
DROPBITS(extra);
|
||||
}
|
||||
if (offset > WSIZE - (wrap ? 0: left)) {
|
||||
strm->msg = (z_const char *)"invalid distance too far back";
|
||||
strm->msg = (char *)"invalid distance too far back";
|
||||
mode = BAD;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* inftree9.c -- generate Huffman trees for efficient decoding
|
||||
* Copyright (C) 1995-2026 Mark Adler
|
||||
* Copyright (C) 1995-2024 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#define MAXBITS 15
|
||||
|
||||
const char inflate9_copyright[] =
|
||||
" inflate9 1.3.2 Copyright 1995-2026 Mark Adler ";
|
||||
" inflate9 1.3.1 Copyright 1995-2024 Mark Adler ";
|
||||
/*
|
||||
If you use the zlib library in a product, an acknowledgment is welcome
|
||||
in the documentation of your product. If for some reason you cannot
|
||||
@@ -59,7 +59,7 @@ int inflate_table9(codetype type, unsigned short FAR *lens, unsigned codes,
|
||||
static const unsigned short lext[31] = { /* Length codes 257..285 extra */
|
||||
128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129,
|
||||
130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132,
|
||||
133, 133, 133, 133, 144, 199, 75};
|
||||
133, 133, 133, 133, 144, 203, 77};
|
||||
static const unsigned short dbase[32] = { /* Distance codes 0..31 base */
|
||||
1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49,
|
||||
65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073,
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* Christian Michelsen Research AS
|
||||
* Advanced Computing
|
||||
* Fantoftvegen 38, 5036 BERGEN, Norway
|
||||
* http://www.cmr.no
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
|
||||
@@ -1,200 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
iostreamV3
|
||||
VERSION 1.0.0
|
||||
LANGUAGES CXX
|
||||
DESCRIPTION "A library for using C++ IOStreams with zlib V3"
|
||||
HOMEPAGE_URL "https://www.zlib.net")
|
||||
|
||||
option(ZLIB_IOSTREAM3_BUILD_SHARED "Enable building blast shared library" ON)
|
||||
option(ZLIB_IOSTREAM3_BUILD_STATIC "Enable building blast static library" ON)
|
||||
option(ZLIB_IOSTREAM3_BUILD_TESTING "Enable building tests for blast" ON)
|
||||
option(ZLIB_IOSTREAM3_INSTALL "Enable installation of iostream" ON)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
if(NOT DEFINED ZLIB_BUILD_IOSTREAM3)
|
||||
if(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
list(APPEND REQUIRED_COMPONENTS "shared")
|
||||
endif(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
list(APPEND REQUIRED_COMPONENTS "static")
|
||||
endif(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
|
||||
find_package(ZLIB REQUIRED COMPONENTS ${REQUIRED_COMPONENTS} CONFIG)
|
||||
endif(NOT DEFINED ZLIB_BUILD_IOSTREAM3)
|
||||
|
||||
if(WIN32 OR CYGWIN)
|
||||
set(zlibIOStream3_static_suffix "s")
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
endif(WIN32 OR CYGWIN)
|
||||
|
||||
|
||||
function(iostreamv3_findTestEnv testName)
|
||||
set(testEnv "PATH=")
|
||||
|
||||
if(MSVC OR MINGW)
|
||||
set(separator "\\\;")
|
||||
else()
|
||||
set(separator ":")
|
||||
endif()
|
||||
|
||||
string(APPEND testEnv "$<TARGET_FILE_DIR:zlib_iostream3_iostreamv3>${separator}")
|
||||
string(APPEND testEnv "$<TARGET_FILE_DIR:ZLIB::ZLIB>${separator}")
|
||||
string(APPEND testEnv "$ENV{PATH}")
|
||||
|
||||
set_tests_properties(${testName} PROPERTIES ENVIRONMENT "${testEnv}")
|
||||
endfunction(iostreamv3_findTestEnv testName)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
add_library(zlib_iostream3_iostreamv3 SHARED
|
||||
zfstream.cc
|
||||
zfstream.h)
|
||||
|
||||
add_library(IOSTREAMV3::IOSTREAMV3 ALIAS zlib_iostream3_iostreamv3)
|
||||
|
||||
if(NOT CYGWIN)
|
||||
set_target_properties(zlib_iostream3_iostreamv3
|
||||
PROPERTIES
|
||||
SOVERSION ${iostreamV3_VERSION_MAJOR}
|
||||
VERSION ${iostreamV3_VERSION})
|
||||
endif(NOT CYGWIN)
|
||||
|
||||
set_target_properties(zlib_iostream3_iostreamv3
|
||||
PROPERTIES
|
||||
EXPORT_NAME IOSTREAMV3
|
||||
OUTPUT_NAME iostream3)
|
||||
|
||||
target_link_libraries(zlib_iostream3_iostreamv3
|
||||
PUBLIC ZLIB::ZLIB)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_TESTING)
|
||||
enable_testing()
|
||||
|
||||
add_executable(zlib_iostream3_test test.cc zfstream.h)
|
||||
|
||||
target_link_libraries(zlib_iostream3_test
|
||||
PRIVATE zlib_iostream3_iostreamv3)
|
||||
|
||||
add_test(NAME zlib_iostream3_test COMMAND zlib_iostream3_test)
|
||||
|
||||
set_tests_properties(zlib_iostream3_test
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED zlib_iostream3_cleanup)
|
||||
|
||||
if(MSVC
|
||||
OR MSYS
|
||||
OR MINGW
|
||||
OR CYGWIN)
|
||||
iostreamv3_findtestenv(zlib_iostream3_test)
|
||||
endif(
|
||||
MSVC
|
||||
OR MSYS
|
||||
OR MINGW
|
||||
OR CYGWIN)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_TESTING)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
add_library(zlib_iostream3_iostreamv3Static STATIC
|
||||
zfstream.cc
|
||||
zfstream.h)
|
||||
|
||||
add_library(IOSTREAMV3::IOSTREAMV3STATIC
|
||||
ALIAS zlib_iostream3_iostreamv3Static)
|
||||
|
||||
target_link_libraries(zlib_iostream3_iostreamv3Static
|
||||
PUBLIC ZLIB::ZLIBSTATIC)
|
||||
|
||||
set_target_properties(zlib_iostream3_iostreamv3Static
|
||||
PROPERTIES
|
||||
EXPORT_NAME IOSTREAMV3STATIC
|
||||
OUTPUT_NAME iostream3${zlib_IOStream3_static_suffix})
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_TESTING)
|
||||
enable_testing()
|
||||
|
||||
add_executable(zlib_iostream3_testStatic test.cc zfstream.h)
|
||||
|
||||
target_link_libraries(zlib_iostream3_testStatic
|
||||
PRIVATE zlib_iostream3_iostreamv3Static)
|
||||
|
||||
add_test(NAME zlib_iostream3_testStatic
|
||||
COMMAND zlib_iostream3_testStatic)
|
||||
|
||||
set_tests_properties(zlib_iostream3_testStatic
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED zlib_iostream3_cleanup)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_TESTING)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_TESTING)
|
||||
add_test(NAME zlib_iostream3_cleanup COMMAND ${CMAKE_COMMAND} -E rm
|
||||
${CMAKE_CURRENT_BINARY_DIR}/test1.txt.gz
|
||||
${CMAKE_CURRENT_BINARY_DIR}/test2.txt.gz)
|
||||
|
||||
set_tests_properties(zlib_iostream3_cleanup
|
||||
PROPERTIES
|
||||
FIXTURES_CLEANUP zlib_iostream3_cleanup)
|
||||
|
||||
add_subdirectory(test)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_TESTING)
|
||||
|
||||
if(ZLIB_IOSTREAM3_INSTALL)
|
||||
if(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
install(
|
||||
TARGETS zlib_iostream3_iostreamv3
|
||||
COMPONENT Runtime
|
||||
EXPORT zlibiostream3SharedExport
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
install(
|
||||
EXPORT zlibiostream3SharedExport
|
||||
FILE iostreamv3-shared.cmake
|
||||
NAMESPACE IOSTREAMV3::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3)
|
||||
|
||||
if(MSVC)
|
||||
install(
|
||||
FILES $<TARGET_PDB_FILE:zlib_iostream3_iostreamv3>
|
||||
COMPONENT Development
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
CONFIGURATIONS Debug OR RelWithDebInfo
|
||||
OPTIONAL)
|
||||
endif(MSVC)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
install(
|
||||
TARGETS zlib_iostream3_iostreamv3Static
|
||||
COMPONENT Development
|
||||
EXPORT iostream3StaticExport
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
install(
|
||||
EXPORT iostream3StaticExport
|
||||
FILE iostreamv3-static.cmake
|
||||
NAMESPACE IOSTREAMV3::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
|
||||
configure_package_config_file(
|
||||
${iostreamV3_SOURCE_DIR}/iostream3Config.cmake.in
|
||||
${iostreamV3_BINARY_DIR}/iostreamv3Config.cmake
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3)
|
||||
|
||||
write_basic_package_version_file(
|
||||
"${iostreamV3_BINARY_DIR}/iostreamv3ConfigVersion.cmake"
|
||||
VERSION "${iostream3_VERSION}"
|
||||
COMPATIBILITY AnyNewerVersion)
|
||||
|
||||
install(FILES ${iostreamV3_BINARY_DIR}/iostreamv3Config.cmake
|
||||
${iostreamV3_BINARY_DIR}/iostreamv3ConfigVersion.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3)
|
||||
install(
|
||||
FILES zfstream.h
|
||||
COMPONENT Development
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
endif(ZLIB_IOSTREAM3_INSTALL)
|
||||
@@ -1,23 +0,0 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
set(_iostreamv3_supported_components "shared" "static")
|
||||
include(CMakeFindDependencyMacro)
|
||||
|
||||
if(iostreamv3_FIND_COMPONENTS)
|
||||
find_dependency(ZLIB CONFIG COMPONENTS ${iostreamv3_FIND_COMPONENTS})
|
||||
|
||||
foreach(_comp ${iostreamv3_FIND_COMPONENTS})
|
||||
if(NOT _comp IN_LIST _iostreamv3_supported_components)
|
||||
set(iostreamv3_FOUND False)
|
||||
set(iostreamv3_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}")
|
||||
endif(NOT _comp IN_LIST _iostreamv3_supported_components)
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/iostreamv3-${_comp}.cmake")
|
||||
endforeach(_comp ${iostreamv3_FIND_COMPONENTS})
|
||||
else(iostream3_FIND_COMPONENTS)
|
||||
find_dependency(ZLIB CONFIG)
|
||||
|
||||
foreach(_component_config IN LISTS _iostreamv3_supported_components)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/iostreamv3-${_component_config}.cmake")
|
||||
endforeach(_component_config IN LISTS _iostreamv3_supported_components)
|
||||
endif(iostreamv3_FIND_COMPONENTS)
|
||||
@@ -1,191 +0,0 @@
|
||||
# if we are built from with zlib, use this path's)
|
||||
if(DEFINED ZLIB_BUILD_IOSTREAM3)
|
||||
set(WORK_DIR ${zlib_BINARY_DIR})
|
||||
set(inst_setup zlib_install)
|
||||
else(DEFINED ZLIB_BUILD_IOSTREAM3)
|
||||
set(WORK_DIR ${iostreamV3_BINARY_DIR})
|
||||
set(inst_setup zlib_iostream3_install)
|
||||
set(ZLIB_ARG "-DZLIB_DIR=${ZLIB_DIR}")
|
||||
|
||||
add_test(
|
||||
NAME zlib_iostream3_install
|
||||
COMMAND ${CMAKE_COMMAND} --install ${iostreamV3_BINARY_DIR} --prefix
|
||||
${CMAKE_CURRENT_BINARY_DIR}/test_install --config $<CONFIG>
|
||||
WORKING_DIRECTORY ${iostreamV3_BINARY_DIR})
|
||||
|
||||
set_tests_properties(zlib_iostream3_install
|
||||
PROPERTIES
|
||||
FIXTURES_SETUP zlib_iostream3_install)
|
||||
endif(DEFINED ZLIB_BUILD_IOSTREAM3)
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/find_package_test.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/findpackage_test/CMakeLists.txt @ONLY)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_test.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test/CMakeLists.txt @ONLY)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_exclude_test.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test/CMakeLists.txt
|
||||
@ONLY)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/find_package_no_components_test.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test/CMakeLists.txt
|
||||
@ONLY)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/find_package_wrong_components_test.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test/CMakeLists.txt
|
||||
@ONLY)
|
||||
|
||||
# CMAKE_GENERATOR_PLATFORM doesn't work in the if
|
||||
set(GENERATOR ${CMAKE_GENERATOR_PLATFORM})
|
||||
|
||||
if(GENERATOR)
|
||||
set(PLATFORM "-A ${GENERATOR}")
|
||||
endif(GENERATOR)
|
||||
|
||||
#
|
||||
# findpackage_test
|
||||
#
|
||||
add_test(
|
||||
NAME zlib_iostream3_find_package_configure
|
||||
COMMAND
|
||||
${CMAKE_COMMAND}
|
||||
${PLATFORM}
|
||||
-B${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build
|
||||
-DCMAKE_BUILD_TYPE=$<CONFIG>
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
|
||||
--fresh
|
||||
-G "${CMAKE_GENERATOR}"
|
||||
-S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
|
||||
|
||||
add_test(
|
||||
NAME zlib_iostream3_find_package_build
|
||||
COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build)
|
||||
|
||||
set_tests_properties(zlib_iostream3_find_package_configure
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED ${inst_setup}
|
||||
FIXTURES_SETUP iostream3_fp_config)
|
||||
|
||||
set_tests_properties(zlib_iostream3_find_package_build
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED iostream3_fp_config)
|
||||
|
||||
#
|
||||
# add_subdirectory_test
|
||||
#
|
||||
add_test(
|
||||
NAME zlib_iostream3_add_subdirectory_configure
|
||||
COMMAND
|
||||
${CMAKE_COMMAND}
|
||||
${PLATFORM}
|
||||
-B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build
|
||||
-DCMAKE_BUILD_TYPE=$<CONFIG>
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install
|
||||
${ZLIB_ARG}
|
||||
--fresh
|
||||
-G "${CMAKE_GENERATOR}"
|
||||
-S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
|
||||
|
||||
add_test(
|
||||
NAME zlib_iostream3_add_subdirectory_build
|
||||
COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build)
|
||||
|
||||
set_tests_properties(zlib_iostream3_add_subdirectory_configure
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED ${inst_setup}
|
||||
FIXTURES_SETUP iostream3as_config)
|
||||
|
||||
set_tests_properties(zlib_iostream3_add_subdirectory_build
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED iostream3_as_config)
|
||||
|
||||
#
|
||||
# add_subdirectory_exclude_test
|
||||
#
|
||||
add_test(
|
||||
NAME zlib_iostream3_add_subdirectory_exclude_configure
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} ${PLATFORM}
|
||||
-B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build
|
||||
-DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
|
||||
--fresh
|
||||
-G "${CMAKE_GENERATOR}"
|
||||
-S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
|
||||
|
||||
add_test(
|
||||
NAME zlib_iostream3_add_subdirectory_exclude_build
|
||||
COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
|
||||
WORKING_DIRECTORY
|
||||
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build)
|
||||
|
||||
set_tests_properties(zlib_iostream3_add_subdirectory_exclude_configure
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED ${inst_setup}
|
||||
FIXTURES_SETUP iostream3_asx_config)
|
||||
|
||||
set_tests_properties(zlib_iostream3_add_subdirectory_exclude_build
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED iostream3_asx_config)
|
||||
|
||||
#
|
||||
# findpackage_no_components_test
|
||||
#
|
||||
add_test(
|
||||
NAME zlib_iostream3_find_package_no_components_configure
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} ${PLATFORM}
|
||||
-B${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test_build
|
||||
-DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
|
||||
--fresh
|
||||
-G "${CMAKE_GENERATOR}"
|
||||
-S${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test)
|
||||
|
||||
set_tests_properties(zlib_iostream3_find_package_no_components_configure
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED ${inst_setup})
|
||||
|
||||
if(NOT ZLIB_IOSTREAM3_BUILD_SHARED OR NOT ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
set_tests_properties(zlib_iostream3_find_package_no_components_configure
|
||||
PROPERTIES
|
||||
WILL_FAIL TRUE)
|
||||
endif(NOT ZLIB_IOSTREAM3_BUILD_SHARED OR NOT ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
|
||||
#
|
||||
# findpackage_no_components_test
|
||||
#
|
||||
add_test(
|
||||
NAME zlib_iostream3_find_package_wrong_components_configure
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} ${PLATFORM}
|
||||
-B${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test_build
|
||||
-DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
|
||||
--fresh
|
||||
-G "${CMAKE_GENERATOR}"
|
||||
-S${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test)
|
||||
|
||||
set_tests_properties(zlib_iostream3_find_package_wrong_components_configure
|
||||
PROPERTIES
|
||||
FIXTURES_REQUIRED ${inst_setup}
|
||||
WILL_FAIL TRUE)
|
||||
@@ -1,27 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
iostream_add_subdirectory_exclude
|
||||
LANGUAGES CXX
|
||||
VERSION @iostreamV3_VERSION@)
|
||||
|
||||
option(ZLIB_IOSTREAM3_BUILD_SHARED "" @ZLIB_IOSTREAM3_BUILD_SHARED@)
|
||||
option(ZLIB_IOSTREAM3_BUILD_STATIC "" @ZLIB_IOSTREAM3_BUILD_STATIC@)
|
||||
option(ZLIB_IOSTREAM3_BUILD_TESTING "" OFF)
|
||||
|
||||
add_subdirectory(@iostreamV3_SOURCE_DIR@
|
||||
${CMAKE_CURRENT_BINARY_DIR}/iostream3
|
||||
EXCLUDE_FROM_ALL)
|
||||
|
||||
set(IOSTREAM_SRCS
|
||||
@iostreamV3_SOURCE_DIR@/test.cc)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
add_executable(test_example ${IOSTREAM_SRCS})
|
||||
target_link_libraries(test_example IOSTREAMV3::IOSTREAMV3)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
add_executable(test_example_static ${IOSTREAM_SRCS})
|
||||
target_link_libraries(test_example_static IOSTREAMV3::IOSTREAMV3STATIC)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
@@ -1,25 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
iostream_add_subdirectory
|
||||
LANGUAGES CXX
|
||||
VERSION @iostreamV3_VERSION@)
|
||||
|
||||
option(ZLIB_IOSTREAM3_BUILD_SHARED "" @ZLIB_IOSTREAM3_BUILD_SHARED@)
|
||||
option(ZLIB_IOSTREAM3_BUILD_STATIC "" @ZLIB_IOSTREAM3_BUILD_STATIC@)
|
||||
option(ZLIB_IOSTREAM3_BUILD_TESTING "" OFF)
|
||||
|
||||
add_subdirectory(@iostreamV3_SOURCE_DIR@ ${CMAKE_CURRENT_BINARY_DIR}/iostream3)
|
||||
|
||||
set(IOSTREAM_SRCS
|
||||
@iostreamV3_SOURCE_DIR@/test.cc)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
add_executable(test_example ${IOSTREAM_SRCS})
|
||||
target_link_libraries(test_example IOSTREAMV3::IOSTREAMV3)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
add_executable(test_example_static ${IOSTREAM_SRCS})
|
||||
target_link_libraries(test_example_static IOSTREAMV3::IOSTREAMV3STATIC)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
@@ -1,24 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
iostream_find_package_no_components
|
||||
LANGUAGES CXX
|
||||
VERSION @iostreamV3_VERSION@)
|
||||
|
||||
option(ZLIB_IOSTREAM3_BUILD_SHARED "" @ZLIB_IOSTREAM3_BUILD_SHARED@)
|
||||
option(ZLIB_IOSTREAM3_BUILD_STATIC "" @ZLIB_IOSTREAM3_BUILD_STATIC@)
|
||||
|
||||
find_package(iostreamv3 REQUIRED CONFIG)
|
||||
|
||||
set(IOSTREAM_SRCS
|
||||
@iostreamV3_SOURCE_DIR@/test.cc)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
add_executable(test_example ${IOSTREAM_SRCS})
|
||||
target_link_libraries(test_example IOSTREAMV3::IOSTREAMV3)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
add_executable(test_example_static ${IOSTREAM_SRCS})
|
||||
target_link_libraries(test_example_static IOSTREAMV3::IOSTREAMV3STATIC)
|
||||
endif(ZLIB_IOSTREAM3_BUILD_STATIC)
|
||||
@@ -1,24 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
iostream_find_package
|
||||
LANGUAGES CXX
|
||||
VERSION @iostreamV3_VERSION@)
|
||||
|
||||
option(ZLIB_IOSTREAM_BUILD_SHARED "" @ZLIB_IOSTREAM_BUILD_SHARED@)
|
||||
option(ZLIB_IOSTREAM_BUILD_STATIC "" @ZLIB_IOSTREAM_BUILD_STATIC@)
|
||||
|
||||
set(IOSTREAM_SRCS
|
||||
@iostreamV3_SOURCE_DIR@/test.cc)
|
||||
|
||||
if(ZLIB_IOSTREAM_BUILD_SHARED)
|
||||
find_package(iostreamv3 REQUIRED COMPONENTS shared CONFIG)
|
||||
add_executable(test_example ${IOSTREAM_SRCS})
|
||||
target_link_libraries(test_example IOSTREAMV3::IOSTREAMV3)
|
||||
endif(ZLIB_IOSTREAM_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_IOSTREAM_BUILD_STATIC)
|
||||
find_package(iostreamv3 REQUIRED COMPONENTS static CONFIG)
|
||||
add_executable(test_example_static ${IOSTREAM_SRCS})
|
||||
target_link_libraries(test_example_static IOSTREAMV3::IOSTREAMV3STATIC)
|
||||
endif(ZLIB_IOSTREAM_BUILD_STATIC)
|
||||
@@ -1,24 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
iostream_find_package
|
||||
LANGUAGES CXX
|
||||
VERSION @iostreamV3_VERSION@)
|
||||
|
||||
option(ZLIB_IOSTREAM_BUILD_SHARED "" @ZLIB_IOSTREAM_BUILD_SHARED@)
|
||||
option(ZLIB_IOSTREAM_BUILD_STATIC "" @ZLIB_IOSTREAM_BUILD_STATIC@)
|
||||
|
||||
find_package(iostreamv3 REQUIRED COMPONENTS wrongCONFIG)
|
||||
|
||||
set(IOSTREAM_SRCS
|
||||
@iostreamV3_SOURCE_DIR@/test.cc)
|
||||
|
||||
if(ZLIB_IOSTREAM_BUILD_SHARED)
|
||||
add_executable(test_example ${IOSTREAM_SRCS})
|
||||
target_link_libraries(test_example IOSTREAMV3::IOSTREAMV3)
|
||||
endif(ZLIB_IOSTREAM_BUILD_SHARED)
|
||||
|
||||
if(ZLIB_IOSTREAM_BUILD_STATIC)
|
||||
add_executable(test_example_static ${PUFF_SRCS})
|
||||
target_link_libraries(test_example_static IOSTREAMV3::IOSTREAMV3STATIC)
|
||||
endif(ZLIB_IOSTREAM_BUILD_STATIC)
|
||||
@@ -1,387 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12...3.31)
|
||||
|
||||
project(
|
||||
minizip
|
||||
VERSION 1.0.0
|
||||
LANGUAGES C
|
||||
DESCRIPTION "A library for creating zipfiles based in zlib"
|
||||
HOMEPAGE_URL "https://www.winimage.com/zLibDll/minizip.html")
|
||||
|
||||
if(CMAKE_SIZEOF_VOID_P LESS 8 AND NOT MINGW)
|
||||
message(WARNING "libminizip needs 64bit - stopping here")
|
||||
return()
|
||||
endif(CMAKE_SIZEOF_VOID_P LESS 8 AND NOT MINGW)
|
||||
|
||||
# ============================================================================
|
||||
# CPack
|
||||
# ============================================================================
|
||||
set(CPACK_PACKAGE_VENDOR "zlib-Project")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE ${minizip_SOURCE_DIR}/MiniZip64_info.txt)
|
||||
set(CPACK_RESOURCE_FILE_LICENSE ${minizip_SOURCE_DIR}/../../LICENSE)
|
||||
set(CPACK_RESOURCE_FILE_README ${minizip_SOURCE_DIR}/MiniZip64_info.txt)
|
||||
|
||||
# ============================================================================
|
||||
# set options if build from zlib
|
||||
# ============================================================================
|
||||
if(ZLIB_BUILD_MINIZIP)
|
||||
set(MINIZIP_BUILD_SHARED ${ZLIB_MINIZIP_BUILD_SHARED} CACHE BOOL "")
|
||||
set(MINIZIP_BUILD_STATIC ${ZLIB_MINIZIP_BUILD_STATIC} CACHE BOOL "")
|
||||
set(MINIZIP_BUILD_TESTING ${ZLIB_MINIZIP_INSTALL} CACHE BOOL "")
|
||||
set(MINIZIP_INSTALL ${ZLIB_MINIZIP_INSTALL} CACHE BOOL "")
|
||||
endif(ZLIB_BUILD_MINIZIP)
|
||||
|
||||
# ============================================================================
|
||||
# configuration
|
||||
# ============================================================================
|
||||
option(MINIZIP_BUILD_SHARED "Enable building minizip shared library" ON)
|
||||
option(MINIZIP_BUILD_STATIC "Enable building minizip static library" ON)
|
||||
option(MINIZIP_BUILD_TESTING "Enable testing of minizip" ON)
|
||||
option(MINIZIP_ENABLE_BZIP2 "Build minizip with bzip2 support" OFF)
|
||||
option(MINIZIP_INSTALL "Enable installation of minizip" ON)
|
||||
|
||||
include(CheckCSourceCompiles)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckIncludeFile)
|
||||
include(CMakePackageConfigHelpers)
|
||||
include(CheckTypeSize)
|
||||
include(GNUInstallDirs)
|
||||
|
||||
if(NOT CPACK_INCLUDED)
|
||||
include(CPack)
|
||||
endif(NOT CPACK_INCLUDED)
|
||||
|
||||
if(NOT DEFINED ZLIB_BUILD_MINIZIP)
|
||||
if(MINIZIP_BUILD_SHARED)
|
||||
list(APPEND REQUIRED_COMPONENTS "shared")
|
||||
endif(MINIZIP_BUILD_SHARED)
|
||||
|
||||
if(MINIZIP_BUILD_STATIC)
|
||||
list(APPEND REQUIRED_COMPONENTS "static")
|
||||
endif(MINIZIP_BUILD_STATIC)
|
||||
|
||||
find_package(ZLIB REQUIRED COMPONENTS ${REQUIRED_COMPONENTS} CONFIG)
|
||||
endif(NOT DEFINED ZLIB_BUILD_MINIZIP)
|
||||
|
||||
if(MINIZIP_ENABLE_BZIP2)
|
||||
find_package(BZip2 REQUIRED)
|
||||
endif(MINIZIP_ENABLE_BZIP2)
|
||||
|
||||
#
|
||||
# Check for fopen64
|
||||
#
|
||||
check_function_exists(fopen64 HAVE_FOPEN64)
|
||||
|
||||
#
|
||||
# Check for fseeko
|
||||
#
|
||||
check_function_exists(fseeko HAVE_FSEEKO)
|
||||
|
||||
#
|
||||
# Check for unistd.h
|
||||
#
|
||||
check_include_file(unistd.h HAVE_UNISTD_H)
|
||||
|
||||
#
|
||||
# Check to see if we have large file support
|
||||
#
|
||||
set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1)
|
||||
check_type_size(off64_t OFF64_T)
|
||||
unset(CMAKE_REQUIRED_DEFINITIONS) # clear variable
|
||||
|
||||
#
|
||||
# Check visibility attribute is supported
|
||||
#
|
||||
if(MSVC)
|
||||
set(CMAKE_REQUIRED_FLAGS "-WX")
|
||||
else(MSVC)
|
||||
set(CMAKE_REQUIRED_FLAGS "-WError")
|
||||
endif(MSVC)
|
||||
|
||||
check_c_source_compiles(
|
||||
"
|
||||
#include <stdlib.h>
|
||||
static void f(void) __attribute__ ((visibility(\"hidden\")));
|
||||
int main(void) {return 0;}
|
||||
"
|
||||
HAVE___ATTR__VIS_HIDDEN)
|
||||
|
||||
unset(CMAKE_REQUIRED_FLAGS)
|
||||
|
||||
set(LIBMINIZIP_SRCS ioapi.c mztools.c unzip.c zip.c)
|
||||
|
||||
set(LIBMINIZIP_HDRS crypt.h ints.h ioapi.h mztools.h unzip.h zip.h)
|
||||
|
||||
set(MINIZIP_SRCS ioapi.c $<$<BOOL:${WIN32}>:iowin32.c> minizip.c zip.c)
|
||||
|
||||
set(MINIZIP_HDRS crypt.h ints.h ioapi.h $<$<BOOL:${WIN32}>:iowin32.h> skipset.h
|
||||
zip.h)
|
||||
|
||||
set(MINIUNZIP_SRCS ioapi.c $<$<BOOL:${WIN32}>:iowin32.c> miniunz.c unzip.c
|
||||
zip.c)
|
||||
|
||||
set(MINIUNZIP_HDRS
|
||||
crypt.h
|
||||
ints.h
|
||||
ioapi.h
|
||||
$<$<BOOL:${WIN32}>:iowin32.h>
|
||||
skipset.h
|
||||
unzip.h
|
||||
zip.h)
|
||||
|
||||
if(WIN32 OR CYGWIN)
|
||||
set(minizip_static_suffix "s")
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
endif(WIN32 OR CYGWIN)
|
||||
|
||||
if(MINIZIP_BUILD_SHARED)
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
||||
add_library(libminizip SHARED ${LIBMINIZIP_SRCS} ${LIBMINIZIP_HDRS})
|
||||
add_library(MINIZIP::minizip ALIAS libminizip)
|
||||
target_include_directories(
|
||||
libminizip PUBLIC $<BUILD_INTERFACE:${minizip_SOURCE_DIR}>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
target_compile_definitions(
|
||||
libminizip
|
||||
PRIVATE $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>
|
||||
$<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>
|
||||
$<$<BOOL:${HAVE_UNISTD_H}>:HAVE_UNISTD_H=1>
|
||||
PUBLIC $<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>
|
||||
$<$<BOOL:${BZIP2_FOUND}>:HAVE_BZIP2=1>
|
||||
$<$<BOOL:NOT:${HAVE_FOPEN64}>:USE_FILE32API=1>)
|
||||
|
||||
if(NOT CYGWIN)
|
||||
set_target_properties(libminizip PROPERTIES SOVERSION
|
||||
${minizip_VERSION_MAJOR})
|
||||
endif(NOT CYGWIN)
|
||||
|
||||
set_target_properties(
|
||||
libminizip
|
||||
PROPERTIES EXPORT_NAME minizip
|
||||
OUTPUT_NAME minizip
|
||||
VERSION ${minizip_VERSION}
|
||||
SOVERSION ${minizip_VERSION_MAJOR})
|
||||
|
||||
target_link_libraries(libminizip
|
||||
PUBLIC ZLIB::ZLIB
|
||||
$<$<BOOL:${BZIP2_FOUND}>:BZip2::BZip2>)
|
||||
|
||||
add_executable(minizip ${MINIZIP_SRCS} ${MINIZIP_HDRS})
|
||||
set_target_properties(minizip PROPERTIES EXPORT_NAME minizip_executable)
|
||||
target_compile_definitions(
|
||||
minizip PRIVATE $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>)
|
||||
target_link_libraries(minizip PRIVATE MINIZIP::minizip)
|
||||
add_executable(miniunzip ${MINIUNZIP_SRCS} ${MINIUNZIP_HDRS})
|
||||
set_target_properties(miniunzip PROPERTIES EXPORT_NAME miniunzip_executable)
|
||||
target_compile_definitions(
|
||||
miniunzip PRIVATE $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>)
|
||||
target_link_libraries(miniunzip PRIVATE MINIZIP::minizip)
|
||||
endif(MINIZIP_BUILD_SHARED)
|
||||
|
||||
if(MINIZIP_BUILD_STATIC)
|
||||
add_library(libminizipstatic STATIC ${LIBMINIZIP_SRCS} ${LIBMINIZIP_HDRS})
|
||||
add_library(MINIZIP::minizipstatic ALIAS libminizipstatic)
|
||||
target_include_directories(
|
||||
libminizipstatic
|
||||
PUBLIC $<BUILD_INTERFACE:${minizip_SOURCE_DIR}>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
target_compile_definitions(
|
||||
libminizipstatic
|
||||
PRIVATE $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>
|
||||
$<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>
|
||||
$<$<BOOL:${HAVE_UNISTD_H}>:HAVE_UNISTD_H=1>
|
||||
PUBLIC $<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>
|
||||
$<$<BOOL:${BZIP2_FOUND}>:HAVE_BZIP2=1>
|
||||
$<$<BOOL:NOT:${HAVE_FOPEN64}>:USE_FILE32API=1>)
|
||||
set_target_properties(
|
||||
libminizipstatic PROPERTIES EXPORT_NAME minizipstatic
|
||||
OUTPUT_NAME minizip${minizip_static_suffix})
|
||||
|
||||
if(CYGWIN)
|
||||
set_target_properties(libminizipstatic PROPERTIES SUFFIX ".dll.a")
|
||||
endif(CYGWIN)
|
||||
|
||||
target_link_libraries(libminizipstatic PUBLIC ZLIB::ZLIBSTATIC
|
||||
$<$<BOOL:${BZIP2_FOUND}>:BZip2::BZip2>)
|
||||
|
||||
add_executable(minizipstatic ${MINIZIP_SRCS} ${MINIZIP_HDRS})
|
||||
set_target_properties(minizipstatic PROPERTIES EXPORT_NAME
|
||||
minizip_static_executable)
|
||||
target_compile_definitions(
|
||||
minizipstatic PRIVATE $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>)
|
||||
target_link_libraries(minizipstatic PRIVATE MINIZIP::minizipstatic)
|
||||
add_executable(miniunzipstatic ${MINIUNZIP_SRCS} ${MINIUNZIP_HDRS})
|
||||
set_target_properties(miniunzipstatic
|
||||
PROPERTIES EXPORT_NAME miniunzip_static_executable)
|
||||
target_compile_definitions(
|
||||
miniunzipstatic PRIVATE $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>)
|
||||
target_link_libraries(miniunzipstatic PRIVATE MINIZIP::minizipstatic)
|
||||
endif(MINIZIP_BUILD_STATIC)
|
||||
|
||||
if(MINIZIP_INSTALL)
|
||||
if(MINIZIP_BUILD_SHARED)
|
||||
install(
|
||||
TARGETS libminizip minizip miniunzip
|
||||
COMPONENT Runtime
|
||||
EXPORT minizipSharedExport
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
install(
|
||||
EXPORT minizipSharedExport
|
||||
FILE minizip-shared.cmake
|
||||
NAMESPACE MINIZIP::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip)
|
||||
|
||||
if(MSVC)
|
||||
install(
|
||||
FILES $<TARGET_PDB_FILE:libminizip>
|
||||
COMPONENT Runtime
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
CONFIGURATIONS Debug OR RelWithDebInfo
|
||||
OPTIONAL)
|
||||
endif(MSVC)
|
||||
endif(MINIZIP_BUILD_SHARED)
|
||||
|
||||
if(MINIZIP_BUILD_STATIC)
|
||||
install(
|
||||
TARGETS libminizipstatic
|
||||
COMPONENT Development
|
||||
TARGETS minizipstatic miniunzipstatic
|
||||
COMPONENT Runtime
|
||||
EXPORT minizipStaticExport
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
install(
|
||||
EXPORT minizipStaticExport
|
||||
FILE minizip-static.cmake
|
||||
NAMESPACE MINIZIP::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip)
|
||||
endif(MINIZIP_BUILD_STATIC)
|
||||
|
||||
configure_package_config_file(
|
||||
${minizip_SOURCE_DIR}/minizipConfig.cmake.in
|
||||
${minizip_BINARY_DIR}/minizipConfig.cmake
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip)
|
||||
write_basic_package_version_file(
|
||||
"${minizip_BINARY_DIR}/minizipConfigVersion.cmake"
|
||||
VERSION "${minizip_VERSION}"
|
||||
COMPATIBILITY AnyNewerVersion)
|
||||
install(FILES ${minizip_BINARY_DIR}/minizipConfig.cmake
|
||||
${minizip_BINARY_DIR}/minizipConfigVersion.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip)
|
||||
install(
|
||||
FILES ${LIBMINIZIP_HDRS}
|
||||
COMPONENT Development
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
endif(MINIZIP_INSTALL)
|
||||
|
||||
if(MINIZIP_BUILD_TESTING)
|
||||
enable_testing()
|
||||
|
||||
if(MINIZIP_BUILD_SHARED AND NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL
|
||||
".dll")
|
||||
add_test(
|
||||
NAME minizip_prepare_shared_zip
|
||||
COMMAND ${CMAKE_COMMAND} -DCREATE_SHARED=ON -P
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
add_test(
|
||||
NAME minizip_zipping_test_file_shared
|
||||
COMMAND minizip test_file_shared.zip test_file_shared.txt
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
add_test(
|
||||
NAME minizip_prepare_shared_unzip
|
||||
COMMAND ${CMAKE_COMMAND} -DMOVE_SHARED=ON -P
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
add_test(
|
||||
NAME minizip_miniunzipping_test_file_shared.zip
|
||||
COMMAND miniunzip test_file_shared.zip
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
add_test(
|
||||
NAME minizip_compare_shared
|
||||
COMMAND ${CMAKE_COMMAND} -E compare_files test_file_shared.txt
|
||||
test_file_shared.orig
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
add_test(
|
||||
NAME minizip_clean_shared_zip
|
||||
COMMAND ${CMAKE_COMMAND} -DDELETE_SHARED=ON -P
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
set_tests_properties(minizip_prepare_shared_zip
|
||||
PROPERTIES FIXTURES_SETUP prepare_shared)
|
||||
set_tests_properties(
|
||||
minizip_zipping_test_file_shared
|
||||
PROPERTIES FIXTURES_REQUIRED prepare_shared FIXTURES_SETUP
|
||||
zip_shared)
|
||||
set_tests_properties(
|
||||
minizip_prepare_shared_unzip
|
||||
PROPERTIES FIXTURES_REQUIRED zip_shared FIXTURES_SETUP
|
||||
prepare_unzip_shared)
|
||||
set_tests_properties(
|
||||
minizip_miniunzipping_test_file_shared.zip
|
||||
PROPERTIES FIXTURES_REQUIRED prepare_unzip_shared FIXTURES_SETUP
|
||||
prepare_compare_shared)
|
||||
set_tests_properties(
|
||||
minizip_compare_shared
|
||||
PROPERTIES FIXTURES_REQUIRED prepare_compare_shared FIXTURES_SETUP
|
||||
compared_shared)
|
||||
set_tests_properties(minizip_clean_shared_zip
|
||||
PROPERTIES FIXTURES_CLEANUP compared_shared)
|
||||
endif(MINIZIP_BUILD_SHARED AND NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL
|
||||
".dll")
|
||||
|
||||
if(MINIZIP_BUILD_STATIC)
|
||||
add_test(
|
||||
NAME minizip_prepare_static_zip
|
||||
COMMAND ${CMAKE_COMMAND} -DCREATE_STATIC=ON -P
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
add_test(
|
||||
NAME minizip_zipping_test_file_static
|
||||
COMMAND minizipstatic test_file_static.zip test_file_static.txt
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
add_test(
|
||||
NAME minizip_prepare_static_unzip
|
||||
COMMAND ${CMAKE_COMMAND} -DMOVE_STATIC=ON -P
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
add_test(
|
||||
NAME minizip_miniunzipping_test_file_static.zip
|
||||
COMMAND miniunzipstatic test_file_static.zip
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
add_test(
|
||||
NAME minizip_compare_static
|
||||
COMMAND ${CMAKE_COMMAND} -E compare_files test_file_static.txt
|
||||
test_file_static.orig
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
add_test(
|
||||
NAME minizip_clean_static_zip
|
||||
COMMAND ${CMAKE_COMMAND} -DDELETE_STATIC=ON -P
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
|
||||
set_tests_properties(minizip_prepare_static_zip
|
||||
PROPERTIES FIXTURES_SETUP prepare_static)
|
||||
set_tests_properties(
|
||||
minizip_zipping_test_file_static
|
||||
PROPERTIES FIXTURES_REQUIRED prepare_static FIXTURES_SETUP
|
||||
zip_static)
|
||||
set_tests_properties(
|
||||
minizip_prepare_static_unzip
|
||||
PROPERTIES FIXTURES_REQUIRED zip_static FIXTURES_SETUP
|
||||
prepare_unzip_static)
|
||||
set_tests_properties(
|
||||
minizip_miniunzipping_test_file_static.zip
|
||||
PROPERTIES FIXTURES_REQUIRED prepare_unzip_static FIXTURES_SETUP
|
||||
prepare_compare_static)
|
||||
set_tests_properties(
|
||||
minizip_compare_static
|
||||
PROPERTIES FIXTURES_REQUIRED prepare_compare_static FIXTURES_SETUP
|
||||
compared_static)
|
||||
set_tests_properties(minizip_clean_static_zip
|
||||
PROPERTIES FIXTURES_CLEANUP compared_static)
|
||||
endif(MINIZIP_BUILD_STATIC)
|
||||
|
||||
add_subdirectory(test)
|
||||
endif(MINIZIP_BUILD_TESTING)
|
||||
@@ -1,58 +0,0 @@
|
||||
This is version 2009-Jan-02 of the Info-ZIP license. The definitive version of
|
||||
this document should be available at ftp://ftp.info-
|
||||
zip.org/pub/infozip/license.html indefinitely and a copy at http://www.info-
|
||||
zip.org/pub/infozip/license.html.
|
||||
|
||||
Copyright (c) 1990-2009 Info-ZIP. All rights reserved.
|
||||
|
||||
For the purposes of this copyright and license, "Info-ZIP" is defined as the
|
||||
following set of individuals:
|
||||
|
||||
Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, Jean-
|
||||
loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, Dirk
|
||||
Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, David
|
||||
Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, Steve P.
|
||||
Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, Kai Uwe
|
||||
Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, Christian Spieler,
|
||||
Cosmin Truta, Antoine Verheijen, Paul von Behren, Rich Wales, Mike White.
|
||||
|
||||
This software is provided "as is," without warranty of any kind, express or
|
||||
implied. In no event shall Info-ZIP or its contributors be held liable for any
|
||||
direct, indirect, incidental, special or consequential damages arising out of
|
||||
the use of or inability to use this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose, including
|
||||
commercial applications, and to alter it and redistribute it freely, subject to
|
||||
the above disclaimer and the following restrictions:
|
||||
|
||||
Redistributions of source code (in whole or in part) must retain the above
|
||||
copyright notice, definition, disclaimer, and this list of conditions.
|
||||
|
||||
Redistributions in binary form (compiled executables and libraries) must
|
||||
reproduce the above copyright notice, definition, disclaimer, and this list
|
||||
of conditions in documentation and/or other materials provided with the
|
||||
distribution. Additional documentation is not needed for executables where a
|
||||
command line license option provides these and a note regarding this option
|
||||
is in the executable's startup banner. The sole exception to this condition
|
||||
is redistribution of a standard UnZipSFX binary (including SFXWiz) as part
|
||||
of a self-extracting archive; that is permitted without inclusion of this
|
||||
license, as long as the normal SFX banner has not been removed from the
|
||||
binary or disabled.
|
||||
|
||||
Altered versions--including, but not limited to, ports to new operating
|
||||
systems, existing ports with new graphical interfaces, versions with
|
||||
modified or added functionality, and dynamic, shared, or static library
|
||||
versions not from Info-ZIP--must be plainly marked as such and must not be
|
||||
misrepresented as being the original source or, if binaries, compiled from
|
||||
the original source. Such altered versions also must not be misrepresented
|
||||
as being Info-ZIP releases--including, but not limited to, labeling of the
|
||||
altered versions with the names "Info-ZIP" (or any variation thereof,
|
||||
including, but not limited to, different capitalizations), "Pocket UnZip,"
|
||||
"WiZ" or "MacZip" without the explicit permission of Info-ZIP. Such altered
|
||||
versions are further prohibited from misrepresentative use of the Zip-Bugs
|
||||
or Info-ZIP e-mail addresses or the Info-ZIP URL(s), such as to imply Info-
|
||||
ZIP will provide support for the altered versions.
|
||||
|
||||
Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip,"
|
||||
"UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its own
|
||||
source and binary releases.
|
||||
@@ -1,25 +1,21 @@
|
||||
CPPFLAGS = -I../..
|
||||
CC?=cc
|
||||
CFLAGS := $(CFLAGS) -O -I../..
|
||||
|
||||
UNZ_OBJS = miniunz.o unzip.o ioapi.o ../../libz.a
|
||||
ZIP_OBJS = minizip.o zip.o ioapi.o ../../libz.a
|
||||
|
||||
.c.o:
|
||||
$(CC) -c $(CFLAGS) $*.c
|
||||
|
||||
all: miniunz minizip
|
||||
|
||||
miniunz.o: miniunz.c unzip.h iowin32.h
|
||||
minizip.o: minizip.c zip.h iowin32.h ints.h
|
||||
unzip.o: unzip.c unzip.h crypt.h
|
||||
zip.o: zip.c zip.h crypt.h skipset.h ints.h
|
||||
ioapi.o: ioapi.c ioapi.h ints.h
|
||||
iowin32.o: iowin32.c iowin32.h ioapi.h
|
||||
mztools.o: mztools.c unzip.h
|
||||
miniunz: $(UNZ_OBJS)
|
||||
$(CC) $(CFLAGS) -o $@ $(UNZ_OBJS)
|
||||
|
||||
miniunz: $(UNZ_OBJS)
|
||||
${CC} ${LDFLAGS} -o $@ $(UNZ_OBJS)
|
||||
minizip: $(ZIP_OBJS)
|
||||
$(CC) $(CFLAGS) -o $@ $(ZIP_OBJS)
|
||||
|
||||
minizip: $(ZIP_OBJS)
|
||||
${CC} ${LDFLAGS} -o $@ $(ZIP_OBJS)
|
||||
|
||||
test: miniunz minizip
|
||||
test: miniunz minizip
|
||||
@rm -f test.*
|
||||
@echo hello hello hello > test.txt
|
||||
./minizip test test.txt
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
MiniZip - Copyright (c) 1998-2026 - by Gilles Vollant - version 1.1 64 bits from Mathias Svensson
|
||||
MiniZip - Copyright (c) 1998-2010 - by Gilles Vollant - version 1.1 64 bits from Mathias Svensson
|
||||
|
||||
Introduction
|
||||
---------------------
|
||||
MiniZip 1.1 is built from MiniZip 1.0 by Gilles Vollant ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
MiniZip 1.1 is built from MiniZip 1.0 by Gilles Vollant ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
When adding ZIP64 support into minizip it would result into risk of breaking compatibility with minizip 1.0.
|
||||
All possible work was done for compatibility.
|
||||
@@ -11,7 +11,7 @@ All possible work was done for compatibility.
|
||||
Background
|
||||
---------------------
|
||||
When adding ZIP64 support Mathias Svensson found that Even Rouault have added ZIP64
|
||||
support for unzip.c into minizip for a open source project called gdal ( https://www.gdal.org/ )
|
||||
support for unzip.c into minizip for a open source project called gdal ( http://www.gdal.org/ )
|
||||
|
||||
That was used as a starting point. And after that ZIP64 support was added to zip.c
|
||||
some refactoring and code cleanup was also done.
|
||||
@@ -36,9 +36,14 @@ Credits
|
||||
Mathias Svensson - ZIP64 zip support
|
||||
Mathias Svensson - BZip Compression method support in zip
|
||||
|
||||
Resource
|
||||
Resources
|
||||
|
||||
ZIP App Note https://www.pkware.com/documents/casestudies/APPNOTE.TXT
|
||||
ZipLayout http://result42.com/projects/ZipFileLayout
|
||||
Command line tool for Windows that shows the layout and information of the headers in a zip archive.
|
||||
Used when debugging and validating the creation of zip files using MiniZip64
|
||||
|
||||
|
||||
ZIP App Note http://www.pkware.com/documents/casestudies/APPNOTE.TXT
|
||||
Zip File specification
|
||||
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# -*- Autoconf -*-
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_INIT([minizip], [1.3.2], [bugzilla.redhat.com])
|
||||
AC_INIT([minizip], [1.3.1], [bugzilla.redhat.com])
|
||||
AC_CONFIG_SRCDIR([minizip.c])
|
||||
AM_INIT_AUTOMAKE([foreign])
|
||||
LT_INIT
|
||||
|
||||
AC_MSG_CHECKING([whether to build example programs])
|
||||
AC_ARG_ENABLE([demos], AS_HELP_STRING([--enable-demos], [build example programs]))
|
||||
AC_ARG_ENABLE([demos], AC_HELP_STRING([--enable-demos], [build example programs]))
|
||||
AM_CONDITIONAL([COND_DEMOS], [test "$enable_demos" = yes])
|
||||
if test "$enable_demos" = yes
|
||||
then
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
/* crypt.h -- base code for crypt/uncrypt ZIPfile
|
||||
|
||||
Copyright (C) 1998-2026 Gilles Vollant
|
||||
|
||||
Version 1.01e, February 12th, 2005
|
||||
|
||||
Copyright (C) 1998-2005 Gilles Vollant
|
||||
|
||||
This code is a modified version of crypting code in Infozip distribution
|
||||
|
||||
@@ -20,7 +23,7 @@
|
||||
This code support the "Traditional PKWARE Encryption".
|
||||
|
||||
The new AES encryption added on Zip format by Winzip (see the page
|
||||
https://www.winzip.com/aes_info.htm ) and PKWare PKZip 5.x Strong
|
||||
http://www.winzip.com/aes_info.htm ) and PKWare PKZip 5.x Strong
|
||||
Encryption is not supported.
|
||||
*/
|
||||
|
||||
@@ -103,7 +106,7 @@ static unsigned crypthead(const char* passwd, /* password string */
|
||||
*/
|
||||
if (++calls == 1)
|
||||
{
|
||||
srand((unsigned)time(NULL) ^ ZCR_SEED2);
|
||||
srand((unsigned)(time(NULL) ^ ZCR_SEED2));
|
||||
}
|
||||
init_keys(passwd, pkeys, pcrc_32_tab);
|
||||
for (n = 0; n < RAND_HEAD_LEN-2; n++)
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
/* ints.h -- create integer types for 8, 16, 32, and 64 bits
|
||||
* Copyright (C) 2024 Mark Adler
|
||||
* For conditions of distribution and use, see the copyright notice in zlib.h
|
||||
*
|
||||
* There exist compilers with limits.h, but not stdint.h or inttypes.h.
|
||||
*/
|
||||
|
||||
#ifndef INTS_H
|
||||
#define INTS_H
|
||||
#include <limits.h>
|
||||
#if defined(UCHAR_MAX) && UCHAR_MAX == 0xff
|
||||
typedef signed char i8_t;
|
||||
typedef unsigned char ui8_t;
|
||||
#else
|
||||
# error "no 8-bit integer"
|
||||
#endif
|
||||
#if defined(USHRT_MAX) && USHRT_MAX == 0xffff
|
||||
typedef short i16_t;
|
||||
typedef unsigned short ui16_t;
|
||||
#elif defined(UINT_MAX) && UINT_MAX == 0xffff
|
||||
typedef int i16_t;
|
||||
typedef unsigned ui16_t;
|
||||
#else
|
||||
# error "no 16-bit integer"
|
||||
#endif
|
||||
#if defined(UINT_MAX) && UINT_MAX == 0xffffffff
|
||||
typedef int i32_t;
|
||||
typedef unsigned ui32_t;
|
||||
# define PI32 "d"
|
||||
# define PUI32 "u"
|
||||
#elif defined(ULONG_MAX) && ULONG_MAX == 0xffffffff
|
||||
typedef long i32_t;
|
||||
typedef unsigned long ui32_t;
|
||||
# define PI32 "ld"
|
||||
# define PUI32 "lu"
|
||||
#else
|
||||
# error "no 32-bit integer"
|
||||
#endif
|
||||
#if defined(ULONG_MAX) && ULONG_MAX == 0xffffffffffffffff
|
||||
typedef long i64_t;
|
||||
typedef unsigned long ui64_t;
|
||||
# define PI64 "ld"
|
||||
# define PUI64 "lu"
|
||||
#elif defined(ULLONG_MAX) && ULLONG_MAX == 0xffffffffffffffff
|
||||
typedef long long i64_t;
|
||||
typedef unsigned long long ui64_t;
|
||||
# define PI64 "lld"
|
||||
# define PUI64 "llu"
|
||||
#elif defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 0xffffffffffffffff
|
||||
typedef long long i64_t;
|
||||
typedef unsigned long long ui64_t;
|
||||
# define PI64 "lld"
|
||||
# define PUI64 "llu"
|
||||
#else
|
||||
# error "no 64-bit integer"
|
||||
#endif
|
||||
#endif
|
||||
@@ -1,10 +1,10 @@
|
||||
/* ioapi.h -- IO base function header for compress/uncompress .zip
|
||||
part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Modifications for Zip64 support
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
|
||||
|
||||
For more info read MiniZip_info.txt
|
||||
|
||||
@@ -14,8 +14,12 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#endif
|
||||
|
||||
#if defined(__APPLE__) || defined(IOAPI_NO_64) || defined(__HAIKU__) || defined(MINIZIP_FOPEN_NO_64) || (defined(__ANDROID_API__) && __ANDROID_API__ < 24)
|
||||
/* In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions */
|
||||
#if defined(_WIN32)
|
||||
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
|
||||
#define FTELLO_FUNC(stream) _ftelli64(stream)
|
||||
#define FSEEKO_FUNC(stream, offset, origin) _fseeki64(stream, offset, origin)
|
||||
#elif defined(__APPLE__) || defined(IOAPI_NO_64) || defined(__HAIKU__) || defined(MINIZIP_FOPEN_NO_64)
|
||||
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
|
||||
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
|
||||
#define FTELLO_FUNC(stream) ftello(stream)
|
||||
#define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/* ioapi.h -- IO base function header for compress/uncompress .zip
|
||||
part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Modifications for Zip64 support
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
|
||||
|
||||
For more info read MiniZip_info.txt
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
|
||||
*/
|
||||
|
||||
#ifndef ZLIBIOAPI64_H
|
||||
#define ZLIBIOAPI64_H
|
||||
#ifndef _ZLIBIOAPI64_H
|
||||
#define _ZLIBIOAPI64_H
|
||||
|
||||
#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__)) && (!(defined(__ANDROID_API__) || __ANDROID_API__ >= 24))
|
||||
#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
|
||||
|
||||
/* Linux needs this to support file operation on files larger then 4+GB */
|
||||
/* But might need better if/def to select just the platforms that needs them.*/
|
||||
// Linux needs this to support file operation on files larger then 4+GB
|
||||
// But might need better if/def to select just the platforms that needs them.
|
||||
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
#define __USE_FILE_OFFSET64
|
||||
@@ -67,12 +67,39 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
#ifndef ZPOS64_T
|
||||
#ifdef _WIN32
|
||||
#define ZPOS64_T fpos_t
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#define ZPOS64_T uint64_t
|
||||
#endif
|
||||
#endif
|
||||
*/
|
||||
|
||||
#ifdef HAVE_MINIZIP64_CONF_H
|
||||
#include "mz64conf.h"
|
||||
#endif
|
||||
|
||||
#include "ints.h"
|
||||
typedef ui64_t ZPOS64_T;
|
||||
/* a type chosen by DEFINE */
|
||||
#ifdef HAVE_64BIT_INT_CUSTOM
|
||||
typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T;
|
||||
#else
|
||||
#ifdef HAS_STDINT_H
|
||||
#include "stdint.h"
|
||||
typedef uint64_t ZPOS64_T;
|
||||
#else
|
||||
|
||||
|
||||
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__)
|
||||
typedef unsigned __int64 ZPOS64_T;
|
||||
#else
|
||||
typedef unsigned long long int ZPOS64_T;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Maximum unsigned 32-bit value used as placeholder for zip64 */
|
||||
#ifndef MAXU32
|
||||
@@ -161,8 +188,8 @@ typedef struct zlib_filefunc64_32_def_s
|
||||
|
||||
#define ZREAD64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zread_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size))
|
||||
#define ZWRITE64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zwrite_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size))
|
||||
/*#define ZTELL64(filefunc,filestream) ((*((filefunc).ztell64_file)) ((filefunc).opaque,filestream)) */
|
||||
/*#define ZSEEK64(filefunc,filestream,pos,mode) ((*((filefunc).zseek64_file)) ((filefunc).opaque,filestream,pos,mode)) */
|
||||
//#define ZTELL64(filefunc,filestream) ((*((filefunc).ztell64_file)) ((filefunc).opaque,filestream))
|
||||
//#define ZSEEK64(filefunc,filestream,pos,mode) ((*((filefunc).zseek64_file)) ((filefunc).opaque,filestream,pos,mode))
|
||||
#define ZCLOSE64(filefunc,filestream) ((*((filefunc).zfile_func64.zclose_file)) ((filefunc).zfile_func64.opaque,filestream))
|
||||
#define ZERROR64(filefunc,filestream) ((*((filefunc).zfile_func64.zerror_file)) ((filefunc).zfile_func64.opaque,filestream))
|
||||
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
/* iowin32.c -- IO base function header for compress/uncompress .zip
|
||||
part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
Version 1.1, February 14h, 2010
|
||||
part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Modifications for Zip64 support
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
|
||||
|
||||
For more info read MiniZip_info.txt
|
||||
|
||||
@@ -25,7 +26,7 @@
|
||||
#endif
|
||||
|
||||
|
||||
/* see Include/shared/winapifamily.h in the Windows Kit */
|
||||
// see Include/shared/winapifamily.h in the Windows Kit
|
||||
#if defined(WINAPI_FAMILY_PARTITION) && (!(defined(IOWIN32_USING_WINRT_API)))
|
||||
|
||||
#if !defined(WINAPI_FAMILY_ONE_PARTITION)
|
||||
@@ -88,7 +89,7 @@ static voidpf win32_build_iowin(HANDLE hFile) {
|
||||
}
|
||||
|
||||
voidpf ZCALLBACK win32_open64_file_func(voidpf opaque, const void* filename, int mode) {
|
||||
(void)opaque;
|
||||
const char* mode_fopen = NULL;
|
||||
DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
|
||||
HANDLE hFile = NULL;
|
||||
|
||||
@@ -116,7 +117,7 @@ voidpf ZCALLBACK win32_open64_file_func(voidpf opaque, const void* filename, int
|
||||
|
||||
|
||||
voidpf ZCALLBACK win32_open64_file_funcA(voidpf opaque, const void* filename, int mode) {
|
||||
(void)opaque;
|
||||
const char* mode_fopen = NULL;
|
||||
DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
|
||||
HANDLE hFile = NULL;
|
||||
|
||||
@@ -139,7 +140,7 @@ voidpf ZCALLBACK win32_open64_file_funcA(voidpf opaque, const void* filename, in
|
||||
|
||||
|
||||
voidpf ZCALLBACK win32_open64_file_funcW(voidpf opaque, const void* filename, int mode) {
|
||||
(void)opaque;
|
||||
const char* mode_fopen = NULL;
|
||||
DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
|
||||
HANDLE hFile = NULL;
|
||||
|
||||
@@ -158,7 +159,7 @@ voidpf ZCALLBACK win32_open64_file_funcW(voidpf opaque, const void* filename, in
|
||||
|
||||
|
||||
voidpf ZCALLBACK win32_open_file_func(voidpf opaque, const char* filename, int mode) {
|
||||
(void)opaque;
|
||||
const char* mode_fopen = NULL;
|
||||
DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
|
||||
HANDLE hFile = NULL;
|
||||
|
||||
@@ -186,7 +187,6 @@ voidpf ZCALLBACK win32_open_file_func(voidpf opaque, const char* filename, int m
|
||||
|
||||
|
||||
uLong ZCALLBACK win32_read_file_func(voidpf opaque, voidpf stream, void* buf,uLong size) {
|
||||
(void)opaque;
|
||||
uLong ret=0;
|
||||
HANDLE hFile = NULL;
|
||||
if (stream!=NULL)
|
||||
@@ -208,7 +208,6 @@ uLong ZCALLBACK win32_read_file_func(voidpf opaque, voidpf stream, void* buf,uLo
|
||||
|
||||
|
||||
uLong ZCALLBACK win32_write_file_func(voidpf opaque, voidpf stream, const void* buf, uLong size) {
|
||||
(void)opaque;
|
||||
uLong ret=0;
|
||||
HANDLE hFile = NULL;
|
||||
if (stream!=NULL)
|
||||
@@ -248,7 +247,6 @@ static BOOL MySetFilePointerEx(HANDLE hFile, LARGE_INTEGER pos, LARGE_INTEGER *n
|
||||
}
|
||||
|
||||
long ZCALLBACK win32_tell_file_func(voidpf opaque, voidpf stream) {
|
||||
(void)opaque;
|
||||
long ret=-1;
|
||||
HANDLE hFile = NULL;
|
||||
if (stream!=NULL)
|
||||
@@ -271,7 +269,6 @@ long ZCALLBACK win32_tell_file_func(voidpf opaque, voidpf stream) {
|
||||
}
|
||||
|
||||
ZPOS64_T ZCALLBACK win32_tell64_file_func(voidpf opaque, voidpf stream) {
|
||||
(void)opaque;
|
||||
ZPOS64_T ret= (ZPOS64_T)-1;
|
||||
HANDLE hFile = NULL;
|
||||
if (stream!=NULL)
|
||||
@@ -296,7 +293,6 @@ ZPOS64_T ZCALLBACK win32_tell64_file_func(voidpf opaque, voidpf stream) {
|
||||
|
||||
|
||||
long ZCALLBACK win32_seek_file_func(voidpf opaque, voidpf stream, uLong offset, int origin) {
|
||||
(void)opaque;
|
||||
DWORD dwMoveMethod=0xFFFFFFFF;
|
||||
HANDLE hFile = NULL;
|
||||
|
||||
@@ -334,7 +330,6 @@ long ZCALLBACK win32_seek_file_func(voidpf opaque, voidpf stream, uLong offset,
|
||||
}
|
||||
|
||||
long ZCALLBACK win32_seek64_file_func(voidpf opaque, voidpf stream, ZPOS64_T offset, int origin) {
|
||||
(void)opaque;
|
||||
DWORD dwMoveMethod=0xFFFFFFFF;
|
||||
HANDLE hFile = NULL;
|
||||
long ret=-1;
|
||||
@@ -373,7 +368,6 @@ long ZCALLBACK win32_seek64_file_func(voidpf opaque, voidpf stream, ZPOS64_T off
|
||||
}
|
||||
|
||||
int ZCALLBACK win32_close_file_func(voidpf opaque, voidpf stream) {
|
||||
(void)opaque;
|
||||
int ret=-1;
|
||||
|
||||
if (stream!=NULL)
|
||||
@@ -391,7 +385,6 @@ int ZCALLBACK win32_close_file_func(voidpf opaque, voidpf stream) {
|
||||
}
|
||||
|
||||
int ZCALLBACK win32_error_file_func(voidpf opaque, voidpf stream) {
|
||||
(void)opaque;
|
||||
int ret=-1;
|
||||
if (stream!=NULL)
|
||||
{
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
/* iowin32.h -- IO base function header for compress/uncompress .zip
|
||||
part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
Version 1.1, February 14h, 2010
|
||||
part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Modifications for Zip64 support
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
|
||||
|
||||
For more info read MiniZip_info.txt
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ $ if f$search("ioapi.h_orig") .eqs. "" then copy ioapi.h ioapi.h_orig
|
||||
$ open/write zdef vmsdefs.h
|
||||
$ copy sys$input: zdef
|
||||
$ deck
|
||||
#define __unix__
|
||||
#define unix
|
||||
#define fill_zlib_filefunc64_32_def_from_filefunc32 fillzffunc64from
|
||||
#define Write_Zip64EndOfCentralDirectoryLocator Write_Zip64EoDLocator
|
||||
#define Write_Zip64EndOfCentralDirectoryRecord Write_Zip64EoDRecord
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
/*
|
||||
miniunz.c
|
||||
sample part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
Version 1.1, February 14h, 2010
|
||||
sample part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Modifications of Unzip for Zip64
|
||||
Copyright (C) 2007-2008 Even Rouault
|
||||
|
||||
Modifications for Zip64 support on both zip and unzip
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
|
||||
*/
|
||||
|
||||
#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
|
||||
@@ -38,9 +39,6 @@
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef _CRT_SECURE_NO_WARNINGS
|
||||
# define _CRT_SECURE_NO_WARNINGS
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -85,7 +83,6 @@
|
||||
tmu_date : the SAME new date at the tm_unz format */
|
||||
static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_date) {
|
||||
#ifdef _WIN32
|
||||
(void)tmu_date;
|
||||
HANDLE hFile;
|
||||
FILETIME ftm,ftLocal,ftCreate,ftLastAcc,ftLastWrite;
|
||||
|
||||
@@ -96,7 +93,8 @@ static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_dat
|
||||
LocalFileTimeToFileTime(&ftLocal,&ftm);
|
||||
SetFileTime(hFile,&ftm,&ftLastAcc,&ftm);
|
||||
CloseHandle(hFile);
|
||||
#elif defined(__unix__) || defined(__unix) || defined(__APPLE__)
|
||||
#else
|
||||
#if defined(unix) || defined(__APPLE__)
|
||||
(void)dosdate;
|
||||
struct utimbuf ut;
|
||||
struct tm newdate;
|
||||
@@ -118,6 +116,7 @@ static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_dat
|
||||
(void)dosdate;
|
||||
(void)tmu_date;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -128,7 +127,9 @@ static int mymkdir(const char* dirname) {
|
||||
int ret=0;
|
||||
#ifdef _WIN32
|
||||
ret = _mkdir(dirname);
|
||||
#elif defined(__unix__) || defined(__unix) || defined(__APPLE__)
|
||||
#elif unix
|
||||
ret = mkdir (dirname,0775);
|
||||
#elif __APPLE__
|
||||
ret = mkdir (dirname,0775);
|
||||
#else
|
||||
(void)dirname;
|
||||
@@ -150,7 +151,7 @@ static int makedir(const char *newdir) {
|
||||
printf("Error allocating memory\n");
|
||||
return UNZ_INTERNALERROR;
|
||||
}
|
||||
memcpy(buffer,newdir,len+1);
|
||||
strcpy(buffer,newdir);
|
||||
|
||||
if (buffer[len-1] == '/') {
|
||||
buffer[len-1] = '\0';
|
||||
@@ -186,7 +187,7 @@ static int makedir(const char *newdir) {
|
||||
|
||||
static void do_banner(void) {
|
||||
printf("MiniUnz 1.1, demo of zLib + Unz package written by Gilles Vollant\n");
|
||||
printf("more info at https://www.winimage.com/zLibDll/unzip.html\n\n");
|
||||
printf("more info at http://www.winimage.com/zLibDll/unzip.html\n\n");
|
||||
}
|
||||
|
||||
static void do_help(void) {
|
||||
@@ -234,12 +235,12 @@ static int do_list(unzFile uf) {
|
||||
|
||||
err = unzGetGlobalInfo64(uf,&gi);
|
||||
if (err!=UNZ_OK)
|
||||
printf("error %d with zipfile in unzGetGlobalInfo\n",err);
|
||||
printf("error %d with zipfile in unzGetGlobalInfo \n",err);
|
||||
printf(" Length Method Size Ratio Date Time CRC-32 Name\n");
|
||||
printf(" ------ ------ ---- ----- ---- ---- ------ ----\n");
|
||||
for (i=0;i<gi.number_entry;i++)
|
||||
{
|
||||
char filename_inzip[65536+1];
|
||||
char filename_inzip[256];
|
||||
unz_file_info64 file_info;
|
||||
uLong ratio=0;
|
||||
const char *string_method = "";
|
||||
@@ -304,7 +305,7 @@ static int do_list(unzFile uf) {
|
||||
|
||||
|
||||
static int do_extract_currentfile(unzFile uf, const int* popt_extract_without_path, int* popt_overwrite, const char* password) {
|
||||
char filename_inzip[65536+1];
|
||||
char filename_inzip[256];
|
||||
char* filename_withoutpath;
|
||||
char* p;
|
||||
int err=UNZ_OK;
|
||||
@@ -481,17 +482,13 @@ static int do_extract(unzFile uf, int opt_extract_without_path, int opt_overwrit
|
||||
|
||||
err = unzGetGlobalInfo64(uf,&gi);
|
||||
if (err!=UNZ_OK)
|
||||
{
|
||||
printf("error %d with zipfile in unzGetGlobalInfo\n",err);
|
||||
return err;
|
||||
}
|
||||
printf("error %d with zipfile in unzGetGlobalInfo \n",err);
|
||||
|
||||
for (i=0;i<gi.number_entry;i++)
|
||||
{
|
||||
err = do_extract_currentfile(uf,&opt_extract_without_path,
|
||||
if (do_extract_currentfile(uf,&opt_extract_without_path,
|
||||
&opt_overwrite,
|
||||
password);
|
||||
if (err != UNZ_OK)
|
||||
password) != UNZ_OK)
|
||||
break;
|
||||
|
||||
if ((i+1)<gi.number_entry)
|
||||
@@ -505,7 +502,7 @@ static int do_extract(unzFile uf, int opt_extract_without_path, int opt_overwrit
|
||||
}
|
||||
}
|
||||
|
||||
return err;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int do_extract_onefile(unzFile uf, const char* filename, int opt_extract_without_path, int opt_overwrite, const char* password) {
|
||||
@@ -515,9 +512,12 @@ static int do_extract_onefile(unzFile uf, const char* filename, int opt_extract_
|
||||
return 2;
|
||||
}
|
||||
|
||||
return do_extract_currentfile(uf,&opt_extract_without_path,
|
||||
if (do_extract_currentfile(uf,&opt_extract_without_path,
|
||||
&opt_overwrite,
|
||||
password);
|
||||
password) == UNZ_OK)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
/*
|
||||
minizip.c
|
||||
sample part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
Version 1.1, February 14h, 2010
|
||||
sample part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
|
||||
Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
|
||||
|
||||
Modifications of Unzip for Zip64
|
||||
Copyright (C) 2007-2008 Even Rouault
|
||||
|
||||
Modifications for Zip64 support on both zip and unzip
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
|
||||
Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
|
||||
*/
|
||||
|
||||
|
||||
@@ -27,7 +28,11 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__APPLE__) || defined(__HAIKU__) || defined(MINIZIP_FOPEN_NO_64)
|
||||
#if defined(_WIN32)
|
||||
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
|
||||
#define FTELLO_FUNC(stream) _ftelli64(stream)
|
||||
#define FSEEKO_FUNC(stream, offset, origin) _fseeki64(stream, offset, origin)
|
||||
#elif defined(__APPLE__) || defined(IOAPI_NO_64)
|
||||
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
|
||||
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
|
||||
#define FTELLO_FUNC(stream) ftello(stream)
|
||||
@@ -38,14 +43,7 @@
|
||||
#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef _CRT_SECURE_NO_WARNINGS
|
||||
# define _CRT_SECURE_NO_WARNINGS
|
||||
#endif
|
||||
#ifdef HAVE_DIRENT_H
|
||||
# include <dirent.h>
|
||||
#endif
|
||||
#include "tinydir.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -64,11 +62,13 @@
|
||||
#endif
|
||||
|
||||
#include "zip.h"
|
||||
#include "ints.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#define USEWIN32IOAPI
|
||||
#include "iowin32.h"
|
||||
# if defined(_MSC_VER)
|
||||
# define snprintf _snprintf
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -80,7 +80,6 @@
|
||||
/* f: name of file to get info on, tmzip: return value: access,
|
||||
modification and creation times, dt: dostime */
|
||||
static int filetime(const char *f, tm_zip *tmzip, uLong *dt) {
|
||||
(void)tmzip;
|
||||
int ret = 0;
|
||||
{
|
||||
FILETIME ftLocal;
|
||||
@@ -98,7 +97,8 @@ static int filetime(const char *f, tm_zip *tmzip, uLong *dt) {
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#elif defined(__unix__) || defined(__unix) || defined(__APPLE__)
|
||||
#else
|
||||
#if defined(unix) || defined(__APPLE__)
|
||||
/* f: name of file to get info on, tmzip: return value: access,
|
||||
modification and creation times, dt: dostime */
|
||||
static int filetime(const char *f, tm_zip *tmzip, uLong *dt) {
|
||||
@@ -149,6 +149,7 @@ static int filetime(const char *f, tm_zip *tmzip, uLong *dt) {
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -166,11 +167,11 @@ static int check_exist_file(const char* filename) {
|
||||
|
||||
static void do_banner(void) {
|
||||
printf("MiniZip 1.1, demo of zLib + MiniZip64 package, written by Gilles Vollant\n");
|
||||
printf("more info on MiniZip at https://www.winimage.com/zLibDll/minizip.html\n\n");
|
||||
printf("more info on MiniZip at http://www.winimage.com/zLibDll/minizip.html\n\n");
|
||||
}
|
||||
|
||||
static void do_help(void) {
|
||||
printf("Usage : minizip [-r] [-o] [-a] [-0 to -9] [-p password] [-j] file.zip [files_to_add]\n\n" \
|
||||
printf("Usage : minizip [-o] [-a] [-0 to -9] [-p password] [-j] file.zip [files_to_add]\n\n" \
|
||||
" -r Scan directories recursively\n" \
|
||||
" -o Overwrite existing file.zip\n" \
|
||||
" -a Append to existing file.zip\n" \
|
||||
@@ -198,7 +199,7 @@ static int getFileCrc(const char* filenameinzip, void* buf, unsigned long size_b
|
||||
do
|
||||
{
|
||||
err = ZIP_OK;
|
||||
size_read = (unsigned long)fread(buf,1,size_buf,fin);
|
||||
size_read = fread(buf,1,size_buf,fin);
|
||||
if (size_read < size_buf)
|
||||
if (feof(fin)==0)
|
||||
{
|
||||
@@ -230,7 +231,7 @@ static int isLargeFile(const char* filename) {
|
||||
FSEEKO_FUNC(pFile, 0, SEEK_END);
|
||||
pos = (ZPOS64_T)FTELLO_FUNC(pFile);
|
||||
|
||||
printf("File : %s is %"PUI64" bytes\n", filename, pos);
|
||||
printf("File : %s is %llu bytes\n", filename, pos);
|
||||
|
||||
if(pos >= 0xffffffff)
|
||||
largeFile = 1;
|
||||
@@ -242,8 +243,8 @@ static int isLargeFile(const char* filename) {
|
||||
}
|
||||
|
||||
void addFileToZip(zipFile zf, const char *filenameinzip, const char *password, int opt_exclude_path,int opt_compress_level) {
|
||||
FILE * fin = NULL;
|
||||
size_t size_read;
|
||||
FILE * fin;
|
||||
int size_read;
|
||||
const char *savefilenameinzip;
|
||||
zip_fileinfo zi;
|
||||
unsigned long crcFile=0;
|
||||
@@ -291,7 +292,7 @@ void addFileToZip(zipFile zf, const char *filenameinzip, const char *password, i
|
||||
}
|
||||
if( lastslash != NULL )
|
||||
{
|
||||
savefilenameinzip = lastslash+1; /* base filename follows last slash. */
|
||||
savefilenameinzip = lastslash+1; // base filename follows last slash.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -320,7 +321,7 @@ void addFileToZip(zipFile zf, const char *filenameinzip, const char *password, i
|
||||
do
|
||||
{
|
||||
err = ZIP_OK;
|
||||
size_read = fread(buf,1,size_buf,fin);
|
||||
size_read = (int)fread(buf,1,size_buf,fin);
|
||||
if (size_read < size_buf)
|
||||
if (feof(fin)==0)
|
||||
{
|
||||
@@ -330,7 +331,7 @@ void addFileToZip(zipFile zf, const char *filenameinzip, const char *password, i
|
||||
|
||||
if (size_read>0)
|
||||
{
|
||||
err = zipWriteInFileInZip (zf,buf,(unsigned)size_read);
|
||||
err = zipWriteInFileInZip (zf,buf,size_read);
|
||||
if (err<0)
|
||||
{
|
||||
printf("error in writing %s in the zipfile\n",
|
||||
@@ -356,30 +357,28 @@ void addFileToZip(zipFile zf, const char *filenameinzip, const char *password, i
|
||||
|
||||
|
||||
void addPathToZip(zipFile zf, const char *filenameinzip, const char *password, int opt_exclude_path,int opt_compress_level) {
|
||||
#ifdef HAVE_DIRENT_H
|
||||
# if defined(_MSC_VER)
|
||||
# define snprintf _snprintf
|
||||
# endif
|
||||
tinydir_dir dir;
|
||||
int i;
|
||||
char newname[MAXFILENAME+1+MAXFILENAME+1];
|
||||
struct dirent *dp;
|
||||
|
||||
DIR *dir = opendir(filenameinzip);
|
||||
if (dir == NULL) {
|
||||
addFileToZip(zf,filenameinzip,password,opt_exclude_path,opt_compress_level);
|
||||
return;
|
||||
}
|
||||
while ((dp = readdir(dir)))
|
||||
tinydir_open_sorted(&dir, filenameinzip);
|
||||
|
||||
for (i = 0; i < dir.n_files; i++)
|
||||
{
|
||||
if(strcmp(dp->d_name,".")==0) continue;
|
||||
if(strcmp(dp->d_name,"..")==0) continue;
|
||||
snprintf(newname, sizeof(newname), "%.*s/%.*s", MAXFILENAME, filenameinzip, MAXFILENAME, dp->d_name);
|
||||
addPathToZip(zf,newname,password,opt_exclude_path,opt_compress_level);
|
||||
tinydir_file file;
|
||||
tinydir_readfile_n(&dir, &file, i);
|
||||
if(strcmp(file.name,".")==0) continue;
|
||||
if(strcmp(file.name,"..")==0) continue;
|
||||
snprintf(newname, sizeof(newname), "%.*s/%.*s", MAXFILENAME, dir.path, MAXFILENAME, file.name);
|
||||
if (file.is_dir)
|
||||
{
|
||||
addPathToZip(zf,newname,password,opt_exclude_path,opt_compress_level);
|
||||
} else {
|
||||
addFileToZip(zf,newname,password,opt_exclude_path,opt_compress_level);
|
||||
}
|
||||
}
|
||||
|
||||
closedir(dir);
|
||||
#else
|
||||
printf("-r option not supported");
|
||||
#endif
|
||||
tinydir_close(&dir);
|
||||
}
|
||||
|
||||
|
||||
@@ -393,7 +392,7 @@ int main(int argc, char *argv[]) {
|
||||
char filename_try[MAXFILENAME+16];
|
||||
int zipok;
|
||||
int err=0;
|
||||
unsigned long size_buf=0;
|
||||
size_t size_buf=0;
|
||||
void* buf=NULL;
|
||||
const char* password=NULL;
|
||||
|
||||
@@ -457,7 +456,7 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
else
|
||||
{
|
||||
int len;
|
||||
int i,len;
|
||||
int dot_found=0;
|
||||
|
||||
zipok = 1 ;
|
||||
@@ -533,7 +532,7 @@ int main(int argc, char *argv[]) {
|
||||
(argv[i][1]=='a') || (argv[i][1]=='A') ||
|
||||
(argv[i][1]=='p') || (argv[i][1]=='P') ||
|
||||
(argv[i][1]=='r') || (argv[i][1]=='R') ||
|
||||
((argv[i][1]>='0') && (argv[i][1]<='9'))) &&
|
||||
((argv[i][1]>='0') || (argv[i][1]<='9'))) &&
|
||||
(strlen(argv[i]) == 2)))
|
||||
{
|
||||
if(opt_recursive) {
|
||||
@@ -553,5 +552,5 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
free(buf);
|
||||
return err;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
includedir=@includedir@/minizip
|
||||
|
||||
Name: minizip
|
||||
Description: Minizip zip file manipulation library
|
||||
Requires:
|
||||
Version: @PACKAGE_VERSION@
|
||||
License: Zlib
|
||||
Libs: -L${libdir} -lminizip
|
||||
Libs.private: -lz
|
||||
Cflags: -I${includedir}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
exec_prefix=@CMAKE_INSTALL_PREFIX@
|
||||
libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
|
||||
sharedlibdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
|
||||
includedir=${exec_prefix}/@CMAKE_INSTALL_INCLUDEDIR@
|
||||
|
||||
Name: minizip
|
||||
Description: minizip compression library
|
||||
Version: @minizip_VERSION@
|
||||
|
||||
Requires:
|
||||
Libs: -L${libdir} -L${sharedlibdir} -lz -lminizip
|
||||
Cflags: -I${includedir}
|
||||
@@ -1,27 +0,0 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
set(_MINIZIP_supported_components "shared" "static")
|
||||
include(CMakeFindDependencyMacro)
|
||||
|
||||
if(@MINIZIP_ENABLE_BZIP2@)
|
||||
find_dependency(BZip2)
|
||||
endif(@MINIZIP_ENABLE_BZIP2@)
|
||||
|
||||
if(minizip_FIND_COMPONENTS)
|
||||
find_dependency(ZLIB CONFIG COMPONENTS ${minizip_FIND_COMPONENTS})
|
||||
|
||||
foreach(_comp ${minizip_FIND_COMPONENTS})
|
||||
if(NOT _comp IN_LIST _MINIZIP_supported_components)
|
||||
set(minizip_FOUND False)
|
||||
set(minizip_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}")
|
||||
endif(NOT _comp IN_LIST _MINIZIP_supported_components)
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/minizip-${_comp}.cmake")
|
||||
endforeach(_comp ${ZLIB_FIND_COMPONENTS})
|
||||
else(minizip_FIND_COMPONENTS)
|
||||
find_dependency(ZLIB CONFIG)
|
||||
|
||||
foreach(_component_config IN LISTS _MINIZIP_supported_components)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/minizip-${_component_config}.cmake")
|
||||
endforeach(_component_config IN LISTS _MINIZIP_supported_components)
|
||||
endif(minizip_FIND_COMPONENTS)
|
||||
@@ -5,9 +5,6 @@
|
||||
*/
|
||||
|
||||
/* Code */
|
||||
#ifndef _CRT_SECURE_NO_WARNINGS
|
||||
# define _CRT_SECURE_NO_WARNINGS
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -35,7 +32,7 @@ extern int ZEXPORT unzRepair(const char* file, const char* fileOut, const char*
|
||||
FILE* fpZip = fopen(file, "rb");
|
||||
FILE* fpOut = fopen(fileOut, "wb");
|
||||
FILE* fpOutCD = fopen(fileOutTmp, "wb");
|
||||
if (fpZip != NULL && fpOut != NULL && fpOutCD != NULL ) {
|
||||
if (fpZip != NULL && fpOut != NULL) {
|
||||
int entries = 0;
|
||||
uLong totalBytes = 0;
|
||||
char header[30];
|
||||
@@ -143,28 +140,28 @@ extern int ZEXPORT unzRepair(const char* file, const char* fileOut, const char*
|
||||
|
||||
/* Central directory entry */
|
||||
{
|
||||
char central[46];
|
||||
char header[46];
|
||||
char* comment = "";
|
||||
int comsize = (int) strlen(comment);
|
||||
WRITE_32(central, 0x02014b50);
|
||||
WRITE_16(central + 4, version);
|
||||
WRITE_16(central + 6, version);
|
||||
WRITE_16(central + 8, gpflag);
|
||||
WRITE_16(central + 10, method);
|
||||
WRITE_16(central + 12, filetime);
|
||||
WRITE_16(central + 14, filedate);
|
||||
WRITE_32(central + 16, crc);
|
||||
WRITE_32(central + 20, cpsize);
|
||||
WRITE_32(central + 24, uncpsize);
|
||||
WRITE_16(central + 28, fnsize);
|
||||
WRITE_16(central + 30, extsize);
|
||||
WRITE_16(central + 32, comsize);
|
||||
WRITE_16(central + 34, 0); /* disk # */
|
||||
WRITE_16(central + 36, 0); /* int attrb */
|
||||
WRITE_32(central + 38, 0); /* ext attrb */
|
||||
WRITE_32(central + 42, currentOffset);
|
||||
WRITE_32(header, 0x02014b50);
|
||||
WRITE_16(header + 4, version);
|
||||
WRITE_16(header + 6, version);
|
||||
WRITE_16(header + 8, gpflag);
|
||||
WRITE_16(header + 10, method);
|
||||
WRITE_16(header + 12, filetime);
|
||||
WRITE_16(header + 14, filedate);
|
||||
WRITE_32(header + 16, crc);
|
||||
WRITE_32(header + 20, cpsize);
|
||||
WRITE_32(header + 24, uncpsize);
|
||||
WRITE_16(header + 28, fnsize);
|
||||
WRITE_16(header + 30, extsize);
|
||||
WRITE_16(header + 32, comsize);
|
||||
WRITE_16(header + 34, 0); /* disk # */
|
||||
WRITE_16(header + 36, 0); /* int attrb */
|
||||
WRITE_32(header + 38, 0); /* ext attrb */
|
||||
WRITE_32(header + 42, currentOffset);
|
||||
/* Header */
|
||||
if (fwrite(central, 1, 46, fpOutCD) == 46) {
|
||||
if (fwrite(header, 1, 46, fpOutCD) == 46) {
|
||||
offsetCD += 46;
|
||||
|
||||
/* Filename */
|
||||
@@ -218,23 +215,23 @@ extern int ZEXPORT unzRepair(const char* file, const char* fileOut, const char*
|
||||
/* Final central directory */
|
||||
{
|
||||
int entriesZip = entries;
|
||||
char end[22];
|
||||
char* comment = ""; /* "ZIP File recovered by zlib/minizip/mztools"; */
|
||||
char header[22];
|
||||
char* comment = ""; // "ZIP File recovered by zlib/minizip/mztools";
|
||||
int comsize = (int) strlen(comment);
|
||||
if (entriesZip > 0xffff) {
|
||||
entriesZip = 0xffff;
|
||||
}
|
||||
WRITE_32(end, 0x06054b50);
|
||||
WRITE_16(end + 4, 0); /* disk # */
|
||||
WRITE_16(end + 6, 0); /* disk # */
|
||||
WRITE_16(end + 8, entriesZip); /* hack */
|
||||
WRITE_16(end + 10, entriesZip); /* hack */
|
||||
WRITE_32(end + 12, offsetCD); /* size of CD */
|
||||
WRITE_32(end + 16, offset); /* offset to CD */
|
||||
WRITE_16(end + 20, comsize); /* comment */
|
||||
WRITE_32(header, 0x06054b50);
|
||||
WRITE_16(header + 4, 0); /* disk # */
|
||||
WRITE_16(header + 6, 0); /* disk # */
|
||||
WRITE_16(header + 8, entriesZip); /* hack */
|
||||
WRITE_16(header + 10, entriesZip); /* hack */
|
||||
WRITE_32(header + 12, offsetCD); /* size of CD */
|
||||
WRITE_32(header + 16, offset); /* offset to CD */
|
||||
WRITE_16(header + 20, comsize); /* comment */
|
||||
|
||||
/* Header */
|
||||
if (fwrite(end, 1, 22, fpOutCD) == 22) {
|
||||
if (fwrite(header, 1, 22, fpOutCD) == 22) {
|
||||
|
||||
/* Comment field */
|
||||
if (comsize > 0) {
|
||||
@@ -282,12 +279,6 @@ extern int ZEXPORT unzRepair(const char* file, const char* fileOut, const char*
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (fpOutCD != NULL)
|
||||
fclose(fpOutCD);
|
||||
if (fpZip != NULL)
|
||||
fclose(fpZip);
|
||||
if (fpOut != NULL)
|
||||
fclose(fpOut);
|
||||
err = Z_STREAM_ERROR;
|
||||
}
|
||||
return err;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user