Compare commits
743 Commits
priyesh_Lo
...
master
Author | SHA1 | Date |
---|---|---|
Dominik Röttsches | a4c4566b6d | |
Dominik Röttsches | 5f19f49c81 | |
Werner Lemberg | e3ac7bb64a | |
Werner Lemberg | b4b7c3f607 | |
Werner Lemberg | c8a9c88975 | |
Werner Lemberg | 5d49473f85 | |
Werner Lemberg | e8ebfe988b | |
Anuj Verma | 7b3ebb9c12 | |
Werner Lemberg | 62bc04f4c5 | |
Brendan Shanks | 6fb7b7a09d | |
Alexei Podtelezhnikov | ed4d0710f1 | |
Alexei Podtelezhnikov | 581dd06405 | |
Xavier Claessens | d59c7ce1b9 | |
Werner Lemberg | 079a22da03 | |
Georg Brandl | 978eefee54 | |
Steve Lhomme | 3100c8120e | |
Ben Wagner | a1ca701023 | |
Werner Lemberg | aee6b94727 | |
Werner Lemberg | fc08295650 | |
Werner Lemberg | 1603378b91 | |
Eric Jing | 89d5cce58d | |
Werner Lemberg | 695d606ae5 | |
Ben Wagner | d247c56278 | |
Werner Lemberg | 385345037e | |
Werner Lemberg | 8a33164dad | |
Werner Lemberg | e50798b720 | |
Werner Lemberg | 87989a1435 | |
Werner Lemberg | 97cdbb24f7 | |
Werner Lemberg | 119e404b89 | |
Werner Lemberg | a8e4563c34 | |
Werner Lemberg | 1949a7ec3a | |
Werner Lemberg | ac4c1ebf7e | |
Werner Lemberg | 907715a6a2 | |
Werner Lemberg | 06727a5257 | |
Carlo Bramini | 127c1e8331 | |
Steve Lhomme | 0574692c6d | |
Werner Lemberg | fc15ebe0a6 | |
Ben Wagner | a960be9e5e | |
Werner Lemberg | d2c3bbcd8e | |
Werner Lemberg | 0c2bdb01a2 | |
Werner Lemberg | d014387ad4 | |
Ben Wagner | 7789f2bb79 | |
Werner Lemberg | 22a0cccb4d | |
Werner Lemberg | 53dfdcd819 | |
Werner Lemberg | 1e2eb65048 | |
Anuj Verma | 360e2507a3 | |
Anuj Verma | 2600ef637e | |
Anuj Verma | 5499d7bf81 | |
Ben Wagner | 335224beee | |
Ben Wagner | 034e5dbf92 | |
suzuki toshiya | bcdfa38692 | |
Werner Lemberg | 6c5522c6f8 | |
Werner Lemberg | ca46bc0cf2 | |
Werner Lemberg | 5b26e92a0f | |
Steve Lhomme | 20ec99be7e | |
Werner Lemberg | 01d4deb061 | |
Alexei Podtelezhnikov | 00ae29fcd2 | |
Werner Lemberg | 5a53e51b5c | |
Werner Lemberg | c67ecb8c3a | |
Werner Lemberg | 338b4e8846 | |
Alexei Podtelezhnikov | 1680885aa5 | |
Alexei Podtelezhnikov | 0447df71e7 | |
Alexei Podtelezhnikov | ed0e2e76d8 | |
Alexei Podtelezhnikov | 7c6b2f20b0 | |
Werner Lemberg | 24db55ecb8 | |
Alexei Podtelezhnikov | a173aead31 | |
Alexei Podtelezhnikov | dd8676b277 | |
Eric Jing | 56d182a74d | |
Alexei Podtelezhnikov | 8e39e42ee9 | |
Alexei Podtelezhnikov | c6dd509b99 | |
Alexei Podtelezhnikov | 946e1353ea | |
Werner Lemberg | 36ee3160a0 | |
Alexei Podtelezhnikov | 983d435865 | |
Alexei Podtelezhnikov | bee8886408 | |
Werner Lemberg | 7fd03a3e25 | |
Alexei Podtelezhnikov | da877c8693 | |
suzuki toshiya | 35740aa6a9 | |
Werner Lemberg | fa226478b1 | |
Alexei Podtelezhnikov | b34741c1cc | |
Ben Wagner | e34a860a07 | |
Anuj Verma | ab1c98ac18 | |
Tapish Ojha | 3d77756e73 | |
Werner Lemberg | 9476cb7eb3 | |
Alexei Podtelezhnikov | 837f0345a9 | |
Alexei Podtelezhnikov | 0ac535900b | |
Alexei Podtelezhnikov | 09223ef929 | |
Werner Lemberg | 267c6918d1 | |
Werner Lemberg | 9af1127fbe | |
Werner Lemberg | 8b7226bb43 | |
Werner Lemberg | 6a8e95b7a0 | |
Ben Wagner | 5e9caaee78 | |
Werner Lemberg | 657745212b | |
Werner Lemberg | ef48a33271 | |
Werner Lemberg | cddfe6574b | |
Werner Lemberg | 21d0fa3742 | |
Werner Lemberg | 9c1538525b | |
Werner Lemberg | 112527dd44 | |
Alexei Podtelezhnikov | 706c79a1da | |
Alexei Podtelezhnikov | 0d2b4952a3 | |
Werner Lemberg | 02fa26f4cd | |
Moazin Khatti | 0bf49bd229 | |
Moazin Khatti | 97c09a803e | |
Moazin Khatti | 5cf01aa2b2 | |
Moazin Khatti | f93a897afe | |
Moazin Khatti | 06c1a25e63 | |
Alexei Podtelezhnikov | 0b635b1eb2 | |
Alexei Podtelezhnikov | 99a940f84a | |
Alexei Podtelezhnikov | 054782c48e | |
Alexei Podtelezhnikov | 773e31c783 | |
Alexei Podtelezhnikov | d118bf8e35 | |
Ozkan Sezer | 3f6497bdc5 | |
Ben Wagner | 5e227133c1 | |
Alexei Podtelezhnikov | edd4fedc54 | |
Ozkan Sezer | 11ea89b51c | |
Alexei Podtelezhnikov | ba5d661f34 | |
Alexei Podtelezhnikov | 7f7bf6f0f0 | |
Alexei Podtelezhnikov | 7eb9a9dbbe | |
Alexei Podtelezhnikov | 81b81feb62 | |
Alexei Podtelezhnikov | 904ad21266 | |
Alexei Podtelezhnikov | ee52b57121 | |
Ben Wagner | 6ee8951956 | |
Werner Lemberg | b647dbdeb8 | |
Azamat H. Hackimov | ca44a236a0 | |
Ben Wagner | f1d3b9f10a | |
Ben Wagner | e838c37c2c | |
Dominik Röttsches | 3876846e26 | |
Werner Lemberg | d0cfb4e1b2 | |
Werner Lemberg | 947fddc8da | |
Werner Lemberg | 639a02154b | |
Werner Lemberg | 33626164e8 | |
Werner Lemberg | 4c0db60772 | |
Werner Lemberg | 2e62b7446b | |
Werner Lemberg | 4a89112b2a | |
Werner Lemberg | 3f9b78fc79 | |
Werner Lemberg | da8a8b8bcf | |
David Turner | a25e85ed95 | |
David Turner | 0d34386366 | |
Werner Lemberg | d276bcb7f0 | |
Alexei Podtelezhnikov | ca01112894 | |
Werner Lemberg | 7a493e3a40 | |
Werner Lemberg | bf9b1ef905 | |
Werner Lemberg | b5c2172f59 | |
Werner Lemberg | 5aa2a5c34a | |
Ben Wagner | afb4ca0151 | |
Werner Lemberg | 2b672e7210 | |
Alexander Borsuk | 4eb6cb8818 | |
Alexander Borsuk | 4f35711844 | |
Eli Schwartz | d6a5c57727 | |
Eli Schwartz | 57fd61805f | |
Eli Schwartz | e342f83c0b | |
Alexei Podtelezhnikov | 0da2a1155e | |
Alexei Podtelezhnikov | fd03dcc122 | |
Alexei Podtelezhnikov | 7add5b2bcb | |
Alexei Podtelezhnikov | a8ef33e3ae | |
Alexei Podtelezhnikov | 6c831d658f | |
Alexei Podtelezhnikov | 7809007a5b | |
Alexei Podtelezhnikov | a35b081ebc | |
Ben Wagner | bad92be927 | |
Alexei Podtelezhnikov | 012b00f3e6 | |
Cameron Cawley | 1f95189875 | |
Cameron Cawley | 9a533aa27f | |
Werner Lemberg | 3f83daeecb | |
Alexei Podtelezhnikov | 03380482ce | |
Seigo Nonaka | 3b45f564e9 | |
Alexei Podtelezhnikov | 64e26ad3a2 | |
Alexei Podtelezhnikov | 36a905e174 | |
Alexei Podtelezhnikov | 32f13c11a4 | |
Alexei Podtelezhnikov | cff026d415 | |
Alexei Podtelezhnikov | 99086bf224 | |
Werner Lemberg | 3cabd142ce | |
Werner Lemberg | 81912a1385 | |
Werner Lemberg | 407f31ff87 | |
Lukas Oberhuber | 896630bed6 | |
Werner Lemberg | a11650d7fa | |
Alexei Podtelezhnikov | f8a4163a45 | |
Werner Lemberg | 6da5f95fcf | |
Werner Lemberg | f5ce182420 | |
Werner Lemberg | 8c8f51c558 | |
Werner Lemberg | 9079c5d91a | |
Werner Lemberg | 238245cd66 | |
Werner Lemberg | e4f7673e46 | |
Werner Lemberg | 93e6b3e8e9 | |
Werner Lemberg | d31bafcb9c | |
Dominik Röttsches | 9597fd7b40 | |
Alexei Podtelezhnikov | cf55313650 | |
Alexei Podtelezhnikov | 42e617238a | |
Alexei Podtelezhnikov | c5cd2a3db4 | |
Alexei Podtelezhnikov | 188c7d6670 | |
Alexei Podtelezhnikov | 05089e8a07 | |
Werner Lemberg | d899b200f6 | |
Werner Lemberg | b86f96bce6 | |
Werner Lemberg | cce782281b | |
Werner Lemberg | 7ef266045f | |
Werner Lemberg | bb4e049abe | |
Alexei Podtelezhnikov | 9ebdc9cb1b | |
Alexei Podtelezhnikov | 7f4b9bfbc9 | |
Alexei Podtelezhnikov | c693377ed3 | |
Alexei Podtelezhnikov | cb9e7b7aac | |
Jany Belluz | fc55291b1c | |
Jany Belluz | 9ed5332fe6 | |
Jany Belluz | 23d1d8ada8 | |
Alexei Podtelezhnikov | 5d651faa70 | |
Gabor Kertesz | e6e6cbf164 | |
Dominik Röttsches | d3d3ff76d1 | |
Alexei Podtelezhnikov | 588a058d9b | |
Alexei Podtelezhnikov | 94cb3a2eb9 | |
Alexei Podtelezhnikov | 31fd054701 | |
Alexei Podtelezhnikov | 79b28d3781 | |
Alexei Podtelezhnikov | 793c012635 | |
Alexei Podtelezhnikov | a577bbcb5b | |
Werner Lemberg | 80b13f5732 | |
Ben Wagner | 535c67dda7 | |
Alexei Podtelezhnikov | f091e60c48 | |
Alexei Podtelezhnikov | 92f5e15f4f | |
Alexei Podtelezhnikov | 5e6efd6a4c | |
Gabor Kertesz | 80bd4cba7e | |
Ben Wagner | 65be4b2112 | |
Ben Wagner | b5e003f1f2 | |
Ben Wagner | fde91ab8f1 | |
Ben Wagner | 6d12e3a0ca | |
Alexei Podtelezhnikov | e990c33f21 | |
Werner Lemberg | 8ef8072ba1 | |
Alexei Podtelezhnikov | 38b349c41b | |
Werner Lemberg | de9faa53ed | |
Alexei Podtelezhnikov | 986d503f4a | |
Alexei Podtelezhnikov | 30ca63d4fb | |
Alexei Podtelezhnikov | afd1cb2881 | |
Ben Wagner | c71eb22dde | |
Ben Wagner | 8406ae5324 | |
Werner Lemberg | 0b92c56c34 | |
Anurag Thakur | 943a6bf7e6 | |
Anurag Thakur | ede96b239b | |
Alexei Podtelezhnikov | e294a95ca8 | |
Alexei Podtelezhnikov | 1029eb9377 | |
Alexei Podtelezhnikov | 77bd46e959 | |
Alexei Podtelezhnikov | 3b036820d6 | |
Alexei Podtelezhnikov | 012b4f2d48 | |
Alexei Podtelezhnikov | 946df22165 | |
Alexei Podtelezhnikov | 0313a11c4c | |
Alexei Podtelezhnikov | 22befeef82 | |
Jan Alexander Steffens (heftig) | 842ec5ed62 | |
Alexei Podtelezhnikov | 0f23ae2e80 | |
Alexei Podtelezhnikov | a156040600 | |
Hugh McMaster | 467e49e817 | |
Alexei Podtelezhnikov | bbab0a675e | |
Alexei Podtelezhnikov | ec6a458821 | |
Alexei Podtelezhnikov | 227445f613 | |
Alexei Podtelezhnikov | d102a51438 | |
AnuthaDev | 3a65f1a215 | |
Alexei Podtelezhnikov | 311764fabb | |
Alexei Podtelezhnikov | 68fae526c4 | |
Alexei Podtelezhnikov | 1d79c892cf | |
Alexei Podtelezhnikov | dd0ccdc3d3 | |
Alexei Podtelezhnikov | 12ef831fc3 | |
Alexei Podtelezhnikov | 766b2c19e2 | |
Alexei Podtelezhnikov | a69320a9b2 | |
Alexei Podtelezhnikov | a29e020059 | |
Werner Lemberg | 6d19b29fbc | |
Alexei Podtelezhnikov | 3b573e4527 | |
Alexei Podtelezhnikov | 90b14882ec | |
Alexei Podtelezhnikov | b4dddd8244 | |
Alexei Podtelezhnikov | 93866bec77 | |
Alexei Podtelezhnikov | 892e7eadc9 | |
Alexei Podtelezhnikov | 6190360967 | |
Alexei Podtelezhnikov | 71969d1edf | |
Alexei Podtelezhnikov | 529158983d | |
Alexei Podtelezhnikov | 0b429b609c | |
Edwin Steiner | 6e1ef98a04 | |
Alexei Podtelezhnikov | fce74b7365 | |
Alexei Podtelezhnikov | 79d14cc256 | |
Alexei Podtelezhnikov | ae516e6a43 | |
Alexei Podtelezhnikov | 801b7540dc | |
Alexei Podtelezhnikov | 49270c1701 | |
Alexei Podtelezhnikov | 9a4c846e60 | |
Alexei Podtelezhnikov | 0a8ee851e0 | |
Alexei Podtelezhnikov | 731d0b6856 | |
Alexei Podtelezhnikov | 058f3f2d7d | |
Alexei Podtelezhnikov | 59b43ae663 | |
Alexei Podtelezhnikov | 073ff2d77e | |
Alexei Podtelezhnikov | fab94f9fcc | |
Alexei Podtelezhnikov | c1fa7aa2bc | |
Alexei Podtelezhnikov | a8e8d9d7a4 | |
Alexei Podtelezhnikov | 9870b6c07e | |
Alexei Podtelezhnikov | 2d57b05928 | |
Alexei Podtelezhnikov | 5b626281f1 | |
Alexei Podtelezhnikov | e942a31007 | |
Alexei Podtelezhnikov | c350aac099 | |
Alexei Podtelezhnikov | 63806aad9f | |
Werner Lemberg | 77dcc5ed6a | |
Alexei Podtelezhnikov | 7e26c7a6da | |
Werner Lemberg | 60a93ea231 | |
Alexei Podtelezhnikov | aee1fd3bb8 | |
Alexei Podtelezhnikov | 7bf655b228 | |
Werner Lemberg | d1d3dc0235 | |
Alexei Podtelezhnikov | 7f8f0c1c70 | |
Alexei Podtelezhnikov | a7b199d081 | |
Alexei Podtelezhnikov | 0a6f0f8fed | |
Alexei Podtelezhnikov | a81cf5aade | |
Alexei Podtelezhnikov | 7482c98f15 | |
Alexei Podtelezhnikov | 612925ff22 | |
Alexei Podtelezhnikov | efa1a35907 | |
Alexei Podtelezhnikov | b6c11d494e | |
Werner Lemberg | d1c2000504 | |
Alexei Podtelezhnikov | 6804ce2986 | |
Ben Wagner | a842a0984b | |
Alexei Podtelezhnikov | 3785393d1a | |
Alexei Podtelezhnikov | 686e2a5eb3 | |
Alexei Podtelezhnikov | f7f9cb0dde | |
suzuki toshiya | 5031835790 | |
suzuki toshiya | c4fc0e690c | |
suzuki toshiya | 992382ba29 | |
suzuki toshiya | 2b3ccd6e26 | |
suzuki toshiya | 1c23982dd2 | |
Alexei Podtelezhnikov | 78f2bd0bd3 | |
Alexei Podtelezhnikov | d92aa23fd7 | |
Alexei Podtelezhnikov | d62d583d92 | |
Alexei Podtelezhnikov | 6e9d8d314f | |
Alexei Podtelezhnikov | de3b5c201c | |
Carlo Bramini | f0f00f7c16 | |
Alexei Podtelezhnikov | ffdac8d67e | |
Dominik Röttsches | 633fe08764 | |
Alexei Podtelezhnikov | 02ba0fc81e | |
Alexei Podtelezhnikov | 857038399a | |
Alexei Podtelezhnikov | e2cceed857 | |
Werner Lemberg | f44c2d5860 | |
Werner Lemberg | f11f3ed15b | |
Alexei Podtelezhnikov | 536a10aca8 | |
Alexei Podtelezhnikov | 5116f12963 | |
Werner Lemberg | fed5521016 | |
Dominik Röttsches | e40ae7569a | |
Werner Lemberg | 2c853b38a7 | |
Werner Lemberg | 18fc64e6a3 | |
Dominik Röttsches | 47cf8ebf4a | |
Werner Lemberg | 6be8bfe499 | |
Werner Lemberg | 09195a82a4 | |
Anuj Verma | be6ab31900 | |
Anuj Verma | ebcc96e559 | |
Heiko Becker | 47b1a541cb | |
Werner Lemberg | d2367abac0 | |
Dominik Röttsches | 30a82e1e5d | |
Dominik Röttsches | 5c0ac7a435 | |
Dominik Röttsches | 66189807b8 | |
Dominik Röttsches | 48df0fa652 | |
Dominik Röttsches | d7bdcb1bb5 | |
AnuthaDev | 6af39c3d76 | |
Werner Lemberg | ba47af32ba | |
Werner Lemberg | c2fa51d9bd | |
AnuthaDev | 28c2d7f31c | |
AnuthaDev | 1f742f05bf | |
Ben Wagner | 5bcaf51b61 | |
Werner Lemberg | 801cd842e2 | |
Ben Wagner | 4082b863c1 | |
David Turner | 357b353c2a | |
Alex Richardson | 7bc0f48c27 | |
Werner Lemberg | 685acc04db | |
Alex Richardson | c35961a925 | |
Werner Lemberg | 552fc97fe5 | |
Werner Lemberg | 93771d619f | |
Ben Wagner | c37c087382 | |
David Turner | 56cc2ad446 | |
David Turner | 86b9c9347f | |
David Turner | 5ec7f58831 | |
Alex Richardson | f7c6a06cb7 | |
Oleg Oshmyan | 5d27b10f4c | |
Oleg Oshmyan | a4c8f21ae7 | |
Anuj Verma | e592982a83 | |
Alex Richardson | c5516e0f7c | |
Werner Lemberg | 825b7ea2f2 | |
Werner Lemberg | 205d1ae43e | |
David Turner | a212668c9f | |
David Turner | 2f11522a2a | |
David Turner | 15e889800a | |
Werner Lemberg | 59e95b014a | |
Werner Lemberg | 50d0033f7e | |
Werner Lemberg | 89c60eca67 | |
Werner Lemberg | 5e32a03496 | |
Werner Lemberg | a399fb89dc | |
Werner Lemberg | 4cb8a88ac7 | |
Ben Wagner | d3dc2da9b2 | |
Dominik Röttsches | 286da6c528 | |
Dominik Röttsches | 0348c627b1 | |
Alexei Podtelezhnikov | f27b4834b7 | |
Werner Lemberg | 90ecac4118 | |
Alexei Podtelezhnikov | 69c3516c88 | |
Alexei Podtelezhnikov | 3696ac5a18 | |
Anurag Thakur | 7be47010e9 | |
Werner Lemberg | e1b1b5422c | |
Alexei Podtelezhnikov | c852388df7 | |
Dominik Röttsches | 7d4e55c329 | |
Alexei Podtelezhnikov | 3a278381ae | |
Alexei Podtelezhnikov | fb4511eb9a | |
Alexei Podtelezhnikov | f6370e2f05 | |
Alexei Podtelezhnikov | bc1029b9c5 | |
Werner Lemberg | ff40776591 | |
Alexei Podtelezhnikov | 1e0cef9e72 | |
Alexei Podtelezhnikov | d8ac180c88 | |
Werner Lemberg | 1e65e6051a | |
Dominik Röttsches | 4cb21b9a92 | |
Dominik Röttsches | 284eec1e18 | |
Werner Lemberg | bcd73f7dbc | |
Werner Lemberg | 008e42a12c | |
Werner Lemberg | b460a50610 | |
Werner Lemberg | 232243e749 | |
Alexei Podtelezhnikov | 61bac75963 | |
Werner Lemberg | 482c57cc34 | |
David Turner | f8c5c54680 | |
David Turner | 6f273f6878 | |
Alexei Podtelezhnikov | c6fcd61228 | |
Alexei Podtelezhnikov | 8336d53cff | |
Werner Lemberg | db0f2c448e | |
Werner Lemberg | a34afe6786 | |
Alexei Podtelezhnikov | 9bfecfd2b6 | |
Alexei Podtelezhnikov | 7833e308ef | |
Alexei Podtelezhnikov | 8dc02fb999 | |
Werner Lemberg | 08f66322e3 | |
Werner Lemberg | d586927d16 | |
Werner Lemberg | 640f654bd1 | |
Werner Lemberg | b24cfc8dcc | |
Dominik Röttsches | ee6d03d369 | |
Werner Lemberg | 41fa19fcea | |
Werner Lemberg | 35b21c71e5 | |
Werner Lemberg | 36ee71714f | |
Anuj Verma | 2b1d556269 | |
Ben Wagner | 2a6665a4c0 | |
Werner Lemberg | 7ca7da9d13 | |
Werner Lemberg | 0abbc9f512 | |
Werner Lemberg | 6e253b26b2 | |
Werner Lemberg | a50c39aa8e | |
Werner Lemberg | 2bfdc161fb | |
Alexei Podtelezhnikov | 28eee3636c | |
Werner Lemberg | 0d1c306e51 | |
Werner Lemberg | 5f485339be | |
Alexei Podtelezhnikov | 16947c0eb1 | |
Alexei Podtelezhnikov | 2468e59af1 | |
Nikolaus Waxweiler | ebf9e5ac71 | |
Ben Wagner | 06e21ffedf | |
Alexei Podtelezhnikov | 81852fbccc | |
Alexei Podtelezhnikov | 1bc801b0d6 | |
Daniel McArdle | de15165774 | |
Alexei Podtelezhnikov | 2d3f5dd294 | |
Alexei Podtelezhnikov | c653b8d2f1 | |
Alexei Podtelezhnikov | 8f43d324d1 | |
Alexei Podtelezhnikov | b070264521 | |
Alexei Podtelezhnikov | 967a34eee3 | |
Alexei Podtelezhnikov | 2f62d8e075 | |
Alexei Podtelezhnikov | 79ed536d01 | |
Alexei Podtelezhnikov | 44c59414eb | |
Alexei Podtelezhnikov | 998c7c0f1c | |
Alexei Podtelezhnikov | 2d95784885 | |
Alexei Podtelezhnikov | 8150ed0db2 | |
Ben Wagner | 82fd32d674 | |
Alexei Podtelezhnikov | 66630d882c | |
Alexei Podtelezhnikov | ec95f9c921 | |
Alexei Podtelezhnikov | d911cb5392 | |
Alexei Podtelezhnikov | dc42f826af | |
Alexei Podtelezhnikov | b8968d666e | |
Alexei Podtelezhnikov | 2583b6085e | |
Alexei Podtelezhnikov | 56ae943050 | |
Alexei Podtelezhnikov | c177cc354d | |
Alexei Podtelezhnikov | 4e1c6a12e5 | |
Alexei Podtelezhnikov | f631542dae | |
Alexei Podtelezhnikov | c213c8a9bb | |
Werner Lemberg | 2ec6feaf39 | |
Alexei Podtelezhnikov | caff87b1f9 | |
Alexei Podtelezhnikov | 8750e843df | |
Alexei Podtelezhnikov | 618d0834c7 | |
Alexei Podtelezhnikov | b0a281974d | |
Alexei Podtelezhnikov | deee5b7017 | |
Alexei Podtelezhnikov | 270ff52f62 | |
Alexei Podtelezhnikov | c2d283143a | |
Issam E. Maghni | f998eaf972 | |
Alexei Podtelezhnikov | c78f78fab4 | |
Alexei Podtelezhnikov | 0bd5d95d66 | |
Alexei Podtelezhnikov | e6e5b67db3 | |
Alexei Podtelezhnikov | 6ada59ab7c | |
Alexei Podtelezhnikov | ec9e5114b1 | |
Alexei Podtelezhnikov | baa0f71ddf | |
Alexei Podtelezhnikov | b3438ccb31 | |
Alexei Podtelezhnikov | 1e525c62ae | |
Alexei Podtelezhnikov | a0fb6dbcd9 | |
Alexei Podtelezhnikov | 23f85c8a98 | |
Alexei Podtelezhnikov | 93715ab2c4 | |
Alexei Podtelezhnikov | 90b97a833d | |
Alexei Podtelezhnikov | 44b1ebe514 | |
Alexei Podtelezhnikov | 8a459e5172 | |
Alexei Podtelezhnikov | 361465dec9 | |
Dominik Röttsches | e662a9500f | |
Alexei Podtelezhnikov | 7c685cb3f6 | |
Alexei Podtelezhnikov | 02dec61731 | |
Daniel Welty | 2e68785e08 | |
Werner Lemberg | 6f6ad87638 | |
Dominik Röttsches | 7f8a1edd3a | |
Alexei Podtelezhnikov | b9b74f9f78 | |
Ben Wagner | f9350be1e4 | |
Ben Wagner | 52f2a008f1 | |
Ben Wagner | 369d8be97f | |
Dominik Röttsches | 1c0862938d | |
nikramakrishnan | c1e1a07f79 | |
Alexei Podtelezhnikov | e9c50fa77d | |
Ben Wagner | b0729b8fbb | |
Christopher Degawa | 66005cbae1 | |
Werner Lemberg | 1578e570cd | |
Alexei Podtelezhnikov | fb9bf2efae | |
Werner Lemberg | 2149b51f25 | |
Alexei Podtelezhnikov | 80bda804d5 | |
Alexei Podtelezhnikov | d5b7de5541 | |
Alexei Podtelezhnikov | 8516849977 | |
Werner Lemberg | fedd945c3e | |
Tim-Philipp Müller | 7252e35ed2 | |
Tim-Philipp Müller | e222932810 | |
Tim-Philipp Müller | bb42afbda0 | |
Xavier Claessens | d69d9c2397 | |
Werner Lemberg | 7227aabb3e | |
Jesse Towner | dbf9142f7e | |
Werner Lemberg | f7d7e7f9f7 | |
Werner Lemberg | ff34ea8eda | |
Werner Lemberg | e1f364e509 | |
Werner Lemberg | df7fcafe6e | |
Werner Lemberg | 111f2f27b5 | |
Werner Lemberg | eca35e04fc | |
Werner Lemberg | 635d394fe3 | |
Werner Lemberg | c3a0b43ec6 | |
Werner Lemberg | dfa7cca5f3 | |
Werner Lemberg | 92bd99bd25 | |
Dominik Röttsches | 215ae25330 | |
Daniel E | b2aeca5fda | |
Werner Lemberg | 7849316ccf | |
Werner Lemberg | d51452e3ec | |
Werner Lemberg | d93a011933 | |
Alexei Podtelezhnikov | 70fd20e67e | |
Dominik Röttsches | 54c5ad5c92 | |
Werner Lemberg | c8dede7b1c | |
Dominik Röttsches | 64f01bfedd | |
Xavier Claessens | cc90307d71 | |
Xavier Claessens | 3dbdb78a25 | |
Xavier Claessens | 2c40559609 | |
Xavier Claessens | e11cc40a2e | |
Xavier Claessens | 69e0faa893 | |
Xavier Claessens | 0565c5ba2b | |
Xavier Claessens | 5c81e09b17 | |
Xavier Claessens | 1b69fb9bdb | |
Werner Lemberg | 947e475283 | |
Werner Lemberg | d924a66a5c | |
Alexei Podtelezhnikov | fd7f92b6f0 | |
Werner Lemberg | 0636dc8af1 | |
Alexei Podtelezhnikov | d3befe1c72 | |
Werner Lemberg | 5635d5edc4 | |
Werner Lemberg | 689402418f | |
Werner Lemberg | 4554c6da42 | |
Werner Lemberg | 324612ceb2 | |
Werner Lemberg | 939e844468 | |
Alexei Podtelezhnikov | 7ae5609dbe | |
Alexei Podtelezhnikov | 4c3bd2ab93 | |
Werner Lemberg | 601c5a611e | |
Vincent Torri | bb33f03a71 | |
Werner Lemberg | c7cc947c0f | |
Werner Lemberg | 209e9841f2 | |
Alexei Podtelezhnikov | 8dc311320c | |
Werner Lemberg | 60ba8fe9e7 | |
Werner Lemberg | 0606350c2a | |
Alexei Podtelezhnikov | b594cd90bd | |
Nikolaus Waxweiler | f1f9705f93 | |
Werner Lemberg | d35c7f7cba | |
Werner Lemberg | b6e8a71266 | |
Werner Lemberg | 4278ee6ca0 | |
Alexei Podtelezhnikov | 4e7a01840d | |
Werner Lemberg | 5e4ed8ba2b | |
Werner Lemberg | b0f86752a5 | |
Werner Lemberg | 89184195b4 | |
Dominik Röttsches | 268bdd7764 | |
Werner Lemberg | ba1a6acf28 | |
Dominik Röttsches | 53fea87745 | |
Dominik Röttsches | 4b58cf47cc | |
Dominik Röttsches | d3e95d97a0 | |
Dominik Röttsches | 6260b4901c | |
Dominik Röttsches | be06a9d002 | |
Dominik Röttsches | cdad4db424 | |
Dominik Röttsches | 9e422b67c8 | |
Dominik Röttsches | 08dba4dc35 | |
Dominik Röttsches | f57c24db63 | |
Werner Lemberg | 03ceda9701 | |
Alexei Podtelezhnikov | 3431553836 | |
Alexei Podtelezhnikov | 0901a6f74c | |
Alexei Podtelezhnikov | 6f24bab68c | |
Alexei Podtelezhnikov | 576403f22b | |
Werner Lemberg | cbc14b10e6 | |
Werner Lemberg | 8afc185433 | |
Alexei Podtelezhnikov | 6369058eee | |
Werner Lemberg | f88c00e45a | |
Torsten Hilbrich | c6345ca36d | |
Alexei Podtelezhnikov | 74f1b6be4a | |
Werner Lemberg | c6ff2556c8 | |
Werner Lemberg | bca740d566 | |
Werner Lemberg | b6c8542dfc | |
Anuj Verma | 10a5dfec7f | |
Werner Lemberg | a8d3ad3539 | |
Werner Lemberg | 286e9e0d72 | |
Werner Lemberg | 3c983eb84a | |
Werner Lemberg | aa1b5362d3 | |
Werner Lemberg | 04a6443254 | |
Werner Lemberg | eb2b5bb107 | |
Anuj Verma | b298a64464 | |
Anuj Verma | 6444875f68 | |
Anuj Verma | 6cd6df55c9 | |
Anuj Verma | d27d107f15 | |
Anuj Verma | a21134751c | |
Anuj Verma | e2ae96b978 | |
Anuj Verma | 6b9a8044be | |
Anuj Verma | 0f644f38e9 | |
Anuj Verma | c576176461 | |
Anuj Verma | 9bbb3611b3 | |
Anuj Verma | c6f394bf7d | |
Anuj Verma | 05f6088df3 | |
Anuj Verma | 879ca87f0b | |
Anuj Verma | 665ac96792 | |
Anuj Verma | 1010f2c39c | |
Anuj Verma | 986d3108ac | |
Anuj Verma | 0d52f4ae0a | |
Anuj Verma | 81e32986ca | |
Anuj Verma | c918b54f25 | |
Anuj Verma | a255125fe4 | |
Anuj Verma | cd4138458a | |
Anuj Verma | 2de1b5630d | |
Anuj Verma | cf0464d855 | |
Anuj Verma | c6ec87ec48 | |
Anuj Verma | 56d27d32c4 | |
Anuj Verma | 216270327d | |
Anuj Verma | cd6ff28a17 | |
Anuj Verma | 5a1b9d014b | |
Anuj Verma | ec9b6c314d | |
Anuj Verma | 3b9196c467 | |
Werner Lemberg | 2373074a2c | |
Ignacio Casal Quinteiro | 768022b98e | |
Tatsuyuki Ishi | 0d5f1dd37c | |
Werner Lemberg | 7bdf386e75 | |
Alexei Podtelezhnikov | c948df52e4 | |
Alexei Podtelezhnikov | 84b3616c94 | |
Chris Liddell | f6be92767d | |
Alexei Podtelezhnikov | 9cc89717be | |
Werner Lemberg | a3edbfa983 | |
Werner Lemberg | bd6d8e4204 | |
Werner Lemberg | 505943a6a4 | |
Werner Lemberg | 272ae5ee2a | |
Werner Lemberg | 015a9b8d8f | |
Werner Lemberg | 9f94d8533c | |
Werner Lemberg | 7d3ab6a7db | |
Werner Lemberg | a6adb25626 | |
Werner Lemberg | 74822f64b0 | |
Werner Lemberg | c764686bc9 | |
Werner Lemberg | 92db149e9c | |
Werner Lemberg | f6b0fd7b79 | |
Werner Lemberg | fcdab61ed1 | |
Werner Lemberg | 741a690ad6 | |
Werner Lemberg | 1c229af2d2 | |
Werner Lemberg | 047f295fac | |
Werner Lemberg | 7691588098 | |
Priyesh Kumar | 33bd25ca07 | |
Werner Lemberg | ce43d808dc | |
Priyesh Kumar | ab0ea068ee | |
Priyesh Kumar | 6d9e6b21e5 | |
Priyesh Kumar | 2a5d8e8ff8 | |
Priyesh Kumar | 2a46d1f04e | |
Priyesh Kumar | 5fea76cf0f | |
Priyesh Kumar | d00cbc3f90 | |
Priyesh Kumar | d46bada285 | |
Priyesh Kumar | 34b1c897c1 | |
Priyesh Kumar | 8da4b437b4 | |
Werner Lemberg | 8cc4d0dc32 | |
Werner Lemberg | 56c610b145 | |
Werner Lemberg | 3facafa44e | |
Alexei Podtelezhnikov | 5abd252a0a | |
Alexei Podtelezhnikov | 1286f58c29 | |
Werner Lemberg | 32b14552d6 | |
Werner Lemberg | 26e2a89598 | |
Werner Lemberg | 0bd50c9043 | |
Werner Lemberg | 5d91600904 | |
Jan Alexander Steffens (heftig) | 22bb0660a3 | |
Alexei Podtelezhnikov | b049cadeb1 | |
Werner Lemberg | 6fca2e5b1b | |
Alexei Podtelezhnikov | 681c7e2387 | |
Alexei Podtelezhnikov | 5cbd052dfb | |
Werner Lemberg | e9a7015ec8 | |
Werner Lemberg | 101e62a286 | |
Werner Lemberg | 804e625def | |
Werner Lemberg | 40c5681ab9 | |
Ben Wagner | 007c109b45 | |
Werner Lemberg | 6a2b3e4007 | |
Werner Lemberg | a3bab162b2 | |
Alexei Podtelezhnikov | 840ce58f94 | |
Alexei Podtelezhnikov | a93f50b611 | |
Alexei Podtelezhnikov | 82d331556c | |
Werner Lemberg | 337670af0a | |
Werner Lemberg | c9f588be56 | |
Werner Lemberg | 40479fad93 | |
Werner Lemberg | e8ee98e669 | |
Werner Lemberg | 4f13a43ab3 | |
Werner Lemberg | bed960d948 | |
Werner Lemberg | 3ce0df52e2 | |
David Turner | d686f2ff9c | |
Werner Lemberg | 46417607e6 | |
David Turner | 66978a5887 | |
Alexei Podtelezhnikov | ab6a21b733 | |
Alexei Podtelezhnikov | 20186d1be6 | |
Alexei Podtelezhnikov | c3721642f1 | |
Alexei Podtelezhnikov | cb47331369 | |
Alexei Podtelezhnikov | 3594eaee59 | |
Nikolaus Waxweiler | fa82803f46 | |
Boris Dalstein | 69353a19a1 | |
Alexei Podtelezhnikov | 600d59e343 | |
Alexei Podtelezhnikov | 51a5e3389c | |
Alexei Podtelezhnikov | e6c7e4b42b | |
Alexei Podtelezhnikov | 16ee2a22ab | |
Alexei Podtelezhnikov | d8228a0070 | |
Alexei Podtelezhnikov | 6730854c39 | |
Werner Lemberg | cdc009c24a | |
Alexei Podtelezhnikov | f9f6adb625 | |
Alexei Podtelezhnikov | 3a1f4b7aaa | |
Werner Lemberg | 8b3601324f | |
Alexei Podtelezhnikov | 986a340dd5 | |
Alexei Podtelezhnikov | f76f7fdecd | |
Anuj Verma | 3273521f40 | |
Werner Lemberg | fffc303a7f | |
Priyesh Kumar | 53be1753de | |
Werner Lemberg | 8cfc41ae95 | |
Werner Lemberg | b6183ea369 | |
David Turner | ee19a6cbbc | |
Werner Lemberg | b7c467b6ef | |
David Turner | 5fe7c044c2 | |
Werner Lemberg | 95de21ab19 | |
Werner Lemberg | c922ffa5d2 | |
Ben Wagner | b1286b32a9 | |
Werner Lemberg | 96fb73efd5 | |
David Turner | 0f35b042e0 | |
David Turner | cb4a943bc4 | |
Werner Lemberg | 2eb8f88626 | |
David Turner | b0667d2d36 | |
David Turner | bb66c8d8cf | |
David Turner | 0322efb5e5 | |
David Turner | bd7251ac97 | |
David Turner | a4d9206754 | |
Alexei Podtelezhnikov | 3bb512bc9f | |
Alexei Podtelezhnikov | 19d39f43d2 | |
Alexei Podtelezhnikov | 2d67511a14 |
|
@ -0,0 +1,16 @@
|
||||||
|
BasedOnStyle: Chromium
|
||||||
|
AlignAfterOpenBracket: Align
|
||||||
|
AlignConsecutiveAssignments: true
|
||||||
|
AlignConsecutiveDeclarations: true
|
||||||
|
AlignConsecutiveMacros: true
|
||||||
|
AlignEscapedNewlines: true
|
||||||
|
# AlignOperands: Align
|
||||||
|
AlignTrailingComments: true
|
||||||
|
AlwaysBreakAfterReturnType: AllDefinitions
|
||||||
|
BreakBeforeBraces: Allman
|
||||||
|
ColumnLimit: 80
|
||||||
|
DerivePointerAlignment: false
|
||||||
|
IndentCaseLabels: false
|
||||||
|
PointerAlignment: Left
|
||||||
|
SpaceBeforeParens: ControlStatements
|
||||||
|
SpacesInParentheses: true
|
|
@ -1,3 +1,7 @@
|
||||||
config.mk
|
/build/
|
||||||
objs/vc2010/
|
/config.mk
|
||||||
build
|
include/dlg/
|
||||||
|
src/dlg/dlg.c
|
||||||
|
subprojects/*
|
||||||
|
!subprojects/*.wrap
|
||||||
|
/tests/data/*
|
||||||
|
|
|
@ -0,0 +1,230 @@
|
||||||
|
# CI setup for FreeType.
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- build
|
||||||
|
|
||||||
|
# FIXME: Use --werror once warnings are fixed.
|
||||||
|
variables:
|
||||||
|
MESON_ARGS: --fatal-meson-warnings --default-library=both
|
||||||
|
MESON_ARGS_WINDOWS: ${MESON_ARGS} --force-fallback-for=zlib
|
||||||
|
|
||||||
|
.build windows common:
|
||||||
|
# See
|
||||||
|
# https://gitlab.freedesktop.org/gstreamer/gst-ci/container_registry/213
|
||||||
|
image: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/windows:2021-09-09.0-master'
|
||||||
|
stage: 'build'
|
||||||
|
tags:
|
||||||
|
- 'docker'
|
||||||
|
- 'windows'
|
||||||
|
- '1809'
|
||||||
|
- 'gstreamer-windows'
|
||||||
|
|
||||||
|
.build linux common:
|
||||||
|
# See
|
||||||
|
# https://gitlab.freedesktop.org/freetype/docker-images/container_registry/20896
|
||||||
|
image: 'registry.freedesktop.org/freetype/docker-images/debian:latest'
|
||||||
|
stage: 'build'
|
||||||
|
|
||||||
|
.build macos common:
|
||||||
|
stage: 'build'
|
||||||
|
tags:
|
||||||
|
- 'gst-macos-11.1'
|
||||||
|
|
||||||
|
.build windows meson:
|
||||||
|
extends: '.build windows common'
|
||||||
|
variables:
|
||||||
|
# Make sure any failure in PowerShell scripts is fatal.
|
||||||
|
ErrorActionPreference: 'Stop'
|
||||||
|
WarningPreference: 'Stop'
|
||||||
|
# Uncomment the following key if you need to pass custom args, as well
|
||||||
|
# with the `$env:MESON_ARGS` line in the `script:` blocks.
|
||||||
|
# MESON_ARGS: >-
|
||||||
|
# -Dfoo=enabled
|
||||||
|
# -Dbar=disabled
|
||||||
|
before_script:
|
||||||
|
# Update RootCAs in order to access to some sites.
|
||||||
|
- certutil -generateSSTFromWU "C:\roots.sst"
|
||||||
|
- Import-Certificate -CertStoreLocation "Cert:\LocalMachine\Root" "C:\roots.sst"
|
||||||
|
# Make sure meson is up to date so we don't need to rebuild the image
|
||||||
|
# with each release.
|
||||||
|
- pip3 install meson==0.59.1
|
||||||
|
- pip3 install --upgrade certifi
|
||||||
|
- pip3 install -U ninja
|
||||||
|
|
||||||
|
# Generate a UWP cross-file in case it's used
|
||||||
|
- $PSDefaultParameterValues['Out-File:Encoding'] = 'ASCII'
|
||||||
|
- echo "[binaries]" > uwp-crossfile.meson
|
||||||
|
- echo "c = 'cl'" >> uwp-crossfile.meson
|
||||||
|
- echo "strip = ['true']" >> uwp-crossfile.meson
|
||||||
|
- echo "[built-in options]" >> uwp-crossfile.meson
|
||||||
|
- echo "c_args = ['-DWINAPI_FAMILY=WINAPI_FAMILY_APP', '-DUNICODE', '-D_WIN32_WINNT=0x0A00', '-we4013']" >> uwp-crossfile.meson
|
||||||
|
- echo "c_winlibs = ['windowsapp.lib']" >> uwp-crossfile.meson
|
||||||
|
script:
|
||||||
|
# For some reason, options are separated by newlines instead of spaces,
|
||||||
|
# so we have to replace them first.
|
||||||
|
#
|
||||||
|
# - $env:MESON_ARGS = $env:MESON_ARGS.replace("`n"," ")
|
||||||
|
#
|
||||||
|
# Gitlab executes PowerShell in docker, but `VsDevCmd.bat` is a batch
|
||||||
|
# script. Environment variables substitutions is done by PowerShell
|
||||||
|
# before calling `cmd.exe`, that's why we use `$env:FOO` instead of
|
||||||
|
# `%FOO%`.
|
||||||
|
- cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=$env:ARCH $env:VS_UWP &&
|
||||||
|
meson setup build $env:MESON_ARGS_WINDOWS $env:MESON_ARGS_UWP &&
|
||||||
|
meson compile --verbose -C build
|
||||||
|
$env:MESON_WINDOWS_TESTS"
|
||||||
|
|
||||||
|
|
||||||
|
# Format of job names:
|
||||||
|
# <OS> <Build-Tool> <Build-Params> <Architecture>
|
||||||
|
|
||||||
|
|
||||||
|
# Windows jobs.
|
||||||
|
|
||||||
|
windows meson vs2017 amd64:
|
||||||
|
extends: '.build windows meson'
|
||||||
|
variables:
|
||||||
|
ARCH: 'amd64'
|
||||||
|
MESON_WINDOWS_TESTS: '&& meson test -C build && meson test -C build --benchmark'
|
||||||
|
|
||||||
|
windows meson vs2017 x86:
|
||||||
|
extends: '.build windows meson'
|
||||||
|
variables:
|
||||||
|
ARCH: 'x86'
|
||||||
|
MESON_WINDOWS_TESTS: '&& meson test -C build && meson test -C build --benchmark'
|
||||||
|
|
||||||
|
windows meson vs2017 amd64 uwp:
|
||||||
|
extends: '.build windows meson'
|
||||||
|
variables:
|
||||||
|
ARCH: 'amd64'
|
||||||
|
VS_UWP: '-app_platform=UWP'
|
||||||
|
MESON_ARGS_UWP: '--cross-file uwp-crossfile.meson -Dc_winlibs="windowsapp.lib"'
|
||||||
|
|
||||||
|
# Linux Jobs.
|
||||||
|
#
|
||||||
|
# Jobs with "libs" in the name force-enable libraries.
|
||||||
|
# They are disabled for the remaining jobs.
|
||||||
|
|
||||||
|
linux autotools:
|
||||||
|
extends: '.build linux common'
|
||||||
|
script: |
|
||||||
|
./autogen.sh
|
||||||
|
./configure --with-brotli=no \
|
||||||
|
--with-bzip2=no \
|
||||||
|
--with-harfbuzz=no \
|
||||||
|
--with-png=no \
|
||||||
|
--with-zlib=no \
|
||||||
|
CC=gcc
|
||||||
|
|
||||||
|
make -j$(nproc) && make install
|
||||||
|
|
||||||
|
linux autotools libs:
|
||||||
|
extends: '.build linux common'
|
||||||
|
script: |
|
||||||
|
./autogen.sh
|
||||||
|
./configure --with-brotli=yes \
|
||||||
|
--with-bzip2=yes \
|
||||||
|
--with-harfbuzz=yes \
|
||||||
|
--with-png=yes \
|
||||||
|
--with-zlib=yes \
|
||||||
|
CC=gcc
|
||||||
|
|
||||||
|
make -j$(nproc) && make install
|
||||||
|
|
||||||
|
linux autotools libs clang:
|
||||||
|
extends: '.build linux common'
|
||||||
|
script: |
|
||||||
|
./autogen.sh
|
||||||
|
./configure --with-brotli=yes \
|
||||||
|
--with-bzip2=yes \
|
||||||
|
--with-harfbuzz=yes \
|
||||||
|
--with-png=yes \
|
||||||
|
--with-zlib=yes \
|
||||||
|
CC=clang
|
||||||
|
|
||||||
|
make -j$(nproc) && make install
|
||||||
|
|
||||||
|
linux meson:
|
||||||
|
extends: '.build linux common'
|
||||||
|
script: |
|
||||||
|
meson setup build ${MESON_ARGS} \
|
||||||
|
-Dbrotli=disabled \
|
||||||
|
-Dbzip2=disabled \
|
||||||
|
-Dharfbuzz=disabled \
|
||||||
|
-Dpng=disabled \
|
||||||
|
-Dzlib=disabled
|
||||||
|
|
||||||
|
meson compile --verbose -C build
|
||||||
|
meson install -C build
|
||||||
|
|
||||||
|
linux meson libs:
|
||||||
|
extends: '.build linux common'
|
||||||
|
script: |
|
||||||
|
meson setup build ${MESON_ARGS} \
|
||||||
|
-Dbrotli=enabled \
|
||||||
|
-Dbzip2=enabled \
|
||||||
|
-Dharfbuzz=disabled \
|
||||||
|
-Dpng=disabled \
|
||||||
|
-Dzlib=disabled
|
||||||
|
|
||||||
|
meson compile --verbose -C build
|
||||||
|
meson install -C build
|
||||||
|
|
||||||
|
linux cmake:
|
||||||
|
extends: '.build linux common'
|
||||||
|
script: |
|
||||||
|
cmake -B build -D FT_DISABLE_BROTLI=TRUE \
|
||||||
|
-D FT_DISABLE_BZIP2=TRUE \
|
||||||
|
-D FT_DISABLE_HARFBUZZ=TRUE \
|
||||||
|
-D FT_DISABLE_PNG=TRUE \
|
||||||
|
-D FT_DISABLE_ZLIB=TRUE
|
||||||
|
|
||||||
|
cmake --build build --target install
|
||||||
|
|
||||||
|
linux cmake libs:
|
||||||
|
extends: '.build linux common'
|
||||||
|
script: |
|
||||||
|
cmake -B build -D FT_REQUIRE_BROTLI=TRUE \
|
||||||
|
-D FT_REQUIRE_BZIP2=TRUE \
|
||||||
|
-D FT_REQUIRE_HARFBUZZ=TRUE \
|
||||||
|
-D FT_REQUIRE_PNG=TRUE \
|
||||||
|
-D FT_REQUIRE_ZLIB=TRUE
|
||||||
|
|
||||||
|
cmake --build build --target install
|
||||||
|
|
||||||
|
|
||||||
|
# MacOS jobs.
|
||||||
|
|
||||||
|
macos autotools:
|
||||||
|
extends: '.build macos common'
|
||||||
|
before_script:
|
||||||
|
- '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"'
|
||||||
|
script:
|
||||||
|
- brew install autoconf automake libtool
|
||||||
|
- ./autogen.sh
|
||||||
|
- ./configure
|
||||||
|
- 'make -j$(sysctl -n hw.logicalcpu)'
|
||||||
|
- make install
|
||||||
|
|
||||||
|
macos autotools clang:
|
||||||
|
extends: '.build macos common'
|
||||||
|
before_script:
|
||||||
|
- '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"'
|
||||||
|
script:
|
||||||
|
- brew install autoconf automake libtool
|
||||||
|
- ./autogen.sh
|
||||||
|
- './configure CC=clang'
|
||||||
|
- 'make -j$(sysctl -n hw.logicalcpu)'
|
||||||
|
- make install
|
||||||
|
|
||||||
|
macos meson:
|
||||||
|
extends: '.build macos common'
|
||||||
|
script:
|
||||||
|
- pip3 install --upgrade pip
|
||||||
|
- pip3 install -U meson
|
||||||
|
- pip3 install --upgrade certifi
|
||||||
|
- pip3 install -U ninja
|
||||||
|
|
||||||
|
- meson setup build ${MESON_ARGS}
|
||||||
|
- meson compile --verbose -C build
|
||||||
|
- sudo meson install -C build
|
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "dlg"]
|
||||||
|
path = subprojects/dlg
|
||||||
|
url = https://github.com/nyorain/dlg.git
|
24
.mailmap
24
.mailmap
|
@ -1,10 +1,24 @@
|
||||||
|
Behdad Esfahbod (بهداد اسفهبد) <behdad@behdad.org> <behdad.esfahbod@gmail.com>
|
||||||
|
Behdad Esfahbod (بهداد اسفهبد) <behdad@behdad.org> <behdad@google.com>
|
||||||
|
Behdad Esfahbod (بهداد اسفهبد) <behdad@behdad.org>
|
||||||
|
Alexander Borsuk <me@alex.bio> <alexander.borsuk@qnective.com>
|
||||||
|
Ewald Hew (Hew Yih Shiuan 丘毅宣) <ewaldhew@gmail.com>
|
||||||
|
Moazin Khatti (موؤذن کھٹی) <moazinkhatri@gmail.com>
|
||||||
|
Priyesh Kumar (प्रियेश कुमार) <priyeshkkumar@gmail.com>
|
||||||
Alexei Podtelezhnikov (Алексей Подтележников) <apodtele@gmail.com>
|
Alexei Podtelezhnikov (Алексей Подтележников) <apodtele@gmail.com>
|
||||||
Behdad Esfahbod <behdad@behdad.org> <behdad.esfahbod@gmail.com>
|
Nikhil Ramakrishnan (निखिल रामकृष्णन) <ramakrishnan.nikhil@gmail.com>
|
||||||
Bram Tassyns <bramt@enfocus.be> bram tassyns <BramT@enfocus.be>
|
Dominik Röttsches <drott@chromium.org> <drott@google.com>
|
||||||
Bram Tassyns <bramt@enfocus.be> <BramT@enfocus.com>
|
Kostya Serebryany <kcc@google.com> <konstantin.s.serebryany@gmail.com>
|
||||||
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> <sssa@flavor1.ipc.hiroshima-u.ac.jp>
|
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> <sssa@flavor1.ipc.hiroshima-u.ac.jp>
|
||||||
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> sssa <sssa@IPA2004-mps.local>
|
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> sssa <sssa@IPA2004-mps.local>
|
||||||
|
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> sssa <sssa@sssas-powerbook-g4-12.local>
|
||||||
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
|
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
|
||||||
|
Bram Tassyns <bramt@enfocus.be> bram tassyns <BramT@enfocus.be>
|
||||||
|
Bram Tassyns <bramt@enfocus.be> <BramT@enfocus.com>
|
||||||
|
David Turner <david@freetype.org> <david.turner.dev@gmail.com>
|
||||||
|
David Turner <david@freetype.org> <digit@google.com>
|
||||||
|
Anuj Verma (अनुज वर्मा) <anujv@iitbhilai.ac.in>
|
||||||
Ben Wagner <bungeman@gmail.com> Bungeman <bungeman@gmail.com>
|
Ben Wagner <bungeman@gmail.com> Bungeman <bungeman@gmail.com>
|
||||||
Ewald Hew (Hew Yih Shiuan 丘毅宣) <ewaldhew@gmail.com>
|
Ben Wagner <bungeman@gmail.com> <bungeman@google.com>
|
||||||
Nikhil Ramakrishnan (निखिल रामकृष्णन) <ramakrishnan.nikhil@gmail.com>
|
Ben Wagner <bungeman@gmail.com> <bungeman@chromium.org>
|
||||||
|
Nikolaus Waxweiler <madigens@gmail.com> <nikolaus.waxweiler@daltonmaag.com>
|
||||||
|
|
300
CMakeLists.txt
300
CMakeLists.txt
|
@ -1,6 +1,6 @@
|
||||||
# CMakeLists.txt
|
# CMakeLists.txt
|
||||||
#
|
#
|
||||||
# Copyright (C) 2013-2020 by
|
# Copyright (C) 2013-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# Written originally by John Cary <cary@txcorp.com>
|
# Written originally by John Cary <cary@txcorp.com>
|
||||||
|
@ -12,13 +12,17 @@
|
||||||
# fully.
|
# fully.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# The following will 1. create a build directory and 2. change into it and
|
# The following will (1) create a build directory, and (2) change into it and
|
||||||
# call cmake to configure the build with default parameters as a static
|
# call cmake to configure the build with default parameters as a static
|
||||||
# library. See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
|
# library. See
|
||||||
# for information about Debug, Release, etc. builds.
|
#
|
||||||
|
# https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
|
||||||
|
#
|
||||||
|
# for information about debug or release builds, for example
|
||||||
#
|
#
|
||||||
# cmake -B build -D CMAKE_BUILD_TYPE=Release
|
# cmake -B build -D CMAKE_BUILD_TYPE=Release
|
||||||
#
|
#
|
||||||
|
#
|
||||||
# For a dynamic library, use
|
# For a dynamic library, use
|
||||||
#
|
#
|
||||||
# cmake -B build -D BUILD_SHARED_LIBS=true -D CMAKE_BUILD_TYPE=Release
|
# cmake -B build -D BUILD_SHARED_LIBS=true -D CMAKE_BUILD_TYPE=Release
|
||||||
|
@ -39,7 +43,8 @@
|
||||||
#
|
#
|
||||||
# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR64 ..
|
# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR64 ..
|
||||||
#
|
#
|
||||||
# Finally, build the project with:
|
#
|
||||||
|
# Finally, build the project with
|
||||||
#
|
#
|
||||||
# cmake --build build
|
# cmake --build build
|
||||||
#
|
#
|
||||||
|
@ -56,56 +61,67 @@
|
||||||
#
|
#
|
||||||
# Some notes.
|
# Some notes.
|
||||||
#
|
#
|
||||||
# . `cmake' creates configuration files in
|
# - `cmake' creates configuration files in
|
||||||
#
|
#
|
||||||
# <build-directory>/include/freetype/config
|
# <build-directory>/include/freetype/config
|
||||||
#
|
#
|
||||||
# which should be further modified if necessary.
|
# which should be further modified if necessary.
|
||||||
#
|
#
|
||||||
# . You can use `cmake' directly on a freshly cloned FreeType git
|
# - You can use `cmake' directly on a freshly cloned FreeType git
|
||||||
# repository.
|
# repository.
|
||||||
#
|
#
|
||||||
# . `CMakeLists.txt' is provided as-is since it is normally not used by the
|
# - `CMakeLists.txt' is provided as-is since it is normally not used by the
|
||||||
# developer team.
|
# developer team.
|
||||||
#
|
#
|
||||||
# . Set the `FT_WITH_ZLIB', `FT_WITH_BZIP2', `FT_WITH_PNG',
|
# - Set the `FT_REQUIRE_ZLIB', `FT_REQUIRE_BZIP2', `FT_REQUIRE_PNG',
|
||||||
# `FT_WITH_HARFBUZZ', and `FT_WITH_BROTLI' CMake variables to `ON' to
|
# `FT_REQUIRE_HARFBUZZ', and `FT_REQUIRE_BROTLI' CMake variables to `ON'
|
||||||
# force using a dependency. Leave a variable undefined (which is the
|
# or `TRUE' to force using a dependency. Leave a variable undefined
|
||||||
# default) to use the dependency only if it is available. Example:
|
# (which is the default) to use the dependency only if it is available.
|
||||||
|
# Example:
|
||||||
#
|
#
|
||||||
# cmake -B build -D FT_WITH_ZLIB=ON \
|
# cmake -B build -D FT_REQUIRE_ZLIB=TRUE \
|
||||||
# -D FT_WITH_BZIP2=ON \
|
# -D FT_REQUIRE_BZIP2=TRUE \
|
||||||
# -D FT_WITH_PNG=ON \
|
# -D FT_REQUIRE_PNG=TRUE \
|
||||||
# -D FT_WITH_HARFBUZZ=ON \
|
# -D FT_REQUIRE_HARFBUZZ=TRUE \
|
||||||
# -D FT_WITH_BROTLI=ON [...]
|
# -D FT_REQUIRE_BROTLI=TRUE [...]
|
||||||
#
|
#
|
||||||
# Set `CMAKE_DISABLE_FIND_PACKAGE_XXX=TRUE' to disable a dependency completely
|
# - Set `FT_DISABLE_XXX=TRUE' to disable a dependency completely (where
|
||||||
# (where `XXX' is a CMake package name like `BZip2'). Example for disabling all
|
# `XXX' is a CMake package name like `BZip2'). Example for disabling all
|
||||||
# dependencies:
|
# dependencies:
|
||||||
#
|
#
|
||||||
# cmake -B build -D CMAKE_DISABLE_FIND_PACKAGE_ZLIB=TRUE \
|
# cmake -B build -D FT_DISABLE_ZLIB=TRUE \
|
||||||
# -D CMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE \
|
# -D FT_DISABLE_BZIP2=TRUE \
|
||||||
# -D CMAKE_DISABLE_FIND_PACKAGE_PNG=TRUE \
|
# -D FT_DISABLE_PNG=TRUE \
|
||||||
# -D CMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE \
|
# -D FT_DISABLE_HARFBUZZ=TRUE \
|
||||||
# -D CMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE [...]
|
# -D FT_DISABLE_BROTLI=TRUE [...]
|
||||||
#
|
#
|
||||||
# . Installation of FreeType can be controlled with the CMake variables
|
# - NOTE: If a package is set as DISABLED, it cannot be set as REQUIRED
|
||||||
|
# without unsetting the DISABLED value first. For example, if
|
||||||
|
# `FT_DISABLE_HARFBUZZ=TRUE' has been set (Cache is present), you need to
|
||||||
|
# call `FT_DISABLE_HARFBUZZ=FALSE' before calling
|
||||||
|
# `FT_REQUIRE_HARFBUZZ=TRUE'.
|
||||||
|
#
|
||||||
|
# - Installation of FreeType can be controlled with the CMake variables
|
||||||
# `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL'
|
# `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL'
|
||||||
# (this is compatible with the same CMake variables in zlib's CMake
|
# (this is compatible with the same CMake variables in zlib's CMake
|
||||||
# support).
|
# support).
|
||||||
|
|
||||||
# FreeType explicitly marks the API to be exported and relies on the compiler
|
# To minimize the number of cmake_policy() workarounds,
|
||||||
# to hide all other symbols. CMake supports a C_VISBILITY_PRESET property
|
# CMake >= 3 is requested.
|
||||||
# starting with 2.8.12.
|
cmake_minimum_required(VERSION 3.0)
|
||||||
cmake_minimum_required(VERSION 2.8.12)
|
|
||||||
|
|
||||||
if (NOT CMAKE_VERSION VERSION_LESS 3.3)
|
if (NOT CMAKE_VERSION VERSION_LESS 3.3)
|
||||||
# Allow symbol visibility settings also on static libraries. CMake < 3.3
|
# Allow symbol visibility settings also on static libraries. CMake < 3.3
|
||||||
# only sets the property on a shared library build.
|
# only sets the property on a shared library build.
|
||||||
cmake_policy(SET CMP0063 NEW)
|
cmake_policy(SET CMP0063 NEW)
|
||||||
|
|
||||||
|
# Support new IN_LIST if() operator.
|
||||||
|
cmake_policy(SET CMP0057 NEW)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
include(CheckIncludeFile)
|
include(CheckIncludeFile)
|
||||||
|
include(CMakeDependentOption)
|
||||||
|
include(FindPkgConfig)
|
||||||
|
|
||||||
# CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which
|
# CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which
|
||||||
# configures the base build environment and references the toolchain file
|
# configures the base build environment and references the toolchain file
|
||||||
|
@ -146,8 +162,8 @@ endif ()
|
||||||
project(freetype C)
|
project(freetype C)
|
||||||
|
|
||||||
set(VERSION_MAJOR "2")
|
set(VERSION_MAJOR "2")
|
||||||
set(VERSION_MINOR "10")
|
set(VERSION_MINOR "12")
|
||||||
set(VERSION_PATCH "2")
|
set(VERSION_PATCH "1")
|
||||||
|
|
||||||
# Generate LIBRARY_VERSION and LIBRARY_SOVERSION.
|
# Generate LIBRARY_VERSION and LIBRARY_SOVERSION.
|
||||||
set(LIBTOOL_REGEX "version_info='([0-9]+):([0-9]+):([0-9]+)'")
|
set(LIBTOOL_REGEX "version_info='([0-9]+):([0-9]+):([0-9]+)'")
|
||||||
|
@ -168,13 +184,37 @@ string(REGEX REPLACE
|
||||||
math(EXPR LIBRARY_SOVERSION "${LIBTOOL_CURRENT} - ${LIBTOOL_AGE}")
|
math(EXPR LIBRARY_SOVERSION "${LIBTOOL_CURRENT} - ${LIBTOOL_AGE}")
|
||||||
set(LIBRARY_VERSION "${LIBRARY_SOVERSION}.${LIBTOOL_AGE}.${LIBTOOL_REVISION}")
|
set(LIBRARY_VERSION "${LIBRARY_SOVERSION}.${LIBTOOL_AGE}.${LIBTOOL_REVISION}")
|
||||||
|
|
||||||
# External dependency library detection is automatic. See the notes at the top
|
# External dependency library detection is automatic. See the notes at the
|
||||||
# of this file, for how to force or disable dependencies completely.
|
# top of this file, for how to force or disable dependencies completely.
|
||||||
option(FT_WITH_ZLIB "Use system zlib instead of internal library." OFF)
|
option(FT_DISABLE_ZLIB
|
||||||
option(FT_WITH_BZIP2 "Support bzip2 compressed fonts." OFF)
|
"Disable use of system zlib and use internal zlib library instead." OFF)
|
||||||
option(FT_WITH_PNG "Support PNG compressed OpenType embedded bitmaps." OFF)
|
cmake_dependent_option(FT_REQUIRE_ZLIB
|
||||||
option(FT_WITH_HARFBUZZ "Improve auto-hinting of OpenType fonts." OFF)
|
"Require system zlib instead of internal zlib library." OFF
|
||||||
option(FT_WITH_BROTLI "Support compressed WOFF2 fonts." OFF)
|
"NOT FT_DISABLE_ZLIB" OFF)
|
||||||
|
|
||||||
|
option(FT_DISABLE_BZIP2
|
||||||
|
"Disable support of bzip2 compressed fonts." OFF)
|
||||||
|
cmake_dependent_option(FT_REQUIRE_BZIP2
|
||||||
|
"Require support of bzip2 compressed fonts." OFF
|
||||||
|
"NOT FT_DISABLE_BZIP2" OFF)
|
||||||
|
|
||||||
|
option(FT_DISABLE_PNG
|
||||||
|
"Disable support of PNG compressed OpenType embedded bitmaps." OFF)
|
||||||
|
cmake_dependent_option(FT_REQUIRE_PNG
|
||||||
|
"Require support of PNG compressed OpenType embedded bitmaps." OFF
|
||||||
|
"NOT FT_DISABLE_PNG" OFF)
|
||||||
|
|
||||||
|
option(FT_DISABLE_HARFBUZZ
|
||||||
|
"Disable HarfBuzz (used for improving auto-hinting of OpenType fonts)." OFF)
|
||||||
|
cmake_dependent_option(FT_REQUIRE_HARFBUZZ
|
||||||
|
"Require HarfBuzz for improving auto-hinting of OpenType fonts." OFF
|
||||||
|
"NOT FT_DISABLE_HARFBUZZ" OFF)
|
||||||
|
|
||||||
|
option(FT_DISABLE_BROTLI
|
||||||
|
"Disable support of compressed WOFF2 fonts." OFF)
|
||||||
|
cmake_dependent_option(FT_REQUIRE_BROTLI
|
||||||
|
"Require support of compressed WOFF2 fonts." OFF
|
||||||
|
"NOT FT_DISABLE_BROTLI" OFF)
|
||||||
|
|
||||||
|
|
||||||
# Disallow in-source builds
|
# Disallow in-source builds
|
||||||
|
@ -199,41 +239,56 @@ if (BUILD_FRAMEWORK)
|
||||||
message(FATAL_ERROR
|
message(FATAL_ERROR
|
||||||
"You should use Xcode generator with BUILD_FRAMEWORK enabled")
|
"You should use Xcode generator with BUILD_FRAMEWORK enabled")
|
||||||
endif ()
|
endif ()
|
||||||
set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_64_BIT)")
|
set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD)")
|
||||||
set(BUILD_SHARED_LIBS ON)
|
set(BUILD_SHARED_LIBS ON)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
# Find dependencies
|
# Find dependencies
|
||||||
set(HARFBUZZ_MIN_VERSION "1.8.0")
|
if (NOT FT_DISABLE_HARFBUZZ)
|
||||||
if (FT_WITH_HARFBUZZ)
|
set(HARFBUZZ_MIN_VERSION "2.0.0")
|
||||||
find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION} REQUIRED)
|
if (FT_REQUIRE_HARFBUZZ)
|
||||||
else ()
|
find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION} REQUIRED)
|
||||||
find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION})
|
else ()
|
||||||
|
find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION})
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (FT_WITH_PNG)
|
if (NOT FT_DISABLE_PNG)
|
||||||
find_package(PNG REQUIRED)
|
if (FT_REQUIRE_PNG)
|
||||||
else ()
|
find_package(PNG REQUIRED)
|
||||||
find_package(PNG)
|
else ()
|
||||||
|
find_package(PNG)
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (FT_WITH_ZLIB)
|
if (NOT FT_DISABLE_ZLIB)
|
||||||
find_package(ZLIB REQUIRED)
|
if (FT_REQUIRE_ZLIB)
|
||||||
else ()
|
find_package(ZLIB REQUIRED)
|
||||||
find_package(ZLIB)
|
else ()
|
||||||
|
find_package(ZLIB)
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (FT_WITH_BZIP2)
|
if (NOT FT_DISABLE_BZIP2)
|
||||||
find_package(BZip2 REQUIRED)
|
# Genuine BZip2 does not provide bzip2.pc, but some platforms have it.
|
||||||
else ()
|
# For better dependency in freetype2.pc, bzip2.pc is searched
|
||||||
find_package(BZip2)
|
# regardless of the availability of libbz2. If bzip2.pc is found,
|
||||||
|
# Requires.private is used instead of Libs.private.
|
||||||
|
if (FT_REQUIRE_BZIP2)
|
||||||
|
find_package(BZip2 REQUIRED)
|
||||||
|
else ()
|
||||||
|
find_package(BZip2)
|
||||||
|
endif ()
|
||||||
|
pkg_check_modules(PC_BZIP2 bzip2)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (FT_WITH_BROTLI)
|
if (NOT FT_DISABLE_BROTLI)
|
||||||
find_package(BrotliDec REQUIRED)
|
if (FT_REQUIRE_BROTLI)
|
||||||
else ()
|
find_package(BrotliDec REQUIRED)
|
||||||
find_package(BrotliDec)
|
else ()
|
||||||
|
find_package(BrotliDec)
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Create the configuration file
|
# Create the configuration file
|
||||||
|
@ -241,7 +296,7 @@ if (UNIX)
|
||||||
check_include_file("unistd.h" HAVE_UNISTD_H)
|
check_include_file("unistd.h" HAVE_UNISTD_H)
|
||||||
check_include_file("fcntl.h" HAVE_FCNTL_H)
|
check_include_file("fcntl.h" HAVE_FCNTL_H)
|
||||||
|
|
||||||
file(READ "${PROJECT_SOURCE_DIR}/builds/unix/ftconfig.in"
|
file(READ "${PROJECT_SOURCE_DIR}/builds/unix/ftconfig.h.in"
|
||||||
FTCONFIG_H)
|
FTCONFIG_H)
|
||||||
if (HAVE_UNISTD_H)
|
if (HAVE_UNISTD_H)
|
||||||
string(REGEX REPLACE
|
string(REGEX REPLACE
|
||||||
|
@ -253,8 +308,6 @@ if (UNIX)
|
||||||
"#undef +(HAVE_FCNTL_H)" "#define \\1 1"
|
"#undef +(HAVE_FCNTL_H)" "#define \\1 1"
|
||||||
FTCONFIG_H "${FTCONFIG_H}")
|
FTCONFIG_H "${FTCONFIG_H}")
|
||||||
endif ()
|
endif ()
|
||||||
string(REPLACE "/undef " "#undef "
|
|
||||||
FTCONFIG_H "${FTCONFIG_H}")
|
|
||||||
else ()
|
else ()
|
||||||
file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h"
|
file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h"
|
||||||
FTCONFIG_H)
|
FTCONFIG_H)
|
||||||
|
@ -349,8 +402,10 @@ set(BASE_SRCS
|
||||||
src/pshinter/pshinter.c
|
src/pshinter/pshinter.c
|
||||||
src/psnames/psnames.c
|
src/psnames/psnames.c
|
||||||
src/raster/raster.c
|
src/raster/raster.c
|
||||||
|
src/sdf/sdf.c
|
||||||
src/sfnt/sfnt.c
|
src/sfnt/sfnt.c
|
||||||
src/smooth/smooth.c
|
src/smooth/smooth.c
|
||||||
|
src/svg/svg.c
|
||||||
src/truetype/truetype.c
|
src/truetype/truetype.c
|
||||||
src/type1/type1.c
|
src/type1/type1.c
|
||||||
src/type42/type42.c
|
src/type42/type42.c
|
||||||
|
@ -359,6 +414,8 @@ set(BASE_SRCS
|
||||||
|
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
list(APPEND BASE_SRCS "builds/unix/ftsystem.c")
|
list(APPEND BASE_SRCS "builds/unix/ftsystem.c")
|
||||||
|
elseif (WIN32)
|
||||||
|
list(APPEND BASE_SRCS "builds/windows/ftsystem.c")
|
||||||
else ()
|
else ()
|
||||||
list(APPEND BASE_SRCS "src/base/ftsystem.c")
|
list(APPEND BASE_SRCS "src/base/ftsystem.c")
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -422,7 +479,7 @@ target_include_directories(
|
||||||
PRIVATE
|
PRIVATE
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/include
|
${CMAKE_CURRENT_BINARY_DIR}/include
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||||
|
|
||||||
# Make <ftconfig.h> available for builds/unix/ftsystem.c.
|
# Make <ftconfig.h> available for builds/unix/ftsystem.c.
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/include/freetype/config
|
${CMAKE_CURRENT_BINARY_DIR}/include/freetype/config
|
||||||
)
|
)
|
||||||
|
@ -434,41 +491,48 @@ if (BUILD_FRAMEWORK)
|
||||||
)
|
)
|
||||||
set_target_properties(freetype PROPERTIES
|
set_target_properties(freetype PROPERTIES
|
||||||
FRAMEWORK TRUE
|
FRAMEWORK TRUE
|
||||||
MACOSX_FRAMEWORK_INFO_PLIST builds/mac/freetype-Info.plist
|
MACOSX_FRAMEWORK_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/builds/mac/freetype-Info.plist
|
||||||
PUBLIC_HEADER "${PUBLIC_HEADERS}"
|
PUBLIC_HEADER "${PUBLIC_HEADERS}"
|
||||||
XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
|
XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
|
||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
set(PKG_CONFIG_REQUIRED_PRIVATE "")
|
set(PKGCONFIG_REQUIRES "")
|
||||||
|
set(PKGCONFIG_REQUIRES_PRIVATE "")
|
||||||
|
set(PKGCONFIG_LIBS "-L\${libdir} -lfreetype")
|
||||||
|
set(PKGCONFIG_LIBS_PRIVATE "")
|
||||||
|
|
||||||
if (ZLIB_FOUND)
|
if (ZLIB_FOUND)
|
||||||
target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES})
|
target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES})
|
||||||
target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS})
|
target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS})
|
||||||
list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "zlib")
|
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "zlib")
|
||||||
endif ()
|
endif ()
|
||||||
if (BZIP2_FOUND)
|
if (BZIP2_FOUND)
|
||||||
target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES})
|
target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES})
|
||||||
target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS
|
target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS
|
||||||
list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "bzip2")
|
if (PC_BZIP2_FOUND)
|
||||||
|
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "bzip2")
|
||||||
|
else ()
|
||||||
|
list(APPEND PKGCONFIG_LIBS_PRIVATE "-lbz2")
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
if (PNG_FOUND)
|
if (PNG_FOUND)
|
||||||
target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES})
|
target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES})
|
||||||
target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS})
|
target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS})
|
||||||
target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS})
|
target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS})
|
||||||
list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "libpng")
|
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "libpng")
|
||||||
endif ()
|
endif ()
|
||||||
if (HARFBUZZ_FOUND)
|
if (HarfBuzz_FOUND)
|
||||||
target_link_libraries(freetype PRIVATE ${HARFBUZZ_LIBRARIES})
|
target_link_libraries(freetype PRIVATE ${HarfBuzz_LIBRARY})
|
||||||
target_include_directories(freetype PRIVATE ${HARFBUZZ_INCLUDE_DIRS})
|
target_include_directories(freetype PRIVATE ${HarfBuzz_INCLUDE_DIRS})
|
||||||
list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "harfbuzz >= ${HARFBUZZ_MIN_VERSION}")
|
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "harfbuzz >= ${HARFBUZZ_MIN_VERSION}")
|
||||||
endif ()
|
endif ()
|
||||||
if (BROTLIDEC_FOUND)
|
if (BROTLIDEC_FOUND)
|
||||||
target_link_libraries(freetype PRIVATE ${BROTLIDEC_LIBRARIES})
|
target_link_libraries(freetype PRIVATE ${BROTLIDEC_LIBRARIES})
|
||||||
target_compile_definitions(freetype PRIVATE ${BROTLIDEC_DEFINITIONS})
|
target_compile_definitions(freetype PRIVATE ${BROTLIDEC_DEFINITIONS})
|
||||||
target_include_directories(freetype PRIVATE ${BROTLIDEC_INCLUDE_DIRS})
|
target_include_directories(freetype PRIVATE ${BROTLIDEC_INCLUDE_DIRS})
|
||||||
list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "libbrotlidec")
|
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "libbrotlidec")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
|
@ -493,42 +557,62 @@ endif ()
|
||||||
|
|
||||||
if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
|
if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
|
||||||
# Generate the pkg-config file
|
# Generate the pkg-config file
|
||||||
if (UNIX)
|
file(READ "${PROJECT_SOURCE_DIR}/builds/unix/freetype2.in" FREETYPE2_PC_IN)
|
||||||
file(READ "${PROJECT_SOURCE_DIR}/builds/unix/freetype2.in" FREETYPE2_PC_IN)
|
|
||||||
|
|
||||||
string(REPLACE ";" ", " PKG_CONFIG_REQUIRED_PRIVATE "${PKG_CONFIG_REQUIRED_PRIVATE}")
|
string(REPLACE ";" ", " PKGCONFIG_REQUIRES_PRIVATE "${PKGCONFIG_REQUIRES_PRIVATE}")
|
||||||
|
|
||||||
string(REPLACE "%prefix%" ${CMAKE_INSTALL_PREFIX}
|
string(REPLACE "%prefix%" ${CMAKE_INSTALL_PREFIX}
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
string(REPLACE "%exec_prefix%" "\${prefix}"
|
string(REPLACE "%exec_prefix%" "\${prefix}"
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
string(REPLACE "%libdir%" "\${prefix}/${CMAKE_INSTALL_LIBDIR}"
|
string(REPLACE "%libdir%" "\${prefix}/${CMAKE_INSTALL_LIBDIR}"
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
string(REPLACE "%includedir%" "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}"
|
string(REPLACE "%includedir%" "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}"
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
string(REPLACE "%ft_version%" "${LIBTOOL_CURRENT}.${LIBTOOL_REVISION}.${LIBTOOL_AGE}"
|
string(REPLACE "%ft_version%" "${LIBTOOL_CURRENT}.${LIBTOOL_REVISION}.${LIBTOOL_AGE}"
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
string(REPLACE "%REQUIRES_PRIVATE%" "${PKG_CONFIG_REQUIRED_PRIVATE}"
|
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
|
||||||
string(REPLACE "%LIBS_PRIVATE%" "" # All libs support pkg-config
|
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
|
||||||
|
|
||||||
set(FREETYPE2_PC_IN_NAME "${PROJECT_BINARY_DIR}/freetype2.pc")
|
if (BUILD_SHARED_LIBS)
|
||||||
if (EXISTS "${FREETYPE2_PC_IN_NAME}")
|
string(REPLACE "%PKGCONFIG_REQUIRES%" "${PKGCONFIG_REQUIRES}"
|
||||||
file(READ "${FREETYPE2_PC_IN_NAME}" ORIGINAL_FREETYPE2_PC_IN)
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
else ()
|
string(REPLACE "%PKGCONFIG_REQUIRES_PRIVATE%" "${PKGCONFIG_REQUIRES_PRIVATE}"
|
||||||
set(ORIGINAL_FREETYPE2_PC_IN "")
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
endif ()
|
string(REPLACE "%PKGCONFIG_LIBS%" "${PKGCONFIG_LIBS}"
|
||||||
if (NOT (ORIGINAL_FREETYPE2_PC_IN STREQUAL FREETYPE2_PC_IN))
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
file(WRITE "${FREETYPE2_PC_IN_NAME}" ${FREETYPE2_PC_IN})
|
string(REPLACE "%PKGCONFIG_LIBS_PRIVATE%" "${PKGCONFIG_LIBS_PRIVATE}"
|
||||||
endif ()
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
|
else ()
|
||||||
install(
|
string(REPLACE "%PKGCONFIG_REQUIRES%" "${PKGCONFIG_REQUIRES} ${PKGCONFIG_REQUIRES_PRIVATE}"
|
||||||
FILES ${PROJECT_BINARY_DIR}/freetype2.pc
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
string(REPLACE "%PKGCONFIG_REQUIRES_PRIVATE%" ""
|
||||||
COMPONENT pkgconfig)
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
|
string(REPLACE "%PKGCONFIG_LIBS%" "${PKGCONFIG_LIBS} ${PKGCONFIG_LIBS_PRIVATE}"
|
||||||
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
|
string(REPLACE "%PKGCONFIG_LIBS_PRIVATE%" ""
|
||||||
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
set(FREETYPE2_PC_IN_NAME "${PROJECT_BINARY_DIR}/freetype2.pc")
|
||||||
|
if (EXISTS "${FREETYPE2_PC_IN_NAME}")
|
||||||
|
file(READ "${FREETYPE2_PC_IN_NAME}" ORIGINAL_FREETYPE2_PC_IN)
|
||||||
|
else ()
|
||||||
|
set(ORIGINAL_FREETYPE2_PC_IN "")
|
||||||
|
endif ()
|
||||||
|
if (NOT (ORIGINAL_FREETYPE2_PC_IN STREQUAL FREETYPE2_PC_IN))
|
||||||
|
file(WRITE "${FREETYPE2_PC_IN_NAME}" ${FREETYPE2_PC_IN})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES ${PROJECT_BINARY_DIR}/freetype2.pc
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||||
|
COMPONENT pkgconfig)
|
||||||
|
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
|
write_basic_package_version_file(
|
||||||
|
${PROJECT_BINARY_DIR}/freetype-config-version.cmake
|
||||||
|
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
|
||||||
|
COMPATIBILITY SameMajorVersion)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
TARGETS freetype
|
TARGETS freetype
|
||||||
EXPORT freetype-targets
|
EXPORT freetype-targets
|
||||||
|
@ -542,6 +626,10 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
|
||||||
FILE freetype-config.cmake
|
FILE freetype-config.cmake
|
||||||
COMPONENT headers)
|
COMPONENT headers)
|
||||||
|
install(
|
||||||
|
FILES ${PROJECT_BINARY_DIR}/freetype-config-version.cmake
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
|
||||||
|
COMPONENT headers)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
|
@ -549,7 +637,7 @@ endif ()
|
||||||
set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
|
set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The FreeType font rendering library.")
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The FreeType font rendering library.")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
|
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
|
||||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/docs/LICENSE.TXT")
|
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.TXT")
|
||||||
|
|
||||||
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
|
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
|
||||||
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
|
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
FREETYPE LICENSES
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
The FreeType 2 font engine is copyrighted work and cannot be used
|
||||||
|
legally without a software license. In order to make this project
|
||||||
|
usable to a vast majority of developers, we distribute it under two
|
||||||
|
mutually exclusive open-source licenses.
|
||||||
|
|
||||||
|
This means that *you* must choose *one* of the two licenses described
|
||||||
|
below, then obey all its terms and conditions when using FreeType 2 in
|
||||||
|
any of your projects or products.
|
||||||
|
|
||||||
|
- The FreeType License, found in the file `docs/FTL.TXT`, which is
|
||||||
|
similar to the original BSD license *with* an advertising clause
|
||||||
|
that forces you to explicitly cite the FreeType project in your
|
||||||
|
product's documentation. All details are in the license file.
|
||||||
|
This license is suited to products which don't use the GNU General
|
||||||
|
Public License.
|
||||||
|
|
||||||
|
Note that this license is compatible to the GNU General Public
|
||||||
|
License version 3, but not version 2.
|
||||||
|
|
||||||
|
- The GNU General Public License version 2, found in
|
||||||
|
`docs/GPLv2.TXT` (any later version can be used also), for
|
||||||
|
programs which already use the GPL. Note that the FTL is
|
||||||
|
incompatible with GPLv2 due to its advertisement clause.
|
||||||
|
|
||||||
|
The contributed BDF and PCF drivers come with a license similar to
|
||||||
|
that of the X Window System. It is compatible to the above two
|
||||||
|
licenses (see files `src/bdf/README` and `src/pcf/README`). The same
|
||||||
|
holds for the source code files `src/base/fthash.c` and
|
||||||
|
`include/freetype/internal/fthash.h`; they wer part of the BDF driver
|
||||||
|
in earlier FreeType versions.
|
||||||
|
|
||||||
|
The gzip module uses the zlib license (see `src/gzip/zlib.h`) which
|
||||||
|
too is compatible to the above two licenses.
|
||||||
|
|
||||||
|
The MD5 checksum support (only used for debugging in development
|
||||||
|
builds) is in the public domain.
|
||||||
|
|
||||||
|
|
||||||
|
--- end of LICENSE.TXT ---
|
2
Makefile
2
Makefile
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
112
README
112
README
|
@ -1,80 +1,100 @@
|
||||||
FreeType 2.10.2
|
FreeType 2.12.1
|
||||||
===============
|
===============
|
||||||
|
|
||||||
Homepage: https://www.freetype.org
|
Homepage: https://www.freetype.org
|
||||||
|
|
||||||
FreeType is a freely available software library to render fonts.
|
FreeType is a freely available software library to render fonts.
|
||||||
|
|
||||||
It is written in C, designed to be small, efficient, highly
|
It is written in C, designed to be small, efficient, highly
|
||||||
customizable, and portable while capable of producing high-quality
|
customizable, and portable while capable of producing high-quality
|
||||||
output (glyph images) of most vector and bitmap font formats.
|
output (glyph images) of most vector and bitmap font formats.
|
||||||
|
|
||||||
Please read the docs/CHANGES file, it contains IMPORTANT
|
Please read the `docs/CHANGES` file, it contains IMPORTANT
|
||||||
INFORMATION.
|
INFORMATION.
|
||||||
|
|
||||||
Read the files `docs/INSTALL*' for installation instructions; see
|
Read the files `docs/INSTALL*` for installation instructions; see the
|
||||||
the file `docs/LICENSE.TXT' for the available licenses.
|
file `docs/LICENSE.TXT` for the available licenses.
|
||||||
|
|
||||||
The FreeType 2 API reference is located in `docs/reference/site';
|
For using FreeType's git repository instead of a distribution bundle,
|
||||||
use the file `index.html' as the top entry point. [Please note that
|
please read file `README.git`. Note that you have to actually clone
|
||||||
currently the search function for locally installed documentation
|
the repository; using a snapshot will not work (in other words, don't
|
||||||
doesn't work due to cross-site scripting issues.]
|
use gitlab's 'Download' button).
|
||||||
|
|
||||||
Additional documentation is available as a separate package from our
|
The FreeType 2 API reference is located in directory `docs/reference`;
|
||||||
sites. Go to
|
use the file `index.html` as the top entry point. [Please note that
|
||||||
|
currently the search function for locally installed documentation
|
||||||
|
doesn't work due to cross-site scripting issues.]
|
||||||
|
|
||||||
https://download.savannah.gnu.org/releases/freetype/
|
Additional documentation is available as a separate package from our
|
||||||
|
sites. Go to
|
||||||
|
|
||||||
and download one of the following files.
|
https://download.savannah.gnu.org/releases/freetype/
|
||||||
|
|
||||||
freetype-doc-2.10.2.tar.xz
|
and download one of the following files.
|
||||||
freetype-doc-2.10.2.tar.gz
|
|
||||||
ftdoc2102.zip
|
|
||||||
|
|
||||||
To view the documentation online, go to
|
freetype-doc-2.12.1.tar.xz
|
||||||
|
freetype-doc-2.12.1.tar.gz
|
||||||
|
ftdoc2121.zip
|
||||||
|
|
||||||
https://www.freetype.org/freetype2/docs/
|
To view the documentation online, go to
|
||||||
|
|
||||||
|
https://www.freetype.org/freetype2/docs/
|
||||||
|
|
||||||
|
|
||||||
Mailing Lists
|
Mailing Lists
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
The preferred way of communication with the FreeType team is using
|
The preferred way of communication with the FreeType team is using
|
||||||
e-mail lists.
|
e-mail lists.
|
||||||
|
|
||||||
general use and discussion: freetype@nongnu.org
|
general use and discussion: freetype@nongnu.org
|
||||||
engine internals, porting, etc.: freetype-devel@nongnu.org
|
engine internals, porting, etc.: freetype-devel@nongnu.org
|
||||||
announcements: freetype-announce@nongnu.org
|
announcements: freetype-announce@nongnu.org
|
||||||
git repository tracker: freetype-commit@nongnu.org
|
git repository tracker: freetype-commit@nongnu.org
|
||||||
|
|
||||||
The lists are moderated; see
|
The lists are moderated; see
|
||||||
|
|
||||||
https://www.freetype.org/contact.html
|
https://www.freetype.org/contact.html
|
||||||
|
|
||||||
how to subscribe.
|
how to subscribe.
|
||||||
|
|
||||||
|
|
||||||
Bugs
|
Bugs
|
||||||
====
|
----
|
||||||
|
|
||||||
Please submit bug reports at
|
Please submit bug reports at
|
||||||
|
|
||||||
https://savannah.nongnu.org/bugs/?group=freetype
|
https://gitlab.freedesktop.org/freetype/freetype/-/issues
|
||||||
|
|
||||||
Alternatively, you might report bugs by e-mail to
|
Alternatively, you might report bugs by e-mail to
|
||||||
`freetype-devel@nongnu.org'. Don't forget to send a detailed
|
`freetype-devel@nongnu.org`. Don't forget to send a detailed
|
||||||
explanation of the problem -- there is nothing worse than receiving
|
explanation of the problem -- there is nothing worse than receiving a
|
||||||
a terse message that only says `it doesn't work'.
|
terse message that only says 'it doesn't work'.
|
||||||
|
|
||||||
|
|
||||||
Enjoy!
|
Patches
|
||||||
|
-------
|
||||||
|
|
||||||
|
For larger changes please provide merge requests at
|
||||||
|
|
||||||
|
https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests
|
||||||
|
|
||||||
|
Alternatively, you can send patches to the `freetype-devel@nongnu.org`
|
||||||
|
mailing list -- and thank you in advance for your work on improving
|
||||||
|
FreeType!
|
||||||
|
|
||||||
|
Details on the process can be found here:
|
||||||
|
|
||||||
|
https://www.freetype.org/developer.html#patches
|
||||||
|
|
||||||
|
|
||||||
The FreeType Team
|
Enjoy!
|
||||||
|
|
||||||
|
The FreeType Team
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2006-2020 by
|
Copyright (C) 2006-2022 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
|
|
80
README.git
80
README.git
|
@ -1,4 +1,36 @@
|
||||||
The git archive doesn't contain pre-built configuration scripts for
|
README.git
|
||||||
|
==========
|
||||||
|
|
||||||
|
|
||||||
|
repository issues
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
FreeType's official repository site is
|
||||||
|
|
||||||
|
https://gitlab.freedesktop.org/freetype ,
|
||||||
|
|
||||||
|
from which the 'freetype.git' and 'freetype-demos.git' repositories
|
||||||
|
can be cloned in the usual way.
|
||||||
|
|
||||||
|
git clone https://gitlab.freedesktop.org/freetype/freetype.git
|
||||||
|
git clone https://gitlab.freedesktop.org/freetype/freetype-demos.git
|
||||||
|
|
||||||
|
If you want to use the Savannah mirror instead, you have to do a
|
||||||
|
slightly different incantation because the repository names contain
|
||||||
|
digit '2' for historical reasons.
|
||||||
|
|
||||||
|
git clone \
|
||||||
|
https://git.savannah.nongnu.org/git/freetype/freetype2.git \
|
||||||
|
freetype
|
||||||
|
git clone \
|
||||||
|
https://git.savannah.nongnu.org/git/freetype/freetype2-demos.git \
|
||||||
|
freetype-demos
|
||||||
|
|
||||||
|
|
||||||
|
standard builds with `configure`
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
The git repository doesn't contain pre-built configuration scripts for
|
||||||
UNIXish platforms. To generate them say
|
UNIXish platforms. To generate them say
|
||||||
|
|
||||||
sh autogen.sh
|
sh autogen.sh
|
||||||
|
@ -10,34 +42,54 @@ which in turn depends on the following packages:
|
||||||
autoconf (2.62)
|
autoconf (2.62)
|
||||||
|
|
||||||
The versions given in parentheses are known to work. Newer versions
|
The versions given in parentheses are known to work. Newer versions
|
||||||
should work too, of course. Note that autogen.sh also sets up proper
|
should work too, of course. Note that `autogen.sh` also sets up
|
||||||
file permissions for the `configure' and auxiliary scripts.
|
proper file permissions for the `configure` and auxiliary scripts.
|
||||||
|
|
||||||
The autogen.sh script now checks the version of above three packages
|
The `autogen.sh` script checks whether the versions of the above three
|
||||||
whether they match the numbers above. Otherwise it will complain and
|
tools match the numbers above. Otherwise it will complain and suggest
|
||||||
suggest either upgrading or using an environment variable to point to
|
either upgrading or using environment variables to point to more
|
||||||
a more recent version of the required tool(s).
|
recent versions of the required tools.
|
||||||
|
|
||||||
Note that `aclocal' is provided by the `automake' package on Linux,
|
Note that `aclocal` is provided by the 'automake' package on Linux,
|
||||||
and that `libtoolize' is called `glibtoolize' on Darwin (OS X).
|
and that `libtoolize` is called `glibtoolize` on Darwin (OS X).
|
||||||
|
|
||||||
|
|
||||||
For static builds which don't use platform specific optimizations, no
|
alternative build methods
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
For static builds that don't use platform-specific optimizations, no
|
||||||
configure script is necessary at all; saying
|
configure script is necessary at all; saying
|
||||||
|
|
||||||
make setup ansi
|
make setup ansi
|
||||||
make
|
make
|
||||||
|
|
||||||
should work on all platforms which have GNU make (or makepp).
|
should work on all platforms that have GNU `make` (or `makepp`).
|
||||||
|
|
||||||
|
A build with `cmake` or `meson` can be done directly from the git
|
||||||
|
repository. However, if you want to use the `FT_DEBUG_LOGGING` macro
|
||||||
|
(see file `docs/DEBUG` for more information) it is currently mandatory
|
||||||
|
to execute `autogen.sh` in advance; this script clones the 'dlg' git
|
||||||
|
submodule and copies some files into FreeType's source tree.
|
||||||
|
|
||||||
|
|
||||||
Similarly, a build with `cmake' can be done directly from the git
|
Code of Conduct
|
||||||
repository.
|
---------------
|
||||||
|
|
||||||
|
Please note that this project is released with a Contributor Code of
|
||||||
|
Conduct (CoC). By participating in this project you agree to abide by
|
||||||
|
its terms, which you can find in the following link:
|
||||||
|
|
||||||
|
https://www.freedesktop.org/wiki/CodeOfConduct
|
||||||
|
|
||||||
|
CoC issues may be raised to the project maintainers at the following
|
||||||
|
address:
|
||||||
|
|
||||||
|
wl@gnu.org
|
||||||
|
apodtele@gmail.com
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2005-2020 by
|
Copyright (C) 2005-2022 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
|
|
51
autogen.sh
51
autogen.sh
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Copyright (C) 2005-2020 by
|
# Copyright (C) 2005-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -110,7 +110,10 @@ check_tool_version ()
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
if test ! -f ./builds/unix/configure.raw; then
|
# Solaris 10's shell doesn't like the `!` operator to negate the exit status.
|
||||||
|
if test -f ./builds/unix/configure.raw; then
|
||||||
|
:
|
||||||
|
else
|
||||||
echo "You must be in the same directory as \`autogen.sh'."
|
echo "You must be in the same directory as \`autogen.sh'."
|
||||||
echo "Bootstrapping doesn't work if srcdir != builddir."
|
echo "Bootstrapping doesn't work if srcdir != builddir."
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -138,18 +141,25 @@ check_tool_version $ACLOCAL aclocal ACLOCAL 1.10.1
|
||||||
check_tool_version $LIBTOOLIZE libtoolize LIBTOOLIZE 2.2.4
|
check_tool_version $LIBTOOLIZE libtoolize LIBTOOLIZE 2.2.4
|
||||||
check_tool_version $AUTOCONF autoconf AUTOCONF 2.62
|
check_tool_version $AUTOCONF autoconf AUTOCONF 2.62
|
||||||
|
|
||||||
# This sets freetype_major, freetype_minor, and freetype_patch.
|
# This sets FREETYPE version.
|
||||||
eval `sed -nf version.sed include/freetype/freetype.h`
|
eval `sed -n \
|
||||||
|
-e 's/^#define *\(FREETYPE_MAJOR\) *\([0-9][0-9]*\).*/\1=\2/p' \
|
||||||
|
-e 's/^#define *\(FREETYPE_MINOR\) *\([0-9][0-9]*\).*/\1=\2/p' \
|
||||||
|
-e 's/^#define *\(FREETYPE_PATCH\) *\([0-9][0-9]*\).*/\1=\2/p' \
|
||||||
|
include/freetype/freetype.h`
|
||||||
|
|
||||||
# We set freetype-patch to an empty value if it is zero.
|
if test "$FREETYPE_PATCH" = "0"; then
|
||||||
if test "$freetype_patch" = ".0"; then
|
FREETYPE=$FREETYPE_MAJOR.$FREETYPE_MINOR
|
||||||
freetype_patch=
|
else
|
||||||
|
FREETYPE=$FREETYPE_MAJOR.$FREETYPE_MINOR.$FREETYPE_PATCH
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "FreeType $FREETYPE:"
|
||||||
|
|
||||||
cd builds/unix
|
cd builds/unix
|
||||||
|
|
||||||
echo "generating \`configure.ac'"
|
echo "generating \`configure.ac'"
|
||||||
sed -e "s;@VERSION@;$freetype_major$freetype_minor$freetype_patch;" \
|
sed -e "s;@VERSION@;$FREETYPE;" \
|
||||||
< configure.raw > configure.ac
|
< configure.raw > configure.ac
|
||||||
|
|
||||||
run aclocal -I . --force
|
run aclocal -I . --force
|
||||||
|
@ -162,4 +172,29 @@ cd ../..
|
||||||
|
|
||||||
chmod +x ./configure
|
chmod +x ./configure
|
||||||
|
|
||||||
|
# Copy all necessary 'dlg' files.
|
||||||
|
copy_submodule_files ()
|
||||||
|
{
|
||||||
|
echo "Copying files from \`subprojects/dlg' to \`src/dlg' and \`include/dlg'"
|
||||||
|
mkdir include/dlg 2> /dev/null
|
||||||
|
cp $DLG_INC_DIR/output.h include/dlg
|
||||||
|
cp $DLG_INC_DIR/dlg.h include/dlg
|
||||||
|
cp $DLG_SRC_DIR/* src/dlg
|
||||||
|
}
|
||||||
|
|
||||||
|
if test -e ".git"; then
|
||||||
|
DLG_INC_DIR=subprojects/dlg/include/dlg
|
||||||
|
DLG_SRC_DIR=subprojects/dlg/src/dlg
|
||||||
|
|
||||||
|
if test -d "$DLG_INC_DIR"; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
echo "Checking out submodule in \`subprojects/dlg':"
|
||||||
|
git submodule init
|
||||||
|
git submodule update
|
||||||
|
fi
|
||||||
|
|
||||||
|
copy_submodule_files
|
||||||
|
fi
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
README for the builds/amiga subdirectory.
|
README for the builds/amiga subdirectory.
|
||||||
|
|
||||||
Copyright (C) 2005-2020 by
|
Copyright (C) 2005-2022 by
|
||||||
Werner Lemberg and Detlef Würkner.
|
Werner Lemberg and Detlef Würkner.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* Amiga-specific configuration file (specification only). */
|
/* Amiga-specific configuration file (specification only). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (C) 2005-2020 by */
|
/* Copyright (C) 2005-2022 by */
|
||||||
/* Werner Lemberg and Detlef Würkner. */
|
/* Werner Lemberg and Detlef Würkner. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* Amiga-specific FreeType module selection. */
|
/* Amiga-specific FreeType module selection. */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (C) 2005-2020 by */
|
/* Copyright (C) 2005-2022 by */
|
||||||
/* Werner Lemberg and Detlef Würkner. */
|
/* Werner Lemberg and Detlef Würkner. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2005-2020 by
|
# Copyright (C) 2005-2022 by
|
||||||
# Werner Lemberg and Detlef Würkner.
|
# Werner Lemberg and Detlef Würkner.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2005-2020 by
|
# Copyright (C) 2005-2022 by
|
||||||
# Werner Lemberg and Detlef Würkner.
|
# Werner Lemberg and Detlef Würkner.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2005-2020 by
|
# Copyright (C) 2005-2022 by
|
||||||
# Werner Lemberg and Detlef Würkner.
|
# Werner Lemberg and Detlef Würkner.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Debugging and logging component for amiga (body).
|
* Debugging and logging component for amiga (body).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2022 by
|
||||||
* David Turner, Robert Wilhelm, Werner Lemberg, and Detlef Wuerkner.
|
* David Turner, Robert Wilhelm, Werner Lemberg, and Detlef Wuerkner.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* Amiga-specific FreeType low-level system interface (body). */
|
/* Amiga-specific FreeType low-level system interface (body). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (C) 1996-2020 by */
|
/* Copyright (C) 1996-2022 by */
|
||||||
/* David Turner, Robert Wilhelm, Werner Lemberg and Detlef Würkner. */
|
/* David Turner, Robert Wilhelm, Werner Lemberg and Detlef Würkner. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -264,7 +264,7 @@ Free_VecPooled( APTR poolHeader,
|
||||||
|
|
||||||
stream->descriptor.pointer = NULL;
|
stream->descriptor.pointer = NULL;
|
||||||
stream->size = 0;
|
stream->size = 0;
|
||||||
stream->base = 0;
|
stream->base = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -13,11 +13,11 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
DELETE := rm -f
|
DELETE := rm -f
|
||||||
CAT := cat
|
CAT := cat
|
||||||
SEP := /
|
SEP := /
|
||||||
BUILD_DIR := $(TOP_DIR)/builds/ansi
|
PLATFORM_DIR := $(TOP_DIR)/builds/ansi
|
||||||
PLATFORM := ansi
|
PLATFORM := ansi
|
||||||
|
|
||||||
# This is used for `make refdoc' and `make refdoc-venv'
|
# This is used for `make refdoc' and `make refdoc-venv'
|
||||||
#
|
#
|
||||||
|
@ -64,14 +64,14 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c
|
CFLAGS ?= -c
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS :=
|
ANSIFLAGS ?=
|
||||||
|
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -15,7 +15,7 @@ To compile FreeType 2 as a library the following changes must be applied:
|
||||||
|
|
||||||
INCLUDE;E:\freetype2\include
|
INCLUDE;E:\freetype2\include
|
||||||
|
|
||||||
- The file `freetype2/include/Ft2build.h' must be patched as follows to
|
- The file `freetype/include/Ft2build.h' must be patched as follows to
|
||||||
include ATARI.H:
|
include ATARI.H:
|
||||||
|
|
||||||
#ifndef FT2_BUILD_GENERIC_H_
|
#ifndef FT2_BUILD_GENERIC_H_
|
||||||
|
@ -40,7 +40,7 @@ ge
|
||||||
|
|
||||||
INCLUDE;E:\freetype2\include
|
INCLUDE;E:\freetype2\include
|
||||||
|
|
||||||
- In der Datei freetype2/include/Ft2build.h muss zu Beginn
|
- In der Datei freetype/include/Ft2build.h muss zu Beginn
|
||||||
ein #include "ATARI.H" wie folgt eingef<65>gt werden:
|
ein #include "ATARI.H" wie folgt eingef<65>gt werden:
|
||||||
|
|
||||||
#ifndef FT2_BUILD_GENERIC_H_
|
#ifndef FT2_BUILD_GENERIC_H_
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -15,11 +15,11 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
DELETE := rm -f
|
DELETE := rm -f
|
||||||
CAT := cat
|
CAT := cat
|
||||||
SEP := /
|
SEP := /
|
||||||
BUILD_DIR := $(TOP_DIR)/builds/beos
|
PLATFORM_DIR := $(TOP_DIR)/builds/beos
|
||||||
PLATFORM := beos
|
PLATFORM := beos
|
||||||
|
|
||||||
# This is used for `make refdoc' and `make refdoc-venv'
|
# This is used for `make refdoc' and `make refdoc-venv'
|
||||||
#
|
#
|
||||||
|
@ -66,14 +66,14 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c
|
CFLAGS ?= -c
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS :=
|
ANSIFLAGS ?=
|
||||||
|
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# FreeType 2 configuration rules for a BeOS system
|
# FreeType 2 configuration rules for a BeOS system
|
||||||
#
|
#
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -27,11 +27,11 @@ endif
|
||||||
|
|
||||||
ifeq ($(PLATFORM),beos)
|
ifeq ($(PLATFORM),beos)
|
||||||
|
|
||||||
DELETE := rm -f
|
DELETE := rm -f
|
||||||
CAT := cat
|
CAT := cat
|
||||||
SEP := /
|
SEP := /
|
||||||
BUILD_DIR := $(TOP_DIR)/builds/beos
|
PLATFORM_DIR := $(TOP_DIR)/builds/beos
|
||||||
CONFIG_FILE := beos.mk
|
CONFIG_FILE := beos.mk
|
||||||
|
|
||||||
setup: std_setup
|
setup: std_setup
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# FindBrotliDec.cmake
|
# FindBrotliDec.cmake
|
||||||
#
|
#
|
||||||
# Copyright (C) 2019-2020 by
|
# Copyright (C) 2019-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# Written by Werner Lemberg <wl@gnu.org>
|
# Written by Werner Lemberg <wl@gnu.org>
|
||||||
|
@ -19,7 +19,8 @@
|
||||||
# BROTLIDEC_INCLUDE_DIRS
|
# BROTLIDEC_INCLUDE_DIRS
|
||||||
# BROTLIDEC_LIBRARIES
|
# BROTLIDEC_LIBRARIES
|
||||||
|
|
||||||
include(FindPkgConfig)
|
find_package(PkgConfig QUIET)
|
||||||
|
|
||||||
pkg_check_modules(PC_BROTLIDEC QUIET libbrotlidec)
|
pkg_check_modules(PC_BROTLIDEC QUIET libbrotlidec)
|
||||||
|
|
||||||
if (PC_BROTLIDEC_VERSION)
|
if (PC_BROTLIDEC_VERSION)
|
||||||
|
@ -41,7 +42,7 @@ find_library(BROTLIDEC_LIBRARIES
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(
|
find_package_handle_standard_args(
|
||||||
brotlidec
|
BrotliDec
|
||||||
REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLIDEC_LIBRARIES
|
REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLIDEC_LIBRARIES
|
||||||
FOUND_VAR BROTLIDEC_FOUND
|
FOUND_VAR BROTLIDEC_FOUND
|
||||||
VERSION_VAR BROTLIDEC_VERSION)
|
VERSION_VAR BROTLIDEC_VERSION)
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
# Copyright (c) 2012, Intel Corporation
|
# Copyright (c) 2012, Intel Corporation
|
||||||
|
# Copyright (c) 2019 Sony Interactive Entertainment Inc.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
# modification, are permitted provided that the following conditions are met:
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
@ -23,65 +24,180 @@
|
||||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
# 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
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
# Try to find Harfbuzz include and library directories.
|
||||||
# Try to find HarfBuzz include and library directories.
|
|
||||||
#
|
#
|
||||||
# After successful discovery, this will set for inclusion where needed:
|
# After successful discovery, this will set for inclusion where needed:
|
||||||
#
|
# HarfBuzz_INCLUDE_DIRS - containg the HarfBuzz headers
|
||||||
# HARFBUZZ_INCLUDE_DIRS - containg the HarfBuzz headers
|
# HarfBuzz_LIBRARIES - containg the HarfBuzz library
|
||||||
# HARFBUZZ_LIBRARIES - containg the HarfBuzz library
|
|
||||||
|
|
||||||
include(FindPkgConfig)
|
#[=======================================================================[.rst:
|
||||||
|
FindHarfBuzz
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Find HarfBuzz headers and libraries.
|
||||||
|
|
||||||
|
Imported Targets
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
``HarfBuzz::HarfBuzz``
|
||||||
|
The HarfBuzz library, if found.
|
||||||
|
|
||||||
|
``HarfBuzz::ICU``
|
||||||
|
The HarfBuzz ICU library, if found.
|
||||||
|
|
||||||
|
Result Variables
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This will define the following variables in your project:
|
||||||
|
|
||||||
|
``HarfBuzz_FOUND``
|
||||||
|
true if (the requested version of) HarfBuzz is available.
|
||||||
|
``HarfBuzz_VERSION``
|
||||||
|
the version of HarfBuzz.
|
||||||
|
``HarfBuzz_LIBRARIES``
|
||||||
|
the libraries to link against to use HarfBuzz.
|
||||||
|
``HarfBuzz_INCLUDE_DIRS``
|
||||||
|
where to find the HarfBuzz headers.
|
||||||
|
``HarfBuzz_COMPILE_OPTIONS``
|
||||||
|
this should be passed to target_compile_options(), if the
|
||||||
|
target is not used for linking
|
||||||
|
|
||||||
|
#]=======================================================================]
|
||||||
|
|
||||||
|
find_package(PkgConfig QUIET)
|
||||||
pkg_check_modules(PC_HARFBUZZ QUIET harfbuzz)
|
pkg_check_modules(PC_HARFBUZZ QUIET harfbuzz)
|
||||||
|
set(HarfBuzz_COMPILE_OPTIONS ${PC_HARFBUZZ_CFLAGS_OTHER})
|
||||||
|
set(HarfBuzz_VERSION ${PC_HARFBUZZ_CFLAGS_VERSION})
|
||||||
|
|
||||||
find_path(HARFBUZZ_INCLUDE_DIRS
|
find_path(HarfBuzz_INCLUDE_DIR
|
||||||
NAMES hb.h
|
NAMES hb.h
|
||||||
HINTS ${PC_HARFBUZZ_INCLUDEDIR}
|
HINTS ${PC_HARFBUZZ_INCLUDEDIR} ${PC_HARFBUZZ_INCLUDE_DIRS}
|
||||||
${PC_HARFBUZZ_INCLUDE_DIRS}
|
PATH_SUFFIXES harfbuzz
|
||||||
PATH_SUFFIXES harfbuzz)
|
)
|
||||||
|
|
||||||
find_library(HARFBUZZ_LIBRARIES
|
find_library(HarfBuzz_LIBRARY
|
||||||
NAMES harfbuzz
|
NAMES ${HarfBuzz_NAMES} harfbuzz
|
||||||
HINTS ${PC_HARFBUZZ_LIBDIR}
|
HINTS ${PC_HARFBUZZ_LIBDIR} ${PC_HARFBUZZ_LIBRARY_DIRS}
|
||||||
${PC_HARFBUZZ_LIBRARY_DIRS})
|
)
|
||||||
|
|
||||||
if (HARFBUZZ_INCLUDE_DIRS)
|
if (HarfBuzz_INCLUDE_DIR AND NOT HarfBuzz_VERSION)
|
||||||
if (EXISTS "${HARFBUZZ_INCLUDE_DIRS}/hb-version.h")
|
if (EXISTS "${HarfBuzz_INCLUDE_DIR}/hb-version.h")
|
||||||
file(READ "${HARFBUZZ_INCLUDE_DIRS}/hb-version.h" _harfbuzz_version_content)
|
file(READ "${HarfBuzz_INCLUDE_DIR}/hb-version.h" _harfbuzz_version_content)
|
||||||
|
|
||||||
string(REGEX MATCH
|
string(REGEX MATCH "#define +HB_VERSION_STRING +\"([0-9]+\\.[0-9]+\\.[0-9]+)\"" _dummy "${_harfbuzz_version_content}")
|
||||||
"#define +HB_VERSION_STRING +\"([0-9]+\\.[0-9]+\\.[0-9]+)\""
|
set(HarfBuzz_VERSION "${CMAKE_MATCH_1}")
|
||||||
_dummy "${_harfbuzz_version_content}")
|
endif ()
|
||||||
set(HARFBUZZ_VERSION "${CMAKE_MATCH_1}")
|
endif ()
|
||||||
|
|
||||||
|
if ("${HarfBuzz_FIND_VERSION}" VERSION_GREATER "${HarfBuzz_VERSION}")
|
||||||
|
if (HarfBuzz_FIND_REQUIRED)
|
||||||
|
message(FATAL_ERROR
|
||||||
|
"Required version (" ${HarfBuzz_FIND_VERSION} ")"
|
||||||
|
" is higher than found version (" ${HarfBuzz_VERSION} ")")
|
||||||
|
else ()
|
||||||
|
message(WARNING
|
||||||
|
"Required version (" ${HarfBuzz_FIND_VERSION} ")"
|
||||||
|
" is higher than found version (" ${HarfBuzz_VERSION} ")")
|
||||||
|
unset(HarfBuzz_VERSION)
|
||||||
|
unset(HarfBuzz_INCLUDE_DIRS)
|
||||||
|
unset(HarfBuzz_LIBRARIES)
|
||||||
|
return ()
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if ("${harfbuzz_FIND_VERSION}" VERSION_GREATER "${HARFBUZZ_VERSION}")
|
# Find components
|
||||||
message(FATAL_ERROR
|
if (HarfBuzz_INCLUDE_DIR AND HarfBuzz_LIBRARY)
|
||||||
"Required version (" ${harfbuzz_FIND_VERSION} ")"
|
set(_HarfBuzz_REQUIRED_LIBS_FOUND ON)
|
||||||
" is higher than found version (" ${HARFBUZZ_VERSION} ")")
|
set(HarfBuzz_LIBS_FOUND "HarfBuzz (required): ${HarfBuzz_LIBRARY}")
|
||||||
|
else ()
|
||||||
|
set(_HarfBuzz_REQUIRED_LIBS_FOUND OFF)
|
||||||
|
set(HarfBuzz_LIBS_NOT_FOUND "HarfBuzz (required)")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT CMAKE_VERSION VERSION_LESS 3.3)
|
||||||
|
if ("ICU" IN_LIST HarfBuzz_FIND_COMPONENTS)
|
||||||
|
pkg_check_modules(PC_HARFBUZZ_ICU QUIET harfbuzz-icu)
|
||||||
|
set(HarfBuzz_ICU_COMPILE_OPTIONS ${PC_HARFBUZZ_ICU_CFLAGS_OTHER})
|
||||||
|
|
||||||
|
find_path(HarfBuzz_ICU_INCLUDE_DIR
|
||||||
|
NAMES hb-icu.h
|
||||||
|
HINTS ${PC_HARFBUZZ_ICU_INCLUDEDIR} ${PC_HARFBUZZ_ICU_INCLUDE_DIRS}
|
||||||
|
PATH_SUFFIXES harfbuzz
|
||||||
|
)
|
||||||
|
|
||||||
|
find_library(HarfBuzz_ICU_LIBRARY
|
||||||
|
NAMES ${HarfBuzz_ICU_NAMES} harfbuzz-icu
|
||||||
|
HINTS ${PC_HARFBUZZ_ICU_LIBDIR} ${PC_HARFBUZZ_ICU_LIBRARY_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
|
if (HarfBuzz_ICU_LIBRARY)
|
||||||
|
if (HarfBuzz_FIND_REQUIRED_ICU)
|
||||||
|
list(APPEND HarfBuzz_LIBS_FOUND "ICU (required): ${HarfBuzz_ICU_LIBRARY}")
|
||||||
|
else ()
|
||||||
|
list(APPEND HarfBuzz_LIBS_FOUND "ICU (optional): ${HarfBuzz_ICU_LIBRARY}")
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
if (HarfBuzz_FIND_REQUIRED_ICU)
|
||||||
|
set(_HarfBuzz_REQUIRED_LIBS_FOUND OFF)
|
||||||
|
list(APPEND HarfBuzz_LIBS_NOT_FOUND "ICU (required)")
|
||||||
|
else ()
|
||||||
|
list(APPEND HarfBuzz_LIBS_NOT_FOUND "ICU (optional)")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT HarfBuzz_FIND_QUIETLY)
|
||||||
|
if (HarfBuzz_LIBS_FOUND)
|
||||||
|
message(STATUS "Found the following HarfBuzz libraries:")
|
||||||
|
foreach (found ${HarfBuzz_LIBS_FOUND})
|
||||||
|
message(STATUS " ${found}")
|
||||||
|
endforeach ()
|
||||||
|
endif ()
|
||||||
|
if (HarfBuzz_LIBS_NOT_FOUND)
|
||||||
|
message(STATUS "The following HarfBuzz libraries were not found:")
|
||||||
|
foreach (found ${HarfBuzz_LIBS_NOT_FOUND})
|
||||||
|
message(STATUS " ${found}")
|
||||||
|
endforeach ()
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(
|
find_package_handle_standard_args(HarfBuzz
|
||||||
harfbuzz
|
FOUND_VAR HarfBuzz_FOUND
|
||||||
REQUIRED_VARS HARFBUZZ_INCLUDE_DIRS HARFBUZZ_LIBRARIES
|
REQUIRED_VARS HarfBuzz_INCLUDE_DIR HarfBuzz_LIBRARY _HarfBuzz_REQUIRED_LIBS_FOUND
|
||||||
VERSION_VAR HARFBUZZ_VERSION)
|
VERSION_VAR HarfBuzz_VERSION
|
||||||
|
)
|
||||||
|
|
||||||
mark_as_advanced(
|
|
||||||
HARFBUZZ_INCLUDE_DIRS
|
|
||||||
HARFBUZZ_LIBRARIES)
|
|
||||||
|
|
||||||
# Allow easy linking as in
|
|
||||||
#
|
|
||||||
# target_link_libraries(freetype PRIVATE Harfbuzz::Harfbuzz)
|
|
||||||
#
|
|
||||||
if (NOT CMAKE_VERSION VERSION_LESS 3.1)
|
if (NOT CMAKE_VERSION VERSION_LESS 3.1)
|
||||||
if (HARFBUZZ_FOUND AND NOT TARGET Harfbuzz::Harfbuzz)
|
if (HarfBuzz_LIBRARY AND NOT TARGET HarfBuzz::HarfBuzz)
|
||||||
add_library(Harfbuzz::Harfbuzz INTERFACE IMPORTED)
|
add_library(HarfBuzz::HarfBuzz UNKNOWN IMPORTED GLOBAL)
|
||||||
set_target_properties(
|
set_target_properties(HarfBuzz::HarfBuzz PROPERTIES
|
||||||
Harfbuzz::Harfbuzz PROPERTIES
|
IMPORTED_LOCATION "${HarfBuzz_LIBRARY}"
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${HARFBUZZ_INCLUDE_DIRS}")
|
INTERFACE_COMPILE_OPTIONS "${HarfBuzz_COMPILE_OPTIONS}"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${HarfBuzz_INCLUDE_DIR}"
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (HarfBuzz_ICU_LIBRARY AND NOT TARGET HarfBuzz::ICU)
|
||||||
|
add_library(HarfBuzz::ICU UNKNOWN IMPORTED GLOBAL)
|
||||||
|
set_target_properties(HarfBuzz::ICU PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${HarfBuzz_ICU_LIBRARY}"
|
||||||
|
INTERFACE_COMPILE_OPTIONS "${HarfBuzz_ICU_COMPILE_OPTIONS}"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${HarfBuzz_ICU_INCLUDE_DIR}"
|
||||||
|
)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
mark_as_advanced(
|
||||||
|
HarfBuzz_INCLUDE_DIR
|
||||||
|
HarfBuzz_ICU_INCLUDE_DIR
|
||||||
|
HarfBuzz_LIBRARY
|
||||||
|
HarfBuzz_ICU_LIBRARY
|
||||||
|
)
|
||||||
|
|
||||||
|
if (HarfBuzz_FOUND)
|
||||||
|
set(HarfBuzz_LIBRARIES ${HarfBuzz_LIBRARY} ${HarfBuzz_ICU_LIBRARY})
|
||||||
|
set(HarfBuzz_INCLUDE_DIRS ${HarfBuzz_INCLUDE_DIR} ${HarfBuzz_ICU_INCLUDE_DIR})
|
||||||
|
endif ()
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# iOS.cmake
|
# iOS.cmake
|
||||||
#
|
#
|
||||||
# Copyright (C) 2014-2020 by
|
# Copyright (C) 2014-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# Written by David Wimsey <david@wimsey.us>
|
# Written by David Wimsey <david@wimsey.us>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh -e
|
#!/bin/sh -e
|
||||||
|
|
||||||
# Copyright (C) 2015-2020 by
|
# Copyright (C) 2015-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -59,7 +59,7 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c
|
CFLAGS ?= -c
|
||||||
|
@ -68,7 +68,7 @@ CFLAGS ?= -c
|
||||||
#
|
#
|
||||||
# we assume the compiler is already strictly ANSI
|
# we assume the compiler is already strictly ANSI
|
||||||
#
|
#
|
||||||
ANSIFLAGS :=
|
ANSIFLAGS ?=
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -60,14 +60,14 @@ TE := -e
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -q -c -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
|
CFLAGS ?= -q -c -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS := -A
|
ANSIFLAGS ?= -A
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -60,14 +60,14 @@ TE := -e
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c -q -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
|
CFLAGS ?= -c -q -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS := -A
|
ANSIFLAGS ?= -A
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2003-2020 by
|
# Copyright (C) 2003-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -58,14 +58,14 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c -g -O6 -Wall
|
CFLAGS ?= -c -g -O6 -Wall
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS :=
|
ANSIFLAGS ?=
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -59,7 +59,7 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
ifndef CFLAGS
|
ifndef CFLAGS
|
||||||
|
@ -82,8 +82,9 @@ ifndef CFLAGS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
|
# You can override this on the command line.
|
||||||
#
|
#
|
||||||
ANSIFLAGS := -ansi -pedantic
|
ANSIFLAGS ?= -std=c99 -pedantic
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -58,14 +58,14 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c -g -O3 -Wall
|
CFLAGS ?= -c -g -O3 -Wall
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS := -ansi -pedantic
|
ANSIFLAGS ?= -std=c99 -pedantic
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -61,7 +61,7 @@ TE := /Fe
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
# Note that the Intel C/C++ compiler version 4.5 complains about
|
# Note that the Intel C/C++ compiler version 4.5 complains about
|
||||||
|
@ -74,7 +74,7 @@ CFLAGS ?= /nologo /c /Ox /G5 /W3 /Qwd32
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS := /Qansi_alias /Za
|
ANSIFLAGS ?= /Qansi_alias /Za
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
#
|
#
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -60,7 +60,7 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c -g
|
CFLAGS ?= -c -g
|
||||||
|
@ -71,7 +71,7 @@ CFLAGS ?= -c -g
|
||||||
#
|
#
|
||||||
# the "-A" flag simply increments verbosity about non ANSI code
|
# the "-A" flag simply increments verbosity about non ANSI code
|
||||||
#
|
#
|
||||||
ANSIFLAGS := -A
|
ANSIFLAGS ?= -A
|
||||||
|
|
||||||
|
|
||||||
# library linking
|
# library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -63,14 +63,14 @@ TE := /Fe
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= /nologo /c /Ox /W3 /WX
|
CFLAGS ?= /nologo /c /Ox /W3 /WX
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS := /Za /D_CRT_SECURE_NO_DEPRECATE
|
ANSIFLAGS ?= /Za /D_CRT_SECURE_NO_DEPRECATE
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -60,14 +60,14 @@ T := -FO=
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -zq
|
CFLAGS ?= -zq
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS := -za
|
ANSIFLAGS ?= -za
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -60,7 +60,7 @@ T := -Fo
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c -g2 -O
|
CFLAGS ?= -c -g2 -O
|
||||||
|
@ -69,7 +69,7 @@ CFLAGS ?= -c -g2 -O
|
||||||
#
|
#
|
||||||
# LCC is pure ANSI anyway!
|
# LCC is pure ANSI anyway!
|
||||||
#
|
#
|
||||||
ANSIFLAGS :=
|
ANSIFLAGS ?=
|
||||||
|
|
||||||
|
|
||||||
# library linking
|
# library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
# This sub-Makefile is in charge of detecting the current platform. It sets
|
# This sub-Makefile is in charge of detecting the current platform. It sets
|
||||||
# the following variables:
|
# the following variables:
|
||||||
#
|
#
|
||||||
# BUILD_DIR The configuration and system-specific directory. Usually
|
# PLATFORM_DIR The configuration and system-specific directory. Usually
|
||||||
# `builds/$(PLATFORM)' but can be different for custom builds
|
# `builds/$(PLATFORM)' but can be different for custom builds
|
||||||
# of the library.
|
# of the library.
|
||||||
#
|
#
|
||||||
|
@ -49,8 +49,8 @@ SEP := /
|
||||||
BUILD_CONFIG := $(TOP_DIR)/builds
|
BUILD_CONFIG := $(TOP_DIR)/builds
|
||||||
|
|
||||||
# These two assignments must be delayed.
|
# These two assignments must be delayed.
|
||||||
BUILD_DIR = $(BUILD_CONFIG)/$(PLATFORM)
|
PLATFORM_DIR = $(BUILD_CONFIG)/$(PLATFORM)
|
||||||
CONFIG_RULES = $(BUILD_DIR)/$(CONFIG_FILE)
|
CONFIG_RULES = $(PLATFORM_DIR)/$(CONFIG_FILE)
|
||||||
|
|
||||||
# We define the BACKSLASH variable to hold a single back-slash character.
|
# We define the BACKSLASH variable to hold a single back-slash character.
|
||||||
# This is needed because a line like
|
# This is needed because a line like
|
||||||
|
@ -113,7 +113,7 @@ std_setup:
|
||||||
$(info )
|
$(info )
|
||||||
$(info $(empty) platform $(PLATFORM))
|
$(info $(empty) platform $(PLATFORM))
|
||||||
$(info $(empty) compiler $(CC))
|
$(info $(empty) compiler $(CC))
|
||||||
$(info $(empty) configuration directory $(subst /,$(SEP),$(BUILD_DIR)))
|
$(info $(empty) configuration directory $(subst /,$(SEP),$(PLATFORM_DIR)))
|
||||||
$(info $(empty) configuration rules $(subst /,$(SEP),$(CONFIG_RULES)))
|
$(info $(empty) configuration rules $(subst /,$(SEP),$(CONFIG_RULES)))
|
||||||
$(info )
|
$(info )
|
||||||
$(info If this does not correspond to your system or settings please remove the file)
|
$(info If this does not correspond to your system or settings please remove the file)
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -13,11 +13,11 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
DELETE := del
|
DELETE := del
|
||||||
CAT := type
|
CAT := type
|
||||||
SEP := $(strip \ )
|
SEP := $(strip \ )
|
||||||
BUILD_DIR := $(TOP_DIR)/builds/dos
|
PLATFORM_DIR := $(TOP_DIR)/builds/dos
|
||||||
PLATFORM := dos
|
PLATFORM := dos
|
||||||
|
|
||||||
# This is used for `make refdoc' and `make refdoc-venv'
|
# This is used for `make refdoc' and `make refdoc-venv'
|
||||||
#
|
#
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2003-2020 by
|
# Copyright (C) 2003-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2003-2020 by
|
# Copyright (C) 2003-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2005-2020 by
|
# Copyright (C) 2005-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -20,8 +20,8 @@
|
||||||
# The following variables (set by other Makefile components, in the
|
# The following variables (set by other Makefile components, in the
|
||||||
# environment, or on the command line) are used:
|
# environment, or on the command line) are used:
|
||||||
#
|
#
|
||||||
# BUILD_DIR The architecture dependent directory,
|
# PLATFORM_DIR The architecture-dependent directory,
|
||||||
# e.g. `$(TOP_DIR)/builds/unix'. Added to INCLUDES also.
|
# e.g., `$(TOP_DIR)/builds/unix'. Added to INCLUDES also.
|
||||||
#
|
#
|
||||||
# OBJ_DIR The directory in which object files are created.
|
# OBJ_DIR The directory in which object files are created.
|
||||||
#
|
#
|
||||||
|
@ -121,7 +121,7 @@ PROJECT_LIBRARY := $(LIB_DIR)/$(LIBRARY).$A
|
||||||
#
|
#
|
||||||
INCLUDES := $(subst /,$(COMPILER_SEP),$(OBJ_DIR) \
|
INCLUDES := $(subst /,$(COMPILER_SEP),$(OBJ_DIR) \
|
||||||
$(DEVEL_DIR) \
|
$(DEVEL_DIR) \
|
||||||
$(BUILD_DIR) \
|
$(PLATFORM_DIR) \
|
||||||
$(TOP_DIR)/include)
|
$(TOP_DIR)/include)
|
||||||
|
|
||||||
INCLUDE_FLAGS := $(INCLUDES:%=$I%)
|
INCLUDE_FLAGS := $(INCLUDES:%=$I%)
|
||||||
|
@ -150,9 +150,9 @@ endif
|
||||||
#
|
#
|
||||||
# `CPPFLAGS' might be specified by the user in the environment.
|
# `CPPFLAGS' might be specified by the user in the environment.
|
||||||
#
|
#
|
||||||
FT_CFLAGS = $(CPPFLAGS) \
|
FT_CFLAGS = $(CPPFLAGS) \
|
||||||
$(CFLAGS) \
|
$(CFLAGS) \
|
||||||
$DFT2_BUILD_LIBRARY
|
$DFT2_BUILD_LIBRARY
|
||||||
|
|
||||||
FT_COMPILE := $(CC) $(ANSIFLAGS) $(INCLUDE_FLAGS) $(FT_CFLAGS)
|
FT_COMPILE := $(CC) $(ANSIFLAGS) $(INCLUDE_FLAGS) $(FT_CFLAGS)
|
||||||
|
|
||||||
|
@ -175,16 +175,16 @@ OBJECTS_LIST :=
|
||||||
# changes, the whole library is recompiled.
|
# changes, the whole library is recompiled.
|
||||||
#
|
#
|
||||||
ifneq ($(wildcard $(OBJ_DIR)/ftoption.h),)
|
ifneq ($(wildcard $(OBJ_DIR)/ftoption.h),)
|
||||||
FTOPTION_H := $(OBJ_DIR)/ftoption.h
|
FTOPTION_H := $(OBJ_DIR)/ftoption.h
|
||||||
else ifneq ($(wildcard $(BUILD_DIR)/ftoption.h),)
|
else ifneq ($(wildcard $(PLATFORM_DIR)/ftoption.h),)
|
||||||
FTOPTION_H := $(BUILD_DIR)/ftoption.h
|
FTOPTION_H := $(PLATFORM_DIR)/ftoption.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PUBLIC_H := $(wildcard $(PUBLIC_DIR)/*.h)
|
PUBLIC_H := $(wildcard $(PUBLIC_DIR)/*.h)
|
||||||
INTERNAL_H := $(wildcard $(INTERNAL_DIR)/*.h) \
|
INTERNAL_H := $(wildcard $(INTERNAL_DIR)/*.h) \
|
||||||
$(wildcard $(SERVICES_DIR)/*.h)
|
$(wildcard $(SERVICES_DIR)/*.h)
|
||||||
CONFIG_H := $(wildcard $(CONFIG_DIR)/*.h) \
|
CONFIG_H := $(wildcard $(CONFIG_DIR)/*.h) \
|
||||||
$(wildcard $(BUILD_DIR)/config/*.h) \
|
$(wildcard $(PLATFORM_DIR)/config/*.h) \
|
||||||
$(FTMODULE_H) \
|
$(FTMODULE_H) \
|
||||||
$(FTOPTION_H)
|
$(FTOPTION_H)
|
||||||
DEVEL_H := $(wildcard $(TOP_DIR)/devel/*.h)
|
DEVEL_H := $(wildcard $(TOP_DIR)/devel/*.h)
|
||||||
|
@ -220,6 +220,7 @@ $(FTDEBUG_OBJ): $(FTDEBUG_SRC) $(FREETYPE_H)
|
||||||
#
|
#
|
||||||
include $(SRC_DIR)/base/rules.mk
|
include $(SRC_DIR)/base/rules.mk
|
||||||
include $(patsubst %,$(SRC_DIR)/%/rules.mk,$(MODULES))
|
include $(patsubst %,$(SRC_DIR)/%/rules.mk,$(MODULES))
|
||||||
|
include $(SRC_DIR)/dlg/rules.mk
|
||||||
|
|
||||||
|
|
||||||
# ftinit component
|
# ftinit component
|
||||||
|
@ -260,8 +261,8 @@ endif
|
||||||
|
|
||||||
# All FreeType library objects.
|
# All FreeType library objects.
|
||||||
#
|
#
|
||||||
OBJ_M := $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M)
|
OBJ_M := $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M) $(DLG_OBJS_M)
|
||||||
OBJ_S := $(BASE_OBJ_S) $(BASE_EXT_OBJ) $(DRV_OBJS_S)
|
OBJ_S := $(BASE_OBJ_S) $(BASE_EXT_OBJ) $(DRV_OBJS_S) $(DLG_OBJS_S)
|
||||||
|
|
||||||
|
|
||||||
# The target `multi' on the Make command line indicates that we want to
|
# The target `multi' on the Make command line indicates that we want to
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<string>English</string>
|
<string>English</string>
|
||||||
|
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>FreeType</string>
|
<string>freetype</string>
|
||||||
|
|
||||||
<key>CFBundleGetInfoString</key>
|
<key>CFBundleGetInfoString</key>
|
||||||
<string>FreeType ${PROJECT_VERSION}</string>
|
<string>FreeType ${PROJECT_VERSION}</string>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
/* Mac FOND support. Written by just@letterror.com. */
|
/* Mac FOND support. Written by just@letterror.com. */
|
||||||
/* Heavily Fixed by mpsuzuki, George Williams and Sean McBride */
|
/* Heavily Fixed by mpsuzuki, George Williams and Sean McBride */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (C) 1996-2020 by */
|
/* Copyright (C) 1996-2022 by */
|
||||||
/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
|
|
||||||
#define FT_DEPRECATED_ATTRIBUTE
|
#define FT_DEPRECATED_ATTRIBUTE
|
||||||
|
|
||||||
#include FT_MAC_H
|
#include <freetype/ftmac.h>
|
||||||
|
|
||||||
/* undefine blocking-macros in ftmac.h */
|
/* undefine blocking-macros in ftmac.h */
|
||||||
#undef FT_GetFile_From_Mac_Name
|
#undef FT_GetFile_From_Mac_Name
|
||||||
|
@ -447,7 +447,7 @@ typedef short ResourceIndex;
|
||||||
|
|
||||||
stream->descriptor.pointer = NULL;
|
stream->descriptor.pointer = NULL;
|
||||||
stream->size = 0;
|
stream->size = 0;
|
||||||
stream->base = 0;
|
stream->base = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -939,7 +939,7 @@ typedef short ResourceIndex;
|
||||||
if ( lwfn_file_name[0] )
|
if ( lwfn_file_name[0] )
|
||||||
{
|
{
|
||||||
err = lookup_lwfn_by_fond( pathname, lwfn_file_name,
|
err = lookup_lwfn_by_fond( pathname, lwfn_file_name,
|
||||||
buff, sizeof ( buff ) );
|
buff, sizeof ( buff ) );
|
||||||
if ( !err )
|
if ( !err )
|
||||||
have_lwfn = 1;
|
have_lwfn = 1;
|
||||||
}
|
}
|
||||||
|
@ -1011,7 +1011,7 @@ typedef short ResourceIndex;
|
||||||
old_total_size = total_size;
|
old_total_size = total_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( FT_ALLOC( buffer, (FT_Long)total_size ) )
|
if ( FT_QALLOC( buffer, (FT_Long)total_size ) )
|
||||||
goto Error;
|
goto Error;
|
||||||
|
|
||||||
/* Second pass: append all POST data to the buffer, add PFB fields. */
|
/* Second pass: append all POST data to the buffer, add PFB fields. */
|
||||||
|
@ -1127,7 +1127,7 @@ typedef short ResourceIndex;
|
||||||
return FT_THROW( Invalid_Handle );
|
return FT_THROW( Invalid_Handle );
|
||||||
|
|
||||||
sfnt_size = (FT_ULong)GetHandleSize( sfnt );
|
sfnt_size = (FT_ULong)GetHandleSize( sfnt );
|
||||||
if ( FT_ALLOC( sfnt_data, (FT_Long)sfnt_size ) )
|
if ( FT_QALLOC( sfnt_data, (FT_Long)sfnt_size ) )
|
||||||
{
|
{
|
||||||
ReleaseResource( sfnt );
|
ReleaseResource( sfnt );
|
||||||
return error;
|
return error;
|
||||||
|
|
|
@ -0,0 +1,117 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
#
|
||||||
|
# Copyright (C) 2020-2022 by
|
||||||
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
#
|
||||||
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
# and distributed under the terms of the FreeType project license,
|
||||||
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
|
# indicate that you have read the license and understand and accept it
|
||||||
|
# fully.
|
||||||
|
|
||||||
|
"""Extract the FreeType version numbers from `<freetype/freetype.h>`.
|
||||||
|
|
||||||
|
This script parses the header to extract the version number defined there.
|
||||||
|
By default, the full dotted version number is printed, but `--major`,
|
||||||
|
`--minor` or `--patch` can be used to only print one of these values
|
||||||
|
instead.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# Expected input:
|
||||||
|
#
|
||||||
|
# ...
|
||||||
|
# #define FREETYPE_MAJOR 2
|
||||||
|
# #define FREETYPE_MINOR 10
|
||||||
|
# #define FREETYPE_PATCH 2
|
||||||
|
# ...
|
||||||
|
|
||||||
|
RE_MAJOR = re.compile(r"^ \#define \s+ FREETYPE_MAJOR \s+ (.*) $", re.X)
|
||||||
|
RE_MINOR = re.compile(r"^ \#define \s+ FREETYPE_MINOR \s+ (.*) $", re.X)
|
||||||
|
RE_PATCH = re.compile(r"^ \#define \s+ FREETYPE_PATCH \s+ (.*) $", re.X)
|
||||||
|
|
||||||
|
|
||||||
|
def parse_freetype_header(header):
|
||||||
|
major = None
|
||||||
|
minor = None
|
||||||
|
patch = None
|
||||||
|
|
||||||
|
for line in header.splitlines():
|
||||||
|
line = line.rstrip()
|
||||||
|
m = RE_MAJOR.match(line)
|
||||||
|
if m:
|
||||||
|
assert major == None, "FREETYPE_MAJOR appears more than once!"
|
||||||
|
major = m.group(1)
|
||||||
|
continue
|
||||||
|
|
||||||
|
m = RE_MINOR.match(line)
|
||||||
|
if m:
|
||||||
|
assert minor == None, "FREETYPE_MINOR appears more than once!"
|
||||||
|
minor = m.group(1)
|
||||||
|
continue
|
||||||
|
|
||||||
|
m = RE_PATCH.match(line)
|
||||||
|
if m:
|
||||||
|
assert patch == None, "FREETYPE_PATCH appears more than once!"
|
||||||
|
patch = m.group(1)
|
||||||
|
continue
|
||||||
|
|
||||||
|
assert (
|
||||||
|
major and minor and patch
|
||||||
|
), "This header is missing one of FREETYPE_MAJOR, FREETYPE_MINOR or FREETYPE_PATCH!"
|
||||||
|
|
||||||
|
return (major, minor, patch)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description=__doc__)
|
||||||
|
|
||||||
|
group = parser.add_mutually_exclusive_group()
|
||||||
|
group.add_argument(
|
||||||
|
"--major",
|
||||||
|
action="store_true",
|
||||||
|
help="Only print the major version number.",
|
||||||
|
)
|
||||||
|
group.add_argument(
|
||||||
|
"--minor",
|
||||||
|
action="store_true",
|
||||||
|
help="Only print the minor version number.",
|
||||||
|
)
|
||||||
|
group.add_argument(
|
||||||
|
"--patch",
|
||||||
|
action="store_true",
|
||||||
|
help="Only print the patch version number.",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"input",
|
||||||
|
metavar="FREETYPE_H",
|
||||||
|
help="The input freetype.h header to parse.",
|
||||||
|
)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
with open(args.input) as f:
|
||||||
|
header = f.read()
|
||||||
|
|
||||||
|
version = parse_freetype_header(header)
|
||||||
|
|
||||||
|
if args.major:
|
||||||
|
print(version[0])
|
||||||
|
elif args.minor:
|
||||||
|
print(version[1])
|
||||||
|
elif args.patch:
|
||||||
|
print(version[2])
|
||||||
|
else:
|
||||||
|
print("%s.%s.%s" % version)
|
||||||
|
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
|
@ -0,0 +1,115 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
#
|
||||||
|
# Copyright (C) 2020-2022 by
|
||||||
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
#
|
||||||
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
# and distributed under the terms of the FreeType project license,
|
||||||
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
|
# indicate that you have read the license and understand and accept it
|
||||||
|
# fully.
|
||||||
|
|
||||||
|
"""Extract the libtool version from `configure.raw`.
|
||||||
|
|
||||||
|
This script parses the `configure.raw` file to extract the libtool version
|
||||||
|
number. By default, the full dotted version number is printed, but
|
||||||
|
`--major`, `--minor` or `--patch` can be used to only print one of these
|
||||||
|
values instead.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# Expected input:
|
||||||
|
#
|
||||||
|
# ...
|
||||||
|
# version_info='23:2:17'
|
||||||
|
# ...
|
||||||
|
|
||||||
|
RE_VERSION_INFO = re.compile(r"^version_info='(\d+):(\d+):(\d+)'")
|
||||||
|
|
||||||
|
|
||||||
|
def parse_configure_raw(header):
|
||||||
|
major = None
|
||||||
|
minor = None
|
||||||
|
patch = None
|
||||||
|
|
||||||
|
for line in header.splitlines():
|
||||||
|
line = line.rstrip()
|
||||||
|
m = RE_VERSION_INFO.match(line)
|
||||||
|
if m:
|
||||||
|
assert major == None, "version_info appears more than once!"
|
||||||
|
major = m.group(1)
|
||||||
|
minor = m.group(2)
|
||||||
|
patch = m.group(3)
|
||||||
|
continue
|
||||||
|
|
||||||
|
assert (
|
||||||
|
major and minor and patch
|
||||||
|
), "This input file is missing a version_info definition!"
|
||||||
|
|
||||||
|
return (major, minor, patch)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description=__doc__)
|
||||||
|
|
||||||
|
group = parser.add_mutually_exclusive_group()
|
||||||
|
group.add_argument(
|
||||||
|
"--major",
|
||||||
|
action="store_true",
|
||||||
|
help="Only print the major version number.",
|
||||||
|
)
|
||||||
|
group.add_argument(
|
||||||
|
"--minor",
|
||||||
|
action="store_true",
|
||||||
|
help="Only print the minor version number.",
|
||||||
|
)
|
||||||
|
group.add_argument(
|
||||||
|
"--patch",
|
||||||
|
action="store_true",
|
||||||
|
help="Only print the patch version number.",
|
||||||
|
)
|
||||||
|
group.add_argument(
|
||||||
|
"--soversion",
|
||||||
|
action="store_true",
|
||||||
|
help="Only print the libtool library suffix.",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"input",
|
||||||
|
metavar="CONFIGURE_RAW",
|
||||||
|
help="The input configure.raw file to parse.",
|
||||||
|
)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
with open(args.input) as f:
|
||||||
|
raw_file = f.read()
|
||||||
|
|
||||||
|
version = parse_configure_raw(raw_file)
|
||||||
|
|
||||||
|
if args.major:
|
||||||
|
print(version[0])
|
||||||
|
elif args.minor:
|
||||||
|
print(version[1])
|
||||||
|
elif args.patch:
|
||||||
|
print(version[2])
|
||||||
|
elif args.soversion:
|
||||||
|
# Convert libtool version_info to the library suffix.
|
||||||
|
# (current,revision, age) -> (current - age, age, revision)
|
||||||
|
print(
|
||||||
|
"%d.%s.%s"
|
||||||
|
% (int(version[0]) - int(version[2]), version[2], version[1])
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
print("%s.%s.%s" % version)
|
||||||
|
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
|
@ -0,0 +1,89 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
#
|
||||||
|
# Copyright (C) 2020-2022 by
|
||||||
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
#
|
||||||
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
# and distributed under the terms of the FreeType project license,
|
||||||
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
|
# indicate that you have read the license and understand and accept it
|
||||||
|
# fully.
|
||||||
|
|
||||||
|
"""Generate FreeType reference documentation."""
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import glob
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description=__doc__)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--input-dir",
|
||||||
|
required=True,
|
||||||
|
help="Top-level FreeType source directory.",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--version", required=True, help='FreeType version (e.g. "2.x.y").'
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--output-dir", required=True, help="Output directory."
|
||||||
|
)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
# Get the list of input files of interest.
|
||||||
|
include_dir = os.path.join(args.input_dir, "include")
|
||||||
|
include_config_dir = os.path.join(include_dir, "config")
|
||||||
|
include_cache_dir = os.path.join(include_dir, "cache")
|
||||||
|
|
||||||
|
all_headers = (
|
||||||
|
glob.glob(os.path.join(args.input_dir, "include", "freetype", "*.h"))
|
||||||
|
+ glob.glob(
|
||||||
|
os.path.join(
|
||||||
|
args.input_dir, "include", "freetype", "config", "*.h"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
+ glob.glob(
|
||||||
|
os.path.join(
|
||||||
|
args.input_dir, "include", "freetype", "cache", "*.h"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
if not os.path.exists(args.output_dir):
|
||||||
|
os.makedirs(args.output_dir)
|
||||||
|
else:
|
||||||
|
assert os.path.isdir(args.output_dir), (
|
||||||
|
"Not a directory: " + args.output_dir
|
||||||
|
)
|
||||||
|
|
||||||
|
cmds = [
|
||||||
|
sys.executable,
|
||||||
|
"-m",
|
||||||
|
"docwriter",
|
||||||
|
"--prefix=ft2",
|
||||||
|
"--title=FreeType-" + args.version,
|
||||||
|
"--site=reference",
|
||||||
|
"--output=" + args.output_dir,
|
||||||
|
] + all_headers
|
||||||
|
|
||||||
|
print("Running docwriter...")
|
||||||
|
subprocess.check_call(cmds)
|
||||||
|
|
||||||
|
print("Building static site...")
|
||||||
|
subprocess.check_call(
|
||||||
|
[sys.executable, "-m", "mkdocs", "build"], cwd=args.output_dir
|
||||||
|
)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
|
@ -0,0 +1,171 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
#
|
||||||
|
# Copyright (C) 2020-2022 by
|
||||||
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
#
|
||||||
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
# and distributed under the terms of the FreeType project license,
|
||||||
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
|
# indicate that you have read the license and understand and accept it
|
||||||
|
# fully.
|
||||||
|
|
||||||
|
"""Parse modules.cfg and dump its output either as ftmodule.h or a list of
|
||||||
|
base extensions.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# Expected input:
|
||||||
|
#
|
||||||
|
# ...
|
||||||
|
# FONT_MODULES += <name>
|
||||||
|
# HINTING_MODULES += <name>
|
||||||
|
# RASTER_MODULES += <name>
|
||||||
|
# AUX_MODULES += <name>
|
||||||
|
# BASE_EXTENSIONS += <name>
|
||||||
|
# ...
|
||||||
|
|
||||||
|
|
||||||
|
def parse_modules_cfg(input_file):
|
||||||
|
|
||||||
|
lists = {
|
||||||
|
"FONT_MODULES": [],
|
||||||
|
"HINTING_MODULES": [],
|
||||||
|
"RASTER_MODULES": [],
|
||||||
|
"AUX_MODULES": [],
|
||||||
|
"BASE_EXTENSIONS": [],
|
||||||
|
}
|
||||||
|
|
||||||
|
for line in input_file.splitlines():
|
||||||
|
line = line.rstrip()
|
||||||
|
# Ignore empty lines and those that start with a comment.
|
||||||
|
if not line or line[0] == "#":
|
||||||
|
continue
|
||||||
|
|
||||||
|
items = line.split()
|
||||||
|
assert len(items) == 3 and items[1] == "+=", (
|
||||||
|
"Unexpected input line [%s]" % line
|
||||||
|
)
|
||||||
|
assert items[0] in lists, (
|
||||||
|
"Unexpected configuration variable name " + items[0]
|
||||||
|
)
|
||||||
|
|
||||||
|
lists[items[0]].append(items[2])
|
||||||
|
|
||||||
|
return lists
|
||||||
|
|
||||||
|
|
||||||
|
def generate_ftmodule(lists):
|
||||||
|
result = "/* This is a generated file. */\n"
|
||||||
|
for driver in lists["FONT_MODULES"]:
|
||||||
|
if driver == "sfnt": # Special case for the sfnt 'driver'.
|
||||||
|
result += "FT_USE_MODULE( FT_Module_Class, sfnt_module_class )\n"
|
||||||
|
continue
|
||||||
|
|
||||||
|
name = {
|
||||||
|
"truetype": "tt",
|
||||||
|
"type1": "t1",
|
||||||
|
"cid": "t1cid",
|
||||||
|
"type42": "t42",
|
||||||
|
"winfonts": "winfnt",
|
||||||
|
}.get(driver, driver)
|
||||||
|
result += (
|
||||||
|
"FT_USE_MODULE( FT_Driver_ClassRec, %s_driver_class )\n" % name
|
||||||
|
)
|
||||||
|
|
||||||
|
for module in lists["HINTING_MODULES"]:
|
||||||
|
result += (
|
||||||
|
"FT_USE_MODULE( FT_Module_Class, %s_module_class )\n" % module
|
||||||
|
)
|
||||||
|
|
||||||
|
for module in lists["RASTER_MODULES"]:
|
||||||
|
name = {
|
||||||
|
"raster": "ft_raster1",
|
||||||
|
"smooth": "ft_smooth",
|
||||||
|
"svg": "ft_svg",
|
||||||
|
}.get(module)
|
||||||
|
result += (
|
||||||
|
"FT_USE_MODULE( FT_Renderer_Class, %s_renderer_class )\n" % name
|
||||||
|
)
|
||||||
|
|
||||||
|
for module in lists["AUX_MODULES"]:
|
||||||
|
if module in ("psaux", "psnames", "otvalid", "gxvalid"):
|
||||||
|
result += (
|
||||||
|
"FT_USE_MODULE( FT_Module_Class, %s_module_class )\n" % module
|
||||||
|
)
|
||||||
|
|
||||||
|
result += "/* EOF */\n"
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def generate_main_modules(lists):
|
||||||
|
return "\n".join(
|
||||||
|
lists["FONT_MODULES"]
|
||||||
|
+ lists["HINTING_MODULES"]
|
||||||
|
+ lists["RASTER_MODULES"]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def generate_aux_modules(lists):
|
||||||
|
return "\n".join(lists["AUX_MODULES"])
|
||||||
|
|
||||||
|
|
||||||
|
def generate_base_extensions(lists):
|
||||||
|
return "\n".join(lists["BASE_EXTENSIONS"])
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description=__doc__)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--format",
|
||||||
|
required=True,
|
||||||
|
choices=(
|
||||||
|
"ftmodule.h",
|
||||||
|
"main-modules",
|
||||||
|
"aux-modules",
|
||||||
|
"base-extensions-list",
|
||||||
|
),
|
||||||
|
help="Select output format.",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"input",
|
||||||
|
metavar="CONFIGURE_RAW",
|
||||||
|
help="The input configure.raw file to parse.",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument("--output", help="Output file (default is stdout).")
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
with open(args.input) as f:
|
||||||
|
input_data = f.read()
|
||||||
|
|
||||||
|
lists = parse_modules_cfg(input_data)
|
||||||
|
|
||||||
|
if args.format == "ftmodule.h":
|
||||||
|
result = generate_ftmodule(lists)
|
||||||
|
elif args.format == "main-modules":
|
||||||
|
result = generate_main_modules(lists)
|
||||||
|
elif args.format == "aux-modules":
|
||||||
|
result = generate_aux_modules(lists)
|
||||||
|
elif args.format == "base-extensions-list":
|
||||||
|
result = generate_base_extensions(lists)
|
||||||
|
else:
|
||||||
|
assert False, "Invalid output format!"
|
||||||
|
|
||||||
|
if args.output:
|
||||||
|
with open(args.output, "w") as f:
|
||||||
|
f.write(result)
|
||||||
|
else:
|
||||||
|
print(result)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
|
@ -0,0 +1,115 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
#
|
||||||
|
# Copyright (C) 2020-2022 by
|
||||||
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
#
|
||||||
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
# and distributed under the terms of the FreeType project license,
|
||||||
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
|
# indicate that you have read the license and understand and accept it
|
||||||
|
# fully.
|
||||||
|
|
||||||
|
"""Toggle settings in `ftoption.h` file based on command-line arguments.
|
||||||
|
|
||||||
|
This script takes an `ftoption.h` file as input and rewrites
|
||||||
|
`#define`/`#undef` lines in it based on `--enable=CONFIG_VARNAME` or
|
||||||
|
`--disable=CONFIG_VARNAME` arguments passed to it, where `CONFIG_VARNAME` is
|
||||||
|
configuration variable name, such as `FT_CONFIG_OPTION_USE_LZW`, that may
|
||||||
|
appear in the file.
|
||||||
|
|
||||||
|
Note that if one of `CONFIG_VARNAME` is not found in the input file, this
|
||||||
|
script exits with an error message listing the missing variable names.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description=__doc__)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"input", metavar="FTOPTION_H", help="Path to input ftoption.h file."
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument("--output", help="Output to file instead of stdout.")
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--enable",
|
||||||
|
action="append",
|
||||||
|
default=[],
|
||||||
|
help="Enable a given build option (e.g. FT_CONFIG_OPTION_USE_LZW).",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--disable",
|
||||||
|
action="append",
|
||||||
|
default=[],
|
||||||
|
help="Disable a given build option.",
|
||||||
|
)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
common_options = set(args.enable) & set(args.disable)
|
||||||
|
if common_options:
|
||||||
|
parser.error(
|
||||||
|
"Options cannot be both enabled and disabled: %s"
|
||||||
|
% sorted(common_options)
|
||||||
|
)
|
||||||
|
return 1
|
||||||
|
|
||||||
|
with open(args.input) as f:
|
||||||
|
input_file = f.read()
|
||||||
|
|
||||||
|
options_seen = set()
|
||||||
|
|
||||||
|
new_lines = []
|
||||||
|
for line in input_file.splitlines():
|
||||||
|
# Expected formats:
|
||||||
|
# #define <CONFIG_VAR>
|
||||||
|
# /* #define <CONFIG_VAR> */
|
||||||
|
# #undef <CONFIG_VAR>
|
||||||
|
line = line.rstrip()
|
||||||
|
if line.startswith("/* #define ") and line.endswith(" */"):
|
||||||
|
option_name = line[11:-3].strip()
|
||||||
|
option_enabled = False
|
||||||
|
elif line.startswith("#define "):
|
||||||
|
option_name = line[8:].strip()
|
||||||
|
option_enabled = True
|
||||||
|
elif line.startswith("#undef "):
|
||||||
|
option_name = line[7:].strip()
|
||||||
|
option_enabled = False
|
||||||
|
else:
|
||||||
|
new_lines.append(line)
|
||||||
|
continue
|
||||||
|
|
||||||
|
options_seen.add(option_name)
|
||||||
|
if option_enabled and option_name in args.disable:
|
||||||
|
line = "#undef " + option_name
|
||||||
|
elif not option_enabled and option_name in args.enable:
|
||||||
|
line = "#define " + option_name
|
||||||
|
new_lines.append(line)
|
||||||
|
|
||||||
|
result = "\n".join(new_lines) + "\n"
|
||||||
|
|
||||||
|
# Sanity check that all command-line options were actually processed.
|
||||||
|
cmdline_options = set(args.enable) | set(args.disable)
|
||||||
|
assert cmdline_options.issubset(
|
||||||
|
options_seen
|
||||||
|
), "Could not find options in input file: " + ", ".join(
|
||||||
|
sorted(cmdline_options - options_seen)
|
||||||
|
)
|
||||||
|
|
||||||
|
if args.output:
|
||||||
|
with open(args.output, "w") as f:
|
||||||
|
f.write(result)
|
||||||
|
else:
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -13,11 +13,11 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
DELETE := del
|
DELETE := del
|
||||||
CAT := type
|
CAT := type
|
||||||
SEP := $(strip \ )
|
SEP := $(strip \ )
|
||||||
BUILD_DIR := $(TOP_DIR)/builds/os2
|
PLATFORM_DIR := $(TOP_DIR)/builds/os2
|
||||||
PLATFORM := os2
|
PLATFORM := os2
|
||||||
|
|
||||||
# This is used for `make refdoc' and `make refdoc-venv'
|
# This is used for `make refdoc' and `make refdoc-venv'
|
||||||
#
|
#
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// FreeType 2 project for the symbian platform
|
// FreeType 2 project for the symbian platform
|
||||||
//
|
//
|
||||||
|
|
||||||
// Copyright (C) 2008-2020 by
|
// Copyright (C) 2008-2022 by
|
||||||
// David Turner, Robert Wilhelm, and Werner Lemberg.
|
// David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
//
|
//
|
||||||
// This file is part of the FreeType project, and may only be used, modified,
|
// This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// FreeType 2 makefile for the symbian platform
|
// FreeType 2 makefile for the symbian platform
|
||||||
//
|
//
|
||||||
|
|
||||||
// Copyright (C) 2008-2020 by
|
// Copyright (C) 2008-2022 by
|
||||||
// David Turner, Robert Wilhelm, and Werner Lemberg.
|
// David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
//
|
//
|
||||||
// This file is part of the FreeType project, and may only be used, modified,
|
// This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -103,6 +103,7 @@ ifneq ($(findstring setup,$(MAKECMDGOALS)),)
|
||||||
check_platform := 1
|
check_platform := 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
# Include the automatic host platform detection rules when we need to
|
# Include the automatic host platform detection rules when we need to
|
||||||
# check the platform.
|
# check the platform.
|
||||||
#
|
#
|
||||||
|
@ -112,6 +113,17 @@ ifdef check_platform
|
||||||
|
|
||||||
include $(TOP_DIR)/builds/detect.mk
|
include $(TOP_DIR)/builds/detect.mk
|
||||||
|
|
||||||
|
# For builds directly from the git repository we need to copy files
|
||||||
|
# from `subprojects/dlg' to `src/dlg' and `include/dlg'.
|
||||||
|
#
|
||||||
|
ifeq ($(wildcard $(TOP_DIR)/src/dlg/dlg.*),)
|
||||||
|
ifeq ($(wildcard $(TOP_DIR)/subprojects/dlg/*),)
|
||||||
|
copy_submodule: check_out_submodule
|
||||||
|
endif
|
||||||
|
|
||||||
|
setup: copy_submodule
|
||||||
|
endif
|
||||||
|
|
||||||
# This rule makes sense for Unix only to remove files created by a run of
|
# This rule makes sense for Unix only to remove files created by a run of
|
||||||
# the configure script which hasn't been successful (so that no
|
# the configure script which hasn't been successful (so that no
|
||||||
# `config.mk' has been created). It uses the built-in $(RM) command of
|
# `config.mk' has been created). It uses the built-in $(RM) command of
|
||||||
|
@ -154,6 +166,23 @@ else
|
||||||
endif # test check_platform
|
endif # test check_platform
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: check_out_submodule copy_submodule
|
||||||
|
|
||||||
|
check_out_submodule:
|
||||||
|
$(info Checking out submodule in `subprojects/dlg')
|
||||||
|
git submodule init
|
||||||
|
git submodule update
|
||||||
|
|
||||||
|
copy_submodule:
|
||||||
|
$(info Copying files from `subprojects/dlg' to `src/dlg' and `include/dlg')
|
||||||
|
ifeq ($(wildcard include/dlg),)
|
||||||
|
mkdir $(subst /,$(SEP),include/dlg)
|
||||||
|
endif
|
||||||
|
$(COPY) $(subst /,$(SEP),subprojects/dlg/include/dlg/output.h include/dlg)
|
||||||
|
$(COPY) $(subst /,$(SEP),subprojects/dlg/include/dlg/dlg.h include/dlg)
|
||||||
|
$(COPY) $(subst /,$(SEP),subprojects/dlg/src/dlg/dlg.c src/dlg)
|
||||||
|
|
||||||
|
|
||||||
# We always need the list of modules in ftmodule.h.
|
# We always need the list of modules in ftmodule.h.
|
||||||
#
|
#
|
||||||
all setup: $(FTMODULE_H)
|
all setup: $(FTMODULE_H)
|
||||||
|
@ -197,6 +226,7 @@ patch := $(firstword $(patch))
|
||||||
# else
|
# else
|
||||||
version := $(major).$(minor).$(patch)
|
version := $(major).$(minor).$(patch)
|
||||||
winversion := $(major)$(minor)$(patch)
|
winversion := $(major)$(minor)$(patch)
|
||||||
|
version_tag := VER-$(major)-$(minor)-$(patch)
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -219,7 +249,10 @@ dist:
|
||||||
|
|
||||||
currdir=`pwd` ; \
|
currdir=`pwd` ; \
|
||||||
for f in `find . -wholename '*/.git' -prune \
|
for f in `find . -wholename '*/.git' -prune \
|
||||||
|
-o -name .gitattributes \
|
||||||
-o -name .gitignore \
|
-o -name .gitignore \
|
||||||
|
-o -name .gitlab-ci.yml \
|
||||||
|
-o -name .gitmodules \
|
||||||
-o -name .mailmap \
|
-o -name .mailmap \
|
||||||
-o -type d \
|
-o -type d \
|
||||||
-o -print` ; do \
|
-o -print` ; do \
|
||||||
|
@ -250,6 +283,10 @@ dist:
|
||||||
CONFIG_GUESS = ~/git/config/config.guess
|
CONFIG_GUESS = ~/git/config/config.guess
|
||||||
CONFIG_SUB = ~/git/config/config.sub
|
CONFIG_SUB = ~/git/config/config.sub
|
||||||
|
|
||||||
|
# We also use this repository to access the gnulib script that converts git
|
||||||
|
# commit messages to a ChangeLog file.
|
||||||
|
CHANGELOG_SCRIPT = ~/git/config/gitlog-to-changelog
|
||||||
|
|
||||||
|
|
||||||
# Don't say `make do-dist'. Always use `make dist' instead.
|
# Don't say `make do-dist'. Always use `make dist' instead.
|
||||||
#
|
#
|
||||||
|
@ -267,8 +304,19 @@ do-dist: distclean refdoc
|
||||||
cp $(CONFIG_GUESS) builds/unix
|
cp $(CONFIG_GUESS) builds/unix
|
||||||
cp $(CONFIG_SUB) builds/unix
|
cp $(CONFIG_SUB) builds/unix
|
||||||
|
|
||||||
|
@# Generate `ChangeLog' file with commits since release 2.11.0
|
||||||
|
@# (when we stopped creating this file manually).
|
||||||
|
$(CHANGELOG_SCRIPT) \
|
||||||
|
--format='%B%n' \
|
||||||
|
--no-cluster \
|
||||||
|
-- VER-2-11-0..$(version_tag) \
|
||||||
|
> ChangeLog
|
||||||
|
|
||||||
@# Remove intermediate files created by the `refdoc' target.
|
@# Remove intermediate files created by the `refdoc' target.
|
||||||
rm -rf docs/markdown
|
rm -rf docs/markdown
|
||||||
rm -f docs/mkdocs.yml
|
rm -f docs/mkdocs.yml
|
||||||
|
|
||||||
|
@# Remove more stuff related to git.
|
||||||
|
rm -rf subprojects/dlg
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -0,0 +1,522 @@
|
||||||
|
# ===========================================================================
|
||||||
|
# https://www.gnu.org/software/autoconf-archive/ax_pthread.html
|
||||||
|
# ===========================================================================
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# This macro figures out how to build C programs using POSIX threads. It
|
||||||
|
# sets the PTHREAD_LIBS output variable to the threads library and linker
|
||||||
|
# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
|
||||||
|
# flags that are needed. (The user can also force certain compiler
|
||||||
|
# flags/libs to be tested by setting these environment variables.)
|
||||||
|
#
|
||||||
|
# Also sets PTHREAD_CC and PTHREAD_CXX to any special C compiler that is
|
||||||
|
# needed for multi-threaded programs (defaults to the value of CC
|
||||||
|
# respectively CXX otherwise). (This is necessary on e.g. AIX to use the
|
||||||
|
# special cc_r/CC_r compiler alias.)
|
||||||
|
#
|
||||||
|
# NOTE: You are assumed to not only compile your program with these flags,
|
||||||
|
# but also to link with them as well. For example, you might link with
|
||||||
|
# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
|
||||||
|
# $PTHREAD_CXX $CXXFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
|
||||||
|
#
|
||||||
|
# If you are only building threaded programs, you may wish to use these
|
||||||
|
# variables in your default LIBS, CFLAGS, and CC:
|
||||||
|
#
|
||||||
|
# LIBS="$PTHREAD_LIBS $LIBS"
|
||||||
|
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||||
|
# CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
|
||||||
|
# CC="$PTHREAD_CC"
|
||||||
|
# CXX="$PTHREAD_CXX"
|
||||||
|
#
|
||||||
|
# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
|
||||||
|
# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
|
||||||
|
# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
|
||||||
|
#
|
||||||
|
# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
|
||||||
|
# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
|
||||||
|
# PTHREAD_CFLAGS.
|
||||||
|
#
|
||||||
|
# ACTION-IF-FOUND is a list of shell commands to run if a threads library
|
||||||
|
# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
|
||||||
|
# is not found. If ACTION-IF-FOUND is not specified, the default action
|
||||||
|
# will define HAVE_PTHREAD.
|
||||||
|
#
|
||||||
|
# Please let the authors know if this macro fails on any platform, or if
|
||||||
|
# you have any other suggestions or comments. This macro was based on work
|
||||||
|
# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
|
||||||
|
# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
|
||||||
|
# Alejandro Forero Cuervo to the autoconf macro repository. We are also
|
||||||
|
# grateful for the helpful feedback of numerous users.
|
||||||
|
#
|
||||||
|
# Updated for Autoconf 2.68 by Daniel Richard G.
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
|
||||||
|
# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
|
||||||
|
# Copyright (c) 2019 Marc Stevens <marc.stevens@cwi.nl>
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||||
|
# Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
|
||||||
|
#serial 30
|
||||||
|
|
||||||
|
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
|
||||||
|
AC_DEFUN([AX_PTHREAD], [
|
||||||
|
AC_REQUIRE([AC_CANONICAL_TARGET])
|
||||||
|
AC_REQUIRE([AC_PROG_CC])
|
||||||
|
AC_REQUIRE([AC_PROG_SED])
|
||||||
|
AC_LANG_PUSH([C])
|
||||||
|
ax_pthread_ok=no
|
||||||
|
|
||||||
|
# We used to check for pthread.h first, but this fails if pthread.h
|
||||||
|
# requires special compiler flags (e.g. on Tru64 or Sequent).
|
||||||
|
# It gets checked for in the link test anyway.
|
||||||
|
|
||||||
|
# First of all, check if the user has set any of the PTHREAD_LIBS,
|
||||||
|
# etcetera environment variables, and if threads linking works using
|
||||||
|
# them:
|
||||||
|
if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
|
||||||
|
ax_pthread_save_CC="$CC"
|
||||||
|
ax_pthread_save_CFLAGS="$CFLAGS"
|
||||||
|
ax_pthread_save_LIBS="$LIBS"
|
||||||
|
AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
|
||||||
|
AS_IF([test "x$PTHREAD_CXX" != "x"], [CXX="$PTHREAD_CXX"])
|
||||||
|
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||||
|
LIBS="$PTHREAD_LIBS $LIBS"
|
||||||
|
AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])
|
||||||
|
AC_MSG_RESULT([$ax_pthread_ok])
|
||||||
|
if test "x$ax_pthread_ok" = "xno"; then
|
||||||
|
PTHREAD_LIBS=""
|
||||||
|
PTHREAD_CFLAGS=""
|
||||||
|
fi
|
||||||
|
CC="$ax_pthread_save_CC"
|
||||||
|
CFLAGS="$ax_pthread_save_CFLAGS"
|
||||||
|
LIBS="$ax_pthread_save_LIBS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We must check for the threads library under a number of different
|
||||||
|
# names; the ordering is very important because some systems
|
||||||
|
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
|
||||||
|
# libraries is broken (non-POSIX).
|
||||||
|
|
||||||
|
# Create a list of thread flags to try. Items with a "," contain both
|
||||||
|
# C compiler flags (before ",") and linker flags (after ","). Other items
|
||||||
|
# starting with a "-" are C compiler flags, and remaining items are
|
||||||
|
# library names, except for "none" which indicates that we try without
|
||||||
|
# any flags at all, and "pthread-config" which is a program returning
|
||||||
|
# the flags for the Pth emulation library.
|
||||||
|
|
||||||
|
ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
|
||||||
|
|
||||||
|
# The ordering *is* (sometimes) important. Some notes on the
|
||||||
|
# individual items follow:
|
||||||
|
|
||||||
|
# pthreads: AIX (must check this before -lpthread)
|
||||||
|
# none: in case threads are in libc; should be tried before -Kthread and
|
||||||
|
# other compiler flags to prevent continual compiler warnings
|
||||||
|
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
|
||||||
|
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
|
||||||
|
# (Note: HP C rejects this with "bad form for `-t' option")
|
||||||
|
# -pthreads: Solaris/gcc (Note: HP C also rejects)
|
||||||
|
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
|
||||||
|
# doesn't hurt to check since this sometimes defines pthreads and
|
||||||
|
# -D_REENTRANT too), HP C (must be checked before -lpthread, which
|
||||||
|
# is present but should not be used directly; and before -mthreads,
|
||||||
|
# because the compiler interprets this as "-mt" + "-hreads")
|
||||||
|
# -mthreads: Mingw32/gcc, Lynx/gcc
|
||||||
|
# pthread: Linux, etcetera
|
||||||
|
# --thread-safe: KAI C++
|
||||||
|
# pthread-config: use pthread-config program (for GNU Pth library)
|
||||||
|
|
||||||
|
case $target_os in
|
||||||
|
|
||||||
|
freebsd*)
|
||||||
|
|
||||||
|
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
|
||||||
|
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
|
||||||
|
|
||||||
|
ax_pthread_flags="-kthread lthread $ax_pthread_flags"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hpux*)
|
||||||
|
|
||||||
|
# From the cc(1) man page: "[-mt] Sets various -D flags to enable
|
||||||
|
# multi-threading and also sets -lpthread."
|
||||||
|
|
||||||
|
ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
|
||||||
|
;;
|
||||||
|
|
||||||
|
openedition*)
|
||||||
|
|
||||||
|
# IBM z/OS requires a feature-test macro to be defined in order to
|
||||||
|
# enable POSIX threads at all, so give the user a hint if this is
|
||||||
|
# not set. (We don't define these ourselves, as they can affect
|
||||||
|
# other portions of the system API in unpredictable ways.)
|
||||||
|
|
||||||
|
AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
|
||||||
|
[
|
||||||
|
# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
|
||||||
|
AX_PTHREAD_ZOS_MISSING
|
||||||
|
# endif
|
||||||
|
],
|
||||||
|
[AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])
|
||||||
|
;;
|
||||||
|
|
||||||
|
solaris*)
|
||||||
|
|
||||||
|
# On Solaris (at least, for some versions), libc contains stubbed
|
||||||
|
# (non-functional) versions of the pthreads routines, so link-based
|
||||||
|
# tests will erroneously succeed. (N.B.: The stubs are missing
|
||||||
|
# pthread_cleanup_push, or rather a function called by this macro,
|
||||||
|
# so we could check for that, but who knows whether they'll stub
|
||||||
|
# that too in a future libc.) So we'll check first for the
|
||||||
|
# standard Solaris way of linking pthreads (-mt -lpthread).
|
||||||
|
|
||||||
|
ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Are we compiling with Clang?
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([whether $CC is Clang],
|
||||||
|
[ax_cv_PTHREAD_CLANG],
|
||||||
|
[ax_cv_PTHREAD_CLANG=no
|
||||||
|
# Note that Autoconf sets GCC=yes for Clang as well as GCC
|
||||||
|
if test "x$GCC" = "xyes"; then
|
||||||
|
AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],
|
||||||
|
[/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
|
||||||
|
# if defined(__clang__) && defined(__llvm__)
|
||||||
|
AX_PTHREAD_CC_IS_CLANG
|
||||||
|
# endif
|
||||||
|
],
|
||||||
|
[ax_cv_PTHREAD_CLANG=yes])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
|
||||||
|
|
||||||
|
|
||||||
|
# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
|
||||||
|
|
||||||
|
# Note that for GCC and Clang -pthread generally implies -lpthread,
|
||||||
|
# except when -nostdlib is passed.
|
||||||
|
# This is problematic using libtool to build C++ shared libraries with pthread:
|
||||||
|
# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460
|
||||||
|
# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333
|
||||||
|
# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555
|
||||||
|
# To solve this, first try -pthread together with -lpthread for GCC
|
||||||
|
|
||||||
|
AS_IF([test "x$GCC" = "xyes"],
|
||||||
|
[ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"])
|
||||||
|
|
||||||
|
# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first
|
||||||
|
|
||||||
|
AS_IF([test "x$ax_pthread_clang" = "xyes"],
|
||||||
|
[ax_pthread_flags="-pthread,-lpthread -pthread"])
|
||||||
|
|
||||||
|
|
||||||
|
# The presence of a feature test macro requesting re-entrant function
|
||||||
|
# definitions is, on some systems, a strong hint that pthreads support is
|
||||||
|
# correctly enabled
|
||||||
|
|
||||||
|
case $target_os in
|
||||||
|
darwin* | hpux* | linux* | osf* | solaris*)
|
||||||
|
ax_pthread_check_macro="_REENTRANT"
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix*)
|
||||||
|
ax_pthread_check_macro="_THREAD_SAFE"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
ax_pthread_check_macro="--"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
AS_IF([test "x$ax_pthread_check_macro" = "x--"],
|
||||||
|
[ax_pthread_check_cond=0],
|
||||||
|
[ax_pthread_check_cond="!defined($ax_pthread_check_macro)"])
|
||||||
|
|
||||||
|
|
||||||
|
if test "x$ax_pthread_ok" = "xno"; then
|
||||||
|
for ax_pthread_try_flag in $ax_pthread_flags; do
|
||||||
|
|
||||||
|
case $ax_pthread_try_flag in
|
||||||
|
none)
|
||||||
|
AC_MSG_CHECKING([whether pthreads work without any flags])
|
||||||
|
;;
|
||||||
|
|
||||||
|
*,*)
|
||||||
|
PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"`
|
||||||
|
PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"`
|
||||||
|
AC_MSG_CHECKING([whether pthreads work with "$PTHREAD_CFLAGS" and "$PTHREAD_LIBS"])
|
||||||
|
;;
|
||||||
|
|
||||||
|
-*)
|
||||||
|
AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag])
|
||||||
|
PTHREAD_CFLAGS="$ax_pthread_try_flag"
|
||||||
|
;;
|
||||||
|
|
||||||
|
pthread-config)
|
||||||
|
AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
|
||||||
|
AS_IF([test "x$ax_pthread_config" = "xno"], [continue])
|
||||||
|
PTHREAD_CFLAGS="`pthread-config --cflags`"
|
||||||
|
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag])
|
||||||
|
PTHREAD_LIBS="-l$ax_pthread_try_flag"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ax_pthread_save_CFLAGS="$CFLAGS"
|
||||||
|
ax_pthread_save_LIBS="$LIBS"
|
||||||
|
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||||
|
LIBS="$PTHREAD_LIBS $LIBS"
|
||||||
|
|
||||||
|
# Check for various functions. We must include pthread.h,
|
||||||
|
# since some functions may be macros. (On the Sequent, we
|
||||||
|
# need a special flag -Kthread to make this header compile.)
|
||||||
|
# We check for pthread_join because it is in -lpthread on IRIX
|
||||||
|
# while pthread_create is in libc. We check for pthread_attr_init
|
||||||
|
# due to DEC craziness with -lpthreads. We check for
|
||||||
|
# pthread_cleanup_push because it is one of the few pthread
|
||||||
|
# functions on Solaris that doesn't have a non-functional libc stub.
|
||||||
|
# We try pthread_create on general principles.
|
||||||
|
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
|
||||||
|
# if $ax_pthread_check_cond
|
||||||
|
# error "$ax_pthread_check_macro must be defined"
|
||||||
|
# endif
|
||||||
|
static void *some_global = NULL;
|
||||||
|
static void routine(void *a)
|
||||||
|
{
|
||||||
|
/* To avoid any unused-parameter or
|
||||||
|
unused-but-set-parameter warning. */
|
||||||
|
some_global = a;
|
||||||
|
}
|
||||||
|
static void *start_routine(void *a) { return a; }],
|
||||||
|
[pthread_t th; pthread_attr_t attr;
|
||||||
|
pthread_create(&th, 0, start_routine, 0);
|
||||||
|
pthread_join(th, 0);
|
||||||
|
pthread_attr_init(&attr);
|
||||||
|
pthread_cleanup_push(routine, 0);
|
||||||
|
pthread_cleanup_pop(0) /* ; */])],
|
||||||
|
[ax_pthread_ok=yes],
|
||||||
|
[])
|
||||||
|
|
||||||
|
CFLAGS="$ax_pthread_save_CFLAGS"
|
||||||
|
LIBS="$ax_pthread_save_LIBS"
|
||||||
|
|
||||||
|
AC_MSG_RESULT([$ax_pthread_ok])
|
||||||
|
AS_IF([test "x$ax_pthread_ok" = "xyes"], [break])
|
||||||
|
|
||||||
|
PTHREAD_LIBS=""
|
||||||
|
PTHREAD_CFLAGS=""
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Clang needs special handling, because older versions handle the -pthread
|
||||||
|
# option in a rather... idiosyncratic way
|
||||||
|
|
||||||
|
if test "x$ax_pthread_clang" = "xyes"; then
|
||||||
|
|
||||||
|
# Clang takes -pthread; it has never supported any other flag
|
||||||
|
|
||||||
|
# (Note 1: This will need to be revisited if a system that Clang
|
||||||
|
# supports has POSIX threads in a separate library. This tends not
|
||||||
|
# to be the way of modern systems, but it's conceivable.)
|
||||||
|
|
||||||
|
# (Note 2: On some systems, notably Darwin, -pthread is not needed
|
||||||
|
# to get POSIX threads support; the API is always present and
|
||||||
|
# active. We could reasonably leave PTHREAD_CFLAGS empty. But
|
||||||
|
# -pthread does define _REENTRANT, and while the Darwin headers
|
||||||
|
# ignore this macro, third-party headers might not.)
|
||||||
|
|
||||||
|
# However, older versions of Clang make a point of warning the user
|
||||||
|
# that, in an invocation where only linking and no compilation is
|
||||||
|
# taking place, the -pthread option has no effect ("argument unused
|
||||||
|
# during compilation"). They expect -pthread to be passed in only
|
||||||
|
# when source code is being compiled.
|
||||||
|
#
|
||||||
|
# Problem is, this is at odds with the way Automake and most other
|
||||||
|
# C build frameworks function, which is that the same flags used in
|
||||||
|
# compilation (CFLAGS) are also used in linking. Many systems
|
||||||
|
# supported by AX_PTHREAD require exactly this for POSIX threads
|
||||||
|
# support, and in fact it is often not straightforward to specify a
|
||||||
|
# flag that is used only in the compilation phase and not in
|
||||||
|
# linking. Such a scenario is extremely rare in practice.
|
||||||
|
#
|
||||||
|
# Even though use of the -pthread flag in linking would only print
|
||||||
|
# a warning, this can be a nuisance for well-run software projects
|
||||||
|
# that build with -Werror. So if the active version of Clang has
|
||||||
|
# this misfeature, we search for an option to squash it.
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread],
|
||||||
|
[ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],
|
||||||
|
[ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
|
||||||
|
# Create an alternate version of $ac_link that compiles and
|
||||||
|
# links in two steps (.c -> .o, .o -> exe) instead of one
|
||||||
|
# (.c -> exe), because the warning occurs only in the second
|
||||||
|
# step
|
||||||
|
ax_pthread_save_ac_link="$ac_link"
|
||||||
|
ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
|
||||||
|
ax_pthread_link_step=`AS_ECHO(["$ac_link"]) | sed "$ax_pthread_sed"`
|
||||||
|
ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
|
||||||
|
ax_pthread_save_CFLAGS="$CFLAGS"
|
||||||
|
for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
|
||||||
|
AS_IF([test "x$ax_pthread_try" = "xunknown"], [break])
|
||||||
|
CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
|
||||||
|
ac_link="$ax_pthread_save_ac_link"
|
||||||
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
|
||||||
|
[ac_link="$ax_pthread_2step_ac_link"
|
||||||
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
|
||||||
|
[break])
|
||||||
|
])
|
||||||
|
done
|
||||||
|
ac_link="$ax_pthread_save_ac_link"
|
||||||
|
CFLAGS="$ax_pthread_save_CFLAGS"
|
||||||
|
AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no])
|
||||||
|
ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
|
||||||
|
])
|
||||||
|
|
||||||
|
case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
|
||||||
|
no | unknown) ;;
|
||||||
|
*) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
fi # $ax_pthread_clang = yes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Various other checks:
|
||||||
|
if test "x$ax_pthread_ok" = "xyes"; then
|
||||||
|
ax_pthread_save_CFLAGS="$CFLAGS"
|
||||||
|
ax_pthread_save_LIBS="$LIBS"
|
||||||
|
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||||
|
LIBS="$PTHREAD_LIBS $LIBS"
|
||||||
|
|
||||||
|
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
|
||||||
|
AC_CACHE_CHECK([for joinable pthread attribute],
|
||||||
|
[ax_cv_PTHREAD_JOINABLE_ATTR],
|
||||||
|
[ax_cv_PTHREAD_JOINABLE_ATTR=unknown
|
||||||
|
for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
|
||||||
|
[int attr = $ax_pthread_attr; return attr /* ; */])],
|
||||||
|
[ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break],
|
||||||
|
[])
|
||||||
|
done
|
||||||
|
])
|
||||||
|
AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
|
||||||
|
test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
|
||||||
|
test "x$ax_pthread_joinable_attr_defined" != "xyes"],
|
||||||
|
[AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
|
||||||
|
[$ax_cv_PTHREAD_JOINABLE_ATTR],
|
||||||
|
[Define to necessary symbol if this constant
|
||||||
|
uses a non-standard name on your system.])
|
||||||
|
ax_pthread_joinable_attr_defined=yes
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([whether more special flags are required for pthreads],
|
||||||
|
[ax_cv_PTHREAD_SPECIAL_FLAGS],
|
||||||
|
[ax_cv_PTHREAD_SPECIAL_FLAGS=no
|
||||||
|
case $target_os in
|
||||||
|
solaris*)
|
||||||
|
ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
])
|
||||||
|
AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
|
||||||
|
test "x$ax_pthread_special_flags_added" != "xyes"],
|
||||||
|
[PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
|
||||||
|
ax_pthread_special_flags_added=yes])
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
|
||||||
|
[ax_cv_PTHREAD_PRIO_INHERIT],
|
||||||
|
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
|
||||||
|
[[int i = PTHREAD_PRIO_INHERIT;
|
||||||
|
return i;]])],
|
||||||
|
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
|
||||||
|
[ax_cv_PTHREAD_PRIO_INHERIT=no])
|
||||||
|
])
|
||||||
|
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
|
||||||
|
test "x$ax_pthread_prio_inherit_defined" != "xyes"],
|
||||||
|
[AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])
|
||||||
|
ax_pthread_prio_inherit_defined=yes
|
||||||
|
])
|
||||||
|
|
||||||
|
CFLAGS="$ax_pthread_save_CFLAGS"
|
||||||
|
LIBS="$ax_pthread_save_LIBS"
|
||||||
|
|
||||||
|
# More AIX lossage: compile with *_r variant
|
||||||
|
if test "x$GCC" != "xyes"; then
|
||||||
|
case $target_os in
|
||||||
|
aix*)
|
||||||
|
AS_CASE(["x/$CC"],
|
||||||
|
[x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
|
||||||
|
[#handle absolute path differently from PATH based program lookup
|
||||||
|
AS_CASE(["x$CC"],
|
||||||
|
[x/*],
|
||||||
|
[
|
||||||
|
AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])
|
||||||
|
AS_IF([test "x${CXX}" != "x"], [AS_IF([AS_EXECUTABLE_P([${CXX}_r])],[PTHREAD_CXX="${CXX}_r"])])
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])
|
||||||
|
AS_IF([test "x${CXX}" != "x"], [AC_CHECK_PROGS([PTHREAD_CXX],[${CXX}_r],[$CXX])])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
|
||||||
|
test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX"
|
||||||
|
|
||||||
|
AC_SUBST([PTHREAD_LIBS])
|
||||||
|
AC_SUBST([PTHREAD_CFLAGS])
|
||||||
|
AC_SUBST([PTHREAD_CC])
|
||||||
|
AC_SUBST([PTHREAD_CXX])
|
||||||
|
|
||||||
|
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
||||||
|
if test "x$ax_pthread_ok" = "xyes"; then
|
||||||
|
ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
|
||||||
|
:
|
||||||
|
else
|
||||||
|
ax_pthread_ok=no
|
||||||
|
$2
|
||||||
|
fi
|
||||||
|
AC_LANG_POP
|
||||||
|
])dnl AX_PTHREAD
|
|
@ -2,7 +2,7 @@
|
||||||
#
|
#
|
||||||
# Process this file with autoconf to produce a configure script.
|
# Process this file with autoconf to produce a configure script.
|
||||||
#
|
#
|
||||||
# Copyright (C) 2001-2020 by
|
# Copyright (C) 2001-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -12,12 +12,12 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
AC_INIT([FreeType], [@VERSION@], [freetype@nongnu.org], [freetype])
|
AC_INIT([FreeType], [@VERSION@], [freetype@nongnu.org], [freetype])
|
||||||
AC_CONFIG_SRCDIR([ftconfig.in])
|
AC_CONFIG_SRCDIR([ftconfig.h.in])
|
||||||
|
|
||||||
|
|
||||||
# Don't forget to update `docs/VERSIONS.TXT'!
|
# Don't forget to update `docs/VERSIONS.TXT'!
|
||||||
|
|
||||||
version_info='23:2:17'
|
version_info='24:3:18'
|
||||||
AC_SUBST([version_info])
|
AC_SUBST([version_info])
|
||||||
ft_version=`echo $version_info | tr : .`
|
ft_version=`echo $version_info | tr : .`
|
||||||
AC_SUBST([ft_version])
|
AC_SUBST([ft_version])
|
||||||
|
@ -97,85 +97,12 @@ esac
|
||||||
|
|
||||||
# checks for header files
|
# checks for header files
|
||||||
|
|
||||||
AC_HEADER_STDC
|
|
||||||
AC_CHECK_HEADERS([fcntl.h unistd.h])
|
AC_CHECK_HEADERS([fcntl.h unistd.h])
|
||||||
|
|
||||||
|
|
||||||
# checks for typedefs, structures, and compiler characteristics
|
# checks for typedefs, structures, and compiler characteristics
|
||||||
|
|
||||||
AC_C_CONST
|
AC_C_CONST
|
||||||
AC_CHECK_SIZEOF([int])
|
|
||||||
AC_CHECK_SIZEOF([long])
|
|
||||||
AC_TYPE_LONG_LONG_INT
|
|
||||||
|
|
||||||
|
|
||||||
# check whether cpp computation of size of int and long in ftconfig.in works
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether cpp computation of bit length in ftconfig.in works])
|
|
||||||
orig_CPPFLAGS="${CPPFLAGS}"
|
|
||||||
CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include/freetype/config ${CPPFLAGS}"
|
|
||||||
|
|
||||||
ac_clean_files=
|
|
||||||
if test ! -f ft2build.h; then
|
|
||||||
ac_clean_files=ft2build.h
|
|
||||||
touch ft2build.h
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat > conftest.c <<\_ACEOF
|
|
||||||
#include <limits.h>
|
|
||||||
#define FT_CONFIG_OPTIONS_H "ftoption.h"
|
|
||||||
#define FT_CONFIG_STANDARD_LIBRARY_H "ftstdlib.h"
|
|
||||||
#define FT_UINT_MAX UINT_MAX
|
|
||||||
#define FT_ULONG_MAX ULONG_MAX
|
|
||||||
#include "ftconfig.in"
|
|
||||||
_ACEOF
|
|
||||||
echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int}
|
|
||||||
echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int}
|
|
||||||
echo >> conftest.c "#endif"
|
|
||||||
echo >> conftest.c "#if FT_SIZEOF_LONG == "${ac_cv_sizeof_long}
|
|
||||||
echo >> conftest.c "ac_cpp_ft_sizeof_long="${ac_cv_sizeof_long}
|
|
||||||
echo >> conftest.c "#endif"
|
|
||||||
|
|
||||||
${CPP} ${CPPFLAGS} conftest.c | ${GREP} ac_cpp_ft > conftest.sh
|
|
||||||
eval `cat conftest.sh`
|
|
||||||
rm -f conftest.* $ac_clean_files
|
|
||||||
|
|
||||||
if test x != "x${ac_cpp_ft_sizeof_int}" \
|
|
||||||
-a x != x"${ac_cpp_ft_sizeof_long}"; then
|
|
||||||
unset ft_use_autoconf_sizeof_types
|
|
||||||
else
|
|
||||||
ft_use_autoconf_sizeof_types=yes
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(biarch-config,
|
|
||||||
[ --enable-biarch-config install biarch ftconfig.h to support multiple
|
|
||||||
architectures by single file], [], [])
|
|
||||||
|
|
||||||
case :${ft_use_autoconf_sizeof_types}:${enable_biarch_config}: in
|
|
||||||
:yes:yes:)
|
|
||||||
AC_MSG_RESULT([broken but use it])
|
|
||||||
unset ft_use_autoconf_sizeof_types
|
|
||||||
;;
|
|
||||||
::no:)
|
|
||||||
AC_MSG_RESULT([works but ignore it])
|
|
||||||
ft_use_autoconf_sizeof_types=yes
|
|
||||||
;;
|
|
||||||
::yes: | :::)
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
unset ft_use_autoconf_sizeof_types
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
ft_use_autoconf_sizeof_types=yes
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if test x"${ft_use_autoconf_sizeof_types}" = xyes; then
|
|
||||||
AC_DEFINE([FT_USE_AUTOCONF_SIZEOF_TYPES], [],
|
|
||||||
[Define if autoconf sizeof types should be used.])
|
|
||||||
fi
|
|
||||||
|
|
||||||
CPPFLAGS="${orig_CPPFLAGS}"
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([freetype-config],
|
AC_ARG_ENABLE([freetype-config],
|
||||||
AS_HELP_STRING([--enable-freetype-config], [install freetype-config]),
|
AS_HELP_STRING([--enable-freetype-config], [install freetype-config]),
|
||||||
|
@ -192,53 +119,59 @@ AC_SUBST(INSTALL_FT2_CONFIG, [$enable_freetype_config])
|
||||||
AC_SYS_LARGEFILE
|
AC_SYS_LARGEFILE
|
||||||
|
|
||||||
# Here we check whether we can use our mmap file component.
|
# Here we check whether we can use our mmap file component.
|
||||||
|
#
|
||||||
|
# Note that `ftsystem.c` for Windows has its own mmap-like implementation
|
||||||
|
# not covered by `AC_FUNC_MMAP` and/or `FT_UNMAP_PARAM`.
|
||||||
|
|
||||||
AC_ARG_ENABLE([mmap],
|
AC_ARG_ENABLE([mmap],
|
||||||
AS_HELP_STRING([--disable-mmap],
|
AS_HELP_STRING([--disable-mmap],
|
||||||
[do not check mmap() and do not use]),
|
[do not check mmap() and do not use]),
|
||||||
[enable_mmap="no"], [enable_mmap="yes"])
|
[enable_mmap="no"], [enable_mmap="yes"])
|
||||||
if test "x${enable_mmap}" != "xno"; then
|
if test "x${enable_mmap}" != "xno"; then
|
||||||
AC_FUNC_MMAP
|
case "$host" in
|
||||||
fi
|
*-*-mingw*)
|
||||||
if test "x${enable_mmap}" = "xno" \
|
AC_MSG_CHECKING([for working mmap])
|
||||||
-o "$ac_cv_func_mmap_fixed_mapped" != "yes"; then
|
AC_MSG_RESULT([using MapViewOfFile in Windows])
|
||||||
FTSYS_SRC='$(BASE_DIR)/ftsystem.c'
|
FTSYS_SRC='$(TOP_DIR)/builds/windows/ftsystem.c'
|
||||||
else
|
;;
|
||||||
FTSYS_SRC='$(BUILD_DIR)/ftsystem.c'
|
*)
|
||||||
|
AC_FUNC_MMAP
|
||||||
|
if test "$ac_cv_func_mmap_fixed_mapped" = "yes"; then
|
||||||
|
FTSYS_SRC='$(PLATFORM_DIR)/ftsystem.c'
|
||||||
|
|
||||||
AC_CHECK_DECLS([munmap],
|
AC_CHECK_DECLS([munmap],
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
[
|
[
|
||||||
|
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
|
|
||||||
])
|
])
|
||||||
|
|
||||||
FT_MUNMAP_PARAM
|
FT_MUNMAP_PARAM
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$FTSYS_SRC"; then
|
||||||
|
FTSYS_SRC='$(BASE_DIR)/ftsystem.c'
|
||||||
fi
|
fi
|
||||||
AC_SUBST([FTSYS_SRC])
|
AC_SUBST([FTSYS_SRC])
|
||||||
|
|
||||||
|
|
||||||
AC_CHECK_FUNCS([memcpy memmove])
|
AC_CHECK_FUNCS([memcpy memmove])
|
||||||
|
|
||||||
|
|
||||||
# get compiler flags right
|
# get compiler flags right
|
||||||
#
|
#
|
||||||
# We try to make the compiler work for C89-strict source. Even if the
|
# We try to make the compiler work for C99-strict source. Even if the
|
||||||
# C compiler is gcc and C89 flags are available, some system headers
|
# C compiler is gcc and C99 flags are available, some system headers
|
||||||
# (e.g., Android Bionic libc) are broken in C89 mode. We have to check
|
# might be broken in C99 mode. We have to check whether compilation
|
||||||
# whether the compilation finishes successfully.
|
# finishes successfully.
|
||||||
#
|
|
||||||
# Due to bugs in mingwrt 4.0.3 we don't use `-ansi' for MinGW.
|
|
||||||
#
|
|
||||||
# To avoid zillions of
|
|
||||||
#
|
|
||||||
# ISO C90 does not support 'long long'
|
|
||||||
#
|
|
||||||
# warnings, we disable `-pedantic' for gcc version < 4.6.
|
|
||||||
#
|
#
|
||||||
if test "x$GCC" = xyes; then
|
if test "x$GCC" = xyes; then
|
||||||
XX_CFLAGS="-Wall"
|
XX_CFLAGS="-Wall"
|
||||||
|
@ -250,23 +183,11 @@ if test "x$GCC" = xyes; then
|
||||||
XX_ANSIFLAGS="-pedantic"
|
XX_ANSIFLAGS="-pedantic"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
GCC_VERSION=`$CC -dumpversion`
|
|
||||||
GCC_MAJOR=`echo "$GCC_VERSION" | sed 's/\([[^.]][[^.]]*\).*/\1/'`
|
|
||||||
GCC_MINOR=`echo "$GCC_VERSION" | sed 's/[[^.]][[^.]]*.\([[^.]][[^.]]*\).*/\1/'`
|
|
||||||
|
|
||||||
XX_PEDANTIC=-pedantic
|
|
||||||
if test $GCC_MAJOR -lt 4; then
|
|
||||||
XX_PEDANTIC=
|
|
||||||
else
|
|
||||||
if test $GCC_MAJOR -eq 4 -a $GCC_MINOR -lt 6; then
|
|
||||||
XX_PEDANTIC=
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
XX_ANSIFLAGS=""
|
XX_ANSIFLAGS=""
|
||||||
for a in $XX_PEDANTIC -ansi
|
|
||||||
|
for a in "-pedantic" "-std=c99"
|
||||||
do
|
do
|
||||||
AC_MSG_CHECKING([gcc compiler flag ${a} to assure ANSI C works correctly])
|
AC_MSG_CHECKING([$CC compiler flag ${a} to assure ANSI C99 works correctly])
|
||||||
orig_CFLAGS="${CFLAGS}"
|
orig_CFLAGS="${CFLAGS}"
|
||||||
CFLAGS="${CFLAGS} ${XX_ANSIFLAGS} ${a}"
|
CFLAGS="${CFLAGS} ${XX_ANSIFLAGS} ${a}"
|
||||||
AC_COMPILE_IFELSE([
|
AC_COMPILE_IFELSE([
|
||||||
|
@ -396,6 +317,12 @@ if test x"$with_zlib" = xyes -a "$have_zlib" = no; then
|
||||||
AC_MSG_ERROR([external zlib support requested but library not found])
|
AC_MSG_ERROR([external zlib support requested but library not found])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
SYSTEM_ZLIB=
|
||||||
|
if test "$have_zlib" != no; then
|
||||||
|
SYSTEM_ZLIB=yes
|
||||||
|
fi
|
||||||
|
AC_SUBST([SYSTEM_ZLIB])
|
||||||
|
|
||||||
|
|
||||||
# check for system libbz2
|
# check for system libbz2
|
||||||
|
|
||||||
|
@ -508,7 +435,7 @@ AC_ARG_WITH([harfbuzz],
|
||||||
|
|
||||||
have_harfbuzz=no
|
have_harfbuzz=no
|
||||||
if test x"$with_harfbuzz" = xyes -o x"$with_harfbuzz" = xauto; then
|
if test x"$with_harfbuzz" = xyes -o x"$with_harfbuzz" = xauto; then
|
||||||
harfbuzz_pkg="harfbuzz >= 1.8.0"
|
harfbuzz_pkg="harfbuzz >= 2.0.0"
|
||||||
have_harfbuzz_pkg=no
|
have_harfbuzz_pkg=no
|
||||||
|
|
||||||
if test x"$HARFBUZZ_CFLAGS" = x -a x"$HARFBUZZ_LIBS" = x; then
|
if test x"$HARFBUZZ_CFLAGS" = x -a x"$HARFBUZZ_LIBS" = x; then
|
||||||
|
@ -587,19 +514,48 @@ if test x"$with_brotli" = xyes -a "$have_brotli" = no; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# check for librt
|
# Checks for the demo programs.
|
||||||
#
|
#
|
||||||
# We need `clock_gettime' for the `ftbench' demo program.
|
# FreeType doesn't need this. However, since the demo program repository
|
||||||
#
|
# doesn't come with a `configure` script of its own, we integrate the tests
|
||||||
# The code is modeled after gnulib's file `clock_time.m4', ignoring
|
# here for simplicity.
|
||||||
# very old Solaris systems.
|
|
||||||
|
|
||||||
|
# We need `clock_gettime` from 'librt' for the `ftbench` demo program.
|
||||||
|
#
|
||||||
|
# The code is modeled after gnulib's file `clock_time.m4`, ignoring
|
||||||
|
# very old Solaris systems.
|
||||||
LIB_CLOCK_GETTIME=
|
LIB_CLOCK_GETTIME=
|
||||||
AC_SEARCH_LIBS([clock_gettime],
|
AC_SEARCH_LIBS([clock_gettime],
|
||||||
[rt],
|
[rt],
|
||||||
[test "$ac_cv_search_clock_gettime" = "none required" \
|
[test "$ac_cv_search_clock_gettime" = "none required" \
|
||||||
|| LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
|
|| LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
|
||||||
AC_SUBST([LIB_CLOCK_GETTIME])
|
|
||||||
|
FT_DEMO_CFLAGS=""
|
||||||
|
FT_DEMO_LDFLAGS="$LIB_CLOCK_GETTIME"
|
||||||
|
|
||||||
|
# 'librsvg' is needed to demonstrate SVG support.
|
||||||
|
AC_ARG_WITH([librsvg],
|
||||||
|
[AS_HELP_STRING([--with-librsvg=@<:@yes|no|auto@:>@],
|
||||||
|
[support OpenType SVG fonts in FreeType demo programs @<:@default=auto@:>@])],
|
||||||
|
[], [with_librsvg=auto])
|
||||||
|
|
||||||
|
have_librsvg=no
|
||||||
|
if test x"$with_librsvg" = xyes -o x"$with_librsvg" = xauto; then
|
||||||
|
PKG_CHECK_MODULES([LIBRSVG], [librsvg-2.0 >= 2.46.0],
|
||||||
|
[have_librsvg="yes (pkg-config)"], [:])
|
||||||
|
|
||||||
|
if test "$have_librsvg" != no; then
|
||||||
|
FT_DEMO_CFLAGS="$FT_DEMO_CFLAGS $LIBRSVG_CFLAGS -DHAVE_LIBRSVG"
|
||||||
|
FT_DEMO_LDFLAGS="$FT_DEMO_LDFLAGS $LIBRSVG_LIBS"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x"$with_librsvg" = xyes -a "$have_librsvg" = no; then
|
||||||
|
AC_MSG_ERROR([librsvg support requested but library not found])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST([FT_DEMO_CFLAGS])
|
||||||
|
AC_SUBST([FT_DEMO_LDFLAGS])
|
||||||
|
|
||||||
|
|
||||||
# Some options handling SDKs/archs in CFLAGS should be copied
|
# Some options handling SDKs/archs in CFLAGS should be copied
|
||||||
|
@ -1012,6 +968,10 @@ case "$CFLAGS" in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# Check for pthreads
|
||||||
|
|
||||||
|
AX_PTHREAD([have_pthread=yes], [have_pthread=no])
|
||||||
|
|
||||||
# Check for Python and docwriter
|
# Check for Python and docwriter
|
||||||
|
|
||||||
have_py3=no
|
have_py3=no
|
||||||
|
@ -1024,7 +984,7 @@ if test "x$PYTHON" != "xmissing"; then
|
||||||
|
|
||||||
if test "x$have_py3" = "xyes"; then
|
if test "x$have_py3" = "xyes"; then
|
||||||
PIP="$PYTHON -m $PIP"
|
PIP="$PYTHON -m $PIP"
|
||||||
AC_MSG_CHECKING([for \`docwriter' Python module])
|
AC_MSG_CHECKING([for `docwriter' Python module])
|
||||||
$PYTHON -m docwriter -h > /dev/null 2>&1
|
$PYTHON -m docwriter -h > /dev/null 2>&1
|
||||||
if test "x$?" = "x0"; then
|
if test "x$?" = "x0"; then
|
||||||
have_docwriter=yes
|
have_docwriter=yes
|
||||||
|
@ -1037,32 +997,32 @@ fi
|
||||||
|
|
||||||
|
|
||||||
# entries in Requires.private are separated by commas
|
# entries in Requires.private are separated by commas
|
||||||
REQUIRES_PRIVATE="$zlib_reqpriv, \
|
PKGCONFIG_REQUIRES_PRIVATE="$zlib_reqpriv, \
|
||||||
$bzip2_reqpriv, \
|
$bzip2_reqpriv, \
|
||||||
$libpng_reqpriv, \
|
$libpng_reqpriv, \
|
||||||
$harfbuzz_reqpriv, \
|
$harfbuzz_reqpriv, \
|
||||||
$brotli_reqpriv"
|
$brotli_reqpriv"
|
||||||
# beautify
|
# beautify
|
||||||
REQUIRES_PRIVATE=`echo "$REQUIRES_PRIVATE" \
|
PKGCONFIG_REQUIRES_PRIVATE=`echo "$PKGCONFIG_REQUIRES_PRIVATE" \
|
||||||
| sed -e 's/^ *//' \
|
| sed -e 's/^ *//' \
|
||||||
-e 's/ *$//' \
|
-e 's/ *$//' \
|
||||||
-e 's/, */,/g' \
|
-e 's/, */,/g' \
|
||||||
-e 's/,,*/,/g' \
|
-e 's/,,*/,/g' \
|
||||||
-e 's/^,*//' \
|
-e 's/^,*//' \
|
||||||
-e 's/,*$//' \
|
-e 's/,*$//' \
|
||||||
-e 's/,/, /g'`
|
-e 's/,/, /g'`
|
||||||
|
|
||||||
LIBS_PRIVATE="$zlib_libspriv \
|
PKGCONFIG_LIBS_PRIVATE="$zlib_libspriv \
|
||||||
$bzip2_libspriv \
|
$bzip2_libspriv \
|
||||||
$libpng_libspriv \
|
$libpng_libspriv \
|
||||||
$harfbuzz_libspriv \
|
$harfbuzz_libspriv \
|
||||||
$brotli_libspriv \
|
$brotli_libspriv \
|
||||||
$ft2_extra_libs"
|
$ft2_extra_libs"
|
||||||
# beautify
|
# beautify
|
||||||
LIBS_PRIVATE=`echo "$LIBS_PRIVATE" \
|
PKGCONFIG_LIBS_PRIVATE=`echo "$PKGCONFIG_LIBS_PRIVATE" \
|
||||||
| sed -e 's/^ *//' \
|
| sed -e 's/^ *//' \
|
||||||
-e 's/ *$//' \
|
-e 's/ *$//' \
|
||||||
-e 's/ */ /g'`
|
-e 's/ */ /g'`
|
||||||
|
|
||||||
LIBSSTATIC_CONFIG="-lfreetype \
|
LIBSSTATIC_CONFIG="-lfreetype \
|
||||||
$zlib_libsstaticconf \
|
$zlib_libsstaticconf \
|
||||||
|
@ -1080,10 +1040,28 @@ LIBSSTATIC_CONFIG=`echo "$LIBSSTATIC_CONFIG" \
|
||||||
-e 's/ *$//' \
|
-e 's/ *$//' \
|
||||||
-e 's/ */ /g'`
|
-e 's/ */ /g'`
|
||||||
|
|
||||||
|
# If FreeType gets installed with `--disable-shared', don't use
|
||||||
|
# 'private' fields. `pkg-config' only looks into `.pc' files and is
|
||||||
|
# completely agnostic to whether shared libraries are actually present
|
||||||
|
# or not. As a consequence, the user had to specify `--static' while
|
||||||
|
# calling `pkg-config', which configure scripts are normally not
|
||||||
|
# prepared for.
|
||||||
|
|
||||||
|
PKGCONFIG_REQUIRES=
|
||||||
|
PKGCONFIG_LIBS='-L${libdir} -lfreetype'
|
||||||
|
|
||||||
|
if test $enable_shared = "no"; then
|
||||||
|
PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES $PKGCONFIG_REQUIRES_PRIVATE"
|
||||||
|
PKGCONFIG_REQUIRES_PRIVATE=
|
||||||
|
PKGCONFIG_LIBS="$PKGCONFIG_LIBS $PKGCONFIG_LIBS_PRIVATE"
|
||||||
|
PKGCONFIG_LIBS_PRIVATE=
|
||||||
|
fi
|
||||||
|
|
||||||
AC_SUBST([ftmac_c])
|
AC_SUBST([ftmac_c])
|
||||||
AC_SUBST([REQUIRES_PRIVATE])
|
AC_SUBST([PKGCONFIG_REQUIRES])
|
||||||
AC_SUBST([LIBS_PRIVATE])
|
AC_SUBST([PKGCONFIG_LIBS])
|
||||||
|
AC_SUBST([PKGCONFIG_REQUIRES_PRIVATE])
|
||||||
|
AC_SUBST([PKGCONFIG_LIBS_PRIVATE])
|
||||||
AC_SUBST([LIBSSTATIC_CONFIG])
|
AC_SUBST([LIBSSTATIC_CONFIG])
|
||||||
|
|
||||||
AC_SUBST([hardcode_libdir_flag_spec])
|
AC_SUBST([hardcode_libdir_flag_spec])
|
||||||
|
@ -1142,6 +1120,11 @@ else
|
||||||
ftoption_unset FT_CONFIG_OPTION_USE_BROTLI
|
ftoption_unset FT_CONFIG_OPTION_USE_BROTLI
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$have_pthread" != no; then
|
||||||
|
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||||
|
LDFLAGS="$LDFLAGS $PTHREAD_CFLAGS $PTHREAD_LIBS"
|
||||||
|
fi
|
||||||
|
|
||||||
AC_SUBST([CFLAGS])
|
AC_SUBST([CFLAGS])
|
||||||
AC_SUBST([LDFLAGS])
|
AC_SUBST([LDFLAGS])
|
||||||
|
|
||||||
|
@ -1158,15 +1141,7 @@ AC_CONFIG_FILES([ftoption.h:${srcdir}/../../include/freetype/config/ftoption.h],
|
||||||
rm ftoption.tmp],
|
rm ftoption.tmp],
|
||||||
[FTOPTION_H_SED="$FTOPTION_H_SED"])
|
[FTOPTION_H_SED="$FTOPTION_H_SED"])
|
||||||
|
|
||||||
# configuration file -- stay in 8.3 limit
|
AC_CONFIG_HEADERS([ftconfig.h])
|
||||||
#
|
|
||||||
# since #undef doesn't survive in configuration header files we replace
|
|
||||||
# `/undef' with `#undef' after creating the output file
|
|
||||||
|
|
||||||
AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in],
|
|
||||||
[mv ftconfig.h ftconfig.tmp
|
|
||||||
sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h
|
|
||||||
rm ftconfig.tmp])
|
|
||||||
|
|
||||||
# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
|
# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
|
||||||
# and `builds/unix/unix-cc.mk' that will be used by the build system
|
# and `builds/unix/unix-cc.mk' that will be used by the build system
|
||||||
|
@ -1184,16 +1159,27 @@ Library configuration:
|
||||||
libpng: $have_libpng
|
libpng: $have_libpng
|
||||||
harfbuzz: $have_harfbuzz
|
harfbuzz: $have_harfbuzz
|
||||||
brotli: $have_brotli
|
brotli: $have_brotli
|
||||||
|
pthread: $have_pthread
|
||||||
])
|
])
|
||||||
|
|
||||||
# Warn if docwriter is not installed
|
# Warn if docwriter is not installed
|
||||||
|
|
||||||
if test $have_docwriter = no; then
|
if test $have_docwriter = no; then
|
||||||
AC_MSG_WARN([
|
AC_MSG_WARN([
|
||||||
\`make refdoc' will fail since pip package \`docwriter' is not installed.
|
`make refdoc' will fail since pip package `docwriter' is not installed.
|
||||||
To install, run \`$PIP install docwriter', or to use a Python
|
To install, run `$PIP install docwriter', or to use a Python
|
||||||
virtual environment, run \`make refdoc-venv' (requires pip package
|
virtual environment, run `make refdoc-venv' (requires pip package
|
||||||
\`virtualenv'). These operations require Python >= 3.5.
|
`virtualenv'). These operations require Python >= 3.5.
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Warn if pthread is not available
|
||||||
|
|
||||||
|
if test $have_pthread = no; then
|
||||||
|
AC_MSG_WARN([
|
||||||
|
`FT_DEBUG_LOGGING' will not work since the `pthread' library is not
|
||||||
|
available. This warning can be safely ignored if you don't plan to use
|
||||||
|
this configuration macro.
|
||||||
])
|
])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000-2020 by
|
# Copyright (C) 2000-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -7,8 +7,8 @@ Name: FreeType 2
|
||||||
URL: https://freetype.org
|
URL: https://freetype.org
|
||||||
Description: A free, high-quality, and portable font engine.
|
Description: A free, high-quality, and portable font engine.
|
||||||
Version: %ft_version%
|
Version: %ft_version%
|
||||||
Requires:
|
Requires: %PKGCONFIG_REQUIRES%
|
||||||
Requires.private: %REQUIRES_PRIVATE%
|
Requires.private: %PKGCONFIG_REQUIRES_PRIVATE%
|
||||||
Libs: -L${libdir} -lfreetype
|
Libs: %PKGCONFIG_LIBS%
|
||||||
Libs.private: %LIBS_PRIVATE%
|
Libs.private: %PKGCONFIG_LIBS_PRIVATE%
|
||||||
Cflags: -I${includedir}/freetype2
|
Cflags: -I${includedir}/freetype2
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Configure paths for FreeType2
|
# Configure paths for FreeType2
|
||||||
# Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor
|
# Marcelo Magallon 2001-10-26, based on `gtk.m4` by Owen Taylor
|
||||||
#
|
#
|
||||||
# Copyright (C) 2001-2020 by
|
# Copyright (C) 2001-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -15,32 +15,32 @@
|
||||||
# generated by Autoconf, under the same distribution terms as the rest of
|
# generated by Autoconf, under the same distribution terms as the rest of
|
||||||
# that program.
|
# that program.
|
||||||
#
|
#
|
||||||
# serial 5
|
# serial 6
|
||||||
|
|
||||||
# AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
# AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||||
# Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS.
|
# Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS.
|
||||||
# MINIMUM-VERSION is what libtool reports; the default is `7.0.1' (this is
|
# MINIMUM-VERSION is what libtool reports; the default is '7.0.1' (this is
|
||||||
# FreeType 2.0.4).
|
# FreeType 2.0.4).
|
||||||
#
|
#
|
||||||
|
# To make this code work with older autoconf versions, `AS_HELP_STRING` is
|
||||||
|
# not quoted.
|
||||||
|
#
|
||||||
AC_DEFUN([AC_CHECK_FT2],
|
AC_DEFUN([AC_CHECK_FT2],
|
||||||
[# Get the cflags and libraries from the freetype-config script
|
[# Get the cflags and libraries from the freetype-config script
|
||||||
#
|
#
|
||||||
AC_ARG_WITH([ft-prefix],
|
AC_ARG_WITH([ft-prefix],
|
||||||
dnl don't quote AS_HELP_STRING!
|
|
||||||
AS_HELP_STRING([--with-ft-prefix=PREFIX],
|
AS_HELP_STRING([--with-ft-prefix=PREFIX],
|
||||||
[Prefix where FreeType is installed (optional)]),
|
[Prefix where FreeType is installed (optional)]),
|
||||||
[ft_config_prefix="$withval"],
|
[ft_config_prefix="$withval"],
|
||||||
[ft_config_prefix=""])
|
[ft_config_prefix=""])
|
||||||
|
|
||||||
AC_ARG_WITH([ft-exec-prefix],
|
AC_ARG_WITH([ft-exec-prefix],
|
||||||
dnl don't quote AS_HELP_STRING!
|
|
||||||
AS_HELP_STRING([--with-ft-exec-prefix=PREFIX],
|
AS_HELP_STRING([--with-ft-exec-prefix=PREFIX],
|
||||||
[Exec prefix where FreeType is installed (optional)]),
|
[Exec prefix where FreeType is installed (optional)]),
|
||||||
[ft_config_exec_prefix="$withval"],
|
[ft_config_exec_prefix="$withval"],
|
||||||
[ft_config_exec_prefix=""])
|
[ft_config_exec_prefix=""])
|
||||||
|
|
||||||
AC_ARG_ENABLE([freetypetest],
|
AC_ARG_ENABLE([freetypetest],
|
||||||
dnl don't quote AS_HELP_STRING!
|
|
||||||
AS_HELP_STRING([--disable-freetypetest],
|
AS_HELP_STRING([--disable-freetypetest],
|
||||||
[Do not try to compile and run a test FreeType program]),
|
[Do not try to compile and run a test FreeType program]),
|
||||||
[],
|
[],
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
## FreeType specific autoconf tests
|
## FreeType specific autoconf tests
|
||||||
#
|
#
|
||||||
# Copyright (C) 2002-2020 by
|
# Copyright (C) 2002-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* ftconfig.h.in
|
||||||
|
*
|
||||||
|
* UNIX-specific configuration file (specification only).
|
||||||
|
*
|
||||||
|
* Copyright (C) 1996-2022 by
|
||||||
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
*
|
||||||
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
* modified, and distributed under the terms of the FreeType project
|
||||||
|
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
|
* this file you indicate that you have read the license and
|
||||||
|
* understand and accept it fully.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* This header file contains a number of macro definitions that are used by
|
||||||
|
* the rest of the engine. Most of the macros here are automatically
|
||||||
|
* determined at compile time, and you should not need to change it to port
|
||||||
|
* FreeType, except to compile the library with a non-ANSI compiler.
|
||||||
|
*
|
||||||
|
* Note however that if some specific modifications are needed, we advise
|
||||||
|
* you to place a modified copy in your build directory.
|
||||||
|
*
|
||||||
|
* The build directory is usually `builds/<system>`, and contains
|
||||||
|
* system-specific files that are always included first when building the
|
||||||
|
* library.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FTCONFIG_H_
|
||||||
|
#define FTCONFIG_H_
|
||||||
|
|
||||||
|
#include <ft2build.h>
|
||||||
|
#include FT_CONFIG_OPTIONS_H
|
||||||
|
#include FT_CONFIG_STANDARD_LIBRARY_H
|
||||||
|
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
#undef HAVE_FCNTL_H
|
||||||
|
|
||||||
|
#include <freetype/config/integer-types.h>
|
||||||
|
#include <freetype/config/public-macros.h>
|
||||||
|
#include <freetype/config/mac-support.h>
|
||||||
|
|
||||||
|
#endif /* FTCONFIG_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
|
@ -1,602 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
*
|
|
||||||
* ftconfig.in
|
|
||||||
*
|
|
||||||
* UNIX-specific configuration file (specification only).
|
|
||||||
*
|
|
||||||
* Copyright (C) 1996-2020 by
|
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
||||||
*
|
|
||||||
* This file is part of the FreeType project, and may only be used,
|
|
||||||
* modified, and distributed under the terms of the FreeType project
|
|
||||||
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
|
||||||
* this file you indicate that you have read the license and
|
|
||||||
* understand and accept it fully.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* This header file contains a number of macro definitions that are used by
|
|
||||||
* the rest of the engine. Most of the macros here are automatically
|
|
||||||
* determined at compile time, and you should not need to change it to port
|
|
||||||
* FreeType, except to compile the library with a non-ANSI compiler.
|
|
||||||
*
|
|
||||||
* Note however that if some specific modifications are needed, we advise
|
|
||||||
* you to place a modified copy in your build directory.
|
|
||||||
*
|
|
||||||
* The build directory is usually `builds/<system>`, and contains
|
|
||||||
* system-specific files that are always included first when building the
|
|
||||||
* library.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef FTCONFIG_H_
|
|
||||||
#define FTCONFIG_H_
|
|
||||||
|
|
||||||
#include <ft2build.h>
|
|
||||||
#include FT_CONFIG_OPTIONS_H
|
|
||||||
#include FT_CONFIG_STANDARD_LIBRARY_H
|
|
||||||
|
|
||||||
|
|
||||||
FT_BEGIN_HEADER
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* PLATFORM-SPECIFIC CONFIGURATION MACROS
|
|
||||||
*
|
|
||||||
* These macros can be toggled to suit a specific system. The current ones
|
|
||||||
* are defaults used to compile FreeType in an ANSI C environment (16bit
|
|
||||||
* compilers are also supported). Copy this file to your own
|
|
||||||
* `builds/<system>` directory, and edit it to port the engine.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#undef HAVE_UNISTD_H
|
|
||||||
#undef HAVE_FCNTL_H
|
|
||||||
|
|
||||||
/* There are systems (like the Texas Instruments 'C54x) where a `char` */
|
|
||||||
/* has 16~bits. ANSI~C says that `sizeof(char)` is always~1. Since an */
|
|
||||||
/* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which */
|
|
||||||
/* is probably unexpected. */
|
|
||||||
/* */
|
|
||||||
/* `CHAR_BIT` (defined in `limits.h`) gives the number of bits in a */
|
|
||||||
/* `char` type. */
|
|
||||||
|
|
||||||
#ifndef FT_CHAR_BIT
|
|
||||||
#define FT_CHAR_BIT CHAR_BIT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#undef FT_USE_AUTOCONF_SIZEOF_TYPES
|
|
||||||
#ifdef FT_USE_AUTOCONF_SIZEOF_TYPES
|
|
||||||
|
|
||||||
#undef SIZEOF_INT
|
|
||||||
#undef SIZEOF_LONG
|
|
||||||
#define FT_SIZEOF_INT SIZEOF_INT
|
|
||||||
#define FT_SIZEOF_LONG SIZEOF_LONG
|
|
||||||
|
|
||||||
#else /* !FT_USE_AUTOCONF_SIZEOF_TYPES */
|
|
||||||
|
|
||||||
/* Following cpp computation of the bit length of `int` and `long` */
|
|
||||||
/* is copied from default `include/freetype/config/ftconfig.h`. */
|
|
||||||
/* If any improvement is required for this file, it should be */
|
|
||||||
/* applied to the original header file for the builders that do */
|
|
||||||
/* not use configure script. */
|
|
||||||
|
|
||||||
/* The size of an `int` type. */
|
|
||||||
#if FT_UINT_MAX == 0xFFFFUL
|
|
||||||
#define FT_SIZEOF_INT ( 16 / FT_CHAR_BIT )
|
|
||||||
#elif FT_UINT_MAX == 0xFFFFFFFFUL
|
|
||||||
#define FT_SIZEOF_INT ( 32 / FT_CHAR_BIT )
|
|
||||||
#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL
|
|
||||||
#define FT_SIZEOF_INT ( 64 / FT_CHAR_BIT )
|
|
||||||
#else
|
|
||||||
#error "Unsupported size of `int' type!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The size of a `long` type. A five-byte `long` (as used e.g. on the */
|
|
||||||
/* DM642) is recognized but avoided. */
|
|
||||||
#if FT_ULONG_MAX == 0xFFFFFFFFUL
|
|
||||||
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
|
|
||||||
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL
|
|
||||||
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
|
|
||||||
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL
|
|
||||||
#define FT_SIZEOF_LONG ( 64 / FT_CHAR_BIT )
|
|
||||||
#else
|
|
||||||
#error "Unsupported size of `long' type!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !FT_USE_AUTOCONF_SIZEOF_TYPES */
|
|
||||||
|
|
||||||
/* `FT_UNUSED` indicates that a given parameter is not used -- */
|
|
||||||
/* this is only used to get rid of unpleasant compiler warnings. */
|
|
||||||
#ifndef FT_UNUSED
|
|
||||||
#define FT_UNUSED( arg ) ( (arg) = (arg) )
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* AUTOMATIC CONFIGURATION MACROS
|
|
||||||
*
|
|
||||||
* These macros are computed from the ones defined above. Don't touch
|
|
||||||
* their definition, unless you know precisely what you are doing. No
|
|
||||||
* porter should need to mess with them.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* Mac support
|
|
||||||
*
|
|
||||||
* This is the only necessary change, so it is defined here instead
|
|
||||||
* providing a new configuration file.
|
|
||||||
*/
|
|
||||||
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
|
|
||||||
/* No Carbon frameworks for 64bit 10.4.x. */
|
|
||||||
/* `AvailabilityMacros.h` is available since Mac OS X 10.2, */
|
|
||||||
/* so guess the system version by maximum errno before inclusion. */
|
|
||||||
#include <errno.h>
|
|
||||||
#ifdef ECANCELED /* defined since 10.2 */
|
|
||||||
#include "AvailabilityMacros.h"
|
|
||||||
#endif
|
|
||||||
#if defined( __LP64__ ) && \
|
|
||||||
( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
|
|
||||||
/undef FT_MACINTOSH
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined( __SC__ ) || defined( __MRC__ )
|
|
||||||
/* Classic MacOS compilers */
|
|
||||||
#include "ConditionalMacros.h"
|
|
||||||
#if TARGET_OS_MAC
|
|
||||||
#define FT_MACINTOSH 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Fix compiler warning with sgi compiler. */
|
|
||||||
#if defined( __sgi ) && !defined( __GNUC__ )
|
|
||||||
#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
|
|
||||||
#pragma set woff 3505
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @section:
|
|
||||||
* basic_types
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_Int16
|
|
||||||
*
|
|
||||||
* @description:
|
|
||||||
* A typedef for a 16bit signed integer type.
|
|
||||||
*/
|
|
||||||
typedef signed short FT_Int16;
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_UInt16
|
|
||||||
*
|
|
||||||
* @description:
|
|
||||||
* A typedef for a 16bit unsigned integer type.
|
|
||||||
*/
|
|
||||||
typedef unsigned short FT_UInt16;
|
|
||||||
|
|
||||||
/* */
|
|
||||||
|
|
||||||
|
|
||||||
/* this #if 0 ... #endif clause is for documentation purposes */
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_Int32
|
|
||||||
*
|
|
||||||
* @description:
|
|
||||||
* A typedef for a 32bit signed integer type. The size depends on the
|
|
||||||
* configuration.
|
|
||||||
*/
|
|
||||||
typedef signed XXX FT_Int32;
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_UInt32
|
|
||||||
*
|
|
||||||
* A typedef for a 32bit unsigned integer type. The size depends on the
|
|
||||||
* configuration.
|
|
||||||
*/
|
|
||||||
typedef unsigned XXX FT_UInt32;
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_Int64
|
|
||||||
*
|
|
||||||
* A typedef for a 64bit signed integer type. The size depends on the
|
|
||||||
* configuration. Only defined if there is real 64bit support;
|
|
||||||
* otherwise, it gets emulated with a structure (if necessary).
|
|
||||||
*/
|
|
||||||
typedef signed XXX FT_Int64;
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_UInt64
|
|
||||||
*
|
|
||||||
* A typedef for a 64bit unsigned integer type. The size depends on the
|
|
||||||
* configuration. Only defined if there is real 64bit support;
|
|
||||||
* otherwise, it gets emulated with a structure (if necessary).
|
|
||||||
*/
|
|
||||||
typedef unsigned XXX FT_UInt64;
|
|
||||||
|
|
||||||
/* */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if FT_SIZEOF_INT == 4
|
|
||||||
|
|
||||||
typedef signed int FT_Int32;
|
|
||||||
typedef unsigned int FT_UInt32;
|
|
||||||
|
|
||||||
#elif FT_SIZEOF_LONG == 4
|
|
||||||
|
|
||||||
typedef signed long FT_Int32;
|
|
||||||
typedef unsigned long FT_UInt32;
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error "no 32bit type found -- please check your configuration files"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* look up an integer type that is at least 32~bits */
|
|
||||||
#if FT_SIZEOF_INT >= 4
|
|
||||||
|
|
||||||
typedef int FT_Fast;
|
|
||||||
typedef unsigned int FT_UFast;
|
|
||||||
|
|
||||||
#elif FT_SIZEOF_LONG >= 4
|
|
||||||
|
|
||||||
typedef long FT_Fast;
|
|
||||||
typedef unsigned long FT_UFast;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* determine whether we have a 64-bit `int` type for platforms without */
|
|
||||||
/* Autoconf */
|
|
||||||
#if FT_SIZEOF_LONG == 8
|
|
||||||
|
|
||||||
/* `FT_LONG64` must be defined if a 64-bit type is available */
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 long
|
|
||||||
#define FT_UINT64 unsigned long
|
|
||||||
|
|
||||||
/* we handle the LLP64 scheme separately for GCC and clang, */
|
|
||||||
/* suppressing the `long long` warning */
|
|
||||||
#elif ( FT_SIZEOF_LONG == 4 ) && \
|
|
||||||
defined( HAVE_LONG_LONG_INT ) && \
|
|
||||||
defined( __GNUC__ )
|
|
||||||
#pragma GCC diagnostic ignored "-Wlong-long"
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 long long int
|
|
||||||
#define FT_UINT64 unsigned long long int
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* A 64-bit data type may create compilation problems if you compile in
|
|
||||||
* strict ANSI mode. To avoid them, we disable other 64-bit data types if
|
|
||||||
* `__STDC__` is defined. You can however ignore this rule by defining the
|
|
||||||
* `FT_CONFIG_OPTION_FORCE_INT64` configuration macro.
|
|
||||||
*/
|
|
||||||
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
|
|
||||||
|
|
||||||
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
|
|
||||||
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 long long int
|
|
||||||
#define FT_UINT64 unsigned long long int
|
|
||||||
|
|
||||||
#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
|
|
||||||
|
|
||||||
/* this compiler provides the `__int64` type */
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 __int64
|
|
||||||
#define FT_UINT64 unsigned __int64
|
|
||||||
|
|
||||||
#elif defined( __BORLANDC__ ) /* Borland C++ */
|
|
||||||
|
|
||||||
/* XXXX: We should probably check the value of `__BORLANDC__` in order */
|
|
||||||
/* to test the compiler version. */
|
|
||||||
|
|
||||||
/* this compiler provides the `__int64` type */
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 __int64
|
|
||||||
#define FT_UINT64 unsigned __int64
|
|
||||||
|
|
||||||
#elif defined( __WATCOMC__ ) /* Watcom C++ */
|
|
||||||
|
|
||||||
/* Watcom doesn't provide 64-bit data types */
|
|
||||||
|
|
||||||
#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
|
|
||||||
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 long long int
|
|
||||||
#define FT_UINT64 unsigned long long int
|
|
||||||
|
|
||||||
#elif defined( __GNUC__ )
|
|
||||||
|
|
||||||
/* GCC provides the `long long` type */
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 long long int
|
|
||||||
#define FT_UINT64 unsigned long long int
|
|
||||||
|
|
||||||
#endif /* __STDC_VERSION__ >= 199901L */
|
|
||||||
|
|
||||||
#endif /* FT_SIZEOF_LONG == 8 */
|
|
||||||
|
|
||||||
#ifdef FT_LONG64
|
|
||||||
typedef FT_INT64 FT_Int64;
|
|
||||||
typedef FT_UINT64 FT_UInt64;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef _WIN64
|
|
||||||
/* only 64bit Windows uses the LLP64 data model, i.e., */
|
|
||||||
/* 32bit integers, 64bit pointers */
|
|
||||||
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
|
|
||||||
#else
|
|
||||||
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* miscellaneous
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#define FT_BEGIN_STMNT do {
|
|
||||||
#define FT_END_STMNT } while ( 0 )
|
|
||||||
#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
|
|
||||||
|
|
||||||
|
|
||||||
/* `typeof` condition taken from gnulib's `intprops.h` header file */
|
|
||||||
#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
|
|
||||||
( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
|
|
||||||
defined( __IBM__TYPEOF__ ) ) || \
|
|
||||||
( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
|
|
||||||
#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
|
|
||||||
#else
|
|
||||||
#define FT_TYPEOF( type ) /* empty */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Use `FT_LOCAL` and `FT_LOCAL_DEF` to declare and define, */
|
|
||||||
/* respectively, a function that gets used only within the scope of a */
|
|
||||||
/* module. Normally, both the header and source code files for such a */
|
|
||||||
/* function are within a single module directory. */
|
|
||||||
/* */
|
|
||||||
/* Intra-module arrays should be tagged with `FT_LOCAL_ARRAY` and */
|
|
||||||
/* `FT_LOCAL_ARRAY_DEF`. */
|
|
||||||
/* */
|
|
||||||
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
|
|
||||||
|
|
||||||
#define FT_LOCAL( x ) static x
|
|
||||||
#define FT_LOCAL_DEF( x ) static x
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_LOCAL( x ) extern "C" x
|
|
||||||
#define FT_LOCAL_DEF( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_LOCAL( x ) extern x
|
|
||||||
#define FT_LOCAL_DEF( x ) x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
|
|
||||||
|
|
||||||
#define FT_LOCAL_ARRAY( x ) extern const x
|
|
||||||
#define FT_LOCAL_ARRAY_DEF( x ) const x
|
|
||||||
|
|
||||||
|
|
||||||
/* Use `FT_BASE` and `FT_BASE_DEF` to declare and define, respectively, */
|
|
||||||
/* functions that are used in more than a single module. In the */
|
|
||||||
/* current setup this implies that the declaration is in a header file */
|
|
||||||
/* in the `include/freetype/internal` directory, and the function body */
|
|
||||||
/* is in a file in `src/base`. */
|
|
||||||
/* */
|
|
||||||
#ifndef FT_BASE
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_BASE( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_BASE( x ) extern x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !FT_BASE */
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef FT_BASE_DEF
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_BASE_DEF( x ) x
|
|
||||||
#else
|
|
||||||
#define FT_BASE_DEF( x ) x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !FT_BASE_DEF */
|
|
||||||
|
|
||||||
|
|
||||||
/* When compiling FreeType as a DLL or DSO with hidden visibility */
|
|
||||||
/* some systems/compilers need a special attribute in front OR after */
|
|
||||||
/* the return type of function declarations. */
|
|
||||||
/* */
|
|
||||||
/* Two macros are used within the FreeType source code to define */
|
|
||||||
/* exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. */
|
|
||||||
/* */
|
|
||||||
/* - `FT_EXPORT( return_type )` */
|
|
||||||
/* */
|
|
||||||
/* is used in a function declaration, as in */
|
|
||||||
/* */
|
|
||||||
/* ``` */
|
|
||||||
/* FT_EXPORT( FT_Error ) */
|
|
||||||
/* FT_Init_FreeType( FT_Library* alibrary ); */
|
|
||||||
/* ``` */
|
|
||||||
/* */
|
|
||||||
/* - `FT_EXPORT_DEF( return_type )` */
|
|
||||||
/* */
|
|
||||||
/* is used in a function definition, as in */
|
|
||||||
/* */
|
|
||||||
/* ``` */
|
|
||||||
/* FT_EXPORT_DEF( FT_Error ) */
|
|
||||||
/* FT_Init_FreeType( FT_Library* alibrary ) */
|
|
||||||
/* { */
|
|
||||||
/* ... some code ... */
|
|
||||||
/* return FT_Err_Ok; */
|
|
||||||
/* } */
|
|
||||||
/* ``` */
|
|
||||||
/* */
|
|
||||||
/* You can provide your own implementation of `FT_EXPORT` and */
|
|
||||||
/* `FT_EXPORT_DEF` here if you want. */
|
|
||||||
/* */
|
|
||||||
/* To export a variable, use `FT_EXPORT_VAR`. */
|
|
||||||
/* */
|
|
||||||
#ifndef FT_EXPORT
|
|
||||||
|
|
||||||
#ifdef FT2_BUILD_LIBRARY
|
|
||||||
|
|
||||||
#if defined( _WIN32 ) && defined( DLL_EXPORT )
|
|
||||||
#define FT_EXPORT( x ) __declspec( dllexport ) x
|
|
||||||
#elif defined( __GNUC__ ) && __GNUC__ >= 4
|
|
||||||
#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x
|
|
||||||
#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550
|
|
||||||
#define FT_EXPORT( x ) __global x
|
|
||||||
#elif defined( __cplusplus )
|
|
||||||
#define FT_EXPORT( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_EXPORT( x ) extern x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#if defined( _WIN32 ) && defined( DLL_IMPORT )
|
|
||||||
#define FT_EXPORT( x ) __declspec( dllimport ) x
|
|
||||||
#elif defined( __cplusplus )
|
|
||||||
#define FT_EXPORT( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_EXPORT( x ) extern x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !FT_EXPORT */
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef FT_EXPORT_DEF
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_EXPORT_DEF( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_EXPORT_DEF( x ) extern x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !FT_EXPORT_DEF */
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef FT_EXPORT_VAR
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_EXPORT_VAR( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_EXPORT_VAR( x ) extern x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !FT_EXPORT_VAR */
|
|
||||||
|
|
||||||
|
|
||||||
/* The following macros are needed to compile the library with a */
|
|
||||||
/* C++ compiler and with 16bit compilers. */
|
|
||||||
/* */
|
|
||||||
|
|
||||||
/* This is special. Within C++, you must specify `extern "C"` for */
|
|
||||||
/* functions which are used via function pointers, and you also */
|
|
||||||
/* must do that for structures which contain function pointers to */
|
|
||||||
/* assure C linkage -- it's not possible to have (local) anonymous */
|
|
||||||
/* functions which are accessed by (global) function pointers. */
|
|
||||||
/* */
|
|
||||||
/* */
|
|
||||||
/* FT_CALLBACK_DEF is used to _define_ a callback function, */
|
|
||||||
/* located in the same source code file as the structure that uses */
|
|
||||||
/* it. */
|
|
||||||
/* */
|
|
||||||
/* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */
|
|
||||||
/* and define a callback function, respectively, in a similar way */
|
|
||||||
/* as FT_BASE and FT_BASE_DEF work. */
|
|
||||||
/* */
|
|
||||||
/* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
|
|
||||||
/* contains pointers to callback functions. */
|
|
||||||
/* */
|
|
||||||
/* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */
|
|
||||||
/* that contains pointers to callback functions. */
|
|
||||||
/* */
|
|
||||||
/* */
|
|
||||||
/* Some 16bit compilers have to redefine these macros to insert */
|
|
||||||
/* the infamous `_cdecl` or `__fastcall` declarations. */
|
|
||||||
/* */
|
|
||||||
#ifndef FT_CALLBACK_DEF
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_CALLBACK_DEF( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_CALLBACK_DEF( x ) static x
|
|
||||||
#endif
|
|
||||||
#endif /* FT_CALLBACK_DEF */
|
|
||||||
|
|
||||||
#ifndef FT_BASE_CALLBACK
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_BASE_CALLBACK( x ) extern "C" x
|
|
||||||
#define FT_BASE_CALLBACK_DEF( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_BASE_CALLBACK( x ) extern x
|
|
||||||
#define FT_BASE_CALLBACK_DEF( x ) x
|
|
||||||
#endif
|
|
||||||
#endif /* FT_BASE_CALLBACK */
|
|
||||||
|
|
||||||
#ifndef FT_CALLBACK_TABLE
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_CALLBACK_TABLE extern "C"
|
|
||||||
#define FT_CALLBACK_TABLE_DEF extern "C"
|
|
||||||
#else
|
|
||||||
#define FT_CALLBACK_TABLE extern
|
|
||||||
#define FT_CALLBACK_TABLE_DEF /* nothing */
|
|
||||||
#endif
|
|
||||||
#endif /* FT_CALLBACK_TABLE */
|
|
||||||
|
|
||||||
|
|
||||||
FT_END_HEADER
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* FTCONFIG_H_ */
|
|
||||||
|
|
||||||
|
|
||||||
/* END */
|
|
|
@ -1,24 +1,24 @@
|
||||||
/***************************************************************************/
|
/****************************************************************************
|
||||||
/* */
|
*
|
||||||
/* ftsystem.c */
|
* ftsystem.c
|
||||||
/* */
|
*
|
||||||
/* Unix-specific FreeType low-level system interface (body). */
|
* Unix-specific FreeType low-level system interface (body).
|
||||||
/* */
|
*
|
||||||
/* Copyright (C) 1996-2020 by */
|
* Copyright (C) 1996-2022 by
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
/* */
|
*
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
* This file is part of the FreeType project, and may only be used,
|
||||||
/* modified, and distributed under the terms of the FreeType project */
|
* modified, and distributed under the terms of the FreeType project
|
||||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
/* this file you indicate that you have read the license and */
|
* this file you indicate that you have read the license and
|
||||||
/* understand and accept it fully. */
|
* understand and accept it fully.
|
||||||
/* */
|
*
|
||||||
/***************************************************************************/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <ft2build.h>
|
#include <ft2build.h>
|
||||||
/* we use our special ftconfig.h file, not the standard one */
|
/* we use our special ftconfig.h file, not the standard one */
|
||||||
#include <ftconfig.h>
|
#include FT_CONFIG_CONFIG_H
|
||||||
#include <freetype/internal/ftdebug.h>
|
#include <freetype/internal/ftdebug.h>
|
||||||
#include <freetype/ftsystem.h>
|
#include <freetype/ftsystem.h>
|
||||||
#include <freetype/fterrors.h>
|
#include <freetype/fterrors.h>
|
||||||
|
@ -70,29 +70,40 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* MEMORY MANAGEMENT INTERFACE */
|
* MEMORY MANAGEMENT INTERFACE
|
||||||
/* */
|
*
|
||||||
/*************************************************************************/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* <Function> */
|
* It is not necessary to do any error checking for the
|
||||||
/* ft_alloc */
|
* allocation-related functions. This will be done by the higher level
|
||||||
/* */
|
* routines like ft_mem_alloc() or ft_mem_realloc().
|
||||||
/* <Description> */
|
*
|
||||||
/* The memory allocation function. */
|
*/
|
||||||
/* */
|
|
||||||
/* <Input> */
|
|
||||||
/* memory :: A pointer to the memory object. */
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* size :: The requested size in bytes. */
|
* @Function:
|
||||||
/* */
|
* ft_alloc
|
||||||
/* <Return> */
|
*
|
||||||
/* The address of newly allocated block. */
|
* @Description:
|
||||||
/* */
|
* The memory allocation function.
|
||||||
|
*
|
||||||
|
* @Input:
|
||||||
|
* memory ::
|
||||||
|
* A pointer to the memory object.
|
||||||
|
*
|
||||||
|
* size ::
|
||||||
|
* The requested size in bytes.
|
||||||
|
*
|
||||||
|
* @Return:
|
||||||
|
* The address of newly allocated block.
|
||||||
|
*/
|
||||||
FT_CALLBACK_DEF( void* )
|
FT_CALLBACK_DEF( void* )
|
||||||
ft_alloc( FT_Memory memory,
|
ft_alloc( FT_Memory memory,
|
||||||
long size )
|
long size )
|
||||||
|
@ -103,26 +114,30 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* <Function> */
|
* @Function:
|
||||||
/* ft_realloc */
|
* ft_realloc
|
||||||
/* */
|
*
|
||||||
/* <Description> */
|
* @Description:
|
||||||
/* The memory reallocation function. */
|
* The memory reallocation function.
|
||||||
/* */
|
*
|
||||||
/* <Input> */
|
* @Input:
|
||||||
/* memory :: A pointer to the memory object. */
|
* memory ::
|
||||||
/* */
|
* A pointer to the memory object.
|
||||||
/* cur_size :: The current size of the allocated memory block. */
|
*
|
||||||
/* */
|
* cur_size ::
|
||||||
/* new_size :: The newly requested size in bytes. */
|
* The current size of the allocated memory block.
|
||||||
/* */
|
*
|
||||||
/* block :: The current address of the block in memory. */
|
* new_size ::
|
||||||
/* */
|
* The newly requested size in bytes.
|
||||||
/* <Return> */
|
*
|
||||||
/* The address of the reallocated memory block. */
|
* block ::
|
||||||
/* */
|
* The current address of the block in memory.
|
||||||
|
*
|
||||||
|
* @Return:
|
||||||
|
* The address of the reallocated memory block.
|
||||||
|
*/
|
||||||
FT_CALLBACK_DEF( void* )
|
FT_CALLBACK_DEF( void* )
|
||||||
ft_realloc( FT_Memory memory,
|
ft_realloc( FT_Memory memory,
|
||||||
long cur_size,
|
long cur_size,
|
||||||
|
@ -136,19 +151,21 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* <Function> */
|
* @Function:
|
||||||
/* ft_free */
|
* ft_free
|
||||||
/* */
|
*
|
||||||
/* <Description> */
|
* @Description:
|
||||||
/* The memory release function. */
|
* The memory release function.
|
||||||
/* */
|
*
|
||||||
/* <Input> */
|
* @Input:
|
||||||
/* memory :: A pointer to the memory object. */
|
* memory ::
|
||||||
/* */
|
* A pointer to the memory object.
|
||||||
/* block :: The address of block in memory to be freed. */
|
*
|
||||||
/* */
|
* block ::
|
||||||
|
* The address of block in memory to be freed.
|
||||||
|
*/
|
||||||
FT_CALLBACK_DEF( void )
|
FT_CALLBACK_DEF( void )
|
||||||
ft_free( FT_Memory memory,
|
ft_free( FT_Memory memory,
|
||||||
void* block )
|
void* block )
|
||||||
|
@ -159,19 +176,19 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* RESOURCE MANAGEMENT INTERFACE */
|
* RESOURCE MANAGEMENT INTERFACE
|
||||||
/* */
|
*
|
||||||
/*************************************************************************/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* The macro FT_COMPONENT is used in trace mode. It is an implicit */
|
* The macro FT_COMPONENT is used in trace mode. It is an implicit
|
||||||
/* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */
|
* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log
|
||||||
/* messages during execution. */
|
* messages during execution.
|
||||||
/* */
|
*/
|
||||||
#undef FT_COMPONENT
|
#undef FT_COMPONENT
|
||||||
#define FT_COMPONENT io
|
#define FT_COMPONENT io
|
||||||
|
|
||||||
|
@ -180,17 +197,17 @@
|
||||||
#define STREAM_FILE( stream ) ( (FILE*)stream->descriptor.pointer )
|
#define STREAM_FILE( stream ) ( (FILE*)stream->descriptor.pointer )
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* <Function> */
|
* @Function:
|
||||||
/* ft_close_stream_by_munmap */
|
* ft_close_stream_by_munmap
|
||||||
/* */
|
*
|
||||||
/* <Description> */
|
* @Description:
|
||||||
/* The function to close a stream which is opened by mmap. */
|
* The function to close a stream which is opened by mmap.
|
||||||
/* */
|
*
|
||||||
/* <Input> */
|
* @Input:
|
||||||
/* stream :: A pointer to the stream object. */
|
* stream :: A pointer to the stream object.
|
||||||
/* */
|
*/
|
||||||
FT_CALLBACK_DEF( void )
|
FT_CALLBACK_DEF( void )
|
||||||
ft_close_stream_by_munmap( FT_Stream stream )
|
ft_close_stream_by_munmap( FT_Stream stream )
|
||||||
{
|
{
|
||||||
|
@ -198,29 +215,29 @@
|
||||||
|
|
||||||
stream->descriptor.pointer = NULL;
|
stream->descriptor.pointer = NULL;
|
||||||
stream->size = 0;
|
stream->size = 0;
|
||||||
stream->base = 0;
|
stream->base = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* <Function> */
|
* @Function:
|
||||||
/* ft_close_stream_by_free */
|
* ft_close_stream_by_free
|
||||||
/* */
|
*
|
||||||
/* <Description> */
|
* @Description:
|
||||||
/* The function to close a stream which is created by ft_alloc. */
|
* The function to close a stream which is created by ft_alloc.
|
||||||
/* */
|
*
|
||||||
/* <Input> */
|
* @Input:
|
||||||
/* stream :: A pointer to the stream object. */
|
* stream :: A pointer to the stream object.
|
||||||
/* */
|
*/
|
||||||
FT_CALLBACK_DEF( void )
|
FT_CALLBACK_DEF( void )
|
||||||
ft_close_stream_by_free( FT_Stream stream )
|
ft_close_stream_by_free( FT_Stream stream )
|
||||||
{
|
{
|
||||||
ft_free( NULL, stream->descriptor.pointer );
|
ft_free( stream->memory, stream->descriptor.pointer );
|
||||||
|
|
||||||
stream->descriptor.pointer = NULL;
|
stream->descriptor.pointer = NULL;
|
||||||
stream->size = 0;
|
stream->size = 0;
|
||||||
stream->base = 0;
|
stream->base = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -296,8 +313,7 @@
|
||||||
file,
|
file,
|
||||||
0 );
|
0 );
|
||||||
|
|
||||||
/* on some RTOS, mmap might return 0 */
|
if ( stream->base != MAP_FAILED )
|
||||||
if ( (long)stream->base != -1 && stream->base != NULL )
|
|
||||||
stream->close = ft_close_stream_by_munmap;
|
stream->close = ft_close_stream_by_munmap;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -307,7 +323,7 @@
|
||||||
FT_ERROR(( "FT_Stream_Open:" ));
|
FT_ERROR(( "FT_Stream_Open:" ));
|
||||||
FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
|
FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
|
||||||
|
|
||||||
stream->base = (unsigned char*)ft_alloc( NULL, stream->size );
|
stream->base = (unsigned char*)ft_alloc( stream->memory, stream->size );
|
||||||
|
|
||||||
if ( !stream->base )
|
if ( !stream->base )
|
||||||
{
|
{
|
||||||
|
@ -348,16 +364,16 @@
|
||||||
stream->descriptor.pointer = stream->base;
|
stream->descriptor.pointer = stream->base;
|
||||||
stream->pathname.pointer = (char*)filepathname;
|
stream->pathname.pointer = (char*)filepathname;
|
||||||
|
|
||||||
stream->read = 0;
|
stream->read = NULL;
|
||||||
|
|
||||||
FT_TRACE1(( "FT_Stream_Open:" ));
|
FT_TRACE1(( "FT_Stream_Open:" ));
|
||||||
FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
|
FT_TRACE1(( " opened `%s' (%ld bytes) successfully\n",
|
||||||
filepathname, stream->size ));
|
filepathname, stream->size ));
|
||||||
|
|
||||||
return FT_Err_Ok;
|
return FT_Err_Ok;
|
||||||
|
|
||||||
Fail_Read:
|
Fail_Read:
|
||||||
ft_free( NULL, stream->base );
|
ft_free( stream->memory, stream->base );
|
||||||
|
|
||||||
Fail_Map:
|
Fail_Map:
|
||||||
close( file );
|
close( file );
|
||||||
|
@ -392,7 +408,7 @@
|
||||||
memory = (FT_Memory)malloc( sizeof ( *memory ) );
|
memory = (FT_Memory)malloc( sizeof ( *memory ) );
|
||||||
if ( memory )
|
if ( memory )
|
||||||
{
|
{
|
||||||
memory->user = 0;
|
memory->user = NULL;
|
||||||
memory->alloc = ft_alloc;
|
memory->alloc = ft_alloc;
|
||||||
memory->realloc = ft_realloc;
|
memory->realloc = ft_realloc;
|
||||||
memory->free = ft_free;
|
memory->free = ft_free;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -62,7 +62,7 @@ endif
|
||||||
$(DESTDIR)$(includedir)/freetype2/freetype/config/ftmodule.h
|
$(DESTDIR)$(includedir)/freetype2/freetype/config/ftmodule.h
|
||||||
$(INSTALL_DATA) $(OBJ_BUILD)/ftoption.h \
|
$(INSTALL_DATA) $(OBJ_BUILD)/ftoption.h \
|
||||||
$(DESTDIR)$(includedir)/freetype2/freetype/config/ftoption.h
|
$(DESTDIR)$(includedir)/freetype2/freetype/config/ftoption.h
|
||||||
$(INSTALL_SCRIPT) -m 644 $(BUILD_DIR)/freetype2.m4 \
|
$(INSTALL_SCRIPT) -m 644 $(PLATFORM_DIR)/freetype2.m4 \
|
||||||
$(DESTDIR)$(datadir)/aclocal/freetype2.m4
|
$(DESTDIR)$(datadir)/aclocal/freetype2.m4
|
||||||
$(INSTALL_SCRIPT) -m 644 $(OBJ_BUILD)/freetype2.pc \
|
$(INSTALL_SCRIPT) -m 644 $(OBJ_BUILD)/freetype2.pc \
|
||||||
$(DESTDIR)$(libdir)/pkgconfig/freetype2.pc
|
$(DESTDIR)$(libdir)/pkgconfig/freetype2.pc
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# FreeType 2 template for Unix-specific compiler definitions
|
# FreeType 2 template for Unix-specific compiler definitions
|
||||||
#
|
#
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
CC := @CC@
|
CC := @CC@
|
||||||
COMPILER_SEP := $(SEP)
|
COMPILER_SEP := $(SEP)
|
||||||
FT_LIBTOOL_DIR ?= $(BUILD_DIR)
|
FT_LIBTOOL_DIR ?= $(PLATFORM_DIR)
|
||||||
|
|
||||||
LIBTOOL := $(FT_LIBTOOL_DIR)/libtool
|
LIBTOOL := $(FT_LIBTOOL_DIR)/libtool
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
# We use our own FreeType configuration files overriding defaults.
|
# We use our own FreeType configuration files overriding defaults.
|
||||||
|
@ -106,9 +106,7 @@ endif
|
||||||
|
|
||||||
# Linker flags.
|
# Linker flags.
|
||||||
#
|
#
|
||||||
LDFLAGS := @LDFLAGS@
|
LDFLAGS := @LDFLAGS@
|
||||||
LIB_CLOCK_GETTIME := @LIB_CLOCK_GETTIME@ # for ftbench
|
|
||||||
|
|
||||||
|
|
||||||
# export symbols
|
# export symbols
|
||||||
#
|
#
|
||||||
|
@ -118,11 +116,15 @@ EXPORTS_LIST := $(OBJ_DIR)/ftexport.sym
|
||||||
CCexe := $(CCraw_build) # used to compile `apinames' only
|
CCexe := $(CCraw_build) # used to compile `apinames' only
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking.
|
||||||
#
|
#
|
||||||
LINK_LIBRARY = $(LIBTOOL) --mode=link $(CCraw) -o $@ $(OBJECTS_LIST) \
|
LINK_LIBRARY = $(LIBTOOL) --mode=link $(CCraw) -o $@ $(OBJECTS_LIST) \
|
||||||
-rpath $(libdir) -version-info $(version_info) \
|
-rpath $(libdir) -version-info $(version_info) \
|
||||||
$(LDFLAGS) -no-undefined \
|
$(LDFLAGS) -no-undefined \
|
||||||
-export-symbols $(EXPORTS_LIST)
|
-export-symbols $(EXPORTS_LIST)
|
||||||
|
|
||||||
|
# For the demo programs.
|
||||||
|
FT_DEMO_CFLAGS := @FT_DEMO_CFLAGS@
|
||||||
|
FT_DEMO_LDFLAGS := @FT_DEMO_LDFLAGS@
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -27,7 +27,7 @@ PYTHON := @PYTHON@
|
||||||
BIN := bin
|
BIN := bin
|
||||||
|
|
||||||
# this is used for `make distclean' and `make install'
|
# this is used for `make distclean' and `make install'
|
||||||
OBJ_BUILD ?= $(BUILD_DIR)
|
OBJ_BUILD ?= $(PLATFORM_DIR)
|
||||||
|
|
||||||
# don't use `:=' here since the path stuff will be included after this file
|
# don't use `:=' here since the path stuff will be included after this file
|
||||||
#
|
#
|
||||||
|
@ -68,12 +68,14 @@ version_info := @version_info@
|
||||||
|
|
||||||
# Variables needed for `freetype-config' and `freetype.pc'.
|
# Variables needed for `freetype-config' and `freetype.pc'.
|
||||||
#
|
#
|
||||||
PKG_CONFIG := @PKG_CONFIG@
|
PKG_CONFIG := @PKG_CONFIG@
|
||||||
REQUIRES_PRIVATE := @REQUIRES_PRIVATE@
|
PKGCONFIG_REQUIRES := @PKGCONFIG_REQUIRES@
|
||||||
LIBS_PRIVATE := @LIBS_PRIVATE@
|
PKGCONFIG_REQUIRES_PRIVATE := @PKGCONFIG_REQUIRES_PRIVATE@
|
||||||
LIBSSTATIC_CONFIG := @LIBSSTATIC_CONFIG@
|
PKGCONFIG_LIBS := @PKGCONFIG_LIBS@
|
||||||
build_libtool_libs := @build_libtool_libs@
|
PKGCONFIG_LIBS_PRIVATE := @PKGCONFIG_LIBS_PRIVATE@
|
||||||
ft_version := @ft_version@
|
LIBSSTATIC_CONFIG := @LIBSSTATIC_CONFIG@
|
||||||
|
build_libtool_libs := @build_libtool_libs@
|
||||||
|
ft_version := @ft_version@
|
||||||
|
|
||||||
# The directory where all library files are placed.
|
# The directory where all library files are placed.
|
||||||
#
|
#
|
||||||
|
@ -137,15 +139,17 @@ prefix_x := $(subst $(space),\\$(space),$(prefix))
|
||||||
|
|
||||||
$(OBJ_BUILD)/freetype2.pc: $(TOP_DIR)/builds/unix/freetype2.in
|
$(OBJ_BUILD)/freetype2.pc: $(TOP_DIR)/builds/unix/freetype2.in
|
||||||
rm -f $@ $@.tmp
|
rm -f $@ $@.tmp
|
||||||
sed -e 's|%REQUIRES_PRIVATE%|$(REQUIRES_PRIVATE)|' \
|
sed -e 's|%PKGCONFIG_REQUIRES%|$(PKGCONFIG_REQUIRES)|' \
|
||||||
-e 's|%LIBS_PRIVATE%|$(LIBS_PRIVATE)|' \
|
-e 's|%PKGCONFIG_REQUIRES_PRIVATE%|$(PKGCONFIG_REQUIRES_PRIVATE)|' \
|
||||||
-e 's|%build_libtool_libs%|$(build_libtool_libs)|' \
|
-e 's|%PKGCONFIG_LIBS%|$(PKGCONFIG_LIBS)|' \
|
||||||
-e 's|%exec_prefix%|$(exec_prefix_x)|' \
|
-e 's|%PKGCONFIG_LIBS_PRIVATE%|$(PKGCONFIG_LIBS_PRIVATE)|' \
|
||||||
-e 's|%ft_version%|$(ft_version)|' \
|
-e 's|%build_libtool_libs%|$(build_libtool_libs)|' \
|
||||||
-e 's|%includedir%|$(includedir_x)|' \
|
-e 's|%exec_prefix%|$(exec_prefix_x)|' \
|
||||||
-e 's|%libdir%|$(libdir_x)|' \
|
-e 's|%ft_version%|$(ft_version)|' \
|
||||||
-e 's|%prefix%|$(prefix_x)|' \
|
-e 's|%includedir%|$(includedir_x)|' \
|
||||||
$< \
|
-e 's|%libdir%|$(libdir_x)|' \
|
||||||
|
-e 's|%prefix%|$(prefix_x)|' \
|
||||||
|
$< \
|
||||||
> $@.tmp
|
> $@.tmp
|
||||||
chmod a-w $@.tmp
|
chmod a-w $@.tmp
|
||||||
mv $@.tmp $@
|
mv $@.tmp $@
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -13,8 +13,8 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
# We need these declarations here since unix-def.mk is a generated file.
|
# We need these declarations here since unix-def.mk is a generated file.
|
||||||
BUILD_DIR := $(TOP_DIR)/builds/unix
|
PLATFORM_DIR := $(TOP_DIR)/builds/unix
|
||||||
PLATFORM := unix
|
PLATFORM := unix
|
||||||
|
|
||||||
have_mk := $(wildcard $(OBJ_DIR)/unix-def.mk)
|
have_mk := $(wildcard $(OBJ_DIR)/unix-def.mk)
|
||||||
ifneq ($(have_mk),)
|
ifneq ($(have_mk),)
|
||||||
|
@ -22,8 +22,8 @@ ifneq ($(have_mk),)
|
||||||
include $(OBJ_DIR)/unix-def.mk
|
include $(OBJ_DIR)/unix-def.mk
|
||||||
include $(OBJ_DIR)/unix-cc.mk
|
include $(OBJ_DIR)/unix-cc.mk
|
||||||
else
|
else
|
||||||
include $(BUILD_DIR)/unix-def.mk
|
include $(PLATFORM_DIR)/unix-def.mk
|
||||||
include $(BUILD_DIR)/unix-cc.mk
|
include $(PLATFORM_DIR)/unix-cc.mk
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef BUILD_PROJECT
|
ifdef BUILD_PROJECT
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -27,9 +27,6 @@ SEP := /
|
||||||
#
|
#
|
||||||
BIN := bin
|
BIN := bin
|
||||||
|
|
||||||
# we use a special devel ftoption.h
|
|
||||||
DEVEL_DIR := $(TOP_DIR)/devel
|
|
||||||
|
|
||||||
|
|
||||||
# library file name
|
# library file name
|
||||||
#
|
#
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* VMS-specific configuration file (specification only).
|
* VMS-specific configuration file (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2022 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -39,21 +39,6 @@
|
||||||
#include FT_CONFIG_OPTIONS_H
|
#include FT_CONFIG_OPTIONS_H
|
||||||
#include FT_CONFIG_STANDARD_LIBRARY_H
|
#include FT_CONFIG_STANDARD_LIBRARY_H
|
||||||
|
|
||||||
|
|
||||||
FT_BEGIN_HEADER
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* PLATFORM-SPECIFIC CONFIGURATION MACROS
|
|
||||||
*
|
|
||||||
* These macros can be toggled to suit a specific system. The current ones
|
|
||||||
* are defaults used to compile FreeType in an ANSI C environment (16bit
|
|
||||||
* compilers are also supported). Copy this file to your own
|
|
||||||
* `builds/<system>` directory, and edit it to port the engine.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define HAVE_UNISTD_H 1
|
#define HAVE_UNISTD_H 1
|
||||||
#define HAVE_FCNTL_H 1
|
#define HAVE_FCNTL_H 1
|
||||||
|
|
||||||
|
@ -63,491 +48,9 @@ FT_BEGIN_HEADER
|
||||||
#define FT_SIZEOF_INT 4
|
#define FT_SIZEOF_INT 4
|
||||||
#define FT_SIZEOF_LONG 4
|
#define FT_SIZEOF_LONG 4
|
||||||
|
|
||||||
|
#include <freetype/config/integer-types.h>
|
||||||
/* `FT_UNUSED` indicates that a given parameter is not used -- */
|
#include <freetype/config/public-macros.h>
|
||||||
/* this is only used to get rid of unpleasant compiler warnings. */
|
#include <freetype/config/mac-support.h>
|
||||||
#ifndef FT_UNUSED
|
|
||||||
#define FT_UNUSED( arg ) ( (arg) = (arg) )
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* AUTOMATIC CONFIGURATION MACROS
|
|
||||||
*
|
|
||||||
* These macros are computed from the ones defined above. Don't touch
|
|
||||||
* their definition, unless you know precisely what you are doing. No
|
|
||||||
* porter should need to mess with them.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* Mac support
|
|
||||||
*
|
|
||||||
* This is the only necessary change, so it is defined here instead
|
|
||||||
* providing a new configuration file.
|
|
||||||
*/
|
|
||||||
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
|
|
||||||
/* No Carbon frameworks for 64bit 10.4.x. */
|
|
||||||
/* `AvailabilityMacros.h` is available since Mac OS X 10.2, */
|
|
||||||
/* so guess the system version by maximum errno before inclusion. */
|
|
||||||
#include <errno.h>
|
|
||||||
#ifdef ECANCELED /* defined since 10.2 */
|
|
||||||
#include "AvailabilityMacros.h"
|
|
||||||
#endif
|
|
||||||
#if defined( __LP64__ ) && \
|
|
||||||
( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
|
|
||||||
#undef FT_MACINTOSH
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined( __SC__ ) || defined( __MRC__ )
|
|
||||||
/* Classic MacOS compilers */
|
|
||||||
#include "ConditionalMacros.h"
|
|
||||||
#if TARGET_OS_MAC
|
|
||||||
#define FT_MACINTOSH 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Fix compiler warning with sgi compiler. */
|
|
||||||
#if defined( __sgi ) && !defined( __GNUC__ )
|
|
||||||
#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
|
|
||||||
#pragma set woff 3505
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @section:
|
|
||||||
* basic_types
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_Int16
|
|
||||||
*
|
|
||||||
* @description:
|
|
||||||
* A typedef for a 16bit signed integer type.
|
|
||||||
*/
|
|
||||||
typedef signed short FT_Int16;
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_UInt16
|
|
||||||
*
|
|
||||||
* @description:
|
|
||||||
* A typedef for a 16bit unsigned integer type.
|
|
||||||
*/
|
|
||||||
typedef unsigned short FT_UInt16;
|
|
||||||
|
|
||||||
/* */
|
|
||||||
|
|
||||||
|
|
||||||
/* this #if 0 ... #endif clause is for documentation purposes */
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_Int32
|
|
||||||
*
|
|
||||||
* @description:
|
|
||||||
* A typedef for a 32bit signed integer type. The size depends on the
|
|
||||||
* configuration.
|
|
||||||
*/
|
|
||||||
typedef signed XXX FT_Int32;
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_UInt32
|
|
||||||
*
|
|
||||||
* A typedef for a 32bit unsigned integer type. The size depends on the
|
|
||||||
* configuration.
|
|
||||||
*/
|
|
||||||
typedef unsigned XXX FT_UInt32;
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_Int64
|
|
||||||
*
|
|
||||||
* A typedef for a 64bit signed integer type. The size depends on the
|
|
||||||
* configuration. Only defined if there is real 64bit support;
|
|
||||||
* otherwise, it gets emulated with a structure (if necessary).
|
|
||||||
*/
|
|
||||||
typedef signed XXX FT_Int64;
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @type:
|
|
||||||
* FT_UInt64
|
|
||||||
*
|
|
||||||
* A typedef for a 64bit unsigned integer type. The size depends on the
|
|
||||||
* configuration. Only defined if there is real 64bit support;
|
|
||||||
* otherwise, it gets emulated with a structure (if necessary).
|
|
||||||
*/
|
|
||||||
typedef unsigned XXX FT_UInt64;
|
|
||||||
|
|
||||||
/* */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if FT_SIZEOF_INT == 4
|
|
||||||
|
|
||||||
typedef signed int FT_Int32;
|
|
||||||
typedef unsigned int FT_UInt32;
|
|
||||||
|
|
||||||
#elif FT_SIZEOF_LONG == 4
|
|
||||||
|
|
||||||
typedef signed long FT_Int32;
|
|
||||||
typedef unsigned long FT_UInt32;
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error "no 32bit type found -- please check your configuration files"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* look up an integer type that is at least 32~bits */
|
|
||||||
#if FT_SIZEOF_INT >= 4
|
|
||||||
|
|
||||||
typedef int FT_Fast;
|
|
||||||
typedef unsigned int FT_UFast;
|
|
||||||
|
|
||||||
#elif FT_SIZEOF_LONG >= 4
|
|
||||||
|
|
||||||
typedef long FT_Fast;
|
|
||||||
typedef unsigned long FT_UFast;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* determine whether we have a 64-bit `int` type for platforms without */
|
|
||||||
/* Autoconf */
|
|
||||||
#if FT_SIZEOF_LONG == 8
|
|
||||||
|
|
||||||
/* `FT_LONG64` must be defined if a 64-bit type is available */
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 long
|
|
||||||
#define FT_UINT64 unsigned long
|
|
||||||
|
|
||||||
/* we handle the LLP64 scheme separately for GCC and clang, */
|
|
||||||
/* suppressing the `long long` warning */
|
|
||||||
#elif ( FT_SIZEOF_LONG == 4 ) && \
|
|
||||||
defined( HAVE_LONG_LONG_INT ) && \
|
|
||||||
defined( __GNUC__ )
|
|
||||||
#pragma GCC diagnostic ignored "-Wlong-long"
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 long long int
|
|
||||||
#define FT_UINT64 unsigned long long int
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* A 64-bit data type may create compilation problems if you compile in
|
|
||||||
* strict ANSI mode. To avoid them, we disable other 64-bit data types if
|
|
||||||
* `__STDC__` is defined. You can however ignore this rule by defining the
|
|
||||||
* `FT_CONFIG_OPTION_FORCE_INT64` configuration macro.
|
|
||||||
*/
|
|
||||||
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
|
|
||||||
|
|
||||||
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
|
|
||||||
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 long long int
|
|
||||||
#define FT_UINT64 unsigned long long int
|
|
||||||
|
|
||||||
#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
|
|
||||||
|
|
||||||
/* this compiler provides the `__int64` type */
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 __int64
|
|
||||||
#define FT_UINT64 unsigned __int64
|
|
||||||
|
|
||||||
#elif defined( __BORLANDC__ ) /* Borland C++ */
|
|
||||||
|
|
||||||
/* XXXX: We should probably check the value of `__BORLANDC__` in order */
|
|
||||||
/* to test the compiler version. */
|
|
||||||
|
|
||||||
/* this compiler provides the `__int64` type */
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 __int64
|
|
||||||
#define FT_UINT64 unsigned __int64
|
|
||||||
|
|
||||||
#elif defined( __WATCOMC__ ) /* Watcom C++ */
|
|
||||||
|
|
||||||
/* Watcom doesn't provide 64-bit data types */
|
|
||||||
|
|
||||||
#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
|
|
||||||
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 long long int
|
|
||||||
#define FT_UINT64 unsigned long long int
|
|
||||||
|
|
||||||
#elif defined( __GNUC__ )
|
|
||||||
|
|
||||||
/* GCC provides the `long long` type */
|
|
||||||
#define FT_LONG64
|
|
||||||
#define FT_INT64 long long int
|
|
||||||
#define FT_UINT64 unsigned long long int
|
|
||||||
|
|
||||||
#endif /* __STDC_VERSION__ >= 199901L */
|
|
||||||
|
|
||||||
#endif /* FT_SIZEOF_LONG == 8 */
|
|
||||||
|
|
||||||
#ifdef FT_LONG64
|
|
||||||
typedef FT_INT64 FT_Int64;
|
|
||||||
typedef FT_UINT64 FT_UInt64;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef _WIN64
|
|
||||||
/* only 64bit Windows uses the LLP64 data model, i.e., */
|
|
||||||
/* 32bit integers, 64bit pointers */
|
|
||||||
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
|
|
||||||
#else
|
|
||||||
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* miscellaneous
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#define FT_BEGIN_STMNT do {
|
|
||||||
#define FT_END_STMNT } while ( 0 )
|
|
||||||
#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
|
|
||||||
|
|
||||||
|
|
||||||
/* `typeof` condition taken from gnulib's `intprops.h` header file */
|
|
||||||
#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
|
|
||||||
( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
|
|
||||||
defined( __IBM__TYPEOF__ ) ) || \
|
|
||||||
( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
|
|
||||||
#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
|
|
||||||
#else
|
|
||||||
#define FT_TYPEOF( type ) /* empty */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Use `FT_LOCAL` and `FT_LOCAL_DEF` to declare and define, */
|
|
||||||
/* respectively, a function that gets used only within the scope of a */
|
|
||||||
/* module. Normally, both the header and source code files for such a */
|
|
||||||
/* function are within a single module directory. */
|
|
||||||
/* */
|
|
||||||
/* Intra-module arrays should be tagged with `FT_LOCAL_ARRAY` and */
|
|
||||||
/* `FT_LOCAL_ARRAY_DEF`. */
|
|
||||||
/* */
|
|
||||||
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
|
|
||||||
|
|
||||||
#define FT_LOCAL( x ) static x
|
|
||||||
#define FT_LOCAL_DEF( x ) static x
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_LOCAL( x ) extern "C" x
|
|
||||||
#define FT_LOCAL_DEF( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_LOCAL( x ) extern x
|
|
||||||
#define FT_LOCAL_DEF( x ) x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
|
|
||||||
|
|
||||||
#define FT_LOCAL_ARRAY( x ) extern const x
|
|
||||||
#define FT_LOCAL_ARRAY_DEF( x ) const x
|
|
||||||
|
|
||||||
|
|
||||||
/* Use `FT_BASE` and `FT_BASE_DEF` to declare and define, respectively, */
|
|
||||||
/* functions that are used in more than a single module. In the */
|
|
||||||
/* current setup this implies that the declaration is in a header file */
|
|
||||||
/* in the `include/freetype/internal` directory, and the function body */
|
|
||||||
/* is in a file in `src/base`. */
|
|
||||||
/* */
|
|
||||||
#ifndef FT_BASE
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_BASE( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_BASE( x ) extern x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !FT_BASE */
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef FT_BASE_DEF
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_BASE_DEF( x ) x
|
|
||||||
#else
|
|
||||||
#define FT_BASE_DEF( x ) x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !FT_BASE_DEF */
|
|
||||||
|
|
||||||
|
|
||||||
/* When compiling FreeType as a DLL or DSO with hidden visibility */
|
|
||||||
/* some systems/compilers need a special attribute in front OR after */
|
|
||||||
/* the return type of function declarations. */
|
|
||||||
/* */
|
|
||||||
/* Two macros are used within the FreeType source code to define */
|
|
||||||
/* exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. */
|
|
||||||
/* */
|
|
||||||
/* - `FT_EXPORT( return_type )` */
|
|
||||||
/* */
|
|
||||||
/* is used in a function declaration, as in */
|
|
||||||
/* */
|
|
||||||
/* ``` */
|
|
||||||
/* FT_EXPORT( FT_Error ) */
|
|
||||||
/* FT_Init_FreeType( FT_Library* alibrary ); */
|
|
||||||
/* ``` */
|
|
||||||
/* */
|
|
||||||
/* - `FT_EXPORT_DEF( return_type )` */
|
|
||||||
/* */
|
|
||||||
/* is used in a function definition, as in */
|
|
||||||
/* */
|
|
||||||
/* ``` */
|
|
||||||
/* FT_EXPORT_DEF( FT_Error ) */
|
|
||||||
/* FT_Init_FreeType( FT_Library* alibrary ) */
|
|
||||||
/* { */
|
|
||||||
/* ... some code ... */
|
|
||||||
/* return FT_Err_Ok; */
|
|
||||||
/* } */
|
|
||||||
/* ``` */
|
|
||||||
/* */
|
|
||||||
/* You can provide your own implementation of `FT_EXPORT` and */
|
|
||||||
/* `FT_EXPORT_DEF` here if you want. */
|
|
||||||
/* */
|
|
||||||
/* To export a variable, use `FT_EXPORT_VAR`. */
|
|
||||||
/* */
|
|
||||||
#ifndef FT_EXPORT
|
|
||||||
|
|
||||||
#ifdef FT2_BUILD_LIBRARY
|
|
||||||
|
|
||||||
#if defined( _WIN32 ) && defined( DLL_EXPORT )
|
|
||||||
#define FT_EXPORT( x ) __declspec( dllexport ) x
|
|
||||||
#elif defined( __GNUC__ ) && __GNUC__ >= 4
|
|
||||||
#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x
|
|
||||||
#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550
|
|
||||||
#define FT_EXPORT( x ) __global x
|
|
||||||
#elif defined( __cplusplus )
|
|
||||||
#define FT_EXPORT( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_EXPORT( x ) extern x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#if defined( _WIN32 ) && defined( DLL_IMPORT )
|
|
||||||
#define FT_EXPORT( x ) __declspec( dllimport ) x
|
|
||||||
#elif defined( __cplusplus )
|
|
||||||
#define FT_EXPORT( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_EXPORT( x ) extern x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !FT_EXPORT */
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef FT_EXPORT_DEF
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_EXPORT_DEF( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_EXPORT_DEF( x ) extern x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !FT_EXPORT_DEF */
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef FT_EXPORT_VAR
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_EXPORT_VAR( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_EXPORT_VAR( x ) extern x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !FT_EXPORT_VAR */
|
|
||||||
|
|
||||||
|
|
||||||
/* The following macros are needed to compile the library with a */
|
|
||||||
/* C++ compiler and with 16bit compilers. */
|
|
||||||
/* */
|
|
||||||
|
|
||||||
/* This is special. Within C++, you must specify `extern "C"` for */
|
|
||||||
/* functions which are used via function pointers, and you also */
|
|
||||||
/* must do that for structures which contain function pointers to */
|
|
||||||
/* assure C linkage -- it's not possible to have (local) anonymous */
|
|
||||||
/* functions which are accessed by (global) function pointers. */
|
|
||||||
/* */
|
|
||||||
/* */
|
|
||||||
/* FT_CALLBACK_DEF is used to _define_ a callback function, */
|
|
||||||
/* located in the same source code file as the structure that uses */
|
|
||||||
/* it. */
|
|
||||||
/* */
|
|
||||||
/* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */
|
|
||||||
/* and define a callback function, respectively, in a similar way */
|
|
||||||
/* as FT_BASE and FT_BASE_DEF work. */
|
|
||||||
/* */
|
|
||||||
/* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
|
|
||||||
/* contains pointers to callback functions. */
|
|
||||||
/* */
|
|
||||||
/* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */
|
|
||||||
/* that contains pointers to callback functions. */
|
|
||||||
/* */
|
|
||||||
/* */
|
|
||||||
/* Some 16bit compilers have to redefine these macros to insert */
|
|
||||||
/* the infamous `_cdecl` or `__fastcall` declarations. */
|
|
||||||
/* */
|
|
||||||
#ifndef FT_CALLBACK_DEF
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_CALLBACK_DEF( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_CALLBACK_DEF( x ) static x
|
|
||||||
#endif
|
|
||||||
#endif /* FT_CALLBACK_DEF */
|
|
||||||
|
|
||||||
#ifndef FT_BASE_CALLBACK
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_BASE_CALLBACK( x ) extern "C" x
|
|
||||||
#define FT_BASE_CALLBACK_DEF( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_BASE_CALLBACK( x ) extern x
|
|
||||||
#define FT_BASE_CALLBACK_DEF( x ) x
|
|
||||||
#endif
|
|
||||||
#endif /* FT_BASE_CALLBACK */
|
|
||||||
|
|
||||||
#ifndef FT_CALLBACK_TABLE
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_CALLBACK_TABLE extern "C"
|
|
||||||
#define FT_CALLBACK_TABLE_DEF extern "C"
|
|
||||||
#else
|
|
||||||
#define FT_CALLBACK_TABLE extern
|
|
||||||
#define FT_CALLBACK_TABLE_DEF /* nothing */
|
|
||||||
#endif
|
|
||||||
#endif /* FT_CALLBACK_TABLE */
|
|
||||||
|
|
||||||
|
|
||||||
FT_END_HEADER
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* FTCONFIG_H_ */
|
#endif /* FTCONFIG_H_ */
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* VMS-specific FreeType low-level system interface (body). */
|
/* VMS-specific FreeType low-level system interface (body). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (C) 1996-2020 by */
|
/* Copyright (C) 1996-2022 by */
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -197,7 +197,7 @@
|
||||||
|
|
||||||
stream->descriptor.pointer = NULL;
|
stream->descriptor.pointer = NULL;
|
||||||
stream->size = 0;
|
stream->size = 0;
|
||||||
stream->base = 0;
|
stream->base = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -246,7 +246,7 @@
|
||||||
file,
|
file,
|
||||||
0 );
|
0 );
|
||||||
|
|
||||||
if ( (long)stream->base == -1 )
|
if ( stream->base == MAP_FAILED )
|
||||||
{
|
{
|
||||||
FT_ERROR(( "FT_Stream_Open:" ));
|
FT_ERROR(( "FT_Stream_Open:" ));
|
||||||
FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
|
FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
|
||||||
|
@ -259,7 +259,7 @@
|
||||||
stream->pathname.pointer = (char*)filepathname;
|
stream->pathname.pointer = (char*)filepathname;
|
||||||
|
|
||||||
stream->close = ft_close_stream;
|
stream->close = ft_close_stream;
|
||||||
stream->read = 0;
|
stream->read = NULL;
|
||||||
|
|
||||||
FT_TRACE1(( "FT_Stream_Open:" ));
|
FT_TRACE1(( "FT_Stream_Open:" ));
|
||||||
FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
|
FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
|
||||||
|
@ -300,7 +300,7 @@
|
||||||
memory = (FT_Memory)malloc( sizeof ( *memory ) );
|
memory = (FT_Memory)malloc( sizeof ( *memory ) );
|
||||||
if ( memory )
|
if ( memory )
|
||||||
{
|
{
|
||||||
memory->user = 0;
|
memory->user = NULL;
|
||||||
memory->alloc = ft_alloc;
|
memory->alloc = ft_alloc;
|
||||||
memory->realloc = ft_realloc;
|
memory->realloc = ft_realloc;
|
||||||
memory->free = ft_free;
|
memory->free = ft_free;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Debugging and logging component for WinCE (body).
|
* Debugging and logging component for WinCE (body).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2022 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -230,7 +230,7 @@
|
||||||
|
|
||||||
/* const char* ft2_debug = getenv( "FT2_DEBUG" ); */
|
/* const char* ft2_debug = getenv( "FT2_DEBUG" ); */
|
||||||
|
|
||||||
const char* ft2_debug = 0;
|
const char* ft2_debug = NULL;
|
||||||
|
|
||||||
|
|
||||||
if ( ft2_debug )
|
if ( ft2_debug )
|
||||||
|
|
|
@ -21,7 +21,7 @@ the following targets:
|
||||||
<li>PPC/SP WM6 (Windows Mobile 6)</li>
|
<li>PPC/SP WM6 (Windows Mobile 6)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
It compiles the following libraries from the FreeType 2.10.2 sources:</p>
|
It compiles the following libraries from the FreeType 2.12.1 sources:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<pre>
|
<pre>
|
||||||
|
|
|
@ -21,7 +21,7 @@ the following targets:
|
||||||
<li>PPC/SP WM6 (Windows Mobile 6)</li>
|
<li>PPC/SP WM6 (Windows Mobile 6)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
It compiles the following libraries from the FreeType 2.10.2 sources:</p>
|
It compiles the following libraries from the FreeType 2.12.1 sources:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<pre>
|
<pre>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -81,9 +81,9 @@ ifeq ($(PLATFORM),windows)
|
||||||
# (2004-11-11), and then in the devel mailing list (2004-11-20 to -23).
|
# (2004-11-11), and then in the devel mailing list (2004-11-20 to -23).
|
||||||
#
|
#
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
COPY := cmd.exe /c copy
|
COPY := >nul cmd.exe /c copy
|
||||||
else
|
else
|
||||||
COPY := copy
|
COPY := >nul copy
|
||||||
endif # test NT
|
endif # test NT
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Debugging and logging component for Win32 (body).
|
* Debugging and logging component for Win32 (body).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2020 by
|
* Copyright (C) 1996-2022 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -42,33 +42,111 @@
|
||||||
|
|
||||||
|
|
||||||
#include <freetype/freetype.h>
|
#include <freetype/freetype.h>
|
||||||
|
#include <freetype/ftlogging.h>
|
||||||
#include <freetype/internal/ftdebug.h>
|
#include <freetype/internal/ftdebug.h>
|
||||||
|
#include <freetype/internal/ftobjs.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FT_DEBUG_LOGGING
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Variables used to control logging.
|
||||||
|
*
|
||||||
|
* 1. `ft_default_trace_level` stores the value of trace levels, which are
|
||||||
|
* provided to FreeType using the `FT2_DEBUG` environment variable.
|
||||||
|
*
|
||||||
|
* 2. `ft_fileptr` stores the `FILE*` handle.
|
||||||
|
*
|
||||||
|
* 3. `ft_component` is a string that holds the name of `FT_COMPONENT`.
|
||||||
|
*
|
||||||
|
* 4. The flag `ft_component_flag` prints the name of `FT_COMPONENT` along
|
||||||
|
* with the actual log message if set to true.
|
||||||
|
*
|
||||||
|
* 5. The flag `ft_timestamp_flag` prints time along with the actual log
|
||||||
|
* message if set to ture.
|
||||||
|
*
|
||||||
|
* 6. `ft_have_newline_char` is used to differentiate between a log
|
||||||
|
* message with and without a trailing newline character.
|
||||||
|
*
|
||||||
|
* 7. `ft_custom_trace_level` stores the custom trace level value, which
|
||||||
|
* is provided by the user at run-time.
|
||||||
|
*
|
||||||
|
* We use `static` to avoid 'unused variable' warnings.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
static const char* ft_default_trace_level = NULL;
|
||||||
|
static FILE* ft_fileptr = NULL;
|
||||||
|
static const char* ft_component = NULL;
|
||||||
|
static FT_Bool ft_component_flag = FALSE;
|
||||||
|
static FT_Bool ft_timestamp_flag = FALSE;
|
||||||
|
static FT_Bool ft_have_newline_char = TRUE;
|
||||||
|
static const char* ft_custom_trace_level = NULL;
|
||||||
|
|
||||||
|
/* declared in ftdebug.h */
|
||||||
|
|
||||||
|
dlg_handler ft_default_log_handler = NULL;
|
||||||
|
FT_Custom_Log_Handler custom_output_handler = NULL;
|
||||||
|
|
||||||
|
#endif /* FT_DEBUG_LOGGING */
|
||||||
|
|
||||||
|
|
||||||
#ifdef FT_DEBUG_LEVEL_ERROR
|
#ifdef FT_DEBUG_LEVEL_ERROR
|
||||||
|
|
||||||
#include <stdarg.h>
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
|
||||||
|
FT_LOACAL_DEF( void )
|
||||||
|
OutputDebugStringA( LPCSTR lpOutputString )
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
LPWSTR lpOutputStringW;
|
||||||
|
|
||||||
|
|
||||||
|
/* allocate memory space for converted string */
|
||||||
|
len = MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
|
||||||
|
lpOutputString, -1, NULL, 0 );
|
||||||
|
|
||||||
|
lpOutputStringW = (LPWSTR)_alloca( len * sizeof ( WCHAR ) );
|
||||||
|
|
||||||
|
if ( !len || !lpOutputStringW )
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* now it is safe to do the translation */
|
||||||
|
MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
|
||||||
|
lpOutputString, -1, lpOutputStringW, len );
|
||||||
|
|
||||||
|
OutputDebugStringW( lpOutputStringW );
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* _WIN32_WCE */
|
||||||
|
|
||||||
|
|
||||||
/* documentation is in ftdebug.h */
|
/* documentation is in ftdebug.h */
|
||||||
|
|
||||||
FT_BASE_DEF( void )
|
FT_BASE_DEF( void )
|
||||||
FT_Message( const char* fmt,
|
FT_Message( const char* fmt,
|
||||||
... )
|
... )
|
||||||
{
|
{
|
||||||
static char buf[8192];
|
va_list ap;
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
|
|
||||||
va_start( ap, fmt );
|
va_start( ap, fmt );
|
||||||
vfprintf( stderr, fmt, ap );
|
vfprintf( stderr, fmt, ap );
|
||||||
/* send the string to the debugger as well */
|
#if ( defined( _WIN32_WINNT ) && _WIN32_WINNT >= 0x0400 ) || \
|
||||||
vsprintf( buf, fmt, ap );
|
( defined( _WIN32_WCE ) && _WIN32_WCE >= 0x0600 )
|
||||||
OutputDebugStringA( buf );
|
if ( IsDebuggerPresent() )
|
||||||
|
{
|
||||||
|
static char buf[1024];
|
||||||
|
|
||||||
|
|
||||||
|
vsnprintf( buf, sizeof buf, fmt, ap );
|
||||||
|
OutputDebugStringA( buf );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
va_end( ap );
|
va_end( ap );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,13 +157,22 @@
|
||||||
FT_Panic( const char* fmt,
|
FT_Panic( const char* fmt,
|
||||||
... )
|
... )
|
||||||
{
|
{
|
||||||
static char buf[8192];
|
va_list ap;
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
|
|
||||||
va_start( ap, fmt );
|
va_start( ap, fmt );
|
||||||
vsprintf( buf, fmt, ap );
|
vfprintf( stderr, fmt, ap );
|
||||||
OutputDebugStringA( buf );
|
#if ( defined( _WIN32_WINNT ) && _WIN32_WINNT >= 0x0400 ) || \
|
||||||
|
( defined( _WIN32_WCE ) && _WIN32_WCE >= 0x0600 )
|
||||||
|
if ( IsDebuggerPresent() )
|
||||||
|
{
|
||||||
|
static char buf[1024];
|
||||||
|
|
||||||
|
|
||||||
|
vsnprintf( buf, sizeof buf, fmt, ap );
|
||||||
|
OutputDebugStringA( buf );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
va_end( ap );
|
va_end( ap );
|
||||||
|
|
||||||
exit( EXIT_FAILURE );
|
exit( EXIT_FAILURE );
|
||||||
|
@ -207,9 +294,18 @@
|
||||||
FT_BASE_DEF( void )
|
FT_BASE_DEF( void )
|
||||||
ft_debug_init( void )
|
ft_debug_init( void )
|
||||||
{
|
{
|
||||||
const char* ft2_debug = getenv( "FT2_DEBUG" );
|
const char* ft2_debug = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FT_DEBUG_LOGGING
|
||||||
|
if ( ft_custom_trace_level != NULL )
|
||||||
|
ft2_debug = ft_custom_trace_level;
|
||||||
|
else
|
||||||
|
ft2_debug = ft_default_trace_level;
|
||||||
|
#else
|
||||||
|
ft2_debug = ft_getenv( "FT2_DEBUG" );
|
||||||
|
#endif
|
||||||
|
|
||||||
if ( ft2_debug )
|
if ( ft2_debug )
|
||||||
{
|
{
|
||||||
const char* p = ft2_debug;
|
const char* p = ft2_debug;
|
||||||
|
@ -222,6 +318,49 @@
|
||||||
if ( *p == ' ' || *p == '\t' || *p == ',' || *p == ';' || *p == '=' )
|
if ( *p == ' ' || *p == '\t' || *p == ',' || *p == ';' || *p == '=' )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
#ifdef FT_DEBUG_LOGGING
|
||||||
|
|
||||||
|
/* check extra arguments for logging */
|
||||||
|
if ( *p == '-' )
|
||||||
|
{
|
||||||
|
const char* r = ++p;
|
||||||
|
|
||||||
|
|
||||||
|
if ( *r == 'v' )
|
||||||
|
{
|
||||||
|
const char* s = ++r;
|
||||||
|
|
||||||
|
|
||||||
|
ft_component_flag = TRUE;
|
||||||
|
|
||||||
|
if ( *s == 't' )
|
||||||
|
{
|
||||||
|
ft_timestamp_flag = TRUE;
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if ( *r == 't' )
|
||||||
|
{
|
||||||
|
const char* s = ++r;
|
||||||
|
|
||||||
|
|
||||||
|
ft_timestamp_flag = TRUE;
|
||||||
|
|
||||||
|
if ( *s == 'v' )
|
||||||
|
{
|
||||||
|
ft_component_flag = TRUE;
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* FT_DEBUG_LOGGING */
|
||||||
|
|
||||||
/* read toggle name, followed by ':' */
|
/* read toggle name, followed by ':' */
|
||||||
q = p;
|
q = p;
|
||||||
while ( *p && *p != ':' )
|
while ( *p && *p != ':' )
|
||||||
|
@ -323,8 +462,237 @@
|
||||||
/* nothing */
|
/* nothing */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif /* !FT_DEBUG_LEVEL_TRACE */
|
#endif /* !FT_DEBUG_LEVEL_TRACE */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FT_DEBUG_LOGGING
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Initialize and de-initialize 'dlg' library.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
FT_BASE_DEF( void )
|
||||||
|
ft_logging_init( void )
|
||||||
|
{
|
||||||
|
ft_default_log_handler = ft_log_handler;
|
||||||
|
ft_default_trace_level = ft_getenv( "FT2_DEBUG" );
|
||||||
|
|
||||||
|
if ( ft_getenv( "FT_LOGGING_FILE" ) )
|
||||||
|
ft_fileptr = ft_fopen( ft_getenv( "FT_LOGGING_FILE" ), "w" );
|
||||||
|
else
|
||||||
|
ft_fileptr = stderr;
|
||||||
|
|
||||||
|
ft_debug_init();
|
||||||
|
|
||||||
|
/* Set the default output handler for 'dlg'. */
|
||||||
|
dlg_set_handler( ft_default_log_handler, NULL );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FT_BASE_DEF( void )
|
||||||
|
ft_logging_deinit( void )
|
||||||
|
{
|
||||||
|
if ( ft_fileptr != stderr )
|
||||||
|
ft_fclose( ft_fileptr );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* An output log handler for FreeType.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
FT_BASE_DEF( void )
|
||||||
|
ft_log_handler( const struct dlg_origin* origin,
|
||||||
|
const char* string,
|
||||||
|
void* data )
|
||||||
|
{
|
||||||
|
char features_buf[128];
|
||||||
|
char* bufp = features_buf;
|
||||||
|
|
||||||
|
FT_UNUSED( data );
|
||||||
|
|
||||||
|
|
||||||
|
if ( ft_have_newline_char )
|
||||||
|
{
|
||||||
|
const char* features = NULL;
|
||||||
|
size_t features_length = 0;
|
||||||
|
|
||||||
|
|
||||||
|
#define FEATURES_TIMESTAMP "[%h:%m] "
|
||||||
|
#define FEATURES_COMPONENT "[%t] "
|
||||||
|
#define FEATURES_TIMESTAMP_COMPONENT "[%h:%m %t] "
|
||||||
|
|
||||||
|
if ( ft_timestamp_flag && ft_component_flag )
|
||||||
|
{
|
||||||
|
features = FEATURES_TIMESTAMP_COMPONENT;
|
||||||
|
features_length = sizeof ( FEATURES_TIMESTAMP_COMPONENT );
|
||||||
|
}
|
||||||
|
else if ( ft_timestamp_flag )
|
||||||
|
{
|
||||||
|
features = FEATURES_TIMESTAMP;
|
||||||
|
features_length = sizeof ( FEATURES_TIMESTAMP );
|
||||||
|
}
|
||||||
|
else if ( ft_component_flag )
|
||||||
|
{
|
||||||
|
features = FEATURES_COMPONENT;
|
||||||
|
features_length = sizeof ( FEATURES_COMPONENT );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ft_component_flag || ft_timestamp_flag )
|
||||||
|
{
|
||||||
|
ft_strncpy( features_buf, features, features_length );
|
||||||
|
bufp += features_length - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ft_component_flag )
|
||||||
|
{
|
||||||
|
size_t tag_length = ft_strlen( *origin->tags );
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
|
||||||
|
/* To vertically align tracing messages we compensate the */
|
||||||
|
/* different FT_COMPONENT string lengths by inserting an */
|
||||||
|
/* appropriate amount of space characters. */
|
||||||
|
for ( i = 0;
|
||||||
|
i < FT_MAX_TRACE_LEVEL_LENGTH - tag_length;
|
||||||
|
i++ )
|
||||||
|
*bufp++ = ' ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Finally add the format string for the tracing message. */
|
||||||
|
*bufp++ = '%';
|
||||||
|
*bufp++ = 'c';
|
||||||
|
*bufp = '\0';
|
||||||
|
|
||||||
|
dlg_generic_outputf_stream( ft_fileptr,
|
||||||
|
(const char*)features_buf,
|
||||||
|
origin,
|
||||||
|
string,
|
||||||
|
dlg_default_output_styles,
|
||||||
|
true );
|
||||||
|
|
||||||
|
if ( ft_strrchr( string, '\n' ) )
|
||||||
|
ft_have_newline_char = TRUE;
|
||||||
|
else
|
||||||
|
ft_have_newline_char = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* documentation is in ftdebug.h */
|
||||||
|
FT_BASE_DEF( void )
|
||||||
|
ft_add_tag( const char* tag )
|
||||||
|
{
|
||||||
|
ft_component = tag;
|
||||||
|
|
||||||
|
dlg_add_tag( tag, NULL );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* documentation is in ftdebug.h */
|
||||||
|
FT_BASE_DEF( void )
|
||||||
|
ft_remove_tag( const char* tag )
|
||||||
|
{
|
||||||
|
dlg_remove_tag( tag, NULL );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* documentation is in ftlogging.h */
|
||||||
|
|
||||||
|
FT_EXPORT_DEF( void )
|
||||||
|
FT_Trace_Set_Level( const char* level )
|
||||||
|
{
|
||||||
|
ft_component_flag = FALSE;
|
||||||
|
ft_timestamp_flag = FALSE;
|
||||||
|
ft_custom_trace_level = level;
|
||||||
|
|
||||||
|
ft_debug_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* documentation is in ftlogging.h */
|
||||||
|
|
||||||
|
FT_EXPORT_DEF( void )
|
||||||
|
FT_Trace_Set_Default_Level( void )
|
||||||
|
{
|
||||||
|
ft_component_flag = FALSE;
|
||||||
|
ft_timestamp_flag = FALSE;
|
||||||
|
ft_custom_trace_level = NULL;
|
||||||
|
|
||||||
|
ft_debug_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Functions to handle a custom log handler.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* documentation is in ftlogging.h */
|
||||||
|
|
||||||
|
FT_EXPORT_DEF( void )
|
||||||
|
FT_Set_Log_Handler( FT_Custom_Log_Handler handler )
|
||||||
|
{
|
||||||
|
custom_output_handler = handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* documentation is in ftlogging.h */
|
||||||
|
|
||||||
|
FT_EXPORT_DEF( void )
|
||||||
|
FT_Set_Default_Log_Handler( void )
|
||||||
|
{
|
||||||
|
custom_output_handler = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* documentation is in ftdebug.h */
|
||||||
|
FT_BASE_DEF( void )
|
||||||
|
FT_Logging_Callback( const char* fmt,
|
||||||
|
... )
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
|
||||||
|
|
||||||
|
va_start( ap, fmt );
|
||||||
|
custom_output_handler( ft_component, fmt, ap );
|
||||||
|
va_end( ap );
|
||||||
|
}
|
||||||
|
|
||||||
|
#else /* !FT_DEBUG_LOGGING */
|
||||||
|
|
||||||
|
FT_EXPORT_DEF( void )
|
||||||
|
FT_Trace_Set_Level( const char* level )
|
||||||
|
{
|
||||||
|
FT_UNUSED( level );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FT_EXPORT_DEF( void )
|
||||||
|
FT_Trace_Set_Default_Level( void )
|
||||||
|
{
|
||||||
|
/* nothing */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FT_EXPORT_DEF( void )
|
||||||
|
FT_Set_Log_Handler( FT_Custom_Log_Handler handler )
|
||||||
|
{
|
||||||
|
FT_UNUSED( handler );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FT_EXPORT_DEF( void )
|
||||||
|
FT_Set_Default_Log_Handler( void )
|
||||||
|
{
|
||||||
|
/* nothing */
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* !FT_DEBUG_LOGGING */
|
||||||
|
|
||||||
|
|
||||||
/* END */
|
/* END */
|
||||||
|
|
|
@ -0,0 +1,499 @@
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* ftsystem.c
|
||||||
|
*
|
||||||
|
* Windows-specific FreeType low-level system interface (body).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2021-2022 by
|
||||||
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
*
|
||||||
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
* modified, and distributed under the terms of the FreeType project
|
||||||
|
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
|
* this file you indicate that you have read the license and
|
||||||
|
* understand and accept it fully.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <ft2build.h>
|
||||||
|
/* we use our special ftconfig.h file, not the standard one */
|
||||||
|
#include FT_CONFIG_CONFIG_H
|
||||||
|
#include <freetype/internal/ftdebug.h>
|
||||||
|
#include <freetype/ftsystem.h>
|
||||||
|
#include <freetype/fterrors.h>
|
||||||
|
#include <freetype/fttypes.h>
|
||||||
|
#include <freetype/internal/ftstream.h>
|
||||||
|
|
||||||
|
/* memory mapping and allocation includes and definitions */
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* MEMORY MANAGEMENT INTERFACE
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* It is not necessary to do any error checking for the
|
||||||
|
* allocation-related functions. This will be done by the higher level
|
||||||
|
* routines like ft_mem_alloc() or ft_mem_realloc().
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @Function:
|
||||||
|
* ft_alloc
|
||||||
|
*
|
||||||
|
* @Description:
|
||||||
|
* The memory allocation function.
|
||||||
|
*
|
||||||
|
* @Input:
|
||||||
|
* memory ::
|
||||||
|
* A pointer to the memory object.
|
||||||
|
*
|
||||||
|
* size ::
|
||||||
|
* The requested size in bytes.
|
||||||
|
*
|
||||||
|
* @Return:
|
||||||
|
* The address of newly allocated block.
|
||||||
|
*/
|
||||||
|
FT_CALLBACK_DEF( void* )
|
||||||
|
ft_alloc( FT_Memory memory,
|
||||||
|
long size )
|
||||||
|
{
|
||||||
|
return HeapAlloc( memory->user, 0, size );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @Function:
|
||||||
|
* ft_realloc
|
||||||
|
*
|
||||||
|
* @Description:
|
||||||
|
* The memory reallocation function.
|
||||||
|
*
|
||||||
|
* @Input:
|
||||||
|
* memory ::
|
||||||
|
* A pointer to the memory object.
|
||||||
|
*
|
||||||
|
* cur_size ::
|
||||||
|
* The current size of the allocated memory block.
|
||||||
|
*
|
||||||
|
* new_size ::
|
||||||
|
* The newly requested size in bytes.
|
||||||
|
*
|
||||||
|
* block ::
|
||||||
|
* The current address of the block in memory.
|
||||||
|
*
|
||||||
|
* @Return:
|
||||||
|
* The address of the reallocated memory block.
|
||||||
|
*/
|
||||||
|
FT_CALLBACK_DEF( void* )
|
||||||
|
ft_realloc( FT_Memory memory,
|
||||||
|
long cur_size,
|
||||||
|
long new_size,
|
||||||
|
void* block )
|
||||||
|
{
|
||||||
|
FT_UNUSED( cur_size );
|
||||||
|
|
||||||
|
return HeapReAlloc( memory->user, 0, block, new_size );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @Function:
|
||||||
|
* ft_free
|
||||||
|
*
|
||||||
|
* @Description:
|
||||||
|
* The memory release function.
|
||||||
|
*
|
||||||
|
* @Input:
|
||||||
|
* memory ::
|
||||||
|
* A pointer to the memory object.
|
||||||
|
*
|
||||||
|
* block ::
|
||||||
|
* The address of block in memory to be freed.
|
||||||
|
*/
|
||||||
|
FT_CALLBACK_DEF( void )
|
||||||
|
ft_free( FT_Memory memory,
|
||||||
|
void* block )
|
||||||
|
{
|
||||||
|
HeapFree( memory->user, 0, block );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* RESOURCE MANAGEMENT INTERFACE
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* The macro FT_COMPONENT is used in trace mode. It is an implicit
|
||||||
|
* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log
|
||||||
|
* messages during execution.
|
||||||
|
*/
|
||||||
|
#undef FT_COMPONENT
|
||||||
|
#define FT_COMPONENT io
|
||||||
|
|
||||||
|
/* We use the macro STREAM_FILE for convenience to extract the */
|
||||||
|
/* system-specific stream handle from a given FreeType stream object */
|
||||||
|
#define STREAM_FILE( stream ) ( (FILE*)stream->descriptor.pointer )
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @Function:
|
||||||
|
* ft_close_stream_by_munmap
|
||||||
|
*
|
||||||
|
* @Description:
|
||||||
|
* The function to close a stream which is opened by mmap.
|
||||||
|
*
|
||||||
|
* @Input:
|
||||||
|
* stream :: A pointer to the stream object.
|
||||||
|
*/
|
||||||
|
FT_CALLBACK_DEF( void )
|
||||||
|
ft_close_stream_by_munmap( FT_Stream stream )
|
||||||
|
{
|
||||||
|
UnmapViewOfFile( (LPCVOID)stream->descriptor.pointer );
|
||||||
|
|
||||||
|
stream->descriptor.pointer = NULL;
|
||||||
|
stream->size = 0;
|
||||||
|
stream->base = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @Function:
|
||||||
|
* ft_close_stream_by_free
|
||||||
|
*
|
||||||
|
* @Description:
|
||||||
|
* The function to close a stream which is created by ft_alloc.
|
||||||
|
*
|
||||||
|
* @Input:
|
||||||
|
* stream :: A pointer to the stream object.
|
||||||
|
*/
|
||||||
|
FT_CALLBACK_DEF( void )
|
||||||
|
ft_close_stream_by_free( FT_Stream stream )
|
||||||
|
{
|
||||||
|
ft_free( stream->memory, stream->descriptor.pointer );
|
||||||
|
|
||||||
|
stream->descriptor.pointer = NULL;
|
||||||
|
stream->size = 0;
|
||||||
|
stream->base = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* non-desktop Universal Windows Platform */
|
||||||
|
#if defined( WINAPI_FAMILY ) && WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP
|
||||||
|
|
||||||
|
#define PACK_DWORD64( hi, lo ) ( ( (DWORD64)(hi) << 32 ) | (DWORD)(lo) )
|
||||||
|
|
||||||
|
#define CreateFileMapping( a, b, c, d, e, f ) \
|
||||||
|
CreateFileMappingFromApp( a, b, c, PACK_DWORD64( d, e ), f )
|
||||||
|
#define MapViewOfFile( a, b, c, d, e ) \
|
||||||
|
MapViewOfFileFromApp( a, b, PACK_DWORD64( c, d ), e )
|
||||||
|
|
||||||
|
FT_LOCAL_DEF( HANDLE )
|
||||||
|
CreateFileA( LPCSTR lpFileName,
|
||||||
|
DWORD dwDesiredAccess,
|
||||||
|
DWORD dwShareMode,
|
||||||
|
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
|
||||||
|
DWORD dwCreationDisposition,
|
||||||
|
DWORD dwFlagsAndAttributes,
|
||||||
|
HANDLE hTemplateFile )
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
LPWSTR lpFileNameW;
|
||||||
|
|
||||||
|
CREATEFILE2_EXTENDED_PARAMETERS createExParams = {
|
||||||
|
sizeof ( CREATEFILE2_EXTENDED_PARAMETERS ),
|
||||||
|
dwFlagsAndAttributes & 0x0000FFFF,
|
||||||
|
dwFlagsAndAttributes & 0xFFF00000,
|
||||||
|
dwFlagsAndAttributes & 0x000F0000,
|
||||||
|
lpSecurityAttributes,
|
||||||
|
hTemplateFile };
|
||||||
|
|
||||||
|
|
||||||
|
/* allocate memory space for converted path name */
|
||||||
|
len = MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
|
||||||
|
lpFileName, -1, NULL, 0 );
|
||||||
|
|
||||||
|
lpFileNameW = (LPWSTR)_alloca( len * sizeof ( WCHAR ) );
|
||||||
|
|
||||||
|
if ( !len || !lpFileNameW )
|
||||||
|
{
|
||||||
|
FT_ERROR(( "FT_Stream_Open: cannot convert file name to LPWSTR\n" ));
|
||||||
|
return INVALID_HANDLE_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* now it is safe to do the translation */
|
||||||
|
MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
|
||||||
|
lpFileName, -1, lpFileNameW, len );
|
||||||
|
|
||||||
|
/* open the file */
|
||||||
|
return CreateFile2( lpFileNameW, dwDesiredAccess, dwShareMode,
|
||||||
|
dwCreationDisposition, &createExParams );
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined( _WIN32_WCE )
|
||||||
|
|
||||||
|
/* malloc.h provides implementation of alloca()/_alloca() */
|
||||||
|
#include <malloc.h>
|
||||||
|
|
||||||
|
FT_LOCAL_DEF( HANDLE )
|
||||||
|
CreateFileA( LPCSTR lpFileName,
|
||||||
|
DWORD dwDesiredAccess,
|
||||||
|
DWORD dwShareMode,
|
||||||
|
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
|
||||||
|
DWORD dwCreationDisposition,
|
||||||
|
DWORD dwFlagsAndAttributes,
|
||||||
|
HANDLE hTemplateFile )
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
LPWSTR lpFileNameW;
|
||||||
|
|
||||||
|
|
||||||
|
/* allocate memory space for converted path name */
|
||||||
|
len = MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
|
||||||
|
lpFileName, -1, NULL, 0 );
|
||||||
|
|
||||||
|
lpFileNameW = (LPWSTR)_alloca( len * sizeof ( WCHAR ) );
|
||||||
|
|
||||||
|
if ( !len || !lpFileNameW )
|
||||||
|
{
|
||||||
|
FT_ERROR(( "FT_Stream_Open: cannot convert file name to LPWSTR\n" ));
|
||||||
|
return INVALID_HANDLE_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* now it is safe to do the translation */
|
||||||
|
MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
|
||||||
|
lpFileName, -1, lpFileNameW, len );
|
||||||
|
|
||||||
|
/* open the file */
|
||||||
|
return CreateFileW( lpFileNameW, dwDesiredAccess, dwShareMode,
|
||||||
|
lpSecurityAttributes, dwCreationDisposition,
|
||||||
|
dwFlagsAndAttributes, hTemplateFile );
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined( _WIN32_WCE ) || defined ( _WIN32_WINDOWS ) || \
|
||||||
|
!defined( _WIN32_WINNT ) || _WIN32_WINNT <= 0x0400
|
||||||
|
|
||||||
|
FT_LOCAL_DEF( BOOL )
|
||||||
|
GetFileSizeEx( HANDLE hFile,
|
||||||
|
PLARGE_INTEGER lpFileSize )
|
||||||
|
{
|
||||||
|
lpFileSize->u.LowPart = GetFileSize( hFile,
|
||||||
|
(DWORD *)&lpFileSize->u.HighPart );
|
||||||
|
|
||||||
|
if ( lpFileSize->u.LowPart == INVALID_FILE_SIZE &&
|
||||||
|
GetLastError() != NO_ERROR )
|
||||||
|
return FALSE;
|
||||||
|
else
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* documentation is in ftobjs.h */
|
||||||
|
|
||||||
|
FT_BASE_DEF( FT_Error )
|
||||||
|
FT_Stream_Open( FT_Stream stream,
|
||||||
|
const char* filepathname )
|
||||||
|
{
|
||||||
|
HANDLE file;
|
||||||
|
HANDLE fm;
|
||||||
|
LARGE_INTEGER size;
|
||||||
|
|
||||||
|
|
||||||
|
if ( !stream )
|
||||||
|
return FT_THROW( Invalid_Stream_Handle );
|
||||||
|
|
||||||
|
/* open the file */
|
||||||
|
file = CreateFileA( (LPCSTR)filepathname, GENERIC_READ, FILE_SHARE_READ,
|
||||||
|
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );
|
||||||
|
if ( file == INVALID_HANDLE_VALUE )
|
||||||
|
{
|
||||||
|
FT_ERROR(( "FT_Stream_Open:" ));
|
||||||
|
FT_ERROR(( " could not open `%s'\n", filepathname ));
|
||||||
|
return FT_THROW( Cannot_Open_Resource );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( GetFileSizeEx( file, &size ) == FALSE )
|
||||||
|
{
|
||||||
|
FT_ERROR(( "FT_Stream_Open:" ));
|
||||||
|
FT_ERROR(( " could not retrieve size of file `%s'\n", filepathname ));
|
||||||
|
goto Fail_Open;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* `stream->size' is typedef'd to unsigned long (in `ftsystem.h'); */
|
||||||
|
/* So avoid overflow caused by fonts in huge files larger than */
|
||||||
|
/* 2GB, do a test. */
|
||||||
|
if ( size.QuadPart > LONG_MAX )
|
||||||
|
{
|
||||||
|
FT_ERROR(( "FT_Stream_Open: file is too big\n" ));
|
||||||
|
goto Fail_Open;
|
||||||
|
}
|
||||||
|
else if ( size.QuadPart == 0 )
|
||||||
|
{
|
||||||
|
FT_ERROR(( "FT_Stream_Open: zero-length file\n" ));
|
||||||
|
goto Fail_Open;
|
||||||
|
}
|
||||||
|
|
||||||
|
fm = CreateFileMapping( file, NULL, PAGE_READONLY, 0, 0, NULL );
|
||||||
|
if ( fm == NULL )
|
||||||
|
{
|
||||||
|
FT_ERROR(( "FT_Stream_Open: can not map file\n" ));
|
||||||
|
goto Fail_Open;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Store only the low part of this 64 bits integer because long is */
|
||||||
|
/* a 32 bits type. Anyway, a check has been done above to forbid */
|
||||||
|
/* a size greater than LONG_MAX */
|
||||||
|
stream->size = size.LowPart;
|
||||||
|
stream->pos = 0;
|
||||||
|
stream->base = (unsigned char *)
|
||||||
|
MapViewOfFile( fm, FILE_MAP_READ, 0, 0, 0 );
|
||||||
|
|
||||||
|
CloseHandle( fm );
|
||||||
|
|
||||||
|
if ( stream->base != NULL )
|
||||||
|
stream->close = ft_close_stream_by_munmap;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DWORD total_read_count;
|
||||||
|
|
||||||
|
|
||||||
|
FT_ERROR(( "FT_Stream_Open:" ));
|
||||||
|
FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
|
||||||
|
|
||||||
|
stream->base = (unsigned char*)ft_alloc( stream->memory, stream->size );
|
||||||
|
|
||||||
|
if ( !stream->base )
|
||||||
|
{
|
||||||
|
FT_ERROR(( "FT_Stream_Open:" ));
|
||||||
|
FT_ERROR(( " could not `alloc' memory\n" ));
|
||||||
|
goto Fail_Open;
|
||||||
|
}
|
||||||
|
|
||||||
|
total_read_count = 0;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
DWORD read_count;
|
||||||
|
|
||||||
|
|
||||||
|
if ( ReadFile( file,
|
||||||
|
stream->base + total_read_count,
|
||||||
|
stream->size - total_read_count,
|
||||||
|
&read_count, NULL ) == FALSE )
|
||||||
|
{
|
||||||
|
FT_ERROR(( "FT_Stream_Open:" ));
|
||||||
|
FT_ERROR(( " error while `read'ing file `%s'\n", filepathname ));
|
||||||
|
goto Fail_Read;
|
||||||
|
}
|
||||||
|
|
||||||
|
total_read_count += read_count;
|
||||||
|
|
||||||
|
} while ( total_read_count != stream->size );
|
||||||
|
|
||||||
|
stream->close = ft_close_stream_by_free;
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseHandle( file );
|
||||||
|
|
||||||
|
stream->descriptor.pointer = stream->base;
|
||||||
|
stream->pathname.pointer = (char*)filepathname;
|
||||||
|
|
||||||
|
stream->read = NULL;
|
||||||
|
|
||||||
|
FT_TRACE1(( "FT_Stream_Open:" ));
|
||||||
|
FT_TRACE1(( " opened `%s' (%ld bytes) successfully\n",
|
||||||
|
filepathname, stream->size ));
|
||||||
|
|
||||||
|
return FT_Err_Ok;
|
||||||
|
|
||||||
|
Fail_Read:
|
||||||
|
ft_free( stream->memory, stream->base );
|
||||||
|
|
||||||
|
Fail_Open:
|
||||||
|
CloseHandle( file );
|
||||||
|
|
||||||
|
stream->base = NULL;
|
||||||
|
stream->size = 0;
|
||||||
|
stream->pos = 0;
|
||||||
|
|
||||||
|
return FT_THROW( Cannot_Open_Stream );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FT_DEBUG_MEMORY
|
||||||
|
|
||||||
|
extern FT_Int
|
||||||
|
ft_mem_debug_init( FT_Memory memory );
|
||||||
|
|
||||||
|
extern void
|
||||||
|
ft_mem_debug_done( FT_Memory memory );
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* documentation is in ftobjs.h */
|
||||||
|
|
||||||
|
FT_BASE_DEF( FT_Memory )
|
||||||
|
FT_New_Memory( void )
|
||||||
|
{
|
||||||
|
HANDLE heap;
|
||||||
|
FT_Memory memory;
|
||||||
|
|
||||||
|
|
||||||
|
heap = GetProcessHeap();
|
||||||
|
memory = heap ? (FT_Memory)HeapAlloc( heap, 0, sizeof ( *memory ) )
|
||||||
|
: NULL;
|
||||||
|
|
||||||
|
if ( memory )
|
||||||
|
{
|
||||||
|
memory->user = heap;
|
||||||
|
memory->alloc = ft_alloc;
|
||||||
|
memory->realloc = ft_realloc;
|
||||||
|
memory->free = ft_free;
|
||||||
|
#ifdef FT_DEBUG_MEMORY
|
||||||
|
ft_mem_debug_init( memory );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return memory;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* documentation is in ftobjs.h */
|
||||||
|
|
||||||
|
FT_BASE_DEF( void )
|
||||||
|
FT_Done_Memory( FT_Memory memory )
|
||||||
|
{
|
||||||
|
#ifdef FT_DEBUG_MEMORY
|
||||||
|
ft_mem_debug_done( memory );
|
||||||
|
#endif
|
||||||
|
memory->free( memory, memory );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
|
@ -4,34 +4,49 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcxpro
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Win32 = Debug|Win32
|
|
||||||
Debug|x64 = Debug|x64
|
Debug|x64 = Debug|x64
|
||||||
Debug Static|Win32 = Debug Static|Win32
|
Debug|ARM64 = Debug|ARM64
|
||||||
|
Debug|Win32 = Debug|Win32
|
||||||
Debug Static|x64 = Debug Static|x64
|
Debug Static|x64 = Debug Static|x64
|
||||||
Release|Win32 = Release|Win32
|
Debug Static|ARM64 = Debug Static|ARM64
|
||||||
|
Debug Static|Win32 = Debug Static|Win32
|
||||||
Release|x64 = Release|x64
|
Release|x64 = Release|x64
|
||||||
Release Static|Win32 = Release Static|Win32
|
Release|ARM64 = Release|ARM64
|
||||||
|
Release|Win32 = Release|Win32
|
||||||
Release Static|x64 = Release Static|x64
|
Release Static|x64 = Release Static|x64
|
||||||
|
Release Static|ARM64 = Release Static|ARM64
|
||||||
|
Release Static|Win32 = Release Static|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|x64
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.Build.0 = Debug|x64
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.Build.0 = Debug|x64
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|Win32.ActiveCfg = Debug Static|Win32
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|Win32.Build.0 = Debug Static|Win32
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||||
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|x64.ActiveCfg = Debug Static|x64
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|x64.ActiveCfg = Debug Static|x64
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|x64.Build.0 = Debug Static|x64
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|x64.Build.0 = Debug Static|x64
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|ARM64.ActiveCfg = Debug Static|ARM64
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|ARM64.Build.0 = Debug Static|ARM64
|
||||||
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|Win32.ActiveCfg = Debug Static|Win32
|
||||||
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|Win32.Build.0 = Debug Static|Win32
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|x64
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|x64
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.Build.0 = Release|x64
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.Build.0 = Release|x64
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|Win32.ActiveCfg = Release Static|Win32
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|Win32.Build.0 = Release Static|Win32
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|ARM64.Build.0 = Release|ARM64
|
||||||
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|x64.ActiveCfg = Release Static|x64
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|x64.ActiveCfg = Release Static|x64
|
||||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|x64.Build.0 = Release Static|x64
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|x64.Build.0 = Release Static|x64
|
||||||
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|ARM64.ActiveCfg = Release Static|ARM64
|
||||||
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|ARM64.Build.0 = Release Static|ARM64
|
||||||
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|Win32.ActiveCfg = Release Static|Win32
|
||||||
|
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|Win32.Build.0 = Release Static|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {90811697-0889-4381-80BC-C3FE8FA4931F}
|
||||||
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
|
@ -1,10 +1,26 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<!--
|
||||||
|
You can use this file to build FreeType with MSBuild as follows
|
||||||
|
|
||||||
|
MSBuild.exe -t:Rebuild
|
||||||
|
-p:Configuration=Debug
|
||||||
|
-p:Platform=x64
|
||||||
|
-p:UserDefines=FT_DEBUG_LOGGING
|
||||||
|
builds/windows/vc2010/freetype.vcxproj
|
||||||
|
|
||||||
|
or with different appropriate switches. It also works with Visual Studio.
|
||||||
|
Additional customization can be made in `freetype.user.props`.
|
||||||
|
-->
|
||||||
|
<Project DefaultTargets="DlgCopy;Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
|
@ -13,6 +29,10 @@
|
||||||
<Configuration>Debug Static</Configuration>
|
<Configuration>Debug Static</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug Static|ARM64">
|
||||||
|
<Configuration>Debug Static</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug Static|x64">
|
<ProjectConfiguration Include="Debug Static|x64">
|
||||||
<Configuration>Debug Static</Configuration>
|
<Configuration>Debug Static</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
|
@ -21,6 +41,10 @@
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|x64">
|
<ProjectConfiguration Include="Release|x64">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
|
@ -29,6 +53,10 @@
|
||||||
<Configuration>Release Static</Configuration>
|
<Configuration>Release Static</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release Static|ARM64">
|
||||||
|
<Configuration>Release Static</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release Static|x64">
|
<ProjectConfiguration Include="Release Static|x64">
|
||||||
<Configuration>Release Static</Configuration>
|
<Configuration>Release Static</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
|
@ -44,35 +72,51 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
@ -93,7 +137,7 @@
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
<DisableLanguageExtensions>true</DisableLanguageExtensions>
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>Default</CompileAs>
|
<CompileAs>Default</CompileAs>
|
||||||
|
@ -106,11 +150,39 @@
|
||||||
<PreprocessorDefinitions>_DEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<Culture>0x0409</Culture>
|
<Culture>0x0409</Culture>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Lib>
|
<Link>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Lib>
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<DisableSpecificWarnings>4001</DisableSpecificWarnings>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
|
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||||
|
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<Culture>0x0409</Culture>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Link>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<TargetMachine>MachineARM64</TargetMachine>
|
||||||
|
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -119,7 +191,7 @@
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
<DisableLanguageExtensions>true</DisableLanguageExtensions>
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>Default</CompileAs>
|
<CompileAs>Default</CompileAs>
|
||||||
|
@ -132,11 +204,12 @@
|
||||||
<PreprocessorDefinitions>_DEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<Culture>0x0409</Culture>
|
<Culture>0x0409</Culture>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Lib>
|
<Link>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
<TargetMachine>MachineX64</TargetMachine>
|
||||||
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Lib>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -145,7 +218,7 @@
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DisableLanguageExtensions>true</DisableLanguageExtensions>
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>Default</CompileAs>
|
<CompileAs>Default</CompileAs>
|
||||||
|
@ -164,6 +237,32 @@
|
||||||
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Lib>
|
</Lib>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<DisableSpecificWarnings>4001</DisableSpecificWarnings>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
|
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||||
|
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<Culture>0x0409</Culture>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Lib>
|
||||||
|
<TargetMachine>MachineARM64</TargetMachine>
|
||||||
|
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Lib>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
|
@ -171,7 +270,7 @@
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DisableLanguageExtensions>true</DisableLanguageExtensions>
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>Default</CompileAs>
|
<CompileAs>Default</CompileAs>
|
||||||
|
@ -210,12 +309,41 @@
|
||||||
<PreprocessorDefinitions>NDEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<Culture>0x0409</Culture>
|
<Culture>0x0409</Culture>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Lib>
|
<Link>
|
||||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Lib>
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||||
|
<AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<DisableLanguageExtensions>true</DisableLanguageExtensions>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<DisableSpecificWarnings>4001</DisableSpecificWarnings>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
|
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<Culture>0x0409</Culture>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Link>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<TargetMachine>MachineARM64</TargetMachine>
|
||||||
|
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -230,19 +358,19 @@
|
||||||
<CompileAs>Default</CompileAs>
|
<CompileAs>Default</CompileAs>
|
||||||
<DisableSpecificWarnings>4001</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4001</DisableSpecificWarnings>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>NDEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<Culture>0x0409</Culture>
|
<Culture>0x0409</Culture>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Lib>
|
<Link>
|
||||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
<TargetMachine>MachineX64</TargetMachine>
|
||||||
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Lib>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -265,12 +393,37 @@
|
||||||
<Culture>0x0409</Culture>
|
<Culture>0x0409</Culture>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Lib>
|
<Lib>
|
||||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Lib>
|
</Lib>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||||
|
<AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<DisableLanguageExtensions>true</DisableLanguageExtensions>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<DisableSpecificWarnings>4001</DisableSpecificWarnings>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
|
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<Culture>0x0409</Culture>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Lib>
|
||||||
|
<TargetMachine>MachineARM64</TargetMachine>
|
||||||
|
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Lib>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
@ -284,7 +437,6 @@
|
||||||
<CompileAs>Default</CompileAs>
|
<CompileAs>Default</CompileAs>
|
||||||
<DisableSpecificWarnings>4001</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4001</DisableSpecificWarnings>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
|
@ -292,7 +444,6 @@
|
||||||
<Culture>0x0409</Culture>
|
<Culture>0x0409</Culture>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Lib>
|
<Lib>
|
||||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
<TargetMachine>MachineX64</TargetMachine>
|
||||||
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
@ -316,13 +467,13 @@
|
||||||
<ClCompile Include="..\..\..\src\base\ftpfr.c" />
|
<ClCompile Include="..\..\..\src\base\ftpfr.c" />
|
||||||
<ClCompile Include="..\..\..\src\base\ftstroke.c" />
|
<ClCompile Include="..\..\..\src\base\ftstroke.c" />
|
||||||
<ClCompile Include="..\..\..\src\base\ftsynth.c" />
|
<ClCompile Include="..\..\..\src\base\ftsynth.c" />
|
||||||
<ClCompile Include="..\..\..\src\base\ftsystem.c" />
|
|
||||||
<ClCompile Include="..\..\..\src\base\fttype1.c" />
|
<ClCompile Include="..\..\..\src\base\fttype1.c" />
|
||||||
<ClCompile Include="..\..\..\src\base\ftwinfnt.c" />
|
<ClCompile Include="..\..\..\src\base\ftwinfnt.c" />
|
||||||
<ClCompile Include="..\..\..\src\bdf\bdf.c" />
|
<ClCompile Include="..\..\..\src\bdf\bdf.c" />
|
||||||
<ClCompile Include="..\..\..\src\cache\ftcache.c" />
|
<ClCompile Include="..\..\..\src\cache\ftcache.c" />
|
||||||
<ClCompile Include="..\..\..\src\cff\cff.c" />
|
<ClCompile Include="..\..\..\src\cff\cff.c" />
|
||||||
<ClCompile Include="..\..\..\src\cid\type1cid.c" />
|
<ClCompile Include="..\..\..\src\cid\type1cid.c" />
|
||||||
|
<ClCompile Include="..\..\..\src\dlg\dlgwrap.c" />
|
||||||
<ClCompile Include="..\..\..\src\gzip\ftgzip.c" />
|
<ClCompile Include="..\..\..\src\gzip\ftgzip.c" />
|
||||||
<ClCompile Include="..\..\..\src\lzw\ftlzw.c" />
|
<ClCompile Include="..\..\..\src\lzw\ftlzw.c" />
|
||||||
<ClCompile Include="..\..\..\src\pcf\pcf.c" />
|
<ClCompile Include="..\..\..\src\pcf\pcf.c" />
|
||||||
|
@ -333,6 +484,8 @@
|
||||||
<ClCompile Include="..\..\..\src\raster\raster.c" />
|
<ClCompile Include="..\..\..\src\raster\raster.c" />
|
||||||
<ClCompile Include="..\..\..\src\sfnt\sfnt.c" />
|
<ClCompile Include="..\..\..\src\sfnt\sfnt.c" />
|
||||||
<ClCompile Include="..\..\..\src\smooth\smooth.c" />
|
<ClCompile Include="..\..\..\src\smooth\smooth.c" />
|
||||||
|
<ClCompile Include="..\..\..\src\sdf\sdf.c" />
|
||||||
|
<ClCompile Include="..\..\..\src\svg\svg.c" />
|
||||||
<ClCompile Include="..\..\..\src\truetype\truetype.c" />
|
<ClCompile Include="..\..\..\src\truetype\truetype.c" />
|
||||||
<ClCompile Include="..\..\..\src\type1\type1.c" />
|
<ClCompile Include="..\..\..\src\type1\type1.c" />
|
||||||
<ClCompile Include="..\..\..\src\type42\type42.c" />
|
<ClCompile Include="..\..\..\src\type42\type42.c" />
|
||||||
|
@ -340,12 +493,33 @@
|
||||||
<ClCompile Include="..\ftdebug.c">
|
<ClCompile Include="..\ftdebug.c">
|
||||||
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\ftsystem.c">
|
||||||
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||||
|
</ClCompile>
|
||||||
<ResourceCompile Include="..\..\..\src\base\ftver.rc" />
|
<ResourceCompile Include="..\..\..\src\base\ftver.rc" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
|
<ItemGroup Condition="Exists('..\..\..\subprojects\dlg\.git')">
|
||||||
|
<DlgSrc Include="..\..\..\subprojects\dlg\include\dlg\output.h">
|
||||||
|
<DlgDst>..\..\..\include\dlg\output.h</DlgDst>
|
||||||
|
</DlgSrc>
|
||||||
|
<DlgSrc Include="..\..\..\subprojects\dlg\include\dlg\dlg.h">
|
||||||
|
<DlgDst>..\..\..\include\dlg\dlg.h</DlgDst>
|
||||||
|
</DlgSrc>
|
||||||
|
<DlgSrc Include="..\..\..\subprojects\dlg\src\dlg\dlg.c">
|
||||||
|
<DlgDst>..\..\..\src\dlg\dlg.c</DlgDst>
|
||||||
|
</DlgSrc>
|
||||||
|
</ItemGroup>
|
||||||
|
<Target Name="DlgCopy" Inputs="@(DlgSrc)" Outputs="@(DlgSrc->'%(DlgDst)')" Condition="Exists('..\..\..\subprojects\dlg\.git')">
|
||||||
|
<Copy SourceFiles="@(DlgSrc)" DestinationFiles="@(DlgSrc->'%(DlgDst)')" />
|
||||||
|
</Target>
|
||||||
<Target Name="AfterBuild">
|
<Target Name="AfterBuild">
|
||||||
<Copy SourceFiles="$(TargetPath)" DestinationFolder="..\..\..\objs" />
|
<ItemGroup>
|
||||||
|
<TargetFiles Include="$(TargetDir)$(TargetName).*" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Copy SourceFiles="@(TargetFiles)" DestinationFolder="..\..\..\objs" />
|
||||||
|
<Copy SourceFiles="$(TargetDir)$(TargetFileName)" DestinationFolder="..\..\..\..\freetype-demos\bin" Condition="'$(TargetExt)'=='.dll'" />
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -23,9 +23,6 @@
|
||||||
<ClCompile Include="..\..\..\src\base\ftinit.c">
|
<ClCompile Include="..\..\..\src\base\ftinit.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\src\base\ftsystem.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\..\src\bdf\bdf.c">
|
<ClCompile Include="..\..\..\src\bdf\bdf.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -65,9 +62,15 @@
|
||||||
<ClCompile Include="..\..\..\src\sfnt\sfnt.c">
|
<ClCompile Include="..\..\..\src\sfnt\sfnt.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\src\sdf\sdf.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\src\smooth\smooth.c">
|
<ClCompile Include="..\..\..\src\smooth\smooth.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\src\svg\svg.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\src\truetype\truetype.c">
|
<ClCompile Include="..\..\..\src\truetype\truetype.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -131,10 +134,16 @@
|
||||||
<ClCompile Include="..\..\..\src\base\ftwinfnt.c">
|
<ClCompile Include="..\..\..\src\base\ftwinfnt.c">
|
||||||
<Filter>Source Files\FT_MODULES</Filter>
|
<Filter>Source Files\FT_MODULES</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\src\dlg\dlgwrap.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\ftsystem.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="..\..\..\src\base\ftver.rc">
|
<ResourceCompile Include="..\..\..\src\base\ftver.rc">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<p>This directory contains solution and project files for
|
<p>This directory contains solution and project files for
|
||||||
Visual C++ 2010 or newer, named <tt>freetype.sln</tt>,
|
Visual C++ 2010 or newer, named <tt>freetype.sln</tt>,
|
||||||
and <tt>freetype.vcxproj</tt>. It compiles the following libraries
|
and <tt>freetype.vcxproj</tt>. It compiles the following libraries
|
||||||
from the FreeType 2.10.2 sources:</p>
|
from the FreeType 2.12.1 sources:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>freetype.dll using 'Release' or 'Debug' configurations</li>
|
<li>freetype.dll using 'Release' or 'Debug' configurations</li>
|
||||||
|
|
|
@ -58,7 +58,7 @@ BSC32=bscmake.exe
|
||||||
# ADD BSC32 /nologo
|
# ADD BSC32 /nologo
|
||||||
LINK32=link.exe
|
LINK32=link.exe
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
|
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
|
||||||
# ADD LINK32 /nologo /dll /machine:I386 /out:"$(OutDir)\freetype.dll"
|
# ADD LINK32 /nologo /dll /machine:I386 /opt:REF,ICF /out:"$(OutDir)\freetype.dll"
|
||||||
|
|
||||||
!ELSEIF "$(CFG)" == "freetype - Win32 Debug"
|
!ELSEIF "$(CFG)" == "freetype - Win32 Debug"
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
CharacterSet="1"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
|
@ -45,6 +45,7 @@
|
||||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;DLL_EXPORT"
|
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;DLL_EXPORT"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
|
EnableEnhancedInstructionSet="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
DisableLanguageExtensions="true"
|
DisableLanguageExtensions="true"
|
||||||
WarningLevel="4"
|
WarningLevel="4"
|
||||||
|
@ -65,6 +66,8 @@
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
|
OptimizeReferences="2"
|
||||||
|
EnableCOMDATFolding="2"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
|
@ -95,7 +98,7 @@
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
CharacterSet="1"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
|
@ -121,6 +124,7 @@
|
||||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY"
|
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
|
EnableEnhancedInstructionSet="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
DisableLanguageExtensions="true"
|
DisableLanguageExtensions="true"
|
||||||
WarningLevel="4"
|
WarningLevel="4"
|
||||||
|
@ -165,7 +169,7 @@
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
CharacterSet="1"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
|
@ -238,7 +242,7 @@
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
CharacterSet="1"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
|
@ -395,13 +399,53 @@
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\src\base\ftsystem.c"
|
RelativePath="..\ftsystem.c"
|
||||||
|
>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Release|Win32"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
DisableLanguageExtensions="false"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Release Static|Win32"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
DisableLanguageExtensions="false"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Debug|Win32"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
DisableLanguageExtensions="false"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Debug Static|Win32"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
DisableLanguageExtensions="false"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\..\src\sdf\sdf.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\src\smooth\smooth.c"
|
RelativePath="..\..\..\src\smooth\smooth.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\..\src\svg\svg.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<Filter
|
<Filter
|
||||||
Name="FT_MODULES"
|
Name="FT_MODULES"
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<p>This directory contains project files <tt>freetype.dsp</tt> for
|
<p>This directory contains project files <tt>freetype.dsp</tt> for
|
||||||
Visual C++ 6.0, and <tt>freetype.vcproj</tt> for Visual C++ 2002
|
Visual C++ 6.0, and <tt>freetype.vcproj</tt> for Visual C++ 2002
|
||||||
through 2008, which you might need to upgrade automatically.
|
through 2008, which you might need to upgrade automatically.
|
||||||
It compiles the following libraries from the FreeType 2.10.2 sources:</p>
|
It compiles the following libraries from the FreeType 2.12.1 sources:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>freetype.dll using 'Release' or 'Debug' configurations</li>
|
<li>freetype.dll using 'Release' or 'Debug' configurations</li>
|
||||||
|
|
|
@ -21,7 +21,7 @@ the following targets:
|
||||||
<li>PPC/SP WM6 (Windows Mobile 6)</li>
|
<li>PPC/SP WM6 (Windows Mobile 6)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
It compiles the following libraries from the FreeType 2.10.2 sources:</p>
|
It compiles the following libraries from the FreeType 2.12.1 sources:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<pre>
|
<pre>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 by
|
# Copyright (C) 1996-2022 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue