mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-06 19:38:14 +00:00
Compare commits
608 Commits
release-2.
...
SDL2
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f0e7000f92 | ||
![]() |
d2ab01b8bb | ||
![]() |
f5246d0181 | ||
![]() |
b8c802632b | ||
![]() |
1725d6b049 | ||
![]() |
5ed21d1ccb | ||
![]() |
7a34e14c8e | ||
![]() |
1a8e667f3d | ||
![]() |
d31d98d436 | ||
![]() |
56d43ee296 | ||
![]() |
1f21aae242 | ||
![]() |
5e85a29e75 | ||
![]() |
f201b64ffe | ||
![]() |
4f9723ece7 | ||
![]() |
53dbe1862e | ||
![]() |
e7489a0931 | ||
![]() |
4b2aa3f102 | ||
![]() |
272b073323 | ||
![]() |
d310b5679f | ||
![]() |
afc1d9122b | ||
![]() |
af2279b286 | ||
![]() |
059af5265a | ||
![]() |
e610529e84 | ||
![]() |
74df61530f | ||
![]() |
3c36718348 | ||
![]() |
b36252b120 | ||
![]() |
ead4a032d3 | ||
![]() |
cf1eb95fb1 | ||
![]() |
34691de22b | ||
![]() |
874ca5a678 | ||
![]() |
8d5984464e | ||
![]() |
2a6baf50e9 | ||
![]() |
6c9c2a9ac2 | ||
![]() |
8605624158 | ||
![]() |
b537380065 | ||
![]() |
b2c3e6fade | ||
![]() |
309d1481a4 | ||
![]() |
2fb6abb9ad | ||
![]() |
cd0cf8b855 | ||
![]() |
2bc3ec44b1 | ||
![]() |
e4475d1868 | ||
![]() |
6a71328638 | ||
![]() |
6701f938f7 | ||
![]() |
1c09a7117a | ||
![]() |
9eb50a906a | ||
![]() |
027d46f03a | ||
![]() |
3416296366 | ||
![]() |
01c3ccd541 | ||
![]() |
3c08172d06 | ||
![]() |
d0c2d8bc40 | ||
![]() |
33eb167da8 | ||
![]() |
4b4f6b3e22 | ||
![]() |
2163887f29 | ||
![]() |
c0f78dee5e | ||
![]() |
17e6208c1b | ||
![]() |
157f894d5d | ||
![]() |
a220e7c422 | ||
![]() |
2442c85cb8 | ||
![]() |
5b951141d2 | ||
![]() |
15fd3fcdc2 | ||
![]() |
45b01d16b1 | ||
![]() |
433810c58d | ||
![]() |
916ddb1ef8 | ||
![]() |
1c75cb4f8a | ||
![]() |
26e946ef08 | ||
![]() |
035518d065 | ||
![]() |
40b1eac541 | ||
![]() |
bfab0a968f | ||
![]() |
f0a8e09f7c | ||
![]() |
2e4c12cd2c | ||
![]() |
3e47181800 | ||
![]() |
8436ce98b4 | ||
![]() |
a8f0eb4c33 | ||
![]() |
069eb012aa | ||
![]() |
7d8a6f1603 | ||
![]() |
d63b3376a4 | ||
![]() |
52146cf067 | ||
![]() |
46a51b4298 | ||
![]() |
4f488b9be2 | ||
![]() |
f48a96a976 | ||
![]() |
39bb71c442 | ||
![]() |
177fb9cb6c | ||
![]() |
fc536dcb7e | ||
![]() |
1caae3e9e4 | ||
![]() |
22a87a22ca | ||
![]() |
6be87ceb33 | ||
![]() |
ab44451578 | ||
![]() |
52ac07d327 | ||
![]() |
0809be4ec5 | ||
![]() |
24693ac285 | ||
![]() |
92cadaf917 | ||
![]() |
d2eb72fd14 | ||
![]() |
b4d733619a | ||
![]() |
ed2c004c8a | ||
![]() |
6421f12d7f | ||
![]() |
ee49025f80 | ||
![]() |
5925c27efb | ||
![]() |
aa00738a21 | ||
![]() |
5330041ea9 | ||
![]() |
7a44b1ab00 | ||
![]() |
3e97d41da4 | ||
![]() |
dab0205174 | ||
![]() |
d2693d4c7d | ||
![]() |
ed7e7edb70 | ||
![]() |
466cedc0da | ||
![]() |
b84adb3720 | ||
![]() |
2847273885 | ||
![]() |
799ede831e | ||
![]() |
482d964733 | ||
![]() |
da0cf3f634 | ||
![]() |
55a75875f0 | ||
![]() |
934d6954e2 | ||
![]() |
0efe8892d6 | ||
![]() |
d3a4d62fc2 | ||
![]() |
3f02118264 | ||
![]() |
5bf8955b25 | ||
![]() |
529ed102fc | ||
![]() |
4b19f7e012 | ||
![]() |
878ea48b60 | ||
![]() |
ab8bd0ef86 | ||
![]() |
9f25821ffd | ||
![]() |
780ec8fac0 | ||
![]() |
220a23dad2 | ||
![]() |
d7825af4de | ||
![]() |
91b76f5c29 | ||
![]() |
aa9b4ec894 | ||
![]() |
0efeb82a28 | ||
![]() |
e5a3fcd071 | ||
![]() |
ebe561f916 | ||
![]() |
f804293a27 | ||
![]() |
793103ef52 | ||
![]() |
db2997548c | ||
![]() |
fe5468799b | ||
![]() |
c9c991b559 | ||
![]() |
20574c016a | ||
![]() |
1fa217434b | ||
![]() |
9dc8c82082 | ||
![]() |
6024c2731f | ||
![]() |
d58f026827 | ||
![]() |
ed0eb7714a | ||
![]() |
123b967a99 | ||
![]() |
840638404a | ||
![]() |
adb51845af | ||
![]() |
5a25183b39 | ||
![]() |
a326ebce61 | ||
![]() |
2b5b8fdbd5 | ||
![]() |
0efb7c7829 | ||
![]() |
89977d0d16 | ||
![]() |
fc608ffb5f | ||
![]() |
5ac94b519c | ||
![]() |
e02f651c05 | ||
![]() |
96b4535cc7 | ||
![]() |
e55a23050e | ||
![]() |
c6e1806ba9 | ||
![]() |
ddfdb0ca7b | ||
![]() |
348bb53cc1 | ||
![]() |
e79b0ce2e4 | ||
![]() |
884c8b684a | ||
![]() |
9491389baf | ||
![]() |
974098464f | ||
![]() |
7f880c9121 | ||
![]() |
ad93f50ee6 | ||
![]() |
bc88a43d97 | ||
![]() |
9791069d78 | ||
![]() |
3c142abcb2 | ||
![]() |
d890d2594a | ||
![]() |
af94954161 | ||
![]() |
c46bec009b | ||
![]() |
91bb1bb6fd | ||
![]() |
e539135104 | ||
![]() |
8d00ca02f1 | ||
![]() |
a4ec0b1531 | ||
![]() |
6428cee892 | ||
![]() |
b64540dd66 | ||
![]() |
a5da9be5e6 | ||
![]() |
9f07ac8bba | ||
![]() |
ba433e4a5d | ||
![]() |
dface78331 | ||
![]() |
f39c5cf989 | ||
![]() |
f9c50e1bf7 | ||
![]() |
e924f12a7b | ||
![]() |
c672c0e80f | ||
![]() |
51570d9257 | ||
![]() |
d1af211010 | ||
![]() |
6dcf75710c | ||
![]() |
17b9ed7d82 | ||
![]() |
f1a3a18c1e | ||
![]() |
b308172862 | ||
![]() |
761ea32b74 | ||
![]() |
74ff82f4a2 | ||
![]() |
67b537cef4 | ||
![]() |
48aa1cccf7 | ||
![]() |
15bc3f25ee | ||
![]() |
7cbb131c75 | ||
![]() |
3b7a45853c | ||
![]() |
d2b9ecd281 | ||
![]() |
478dff3585 | ||
![]() |
5b0e838a74 | ||
![]() |
96e7306a7a | ||
![]() |
a22baafcf4 | ||
![]() |
e5348c611d | ||
![]() |
5cb87ff99f | ||
![]() |
00f15dd215 | ||
![]() |
52714d5063 | ||
![]() |
bcf1397e33 | ||
![]() |
1af0b39833 | ||
![]() |
4ca7a19348 | ||
![]() |
86fd4ed83c | ||
![]() |
b6fa4dc794 | ||
![]() |
cfb3db01dc | ||
![]() |
a976f7f71b | ||
![]() |
378234437f | ||
![]() |
23d456e146 | ||
![]() |
d7bb56f163 | ||
![]() |
084dbb6410 | ||
![]() |
90f792f83c | ||
![]() |
e2f27362cb | ||
![]() |
da4608ed03 | ||
![]() |
5fe010270a | ||
![]() |
3deb07ea39 | ||
![]() |
da19244f7f | ||
![]() |
bb33eb409e | ||
![]() |
a86f8dedb9 | ||
![]() |
ea77d1d385 | ||
![]() |
e4126d8d6f | ||
![]() |
2c60d95ee2 | ||
![]() |
ef05f66c08 | ||
![]() |
9f7ccbe8d4 | ||
![]() |
643437f5b0 | ||
![]() |
2b2907db18 | ||
![]() |
8291b1be36 | ||
![]() |
1edaad1721 | ||
![]() |
c9f3cbe02f | ||
![]() |
656b599828 | ||
![]() |
7eb85b07e0 | ||
![]() |
dab4f856c1 | ||
![]() |
a4a8a29075 | ||
![]() |
c43b976e5b | ||
![]() |
055ce096f5 | ||
![]() |
ec9a9fee58 | ||
![]() |
e239295491 | ||
![]() |
46ee6a3848 | ||
![]() |
d6b7be8abd | ||
![]() |
1b26b54402 | ||
![]() |
bc9d12e560 | ||
![]() |
d9b4b7d0e0 | ||
![]() |
58f2586b44 | ||
![]() |
ea820edc62 | ||
![]() |
8fa99993af | ||
![]() |
54757c29dd | ||
![]() |
f5ed158d1f | ||
![]() |
5aadfd4eaf | ||
![]() |
224a37faab | ||
![]() |
a75227aaeb | ||
![]() |
37d3eea939 | ||
![]() |
2834d8b3b7 | ||
![]() |
10b4a79379 | ||
![]() |
57f1ea71ab | ||
![]() |
2ae8b4c651 | ||
![]() |
47a525610c | ||
![]() |
510eda22f1 | ||
![]() |
877c19da41 | ||
![]() |
622b511613 | ||
![]() |
564765d22b | ||
![]() |
1260ada519 | ||
![]() |
4eac44bed4 | ||
![]() |
1b8d5631ef | ||
![]() |
0de601dc64 | ||
![]() |
a3546e5069 | ||
![]() |
4bd07ea9a4 | ||
![]() |
e52e68d160 | ||
![]() |
30972d7e7f | ||
![]() |
2824d138b9 | ||
![]() |
8fcbf972c6 | ||
![]() |
5b57573439 | ||
![]() |
b360214950 | ||
![]() |
dd6c663918 | ||
![]() |
764c44db02 | ||
![]() |
52090046fe | ||
![]() |
3d7007fb2d | ||
![]() |
248cb3ca9c | ||
![]() |
354a35c1d7 | ||
![]() |
70890b175e | ||
![]() |
586a2dc721 | ||
![]() |
155c3bb0a3 | ||
![]() |
5ecbc00f36 | ||
![]() |
a5bff78d81 | ||
![]() |
5ca0639a42 | ||
![]() |
81252eb06d | ||
![]() |
1512013320 | ||
![]() |
8f5d3ca57d | ||
![]() |
2efbe7fa3f | ||
![]() |
5c013a4f0d | ||
![]() |
7cf3234efe | ||
![]() |
230f1debd0 | ||
![]() |
0b6eff4167 | ||
![]() |
7fdf794377 | ||
![]() |
15c73f5bfe | ||
![]() |
eee439debe | ||
![]() |
0ba3d9862d | ||
![]() |
e306cbcbee | ||
![]() |
2cb2897e50 | ||
![]() |
5d1ca1c8c7 | ||
![]() |
50a6a39dd6 | ||
![]() |
73066492f6 | ||
![]() |
86b4d035db | ||
![]() |
5d606eaae2 | ||
![]() |
6e931bee01 | ||
![]() |
fd32342ced | ||
![]() |
ab4370c247 | ||
![]() |
7fb8b62a4d | ||
![]() |
11c0dfbdfe | ||
![]() |
5ab1151508 | ||
![]() |
9e6b8d56e3 | ||
![]() |
ccade50587 | ||
![]() |
3f9591babe | ||
![]() |
256269afb3 | ||
![]() |
2eeb39298e | ||
![]() |
3b7eafedb3 | ||
![]() |
bc39952b23 | ||
![]() |
a25f94c9a8 | ||
![]() |
bba51871a8 | ||
![]() |
b057159db7 | ||
![]() |
b378bc5c83 | ||
![]() |
b13dcf24d6 | ||
![]() |
551164812a | ||
![]() |
956a8bf6c0 | ||
![]() |
663411ff77 | ||
![]() |
a2215ff81c | ||
![]() |
b80f6ec05c | ||
![]() |
3899cb1696 | ||
![]() |
026dfc6305 | ||
![]() |
e22c89536a | ||
![]() |
849c905d8c | ||
![]() |
58e179c8b5 | ||
![]() |
4c44450258 | ||
![]() |
6a10309568 | ||
![]() |
22770e6496 | ||
![]() |
a4cbba1276 | ||
![]() |
b47deb58a2 | ||
![]() |
2c32fd254c | ||
![]() |
5f0f337d33 | ||
![]() |
1413d67748 | ||
![]() |
944dc4701c | ||
![]() |
845ebbbe96 | ||
![]() |
cd8ea5e3f1 | ||
![]() |
288aea3b40 | ||
![]() |
0d9e54237c | ||
![]() |
a3f0c373d3 | ||
![]() |
a0ec7c0906 | ||
![]() |
98ec8b88c1 | ||
![]() |
3bf2b90da0 | ||
![]() |
14183f8eca | ||
![]() |
d96f1d5360 | ||
![]() |
3e4bb5acd0 | ||
![]() |
498cbffd89 | ||
![]() |
b23343b7cd | ||
![]() |
ee3b2b7de1 | ||
![]() |
88bbab275f | ||
![]() |
ecde0ca6b6 | ||
![]() |
64d4baccb5 | ||
![]() |
10c14e78b6 | ||
![]() |
4d82ceae0c | ||
![]() |
20f1061cc8 | ||
![]() |
3b88d4f46f | ||
![]() |
6589287ed6 | ||
![]() |
8ae7841d91 | ||
![]() |
99d7b9e626 | ||
![]() |
b9f005505b | ||
![]() |
ab5740bde2 | ||
![]() |
6a2dd96ac7 | ||
![]() |
b444e656cd | ||
![]() |
c1d10c36e7 | ||
![]() |
194d72bb29 | ||
![]() |
4800edfa0c | ||
![]() |
5a26b26880 | ||
![]() |
a6fdd155fb | ||
![]() |
77285b6c3f | ||
![]() |
744eb00b04 | ||
![]() |
177dfddaf7 | ||
![]() |
510f413bb8 | ||
![]() |
a9da8dd22d | ||
![]() |
a4d240d295 | ||
![]() |
9422c57201 | ||
![]() |
ac253956b9 | ||
![]() |
948b926d47 | ||
![]() |
143d5d779c | ||
![]() |
169f77ed5e | ||
![]() |
6b9bf71133 | ||
![]() |
f1b19aa744 | ||
![]() |
ce6d3c5cc1 | ||
![]() |
b2b2369414 | ||
![]() |
477c718744 | ||
![]() |
1c3090a1ac | ||
![]() |
7fce9f3fd0 | ||
![]() |
2e8bd8f1f3 | ||
![]() |
22c14442e2 | ||
![]() |
0f9191a643 | ||
![]() |
fc6bbde525 | ||
![]() |
f520062ad1 | ||
![]() |
e2f597de84 | ||
![]() |
70faef84aa | ||
![]() |
997ef88605 | ||
![]() |
f725ce492c | ||
![]() |
e1bb00cdc9 | ||
![]() |
6da5242535 | ||
![]() |
018f2791c7 | ||
![]() |
2cb1a2d0a7 | ||
![]() |
295266c708 | ||
![]() |
1803e6555f | ||
![]() |
863670c0a8 | ||
![]() |
35d719ef25 | ||
![]() |
1568501dd6 | ||
![]() |
d5e5d4a802 | ||
![]() |
51ba036e64 | ||
![]() |
5e876db89f | ||
![]() |
0439fc6007 | ||
![]() |
6825a4aabb | ||
![]() |
8bc47dc3f1 | ||
![]() |
b3081bbbd2 | ||
![]() |
65d8c07c7d | ||
![]() |
6c29778826 | ||
![]() |
6c10201e58 | ||
![]() |
c79e616806 | ||
![]() |
54c435409b | ||
![]() |
964e0c9b47 | ||
![]() |
01314ff1d4 | ||
![]() |
f88e8da176 | ||
![]() |
0466c45605 | ||
![]() |
a26d2e705d | ||
![]() |
fdf28471c0 | ||
![]() |
e4fc07cad0 | ||
![]() |
c419c4ce99 | ||
![]() |
a25a5a243c | ||
![]() |
3794e3dc90 | ||
![]() |
62f35ab1b6 | ||
![]() |
67bea86b10 | ||
![]() |
1c3a1e1139 | ||
![]() |
96e3799495 | ||
![]() |
1f54ee1da6 | ||
![]() |
0c7a83ecd5 | ||
![]() |
0805990668 | ||
![]() |
efaa58732a | ||
![]() |
b6899f82fb | ||
![]() |
312a8a19d7 | ||
![]() |
b8b1ebf57b | ||
![]() |
62175552e9 | ||
![]() |
f23cc950f5 | ||
![]() |
ed0eb7ee06 | ||
![]() |
7d0ea2a881 | ||
![]() |
dd48b6f8cf | ||
![]() |
17ad4fdf4b | ||
![]() |
1b7c2c9e41 | ||
![]() |
7d60ff9965 | ||
![]() |
d499b25a3f | ||
![]() |
06f437e1b6 | ||
![]() |
8c92af5e54 | ||
![]() |
d8fbeec096 | ||
![]() |
8b4e389ad0 | ||
![]() |
63ea838db6 | ||
![]() |
78391e6530 | ||
![]() |
9ecdcd8bb6 | ||
![]() |
8f6a5c9ad2 | ||
![]() |
59937e0fd5 | ||
![]() |
2f54d8a458 | ||
![]() |
1caa427035 | ||
![]() |
7554e82ec3 | ||
![]() |
75340b827d | ||
![]() |
67c60e0b9c | ||
![]() |
45b804c158 | ||
![]() |
0963c11af8 | ||
![]() |
863d4a0f2a | ||
![]() |
59cc43ccbb | ||
![]() |
33af02ae68 | ||
![]() |
ab10bf54f2 | ||
![]() |
26e3d65ea8 | ||
![]() |
e03ad30a57 | ||
![]() |
a96196c958 | ||
![]() |
623a83f2b5 | ||
![]() |
e69d0e516b | ||
![]() |
8f18e2f52d | ||
![]() |
4e29be814e | ||
![]() |
effc16954f | ||
![]() |
59a0416819 | ||
![]() |
154ec5c57a | ||
![]() |
4df852cbbf | ||
![]() |
6c6b497f89 | ||
![]() |
596096a86a | ||
![]() |
4c3b8b2b93 | ||
![]() |
e75d72670f | ||
![]() |
9216b7a5ee | ||
![]() |
1fa6142903 | ||
![]() |
906ad64d7b | ||
![]() |
f1690e265e | ||
![]() |
02246aaeb9 | ||
![]() |
4d91f0e796 | ||
![]() |
0d8ce4a761 | ||
![]() |
5fff9bc1e3 | ||
![]() |
358a80a473 | ||
![]() |
eb185e8d88 | ||
![]() |
cbc9bd9804 | ||
![]() |
5d80179954 | ||
![]() |
6e1611cc77 | ||
![]() |
6ba3e56538 | ||
![]() |
7b6695f4d4 | ||
![]() |
37c664a13d | ||
![]() |
763d768f7d | ||
![]() |
82b449611a | ||
![]() |
fa18c9bf4a | ||
![]() |
5df737bb3c | ||
![]() |
a9ac349846 | ||
![]() |
4a79fe44ff | ||
![]() |
43f0ae1e54 | ||
![]() |
c17d2246fb | ||
![]() |
86f223d664 | ||
![]() |
2d6c100058 | ||
![]() |
07f04bb35e | ||
![]() |
24aedc1439 | ||
![]() |
b8daf14fe5 | ||
![]() |
525c317ed9 | ||
![]() |
59d4a39456 | ||
![]() |
88bdc028ec | ||
![]() |
d3c89bb479 | ||
![]() |
e54774faca | ||
![]() |
3184936950 | ||
![]() |
66054a6515 | ||
![]() |
cd197be53b | ||
![]() |
528b71284f | ||
![]() |
26054d9934 | ||
![]() |
da9bfc43e7 | ||
![]() |
177a836653 | ||
![]() |
bdc7ad8f56 | ||
![]() |
75c5cff0bf | ||
![]() |
a842bc29fa | ||
![]() |
d35dee76c7 | ||
![]() |
9e1e0fb92f | ||
![]() |
627e15871a | ||
![]() |
b87116ff03 | ||
![]() |
05f6709617 | ||
![]() |
9eaf7d8cc8 | ||
![]() |
9a65d123a7 | ||
![]() |
fdbf233cfb | ||
![]() |
54faea8b89 | ||
![]() |
69fb802a90 | ||
![]() |
4316c5ec02 | ||
![]() |
903d888cc3 | ||
![]() |
f24216c2ba | ||
![]() |
df00a7dd4c | ||
![]() |
827917ea60 | ||
![]() |
271df2fdd8 | ||
![]() |
aa6c390bbd | ||
![]() |
67827c0b00 | ||
![]() |
e2535ba547 | ||
![]() |
6c0e3532fa | ||
![]() |
bc30fb295d | ||
![]() |
d0731ab9a3 | ||
![]() |
699cec1a8d | ||
![]() |
120b8d4189 | ||
![]() |
6669d04ea6 | ||
![]() |
971c5c2610 | ||
![]() |
de0cb94e72 | ||
![]() |
4ae87e215e | ||
![]() |
646cccede7 | ||
![]() |
93d7b6e50c | ||
![]() |
40b61b81f1 | ||
![]() |
d2a3347c19 | ||
![]() |
a09b0b05eb | ||
![]() |
a29f37c14a | ||
![]() |
ca01016577 | ||
![]() |
c53c351921 | ||
![]() |
fc787a41dc | ||
![]() |
05bb182a53 | ||
![]() |
58907d2c27 | ||
![]() |
a7bd18c0d5 | ||
![]() |
f73abd49c3 | ||
![]() |
8eed915dfa | ||
![]() |
8ce6fb2513 | ||
![]() |
d34a7c5ed2 | ||
![]() |
36b8438280 | ||
![]() |
faa8fc2917 | ||
![]() |
971508c0d7 | ||
![]() |
c55bd24827 | ||
![]() |
ec25d6b1e8 | ||
![]() |
bb30a35364 | ||
![]() |
11c932bf1d | ||
![]() |
f0b8fee88f | ||
![]() |
6ec3f5a28e | ||
![]() |
2c11068569 | ||
![]() |
fcd1c155cc | ||
![]() |
230ae797a7 | ||
![]() |
5297596132 | ||
![]() |
332213163c | ||
![]() |
4ff3b28273 | ||
![]() |
f931b25f4c | ||
![]() |
1e06a3614f | ||
![]() |
7aab3f0db6 | ||
![]() |
08caafe2f1 | ||
![]() |
138fe3d43d | ||
![]() |
b16ef14c7c | ||
![]() |
0f5a815657 | ||
![]() |
9196584773 | ||
![]() |
48b62e2e57 | ||
![]() |
9e352e61db | ||
![]() |
c5c0b2cb34 | ||
![]() |
1e016fd5ea | ||
![]() |
aaf426e280 | ||
![]() |
a8eeb181b6 | ||
![]() |
4845027cad |
82
.github/actions/setup-gdk-desktop/action.yml
vendored
Normal file
82
.github/actions/setup-gdk-desktop/action.yml
vendored
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
name: 'Setup GDK (Game Development Kit) for Windows Desktop'
|
||||||
|
description: 'Download GDK and install into MSBuild'
|
||||||
|
inputs:
|
||||||
|
# Keep edition and ref in sync!
|
||||||
|
edition:
|
||||||
|
description: 'GDK edition'
|
||||||
|
default: '240601' # YYMMUU (Year Month Update)
|
||||||
|
ref:
|
||||||
|
description: 'Git reference'
|
||||||
|
default: 'June_2024_Update_1'
|
||||||
|
folder:
|
||||||
|
description: 'Folder where to create Directory.Build.props'
|
||||||
|
required: true
|
||||||
|
default: '${{ github.workspace }}'
|
||||||
|
runs:
|
||||||
|
using: 'composite'
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-python@main
|
||||||
|
with:
|
||||||
|
python-version: 3.x
|
||||||
|
- name: 'Calculate variables'
|
||||||
|
id: calc
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
$vs_folder=@(vswhere -latest -property installationPath)
|
||||||
|
echo "vs-folder=${vs_folder}" >> $Env:GITHUB_OUTPUT
|
||||||
|
|
||||||
|
echo "gdk-path=${{ runner.temp }}\GDK-${{ inputs.edition }}" >> $Env:GITHUB_OUTPUT
|
||||||
|
|
||||||
|
echo "cache-key=gdk-${{ inputs.ref }}-${{ inputs.edition }}" >> $Env:GITHUB_OUTPUT
|
||||||
|
- name: 'Restore cached GDK'
|
||||||
|
id: cache-restore
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: '${{ steps.calc.outputs.gdk-path }}'
|
||||||
|
key: ${{ steps.calc.outputs.cache-key }}
|
||||||
|
- name: 'Download GDK'
|
||||||
|
if: ${{ !steps.cache-restore.outputs.cache-hit }}
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
python build-scripts/setup-gdk-desktop.py `
|
||||||
|
--download `
|
||||||
|
--temp-folder "${{ runner.temp }}" `
|
||||||
|
--gdk-path="${{ steps.calc.outputs.gdk-path }}" `
|
||||||
|
--ref-edition "${{ inputs.ref }},${{ inputs.edition }}" `
|
||||||
|
--vs-folder="${{ steps.calc.outputs.vs-folder }}" `
|
||||||
|
--no-user-props
|
||||||
|
- name: 'Extract GDK'
|
||||||
|
if: ${{ !steps.cache-restore.outputs.cache-hit }}
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
python build-scripts/setup-gdk-desktop.py `
|
||||||
|
--extract `
|
||||||
|
--ref-edition "${{ inputs.ref }},${{ inputs.edition }}" `
|
||||||
|
--temp-folder "${{ runner.temp }}" `
|
||||||
|
--gdk-path="${{ steps.calc.outputs.gdk-path }}" `
|
||||||
|
--vs-folder="${{ steps.calc.outputs.vs-folder }}" `
|
||||||
|
--no-user-props
|
||||||
|
- name: 'Cache GDK'
|
||||||
|
if: ${{ !steps.cache-restore.outputs.cache-hit }}
|
||||||
|
uses: actions/cache/save@v4
|
||||||
|
with:
|
||||||
|
path: '${{ steps.calc.outputs.gdk-path }}'
|
||||||
|
key: ${{ steps.calc.outputs.cache-key }}
|
||||||
|
- name: 'Copy MSBuild files into GDK'
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
python build-scripts/setup-gdk-desktop.py `
|
||||||
|
--ref-edition "${{ inputs.ref }},${{ inputs.edition }}" `
|
||||||
|
--gdk-path="${{ steps.calc.outputs.gdk-path }}" `
|
||||||
|
--vs-folder="${{ steps.calc.outputs.vs-folder }}" `
|
||||||
|
--copy-msbuild `
|
||||||
|
--no-user-props
|
||||||
|
- name: 'Write user props'
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
python build-scripts/setup-gdk-desktop.py `
|
||||||
|
--ref-edition "${{ inputs.ref }},${{ inputs.edition }}" `
|
||||||
|
--temp-folder "${{ runner.temp }}" `
|
||||||
|
--vs-folder="${{ steps.calc.outputs.vs-folder }}" `
|
||||||
|
--gdk-path="${{ steps.calc.outputs.gdk-path }}" `
|
||||||
|
"--props-folder=${{ inputs.folder }}"
|
62
.github/actions/setup-ninja/action.yml
vendored
Normal file
62
.github/actions/setup-ninja/action.yml
vendored
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
name: 'Setup ninja'
|
||||||
|
description: 'Download ninja and add it to the PATH environment variable'
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
description: 'Ninja version'
|
||||||
|
default: '1.12.1'
|
||||||
|
runs:
|
||||||
|
using: 'composite'
|
||||||
|
steps:
|
||||||
|
- name: 'Calculate variables'
|
||||||
|
id: calc
|
||||||
|
shell: sh
|
||||||
|
run: |
|
||||||
|
case "${{ runner.os }}-${{ runner.arch }}" in
|
||||||
|
"Linux-X86" | "Linux-X64")
|
||||||
|
archive="ninja-linux.zip"
|
||||||
|
;;
|
||||||
|
"Linux-ARM64")
|
||||||
|
archive="ninja-linux-aarch64.zip"
|
||||||
|
;;
|
||||||
|
"macOS-X86" | "macOS-X64" | "macOS-ARM64")
|
||||||
|
archive="ninja-mac.zip"
|
||||||
|
;;
|
||||||
|
"Windows-X86" | "Windows-X64")
|
||||||
|
archive="ninja-win.zip"
|
||||||
|
;;
|
||||||
|
"Windows-ARM64")
|
||||||
|
archive="ninja-winarm64.zip"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported ${{ runner.os }}-${{ runner.arch }}"
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "archive=${archive}" >> ${GITHUB_OUTPUT}
|
||||||
|
echo "cache-key=${archive}-${{ inputs.version }}-${{ runner.os }}-${{ runner.arch }}" >> ${GITHUB_OUTPUT}
|
||||||
|
- name: 'Restore cached ${{ steps.calc.outputs.archive }}'
|
||||||
|
id: cache-restore
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: '${{ runner.temp }}/${{ steps.calc.outputs.archive }}'
|
||||||
|
key: ${{ steps.calc.outputs.cache-key }}
|
||||||
|
- name: 'Download ninja ${{ inputs.version }} for ${{ runner.os }} (${{ runner.arch }})'
|
||||||
|
if: ${{ !steps.cache-restore.outputs.cache-hit }}
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
Invoke-WebRequest "https://github.com/ninja-build/ninja/releases/download/v${{ inputs.version }}/${{ steps.calc.outputs.archive }}" -OutFile "${{ runner.temp }}/${{ steps.calc.outputs.archive }}"
|
||||||
|
- name: 'Cache ${{ steps.calc.outputs.archive }}'
|
||||||
|
if: ${{ !steps.cache-restore.outputs.cache-hit }}
|
||||||
|
uses: actions/cache/save@v4
|
||||||
|
with:
|
||||||
|
path: '${{ runner.temp }}/${{ steps.calc.outputs.archive }}'
|
||||||
|
key: ${{ steps.calc.outputs.cache-key }}
|
||||||
|
- name: 'Extract libusb'
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
7z "-o${{ runner.temp }}/ninja-${{ inputs.version }}-${{ runner.arch }}" x "${{ runner.temp }}/${{ steps.calc.outputs.archive }}"
|
||||||
|
- name: 'Set output variables'
|
||||||
|
id: final
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "${{ runner.temp }}/ninja-${{ inputs.version }}-${{ runner.arch }}" >> $env:GITHUB_PATH
|
93
.github/actions/setup-vita-gles/action.yml
vendored
Normal file
93
.github/actions/setup-vita-gles/action.yml
vendored
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
name: 'Setup GLES for PlayStation Vita'
|
||||||
|
description: 'Download GLES for VITA (PVR or PIB), and copy it into the vita sdk'
|
||||||
|
inputs:
|
||||||
|
pib-version:
|
||||||
|
description: 'PIB version'
|
||||||
|
default: '1.1.4'
|
||||||
|
pvr-version:
|
||||||
|
description: 'PVR_PSP2 version'
|
||||||
|
default: '3.9'
|
||||||
|
type:
|
||||||
|
description: '"pib" or "pvr"'
|
||||||
|
default: ''
|
||||||
|
runs:
|
||||||
|
using: 'composite'
|
||||||
|
steps:
|
||||||
|
- name: 'Calculate variables'
|
||||||
|
id: calc
|
||||||
|
shell: sh
|
||||||
|
run: |
|
||||||
|
if test "x${VITASDK}" = "x"; then
|
||||||
|
echo "VITASDK must be defined"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
case "x${{ inputs.type }}" in
|
||||||
|
"xpvr")
|
||||||
|
echo "cache-key=SDL-vita-gles-pvr-${{ inputs.pvr-version}}" >> ${GITHUB_OUTPUT}
|
||||||
|
;;
|
||||||
|
"xpib")
|
||||||
|
echo "cache-key=SDL-vita-gles-pib-${{ inputs.pib-version}}" >> ${GITHUB_OUTPUT}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Invalid type. Must be 'pib' or 'pvr'."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
- uses: actions/cache/restore@v4
|
||||||
|
id: restore-cache
|
||||||
|
with:
|
||||||
|
path: /vita/dependencies
|
||||||
|
key: '${{ steps.calc.outputs.cache-key }}'
|
||||||
|
- name: 'Download PVR_PSP2 (GLES)'
|
||||||
|
if: ${{ !steps.restore-cache.outputs.cache-hit && inputs.type == 'pvr' }}
|
||||||
|
shell: sh
|
||||||
|
run: |
|
||||||
|
pvr_psp2_version=${{ inputs.pvr-version }}
|
||||||
|
|
||||||
|
mkdir -p /vita/dependencies/include
|
||||||
|
mkdir -p /vita/dependencies/lib
|
||||||
|
|
||||||
|
# Configure PVR_PSP2 headers
|
||||||
|
wget https://github.com/GrapheneCt/PVR_PSP2/archive/refs/tags/v$pvr_psp2_version.zip -P/tmp
|
||||||
|
unzip /tmp/v$pvr_psp2_version.zip -d/tmp
|
||||||
|
cp -r /tmp/PVR_PSP2-$pvr_psp2_version/include/* /vita/dependencies/include
|
||||||
|
rm /tmp/v$pvr_psp2_version.zip
|
||||||
|
|
||||||
|
# include guard of PVR_PSP2's khrplatform.h does not match the usual one
|
||||||
|
sed -i -e s/__drvkhrplatform_h_/__khrplatform_h_/ /vita/dependencies/include/KHR/khrplatform.h
|
||||||
|
|
||||||
|
# Configure PVR_PSP2 stub libraries
|
||||||
|
wget https://github.com/GrapheneCt/PVR_PSP2/releases/download/v$pvr_psp2_version/vitasdk_stubs.zip -P/tmp
|
||||||
|
unzip /tmp/vitasdk_stubs.zip -d/tmp/pvr_psp2_stubs
|
||||||
|
find /tmp/pvr_psp2_stubs -type f -name "*.a" -exec cp {} /vita/dependencies/lib \;
|
||||||
|
rm /tmp/vitasdk_stubs.zip
|
||||||
|
rm -rf /tmp/pvr_psp2_stubs
|
||||||
|
|
||||||
|
- name: 'Download gl4es4vita (OpenGL)'
|
||||||
|
if: ${{ !steps.restore-cache.outputs.cache-hit && inputs.type == 'pib' }}
|
||||||
|
shell: sh
|
||||||
|
run: |
|
||||||
|
gl4es4vita_version=${{ inputs.pib-version }}
|
||||||
|
|
||||||
|
mkdir -p /vita/dependencies/include
|
||||||
|
mkdir -p /vita/dependencies/lib
|
||||||
|
|
||||||
|
# Configure gl4es4vita headers
|
||||||
|
wget https://github.com/SonicMastr/gl4es4vita/releases/download/v$gl4es4vita_version-vita/include.zip -P/tmp
|
||||||
|
unzip -o /tmp/include.zip -d/vita/dependencies/include
|
||||||
|
rm /tmp/include.zip
|
||||||
|
|
||||||
|
# Configure gl4es4vita stub libraries
|
||||||
|
wget https://github.com/SonicMastr/gl4es4vita/releases/download/v$gl4es4vita_version-vita/vitasdk_stubs.zip -P/tmp
|
||||||
|
unzip /tmp/vitasdk_stubs.zip -d/vita/dependencies/lib
|
||||||
|
|
||||||
|
- uses: actions/cache/save@v4
|
||||||
|
if: ${{ !steps.restore-cache.outputs.cache-hit }}
|
||||||
|
with:
|
||||||
|
path: /vita/dependencies
|
||||||
|
key: '${{ steps.calc.outputs.cache-key }}'
|
||||||
|
|
||||||
|
- name: Copy PVR_PSP2 (GLES) or gl4es4vita (OpenGL) to vita toolchain dir
|
||||||
|
shell: sh
|
||||||
|
run: |
|
||||||
|
cp -rv /vita/dependencies/* ${VITASDK}/arm-vita-eabi
|
81
.github/workflows/android.yml
vendored
81
.github/workflows/android.yml
vendored
@@ -1,81 +0,0 @@
|
|||||||
name: Build (Android)
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
android:
|
|
||||||
name: ${{ matrix.platform.name }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
platform:
|
|
||||||
- { name: Android.mk }
|
|
||||||
- { name: CMake, cmake: 1, android_abi: "arm64-v8a", android_platform: 23, arch: "aarch64" }
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: nttld/setup-ndk@v1
|
|
||||||
id: setup_ndk
|
|
||||||
with:
|
|
||||||
ndk-version: r21e
|
|
||||||
- name: Build (Android.mk)
|
|
||||||
if: ${{ matrix.platform.name == 'Android.mk' }}
|
|
||||||
run: |
|
|
||||||
./build-scripts/androidbuildlibs.sh
|
|
||||||
- name: Setup (CMake)
|
|
||||||
if: ${{ matrix.platform.name == 'CMake' }}
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install ninja-build pkg-config
|
|
||||||
- name: Configure (CMake)
|
|
||||||
if: ${{ matrix.platform.name == 'CMake' }}
|
|
||||||
run: |
|
|
||||||
cmake -B build \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup_ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \
|
|
||||||
-DSDL_WERROR=ON \
|
|
||||||
-DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \
|
|
||||||
-DANDROID_ABI=${{ matrix.platform.android_abi }} \
|
|
||||||
-DSDL_STATIC_PIC=ON \
|
|
||||||
-DSDL_VENDOR_INFO="Github Workflow" \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=prefix \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-GNinja
|
|
||||||
- name: Build (CMake)
|
|
||||||
if: ${{ matrix.platform.name == 'CMake' }}
|
|
||||||
run: |
|
|
||||||
cmake --build build --config Release --parallel --verbose
|
|
||||||
- name: Install (CMake)
|
|
||||||
if: ${{ matrix.platform.name == 'CMake' }}
|
|
||||||
run: |
|
|
||||||
cmake --install build --config Release
|
|
||||||
echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV
|
|
||||||
( cd prefix; find ) | LC_ALL=C sort -u
|
|
||||||
- name: Verify CMake configuration files
|
|
||||||
if: ${{ matrix.platform.name == 'CMake' }}
|
|
||||||
run: |
|
|
||||||
cmake -S cmake/test -B cmake_config_build -G Ninja \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup_ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \
|
|
||||||
-DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \
|
|
||||||
-DANDROID_ABI=${{ matrix.platform.android_abi }} \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }}
|
|
||||||
cmake --build cmake_config_build --verbose
|
|
||||||
- name: Verify sdl2-config
|
|
||||||
if: ${{ matrix.platform.name == 'CMake' }}
|
|
||||||
run: |
|
|
||||||
export CC="${{ steps.setup_ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=${{ matrix.platform.arch }}-none-linux-androideabi${{ matrix.platform.android_platform }}"
|
|
||||||
export PATH=${{ env.SDL2_DIR }}/bin:$PATH
|
|
||||||
cmake/test/test_sdlconfig.sh
|
|
||||||
- name: Verify sdl2.pc
|
|
||||||
if: ${{ matrix.platform.name == 'CMake' }}
|
|
||||||
run: |
|
|
||||||
export CC="${{ steps.setup_ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=${{ matrix.platform.arch }}-none-linux-androideabi${{ matrix.platform.android_platform }}"
|
|
||||||
export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
|
|
||||||
cmake/test/test_pkgconfig.sh
|
|
||||||
- name: Verify Android.mk
|
|
||||||
if: ${{ matrix.platform.name == 'CMake' }}
|
|
||||||
run: |
|
|
||||||
export NDK_MODULE_PATH=${{ env.SDL2_DIR }}/share/ndk-modules
|
|
||||||
ndk-build -C ${{ github.workspace }}/cmake/test APP_PLATFORM=android-${{ matrix.platform.android_platform }} APP_ABI=${{ matrix.platform.android_abi }} NDK_OUT=$PWD NDK_LIBS_OUT=$PWD V=1
|
|
48
.github/workflows/build.yml
vendored
Normal file
48
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
name: 'Build (All)'
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
controller:
|
||||||
|
name: 'Create test plan'
|
||||||
|
runs-on: 'ubuntu-latest'
|
||||||
|
outputs:
|
||||||
|
platforms-level1: ${{ steps.plan.outputs.platforms-level1 }}
|
||||||
|
platforms-others: ${{ steps.plan.outputs.platforms-others }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-python@main
|
||||||
|
with:
|
||||||
|
python-version: 3.x
|
||||||
|
- uses: actions/checkout@main
|
||||||
|
with:
|
||||||
|
sparse-checkout: '.github/workflows/create-test-plan.py'
|
||||||
|
- name: 'Create plan'
|
||||||
|
id: plan
|
||||||
|
run: |
|
||||||
|
# Adding [sdl-ci-filter GLOB] to the commit message will limit the jobs
|
||||||
|
# e.g. [sdl-ci-filter msvc-*]
|
||||||
|
EOF=$(openssl rand -hex 32)
|
||||||
|
cat >/tmp/commit_message.txt <<$EOF
|
||||||
|
${{ github.event.head_commit.message }}
|
||||||
|
$EOF
|
||||||
|
|
||||||
|
python .github/workflows/create-test-plan.py \
|
||||||
|
--github-variable-prefix platforms \
|
||||||
|
--github-ci \
|
||||||
|
--verbose \
|
||||||
|
${{ (github.repository_owner != 'libsdl-org' && '--no-artifact') || '' }} \
|
||||||
|
--commit-message-file /tmp/commit_message.txt
|
||||||
|
level1:
|
||||||
|
needs: [controller]
|
||||||
|
uses: './.github/workflows/generic.yml'
|
||||||
|
with:
|
||||||
|
platforms: ${{ needs.controller.outputs.platforms-level1 }}
|
||||||
|
level2:
|
||||||
|
needs: [controller, level1]
|
||||||
|
uses: './.github/workflows/generic.yml'
|
||||||
|
with:
|
||||||
|
platforms: ${{ needs.controller.outputs.platforms-others }}
|
51
.github/workflows/cpactions.yml
vendored
51
.github/workflows/cpactions.yml
vendored
@@ -1,51 +0,0 @@
|
|||||||
name: Build (C/P Actions)
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
freebsd:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
name: FreeBSD
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Build
|
|
||||||
uses: cross-platform-actions/action@v0.19.1
|
|
||||||
with:
|
|
||||||
operating_system: freebsd
|
|
||||||
version: '13.2'
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
sudo pkg update
|
|
||||||
sudo pkg install -y \
|
|
||||||
gmake \
|
|
||||||
pkgconf \
|
|
||||||
libXcursor \
|
|
||||||
libXext \
|
|
||||||
libXinerama \
|
|
||||||
libXi \
|
|
||||||
libXfixes \
|
|
||||||
libXrandr \
|
|
||||||
libXScrnSaver \
|
|
||||||
libXxf86vm \
|
|
||||||
wayland \
|
|
||||||
wayland-protocols \
|
|
||||||
libxkbcommon \
|
|
||||||
mesa-libs \
|
|
||||||
libglvnd \
|
|
||||||
evdev-proto \
|
|
||||||
libinotify \
|
|
||||||
alsa-lib \
|
|
||||||
jackit \
|
|
||||||
pipewire \
|
|
||||||
pulseaudio \
|
|
||||||
sndio \
|
|
||||||
dbus \
|
|
||||||
zh-fcitx \
|
|
||||||
ibus \
|
|
||||||
libudev-devd
|
|
||||||
mkdir build_autotools
|
|
||||||
export CPPFLAGS="-I/usr/local/include"
|
|
||||||
export LDFLAGS="-L/usr/local/lib"
|
|
||||||
(cd build_autotools && ../configure --disable-static)
|
|
||||||
gmake -C build_autotools -j`sysctl -n hw.ncpu` V=1
|
|
806
.github/workflows/create-test-plan.py
vendored
Executable file
806
.github/workflows/create-test-plan.py
vendored
Executable file
@@ -0,0 +1,806 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
import argparse
|
||||||
|
import dataclasses
|
||||||
|
import fnmatch
|
||||||
|
from enum import Enum
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class AppleArch(Enum):
|
||||||
|
ARM64 = "arm64"
|
||||||
|
X86_64 = "x86_64"
|
||||||
|
|
||||||
|
|
||||||
|
class MsvcArch(Enum):
|
||||||
|
X86 = "x86"
|
||||||
|
X64 = "x64"
|
||||||
|
Arm32 = "arm"
|
||||||
|
Arm64 = "arm64"
|
||||||
|
|
||||||
|
|
||||||
|
class JobOs(Enum):
|
||||||
|
WindowsLatest = "windows-latest"
|
||||||
|
UbuntuLatest = "ubuntu-latest"
|
||||||
|
MacosLatest = "macos-latest"
|
||||||
|
Ubuntu22_04 = "ubuntu-22.04"
|
||||||
|
Ubuntu24_04 = "ubuntu-24.04"
|
||||||
|
Macos13 = "macos-13"
|
||||||
|
|
||||||
|
|
||||||
|
class SdlPlatform(Enum):
|
||||||
|
Android = "android"
|
||||||
|
Emscripten = "emscripten"
|
||||||
|
Haiku = "haiku"
|
||||||
|
Msys2 = "msys2"
|
||||||
|
Linux = "linux"
|
||||||
|
MacOS = "macos"
|
||||||
|
Ios = "ios"
|
||||||
|
Tvos = "tvos"
|
||||||
|
Msvc = "msvc"
|
||||||
|
N3ds = "n3ds"
|
||||||
|
Ps2 = "ps2"
|
||||||
|
Psp = "psp"
|
||||||
|
Vita = "vita"
|
||||||
|
Riscos = "riscos"
|
||||||
|
FreeBSD = "freebsd"
|
||||||
|
NetBSD = "netbsd"
|
||||||
|
OpenBSD = "openbsd"
|
||||||
|
Watcom = "watcom"
|
||||||
|
|
||||||
|
|
||||||
|
class Msys2Platform(Enum):
|
||||||
|
Mingw32 = "mingw32"
|
||||||
|
Mingw64 = "mingw64"
|
||||||
|
Clang64 = "clang64"
|
||||||
|
Ucrt64 = "ucrt64"
|
||||||
|
|
||||||
|
|
||||||
|
class IntelCompiler(Enum):
|
||||||
|
Icx = "icx"
|
||||||
|
|
||||||
|
|
||||||
|
class VitaGLES(Enum):
|
||||||
|
Pib = "pib"
|
||||||
|
Pvr = "pvr"
|
||||||
|
|
||||||
|
class WatcomPlatform(Enum):
|
||||||
|
Windows = "windows"
|
||||||
|
OS2 = "OS/2"
|
||||||
|
|
||||||
|
|
||||||
|
@dataclasses.dataclass(slots=True)
|
||||||
|
class JobSpec:
|
||||||
|
name: str
|
||||||
|
os: JobOs
|
||||||
|
platform: SdlPlatform
|
||||||
|
artifact: Optional[str]
|
||||||
|
container: Optional[str] = None
|
||||||
|
autotools: bool = False
|
||||||
|
no_cmake: bool = False
|
||||||
|
xcode: bool = False
|
||||||
|
android_mk: bool = False
|
||||||
|
lean: bool = False
|
||||||
|
android_arch: Optional[str] = None
|
||||||
|
android_abi: Optional[str] = None
|
||||||
|
android_platform: Optional[int] = None
|
||||||
|
msys2_platform: Optional[Msys2Platform] = None
|
||||||
|
intel: Optional[IntelCompiler] = None
|
||||||
|
apple_archs: Optional[set[AppleArch]] = None
|
||||||
|
msvc_project: Optional[str] = None
|
||||||
|
msvc_arch: Optional[MsvcArch] = None
|
||||||
|
msvc_static_crt: bool = False
|
||||||
|
clang_cl: bool = False
|
||||||
|
gdk: bool = False
|
||||||
|
uwp: bool = False
|
||||||
|
vita_gles: Optional[VitaGLES] = None
|
||||||
|
watcom_platform: Optional[WatcomPlatform] = None
|
||||||
|
|
||||||
|
|
||||||
|
JOB_SPECS = {
|
||||||
|
"msys2-mingw32": JobSpec(name="Windows (msys2, mingw32)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msys2, artifact="SDL-mingw32", msys2_platform=Msys2Platform.Mingw32, ),
|
||||||
|
"msys2-mingw64": JobSpec(name="Windows (msys2, mingw64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msys2, artifact="SDL-mingw64", msys2_platform=Msys2Platform.Mingw64, ),
|
||||||
|
"msys2-clang64": JobSpec(name="Windows (msys2, clang64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msys2, artifact="SDL-mingw64-clang", msys2_platform=Msys2Platform.Clang64, ),
|
||||||
|
"msys2-ucrt64": JobSpec(name="Windows (msys2, ucrt64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msys2, artifact="SDL-mingw64-ucrt", msys2_platform=Msys2Platform.Ucrt64, ),
|
||||||
|
"msvc-x64": JobSpec(name="Windows (MSVC, x64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-x64", msvc_arch=MsvcArch.X64, msvc_project="VisualC/SDL.sln", ),
|
||||||
|
"msvc-x86": JobSpec(name="Windows (MSVC, x86)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-x86", msvc_arch=MsvcArch.X86, msvc_project="VisualC/SDL.sln", ),
|
||||||
|
"msvc-static-x86": JobSpec(name="Windows (MSVC, static VCRT, x86)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-x86", msvc_arch=MsvcArch.X86, msvc_static_crt=True, ),
|
||||||
|
"msvc-static-x64": JobSpec(name="Windows (MSVC, static VCRT, x64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-x64", msvc_arch=MsvcArch.X64, msvc_static_crt=True, ),
|
||||||
|
"msvc-clang-x64": JobSpec(name="Windows (MSVC, clang-cl x64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-clang-cl-x64", msvc_arch=MsvcArch.X64, clang_cl=True, ),
|
||||||
|
"msvc-clang-x86": JobSpec(name="Windows (MSVC, clang-cl x86)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-clang-cl-x86", msvc_arch=MsvcArch.X86, clang_cl=True, ),
|
||||||
|
"msvc-arm32": JobSpec(name="Windows (MSVC, ARM)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-arm32", msvc_arch=MsvcArch.Arm32, ),
|
||||||
|
"msvc-arm64": JobSpec(name="Windows (MSVC, ARM64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-arm64", msvc_arch=MsvcArch.Arm64, ),
|
||||||
|
"msvc-uwp-x64": JobSpec(name="UWP (MSVC, x64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-UWP", msvc_arch=MsvcArch.X64, msvc_project="VisualC-WinRT/SDL-UWP.sln", uwp=True, ),
|
||||||
|
"msvc-gdk-x64": JobSpec(name="GDK (MSVC, x64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-GDK", msvc_arch=MsvcArch.X64, msvc_project="VisualC-GDK/SDL.sln", gdk=True, no_cmake=True, ),
|
||||||
|
"ubuntu-22.04": JobSpec(name="Ubuntu 22.04", os=JobOs.Ubuntu22_04, platform=SdlPlatform.Linux, artifact="SDL-ubuntu22.04", autotools=True),
|
||||||
|
"steamrt-sniper": JobSpec(name="Steam Linux Runtime (Sniper)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Linux, artifact="SDL-slrsniper", container="registry.gitlab.steamos.cloud/steamrt/sniper/sdk:beta", ),
|
||||||
|
"ubuntu-intel-icx": JobSpec(name="Ubuntu 22.04 (Intel oneAPI)", os=JobOs.Ubuntu22_04, platform=SdlPlatform.Linux, artifact="SDL-ubuntu22.04-oneapi", intel=IntelCompiler.Icx, ),
|
||||||
|
"macos-gnu-arm64-x64": JobSpec(name="MacOS (GNU prefix)", os=JobOs.MacosLatest, platform=SdlPlatform.MacOS, artifact="SDL-macos-arm64-x64-gnu",autotools=True, apple_archs={AppleArch.X86_64, AppleArch.ARM64, }, ),
|
||||||
|
"ios": JobSpec(name="iOS (CMake & xcode)", os=JobOs.MacosLatest, platform=SdlPlatform.Ios, artifact="SDL-ios-arm64", xcode=True, ),
|
||||||
|
"tvos": JobSpec(name="tvOS (CMake & xcode)", os=JobOs.MacosLatest, platform=SdlPlatform.Tvos, artifact="SDL-tvos-arm64", xcode=True, ),
|
||||||
|
"android-cmake": JobSpec(name="Android (CMake)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Android, artifact="SDL-android-arm64", android_abi="arm64-v8a", android_arch="aarch64", android_platform=23, ),
|
||||||
|
"android-mk": JobSpec(name="Android (Android.mk)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Android, artifact=None, no_cmake=True, android_mk=True, ),
|
||||||
|
"emscripten": JobSpec(name="Emscripten", os=JobOs.UbuntuLatest, platform=SdlPlatform.Emscripten, artifact="SDL-emscripten", ),
|
||||||
|
"haiku": JobSpec(name="Haiku", os=JobOs.UbuntuLatest, platform=SdlPlatform.Haiku, artifact="SDL-haiku-x64", container="ghcr.io/haiku/cross-compiler:x86_64-r1beta5", ),
|
||||||
|
"n3ds": JobSpec(name="Nintendo 3DS", os=JobOs.UbuntuLatest, platform=SdlPlatform.N3ds, artifact="SDL-n3ds", container="devkitpro/devkitarm:latest", ),
|
||||||
|
"ps2": JobSpec(name="Sony PlayStation 2", os=JobOs.UbuntuLatest, platform=SdlPlatform.Ps2, artifact="SDL-ps2", container="ps2dev/ps2dev:latest", ),
|
||||||
|
"psp": JobSpec(name="Sony PlayStation Portable", os=JobOs.UbuntuLatest, platform=SdlPlatform.Psp, artifact="SDL-psp", container="pspdev/pspdev:latest", ),
|
||||||
|
"vita-pib": JobSpec(name="Sony PlayStation Vita (GLES w/ pib)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Vita, artifact="SDL-vita-pib", container="vitasdk/vitasdk:latest", vita_gles=VitaGLES.Pib, ),
|
||||||
|
"vita-pvr": JobSpec(name="Sony PlayStation Vita (GLES w/ PVR_PSP2)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Vita, artifact="SDL-vita-pvr", container="vitasdk/vitasdk:latest", vita_gles=VitaGLES.Pvr, ),
|
||||||
|
"riscos": JobSpec(name="RISC OS", os=JobOs.UbuntuLatest, platform=SdlPlatform.Riscos, artifact="SDL-riscos", container="riscosdotinfo/riscos-gccsdk-4.7:latest", ),
|
||||||
|
"netbsd": JobSpec(name="NetBSD", os=JobOs.UbuntuLatest, platform=SdlPlatform.NetBSD, artifact="SDL-netbsd-x64", autotools=True, ),
|
||||||
|
"openbsd": JobSpec(name="OpenBSD", os=JobOs.UbuntuLatest, platform=SdlPlatform.OpenBSD, artifact="SDL-openbsd-x64", autotools=True, ),
|
||||||
|
"freebsd": JobSpec(name="FreeBSD", os=JobOs.UbuntuLatest, platform=SdlPlatform.FreeBSD, artifact="SDL-freebsd-x64", autotools=True, ),
|
||||||
|
"watcom-win32": JobSpec(name="Watcom (Windows)", os=JobOs.WindowsLatest, platform=SdlPlatform.Watcom, artifact="SDL-watcom-win32", no_cmake=True, watcom_platform=WatcomPlatform.Windows ),
|
||||||
|
"watcom-os2": JobSpec(name="Watcom (OS/2)", os=JobOs.WindowsLatest, platform=SdlPlatform.Watcom, artifact="SDL-watcom-win32", no_cmake=True, watcom_platform=WatcomPlatform.OS2 ),
|
||||||
|
# "watcom-win32"
|
||||||
|
# "watcom-os2"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class StaticLibType(Enum):
|
||||||
|
MSVC = "SDL2-static.lib"
|
||||||
|
A = "libSDL2.a"
|
||||||
|
|
||||||
|
|
||||||
|
class SharedLibType(Enum):
|
||||||
|
WIN32 = "SDL2.dll"
|
||||||
|
SO_0 = "libSDL2-2.0.so.0"
|
||||||
|
SO = "libSDL2.so"
|
||||||
|
DYLIB = "libSDL2-2.0.0.dylib"
|
||||||
|
FRAMEWORK = "SDL2.framework/Versions/A/SDL2"
|
||||||
|
|
||||||
|
|
||||||
|
@dataclasses.dataclass(slots=True)
|
||||||
|
class JobDetails:
|
||||||
|
name: str
|
||||||
|
key: str
|
||||||
|
os: str
|
||||||
|
platform: str
|
||||||
|
artifact: str
|
||||||
|
no_autotools: bool
|
||||||
|
no_cmake: bool
|
||||||
|
build_autotools_tests: bool = True
|
||||||
|
build_tests: bool = True
|
||||||
|
container: str = ""
|
||||||
|
cmake_build_type: str = "RelWithDebInfo"
|
||||||
|
shell: str = "sh"
|
||||||
|
sudo: str = "sudo"
|
||||||
|
cmake_config_emulator: str = ""
|
||||||
|
apk_packages: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
apt_packages: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
brew_packages: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
cmake_toolchain_file: str = ""
|
||||||
|
cmake_arguments: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
cmake_generator: str = "Ninja"
|
||||||
|
cmake_build_arguments: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
cppflags: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
cc: str = ""
|
||||||
|
cxx: str = ""
|
||||||
|
cflags: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
cxxflags: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
ldflags: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
pollute_directories: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
use_cmake: bool = True
|
||||||
|
shared: bool = True
|
||||||
|
static: bool = True
|
||||||
|
shared_lib: Optional[SharedLibType] = None
|
||||||
|
static_lib: Optional[StaticLibType] = None
|
||||||
|
run_tests: bool = True
|
||||||
|
test_pkg_config: bool = True
|
||||||
|
cc_from_cmake: bool = False
|
||||||
|
source_cmd: str = ""
|
||||||
|
pretest_cmd: str = ""
|
||||||
|
android_apks: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
android_ndk: bool = False
|
||||||
|
android_mk: bool = False
|
||||||
|
minidump: bool = False
|
||||||
|
intel: bool = False
|
||||||
|
msys2_msystem: str = ""
|
||||||
|
msys2_env: str = ""
|
||||||
|
msys2_no_perl: bool = False
|
||||||
|
werror: bool = True
|
||||||
|
msvc_vcvars_arch: str = ""
|
||||||
|
msvc_vcvars_sdk: str = ""
|
||||||
|
msvc_project: str = ""
|
||||||
|
msvc_project_flags: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
setup_ninja: bool = False
|
||||||
|
setup_libusb_arch: str = ""
|
||||||
|
xcode_sdk: str = ""
|
||||||
|
xcode_target: str = ""
|
||||||
|
setup_gdk_folder: str = ""
|
||||||
|
cpactions: bool = False
|
||||||
|
cpactions_os: str = ""
|
||||||
|
cpactions_version: str = ""
|
||||||
|
cpactions_arch: str = ""
|
||||||
|
cpactions_setup_cmd: str = ""
|
||||||
|
cpactions_install_cmd: str = ""
|
||||||
|
setup_vita_gles_type: str = ""
|
||||||
|
check_sources: bool = False
|
||||||
|
watcom_makefile: str = ""
|
||||||
|
binutils_strings: str = "strings"
|
||||||
|
|
||||||
|
def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
|
||||||
|
data = {
|
||||||
|
"name": self.name,
|
||||||
|
"key": self.key,
|
||||||
|
"os": self.os,
|
||||||
|
"container": self.container if self.container else "",
|
||||||
|
"platform": self.platform,
|
||||||
|
"artifact": self.artifact,
|
||||||
|
"enable-artifacts": enable_artifacts,
|
||||||
|
"shell": self.shell,
|
||||||
|
"msys2-msystem": self.msys2_msystem,
|
||||||
|
"msys2-env": self.msys2_env,
|
||||||
|
"msys2-no-perl": self.msys2_no_perl,
|
||||||
|
"android-ndk": self.android_ndk,
|
||||||
|
"intel": self.intel,
|
||||||
|
"apk-packages": my_shlex_join(self.apk_packages),
|
||||||
|
"apt-packages": my_shlex_join(self.apt_packages),
|
||||||
|
"test-pkg-config": self.test_pkg_config,
|
||||||
|
"brew-packages": my_shlex_join(self.brew_packages),
|
||||||
|
"pollute-directories": my_shlex_join(self.pollute_directories),
|
||||||
|
"no-autotools": self.no_autotools,
|
||||||
|
"no-cmake": self.no_cmake,
|
||||||
|
"build-autotools-tests": self.build_autotools_tests,
|
||||||
|
"build-tests": self.build_tests,
|
||||||
|
"source-cmd": self.source_cmd,
|
||||||
|
"pretest-cmd": self.pretest_cmd,
|
||||||
|
"cmake-config-emulator": self.cmake_config_emulator,
|
||||||
|
"cc": self.cc,
|
||||||
|
"cxx": self.cxx,
|
||||||
|
"cflags": my_shlex_join(self.cppflags + self.cflags),
|
||||||
|
"cxxflags": my_shlex_join(self.cppflags + self.cxxflags),
|
||||||
|
"ldflags": my_shlex_join(self.ldflags),
|
||||||
|
"cmake-generator": self.cmake_generator,
|
||||||
|
"cmake-toolchain-file": self.cmake_toolchain_file,
|
||||||
|
"cmake-arguments": my_shlex_join(self.cmake_arguments),
|
||||||
|
"cmake-build-arguments": my_shlex_join(self.cmake_build_arguments),
|
||||||
|
"shared": self.shared,
|
||||||
|
"static": self.static,
|
||||||
|
"shared-lib": self.shared_lib.value if self.shared_lib else None,
|
||||||
|
"static-lib": self.static_lib.value if self.static_lib else None,
|
||||||
|
"cmake-build-type": self.cmake_build_type,
|
||||||
|
"run-tests": self.run_tests,
|
||||||
|
"android-apks": my_shlex_join(self.android_apks),
|
||||||
|
"android-mk": self.android_mk,
|
||||||
|
"werror": self.werror,
|
||||||
|
"sudo": self.sudo,
|
||||||
|
"msvc-vcvars-arch": self.msvc_vcvars_arch,
|
||||||
|
"msvc-vcvars-sdk": self.msvc_vcvars_sdk,
|
||||||
|
"msvc-project": self.msvc_project,
|
||||||
|
"msvc-project-flags": my_shlex_join(self.msvc_project_flags),
|
||||||
|
"setup-ninja": self.setup_ninja,
|
||||||
|
"setup-libusb-arch": self.setup_libusb_arch,
|
||||||
|
"cc-from-cmake": self.cc_from_cmake,
|
||||||
|
"xcode-sdk": self.xcode_sdk,
|
||||||
|
"xcode-target": self.xcode_target,
|
||||||
|
"cpactions": self.cpactions,
|
||||||
|
"cpactions-os": self.cpactions_os,
|
||||||
|
"cpactions-version": self.cpactions_version,
|
||||||
|
"cpactions-arch": self.cpactions_arch,
|
||||||
|
"cpactions-setup-cmd": self.cpactions_setup_cmd,
|
||||||
|
"cpactions-install-cmd": self.cpactions_install_cmd,
|
||||||
|
"setup-vita-gles-type": self.setup_vita_gles_type,
|
||||||
|
"setup-gdk-folder": self.setup_gdk_folder,
|
||||||
|
"check-sources": self.check_sources,
|
||||||
|
"watcom-makefile": self.watcom_makefile,
|
||||||
|
"binutils-strings": self.binutils_strings,
|
||||||
|
}
|
||||||
|
return {k: v for k, v in data.items() if v != ""}
|
||||||
|
|
||||||
|
|
||||||
|
def my_shlex_join(s):
|
||||||
|
def escape(s):
|
||||||
|
if s[:1] == "'" and s[-1:] == "'":
|
||||||
|
return s
|
||||||
|
if set(s).intersection(set("; \t")):
|
||||||
|
s = s.replace("\\", "\\\\").replace("\"", "\\\"")
|
||||||
|
return f'"{s}"'
|
||||||
|
return s
|
||||||
|
|
||||||
|
return " ".join(escape(e) for e in s)
|
||||||
|
|
||||||
|
|
||||||
|
def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDetails:
|
||||||
|
job = JobDetails(
|
||||||
|
name=spec.name,
|
||||||
|
key=key,
|
||||||
|
os=spec.os.value,
|
||||||
|
artifact=spec.artifact or "",
|
||||||
|
container=spec.container or "",
|
||||||
|
platform=spec.platform.value,
|
||||||
|
sudo="sudo",
|
||||||
|
no_autotools=not spec.autotools,
|
||||||
|
no_cmake=spec.no_cmake,
|
||||||
|
)
|
||||||
|
if job.os.startswith("ubuntu"):
|
||||||
|
job.apt_packages.extend([
|
||||||
|
"ninja-build",
|
||||||
|
"pkg-config",
|
||||||
|
])
|
||||||
|
if spec.msvc_static_crt:
|
||||||
|
job.cmake_arguments.append("-DSDL_FORCE_STATIC_VCRT=ON")
|
||||||
|
pretest_cmd = []
|
||||||
|
if trackmem_symbol_names:
|
||||||
|
pretest_cmd.append("export SDL_TRACKMEM_SYMBOL_NAMES=1")
|
||||||
|
else:
|
||||||
|
pretest_cmd.append("export SDL_TRACKMEM_SYMBOL_NAMES=0")
|
||||||
|
win32 = spec.platform in (SdlPlatform.Msys2, SdlPlatform.Msvc)
|
||||||
|
fpic = None
|
||||||
|
build_parallel = True
|
||||||
|
if spec.lean:
|
||||||
|
job.cppflags.append("-DSDL_LEAN_AND_MEAN=1")
|
||||||
|
if win32:
|
||||||
|
job.cmake_arguments.append("-DSDLTEST_PROCDUMP=ON")
|
||||||
|
job.minidump = True
|
||||||
|
if spec.intel is not None:
|
||||||
|
match spec.intel:
|
||||||
|
case IntelCompiler.Icx:
|
||||||
|
job.cc = "icx"
|
||||||
|
job.cxx = "icpx"
|
||||||
|
case _:
|
||||||
|
raise ValueError(f"Invalid intel={spec.intel}")
|
||||||
|
job.source_cmd = f"source /opt/intel/oneapi/setvars.sh;"
|
||||||
|
job.intel = True
|
||||||
|
job.shell = "bash"
|
||||||
|
job.cmake_arguments.extend((
|
||||||
|
f"-DCMAKE_C_COMPILER={job.cc}",
|
||||||
|
f"-DCMAKE_CXX_COMPILER={job.cxx}",
|
||||||
|
"-DCMAKE_SYSTEM_NAME=Linux",
|
||||||
|
))
|
||||||
|
match spec.platform:
|
||||||
|
case SdlPlatform.Msvc:
|
||||||
|
job.setup_ninja = not spec.gdk
|
||||||
|
job.msvc_project = spec.msvc_project if spec.msvc_project else ""
|
||||||
|
job.msvc_project_flags.append("-p:TreatWarningsAsError=true")
|
||||||
|
job.test_pkg_config = False
|
||||||
|
job.shared_lib = SharedLibType.WIN32
|
||||||
|
job.static_lib = StaticLibType.MSVC
|
||||||
|
job.cmake_arguments.extend((
|
||||||
|
"-DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT=ProgramDatabase",
|
||||||
|
"-DCMAKE_EXE_LINKER_FLAGS=-DEBUG",
|
||||||
|
"-DCMAKE_SHARED_LINKER_FLAGS=-DEBUG",
|
||||||
|
))
|
||||||
|
if spec.uwp:
|
||||||
|
job.cmake_arguments.append("'-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug>DLL'")
|
||||||
|
else:
|
||||||
|
job.cmake_arguments.append("'-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug>'")
|
||||||
|
|
||||||
|
if spec.clang_cl:
|
||||||
|
job.cmake_arguments.extend((
|
||||||
|
"-DCMAKE_C_COMPILER=clang-cl",
|
||||||
|
"-DCMAKE_CXX_COMPILER=clang-cl",
|
||||||
|
))
|
||||||
|
match spec.msvc_arch:
|
||||||
|
case MsvcArch.X86:
|
||||||
|
job.cflags.append("/clang:-m32")
|
||||||
|
job.ldflags.append("/MACHINE:X86")
|
||||||
|
case MsvcArch.X64:
|
||||||
|
job.cflags.append("/clang:-m64")
|
||||||
|
job.ldflags.append("/MACHINE:X64")
|
||||||
|
case _:
|
||||||
|
raise ValueError(f"Unsupported clang-cl architecture (arch={spec.msvc_arch})")
|
||||||
|
if spec.msvc_project:
|
||||||
|
match spec.msvc_arch:
|
||||||
|
case MsvcArch.X86:
|
||||||
|
msvc_platform = "Win32"
|
||||||
|
case MsvcArch.X64:
|
||||||
|
msvc_platform = "x64"
|
||||||
|
case _:
|
||||||
|
raise ValueError(f"Unsupported vcxproj architecture (arch={spec.msvc_arch})")
|
||||||
|
if spec.gdk:
|
||||||
|
msvc_platform = f"Gaming.Desktop.{msvc_platform}"
|
||||||
|
job.msvc_project_flags.append(f"-p:Platform={msvc_platform}")
|
||||||
|
match spec.msvc_arch:
|
||||||
|
case MsvcArch.X86:
|
||||||
|
job.msvc_vcvars_arch = "x64_x86"
|
||||||
|
case MsvcArch.X64:
|
||||||
|
job.msvc_vcvars_arch = "x64"
|
||||||
|
case MsvcArch.Arm32:
|
||||||
|
job.msvc_vcvars_arch = "x64_arm"
|
||||||
|
job.msvc_vcvars_sdk = "10.0.22621.0" # 10.0.26100.0 dropped ARM32 um and ucrt libraries
|
||||||
|
job.run_tests = False
|
||||||
|
case MsvcArch.Arm64:
|
||||||
|
job.msvc_vcvars_arch = "x64_arm64"
|
||||||
|
job.run_tests = False
|
||||||
|
if spec.uwp:
|
||||||
|
job.build_tests = False
|
||||||
|
job.cmake_arguments.extend((
|
||||||
|
"-DCMAKE_SYSTEM_NAME=WindowsStore",
|
||||||
|
"-DCMAKE_SYSTEM_VERSION=10.0",
|
||||||
|
))
|
||||||
|
job.msvc_project_flags.append("-p:WindowsTargetPlatformVersion=10.0.17763.0")
|
||||||
|
elif spec.gdk:
|
||||||
|
job.setup_gdk_folder = "VisualC-GDK"
|
||||||
|
else:
|
||||||
|
match spec.msvc_arch:
|
||||||
|
case MsvcArch.X86:
|
||||||
|
job.setup_libusb_arch = "x86"
|
||||||
|
case MsvcArch.X64:
|
||||||
|
job.setup_libusb_arch = "x64"
|
||||||
|
case SdlPlatform.Linux:
|
||||||
|
if spec.name.startswith("Ubuntu"):
|
||||||
|
assert spec.os.value.startswith("ubuntu-")
|
||||||
|
job.apt_packages.extend((
|
||||||
|
"gnome-desktop-testing",
|
||||||
|
"libasound2-dev",
|
||||||
|
"libpulse-dev",
|
||||||
|
"libaudio-dev",
|
||||||
|
"libjack-dev",
|
||||||
|
"libsndio-dev",
|
||||||
|
"libusb-1.0-0-dev",
|
||||||
|
"libx11-dev",
|
||||||
|
"libxext-dev",
|
||||||
|
"libxrandr-dev",
|
||||||
|
"libxcursor-dev",
|
||||||
|
"libxfixes-dev",
|
||||||
|
"libxi-dev",
|
||||||
|
"libxss-dev",
|
||||||
|
"libwayland-dev",
|
||||||
|
"libxkbcommon-dev",
|
||||||
|
"libdrm-dev",
|
||||||
|
"libgbm-dev",
|
||||||
|
"libgl1-mesa-dev",
|
||||||
|
"libgles2-mesa-dev",
|
||||||
|
"libegl1-mesa-dev",
|
||||||
|
"libdbus-1-dev",
|
||||||
|
"libibus-1.0-dev",
|
||||||
|
"libudev-dev",
|
||||||
|
"fcitx-libs-dev",
|
||||||
|
))
|
||||||
|
ubuntu_year, ubuntu_month = [int(v) for v in spec.os.value.removeprefix("ubuntu-").split(".", 1)]
|
||||||
|
if ubuntu_year >= 22:
|
||||||
|
job.apt_packages.extend(("libpipewire-0.3-dev", "libdecor-0-dev"))
|
||||||
|
job.apt_packages.extend((
|
||||||
|
"libunwind-dev", # For SDL_test memory tracking
|
||||||
|
))
|
||||||
|
if trackmem_symbol_names:
|
||||||
|
# older libunwind is slow
|
||||||
|
job.cmake_arguments.append("-DSDLTEST_TIMEOUT_MULTIPLIER=2")
|
||||||
|
job.shared_lib = SharedLibType.SO_0
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
fpic = True
|
||||||
|
case SdlPlatform.Ios | SdlPlatform.Tvos:
|
||||||
|
job.brew_packages.extend([
|
||||||
|
"ninja",
|
||||||
|
])
|
||||||
|
job.run_tests = False
|
||||||
|
job.test_pkg_config = False
|
||||||
|
job.shared_lib = SharedLibType.DYLIB
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
match spec.platform:
|
||||||
|
case SdlPlatform.Ios:
|
||||||
|
if spec.xcode:
|
||||||
|
job.xcode_sdk = "iphoneos"
|
||||||
|
job.xcode_target = "Static Library-iOS"
|
||||||
|
job.cmake_arguments.extend([
|
||||||
|
"-DCMAKE_SYSTEM_NAME=iOS",
|
||||||
|
"-DCMAKE_OSX_ARCHITECTURES=\"arm64\"",
|
||||||
|
"-DCMAKE_OSX_DEPLOYMENT_TARGET=9.0",
|
||||||
|
])
|
||||||
|
case SdlPlatform.Tvos:
|
||||||
|
if spec.xcode:
|
||||||
|
job.xcode_sdk = "appletvos"
|
||||||
|
job.xcode_target = "Static Library-tvOS"
|
||||||
|
job.cmake_arguments.extend([
|
||||||
|
"-DCMAKE_SYSTEM_NAME=tvOS",
|
||||||
|
"-DCMAKE_OSX_ARCHITECTURES=\"arm64\"",
|
||||||
|
"-DCMAKE_OSX_DEPLOYMENT_TARGET=9.0",
|
||||||
|
])
|
||||||
|
case SdlPlatform.MacOS:
|
||||||
|
osx_arch = ";".join(e.value for e in spec.apple_archs) if spec.apple_archs else "arm64"
|
||||||
|
job.cmake_arguments.extend((
|
||||||
|
f"'-DCMAKE_OSX_ARCHITECTURES={osx_arch}'",
|
||||||
|
"-DCMAKE_OSX_DEPLOYMENT_TARGET=10.11",
|
||||||
|
))
|
||||||
|
job.build_autotools_tests = False
|
||||||
|
job.shared_lib = SharedLibType.DYLIB
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
job.apt_packages = []
|
||||||
|
job.brew_packages.extend((
|
||||||
|
"autoconf",
|
||||||
|
"ninja",
|
||||||
|
))
|
||||||
|
if spec.xcode:
|
||||||
|
job.xcode_sdk = "macosx"
|
||||||
|
case SdlPlatform.Android:
|
||||||
|
job.android_mk = spec.android_mk
|
||||||
|
job.run_tests = False
|
||||||
|
job.shared_lib = SharedLibType.SO
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
if spec.android_mk or not spec.no_cmake:
|
||||||
|
job.android_ndk = True
|
||||||
|
if spec.android_mk:
|
||||||
|
job.apt_packages = []
|
||||||
|
if not spec.no_cmake:
|
||||||
|
job.cmake_arguments.extend((
|
||||||
|
f"-DANDROID_PLATFORM={spec.android_platform}",
|
||||||
|
f"-DANDROID_ABI={spec.android_abi}",
|
||||||
|
))
|
||||||
|
job.cmake_toolchain_file = "${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake"
|
||||||
|
job.cc = f"${{ANDROID_NDK_HOME}}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target={spec.android_arch}-none-linux-androideabi{spec.android_platform}"
|
||||||
|
|
||||||
|
job.android_apks = [
|
||||||
|
"testaudiorecording-apk",
|
||||||
|
"testautomation-apk",
|
||||||
|
"testcontroller-apk",
|
||||||
|
"testmultiaudio-apk",
|
||||||
|
"testsprite-apk",
|
||||||
|
]
|
||||||
|
case SdlPlatform.Emscripten:
|
||||||
|
job.run_tests = False
|
||||||
|
job.shared = False
|
||||||
|
job.cmake_config_emulator = "emcmake"
|
||||||
|
job.cmake_build_type = "Debug"
|
||||||
|
job.test_pkg_config = False
|
||||||
|
job.cmake_arguments.extend((
|
||||||
|
"-DSDLTEST_BROWSER=chrome",
|
||||||
|
"-DSDLTEST_TIMEOUT_MULTIPLIER=4",
|
||||||
|
"-DSDLTEST_CHROME_BINARY=${CHROME_BINARY}",
|
||||||
|
))
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
case SdlPlatform.Ps2:
|
||||||
|
build_parallel = False
|
||||||
|
job.shared = False
|
||||||
|
job.sudo = ""
|
||||||
|
job.apt_packages = []
|
||||||
|
job.apk_packages = ["cmake", "gmp", "mpc1", "mpfr4", "ninja", "pkgconf", "git", ]
|
||||||
|
job.cmake_toolchain_file = "${PS2DEV}/ps2sdk/ps2dev.cmake"
|
||||||
|
job.run_tests = False
|
||||||
|
job.shared = False
|
||||||
|
job.cc = "mips64r5900el-ps2-elf-gcc"
|
||||||
|
job.ldflags = ["-L${PS2DEV}/ps2sdk/ee/lib", "-L${PS2DEV}/gsKit/lib", "-L${PS2DEV}/ps2sdk/ports/lib", ]
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
case SdlPlatform.Psp:
|
||||||
|
build_parallel = False
|
||||||
|
job.sudo = ""
|
||||||
|
job.apt_packages = []
|
||||||
|
job.apk_packages = ["cmake", "gmp", "mpc1", "mpfr4", "ninja", "pkgconf", ]
|
||||||
|
job.cmake_toolchain_file = "${PSPDEV}/psp/share/pspdev.cmake"
|
||||||
|
job.run_tests = False
|
||||||
|
job.shared = False
|
||||||
|
job.cc = "psp-gcc"
|
||||||
|
job.ldflags = ["-L${PSPDEV}/lib", "-L${PSPDEV}/psp/lib", "-L${PSPDEV}/psp/sdk/lib", ]
|
||||||
|
job.pollute_directories = ["${PSPDEV}/include", "${PSPDEV}/psp/include", "${PSPDEV}/psp/sdk/include", ]
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
case SdlPlatform.Vita:
|
||||||
|
job.sudo = ""
|
||||||
|
job.apt_packages = []
|
||||||
|
job.apk_packages = ["cmake", "ninja", "pkgconf", "bash", "tar"]
|
||||||
|
job.cmake_toolchain_file = "${VITASDK}/share/vita.toolchain.cmake"
|
||||||
|
assert spec.vita_gles is not None
|
||||||
|
job.setup_vita_gles_type = {
|
||||||
|
VitaGLES.Pib: "pib",
|
||||||
|
VitaGLES.Pvr: "pvr",
|
||||||
|
}[spec.vita_gles]
|
||||||
|
job.cmake_arguments.extend((
|
||||||
|
f"-DVIDEO_VITA_PIB={ 'true' if spec.vita_gles == VitaGLES.Pib else 'false' }",
|
||||||
|
f"-DVIDEO_VITA_PVR={ 'true' if spec.vita_gles == VitaGLES.Pvr else 'false' }",
|
||||||
|
"-DSDL_ARMNEON=ON",
|
||||||
|
"-DSDL_ARMSIMD=ON",
|
||||||
|
))
|
||||||
|
# Fix vita.toolchain.cmake (https://github.com/vitasdk/vita-toolchain/pull/253)
|
||||||
|
job.source_cmd = r"""sed -i -E "s#set\\( PKG_CONFIG_EXECUTABLE \"\\$\\{VITASDK}/bin/arm-vita-eabi-pkg-config\" \\)#set\\( PKG_CONFIG_EXECUTABLE \"${VITASDK}/bin/arm-vita-eabi-pkg-config\" CACHE PATH \"Path of pkg-config executable\" \\)#" ${VITASDK}/share/vita.toolchain.cmake"""
|
||||||
|
job.run_tests = False
|
||||||
|
job.shared = False
|
||||||
|
job.cc = "arm-vita-eabi-gcc"
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
case SdlPlatform.Haiku:
|
||||||
|
fpic = False
|
||||||
|
job.build_autotools_tests = False
|
||||||
|
job.run_tests = False
|
||||||
|
job.cc = "x86_64-unknown-haiku-gcc"
|
||||||
|
job.cxx = "x86_64-unknown-haiku-g++"
|
||||||
|
job.sudo = ""
|
||||||
|
job.cmake_arguments.extend((
|
||||||
|
f"-DCMAKE_C_COMPILER={job.cc}",
|
||||||
|
f"-DCMAKE_CXX_COMPILER={job.cxx}",
|
||||||
|
"-DSDL_UNIX_CONSOLE_BUILD=ON",
|
||||||
|
))
|
||||||
|
job.shared_lib = SharedLibType.SO_0
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
case SdlPlatform.N3ds:
|
||||||
|
job.cmake_generator = "Unix Makefiles"
|
||||||
|
job.cmake_build_arguments.append("-j$(nproc)")
|
||||||
|
job.shared = False
|
||||||
|
job.apt_packages = []
|
||||||
|
job.run_tests = False
|
||||||
|
job.cc_from_cmake = True
|
||||||
|
job.cmake_toolchain_file = "${DEVKITPRO}/cmake/3DS.cmake"
|
||||||
|
job.binutils_strings = "/opt/devkitpro/devkitARM/bin/arm-none-eabi-strings"
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
case SdlPlatform.Msys2:
|
||||||
|
job.shell = "msys2 {0}"
|
||||||
|
assert spec.msys2_platform
|
||||||
|
job.msys2_msystem = spec.msys2_platform.value
|
||||||
|
job.msys2_env = {
|
||||||
|
"mingw32": "mingw-w64-i686",
|
||||||
|
"mingw64": "mingw-w64-x86_64",
|
||||||
|
"clang32": "mingw-w64-clang-i686",
|
||||||
|
"clang64": "mingw-w64-clang-x86_64",
|
||||||
|
"ucrt64": "mingw-w64-ucrt-x86_64",
|
||||||
|
}[spec.msys2_platform.value]
|
||||||
|
job.msys2_no_perl = spec.msys2_platform in (Msys2Platform.Mingw32, )
|
||||||
|
job.shared_lib = SharedLibType.WIN32
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
case SdlPlatform.Riscos:
|
||||||
|
# FIXME: Enable SDL_WERROR
|
||||||
|
job.werror = False
|
||||||
|
job.build_autotools_tests = False
|
||||||
|
job.apt_packages = ["cmake", "ninja-build"]
|
||||||
|
job.test_pkg_config = False
|
||||||
|
job.shared = False
|
||||||
|
job.run_tests = False
|
||||||
|
job.sudo = ""
|
||||||
|
job.cmake_arguments.extend((
|
||||||
|
"-DRISCOS:BOOL=ON",
|
||||||
|
"-DCMAKE_DISABLE_PRECOMPILE_HEADERS:BOOL=ON",
|
||||||
|
"-DSDL_GCC_ATOMICS:BOOL=OFF",
|
||||||
|
))
|
||||||
|
job.cmake_toolchain_file = "/home/riscos/env/toolchain-riscos.cmake"
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
case SdlPlatform.FreeBSD | SdlPlatform.NetBSD | SdlPlatform.OpenBSD:
|
||||||
|
job.build_autotools_tests = False
|
||||||
|
job.cpactions = True
|
||||||
|
job.no_cmake = True
|
||||||
|
job.run_tests = False
|
||||||
|
job.apt_packages = []
|
||||||
|
job.shared_lib = SharedLibType.SO_0
|
||||||
|
job.static_lib = StaticLibType.A
|
||||||
|
match spec.platform:
|
||||||
|
case SdlPlatform.FreeBSD:
|
||||||
|
job.cpactions_os = "freebsd"
|
||||||
|
job.cpactions_version = "14.2"
|
||||||
|
job.cpactions_arch = "x86-64"
|
||||||
|
job.cpactions_setup_cmd = "sudo pkg update"
|
||||||
|
job.cpactions_install_cmd = "sudo pkg install -y cmake ninja pkgconf libXcursor libXext libXinerama libXi libXfixes libXrandr libXScrnSaver libXxf86vm wayland wayland-protocols libxkbcommon mesa-libs libglvnd evdev-proto libinotify alsa-lib jackit pipewire pulseaudio sndio dbus zh-fcitx ibus libudev-devd"
|
||||||
|
job.cmake_arguments.extend((
|
||||||
|
"-DSDL_CHECK_REQUIRED_INCLUDES=/usr/local/include",
|
||||||
|
"-DSDL_CHECK_REQUIRED_LINK_OPTIONS=-L/usr/local/lib",
|
||||||
|
))
|
||||||
|
case SdlPlatform.NetBSD:
|
||||||
|
job.cpactions_os = "netbsd"
|
||||||
|
job.cpactions_version = "10.1"
|
||||||
|
job.cpactions_arch = "x86-64"
|
||||||
|
job.cpactions_setup_cmd = "export PATH=\"/usr/pkg/sbin:/usr/pkg/bin:/sbin:$PATH\"; export PKG_CONFIG_PATH=\"/usr/pkg/lib/pkgconfig\";export PKG_PATH=\"https://cdn.netBSD.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r|cut -f \"1 2\" -d.)/All/\";echo \"PKG_PATH=$PKG_PATH\";echo \"uname -a -> \"$(uname -a)\"\";sudo -E sysctl -w security.pax.aslr.enabled=0;sudo -E sysctl -w security.pax.aslr.global=0;sudo -E pkgin clean;sudo -E pkgin update"
|
||||||
|
job.cpactions_install_cmd = "sudo -E pkgin -y install cmake dbus pkgconf ninja-build pulseaudio libxkbcommon wayland wayland-protocols libinotify libusb1"
|
||||||
|
case SdlPlatform.OpenBSD:
|
||||||
|
job.cpactions_os = "openbsd"
|
||||||
|
job.cpactions_version = "7.4"
|
||||||
|
job.cpactions_arch = "x86-64"
|
||||||
|
job.cpactions_setup_cmd = "sudo pkg_add -u"
|
||||||
|
job.cpactions_install_cmd = "sudo pkg_add cmake ninja pkgconf wayland wayland-protocols xwayland libxkbcommon libinotify pulseaudio dbus ibus"
|
||||||
|
case SdlPlatform.Watcom:
|
||||||
|
match spec.watcom_platform:
|
||||||
|
case WatcomPlatform.OS2:
|
||||||
|
job.watcom_makefile = "Makefile.os2"
|
||||||
|
job.run_tests = False
|
||||||
|
case WatcomPlatform.Windows:
|
||||||
|
job.watcom_makefile = "Makefile.w32"
|
||||||
|
job.run_tests = True
|
||||||
|
case _:
|
||||||
|
raise ValueError(f"Unsupported watcom_platform=${spec.watcom_platform}")
|
||||||
|
case _:
|
||||||
|
raise ValueError(f"Unsupported platform={spec.platform}")
|
||||||
|
|
||||||
|
if "ubuntu" in spec.name.lower():
|
||||||
|
job.check_sources = True
|
||||||
|
|
||||||
|
if not build_parallel:
|
||||||
|
job.cmake_build_arguments.append("-j1")
|
||||||
|
if job.cflags:
|
||||||
|
job.cmake_arguments.append(f"-DCMAKE_C_FLAGS={my_shlex_join(job.cflags)}")
|
||||||
|
if job.cxxflags:
|
||||||
|
job.cmake_arguments.append(f"-DCMAKE_CXX_FLAGS={my_shlex_join(job.cxxflags)}")
|
||||||
|
if job.ldflags:
|
||||||
|
job.cmake_arguments.append(f"-DCMAKE_SHARED_LINKER_FLAGS={my_shlex_join(job.ldflags)}")
|
||||||
|
job.cmake_arguments.append(f"-DCMAKE_EXE_LINKER_FLAGS={my_shlex_join(job.ldflags)}")
|
||||||
|
job.pretest_cmd = "\n".join(pretest_cmd)
|
||||||
|
def tf(b):
|
||||||
|
return "ON" if b else "OFF"
|
||||||
|
|
||||||
|
if fpic is not None:
|
||||||
|
job.cmake_arguments.append(f"-DCMAKE_POSITION_INDEPENDENT_CODE={tf(fpic)}")
|
||||||
|
|
||||||
|
if job.no_cmake:
|
||||||
|
job.cmake_arguments = []
|
||||||
|
|
||||||
|
return job
|
||||||
|
|
||||||
|
|
||||||
|
def spec_to_platform(spec: JobSpec, key: str, enable_artifacts: bool, trackmem_symbol_names: bool) -> dict[str, str|bool]:
|
||||||
|
logger.info("spec=%r", spec)
|
||||||
|
job = spec_to_job(spec, key=key, trackmem_symbol_names=trackmem_symbol_names)
|
||||||
|
logger.info("job=%r", job)
|
||||||
|
platform = job.to_workflow(enable_artifacts=enable_artifacts)
|
||||||
|
logger.info("platform=%r", platform)
|
||||||
|
return platform
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(allow_abbrev=False)
|
||||||
|
parser.add_argument("--github-variable-prefix", default="platforms")
|
||||||
|
parser.add_argument("--github-ci", action="store_true")
|
||||||
|
parser.add_argument("--verbose", action="store_true")
|
||||||
|
parser.add_argument("--commit-message-file")
|
||||||
|
parser.add_argument("--no-artifact", dest="enable_artifacts", action="store_false")
|
||||||
|
parser.add_argument("--trackmem-symbol-names", dest="trackmem_symbol_names", action="store_true")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
logging.basicConfig(level=logging.INFO if args.verbose else logging.WARNING)
|
||||||
|
|
||||||
|
remaining_keys = set(JOB_SPECS.keys())
|
||||||
|
|
||||||
|
all_level_keys = (
|
||||||
|
# Level 1
|
||||||
|
(
|
||||||
|
"haiku",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
filters = []
|
||||||
|
if args.commit_message_file:
|
||||||
|
with open(args.commit_message_file, "r") as f:
|
||||||
|
commit_message = f.read()
|
||||||
|
for m in re.finditer(r"\[sdl-ci-filter (.*)]", commit_message, flags=re.M):
|
||||||
|
filters.append(m.group(1).strip(" \t\n\r\t'\""))
|
||||||
|
|
||||||
|
if re.search(r"\[sdl-ci-artifacts?]", commit_message, flags=re.M):
|
||||||
|
args.enable_artifacts = True
|
||||||
|
|
||||||
|
if re.search(r"\[sdl-ci-(full-)?trackmem(-symbol-names)?]", commit_message, flags=re.M):
|
||||||
|
args.trackmem_symbol_names = True
|
||||||
|
|
||||||
|
if not filters:
|
||||||
|
filters.append("*")
|
||||||
|
|
||||||
|
logger.info("filters: %r", filters)
|
||||||
|
|
||||||
|
all_level_platforms = {}
|
||||||
|
|
||||||
|
all_platforms = {key: spec_to_platform(spec, key=key, enable_artifacts=args.enable_artifacts, trackmem_symbol_names=args.trackmem_symbol_names) for key, spec in JOB_SPECS.items()}
|
||||||
|
|
||||||
|
for level_i, level_keys in enumerate(all_level_keys, 1):
|
||||||
|
level_key = f"level{level_i}"
|
||||||
|
logger.info("Level %d: keys=%r", level_i, level_keys)
|
||||||
|
assert all(k in remaining_keys for k in level_keys)
|
||||||
|
level_platforms = tuple(all_platforms[key] for key in level_keys)
|
||||||
|
remaining_keys.difference_update(level_keys)
|
||||||
|
all_level_platforms[level_key] = level_platforms
|
||||||
|
logger.info("=" * 80)
|
||||||
|
|
||||||
|
logger.info("Keys before filter: %r", remaining_keys)
|
||||||
|
|
||||||
|
filtered_remaining_keys = set()
|
||||||
|
for filter in filters:
|
||||||
|
filtered_remaining_keys.update(fnmatch.filter(remaining_keys, filter))
|
||||||
|
|
||||||
|
logger.info("Keys after filter: %r", filtered_remaining_keys)
|
||||||
|
|
||||||
|
remaining_keys = filtered_remaining_keys
|
||||||
|
|
||||||
|
logger.info("Remaining: %r", remaining_keys)
|
||||||
|
all_level_platforms["others"] = tuple(all_platforms[key] for key in remaining_keys)
|
||||||
|
|
||||||
|
if args.github_ci:
|
||||||
|
for level, platforms in all_level_platforms.items():
|
||||||
|
platforms_json = json.dumps(platforms)
|
||||||
|
txt = f"{args.github_variable_prefix}-{level}={platforms_json}"
|
||||||
|
logger.info("%s", txt)
|
||||||
|
if "GITHUB_OUTPUT" in os.environ:
|
||||||
|
with open(os.environ["GITHUB_OUTPUT"], "a") as f:
|
||||||
|
f.write(txt)
|
||||||
|
f.write("\n")
|
||||||
|
else:
|
||||||
|
logger.warning("GITHUB_OUTPUT not defined")
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
raise SystemExit(main())
|
45
.github/workflows/emscripten.yml
vendored
45
.github/workflows/emscripten.yml
vendored
@@ -1,45 +0,0 @@
|
|||||||
name: Build (Emscripten)
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
emscripten:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: mymindstorm/setup-emsdk@v12
|
|
||||||
with:
|
|
||||||
version: 3.1.35
|
|
||||||
- name: Install ninja
|
|
||||||
run: |
|
|
||||||
sudo apt-get -y update
|
|
||||||
sudo apt-get install -y ninja-build
|
|
||||||
- name: Configure CMake
|
|
||||||
run: |
|
|
||||||
emcmake cmake -S . -B build \
|
|
||||||
-DSDL_WERROR=ON \
|
|
||||||
-DSDL_TESTS=ON \
|
|
||||||
-DSDL_INSTALL_TESTS=ON \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=prefix \
|
|
||||||
-GNinja
|
|
||||||
- name: Build
|
|
||||||
run: cmake --build build/ --verbose
|
|
||||||
- name: Run build-time tests
|
|
||||||
run: |
|
|
||||||
set -eu
|
|
||||||
export SDL_TESTS_QUICK=1
|
|
||||||
# FIXME: enable Emscripten build time tests
|
|
||||||
# ctest -VV --test-dir build/
|
|
||||||
- name: Install
|
|
||||||
run: |
|
|
||||||
echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV
|
|
||||||
cmake --install build/
|
|
||||||
- name: Verify CMake configuration files
|
|
||||||
run: |
|
|
||||||
emcmake cmake -S cmake/test -B cmake_config_build \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DSDL_VENDOR_INFO="Github Workflow" \
|
|
||||||
-DTEST_SHARED=FALSE \
|
|
||||||
-DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }}
|
|
||||||
cmake --build cmake_config_build --verbose
|
|
352
.github/workflows/generic.yml
vendored
Normal file
352
.github/workflows/generic.yml
vendored
Normal file
@@ -0,0 +1,352 @@
|
|||||||
|
name: 'Build'
|
||||||
|
run-name: 'Configure, Build and Test SDL'
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
platforms:
|
||||||
|
description: 'JSON-encoded test properties'
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: ${{ matrix.platform.name }}
|
||||||
|
runs-on: ${{ matrix.platform.os }}
|
||||||
|
container: ${{ matrix.platform.container }}
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: ${{ matrix.platform.shell }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
platform: ${{ fromJSON(inputs.platforms) }}
|
||||||
|
steps:
|
||||||
|
- name: 'Set up MSYS2'
|
||||||
|
if: ${{ matrix.platform.platform == 'msys2' }}
|
||||||
|
uses: msys2/setup-msys2@v2
|
||||||
|
with:
|
||||||
|
msystem: ${{ matrix.platform.msys2-msystem }}
|
||||||
|
install: >-
|
||||||
|
${{ matrix.platform.msys2-env }}-cc
|
||||||
|
${{ matrix.platform.msys2-env }}-cmake
|
||||||
|
${{ matrix.platform.msys2-env }}-ninja
|
||||||
|
${{ (!matrix.platform.msys2-no-perl && format('{0}-perl', matrix.platform.msys2-env)) || '' }}
|
||||||
|
${{ matrix.platform.msys2-env }}-pkg-config
|
||||||
|
${{ matrix.platform.msys2-env }}-clang-tools-extra
|
||||||
|
- name: 'About this job'
|
||||||
|
run: |
|
||||||
|
echo "key=${{ matrix.platform.key }}"
|
||||||
|
echo "name=${{ matrix.platform.name }}"
|
||||||
|
echo "os=${{ matrix.platform.os }}"
|
||||||
|
echo ""
|
||||||
|
echo "Add [sdl-ci-filter ${{ matrix.platform.key }}] to your commit message to reduce the number of jobs."
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: 'Set up ninja'
|
||||||
|
if: ${{ matrix.platform.setup-ninja }}
|
||||||
|
uses: ./.github/actions/setup-ninja
|
||||||
|
- uses: mymindstorm/setup-emsdk@v14
|
||||||
|
if: ${{ matrix.platform.platform == 'emscripten' }}
|
||||||
|
with:
|
||||||
|
version: 3.1.35
|
||||||
|
- uses: nttld/setup-ndk@v1
|
||||||
|
if: ${{ matrix.platform.android-ndk }}
|
||||||
|
id: setup-ndk
|
||||||
|
with:
|
||||||
|
local-cache: true
|
||||||
|
ndk-version: r21e
|
||||||
|
- uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
if: ${{ matrix.platform.platform == 'msvc' }}
|
||||||
|
with:
|
||||||
|
arch: ${{ matrix.platform.msvc-vcvars-arch }}
|
||||||
|
sdk: ${{ matrix.platform.msvc-vcvars-sdk }}
|
||||||
|
- name: 'Set up Windows GDK Desktop'
|
||||||
|
uses: ./.github/actions/setup-gdk-desktop
|
||||||
|
if: ${{ matrix.platform.setup-gdk-folder != '' }}
|
||||||
|
with:
|
||||||
|
folder: '${{ matrix.platform.setup-gdk-folder }}'
|
||||||
|
- name: 'Setup Intel oneAPI toolchain'
|
||||||
|
id: intel
|
||||||
|
if: ${{ matrix.platform.intel }}
|
||||||
|
run: |
|
||||||
|
# Download the key to system keyring
|
||||||
|
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
|
||||||
|
| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
|
||||||
|
|
||||||
|
# Add signed entry to apt sources and configure the APT client to use Intel repository:
|
||||||
|
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
|
||||||
|
|
||||||
|
# Update package list
|
||||||
|
sudo apt-get update -y
|
||||||
|
|
||||||
|
# Install oneAPI
|
||||||
|
sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
|
||||||
|
- name: 'Install apk packages'
|
||||||
|
if: ${{ matrix.platform.apk-packages != '' }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.sudo }} apk update
|
||||||
|
${{ matrix.platform.sudo }} apk add ${{ matrix.platform.apk-packages }}
|
||||||
|
- name: 'Install apt packages'
|
||||||
|
if: ${{ matrix.platform.apt-packages != '' }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.sudo }} apt-get update
|
||||||
|
${{ matrix.platform.sudo }} apt-get install -y ${{ matrix.platform.apt-packages }}
|
||||||
|
- name: 'Install brew packages'
|
||||||
|
if: ${{ matrix.platform.brew-packages != '' }}
|
||||||
|
run: |
|
||||||
|
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
||||||
|
brew update
|
||||||
|
brew install ${{ matrix.platform.brew-packages }}
|
||||||
|
- name: 'Set up GLES for VITA' # Must be after apk
|
||||||
|
if: ${{ matrix.platform.setup-vita-gles-type != '' }}
|
||||||
|
uses: ./.github/actions/setup-vita-gles
|
||||||
|
with:
|
||||||
|
type: ${{ matrix.platform.setup-vita-gles-type }}
|
||||||
|
|
||||||
|
- name: 'Configure (Autotools)'
|
||||||
|
if: ${{ !matrix.platform.no-autotools }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.source_cmd }}
|
||||||
|
set -eu
|
||||||
|
rm -rf build-autotools
|
||||||
|
mkdir build-autotools
|
||||||
|
./autogen.sh
|
||||||
|
(
|
||||||
|
cd build-autotools
|
||||||
|
../configure \
|
||||||
|
--enable-vendor-info="Github Workflow" \
|
||||||
|
--enable-werror \
|
||||||
|
--prefix=${{ github.workspace }}/autotools_prefix \
|
||||||
|
)
|
||||||
|
if test "x${{ (matrix.platform.build-autotools-tests && 'yes') || 'no' }}" = "xyes" ; then
|
||||||
|
curdir="$(pwd)"
|
||||||
|
multiarch="$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
|
||||||
|
(
|
||||||
|
mkdir -p build-autotools/test
|
||||||
|
cd build-autotools/test
|
||||||
|
../../test/configure \
|
||||||
|
--enable-werror \
|
||||||
|
--x-includes=/usr/include \
|
||||||
|
--x-libraries="/usr/lib/${multiarch}" \
|
||||||
|
--prefix=${{ github.workspace }}/autotools_prefix \
|
||||||
|
SDL_CFLAGS="-I${curdir}/include" \
|
||||||
|
SDL_LIBS="-L${curdir}/build-autotools/build/.libs -lSDL2" \
|
||||||
|
ac_cv_lib_SDL2_ttf_TTF_Init=no \
|
||||||
|
${NULL+}
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
- name: 'Build (Autotools)'
|
||||||
|
if: ${{ !matrix.platform.no-autotools }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.source_cmd }}
|
||||||
|
set -eu
|
||||||
|
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||||
|
make -j"${parallel}" -C build-autotools V=1
|
||||||
|
if test "x${{ (matrix.platform.build-autotools-tests && 'yes') || 'no' }}" = "xyes" ; then
|
||||||
|
make -j"${parallel}" -C build-autotools/test V=1
|
||||||
|
fi
|
||||||
|
- name: 'Run build-time tests (Autotools)'
|
||||||
|
if: ${{ !matrix.platform.no-autotools && matrix.platform.build-autotools-tests && matrix.platform.run-tests }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.source_cmd }}
|
||||||
|
set -eu
|
||||||
|
curdir="$(pwd)"
|
||||||
|
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||||
|
export SDL_TESTS_QUICK=1
|
||||||
|
make -j"${parallel}" -C build-autotools/test check LD_LIBRARY_PATH="${curdir}/build-autotools/build/.libs"
|
||||||
|
if test "${{ runner.os }}" = "Linux"; then
|
||||||
|
# This should show us the SDL_REVISION
|
||||||
|
strings "${curdir}/build-autotools/build/.libs/libSDL2-2.0.so.0" | grep SDL-
|
||||||
|
fi
|
||||||
|
- name: 'Install (Autotools)'
|
||||||
|
if: ${{ !matrix.platform.no-autotools }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.source_cmd }}
|
||||||
|
set -eu
|
||||||
|
curdir="$(pwd)"
|
||||||
|
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||||
|
make -j"${parallel}" -C build-autotools install V=1
|
||||||
|
if test "x${{ (matrix.platform.build-autotools-tests && 'yes') || 'no' }}" = "xyes" ; then
|
||||||
|
make -j"${parallel}" -C build-autotools/test install V=1
|
||||||
|
fi
|
||||||
|
( cd autotools_prefix; find . ) | LC_ALL=C sort -u
|
||||||
|
echo "prefix=$(pwd)/autotools_prefix" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: 'Configure (CMake)'
|
||||||
|
if: ${{ !matrix.platform.no-cmake }}
|
||||||
|
#shell: ${{ matrix.platform.shell }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.source-cmd }}
|
||||||
|
${{ matrix.platform.cmake-config-emulator }} cmake -S . -B build -G "${{ matrix.platform.cmake-generator }}" \
|
||||||
|
-Wdeprecated -Wdev -Werror \
|
||||||
|
${{ matrix.platform.cmake-toolchain-file != '' && format('-DCMAKE_TOOLCHAIN_FILE={0}', matrix.platform.cmake-toolchain-file) || '' }} \
|
||||||
|
-DSDL_WERROR=${{ matrix.platform.werror }} \
|
||||||
|
-DSDL_TESTS=${{ matrix.platform.build-tests }} \
|
||||||
|
-DSDLTEST_TRACKMEM=OFF \
|
||||||
|
-DSDL_INSTALL_TESTS=${{ matrix.platform.build-tests }} \
|
||||||
|
-DSDL_DISABLE_INSTALL_DOCS=OFF \
|
||||||
|
-DSDL_DISABLE_INSTALL_DOCS=OFF \
|
||||||
|
${{ matrix.platform.cmake-arguments }} \
|
||||||
|
-DSDL_SHARED=${{ matrix.platform.shared }} \
|
||||||
|
-DSDL_STATIC=${{ matrix.platform.static }} \
|
||||||
|
-DSDL_TEST=ON \
|
||||||
|
-DSDL_VENDOR_INFO="Github Workflow" \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=prefix \
|
||||||
|
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||||
|
-DSDL_CMAKE_DEBUG_POSTFIX="" \
|
||||||
|
-DCMAKE_BUILD_TYPE=${{ matrix.platform.cmake-build-type }}
|
||||||
|
- name: 'Build (CMake)'
|
||||||
|
id: cmake-build
|
||||||
|
if: ${{ !matrix.platform.no-cmake }}
|
||||||
|
# shell: ${{ matrix.platform.shell }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.source-cmd }}
|
||||||
|
cmake --build build --config ${{ matrix.platform.cmake-build-type }} --verbose -- ${{ matrix.platform.cmake-build-arguments }}
|
||||||
|
- name: 'Verify SDL_REVISION'
|
||||||
|
if: ${{ !matrix.platform.no-cmake }}
|
||||||
|
run: |
|
||||||
|
echo "This should show us the SDL_REVISION"
|
||||||
|
echo "Shared library:"
|
||||||
|
${{ (matrix.platform.shared-lib && format('{0} build/{1} | grep "Github Workflow"', matrix.platform.binutils-strings, matrix.platform.shared-lib)) || 'echo "<Shared library not supported by platform>"' }}
|
||||||
|
echo "Static library:"
|
||||||
|
${{ (matrix.platform.static-lib && format('{0} build/{1} | grep "Github Workflow"', matrix.platform.binutils-strings, matrix.platform.static-lib)) || 'echo "<Static library not supported by platform>"' }}
|
||||||
|
- name: 'Run build-time tests (CMake)'
|
||||||
|
id: cmake-tests
|
||||||
|
if: ${{ !matrix.platform.no-cmake && matrix.platform.run-tests }}
|
||||||
|
# shell: ${{ matrix.platform.shell }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.source-cmd }}
|
||||||
|
${{ matrix.platform.pretest-cmd }}
|
||||||
|
set -eu
|
||||||
|
export SDL_TESTS_QUICK=1
|
||||||
|
ctest -VV --test-dir build/ -j2
|
||||||
|
- name: 'Install (CMake)'
|
||||||
|
id: cmake-install
|
||||||
|
if: ${{ steps.build.outcome == 'success' }}
|
||||||
|
# shell: ${{ matrix.platform.shell }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.source-cmd }}
|
||||||
|
cmake --install build --config ${{ matrix.platform.cmake-build-type }}
|
||||||
|
echo "prefix=$(pwd)/prefix" >> $GITHUB_OUTPUT
|
||||||
|
( cd prefix; find . ) | LC_ALL=C sort -u
|
||||||
|
- name: 'Verify CMake configuration files (CMake)'
|
||||||
|
if: ${{ steps.cmake-install.outcome == 'success' }}
|
||||||
|
# shell: ${{ matrix.platform.shell }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.source-cmd }}
|
||||||
|
${{ matrix.platform.cmake-config-emulator }} cmake -S cmake/test -B cmake_test_build -GNinja \
|
||||||
|
${{ matrix.platform.cmake-toolchain-file != '' && format('-DCMAKE_TOOLCHAIN_FILE={0}', matrix.platform.cmake-toolchain-file) || '' }} \
|
||||||
|
-DTEST_SHARED=${{ matrix.platform.shared }} \
|
||||||
|
-DTEST_STATIC=${{ matrix.platform.static }} \
|
||||||
|
${{ matrix.platform.cmake-arguments }} \
|
||||||
|
-DCMAKE_BUILD_TYPE=${{ matrix.platform.cmake-build-type }} \
|
||||||
|
-DCMAKE_PREFIX_PATH="${{ steps.cmake-install.outputs.prefix }}"
|
||||||
|
cmake --build cmake_test_build --verbose --config ${{ matrix.platform.cmake-build-type }} -- ${{ matrix.platform.cmake-build-arguments }}
|
||||||
|
- name: 'Extract CC/CXX/CFLAGS/CXXFLAGS from CMake toolchain'
|
||||||
|
if: ${{ steps.cmake-install.outcome == 'success' && matrix.platform.cc-from-cmake }}
|
||||||
|
# shell: ${{ matrix.platform.shell }}
|
||||||
|
run: |
|
||||||
|
cmake -S .github/cmake -B /tmp/cmake_extract \
|
||||||
|
${{ matrix.platform.cmake-toolchain-file != '' && format('-DCMAKE_TOOLCHAIN_FILE={0}', matrix.platform.cmake-toolchain-file) || '' }} \
|
||||||
|
-DCMAKE_BUILD_TYPE=${{ matrix.platform.cmake-build-type }} \
|
||||||
|
-DVAR_PATH=/tmp/env.txt
|
||||||
|
cat /tmp/env.txt >> $GITHUB_ENV
|
||||||
|
- name: 'Verify sdl2.pc (CMake)'
|
||||||
|
# shell: ${{ matrix.platform.shell }}
|
||||||
|
if: ${{ steps.cmake-install.outcome == 'success' && matrix.platform.test-pkg-config }}
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.source-cmd }}
|
||||||
|
${{ matrix.platform.cc && format('export CC="{0}"', matrix.platform.cc) || '' }}
|
||||||
|
${{ matrix.platform.cflags && format('export CFLAGS="{0}"', matrix.platform.cflags) || '' }}
|
||||||
|
${{ matrix.platform.ldflags && format('export LDFLAGS="{0}"', matrix.platform.ldflags) || '' }}
|
||||||
|
export PKG_CONFIG_PATH=${{ steps.cmake-install.outputs.prefix }}/lib/pkgconfig
|
||||||
|
cmake/test/test_pkgconfig.sh
|
||||||
|
- name: 'Build (cross-platform-actions, BSD)'
|
||||||
|
id: cpactions
|
||||||
|
if: ${{ matrix.platform.cpactions }}
|
||||||
|
uses: cross-platform-actions/action@v0.27.0
|
||||||
|
with:
|
||||||
|
operating_system: '${{ matrix.platform.cpactions-os }}'
|
||||||
|
architecture: '${{ matrix.platform.cpactions-arch }}'
|
||||||
|
version: '${{ matrix.platform.cpactions-version }}'
|
||||||
|
run: |
|
||||||
|
${{ matrix.platform.cpactions-setup-cmd }}
|
||||||
|
${{ matrix.platform.cpactions-install-cmd }}
|
||||||
|
cmake -S . -B build -GNinja \
|
||||||
|
${{ matrix.platform.cmake-toolchain-file != '' && format('-DCMAKE_TOOLCHAIN_FILE={0}', matrix.platform.cmake-toolchain-file) || '' }} \
|
||||||
|
-Wdeprecated -Wdev -Werror \
|
||||||
|
-DSDL_WERROR=${{ matrix.platform.werror }} \
|
||||||
|
-DSDL_DISABLE_INSTALL_DOCS=OFF \
|
||||||
|
${{ matrix.platform.cmake-arguments }} \
|
||||||
|
-DSDL_SHARED=${{ matrix.platform.shared }} \
|
||||||
|
-DSDL_STATIC=${{ matrix.platform.static }} \
|
||||||
|
-DSDL_TEST=ON \
|
||||||
|
-DSDL_VENDOR_INFO="Github Workflow" \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=prefix \
|
||||||
|
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||||
|
-DCMAKE_BUILD_TYPE=${{ matrix.platform.cmake-build-type }}
|
||||||
|
cmake --build build/ --config ${{ matrix.platform.cmake-build-type }} --verbose
|
||||||
|
|
||||||
|
cmake --build build/ --config ${{ matrix.platform.cmake-build-type }} --target clean
|
||||||
|
rm -rf build/CMakeFiles
|
||||||
|
rm -rf build/docs
|
||||||
|
- name: 'Set up Watcom'
|
||||||
|
uses: open-watcom/setup-watcom@v0
|
||||||
|
if: ${{ matrix.platform.watcom-makefile != '' }}
|
||||||
|
- name: 'Build (Watcom)'
|
||||||
|
if: ${{ matrix.platform.watcom-makefile != '' }}
|
||||||
|
run: |
|
||||||
|
wmake -f ${{ matrix.platform.watcom-makefile }} ENABLE_WERROR=1
|
||||||
|
- name: 'Build tests (Watcom)'
|
||||||
|
if: ${{ matrix.platform.watcom-makefile != '' }}
|
||||||
|
run: |
|
||||||
|
cd test
|
||||||
|
wmake -f ${{ matrix.platform.watcom-makefile }} ENABLE_WERROR=1
|
||||||
|
- name: 'Run tests (Watcom)'
|
||||||
|
if: ${{ matrix.platform.watcom-makefile != '' && matrix.platform.run-tests }}
|
||||||
|
run: |
|
||||||
|
cd test
|
||||||
|
wmake -f ${{ matrix.platform.watcom-makefile }} check-quick
|
||||||
|
- name: 'Distclean (Watcom)'
|
||||||
|
if: ${{ matrix.platform.watcom-makefile != '' }}
|
||||||
|
run: |
|
||||||
|
wmake -f ${{ matrix.platform.watcom-makefile }} distclean
|
||||||
|
cd test
|
||||||
|
wmake -f ${{ matrix.platform.watcom-makefile }} distclean
|
||||||
|
- name: 'Add msbuild to PATH'
|
||||||
|
id: setup-msbuild
|
||||||
|
if: ${{ matrix.platform.msvc-project != '' }}
|
||||||
|
uses: microsoft/setup-msbuild@v2
|
||||||
|
- name: Build msbuild
|
||||||
|
if: ${{ matrix.platform.msvc-project != '' }}
|
||||||
|
run: |
|
||||||
|
"$(cygpath -u '${{ steps.setup-msbuild.outputs.msbuildPath }}\msbuild.exe')" ${{ matrix.platform.msvc-project }} -m -p:BuildInParallel=true -p:Configuration=Release ${{ matrix.platform.msvc-project-flags }}
|
||||||
|
- name: 'Build (Android.mk)'
|
||||||
|
if: ${{ matrix.platform.android-mk }}
|
||||||
|
run: |
|
||||||
|
./build-scripts/androidbuildlibs.sh
|
||||||
|
- name: 'Build (xcode)'
|
||||||
|
if: ${{ matrix.platform.xcode-sdk != '' }}
|
||||||
|
run: |
|
||||||
|
xcodebuild -project Xcode/SDL/SDL.xcodeproj -target "${{ matrix.platform.xcode-target }}" -configuration Release -sdk ${{ matrix.platform.xcode-sdk }} clean build
|
||||||
|
- name: 'Setup Python'
|
||||||
|
uses: 'actions/setup-python@main'
|
||||||
|
if: ${{ matrix.platform.check-sources }}
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
- name: 'Check Sources'
|
||||||
|
if: ${{ matrix.platform.check-sources }}
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
build-scripts/test-versioning.sh
|
||||||
|
- name: 'Upload binary package'
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
if: ${{ always() && steps.cmake-tests.outcome == 'failure' }}
|
||||||
|
with:
|
||||||
|
if-no-files-found: ignore
|
||||||
|
name: '${{ matrix.platform.artifact }}-minidumps'
|
||||||
|
path: |
|
||||||
|
build/**/*.dmp
|
||||||
|
build/**/*.exe
|
||||||
|
build/**/*.dll
|
||||||
|
build/**/*.pdb
|
20
.github/workflows/ios.yml
vendored
20
.github/workflows/ios.yml
vendored
@@ -1,20 +0,0 @@
|
|||||||
name: Build (iOS/tvOS)
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
Build:
|
|
||||||
name: ${{ matrix.platform.name }}
|
|
||||||
runs-on: macos-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
platform:
|
|
||||||
- { name: iOS, target: Static Library-iOS, sdk: iphoneos }
|
|
||||||
- { name: tvOS, target: Static Library-tvOS, sdk: appletvos }
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Build
|
|
||||||
run: xcodebuild -project Xcode/SDL/SDL.xcodeproj -target '${{ matrix.platform.target }}' -configuration Release -sdk ${{ matrix.platform.sdk }} clean build
|
|
240
.github/workflows/main.yml
vendored
240
.github/workflows/main.yml
vendored
@@ -1,240 +0,0 @@
|
|||||||
name: Build
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
Build:
|
|
||||||
name: ${{ matrix.platform.name }}
|
|
||||||
runs-on: ${{ matrix.platform.os }}
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: ${{ matrix.platform.shell }}
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
platform:
|
|
||||||
- { name: Windows (mingw32), os: windows-latest, shell: 'msys2 {0}', msystem: mingw32, msys-env: mingw-w64-i686 }
|
|
||||||
- { name: Windows (mingw64), os: windows-latest, shell: 'msys2 {0}', msystem: mingw64, msys-env: mingw-w64-x86_64 }
|
|
||||||
- { name: Windows (clang32), os: windows-latest, shell: 'msys2 {0}', msystem: clang32, msys-env: mingw-w64-clang-i686 }
|
|
||||||
- { name: Windows (clang64), os: windows-latest, shell: 'msys2 {0}', msystem: clang64, msys-env: mingw-w64-clang-x86_64 }
|
|
||||||
- { name: Windows (ucrt64), os: windows-latest, shell: 'msys2 {0}', msystem: ucrt64, msys-env: mingw-w64-ucrt-x86_64 }
|
|
||||||
- { name: Ubuntu 20.04 (CMake), os: ubuntu-20.04, shell: sh }
|
|
||||||
- { name: Ubuntu 20.04 (autotools), os: ubuntu-20.04, shell: sh, autotools: true }
|
|
||||||
- { name: Intel oneAPI (Ubuntu 20.04), os: ubuntu-20.04, shell: bash, artifact: 'SDL-ubuntu20.04-oneapi', intel: true,
|
|
||||||
source_cmd: 'source /opt/intel/oneapi/setvars.sh; export CC=icx; export CXX=icx;'}
|
|
||||||
- { name: Intel Compiler (Ubuntu 20.04), os: ubuntu-20.04, shell: bash, artifact: 'SDL-ubuntu20.04-icc', intel: true, cmake: '-DSDL_CLANG_TIDY=OFF',
|
|
||||||
source_cmd: 'source /opt/intel/oneapi/setvars.sh; export CC=icc; export CXX=icpc; export CFLAGS=-diag-disable=10441; export CXXFLAGS=-diag-disable=10441; '}
|
|
||||||
|
|
||||||
- { name: Ubuntu 22.04 (CMake), os: ubuntu-22.04, shell: sh }
|
|
||||||
- { name: Ubuntu 22.04 (autotools), os: ubuntu-22.04, shell: sh, autotools: true }
|
|
||||||
- { name: MacOS (CMake), os: macos-latest, shell: sh, cmake: '-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"' }
|
|
||||||
- { name: MacOS (autotools), os: macos-latest, shell: sh, autotools: true }
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Set up MSYS2
|
|
||||||
if: matrix.platform.shell == 'msys2 {0}'
|
|
||||||
uses: msys2/setup-msys2@v2
|
|
||||||
with:
|
|
||||||
msystem: ${{ matrix.platform.msystem }}
|
|
||||||
install: >-
|
|
||||||
${{ matrix.platform.msys-env }}-cc
|
|
||||||
${{ matrix.platform.msys-env }}-cmake
|
|
||||||
${{ matrix.platform.msys-env }}-ninja
|
|
||||||
${{ matrix.platform.msys-env }}-pkg-config
|
|
||||||
|
|
||||||
- name: Setup Linux dependencies
|
|
||||||
if: runner.os == 'Linux'
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install build-essential git make autoconf automake libtool \
|
|
||||||
pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev \
|
|
||||||
libaudio-dev libjack-dev libsndio-dev libsamplerate0-dev libx11-dev libxext-dev \
|
|
||||||
libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libwayland-dev \
|
|
||||||
libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev \
|
|
||||||
libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev
|
|
||||||
|
|
||||||
- name: Setup extra Ubuntu 22.04 dependencies
|
|
||||||
if: matrix.platform.os == 'ubuntu-22.04'
|
|
||||||
run: |
|
|
||||||
sudo apt-get install libpipewire-0.3-dev libdecor-0-dev
|
|
||||||
|
|
||||||
- name: Setup Macos dependencies
|
|
||||||
if: runner.os == 'macOS'
|
|
||||||
run: |
|
|
||||||
brew install \
|
|
||||||
ninja \
|
|
||||||
pkg-config
|
|
||||||
|
|
||||||
- name: Setup Intel oneAPI
|
|
||||||
if: matrix.platform.intel
|
|
||||||
run: |
|
|
||||||
# Download the key to system keyring
|
|
||||||
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
|
|
||||||
| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
|
|
||||||
|
|
||||||
# Add signed entry to apt sources and configure the APT client to use Intel repository:
|
|
||||||
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
|
|
||||||
|
|
||||||
# Update package list
|
|
||||||
sudo apt-get update -y
|
|
||||||
|
|
||||||
# Install oneAPI
|
|
||||||
sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
|
|
||||||
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Check that versioning is consistent
|
|
||||||
# We only need to run this once: arbitrarily use the Linux/CMake build
|
|
||||||
if: "runner.os == 'Linux' && ! matrix.platform.autotools"
|
|
||||||
run: ./build-scripts/test-versioning.sh
|
|
||||||
- name: Configure (CMake)
|
|
||||||
if: "! matrix.platform.autotools"
|
|
||||||
run: |
|
|
||||||
${{ matrix.platform.source_cmd }}
|
|
||||||
cmake -S . -B build -G Ninja \
|
|
||||||
-DSDL_TESTS=ON \
|
|
||||||
-DSDL_WERROR=ON \
|
|
||||||
-DSDL_INSTALL_TESTS=ON \
|
|
||||||
-DSDL_VENDOR_INFO="Github Workflow" \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=cmake_prefix \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
${{ matrix.platform.cmake }}
|
|
||||||
- name: Build (CMake)
|
|
||||||
if: "! matrix.platform.autotools"
|
|
||||||
run: |
|
|
||||||
${{ matrix.platform.source_cmd }}
|
|
||||||
cmake --build build/ --config Release --verbose --parallel
|
|
||||||
- name: Run build-time tests (CMake)
|
|
||||||
if: "! matrix.platform.autotools"
|
|
||||||
run: |
|
|
||||||
${{ matrix.platform.source_cmd }}
|
|
||||||
set -eu
|
|
||||||
export SDL_TESTS_QUICK=1
|
|
||||||
ctest -VV --test-dir build/ -j2
|
|
||||||
if test "${{ runner.os }}" = "Linux"; then
|
|
||||||
# This should show us the SDL_REVISION
|
|
||||||
strings build/libSDL2-2.0.so.0 | grep SDL-
|
|
||||||
fi
|
|
||||||
- name: Install (CMake)
|
|
||||||
if: "! matrix.platform.autotools"
|
|
||||||
run: |
|
|
||||||
set -eu
|
|
||||||
cmake --install build/ --config Release
|
|
||||||
echo "SDL2_DIR=$(pwd)/cmake_prefix" >> $GITHUB_ENV
|
|
||||||
( cd cmake_prefix; find ) | LC_ALL=C sort -u
|
|
||||||
- name: Configure (Autotools)
|
|
||||||
if: matrix.platform.autotools
|
|
||||||
run: |
|
|
||||||
${{ matrix.platform.source_cmd }}
|
|
||||||
set -eu
|
|
||||||
rm -fr build-autotools
|
|
||||||
mkdir build-autotools
|
|
||||||
./autogen.sh
|
|
||||||
(
|
|
||||||
cd build-autotools
|
|
||||||
${{ github.workspace }}/configure \
|
|
||||||
--enable-vendor-info="Github Workflow" \
|
|
||||||
--enable-werror \
|
|
||||||
--prefix=${{ github.workspace }}/autotools_prefix \
|
|
||||||
)
|
|
||||||
if test "${{ runner.os }}" != "macOS" ; then
|
|
||||||
curdir="$(pwd)"
|
|
||||||
multiarch="$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
|
|
||||||
(
|
|
||||||
mkdir -p build-autotools/test
|
|
||||||
cd build-autotools/test
|
|
||||||
${{ github.workspace }}/test/configure \
|
|
||||||
--enable-werror \
|
|
||||||
--x-includes=/usr/include \
|
|
||||||
--x-libraries="/usr/lib/${multiarch}" \
|
|
||||||
--prefix=${{ github.workspace }}/autotools_prefix \
|
|
||||||
SDL_CFLAGS="-I${curdir}/include" \
|
|
||||||
SDL_LIBS="-L${curdir}/build-autotools/build/.libs -lSDL2" \
|
|
||||||
ac_cv_lib_SDL2_ttf_TTF_Init=no \
|
|
||||||
${NULL+}
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
- name: Build (Autotools)
|
|
||||||
if: matrix.platform.autotools
|
|
||||||
run: |
|
|
||||||
${{ matrix.platform.source_cmd }}
|
|
||||||
set -eu
|
|
||||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
|
||||||
make -j"${parallel}" -C build-autotools V=1
|
|
||||||
if test "${{ runner.os }}" != "macOS" ; then
|
|
||||||
make -j"${parallel}" -C build-autotools/test V=1
|
|
||||||
fi
|
|
||||||
- name: Run build-time tests (Autotools)
|
|
||||||
if: ${{ matrix.platform.autotools && (runner.os != 'macOS') }}
|
|
||||||
run: |
|
|
||||||
${{ matrix.platform.source_cmd }}
|
|
||||||
set -eu
|
|
||||||
curdir="$(pwd)"
|
|
||||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
|
||||||
export SDL_TESTS_QUICK=1
|
|
||||||
make -j"${parallel}" -C build-autotools/test check LD_LIBRARY_PATH="${curdir}/build-autotools/build/.libs"
|
|
||||||
if test "${{ runner.os }}" = "Linux"; then
|
|
||||||
# This should show us the SDL_REVISION
|
|
||||||
strings "${curdir}/build-autotools/build/.libs/libSDL2-2.0.so.0" | grep SDL-
|
|
||||||
fi
|
|
||||||
- name: Install (Autotools)
|
|
||||||
if: matrix.platform.autotools
|
|
||||||
run: |
|
|
||||||
${{ matrix.platform.source_cmd }}
|
|
||||||
set -eu
|
|
||||||
curdir="$(pwd)"
|
|
||||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
|
||||||
make -j"${parallel}" -C build-autotools install V=1
|
|
||||||
if test "${{ runner.os }}" != "macOS" ; then
|
|
||||||
make -j"${parallel}" -C build-autotools/test install V=1
|
|
||||||
fi
|
|
||||||
( cd autotools_prefix; find . ) | LC_ALL=C sort -u
|
|
||||||
echo "SDL2_DIR=$(pwd)/autotools_prefix" >> $GITHUB_ENV
|
|
||||||
- name: Verify CMake configuration files
|
|
||||||
run: |
|
|
||||||
${{ matrix.platform.source_cmd }}
|
|
||||||
cmake -S cmake/test -B cmake_config_build -G Ninja \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }}
|
|
||||||
cmake --build cmake_config_build --verbose
|
|
||||||
- name: Verify sdl2-config
|
|
||||||
run: |
|
|
||||||
${{ matrix.platform.source_cmd }}
|
|
||||||
export PATH=${{ env.SDL2_DIR }}/bin:$PATH
|
|
||||||
cmake/test/test_sdlconfig.sh
|
|
||||||
- name: Verify sdl2.pc
|
|
||||||
run: |
|
|
||||||
${{ matrix.platform.source_cmd }}
|
|
||||||
export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
|
|
||||||
cmake/test/test_pkgconfig.sh
|
|
||||||
- name: Distcheck (Autotools)
|
|
||||||
if: matrix.platform.autotools
|
|
||||||
run: |
|
|
||||||
set -eu
|
|
||||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
|
||||||
make -j"${parallel}" -C build-autotools dist V=1
|
|
||||||
# Similar to Automake `make distcheck`: check that the tarball
|
|
||||||
# release is sufficient to do a new build
|
|
||||||
mkdir distcheck
|
|
||||||
tar -C distcheck -zxf build-autotools/SDL2-*.tar.gz
|
|
||||||
( cd distcheck/SDL2-* && ./configure )
|
|
||||||
make -j"${parallel}" -C distcheck/SDL2-*
|
|
||||||
- name: Run installed-tests (Autotools)
|
|
||||||
if: "runner.os == 'Linux' && matrix.platform.autotools"
|
|
||||||
run: |
|
|
||||||
${{ matrix.platform.source_cmd }}
|
|
||||||
set -eu
|
|
||||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
|
||||||
sudo make -j"${parallel}" -C build-autotools install
|
|
||||||
sudo make -j"${parallel}" -C build-autotools/test install
|
|
||||||
export SDL_TESTS_QUICK=1
|
|
||||||
# We need to set LD_LIBRARY_PATH because it isn't in the default
|
|
||||||
# linker search path. We don't need to set XDG_DATA_DIRS for
|
|
||||||
# ginsttest-runner, because /usr/local/share *is* in the default
|
|
||||||
# search path for that.
|
|
||||||
env --chdir=/ \
|
|
||||||
LD_LIBRARY_PATH=/usr/local/lib \
|
|
||||||
SDL_AUDIODRIVER=dummy \
|
|
||||||
SDL_VIDEODRIVER=dummy \
|
|
||||||
ginsttest-runner --tap SDL2
|
|
80
.github/workflows/msvc.yml
vendored
80
.github/workflows/msvc.yml
vendored
@@ -1,80 +0,0 @@
|
|||||||
name: Build (MSVC)
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
Build:
|
|
||||||
name: ${{ matrix.platform.name }}
|
|
||||||
runs-on: windows-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
platform:
|
|
||||||
- { name: Windows (x64), flags: -A x64, project: VisualC/SDL.sln, projectflags: '/p:Platform=x64' }
|
|
||||||
- { name: Windows (x86), flags: -A Win32, project: VisualC/SDL.sln, projectflags: '/p:Platform=Win32' }
|
|
||||||
- { name: Windows static VCRT (x64), flags: -A x64 -DSDL_FORCE_STATIC_VCRT=ON }
|
|
||||||
- { name: Windows static VCRT (x86), flags: -A Win32 -DSDL_FORCE_STATIC_VCRT=ON }
|
|
||||||
- { name: Windows (clang-cl x64), flags: -T ClangCL -A x64 }
|
|
||||||
- { name: Windows (clang-cl x86), flags: -T ClangCL -A Win32 }
|
|
||||||
- { name: Windows (ARM), flags: -A ARM }
|
|
||||||
- { name: Windows (ARM64), flags: -A ARM64 }
|
|
||||||
- { name: UWP (x64), flags: -A x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0" -DSDL_TESTS=OFF, nowerror: true,
|
|
||||||
project: VisualC-WinRT/SDL-UWP.sln, projectflags: '/p:Platform=x64 /p:WindowsTargetPlatformVersion=10.0.17763.0' }
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Create CMake project using SDL as a subproject
|
|
||||||
shell: python
|
|
||||||
run: |
|
|
||||||
import os
|
|
||||||
import textwrap
|
|
||||||
srcdir = r"${{ github.workspace }}".replace("\\", "/")
|
|
||||||
builddir = f"{ srcdir }/build"
|
|
||||||
os.makedirs(builddir)
|
|
||||||
with open(f"{ builddir }/CMakeLists.txt", "w") as f:
|
|
||||||
f.write(textwrap.dedent(f"""\
|
|
||||||
# Always build .PDB symbol file
|
|
||||||
set(CMAKE_POLICY_DEFAULT_CMP0141 "NEW" CACHE STRING "MSVC debug information format flags are selected by an abstraction")
|
|
||||||
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "ProgramDatabase" CACHE STRING "MSVC debug information format")
|
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "-DEBUG" CACHE STRING "Linker flags for executables")
|
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "-DEBUG" CACHE STRING "Linker flag for shared libraries")
|
|
||||||
cmake_minimum_required(VERSION 3.0...3.25)
|
|
||||||
project(sdl_user)
|
|
||||||
enable_testing()
|
|
||||||
add_subdirectory("{ srcdir }" SDL)
|
|
||||||
"""))
|
|
||||||
- name: Configure (CMake)
|
|
||||||
run: cmake -S build -B build `
|
|
||||||
-DSDL_WERROR=${{ !matrix.platform.nowerror }} `
|
|
||||||
-DSDL_TESTS=ON `
|
|
||||||
-DSDL_INSTALL_TESTS=ON `
|
|
||||||
-DSDL_VENDOR_INFO="Github Workflow" `
|
|
||||||
-DSDL2_DISABLE_INSTALL=OFF `
|
|
||||||
${{ matrix.platform.flags }} `
|
|
||||||
-DCMAKE_INSTALL_PREFIX=prefix
|
|
||||||
- name: Build (CMake)
|
|
||||||
run: cmake --build build/ --config Release --parallel
|
|
||||||
- name: Run build-time tests
|
|
||||||
if: "! contains(matrix.platform.name, 'ARM')"
|
|
||||||
run: |
|
|
||||||
$env:SDL_TESTS_QUICK=1
|
|
||||||
ctest -VV --test-dir build/ -C Release -j2
|
|
||||||
- name: Install (CMake)
|
|
||||||
run: |
|
|
||||||
echo "SDL2_DIR=$Env:GITHUB_WORKSPACE/prefix" >> $Env:GITHUB_ENV
|
|
||||||
cmake --install build/
|
|
||||||
- name: Verify CMake configuration files
|
|
||||||
if: ${{ !contains(matrix.platform.name, 'UWP') }} # FIXME: cmake/test/CMakeLists.txt should support UWP
|
|
||||||
run: |
|
|
||||||
cmake -S cmake/test -B cmake_config_build `
|
|
||||||
-DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} `
|
|
||||||
${{ matrix.platform.flags }}
|
|
||||||
cmake --build cmake_config_build --config Release
|
|
||||||
|
|
||||||
- name: Add msbuild to PATH
|
|
||||||
if: ${{ matrix.platform.project != '' }}
|
|
||||||
uses: microsoft/setup-msbuild@v1.1.3
|
|
||||||
- name: Build msbuild
|
|
||||||
if: ${{ matrix.platform.project != '' }}
|
|
||||||
run: msbuild ${{ matrix.platform.project }} /m /p:BuildInParallel=true /p:Configuration=Release ${{ matrix.platform.projectflags }}
|
|
55
.github/workflows/n3ds.yml
vendored
55
.github/workflows/n3ds.yml
vendored
@@ -1,55 +0,0 @@
|
|||||||
name: Build (Nintendo 3DS)
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
n3ds:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container:
|
|
||||||
image: devkitpro/devkitarm:latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Install build requirements
|
|
||||||
run: |
|
|
||||||
apt update
|
|
||||||
apt install ninja-build
|
|
||||||
- name: Configure CMake
|
|
||||||
run: |
|
|
||||||
cmake -S . -B build -G Ninja \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${DEVKITPRO}/cmake/3DS.cmake \
|
|
||||||
-DSDL_WERROR=ON \
|
|
||||||
-DSDL_TESTS=ON \
|
|
||||||
-DSDL_INSTALL_TESTS=ON \
|
|
||||||
-DSDL_VENDOR_INFO="Github Workflow" \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=prefix
|
|
||||||
- name: Build
|
|
||||||
run: cmake --build build --verbose
|
|
||||||
- name: Install CMake
|
|
||||||
run: |
|
|
||||||
echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV
|
|
||||||
cmake --install build/
|
|
||||||
( cd prefix; find ) | LC_ALL=C sort -u
|
|
||||||
- name: Verify CMake configuration files
|
|
||||||
run: |
|
|
||||||
cmake -S cmake/test -B cmake_config_build -G Ninja \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${DEVKITPRO}/cmake/3DS.cmake \
|
|
||||||
-DTEST_SHARED=FALSE \
|
|
||||||
-DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release
|
|
||||||
cmake --build cmake_config_build --verbose
|
|
||||||
- name: Extract CC/CXX/CFLAGS/CXXFLAGS from CMake toolchain
|
|
||||||
run: |
|
|
||||||
cmake -S .github/cmake -B /tmp/cmake_extract \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${DEVKITPRO}/cmake/3DS.cmake \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DVAR_PATH=/tmp/n3ds_env.txt
|
|
||||||
cat /tmp/n3ds_env.txt >> $GITHUB_ENV
|
|
||||||
- name: Verify sdl2-config
|
|
||||||
run: |
|
|
||||||
export PATH=${{ env.SDL2_DIR }}/bin:$PATH
|
|
||||||
cmake/test/test_sdlconfig.sh
|
|
||||||
- name: Verify sdl2.pc
|
|
||||||
run: |
|
|
||||||
export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
|
|
||||||
cmake/test/test_pkgconfig.sh
|
|
73
.github/workflows/ps2.yaml
vendored
73
.github/workflows/ps2.yaml
vendored
@@ -1,73 +0,0 @@
|
|||||||
name: Build (Sony Playstation 2)
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
ps2:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: ps2dev/ps2dev:latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Setup dependencies
|
|
||||||
run: |
|
|
||||||
apk update
|
|
||||||
apk add cmake gmp mpc1 mpfr4 ninja pkgconf make git
|
|
||||||
|
|
||||||
# To be removed once ps2_drivers is part of PS2DEV
|
|
||||||
- name: Install ps2_drivers lib
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/fjtrujy/ps2_drivers.git
|
|
||||||
cd ps2_drivers
|
|
||||||
make -j $(getconf _NPROCESSORS_ONLN) clean
|
|
||||||
make -j $(getconf _NPROCESSORS_ONLN)
|
|
||||||
make -j $(getconf _NPROCESSORS_ONLN) install
|
|
||||||
|
|
||||||
- name: Configure (CMake)
|
|
||||||
run: |
|
|
||||||
cmake -S . -B build -G Ninja \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=$PS2DEV/ps2sdk/ps2dev.cmake \
|
|
||||||
-DSDL_WERROR=ON \
|
|
||||||
-DSDL_TESTS=ON \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=cmake_prefix \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release
|
|
||||||
- name: Build
|
|
||||||
run: cmake --build build --config Release --verbose --parallel
|
|
||||||
- name: Install (CMake)
|
|
||||||
run: |
|
|
||||||
set -eu
|
|
||||||
cmake --install build/ --config Release
|
|
||||||
echo "SDL2_DIR=$(pwd)/cmake_prefix" >> $GITHUB_ENV
|
|
||||||
( cd cmake_prefix; find ) | LC_ALL=C sort -u
|
|
||||||
|
|
||||||
- name: Verify CMake configuration files
|
|
||||||
run: |
|
|
||||||
cmake -S cmake/test -B cmake_config_build -G Ninja \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=$PS2DEV/ps2sdk/ps2dev.cmake \
|
|
||||||
-DTEST_SHARED=FALSE \
|
|
||||||
-DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release
|
|
||||||
cmake --build cmake_config_build --verbose
|
|
||||||
- name: Verify sdl2-config
|
|
||||||
run: |
|
|
||||||
export CC=mips64r5900el-ps2-elf-gcc
|
|
||||||
export LDFLAGS="-L$PS2DEV/ps2sdk/ee/lib -L$PS2DEV/gsKit/lib -L$PS2DEV/ps2sdk/ports/lib"
|
|
||||||
export PATH=${{ env.SDL2_DIR }}/bin:$PATH
|
|
||||||
cmake/test/test_sdlconfig.sh
|
|
||||||
- name: Verify sdl2.pc
|
|
||||||
run: |
|
|
||||||
export CC=mips64r5900el-ps2-elf-gcc
|
|
||||||
export LDFLAGS="-L$PS2DEV/ps2sdk/ee/lib -L$PS2DEV/gsKit/lib -L$PS2DEV/ps2sdk/ports/lib"
|
|
||||||
export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
|
|
||||||
cmake/test/test_pkgconfig.sh
|
|
||||||
|
|
||||||
- name: Get short SHA
|
|
||||||
id: slug
|
|
||||||
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
|
|
||||||
|
|
||||||
- name: Upload artifacts
|
|
||||||
if: ${{ success() }}
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: tests-${{ steps.slug.outputs.sha8 }}
|
|
||||||
path: |
|
|
||||||
build/test
|
|
50
.github/workflows/psp.yaml
vendored
50
.github/workflows/psp.yaml
vendored
@@ -1,50 +0,0 @@
|
|||||||
name: Build (Sony Playstation Portable)
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
psp:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: pspdev/pspdev:latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Setup dependencies
|
|
||||||
run: |
|
|
||||||
apk update
|
|
||||||
apk add cmake gmp mpc1 mpfr4 make pkgconf
|
|
||||||
- name: Configure CMake
|
|
||||||
run: |
|
|
||||||
cmake -S . -B build \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake \
|
|
||||||
-DSDL_WERROR=ON \
|
|
||||||
-DSDL_TESTS=ON \
|
|
||||||
-DSDL_INSTALL_TESTS=ON \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=prefix
|
|
||||||
- name: Build
|
|
||||||
run: cmake --build build --config Release
|
|
||||||
- name: Install
|
|
||||||
run: |
|
|
||||||
echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV
|
|
||||||
cmake --install build --config Release
|
|
||||||
( cd prefix; find ) | LC_ALL=C sort -u
|
|
||||||
- name: Verify CMake configuration files
|
|
||||||
run: |
|
|
||||||
cmake -S cmake/test -B cmake_config_build \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake \
|
|
||||||
-DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} \
|
|
||||||
-DTEST_SHARED=FALSE \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release
|
|
||||||
cmake --build cmake_config_build --verbose
|
|
||||||
- name: Verify sdl2-config
|
|
||||||
run: |
|
|
||||||
export CC=psp-gcc
|
|
||||||
export LDFLAGS="-L$PSPDEV/lib -L$PSPDEV/psp/lib -L$PSPDEV/psp/sdk/lib"
|
|
||||||
export PATH=${{ env.SDL2_DIR }}/bin:$PATH
|
|
||||||
cmake/test/test_sdlconfig.sh
|
|
||||||
- name: Verify sdl2.pc
|
|
||||||
run: |
|
|
||||||
export CC=psp-gcc
|
|
||||||
export LDFLAGS="-L$PSPDEV/lib -L$PSPDEV/psp/lib -L$PSPDEV/psp/sdk/lib"
|
|
||||||
export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
|
|
||||||
cmake/test/test_pkgconfig.sh
|
|
403
.github/workflows/release.yml
vendored
Normal file
403
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,403 @@
|
|||||||
|
name: 'release'
|
||||||
|
run-name: 'Create SDL release artifacts for ${{ inputs.commit }}'
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
commit:
|
||||||
|
description: 'Commit of SDL'
|
||||||
|
required: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
src:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
project: ${{ steps.releaser.outputs.project }}
|
||||||
|
version: ${{ steps.releaser.outputs.version }}
|
||||||
|
src-tar-gz: ${{ steps.releaser.outputs.src-tar-gz }}
|
||||||
|
src-tar-xz: ${{ steps.releaser.outputs.src-tar-xz }}
|
||||||
|
src-zip: ${{ steps.releaser.outputs.src-zip }}
|
||||||
|
steps:
|
||||||
|
- name: 'Set up Python'
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
- name: 'Fetch build-release.py'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
sparse-checkout: 'build-scripts/build-release.py'
|
||||||
|
- name: 'Set up SDL sources'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: 'SDL'
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: 'Build Source archive'
|
||||||
|
id: releaser
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
python build-scripts/build-release.py \
|
||||||
|
--actions source \
|
||||||
|
--commit ${{ inputs.commit }} \
|
||||||
|
--root "${{ github.workspace }}/SDL" \
|
||||||
|
--github \
|
||||||
|
--debug
|
||||||
|
- name: 'Store source archives'
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: sources
|
||||||
|
path: '${{ github.workspace}}/dist'
|
||||||
|
|
||||||
|
linux-verify:
|
||||||
|
needs: [src]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: 'Download source archives'
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: sources
|
||||||
|
path: '${{ github.workspace }}'
|
||||||
|
- name: 'Unzip ${{ needs.src.outputs.src-zip }}'
|
||||||
|
id: zip
|
||||||
|
run: |
|
||||||
|
mkdir /tmp/zipdir
|
||||||
|
cd /tmp/zipdir
|
||||||
|
unzip "${{ github.workspace }}/${{ needs.src.outputs.src-zip }}"
|
||||||
|
echo "path=/tmp/zipdir/${{ needs.src.outputs.project }}-${{ needs.src.outputs.version }}" >>$GITHUB_OUTPUT
|
||||||
|
- name: 'Untar ${{ needs.src.outputs.src-tar-gz }}'
|
||||||
|
id: tar
|
||||||
|
run: |
|
||||||
|
mkdir -p /tmp/tardir
|
||||||
|
tar -C /tmp/tardir -v -x -f "${{ github.workspace }}/${{ needs.src.outputs.src-tar-gz }}"
|
||||||
|
echo "path=/tmp/tardir/${{ needs.src.outputs.project }}-${{ needs.src.outputs.version }}" >>$GITHUB_OUTPUT
|
||||||
|
- name: 'Compare contents of ${{ needs.src.outputs.src-zip }} and ${{ needs.src.outputs.src-tar-gz }}'
|
||||||
|
run: |
|
||||||
|
diff /tmp/zipdir /tmp/tardir
|
||||||
|
- name: 'Test versioning'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
${{ steps.tar.outputs.path }}/build-scripts/test-versioning.sh
|
||||||
|
- name: 'CMake (configure + build + tests + examples)'
|
||||||
|
run: |
|
||||||
|
cmake -S ${{ steps.tar.outputs.path }} -B /tmp/build -DSDL_TEST_LIBRARY=TRUE -DSDL_TESTS=TRUE -DSDL_EXAMPLES=TRUE
|
||||||
|
cmake --build /tmp/build --verbose
|
||||||
|
ctest --test-dir /tmp/build --no-tests=error --output-on-failure
|
||||||
|
|
||||||
|
dmg:
|
||||||
|
needs: [src]
|
||||||
|
runs-on: macos-latest
|
||||||
|
outputs:
|
||||||
|
dmg: ${{ steps.releaser.outputs.dmg }}
|
||||||
|
steps:
|
||||||
|
- name: 'Set up Python'
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
- name: 'Fetch build-release.py'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
sparse-checkout: 'build-scripts/build-release.py'
|
||||||
|
- name: 'Download source archives'
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: sources
|
||||||
|
path: '${{ github.workspace }}'
|
||||||
|
- name: 'Untar ${{ needs.src.outputs.src-tar-gz }}'
|
||||||
|
id: tar
|
||||||
|
run: |
|
||||||
|
mkdir -p "${{ github.workspace }}/tardir"
|
||||||
|
tar -C "${{ github.workspace }}/tardir" -v -x -f "${{ github.workspace }}/${{ needs.src.outputs.src-tar-gz }}"
|
||||||
|
echo "path=${{ github.workspace }}/tardir/${{ needs.src.outputs.project }}-${{ needs.src.outputs.version }}" >>$GITHUB_OUTPUT
|
||||||
|
- name: 'Build SDL2.dmg'
|
||||||
|
id: releaser
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
python build-scripts/build-release.py \
|
||||||
|
--actions dmg \
|
||||||
|
--commit ${{ inputs.commit }} \
|
||||||
|
--root "${{ steps.tar.outputs.path }}" \
|
||||||
|
--github \
|
||||||
|
--debug
|
||||||
|
- name: 'Store DMG image file'
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: dmg
|
||||||
|
path: '${{ github.workspace }}/dist'
|
||||||
|
|
||||||
|
dmg-verify:
|
||||||
|
needs: [dmg, src]
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- name: 'Download source archives'
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: sources
|
||||||
|
path: '${{ github.workspace }}'
|
||||||
|
- name: 'Download ${{ needs.dmg.outputs.dmg }}'
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: dmg
|
||||||
|
path: '${{ github.workspace }}'
|
||||||
|
- name: 'Untar ${{ needs.src.outputs.src-tar-gz }}'
|
||||||
|
id: src
|
||||||
|
run: |
|
||||||
|
mkdir -p /tmp/tardir
|
||||||
|
tar -C /tmp/tardir -v -x -f "${{ github.workspace }}/${{ needs.src.outputs.src-tar-gz }}"
|
||||||
|
echo "path=/tmp/tardir/${{ needs.src.outputs.project }}-${{ needs.src.outputs.version }}" >>$GITHUB_OUTPUT
|
||||||
|
- name: 'Mount ${{ needs.dmg.outputs.dmg }}'
|
||||||
|
id: mount
|
||||||
|
run: |
|
||||||
|
hdiutil attach '${{ github.workspace }}/${{ needs.dmg.outputs.dmg }}'
|
||||||
|
mount_point="/Volumes/${{ needs.src.outputs.project }}"
|
||||||
|
if [ ! -d "$mount_point/${{ needs.src.outputs.project }}.framework" ]; then
|
||||||
|
echo "Cannot find ${{ needs.src.outputs.project }}.framework!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "mount_point=$mount_point">>$GITHUB_OUTPUT
|
||||||
|
- name: 'CMake (configure + build) Darwin'
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
cmake -S "${{ steps.src.outputs.path }}/cmake/test" \
|
||||||
|
-DTEST_FULL=FALSE \
|
||||||
|
-DTEST_STATIC=FALSE \
|
||||||
|
-DTEST_TEST=FALSE \
|
||||||
|
-DCMAKE_PREFIX_PATH="${{ steps.mount.outputs.mount_point }}" \
|
||||||
|
-DCMAKE_SYSTEM_NAME=Darwin \
|
||||||
|
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
|
||||||
|
-Werror=dev \
|
||||||
|
-B build_darwin
|
||||||
|
cmake --build build_darwin --config Release --verbose
|
||||||
|
|
||||||
|
cmake -S "${{ steps.src.outputs.path }}/cmake/test" \
|
||||||
|
-DTEST_FULL=FALSE \
|
||||||
|
-DTEST_STATIC=FALSE \
|
||||||
|
-DTEST_TEST=FALSE \
|
||||||
|
-DCMAKE_PREFIX_PATH="${{ steps.mount.outputs.mount_point }}" \
|
||||||
|
-DCMAKE_SYSTEM_NAME=Darwin \
|
||||||
|
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
|
||||||
|
-Werror=dev \
|
||||||
|
-B build_darwin_2
|
||||||
|
cmake --build build_darwin --config Release --verbose
|
||||||
|
|
||||||
|
msvc:
|
||||||
|
needs: [src]
|
||||||
|
runs-on: windows-2025
|
||||||
|
outputs:
|
||||||
|
VC-x86: ${{ steps.releaser.outputs.VC-x86 }}
|
||||||
|
VC-x64: ${{ steps.releaser.outputs.VC-x64 }}
|
||||||
|
VC-devel: ${{ steps.releaser.outputs.VC-devel }}
|
||||||
|
steps:
|
||||||
|
- name: 'Set up Python'
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
- name: 'Fetch build-release.py'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
sparse-checkout: 'build-scripts/build-release.py'
|
||||||
|
- name: 'Download source archives'
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: sources
|
||||||
|
path: '${{ github.workspace }}'
|
||||||
|
- name: 'Unzip ${{ needs.src.outputs.src-zip }}'
|
||||||
|
id: zip
|
||||||
|
run: |
|
||||||
|
New-Item C:\temp -ItemType Directory -ErrorAction SilentlyContinue
|
||||||
|
cd C:\temp
|
||||||
|
unzip "${{ github.workspace }}/${{ needs.src.outputs.src-zip }}"
|
||||||
|
echo "path=C:\temp\${{ needs.src.outputs.project }}-${{ needs.src.outputs.version }}" >>$Env:GITHUB_OUTPUT
|
||||||
|
- name: 'Build MSVC binary archives'
|
||||||
|
id: releaser
|
||||||
|
run: |
|
||||||
|
python build-scripts/build-release.py `
|
||||||
|
--actions msvc `
|
||||||
|
--commit ${{ inputs.commit }} `
|
||||||
|
--root "${{ steps.zip.outputs.path }}" `
|
||||||
|
--github `
|
||||||
|
--debug
|
||||||
|
- name: 'Store MSVC archives'
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: win32
|
||||||
|
path: '${{ github.workspace }}/dist'
|
||||||
|
|
||||||
|
msvc-verify:
|
||||||
|
needs: [msvc, src]
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- name: 'Fetch .github/actions/setup-ninja/action.yml'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
sparse-checkout: '.github/actions/setup-ninja/action.yml'
|
||||||
|
- name: 'Download source archives'
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: sources
|
||||||
|
path: '${{ github.workspace }}'
|
||||||
|
- name: 'Download MSVC binaries'
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: win32
|
||||||
|
path: '${{ github.workspace }}'
|
||||||
|
- name: 'Unzip ${{ needs.src.outputs.src-zip }}'
|
||||||
|
id: src
|
||||||
|
run: |
|
||||||
|
mkdir '${{ github.workspace }}/sources'
|
||||||
|
cd '${{ github.workspace }}/sources'
|
||||||
|
unzip "${{ github.workspace }}/${{ needs.src.outputs.src-zip }}"
|
||||||
|
echo "path=${{ github.workspace }}/sources/${{ needs.src.outputs.project }}-${{ needs.src.outputs.version }}" >>$env:GITHUB_OUTPUT
|
||||||
|
- name: 'Unzip ${{ needs.msvc.outputs.VC-devel }}'
|
||||||
|
id: bin
|
||||||
|
run: |
|
||||||
|
mkdir '${{ github.workspace }}/vc'
|
||||||
|
cd '${{ github.workspace }}/vc'
|
||||||
|
unzip "${{ github.workspace }}/${{ needs.msvc.outputs.VC-devel }}"
|
||||||
|
echo "path=${{ github.workspace }}/vc/${{ needs.src.outputs.project }}-${{ needs.src.outputs.version }}" >>$env:GITHUB_OUTPUT
|
||||||
|
- name: Set up ninja
|
||||||
|
uses: ./.github/actions/setup-ninja
|
||||||
|
- name: 'Configure vcvars x86'
|
||||||
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
with:
|
||||||
|
arch: x64_x86
|
||||||
|
- name: 'CMake (configure + build + tests) x86'
|
||||||
|
run: |
|
||||||
|
cmake -S "${{ steps.src.outputs.path }}/cmake/test" `
|
||||||
|
-B build_x86 `
|
||||||
|
-GNinja `
|
||||||
|
-DCMAKE_BUILD_TYPE=Debug `
|
||||||
|
-Werror=dev `
|
||||||
|
-DTEST_FULL=FALSE `
|
||||||
|
-DTEST_STATIC=FALSE `
|
||||||
|
-DTEST_SHARED=TRUE `
|
||||||
|
-DTEST_TEST=TRUE `
|
||||||
|
-DCMAKE_SUPPRESS_REGENERATION=TRUE `
|
||||||
|
-DCMAKE_PREFIX_PATH="${{ steps.bin.outputs.path }}"
|
||||||
|
Start-Sleep -Seconds 2
|
||||||
|
cmake --build build_x86 --config Release --verbose
|
||||||
|
#ctest --test-dir build_x86 --no-tests=error -C Release --output-on-failure
|
||||||
|
- name: 'Configure vcvars x64'
|
||||||
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
with:
|
||||||
|
arch: x64
|
||||||
|
- name: 'CMake (configure + build + tests) x64'
|
||||||
|
run: |
|
||||||
|
cmake -S "${{ steps.src.outputs.path }}/cmake/test" `
|
||||||
|
-B build_x64 `
|
||||||
|
-GNinja `
|
||||||
|
-DCMAKE_BUILD_TYPE=Debug `
|
||||||
|
-Werror=dev `
|
||||||
|
-DTEST_FULL=FALSE `
|
||||||
|
-DTEST_STATIC=FALSE `
|
||||||
|
-DTEST_SHARED=TRUE `
|
||||||
|
-DTEST_TEST=TRUE `
|
||||||
|
-DCMAKE_SUPPRESS_REGENERATION=TRUE `
|
||||||
|
-DCMAKE_PREFIX_PATH="${{ steps.bin.outputs.path }}"
|
||||||
|
Start-Sleep -Seconds 2
|
||||||
|
cmake --build build_x64 --config Release --verbose
|
||||||
|
#ctest --test-dir build_x64 --no-tests=error -C Release --output-on-failure
|
||||||
|
|
||||||
|
mingw:
|
||||||
|
needs: [src]
|
||||||
|
runs-on: ubuntu-24.04 # FIXME: current ubuntu-latest ships an outdated mingw, replace with ubuntu-latest once 24.04 becomes the new default
|
||||||
|
outputs:
|
||||||
|
mingw-devel-tar-gz: ${{ steps.releaser.outputs.mingw-devel-tar-gz }}
|
||||||
|
mingw-devel-tar-xz: ${{ steps.releaser.outputs.mingw-devel-tar-xz }}
|
||||||
|
steps:
|
||||||
|
- name: 'Set up Python'
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
- name: 'Fetch build-release.py'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
sparse-checkout: 'build-scripts/build-release.py'
|
||||||
|
- name: 'Install Mingw toolchain'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -y
|
||||||
|
sudo apt-get install -y gcc-mingw-w64 g++-mingw-w64 ninja-build
|
||||||
|
- name: 'Download source archives'
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: sources
|
||||||
|
path: '${{ github.workspace }}'
|
||||||
|
- name: 'Untar ${{ needs.src.outputs.src-tar-gz }}'
|
||||||
|
id: tar
|
||||||
|
run: |
|
||||||
|
mkdir -p /tmp/tardir
|
||||||
|
tar -C /tmp/tardir -v -x -f "${{ github.workspace }}/${{ needs.src.outputs.src-tar-gz }}"
|
||||||
|
echo "path=/tmp/tardir/${{ needs.src.outputs.project }}-${{ needs.src.outputs.version }}" >>$GITHUB_OUTPUT
|
||||||
|
- name: 'Build MinGW binary archives'
|
||||||
|
id: releaser
|
||||||
|
run: |
|
||||||
|
python build-scripts/build-release.py \
|
||||||
|
--actions mingw \
|
||||||
|
--commit ${{ inputs.commit }} \
|
||||||
|
--root "${{ steps.tar.outputs.path }}" \
|
||||||
|
--github \
|
||||||
|
--debug
|
||||||
|
- name: 'Store MinGW archives'
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: mingw
|
||||||
|
path: '${{ github.workspace }}/dist'
|
||||||
|
|
||||||
|
mingw-verify:
|
||||||
|
needs: [mingw, src]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: 'Install Mingw toolchain'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -y
|
||||||
|
sudo apt-get install -y gcc-mingw-w64 g++-mingw-w64 ninja-build
|
||||||
|
- name: 'Download source archives'
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: sources
|
||||||
|
path: '${{ github.workspace }}'
|
||||||
|
- name: 'Download MinGW binaries'
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: mingw
|
||||||
|
path: '${{ github.workspace }}'
|
||||||
|
- name: 'Untar ${{ needs.src.outputs.src-tar-gz }}'
|
||||||
|
id: src
|
||||||
|
run: |
|
||||||
|
mkdir -p /tmp/tardir
|
||||||
|
tar -C /tmp/tardir -v -x -f "${{ github.workspace }}/${{ needs.src.outputs.src-tar-gz }}"
|
||||||
|
echo "path=/tmp/tardir/${{ needs.src.outputs.project }}-${{ needs.src.outputs.version }}" >>$GITHUB_OUTPUT
|
||||||
|
- name: 'Untar and install ${{ needs.mingw.outputs.mingw-devel-tar-gz }}'
|
||||||
|
id: bin
|
||||||
|
run: |
|
||||||
|
mkdir -p /tmp/mingw-tardir
|
||||||
|
tar -C /tmp/mingw-tardir -v -x -f "${{ github.workspace }}/${{ needs.mingw.outputs.mingw-devel-tar-gz }}"
|
||||||
|
make -C /tmp/mingw-tardir/${{ needs.src.outputs.project }}-${{ needs.src.outputs.version }} cross CROSS_PATH=/tmp/deps-mingw
|
||||||
|
echo "path=/tmp/deps-mingw" >>$GITHUB_OUTPUT
|
||||||
|
- name: 'CMake (configure + build) i686'
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
cmake -S "${{ steps.src.outputs.path }}/cmake/test" \
|
||||||
|
-DCMAKE_BUILD_TYPE="Release" \
|
||||||
|
-DTEST_FULL=FALSE \
|
||||||
|
-DTEST_STATIC=TRUE \
|
||||||
|
-DTEST_TEST=TRUE \
|
||||||
|
-DCMAKE_PREFIX_PATH="${{ steps.bin.outputs.path }}" \
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE="${{ steps.src.outputs.path }}/build-scripts/cmake-toolchain-mingw64-i686.cmake" \
|
||||||
|
-DCMAKE_C_FLAGS="-DSDL_DISABLE_SSE4_2" \
|
||||||
|
-Werror=dev \
|
||||||
|
-B build_x86
|
||||||
|
cmake --build build_x86 --config Release --verbose
|
||||||
|
- name: 'CMake (configure + build) x86_64'
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
cmake -S "${{ steps.src.outputs.path }}/cmake/test" \
|
||||||
|
-DCMAKE_BUILD_TYPE="Release" \
|
||||||
|
-DTEST_FULL=FALSE \
|
||||||
|
-DTEST_STATIC=TRUE \
|
||||||
|
-DTEST_TEST=TRUE \
|
||||||
|
-DCMAKE_PREFIX_PATH="${{ steps.bin.outputs.path }}" \
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE="${{ steps.src.outputs.path }}/build-scripts/cmake-toolchain-mingw64-x86_64.cmake" \
|
||||||
|
-DCMAKE_C_FLAGS="-DSDL_DISABLE_SSE4_2" \
|
||||||
|
-Werror=dev \
|
||||||
|
-B build_x64
|
||||||
|
cmake --build build_x64 --config Release --verbose
|
68
.github/workflows/riscos.yml
vendored
68
.github/workflows/riscos.yml
vendored
@@ -1,68 +0,0 @@
|
|||||||
name: Build (RISC OS)
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
Build:
|
|
||||||
name: ${{ matrix.platform.name }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: riscosdotinfo/riscos-gccsdk-4.7:latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
platform:
|
|
||||||
- { name: autotools, test_args: '-DTEST_SHARED=FALSE' } # FIXME: autotools should build and install shared libraries
|
|
||||||
- { name: CMake }
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Setup dependencies
|
|
||||||
run: apt-get update && apt-get install -y cmake ninja-build
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Configure (autotools)
|
|
||||||
if: ${{ contains(matrix.platform.name, 'autotools') }}
|
|
||||||
run: |
|
|
||||||
mkdir build_autotools
|
|
||||||
cd build_autotools
|
|
||||||
../configure \
|
|
||||||
--host=arm-unknown-riscos \
|
|
||||||
--disable-gcc-atomics \
|
|
||||||
--prefix=${{ github.workspace }}/prefix_autotools
|
|
||||||
- name: Build (autotools)
|
|
||||||
if: ${{ contains(matrix.platform.name, 'autotools') }}
|
|
||||||
run: make -C build_autotools -j`nproc` V=1
|
|
||||||
- name: Install (autotools)
|
|
||||||
if: ${{ contains(matrix.platform.name, 'autotools') }}
|
|
||||||
run: |
|
|
||||||
echo "SDL2_DIR=${{ github.workspace }}/prefix_autotools" >> $GITHUB_ENV
|
|
||||||
make -C build_autotools install
|
|
||||||
( cd ${{ github.workspace }}/prefix_autotools; find ) | LC_ALL=C sort -u
|
|
||||||
- name: Configure (CMake)
|
|
||||||
if: ${{ contains(matrix.platform.name, 'CMake') }}
|
|
||||||
run: |
|
|
||||||
cmake -S . -B build -G Ninja \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=/home/riscos/env/toolchain-riscos.cmake \
|
|
||||||
-DRISCOS=ON \
|
|
||||||
-DSDL_GCC_ATOMICS=OFF \
|
|
||||||
-DSDL_TESTS=ON \
|
|
||||||
-DSDL_INSTALL_TESTS=ON \
|
|
||||||
-DSDL_VENDOR_INFO="Github Workflow" \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/prefix_cmake
|
|
||||||
- name: Build (CMake)
|
|
||||||
if: ${{ contains(matrix.platform.name, 'CMake') }}
|
|
||||||
run: cmake --build build --verbose
|
|
||||||
- name: Install (CMake)
|
|
||||||
if: ${{ contains(matrix.platform.name, 'CMake') }}
|
|
||||||
run: |
|
|
||||||
echo "SDL2_DIR=${{ github.workspace }}/prefix_cmake" >> $GITHUB_ENV
|
|
||||||
cmake --install build/
|
|
||||||
( cd ${{ github.workspace }}/prefix_cmake; find ) | LC_ALL=C sort -u
|
|
||||||
- name: Verify CMake configuration files
|
|
||||||
run: |
|
|
||||||
cmake -S cmake/test -B cmake_config_build -G Ninja \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=/home/riscos/env/toolchain-riscos.cmake \
|
|
||||||
-DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
${{ matrix.platform.test_args }}
|
|
||||||
cmake --build cmake_config_build --verbose
|
|
95
.github/workflows/vita.yaml
vendored
95
.github/workflows/vita.yaml
vendored
@@ -1,95 +0,0 @@
|
|||||||
name: Build (Sony Playstation Vita)
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: sh
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
vita:
|
|
||||||
name: ${{ matrix.platform.name }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container:
|
|
||||||
image: vitasdk/vitasdk:latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
platform:
|
|
||||||
- { name: GLES (pib), os: windows-latest, pib: true }
|
|
||||||
- { name: GLES (PVR_PSP2 + gl4es4vita), os: windows-latest, pvr: true }
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Install build requirements
|
|
||||||
run: |
|
|
||||||
apk update
|
|
||||||
apk add cmake ninja pkgconf bash
|
|
||||||
|
|
||||||
- name: Configure PVR_PSP2 (GLES)
|
|
||||||
if: ${{ !!matrix.platform.pvr }}
|
|
||||||
run: |
|
|
||||||
pvr_psp2_version=3.9
|
|
||||||
|
|
||||||
# Configure PVR_PSP2 headers
|
|
||||||
wget https://github.com/GrapheneCt/PVR_PSP2/archive/refs/tags/v$pvr_psp2_version.zip -P/tmp
|
|
||||||
unzip /tmp/v$pvr_psp2_version.zip -d/tmp
|
|
||||||
cp -r /tmp/PVR_PSP2-$pvr_psp2_version/include/* ${VITASDK}/arm-vita-eabi/include
|
|
||||||
rm /tmp/v$pvr_psp2_version.zip
|
|
||||||
|
|
||||||
# Configure PVR_PSP2 stub libraries
|
|
||||||
wget https://github.com/GrapheneCt/PVR_PSP2/releases/download/v$pvr_psp2_version/vitasdk_stubs.zip -P/tmp
|
|
||||||
unzip /tmp/vitasdk_stubs.zip -d/tmp/pvr_psp2_stubs
|
|
||||||
find /tmp/pvr_psp2_stubs -type f -name "*.a" -exec cp {} ${VITASDK}/arm-vita-eabi/lib \;
|
|
||||||
rm /tmp/vitasdk_stubs.zip
|
|
||||||
rm -rf /tmp/pvr_psp2_stubs
|
|
||||||
|
|
||||||
- name: Configure gl4es4vita (OpenGL)
|
|
||||||
if: ${{ !!matrix.platform.pvr }}
|
|
||||||
run: |
|
|
||||||
gl4es4vita_version=1.1.4
|
|
||||||
|
|
||||||
# Configure gl4es4vita headers
|
|
||||||
wget https://github.com/SonicMastr/gl4es4vita/releases/download/v$gl4es4vita_version-vita/include.zip -P/tmp
|
|
||||||
unzip -o /tmp/include.zip -d${VITASDK}/arm-vita-eabi/include
|
|
||||||
rm /tmp/include.zip
|
|
||||||
|
|
||||||
# Configure gl4es4vita stub libraries
|
|
||||||
wget https://github.com/SonicMastr/gl4es4vita/releases/download/v$gl4es4vita_version-vita/vitasdk_stubs.zip -P/tmp
|
|
||||||
unzip /tmp/vitasdk_stubs.zip -d${VITASDK}/arm-vita-eabi/lib
|
|
||||||
|
|
||||||
- name: Configure CMake
|
|
||||||
run: |
|
|
||||||
cmake -S . -B build -G Ninja \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake \
|
|
||||||
-DVIDEO_VITA_PIB=${{ !!matrix.platform.pib }} \
|
|
||||||
-DVIDEO_VITA_PVR=${{ !!matrix.platform.pvr }} \
|
|
||||||
-DSDL_WERROR=ON \
|
|
||||||
-DSDL_TESTS=ON \
|
|
||||||
-DSDL_INSTALL_TESTS=ON \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=prefix
|
|
||||||
- name: Build
|
|
||||||
run: cmake --build build --verbose
|
|
||||||
- name: Install CMake
|
|
||||||
run: |
|
|
||||||
echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV
|
|
||||||
cmake --install build/
|
|
||||||
( cd prefix; find ) | LC_ALL=C sort -u
|
|
||||||
- name: Verify CMake configuration files
|
|
||||||
run: |
|
|
||||||
cmake -S cmake/test -B cmake_config_build -G Ninja \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake \
|
|
||||||
-DTEST_SHARED=FALSE \
|
|
||||||
-DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release
|
|
||||||
cmake --build cmake_config_build --verbose
|
|
||||||
- name: Verify sdl2-config
|
|
||||||
run: |
|
|
||||||
export CC=arm-vita-eabi-gcc
|
|
||||||
export PATH=${{ env.SDL2_DIR }}/bin:$PATH
|
|
||||||
cmake/test/test_sdlconfig.sh
|
|
||||||
- name: Verify sdl2.pc
|
|
||||||
run: |
|
|
||||||
export CC=arm-vita-eabi-gcc
|
|
||||||
export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
|
|
||||||
cmake/test/test_pkgconfig.sh
|
|
35
.github/workflows/watcom.yml
vendored
35
.github/workflows/watcom.yml
vendored
@@ -1,35 +0,0 @@
|
|||||||
name: Build (OpenWatcom)
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
os2:
|
|
||||||
name: ${{ matrix.platform.name }}
|
|
||||||
runs-on: windows-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
platform:
|
|
||||||
- { name: Windows, makefile: Makefile.w32 }
|
|
||||||
- { name: OS/2, makefile: Makefile.os2 }
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: open-watcom/setup-watcom@v0
|
|
||||||
- name: Build SDL2
|
|
||||||
run: |
|
|
||||||
wmake -f ${{ matrix.platform.makefile }} ENABLE_WERROR=1
|
|
||||||
- name: Build tests
|
|
||||||
run: |
|
|
||||||
cd test && wmake -f ${{ matrix.platform.makefile }} ENABLE_WERROR=1
|
|
||||||
cd ..
|
|
||||||
- name: Run tests
|
|
||||||
if: "matrix.platform.makefile == 'Makefile.w32'"
|
|
||||||
run: |
|
|
||||||
cd test && wmake -f ${{ matrix.platform.makefile }} check-quick
|
|
||||||
cd ..
|
|
||||||
- name: distclean
|
|
||||||
run: |
|
|
||||||
wmake -f ${{ matrix.platform.makefile }} distclean
|
|
||||||
cd test && wmake -f ${{ matrix.platform.makefile }} distclean
|
|
||||||
cd ..
|
|
3
.gitignore
vendored
3
.gitignore
vendored
@@ -15,7 +15,8 @@ build
|
|||||||
gen
|
gen
|
||||||
Build
|
Build
|
||||||
buildbot
|
buildbot
|
||||||
/VERSION.txt
|
/REVISION.txt
|
||||||
|
dist
|
||||||
|
|
||||||
*.so
|
*.so
|
||||||
*.so.*
|
*.so.*
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
projectfullname = SDL2
|
projectfullname = Simple Directmedia Layer
|
||||||
projectshortname = SDL2
|
projectshortname = SDL
|
||||||
incsubdir = include
|
incsubdir = include
|
||||||
wikisubdir = SDL2
|
wikisubdir = SDL2
|
||||||
readmesubdir = docs
|
readmesubdir = docs
|
||||||
apiprefixregex = (SDL_|SDLK_|KMOD_|AUDIO_)
|
apiprefixregex = (SDL_|SDLK_|KMOD_|AUDIO_|[US]int\d+)
|
||||||
mainincludefname = SDL.h
|
mainincludefname = SDL.h
|
||||||
versionfname = include/SDL_version.h
|
versionfname = include/SDL_version.h
|
||||||
versionmajorregex = \A\#define\s+SDL_MAJOR_VERSION\s+(\d+)\Z
|
versionmajorregex = \A\#define\s+SDL_MAJOR_VERSION\s+(\d+)\Z
|
||||||
@@ -14,4 +14,19 @@ projecturl = https://libsdl.org/
|
|||||||
wikiurl = https://wiki.libsdl.org/SDL2
|
wikiurl = https://wiki.libsdl.org/SDL2
|
||||||
bugreporturl = https://github.com/libsdl-org/sdlwiki/issues/new
|
bugreporturl = https://github.com/libsdl-org/sdlwiki/issues/new
|
||||||
warn_about_missing = 0
|
warn_about_missing = 0
|
||||||
wikipreamble = (This is the legacy documentation for stable SDL2, the current stable version; [SDL3](https://wiki.libsdl.org/SDL3/) is the current development version.)
|
#wikipreamble = (This is the legacy documentation for SDL2, the previous stable version; [SDL3](https://wiki.libsdl.org/SDL3/) is the current stable version.)
|
||||||
|
wikiheaderfiletext = Defined in [%fname%](https://github.com/libsdl-org/SDL/blob/SDL2/include/%fname%)
|
||||||
|
manpageheaderfiletext = Defined in %fname%
|
||||||
|
|
||||||
|
# All SDL_config_*.h headers are uncategorized, in case something slips in from them.
|
||||||
|
# All SDL_test_* headers become uncategorized, everything else just converts like SDL_audio.h -> Audio
|
||||||
|
# A handful of others we fix up in the header itself with /* WIKI CATEGORY: x */ comments.
|
||||||
|
headercategoryeval = s/\ASDL_config_.*?\.h\Z//; s/\ASDL_test_.*?\.h\Z//; s/\ASDL_?(.*?)\.h\Z/$1/; ucfirst();
|
||||||
|
|
||||||
|
# !!! FIXME: maybe later, but there are probably documentation gaps to fix first.
|
||||||
|
quickrefenabled = 0
|
||||||
|
quickrefcategoryorder = Init,Hints,Error,Version,Properties,Log,Video,Events,Keyboard,Mouse,Touch,Gesture,GameController,Joystick,Haptic,Audio,Timer,Render,LoadSO,Thread,Mutex,Atomic,Filesystem,RWOPS,Pixels,Surface,Blendmode,Rect,Clipboard,Messagebox,Vulkan,Metal,Platform,Power,Sensor,Bits,Endian,Assert,CPUInfo,Locale,System,Misc,GUID,Main,Stdinc
|
||||||
|
quickreftitle = SDL2 API Quick Reference
|
||||||
|
quickrefurl = https://libsdl.org/
|
||||||
|
quickrefdesc = The latest version of this document can be found at https://wiki.libsdl.org/SDL2/QuickReference
|
||||||
|
quickrefmacroregex = \A(SDL_Atomic...Ref|SDL_assert.*?|SDL_arraysize|SDL_Swap[BL]E\d\d|SDL_[a-z]+_cast|SDL_Load...)\Z
|
||||||
|
@@ -35,6 +35,7 @@ LOCAL_SRC_FILES := \
|
|||||||
$(wildcard $(LOCAL_PATH)/src/hidapi/android/*.cpp) \
|
$(wildcard $(LOCAL_PATH)/src/hidapi/android/*.cpp) \
|
||||||
$(wildcard $(LOCAL_PATH)/src/joystick/*.c) \
|
$(wildcard $(LOCAL_PATH)/src/joystick/*.c) \
|
||||||
$(wildcard $(LOCAL_PATH)/src/joystick/android/*.c) \
|
$(wildcard $(LOCAL_PATH)/src/joystick/android/*.c) \
|
||||||
|
$(wildcard $(LOCAL_PATH)/src/joystick/dummy/*.c) \
|
||||||
$(wildcard $(LOCAL_PATH)/src/joystick/hidapi/*.c) \
|
$(wildcard $(LOCAL_PATH)/src/joystick/hidapi/*.c) \
|
||||||
$(wildcard $(LOCAL_PATH)/src/joystick/virtual/*.c) \
|
$(wildcard $(LOCAL_PATH)/src/joystick/virtual/*.c) \
|
||||||
$(wildcard $(LOCAL_PATH)/src/loadso/dlopen/*.c) \
|
$(wildcard $(LOCAL_PATH)/src/loadso/dlopen/*.c) \
|
||||||
|
226
CMakeLists.txt
226
CMakeLists.txt
@@ -5,8 +5,8 @@ endif()
|
|||||||
# MSVC runtime library flags are selected by an abstraction.
|
# MSVC runtime library flags are selected by an abstraction.
|
||||||
set(CMAKE_POLICY_DEFAULT_CMP0091 NEW)
|
set(CMAKE_POLICY_DEFAULT_CMP0091 NEW)
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.0.0...3.5)
|
cmake_minimum_required(VERSION 3.0.0...3.10)
|
||||||
project(SDL2 C CXX)
|
project(SDL2 C)
|
||||||
|
|
||||||
if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
|
if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
|
||||||
set(SDL2_SUBPROJECT OFF)
|
set(SDL2_SUBPROJECT OFF)
|
||||||
@@ -15,13 +15,15 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (HAIKU)
|
if (HAIKU)
|
||||||
|
enable_language(CXX)
|
||||||
set(LINKER_LANGUAGE CXX)
|
set(LINKER_LANGUAGE CXX)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(EXTRA_LIBS)
|
set(EXTRA_LIBS)
|
||||||
set(EXTRA_LDFLAGS)
|
set(EXTRA_LDFLAGS)
|
||||||
|
|
||||||
set(CMAKE_DEPENDS)
|
set(CMAKE_LIBS)
|
||||||
|
set(PKGCONFIG_LDFLAGS)
|
||||||
set(PKGCONFIG_DEPENDS)
|
set(PKGCONFIG_DEPENDS)
|
||||||
|
|
||||||
# This is a virtual "library" that just exists to collect up compiler and
|
# This is a virtual "library" that just exists to collect up compiler and
|
||||||
@@ -33,8 +35,8 @@ set(PKGCONFIG_DEPENDS)
|
|||||||
add_library(sdl-build-options INTERFACE)
|
add_library(sdl-build-options INTERFACE)
|
||||||
|
|
||||||
if(WINDOWS_STORE)
|
if(WINDOWS_STORE)
|
||||||
target_compile_definitions(sdl-build-options INTERFACE "-DSDL_BUILDING_WINRT=1")
|
target_compile_definitions(sdl-build-options INTERFACE "-DSDL_BUILDING_WINRT=1" "WINAPI_FAMILY=WINAPI_FAMILY_APP")
|
||||||
target_compile_options(sdl-build-options INTERFACE "-ZW")
|
target_compile_options(sdl-build-options INTERFACE "$<$<COMPILE_LANGUAGE:CXX>:-ZW>" "$<$<COMPILE_LANGUAGE:CXX>:-EHsc>")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# CMake 3.0 expands the "if(${A})" in "set(OFF 1);set(A OFF);if(${A})" to "if(1)"
|
# CMake 3.0 expands the "if(${A})" in "set(OFF 1);set(A OFF);if(${A})" to "if(1)"
|
||||||
@@ -86,8 +88,8 @@ endif()
|
|||||||
|
|
||||||
# See docs/release_checklist.md
|
# See docs/release_checklist.md
|
||||||
set(SDL_MAJOR_VERSION 2)
|
set(SDL_MAJOR_VERSION 2)
|
||||||
set(SDL_MINOR_VERSION 29)
|
set(SDL_MINOR_VERSION 33)
|
||||||
set(SDL_MICRO_VERSION 2)
|
set(SDL_MICRO_VERSION 0)
|
||||||
set(SDL_VERSION "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}.${SDL_MICRO_VERSION}")
|
set(SDL_VERSION "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}.${SDL_MICRO_VERSION}")
|
||||||
|
|
||||||
# Set defaults preventing destination file conflicts
|
# Set defaults preventing destination file conflicts
|
||||||
@@ -140,6 +142,7 @@ check_cpu_architecture(x86 SDL_CPU_X86)
|
|||||||
check_cpu_architecture(x64 SDL_CPU_X64)
|
check_cpu_architecture(x64 SDL_CPU_X64)
|
||||||
check_cpu_architecture(arm32 SDL_CPU_ARM32)
|
check_cpu_architecture(arm32 SDL_CPU_ARM32)
|
||||||
check_cpu_architecture(arm64 SDL_CPU_ARM64)
|
check_cpu_architecture(arm64 SDL_CPU_ARM64)
|
||||||
|
check_cpu_architecture(arm64ec SDL_CPU_ARM64EC)
|
||||||
check_cpu_architecture(loongarch64 SDL_CPU_LOONGARCH64)
|
check_cpu_architecture(loongarch64 SDL_CPU_LOONGARCH64)
|
||||||
|
|
||||||
# Check for 64 or 32 bit
|
# Check for 64 or 32 bit
|
||||||
@@ -195,7 +198,7 @@ endif()
|
|||||||
# so we'll just use libusb when it's available. libusb does not support iOS,
|
# so we'll just use libusb when it's available. libusb does not support iOS,
|
||||||
# so we default to yes on iOS.
|
# so we default to yes on iOS.
|
||||||
# TODO: Windows can support libusb, the hid.c file just depends on Unix APIs
|
# TODO: Windows can support libusb, the hid.c file just depends on Unix APIs
|
||||||
if((WINDOWS AND NOT WINDOWS_STORE) OR IOS OR TVOS OR ANDROID)
|
if((WINDOWS AND NOT WINDOWS_STORE) OR IOS OR TVOS OR VISIONOS OR WATCHOS OR ANDROID)
|
||||||
set(HIDAPI_SKIP_LIBUSB TRUE)
|
set(HIDAPI_SKIP_LIBUSB TRUE)
|
||||||
else()
|
else()
|
||||||
set(HIDAPI_SKIP_LIBUSB FALSE)
|
set(HIDAPI_SKIP_LIBUSB FALSE)
|
||||||
@@ -238,10 +241,10 @@ if(USE_GCC OR USE_CLANG OR USE_INTELCC OR USE_QCC)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Default option knobs
|
# Default option knobs
|
||||||
if(UNIX OR MINGW OR MSYS OR (USE_CLANG AND NOT WINDOWS) OR VITA OR PSP OR PS2 OR N3DS)
|
if(UNIX OR MINGW OR MSYS OR (USE_CLANG AND NOT WINDOWS) OR VITA OR PSP OR PS2 OR N3DS OR SDL_CPU_ARM64EC)
|
||||||
set(OPT_DEF_LIBC ON)
|
set(OPT_DEF_LIBC ON)
|
||||||
endif()
|
endif()
|
||||||
if(WINDOWS)
|
if(WINDOWS OR MACOS OR IOS OR TVOS OR VISIONOS OR WATCHOS)
|
||||||
set(SDL_SYSTEM_ICONV_DEFAULT OFF)
|
set(SDL_SYSTEM_ICONV_DEFAULT OFF)
|
||||||
else()
|
else()
|
||||||
set(SDL_SYSTEM_ICONV_DEFAULT ON)
|
set(SDL_SYSTEM_ICONV_DEFAULT ON)
|
||||||
@@ -360,6 +363,11 @@ if(VITA OR PSP OR PS2 OR N3DS)
|
|||||||
set(SDL_LOADSO_ENABLED_BY_DEFAULT OFF)
|
set(SDL_LOADSO_ENABLED_BY_DEFAULT OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(SDL_X11_XRANDR_DEFAULT ON)
|
||||||
|
if(SOLARIS)
|
||||||
|
set(SDL_X11_XRANDR_DEFAULT OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
# When defined, respect CMake's BUILD_SHARED_LIBS setting:
|
# When defined, respect CMake's BUILD_SHARED_LIBS setting:
|
||||||
set(SDL_STATIC_ENABLED_BY_DEFAULT ON)
|
set(SDL_STATIC_ENABLED_BY_DEFAULT ON)
|
||||||
if (NOT DEFINED SDL_SHARED_ENABLED_BY_DEFAULT)
|
if (NOT DEFINED SDL_SHARED_ENABLED_BY_DEFAULT)
|
||||||
@@ -409,7 +417,7 @@ dep_option(SDL_SSE "Use SSE assembly routines" ON "SDL_ASSEMBLY;
|
|||||||
dep_option(SDL_SSE2 "Use SSE2 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
|
dep_option(SDL_SSE2 "Use SSE2 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
|
||||||
dep_option(SDL_SSE3 "Use SSE3 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
|
dep_option(SDL_SSE3 "Use SSE3 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
|
||||||
dep_option(SDL_MMX "Use MMX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
|
dep_option(SDL_MMX "Use MMX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
|
||||||
dep_option(SDL_3DNOW "Use 3Dnow! MMX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
|
dep_option(SDL_3DNOW "Use 3Dnow! MMX assembly routines" OFF "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
|
||||||
dep_option(SDL_ALTIVEC "Use Altivec assembly routines" ON "SDL_ASSEMBLY" OFF)
|
dep_option(SDL_ALTIVEC "Use Altivec assembly routines" ON "SDL_ASSEMBLY" OFF)
|
||||||
dep_option(SDL_ARMSIMD "Use SIMD assembly blitters on ARM" OFF "SDL_ASSEMBLY;SDL_CPU_ARM32" OFF)
|
dep_option(SDL_ARMSIMD "Use SIMD assembly blitters on ARM" OFF "SDL_ASSEMBLY;SDL_CPU_ARM32" OFF)
|
||||||
dep_option(SDL_ARMNEON "Use NEON assembly blitters on ARM" OFF "SDL_ASSEMBLY;SDL_CPU_ARM32" OFF)
|
dep_option(SDL_ARMNEON "Use NEON assembly blitters on ARM" OFF "SDL_ASSEMBLY;SDL_CPU_ARM32" OFF)
|
||||||
@@ -456,17 +464,19 @@ set_option(SDL_RPATH "Use an rpath when linking SDL" ${UNIX_SYS})
|
|||||||
set_option(SDL_CLOCK_GETTIME "Use clock_gettime() instead of gettimeofday()" ${SDL_CLOCK_GETTIME_ENABLED_BY_DEFAULT})
|
set_option(SDL_CLOCK_GETTIME "Use clock_gettime() instead of gettimeofday()" ${SDL_CLOCK_GETTIME_ENABLED_BY_DEFAULT})
|
||||||
set_option(SDL_X11 "Use X11 video driver" ${UNIX_SYS})
|
set_option(SDL_X11 "Use X11 video driver" ${UNIX_SYS})
|
||||||
dep_option(SDL_X11_SHARED "Dynamically load X11 support" ON "SDL_X11" OFF)
|
dep_option(SDL_X11_SHARED "Dynamically load X11 support" ON "SDL_X11" OFF)
|
||||||
set(SDL_X11_OPTIONS Xcursor Xdbe XInput Xfixes Xrandr Xscrnsaver XShape)
|
dep_option(SDL_X11_XCURSOR "Enable Xcursor support" ON SDL_X11 OFF)
|
||||||
foreach(_SUB ${SDL_X11_OPTIONS})
|
dep_option(SDL_X11_XDBE "Enable Xdbe support" ON SDL_X11 OFF)
|
||||||
string(TOUPPER "SDL_X11_${_SUB}" _OPT)
|
dep_option(SDL_X11_XINPUT "Enable XInput support" ON SDL_X11 OFF)
|
||||||
dep_option(${_OPT} "Enable ${_SUB} support" ON "SDL_X11" OFF)
|
dep_option(SDL_X11_XFIXES "Enable Xfixes support" ON SDL_X11 OFF)
|
||||||
endforeach()
|
dep_option(SDL_X11_XRANDR "Enable Xrandr support" "${SDL_X11_XRANDR_DEFAULT}" SDL_X11 OFF)
|
||||||
|
dep_option(SDL_X11_XSCRNSAVER "Enable Xscrnsaver support" ON SDL_X11 OFF)
|
||||||
|
dep_option(SDL_X11_XSHAPE "Enable XShape support" ON SDL_X11 OFF)
|
||||||
set_option(SDL_WAYLAND "Use Wayland video driver" ${UNIX_SYS})
|
set_option(SDL_WAYLAND "Use Wayland video driver" ${UNIX_SYS})
|
||||||
dep_option(SDL_WAYLAND_SHARED "Dynamically load Wayland support" ON "SDL_WAYLAND" OFF)
|
dep_option(SDL_WAYLAND_SHARED "Dynamically load Wayland support" ON "SDL_WAYLAND" OFF)
|
||||||
dep_option(SDL_WAYLAND_LIBDECOR "Use client-side window decorations on Wayland" ON "SDL_WAYLAND" OFF)
|
dep_option(SDL_WAYLAND_LIBDECOR "Use client-side window decorations on Wayland" ON "SDL_WAYLAND" OFF)
|
||||||
dep_option(SDL_WAYLAND_LIBDECOR_SHARED "Dynamically load libdecor support" ON "SDL_WAYLAND_LIBDECOR;SDL_WAYLAND_SHARED" OFF)
|
dep_option(SDL_WAYLAND_LIBDECOR_SHARED "Dynamically load libdecor support" ON "SDL_WAYLAND_LIBDECOR;SDL_WAYLAND_SHARED" OFF)
|
||||||
dep_option(SDL_WAYLAND_QT_TOUCH "QtWayland server support for Wayland video driver" ON "SDL_WAYLAND" OFF)
|
dep_option(SDL_WAYLAND_QT_TOUCH "QtWayland server support for Wayland video driver" ON "SDL_WAYLAND" OFF)
|
||||||
set_option(SDL_RPI "Use Raspberry Pi video driver" ${UNIX_SYS})
|
set_option(SDL_RPI "Use Raspberry Pi 0-3 video driver" ${UNIX_SYS})
|
||||||
set_option(SDL_COCOA "Use Cocoa video driver" ${APPLE})
|
set_option(SDL_COCOA "Use Cocoa video driver" ${APPLE})
|
||||||
set_option(SDL_DIRECTX "Use DirectX for Windows audio/video" ${WINDOWS})
|
set_option(SDL_DIRECTX "Use DirectX for Windows audio/video" ${WINDOWS})
|
||||||
set_option(SDL_XINPUT "Use Xinput for Windows" ${WINDOWS})
|
set_option(SDL_XINPUT "Use Xinput for Windows" ${WINDOWS})
|
||||||
@@ -745,6 +755,11 @@ if(MSVC)
|
|||||||
if(MSVC_VERSION GREATER 1926 AND CMAKE_GENERATOR_PLATFORM MATCHES "Win32|x64")
|
if(MSVC_VERSION GREATER 1926 AND CMAKE_GENERATOR_PLATFORM MATCHES "Win32|x64")
|
||||||
list(APPEND EXTRA_LDFLAGS_BUILD "-CETCOMPAT")
|
list(APPEND EXTRA_LDFLAGS_BUILD "-CETCOMPAT")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# for VS >= 17.14 targeting ARM64: inline the Interlocked funcs
|
||||||
|
if(MSVC_VERSION GREATER 1943 AND SDL_CPU_ARM64 AND NOT SDL_LIBC)
|
||||||
|
list(APPEND EXTRA_CFLAGS /forceInterlockedFunctions-)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
|
if(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
|
||||||
@@ -926,22 +941,6 @@ if(SDL_ASSEMBLY)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SDL_LASX)
|
|
||||||
cmake_push_check_state()
|
|
||||||
set(CMAKE_REQUIRED_FLAGS "-mlasx")
|
|
||||||
check_c_source_compiles("
|
|
||||||
#ifndef __loongarch_asx
|
|
||||||
#error Assembler CPP flag not enabled
|
|
||||||
#endif
|
|
||||||
int main(int argc, char **argv) { return 0; }" CPU_SUPPORTS_LASX)
|
|
||||||
check_include_file("lasxintrin.h" HAVE_LASXINTRIN_H)
|
|
||||||
cmake_pop_check_state()
|
|
||||||
if(CPU_SUPPORTS_LASX AND HAVE_LASXINTRIN_H)
|
|
||||||
list(APPEND EXTRA_CFLAGS "-mlasx")
|
|
||||||
set(HAVE_LASX TRUE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(SDL_ARMSIMD)
|
if(SDL_ARMSIMD)
|
||||||
set(ORIG_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
|
set(ORIG_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
|
||||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -x assembler-with-cpp")
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -x assembler-with-cpp")
|
||||||
@@ -1100,6 +1099,7 @@ if(SDL_LIBC)
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION)
|
check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION)
|
||||||
|
check_symbol_exists(sigtimedwait "signal.h" HAVE_SIGTIMEDWAIT)
|
||||||
check_symbol_exists(setjmp "setjmp.h" HAVE_SETJMP)
|
check_symbol_exists(setjmp "setjmp.h" HAVE_SETJMP)
|
||||||
check_symbol_exists(nanosleep "time.h" HAVE_NANOSLEEP)
|
check_symbol_exists(nanosleep "time.h" HAVE_NANOSLEEP)
|
||||||
check_symbol_exists(sysconf "unistd.h" HAVE_SYSCONF)
|
check_symbol_exists(sysconf "unistd.h" HAVE_SYSCONF)
|
||||||
@@ -1107,6 +1107,8 @@ if(SDL_LIBC)
|
|||||||
check_symbol_exists(getauxval "sys/auxv.h" HAVE_GETAUXVAL)
|
check_symbol_exists(getauxval "sys/auxv.h" HAVE_GETAUXVAL)
|
||||||
check_symbol_exists(elf_aux_info "sys/auxv.h" HAVE_ELF_AUX_INFO)
|
check_symbol_exists(elf_aux_info "sys/auxv.h" HAVE_ELF_AUX_INFO)
|
||||||
check_symbol_exists(poll "poll.h" HAVE_POLL)
|
check_symbol_exists(poll "poll.h" HAVE_POLL)
|
||||||
|
check_symbol_exists(memfd_create "sys/mman.h" HAVE_MEMFD_CREATE)
|
||||||
|
check_symbol_exists(posix_fallocate "fcntl.h" HAVE_POSIX_FALLOCATE)
|
||||||
|
|
||||||
check_library_exists(m pow "" HAVE_LIBM)
|
check_library_exists(m pow "" HAVE_LIBM)
|
||||||
if(HAVE_LIBM)
|
if(HAVE_LIBM)
|
||||||
@@ -1469,10 +1471,14 @@ elseif(EMSCRIPTEN)
|
|||||||
elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU)
|
elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU)
|
||||||
if(SDL_AUDIO)
|
if(SDL_AUDIO)
|
||||||
if(SYSV5 OR SOLARIS OR HPUX)
|
if(SYSV5 OR SOLARIS OR HPUX)
|
||||||
|
# Newer Solaris-based systems, like OpenIndiana, don't have this interface anymore. Check for the header first.
|
||||||
|
check_include_file(sys/audioio.h HAVE_SYS_AUDIOIO_H)
|
||||||
|
if(HAVE_SYS_AUDIOIO_H)
|
||||||
set(SDL_AUDIO_DRIVER_SUNAUDIO 1)
|
set(SDL_AUDIO_DRIVER_SUNAUDIO 1)
|
||||||
file(GLOB SUN_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/sun/*.c)
|
file(GLOB SUN_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/sun/*.c)
|
||||||
list(APPEND SOURCE_FILES ${SUN_AUDIO_SOURCES})
|
list(APPEND SOURCE_FILES ${SUN_AUDIO_SOURCES})
|
||||||
set(HAVE_SDL_AUDIO TRUE)
|
set(HAVE_SDL_AUDIO TRUE)
|
||||||
|
endif()
|
||||||
elseif(NETBSD)
|
elseif(NETBSD)
|
||||||
set(SDL_AUDIO_DRIVER_NETBSD 1)
|
set(SDL_AUDIO_DRIVER_NETBSD 1)
|
||||||
file(GLOB NETBSD_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/netbsd/*.c)
|
file(GLOB NETBSD_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/netbsd/*.c)
|
||||||
@@ -1688,7 +1694,7 @@ elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU)
|
|||||||
if(FREEBSD OR NETBSD OR OPENBSD OR BSDI)
|
if(FREEBSD OR NETBSD OR OPENBSD OR BSDI)
|
||||||
CheckUSBHID()
|
CheckUSBHID()
|
||||||
endif()
|
endif()
|
||||||
if(LINUX AND HAVE_LINUX_INPUT_H AND NOT ANDROID)
|
if((LINUX OR FREEBSD) AND HAVE_LINUX_INPUT_H AND NOT ANDROID)
|
||||||
set(SDL_JOYSTICK_LINUX 1)
|
set(SDL_JOYSTICK_LINUX 1)
|
||||||
file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/linux/*.c ${SDL2_SOURCE_DIR}/src/joystick/steam/*.c)
|
file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/linux/*.c ${SDL2_SOURCE_DIR}/src/joystick/steam/*.c)
|
||||||
list(APPEND SOURCE_FILES ${JOYSTICK_SOURCES})
|
list(APPEND SOURCE_FILES ${JOYSTICK_SOURCES})
|
||||||
@@ -1787,18 +1793,11 @@ elseif(WINDOWS)
|
|||||||
list(APPEND SOURCE_FILES ${CORE_SOURCES})
|
list(APPEND SOURCE_FILES ${CORE_SOURCES})
|
||||||
|
|
||||||
if(WINDOWS_STORE)
|
if(WINDOWS_STORE)
|
||||||
|
enable_language(CXX)
|
||||||
file(GLOB WINRT_SOURCE_FILES ${SDL2_SOURCE_DIR}/src/core/winrt/*.c ${SDL2_SOURCE_DIR}/src/core/winrt/*.cpp)
|
file(GLOB WINRT_SOURCE_FILES ${SDL2_SOURCE_DIR}/src/core/winrt/*.c ${SDL2_SOURCE_DIR}/src/core/winrt/*.cpp)
|
||||||
list(APPEND SOURCE_FILES ${WINRT_SOURCE_FILES})
|
list(APPEND SOURCE_FILES ${WINRT_SOURCE_FILES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC AND NOT SDL_LIBC)
|
|
||||||
# Prevent codegen that would use the VC runtime libraries.
|
|
||||||
set_property(DIRECTORY . APPEND PROPERTY COMPILE_OPTIONS "/GS-;/Gs1048576")
|
|
||||||
if(NOT ARCH_64 AND NOT CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
|
|
||||||
set_property(DIRECTORY . APPEND PROPERTY COMPILE_OPTIONS "/arch:SSE")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(SDL_MISC)
|
if(SDL_MISC)
|
||||||
if(WINDOWS_STORE)
|
if(WINDOWS_STORE)
|
||||||
file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/winrt/*.cpp)
|
file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/winrt/*.cpp)
|
||||||
@@ -1824,13 +1823,11 @@ elseif(WINDOWS)
|
|||||||
check_include_file(d3d9.h HAVE_D3D_H)
|
check_include_file(d3d9.h HAVE_D3D_H)
|
||||||
check_include_file(d3d11_1.h HAVE_D3D11_H)
|
check_include_file(d3d11_1.h HAVE_D3D11_H)
|
||||||
check_c_source_compiles("
|
check_c_source_compiles("
|
||||||
#include <winsdkver.h>
|
|
||||||
#include <sdkddkver.h>
|
|
||||||
#include <d3d12.h>
|
#include <d3d12.h>
|
||||||
|
#include <d3d12sdklayers.h>
|
||||||
ID3D12Device1 *device;
|
ID3D12Device1 *device;
|
||||||
#if WDK_NTDDI_VERSION > 0x0A000008
|
|
||||||
int main(int argc, char **argv) {return 0; }
|
int main(int argc, char **argv) {return 0; }
|
||||||
#endif" HAVE_D3D12_H)
|
" HAVE_D3D12_H)
|
||||||
check_include_file(ddraw.h HAVE_DDRAW_H)
|
check_include_file(ddraw.h HAVE_DDRAW_H)
|
||||||
check_include_file(dsound.h HAVE_DSOUND_H)
|
check_include_file(dsound.h HAVE_DSOUND_H)
|
||||||
check_include_file(dinput.h HAVE_DINPUT_H)
|
check_include_file(dinput.h HAVE_DINPUT_H)
|
||||||
@@ -1842,8 +1839,10 @@ elseif(WINDOWS)
|
|||||||
set(HAVE_DIRECTX TRUE)
|
set(HAVE_DIRECTX TRUE)
|
||||||
if(NOT MINGW AND NOT USE_WINSDK_DIRECTX)
|
if(NOT MINGW AND NOT USE_WINSDK_DIRECTX)
|
||||||
# TODO: change $ENV{DXSDL_DIR} to get the path from the include checks
|
# TODO: change $ENV{DXSDL_DIR} to get the path from the include checks
|
||||||
target_link_directories(sdl-build-options INTERFACE "$$ENV{DXSDK_DIR}\\lib\\${PROCESSOR_ARCH}")
|
file(TO_CMAKE_PATH "$ENV{DXSDK_DIR}\\lib\\${PROCESSOR_ARCH}" SDL2_TMP_DXSDK_LIB_DIR)
|
||||||
target_include_directories(sdl-build-options INTERFACE "$ENV{DXSDK_DIR}\\Include")
|
target_link_directories(sdl-build-options INTERFACE "${SDL2_TMP_DXSDK_LIB_DIR}")
|
||||||
|
file(TO_CMAKE_PATH "$ENV{DXSDK_DIR}\\Include" SDL2_TMP_DXSDK_INCLUDE_DIR)
|
||||||
|
target_include_directories(sdl-build-options INTERFACE "${SDL2_TMP_DXSDK_INCLUDE_DIR}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
|
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
|
||||||
@@ -2078,6 +2077,7 @@ elseif(WINDOWS)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
enable_language(RC)
|
||||||
file(GLOB VERSION_SOURCES ${SDL2_SOURCE_DIR}/src/main/windows/*.rc)
|
file(GLOB VERSION_SOURCES ${SDL2_SOURCE_DIR}/src/main/windows/*.rc)
|
||||||
file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/windows/*.c)
|
file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/windows/*.c)
|
||||||
if(MINGW OR CYGWIN)
|
if(MINGW OR CYGWIN)
|
||||||
@@ -2095,7 +2095,7 @@ elseif(APPLE)
|
|||||||
# !!! FIXME: we need Carbon for some very old API calls in
|
# !!! FIXME: we need Carbon for some very old API calls in
|
||||||
# !!! FIXME: src/video/cocoa/SDL_cocoakeyboard.c, but we should figure out
|
# !!! FIXME: src/video/cocoa/SDL_cocoakeyboard.c, but we should figure out
|
||||||
# !!! FIXME: how to dump those.
|
# !!! FIXME: how to dump those.
|
||||||
if(DARWIN OR MACOSX)
|
if(MACOS)
|
||||||
set(SDL_FRAMEWORK_COCOA 1)
|
set(SDL_FRAMEWORK_COCOA 1)
|
||||||
set(SDL_FRAMEWORK_CARBON 1)
|
set(SDL_FRAMEWORK_CARBON 1)
|
||||||
endif()
|
endif()
|
||||||
@@ -2109,12 +2109,12 @@ elseif(APPLE)
|
|||||||
set(HAVE_SDL_FILE TRUE)
|
set(HAVE_SDL_FILE TRUE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(IOS OR TVOS)
|
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
|
||||||
file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/uikit/*.c)
|
file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/uikit/*.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SDL_MISC)
|
if(SDL_MISC)
|
||||||
if(IOS OR TVOS)
|
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
|
||||||
file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/ios/*.m)
|
file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/ios/*.m)
|
||||||
else()
|
else()
|
||||||
file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/macosx/*.m)
|
file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/macosx/*.m)
|
||||||
@@ -2139,10 +2139,10 @@ elseif(APPLE)
|
|||||||
|
|
||||||
if(SDL_JOYSTICK)
|
if(SDL_JOYSTICK)
|
||||||
file(GLOB MFI_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/iphoneos/*.m)
|
file(GLOB MFI_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/iphoneos/*.m)
|
||||||
if(IOS OR TVOS)
|
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
|
||||||
file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/steam/*.c)
|
file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/steam/*.c)
|
||||||
set(SDL_JOYSTICK_MFI 1)
|
set(SDL_JOYSTICK_MFI 1)
|
||||||
if(IOS)
|
if(IOS OR VISIONOS OR WATCHOS)
|
||||||
set(SDL_FRAMEWORK_COREMOTION 1)
|
set(SDL_FRAMEWORK_COREMOTION 1)
|
||||||
endif()
|
endif()
|
||||||
set(SDL_FRAMEWORK_GAMECONTROLLER 1)
|
set(SDL_FRAMEWORK_GAMECONTROLLER 1)
|
||||||
@@ -2183,7 +2183,7 @@ elseif(APPLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SDL_HAPTIC)
|
if(SDL_HAPTIC)
|
||||||
if (IOS OR TVOS)
|
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
|
||||||
file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/dummy/*.c)
|
file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/dummy/*.c)
|
||||||
set(SDL_HAPTIC_DUMMY 1)
|
set(SDL_HAPTIC_DUMMY 1)
|
||||||
else()
|
else()
|
||||||
@@ -2197,7 +2197,7 @@ elseif(APPLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SDL_POWER)
|
if(SDL_POWER)
|
||||||
if (IOS OR TVOS)
|
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
|
||||||
file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/uikit/*.m)
|
file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/uikit/*.m)
|
||||||
set(SDL_POWER_UIKIT 1)
|
set(SDL_POWER_UIKIT 1)
|
||||||
else()
|
else()
|
||||||
@@ -2230,7 +2230,7 @@ elseif(APPLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SDL_SENSOR)
|
if(SDL_SENSOR)
|
||||||
if(IOS)
|
if(IOS OR VISIONOS OR WATCHOS)
|
||||||
set(SDL_SENSOR_COREMOTION 1)
|
set(SDL_SENSOR_COREMOTION 1)
|
||||||
set(HAVE_SDL_SENSORS TRUE)
|
set(HAVE_SDL_SENSORS TRUE)
|
||||||
file(GLOB SENSOR_SOURCES ${SDL2_SOURCE_DIR}/src/sensor/coremotion/*.m)
|
file(GLOB SENSOR_SOURCES ${SDL2_SOURCE_DIR}/src/sensor/coremotion/*.m)
|
||||||
@@ -2240,7 +2240,7 @@ elseif(APPLE)
|
|||||||
|
|
||||||
# iOS hack needed - http://code.google.com/p/ios-cmake/ ?
|
# iOS hack needed - http://code.google.com/p/ios-cmake/ ?
|
||||||
if(SDL_VIDEO)
|
if(SDL_VIDEO)
|
||||||
if (IOS OR TVOS)
|
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
|
||||||
set(SDL_VIDEO_DRIVER_UIKIT 1)
|
set(SDL_VIDEO_DRIVER_UIKIT 1)
|
||||||
set(SDL_FRAMEWORK_COREGRAPHICS 1)
|
set(SDL_FRAMEWORK_COREGRAPHICS 1)
|
||||||
set(SDL_FRAMEWORK_QUARTZCORE 1)
|
set(SDL_FRAMEWORK_QUARTZCORE 1)
|
||||||
@@ -2261,7 +2261,7 @@ elseif(APPLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SDL_OPENGLES)
|
if(SDL_OPENGLES)
|
||||||
if(IOS OR TVOS)
|
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
|
||||||
set(SDL_FRAMEWORK_OPENGLES 1)
|
set(SDL_FRAMEWORK_OPENGLES 1)
|
||||||
set(SDL_VIDEO_OPENGL_ES 1)
|
set(SDL_VIDEO_OPENGL_ES 1)
|
||||||
set(SDL_VIDEO_RENDER_OGL_ES 1)
|
set(SDL_VIDEO_RENDER_OGL_ES 1)
|
||||||
@@ -2304,73 +2304,96 @@ elseif(APPLE)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Minimum version for $<LINK_LIBRARY:feature,library-list>
|
||||||
|
cmake_minimum_required(VERSION 3.24)
|
||||||
|
|
||||||
# Actually load the frameworks at the end so we don't duplicate include.
|
# Actually load the frameworks at the end so we don't duplicate include.
|
||||||
if(SDL_FRAMEWORK_COREVIDEO)
|
if(SDL_FRAMEWORK_COREVIDEO)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreVideo")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreVideo")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreVideo>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_COCOA)
|
if(SDL_FRAMEWORK_COCOA)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,Cocoa")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Cocoa")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Cocoa>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_IOKIT)
|
if(SDL_FRAMEWORK_IOKIT)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,IOKit")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,IOKit")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,IOKit>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_FF)
|
if(SDL_FRAMEWORK_FF)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,ForceFeedback")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,ForceFeedback")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,ForceFeedback>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_CARBON)
|
if(SDL_FRAMEWORK_CARBON)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,Carbon")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Carbon")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Carbon>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_COREAUDIO)
|
if(SDL_FRAMEWORK_COREAUDIO)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreAudio")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreAudio")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreAudio>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_AUDIOTOOLBOX)
|
if(SDL_FRAMEWORK_AUDIOTOOLBOX)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,AudioToolbox")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,AudioToolbox")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,AudioToolbox>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_AVFOUNDATION)
|
if(SDL_FRAMEWORK_AVFOUNDATION)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,AVFoundation")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,AVFoundation")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,AVFoundation>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_COREBLUETOOTH)
|
if(SDL_FRAMEWORK_COREBLUETOOTH)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreBluetooth")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreBluetooth")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreBluetooth>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_COREGRAPHICS)
|
if(SDL_FRAMEWORK_COREGRAPHICS)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreGraphics")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreGraphics")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreGraphics>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_COREMOTION)
|
if(SDL_FRAMEWORK_COREMOTION)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreMotion")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreMotion")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Coremotion>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_FOUNDATION)
|
if(SDL_FRAMEWORK_FOUNDATION)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,Foundation")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Foundation")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Foundation>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_GAMECONTROLLER)
|
if(SDL_FRAMEWORK_GAMECONTROLLER)
|
||||||
find_library(GAMECONTROLLER GameController)
|
find_library(GAMECONTROLLER GameController)
|
||||||
if(GAMECONTROLLER)
|
if(GAMECONTROLLER)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,GameController")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,GameController")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,GameController>")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_METAL)
|
if(SDL_FRAMEWORK_METAL)
|
||||||
if(IOS OR TVOS)
|
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,Metal")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Metal")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Metal>")
|
||||||
else()
|
else()
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,Metal")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,Metal")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,Metal>")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_OPENGLES)
|
if(SDL_FRAMEWORK_OPENGLES)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,OpenGLES")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,OpenGLES")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,OpenGLES>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_QUARTZCORE)
|
if(SDL_FRAMEWORK_QUARTZCORE)
|
||||||
if(IOS OR TVOS)
|
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,QuartzCore")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,QuartzCore")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,QuartzCore>")
|
||||||
else()
|
else()
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,QuartzCore")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,QuartzCore")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,QuartzCore>")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_UIKIT)
|
if(SDL_FRAMEWORK_UIKIT)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-framework,UIKit")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,UIKit")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,UIKit>")
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FRAMEWORK_COREHAPTICS)
|
if(SDL_FRAMEWORK_COREHAPTICS)
|
||||||
find_library(COREHAPTICS CoreHaptics)
|
find_library(COREHAPTICS CoreHaptics)
|
||||||
if(COREHAPTICS)
|
if(COREHAPTICS)
|
||||||
list(APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,CoreHaptics")
|
list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,CoreHaptics")
|
||||||
|
list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,CoreHaptics>")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -2689,6 +2712,11 @@ elseif(PSP)
|
|||||||
list(APPEND SOURCE_FILES ${PSP_THREAD_SOURCES})
|
list(APPEND SOURCE_FILES ${PSP_THREAD_SOURCES})
|
||||||
set(HAVE_SDL_THREADS TRUE)
|
set(HAVE_SDL_THREADS TRUE)
|
||||||
endif()
|
endif()
|
||||||
|
if(SDL_LOCALE)
|
||||||
|
file(GLOB PSP_LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/psp/*.c)
|
||||||
|
list(APPEND SOURCE_FILES ${PSP_LOCALE_SOURCES})
|
||||||
|
set(HAVE_SDL_LOCALE TRUE)
|
||||||
|
endif()
|
||||||
if(SDL_TIMERS)
|
if(SDL_TIMERS)
|
||||||
set(SDL_TIMER_PSP 1)
|
set(SDL_TIMER_PSP 1)
|
||||||
file(GLOB PSP_TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/psp/*.c)
|
file(GLOB PSP_TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/psp/*.c)
|
||||||
@@ -2721,7 +2749,6 @@ elseif(PSP)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
elseif(PS2)
|
elseif(PS2)
|
||||||
list(APPEND EXTRA_CFLAGS "-DPS2" "-D__PS2__" "-I$ENV{PS2SDK}/ports/include" "-I$ENV{PS2DEV}/gsKit/include")
|
|
||||||
|
|
||||||
file(GLOB PS2_MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/ps2/*.c)
|
file(GLOB PS2_MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/ps2/*.c)
|
||||||
set(SDLMAIN_SOURCES ${SDLMAIN_SOURCES} ${PS2_MAIN_SOURCES})
|
set(SDLMAIN_SOURCES ${SDLMAIN_SOURCES} ${PS2_MAIN_SOURCES})
|
||||||
@@ -3077,8 +3104,8 @@ endif()
|
|||||||
|
|
||||||
# Compat helpers for the configuration files
|
# Compat helpers for the configuration files
|
||||||
|
|
||||||
if(EXISTS "${PROJECT_SOURCE_DIR}/VERSION.txt")
|
if(EXISTS "${PROJECT_SOURCE_DIR}/REVISION.txt")
|
||||||
file(READ "${PROJECT_SOURCE_DIR}/VERSION.txt" SDL_SOURCE_VERSION)
|
file(READ "${PROJECT_SOURCE_DIR}/REVISION.txt" SDL_SOURCE_VERSION)
|
||||||
string(STRIP "${SDL_SOURCE_VERSION}" SDL_SOURCE_VERSION)
|
string(STRIP "${SDL_SOURCE_VERSION}" SDL_SOURCE_VERSION)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -3172,7 +3199,7 @@ endif()
|
|||||||
|
|
||||||
# Clean up the different lists
|
# Clean up the different lists
|
||||||
listtostr(EXTRA_LIBS _EXTRA_LIBS "-l")
|
listtostr(EXTRA_LIBS _EXTRA_LIBS "-l")
|
||||||
set(SDL_STATIC_LIBS ${SDL_LIBS} ${EXTRA_LDFLAGS} ${_EXTRA_LIBS})
|
set(SDL_STATIC_LIBS ${EXTRA_LDFLAGS} ${_EXTRA_LIBS} ${PKGCONFIG_LDFLAGS})
|
||||||
list(REMOVE_DUPLICATES SDL_STATIC_LIBS)
|
list(REMOVE_DUPLICATES SDL_STATIC_LIBS)
|
||||||
listtostr(SDL_STATIC_LIBS _SDL_STATIC_LIBS)
|
listtostr(SDL_STATIC_LIBS _SDL_STATIC_LIBS)
|
||||||
set(SDL_STATIC_LIBS ${_SDL_STATIC_LIBS})
|
set(SDL_STATIC_LIBS ${_SDL_STATIC_LIBS})
|
||||||
@@ -3206,10 +3233,12 @@ macro(check_add_debug_flag FLAG SUFFIX)
|
|||||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${FLAG}")
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${FLAG}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_CXX_COMPILER)
|
||||||
check_cxx_compiler_flag(${FLAG} HAS_CXX_${SUFFIX})
|
check_cxx_compiler_flag(${FLAG} HAS_CXX_${SUFFIX})
|
||||||
if (HAS_CXX_${SUFFIX})
|
if (HAS_CXX_${SUFFIX})
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAG}")
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAG}")
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(asan_check_add_debug_flag ASAN_FLAG)
|
macro(asan_check_add_debug_flag ASAN_FLAG)
|
||||||
@@ -3227,18 +3256,20 @@ macro(asan_check_add_debug_flag2 ASAN_FLAG)
|
|||||||
|
|
||||||
set (STORED_REQLIBS ${CMAKE_REQUIRED_LIBRARIES})
|
set (STORED_REQLIBS ${CMAKE_REQUIRED_LIBRARIES})
|
||||||
set (CMAKE_REQUIRED_LIBRARIES "${FLAG};asan")
|
set (CMAKE_REQUIRED_LIBRARIES "${FLAG};asan")
|
||||||
check_c_compiler_flag (${FLAG} HAS_C_FLAG_${ASAN_FLAG})
|
|
||||||
check_cxx_compiler_flag (${FLAG} HAS_CXX_FLAG_${ASAN_FLAG})
|
|
||||||
set (CMAKE_REQUIRED_LIBRARIES ${STORED_REQLIBS})
|
|
||||||
|
|
||||||
|
check_c_compiler_flag (${FLAG} HAS_C_FLAG_${ASAN_FLAG})
|
||||||
if (HAS_C_FLAG_${ASAN_FLAG})
|
if (HAS_C_FLAG_${ASAN_FLAG})
|
||||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${FLAG}")
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${FLAG}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_CXX_COMPILER)
|
||||||
|
check_cxx_compiler_flag (${FLAG} HAS_CXX_FLAG_${ASAN_FLAG})
|
||||||
if (HAS_CXX_${ASAN_FLAG})
|
if (HAS_CXX_${ASAN_FLAG})
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAG}")
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAG}")
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set (CMAKE_REQUIRED_LIBRARIES ${STORED_REQLIBS})
|
||||||
if(HAS_C_${ASAN_FLAG} OR HAS_CXX_${ASAN_FLAG})
|
if(HAS_C_${ASAN_FLAG} OR HAS_CXX_${ASAN_FLAG})
|
||||||
set(HAVE_ASAN ON)
|
set(HAVE_ASAN ON)
|
||||||
endif()
|
endif()
|
||||||
@@ -3462,7 +3493,7 @@ if(SDL_SHARED)
|
|||||||
set_property(TARGET SDL2 APPEND_STRING PROPERTY STATIC_LIBRARY_FLAGS " /NODEFAULTLIB")
|
set_property(TARGET SDL2 APPEND_STRING PROPERTY STATIC_LIBRARY_FLAGS " /NODEFAULTLIB")
|
||||||
endif()
|
endif()
|
||||||
# FIXME: if CMAKE_VERSION >= 3.13, use target_link_options for EXTRA_LDFLAGS
|
# FIXME: if CMAKE_VERSION >= 3.13, use target_link_options for EXTRA_LDFLAGS
|
||||||
target_link_libraries(SDL2 PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${EXTRA_LDFLAGS_BUILD} ${CMAKE_DEPENDS})
|
target_link_libraries(SDL2 PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${EXTRA_LDFLAGS_BUILD} ${CMAKE_LIBS})
|
||||||
target_include_directories(SDL2 PUBLIC
|
target_include_directories(SDL2 PUBLIC
|
||||||
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include>"
|
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include>"
|
||||||
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include/SDL2>"
|
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include/SDL2>"
|
||||||
@@ -3498,7 +3529,7 @@ if(SDL_STATIC)
|
|||||||
target_compile_definitions(SDL2-static PRIVATE SDL_STATIC_LIB)
|
target_compile_definitions(SDL2-static PRIVATE SDL_STATIC_LIB)
|
||||||
# TODO: Win32 platforms keep the same suffix .lib for import and static
|
# TODO: Win32 platforms keep the same suffix .lib for import and static
|
||||||
# libraries - do we need to consider this?
|
# libraries - do we need to consider this?
|
||||||
target_link_libraries(SDL2-static PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${CMAKE_DEPENDS})
|
target_link_libraries(SDL2-static PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${CMAKE_LIBS})
|
||||||
target_include_directories(SDL2-static PUBLIC
|
target_include_directories(SDL2-static PUBLIC
|
||||||
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include>"
|
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include>"
|
||||||
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include/SDL2>"
|
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include/SDL2>"
|
||||||
@@ -3543,6 +3574,23 @@ if(SDL_TEST)
|
|||||||
set_property(TARGET SDL2_test PROPERTY INTERFACE_SDL_VERSION "SDL2")
|
set_property(TARGET SDL2_test PROPERTY INTERFACE_SDL_VERSION "SDL2")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(MSVC AND NOT SDL_LIBC)
|
||||||
|
set(targets )
|
||||||
|
if(TARGET SDL2)
|
||||||
|
list(APPEND targets SDL2)
|
||||||
|
endif()
|
||||||
|
if(TARGET SDL2-static)
|
||||||
|
list(APPEND targets SDL2-static)
|
||||||
|
endif()
|
||||||
|
if(TARGET SDL2_test)
|
||||||
|
list(APPEND targets SDL2_test)
|
||||||
|
endif()
|
||||||
|
set_property(TARGET ${targets} APPEND PROPERTY COMPILE_OPTIONS "/GS-;/Gs1048576")
|
||||||
|
if(NOT ARCH_64 AND NOT CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
|
||||||
|
set_property(TARGET ${targets} APPEND PROPERTY COMPILE_OPTIONS "/arch:SSE")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
##### Installation targets #####
|
##### Installation targets #####
|
||||||
if(NOT SDL2_DISABLE_INSTALL)
|
if(NOT SDL2_DISABLE_INSTALL)
|
||||||
if(SDL_SHARED)
|
if(SDL_SHARED)
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
@@ -52,7 +52,7 @@ WAYLAND_SCANNER_CODE_MODE = @WAYLAND_SCANNER_CODE_MODE@
|
|||||||
|
|
||||||
INSTALL_SDL2_CONFIG = @INSTALL_SDL2_CONFIG@
|
INSTALL_SDL2_CONFIG = @INSTALL_SDL2_CONFIG@
|
||||||
|
|
||||||
SRC_DIST = *.md *.txt acinclude Android.mk autogen.sh android-project build-scripts cmake cmake_uninstall.cmake.in configure configure.ac docs include Makefile.* mingw sdl2-config.cmake.in sdl2-config-version.cmake.in sdl2-config.in sdl2.m4 sdl2.pc.in SDL2.spec.in SDL2Config.cmake.in src test VisualC VisualC-WinRT Xcode Xcode-iOS wayland-protocols
|
SRC_DIST = *.md *.txt acinclude Android.mk autogen.sh android-project build-scripts cmake cmake_uninstall.cmake.in configure configure.ac docs include Makefile.* mingw sdl2-config.cmake.in sdl2-config-version.cmake.in sdl2-config.in sdl2.m4 sdl2.pc.in SDL2.spec.in SDL2Config.cmake.in src test VisualC VisualC-GDK VisualC-WinRT Xcode Xcode-iOS wayland-protocols
|
||||||
GEN_DIST = SDL2.spec
|
GEN_DIST = SDL2.spec
|
||||||
|
|
||||||
ifneq ($V,1)
|
ifneq ($V,1)
|
||||||
|
@@ -14,8 +14,8 @@
|
|||||||
|
|
||||||
LIBNAME = SDL2
|
LIBNAME = SDL2
|
||||||
MAJOR_VERSION = 2
|
MAJOR_VERSION = 2
|
||||||
MINOR_VERSION = 29
|
MINOR_VERSION = 33
|
||||||
MICRO_VERSION = 2
|
MICRO_VERSION = 0
|
||||||
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
||||||
DESCRIPTION = Simple DirectMedia Layer 2
|
DESCRIPTION = Simple DirectMedia Layer 2
|
||||||
|
|
||||||
|
@@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
LIBNAME = SDL2
|
LIBNAME = SDL2
|
||||||
MAJOR_VERSION = 2
|
MAJOR_VERSION = 2
|
||||||
MINOR_VERSION = 29
|
MINOR_VERSION = 33
|
||||||
MICRO_VERSION = 2
|
MICRO_VERSION = 0
|
||||||
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
||||||
|
|
||||||
LIBHOME = .
|
LIBHOME = .
|
||||||
|
@@ -174,7 +174,7 @@
|
|||||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
</Link>
|
</Link>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Command>$(SolutionDir)\shaders\buildshaders.bat $(SolutionDir)</Command>
|
<Command>$(ProjectDir)..\shaders\buildshaders.bat $(ProjectDir)..\</Command>
|
||||||
</PreBuildEvent>
|
</PreBuildEvent>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Message>Building shader blobs (Xbox Series)</Message>
|
<Message>Building shader blobs (Xbox Series)</Message>
|
||||||
@@ -208,7 +208,7 @@
|
|||||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
</Link>
|
</Link>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Command>$(SolutionDir)\shaders\buildshaders.bat $(SolutionDir) one</Command>
|
<Command>$(ProjectDir)..\shaders\buildshaders.bat $(ProjectDir)..\ one</Command>
|
||||||
</PreBuildEvent>
|
</PreBuildEvent>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Message>Building shader blobs (Xbox One)</Message>
|
<Message>Building shader blobs (Xbox One)</Message>
|
||||||
@@ -272,7 +272,7 @@
|
|||||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
</Link>
|
</Link>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Command>$(SolutionDir)\shaders\buildshaders.bat $(SolutionDir)</Command>
|
<Command>$(ProjectDir)..\shaders\buildshaders.bat $(ProjectDir)..\</Command>
|
||||||
</PreBuildEvent>
|
</PreBuildEvent>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Message>Building shader blobs (Xbox Series)</Message>
|
<Message>Building shader blobs (Xbox Series)</Message>
|
||||||
@@ -307,7 +307,7 @@
|
|||||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
</Link>
|
</Link>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Command>$(SolutionDir)\shaders\buildshaders.bat $(SolutionDir) one</Command>
|
<Command>$(ProjectDir)..\shaders\buildshaders.bat $(ProjectDir)..\ one</Command>
|
||||||
</PreBuildEvent>
|
</PreBuildEvent>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Message>Building shader blobs (Xbox One)</Message>
|
<Message>Building shader blobs (Xbox One)</Message>
|
||||||
@@ -499,7 +499,6 @@
|
|||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_platform.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_platform.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_sdk_platform.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_sdk_platform.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.hpp" />
|
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_beta.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_beta.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_core.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_core.h" />
|
||||||
|
@@ -780,9 +780,6 @@
|
|||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h">
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h">
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
<Filter>video\khronos\vulkan</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.hpp">
|
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h">
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h">
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
<Filter>video\khronos\vulkan</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
@@ -139,7 +139,7 @@
|
|||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Xbox.Scarlett.x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Xbox.Scarlett.x64'">
|
||||||
@@ -211,7 +211,7 @@
|
|||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">
|
||||||
@@ -409,7 +409,7 @@
|
|||||||
<CopyFileToFolders Include="..\..\logos\Logo480x480.png" />
|
<CopyFileToFolders Include="..\..\logos\Logo480x480.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.141.GDK.C.Thunks.dll">
|
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.GDK.C.Thunks.dll">
|
||||||
<FileType>Document</FileType>
|
<FileType>Document</FileType>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.XboxOne.x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.XboxOne.x64'">true</ExcludedFromBuild>
|
||||||
|
@@ -21,7 +21,7 @@
|
|||||||
<CopyFileToFolders Include="..\..\logos\Logo480x480.png">
|
<CopyFileToFolders Include="..\..\logos\Logo480x480.png">
|
||||||
<Filter>logos</Filter>
|
<Filter>logos</Filter>
|
||||||
</CopyFileToFolders>
|
</CopyFileToFolders>
|
||||||
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.141.GDK.C.Thunks.dll">
|
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.GDK.C.Thunks.dll">
|
||||||
<Filter>wingdk</Filter>
|
<Filter>wingdk</Filter>
|
||||||
</CopyFileToFolders>
|
</CopyFileToFolders>
|
||||||
<CopyFileToFolders Include="wingdk\MicrosoftGame.config">
|
<CopyFileToFolders Include="wingdk\MicrosoftGame.config">
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
@@ -139,7 +139,7 @@
|
|||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
<PostBuildEvent>
|
<PostBuildEvent>
|
||||||
<Command>
|
<Command>
|
||||||
@@ -223,7 +223,7 @@
|
|||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
<PostBuildEvent>
|
<PostBuildEvent>
|
||||||
<Command>
|
<Command>
|
||||||
@@ -352,7 +352,7 @@ copy "%(FullPath)" "$(OutDir)\"</Command>
|
|||||||
</CopyFileToFolders>
|
</CopyFileToFolders>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.141.GDK.C.Thunks.dll">
|
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.GDK.C.Thunks.dll">
|
||||||
<FileType>Document</FileType>
|
<FileType>Document</FileType>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.XboxOne.x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.XboxOne.x64'">true</ExcludedFromBuild>
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
<CopyFileToFolders Include="..\..\logos\Logo480x480.png">
|
<CopyFileToFolders Include="..\..\logos\Logo480x480.png">
|
||||||
<Filter>logos</Filter>
|
<Filter>logos</Filter>
|
||||||
</CopyFileToFolders>
|
</CopyFileToFolders>
|
||||||
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.141.GDK.C.Thunks.dll">
|
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.GDK.C.Thunks.dll">
|
||||||
<Filter>wingdk</Filter>
|
<Filter>wingdk</Filter>
|
||||||
</CopyFileToFolders>
|
</CopyFileToFolders>
|
||||||
<CopyFileToFolders Include="wingdk\MicrosoftGame.config">
|
<CopyFileToFolders Include="wingdk\MicrosoftGame.config">
|
||||||
|
@@ -139,7 +139,7 @@
|
|||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
<PostBuildEvent>
|
<PostBuildEvent>
|
||||||
<Command>
|
<Command>
|
||||||
@@ -223,7 +223,7 @@
|
|||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
<PostBuildEvent>
|
<PostBuildEvent>
|
||||||
<Command>
|
<Command>
|
||||||
@@ -352,7 +352,7 @@ copy "%(FullPath)" "$(OutDir)\"</Command>
|
|||||||
</CopyFileToFolders>
|
</CopyFileToFolders>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.141.GDK.C.Thunks.dll">
|
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.GDK.C.Thunks.dll">
|
||||||
<FileType>Document</FileType>
|
<FileType>Document</FileType>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.XboxOne.x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.XboxOne.x64'">true</ExcludedFromBuild>
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
<CopyFileToFolders Include="..\..\logos\Logo480x480.png">
|
<CopyFileToFolders Include="..\..\logos\Logo480x480.png">
|
||||||
<Filter>logos</Filter>
|
<Filter>logos</Filter>
|
||||||
</CopyFileToFolders>
|
</CopyFileToFolders>
|
||||||
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.141.GDK.C.Thunks.dll">
|
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.GDK.C.Thunks.dll">
|
||||||
<Filter>wingdk</Filter>
|
<Filter>wingdk</Filter>
|
||||||
</CopyFileToFolders>
|
</CopyFileToFolders>
|
||||||
<CopyFileToFolders Include="xboxseries\MicrosoftGame.config">
|
<CopyFileToFolders Include="xboxseries\MicrosoftGame.config">
|
||||||
|
@@ -371,6 +371,7 @@
|
|||||||
<TargetPlatformVersion>10.0.16299.0</TargetPlatformVersion>
|
<TargetPlatformVersion>10.0.16299.0</TargetPlatformVersion>
|
||||||
<TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>
|
||||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||||
|
<WindowsTargetPlatformMinVersion>10.0.0.0</WindowsTargetPlatformMinVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
@@ -391,7 +392,7 @@
|
|||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
@@ -44,22 +44,6 @@
|
|||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
|
||||||
@@ -394,7 +378,6 @@
|
|||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_platform.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_platform.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_sdk_platform.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_sdk_platform.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.hpp" />
|
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_beta.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_beta.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_core.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_core.h" />
|
||||||
|
@@ -780,9 +780,6 @@
|
|||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h">
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h">
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
<Filter>video\khronos\vulkan</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.hpp">
|
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h">
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h">
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
<Filter>video\khronos\vulkan</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
# SDL2 CMake configuration file:
|
# SDL2 CMake configuration file:
|
||||||
# This file is meant to be placed in a cmake subfolder of SDL2-devel-2.x.y-VC
|
# This file is meant to be placed in a cmake subfolder of SDL2-devel-2.x.y-VC
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.0...3.5)
|
cmake_minimum_required(VERSION 3.0...3.28)
|
||||||
|
|
||||||
include(FeatureSummary)
|
include(FeatureSummary)
|
||||||
set_package_properties(SDL2 PROPERTIES
|
set_package_properties(SDL2 PROPERTIES
|
||||||
@@ -79,6 +79,8 @@ endif()
|
|||||||
unset(_sdl2_library)
|
unset(_sdl2_library)
|
||||||
unset(_sdl2_dll_library)
|
unset(_sdl2_dll_library)
|
||||||
|
|
||||||
|
set(SDL2_SDL2-static_FOUND FALSE)
|
||||||
|
|
||||||
set(_sdl2main_library "${SDL2_LIBDIR}/SDL2main.lib")
|
set(_sdl2main_library "${SDL2_LIBDIR}/SDL2main.lib")
|
||||||
if(EXISTS "${_sdl2main_library}")
|
if(EXISTS "${_sdl2main_library}")
|
||||||
if(NOT TARGET SDL2::SDL2main)
|
if(NOT TARGET SDL2::SDL2main)
|
||||||
@@ -92,7 +94,7 @@ if(EXISTS "${_sdl2main_library}")
|
|||||||
endif()
|
endif()
|
||||||
set(SDL2_SDL2main_FOUND TRUE)
|
set(SDL2_SDL2main_FOUND TRUE)
|
||||||
else()
|
else()
|
||||||
set(SDL2_SDL2_FOUND FALSE)
|
set(SDL2_SDL2main_FOUND FALSE)
|
||||||
endif()
|
endif()
|
||||||
unset(_sdl2main_library)
|
unset(_sdl2main_library)
|
||||||
|
|
||||||
@@ -110,7 +112,7 @@ if(EXISTS "${_sdl2test_library}")
|
|||||||
endif()
|
endif()
|
||||||
set(SDL2_SDL2test_FOUND TRUE)
|
set(SDL2_SDL2test_FOUND TRUE)
|
||||||
else()
|
else()
|
||||||
set(SDL2_SDL2_FOUND FALSE)
|
set(SDL2_SDL2test_FOUND FALSE)
|
||||||
endif()
|
endif()
|
||||||
unset(_sdl2test_library)
|
unset(_sdl2test_library)
|
||||||
|
|
||||||
|
@@ -188,6 +188,12 @@
|
|||||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\SDLtest\SDLtest.vcxproj">
|
||||||
|
<Project>{da956fd3-e143-46f2-9fe5-c77bebc56b1a}</Project>
|
||||||
|
<Private>false</Private>
|
||||||
|
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||||
|
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\..\SDLmain\SDLmain.vcxproj">
|
<ProjectReference Include="..\..\SDLmain\SDLmain.vcxproj">
|
||||||
<Project>{da956fd3-e142-46f2-9dd5-c78bebb56b7a}</Project>
|
<Project>{da956fd3-e142-46f2-9dd5-c78bebb56b7a}</Project>
|
||||||
<Private>false</Private>
|
<Private>false</Private>
|
||||||
|
@@ -210,6 +210,7 @@
|
|||||||
<ClCompile Include="..\..\..\test\testautomation_hints.c" />
|
<ClCompile Include="..\..\..\test\testautomation_hints.c" />
|
||||||
<ClCompile Include="..\..\..\test\testautomation_joystick.c" />
|
<ClCompile Include="..\..\..\test\testautomation_joystick.c" />
|
||||||
<ClCompile Include="..\..\..\test\testautomation_keyboard.c" />
|
<ClCompile Include="..\..\..\test\testautomation_keyboard.c" />
|
||||||
|
<ClCompile Include="..\..\..\test\testautomation_log.c" />
|
||||||
<ClCompile Include="..\..\..\test\testautomation_main.c" />
|
<ClCompile Include="..\..\..\test\testautomation_main.c" />
|
||||||
<ClCompile Include="..\..\..\test\testautomation_math.c" />
|
<ClCompile Include="..\..\..\test\testautomation_math.c" />
|
||||||
<ClCompile Include="..\..\..\test\testautomation_mouse.c" />
|
<ClCompile Include="..\..\..\test\testautomation_mouse.c" />
|
||||||
|
@@ -216,6 +216,12 @@
|
|||||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\SDLtest\SDLtest.vcxproj">
|
||||||
|
<Project>{da956fd3-e143-46f2-9fe5-c77bebc56b1a}</Project>
|
||||||
|
<Private>false</Private>
|
||||||
|
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||||
|
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\..\SDLmain\SDLmain.vcxproj">
|
<ProjectReference Include="..\..\SDLmain\SDLmain.vcxproj">
|
||||||
<Project>{da956fd3-e142-46f2-9dd5-c78bebb56b7a}</Project>
|
<Project>{da956fd3-e142-46f2-9dd5-c78bebb56b7a}</Project>
|
||||||
<Private>false</Private>
|
<Private>false</Private>
|
||||||
|
@@ -188,6 +188,12 @@
|
|||||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\SDLtest\SDLtest.vcxproj">
|
||||||
|
<Project>{da956fd3-e143-46f2-9fe5-c77bebc56b1a}</Project>
|
||||||
|
<Private>false</Private>
|
||||||
|
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||||
|
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\..\SDLmain\SDLmain.vcxproj">
|
<ProjectReference Include="..\..\SDLmain\SDLmain.vcxproj">
|
||||||
<Project>{da956fd3-e142-46f2-9dd5-c78bebb56b7a}</Project>
|
<Project>{da956fd3-e142-46f2-9dd5-c78bebb56b7a}</Project>
|
||||||
<Private>false</Private>
|
<Private>false</Private>
|
||||||
|
@@ -194,6 +194,12 @@
|
|||||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\SDLtest\SDLtest.vcxproj">
|
||||||
|
<Project>{da956fd3-e143-46f2-9fe5-c77bebc56b1a}</Project>
|
||||||
|
<Private>false</Private>
|
||||||
|
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||||
|
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\..\SDLmain\SDLmain.vcxproj">
|
<ProjectReference Include="..\..\SDLmain\SDLmain.vcxproj">
|
||||||
<Project>{da956fd3-e142-46f2-9dd5-c78bebb56b7a}</Project>
|
<Project>{da956fd3-e142-46f2-9dd5-c78bebb56b7a}</Project>
|
||||||
<Private>false</Private>
|
<Private>false</Private>
|
||||||
|
@@ -9,6 +9,7 @@ General:
|
|||||||
* Added support for 2 bits-per-pixel indexed surface formats
|
* Added support for 2 bits-per-pixel indexed surface formats
|
||||||
* Added the function SDL_GameControllerGetSteamHandle() to get the Steam API handle for a controller, if available
|
* Added the function SDL_GameControllerGetSteamHandle() to get the Steam API handle for a controller, if available
|
||||||
* Added the event SDL_CONTROLLERSTEAMHANDLEUPDATED which is sent when the Steam API handle for a controller changes. This could also change the name, VID, and PID of the controller.
|
* Added the event SDL_CONTROLLERSTEAMHANDLEUPDATED which is sent when the Steam API handle for a controller changes. This could also change the name, VID, and PID of the controller.
|
||||||
|
* Added the environment variable SDL_LOGGING to control default log output
|
||||||
|
|
||||||
macOS:
|
macOS:
|
||||||
* Added the hint SDL_HINT_JOYSTICK_IOKIT to control whether the IOKit controller driver should be used
|
* Added the hint SDL_HINT_JOYSTICK_IOKIT to control whether the IOKit controller driver should be used
|
||||||
|
@@ -52,9 +52,9 @@ void spawnTrailFromEmitter(struct particle *emitter);
|
|||||||
void spawnEmitterParticle(GLfloat x, GLfloat y);
|
void spawnEmitterParticle(GLfloat x, GLfloat y);
|
||||||
void explodeEmitter(struct particle *emitter);
|
void explodeEmitter(struct particle *emitter);
|
||||||
void initializeParticles(void);
|
void initializeParticles(void);
|
||||||
void initializeTexture();
|
void initializeTexture(void);
|
||||||
int nextPowerOfTwo(int x);
|
int nextPowerOfTwo(int x);
|
||||||
void drawParticles();
|
void drawParticles(void);
|
||||||
void stepParticles(double deltaTime);
|
void stepParticles(double deltaTime);
|
||||||
|
|
||||||
/* helper function (used in texture loading)
|
/* helper function (used in texture loading)
|
||||||
@@ -159,7 +159,7 @@ stepParticles(double deltaTime)
|
|||||||
This draws all the particles shown on screen
|
This draws all the particles shown on screen
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
drawParticles()
|
drawParticles(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* draw the background */
|
/* draw the background */
|
||||||
@@ -324,7 +324,7 @@ initializeParticles(void)
|
|||||||
loads the particle texture
|
loads the particle texture
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
initializeTexture()
|
initializeTexture(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
int bpp; /* texture bits per pixel */
|
int bpp; /* texture bits per pixel */
|
||||||
@@ -456,7 +456,10 @@ main(int argc, char *argv[])
|
|||||||
while (!done) {
|
while (!done) {
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
double deltaTime = updateDeltaTime();
|
double deltaTime = updateDeltaTime();
|
||||||
|
SDL_bool hasEvents = SDL_FALSE;
|
||||||
|
|
||||||
while (SDL_PollEvent(&event)) {
|
while (SDL_PollEvent(&event)) {
|
||||||
|
hasEvents = SDL_TRUE;
|
||||||
if (event.type == SDL_QUIT) {
|
if (event.type == SDL_QUIT) {
|
||||||
done = 1;
|
done = 1;
|
||||||
}
|
}
|
||||||
@@ -466,10 +469,17 @@ main(int argc, char *argv[])
|
|||||||
spawnEmitterParticle(x, y);
|
spawnEmitterParticle(x, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Only update and render if we have active particles or just received events */
|
||||||
|
if (num_active_particles > 0 || hasEvents) {
|
||||||
stepParticles(deltaTime);
|
stepParticles(deltaTime);
|
||||||
drawParticles();
|
drawParticles();
|
||||||
SDL_GL_SwapWindow(window);
|
SDL_GL_SwapWindow(window);
|
||||||
SDL_Delay(1);
|
SDL_Delay(16); // Target 60 FPS when active
|
||||||
|
} else {
|
||||||
|
/* Idle state - wait for events with longer delay to save CPU */
|
||||||
|
SDL_Delay(100); // Much longer delay when idle
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* delete textures */
|
/* delete textures */
|
||||||
|
@@ -196,7 +196,7 @@ loadFont(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
draw()
|
draw(void)
|
||||||
{
|
{
|
||||||
SDL_SetRenderDrawColor(renderer, bg_color.r, bg_color.g, bg_color.b, bg_color.a);
|
SDL_SetRenderDrawColor(renderer, bg_color.r, bg_color.g, bg_color.b, bg_color.a);
|
||||||
SDL_RenderClear(renderer);
|
SDL_RenderClear(renderer);
|
||||||
|
@@ -19,10 +19,10 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>FMWK</string>
|
<string>FMWK</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>2.29.2</string>
|
<string>2.33.0</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>SDLX</string>
|
<string>SDLX</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>2.29.2</string>
|
<string>2.33.0</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
@@ -206,7 +206,6 @@
|
|||||||
A75FCD4823E25AB700529352 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCD4823E25AB700529352 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCD4A23E25AB700529352 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
A75FCD4A23E25AB700529352 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
||||||
A75FCD4B23E25AB700529352 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
A75FCD4B23E25AB700529352 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
||||||
A75FCD4E23E25AB700529352 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A75FCD4F23E25AB700529352 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCD4F23E25AB700529352 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCD5023E25AB700529352 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
A75FCD5023E25AB700529352 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
||||||
A75FCD5123E25AB700529352 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
A75FCD5123E25AB700529352 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
||||||
@@ -282,7 +281,6 @@
|
|||||||
A75FCDA123E25AB700529352 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A75FCDA123E25AB700529352 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
A75FCDA223E25AB700529352 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
A75FCDA223E25AB700529352 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
||||||
A75FCDA323E25AB700529352 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
A75FCDA323E25AB700529352 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
||||||
A75FCDA423E25AB700529352 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A75FCDA523E25AB700529352 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCDA523E25AB700529352 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCDA623E25AB700529352 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
A75FCDA623E25AB700529352 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
||||||
A75FCDA723E25AB700529352 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
A75FCDA723E25AB700529352 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
||||||
@@ -580,7 +578,6 @@
|
|||||||
A75FCF0123E25AC700529352 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCF0123E25AC700529352 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCF0323E25AC700529352 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
A75FCF0323E25AC700529352 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
||||||
A75FCF0423E25AC700529352 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
A75FCF0423E25AC700529352 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
||||||
A75FCF0723E25AC700529352 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A75FCF0823E25AC700529352 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCF0823E25AC700529352 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCF0923E25AC700529352 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
A75FCF0923E25AC700529352 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
||||||
A75FCF0A23E25AC700529352 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
A75FCF0A23E25AC700529352 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
||||||
@@ -656,7 +653,6 @@
|
|||||||
A75FCF5A23E25AC700529352 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A75FCF5A23E25AC700529352 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
A75FCF5B23E25AC700529352 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
A75FCF5B23E25AC700529352 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
||||||
A75FCF5C23E25AC700529352 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
A75FCF5C23E25AC700529352 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
||||||
A75FCF5D23E25AC700529352 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A75FCF5E23E25AC700529352 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCF5E23E25AC700529352 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCF5F23E25AC700529352 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
A75FCF5F23E25AC700529352 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
||||||
A75FCF6023E25AC700529352 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
A75FCF6023E25AC700529352 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
||||||
@@ -974,7 +970,6 @@
|
|||||||
A769B0CD23E259AE00872273 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; };
|
A769B0CD23E259AE00872273 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; };
|
||||||
A769B0D023E259AE00872273 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
A769B0D023E259AE00872273 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
||||||
A769B0D123E259AE00872273 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
A769B0D123E259AE00872273 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
||||||
A769B0D423E259AE00872273 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A769B0D623E259AE00872273 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
A769B0D623E259AE00872273 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
||||||
A769B0D723E259AE00872273 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
A769B0D723E259AE00872273 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
||||||
A769B0D923E259AE00872273 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; };
|
A769B0D923E259AE00872273 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; };
|
||||||
@@ -1036,7 +1031,6 @@
|
|||||||
A769B12923E259AE00872273 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A769B12923E259AE00872273 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
A769B12A23E259AE00872273 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
A769B12A23E259AE00872273 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
||||||
A769B12B23E259AE00872273 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
A769B12B23E259AE00872273 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
||||||
A769B12C23E259AE00872273 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A769B12E23E259AE00872273 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
A769B12E23E259AE00872273 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
||||||
A769B12F23E259AE00872273 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
A769B12F23E259AE00872273 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
||||||
A769B13223E259AE00872273 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; };
|
A769B13223E259AE00872273 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; };
|
||||||
@@ -2110,12 +2104,6 @@
|
|||||||
A7D8B26923E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
A7D8B26923E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
||||||
A7D8B26A23E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
A7D8B26A23E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
||||||
A7D8B26B23E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
A7D8B26B23E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
||||||
A7D8B26C23E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B26D23E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B26E23E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B26F23E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B27023E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B27123E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
||||||
A7D8B27323E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
A7D8B27323E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
||||||
A7D8B27423E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
A7D8B27423E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
||||||
@@ -2152,12 +2140,6 @@
|
|||||||
A7D8B29323E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
A7D8B29323E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
||||||
A7D8B29423E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
A7D8B29423E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
||||||
A7D8B29523E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
A7D8B29523E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
||||||
A7D8B29623E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29723E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29823E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29923E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29A23E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29B23E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29C23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A7D8B29C23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
A7D8B29D23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A7D8B29D23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
A7D8B29E23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A7D8B29E23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
@@ -3968,14 +3950,12 @@
|
|||||||
A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_vi.h; sourceTree = "<group>"; };
|
A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_vi.h; sourceTree = "<group>"; };
|
||||||
A7D8A73023E2513E00DCD162 /* vulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan.h; sourceTree = "<group>"; };
|
A7D8A73023E2513E00DCD162 /* vulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan.h; sourceTree = "<group>"; };
|
||||||
A7D8A73123E2513E00DCD162 /* vk_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_platform.h; sourceTree = "<group>"; };
|
A7D8A73123E2513E00DCD162 /* vk_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_platform.h; sourceTree = "<group>"; };
|
||||||
A7D8A73223E2513E00DCD162 /* vulkan.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = vulkan.hpp; sourceTree = "<group>"; };
|
|
||||||
A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_fuchsia.h; sourceTree = "<group>"; };
|
A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_fuchsia.h; sourceTree = "<group>"; };
|
||||||
A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_wayland.h; sourceTree = "<group>"; };
|
A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_wayland.h; sourceTree = "<group>"; };
|
||||||
A7D8A73523E2513E00DCD162 /* vulkan_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_win32.h; sourceTree = "<group>"; };
|
A7D8A73523E2513E00DCD162 /* vulkan_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_win32.h; sourceTree = "<group>"; };
|
||||||
A7D8A73623E2513E00DCD162 /* vulkan_macos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_macos.h; sourceTree = "<group>"; };
|
A7D8A73623E2513E00DCD162 /* vulkan_macos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_macos.h; sourceTree = "<group>"; };
|
||||||
A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib_xrandr.h; sourceTree = "<group>"; };
|
A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib_xrandr.h; sourceTree = "<group>"; };
|
||||||
A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xcb.h; sourceTree = "<group>"; };
|
A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xcb.h; sourceTree = "<group>"; };
|
||||||
A7D8A73923E2513E00DCD162 /* vulkan_mir.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_mir.h; sourceTree = "<group>"; };
|
|
||||||
A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib.h; sourceTree = "<group>"; };
|
A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib.h; sourceTree = "<group>"; };
|
||||||
A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_ios.h; sourceTree = "<group>"; };
|
A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_ios.h; sourceTree = "<group>"; };
|
||||||
A7D8A73C23E2513E00DCD162 /* vulkan_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_core.h; sourceTree = "<group>"; };
|
A7D8A73C23E2513E00DCD162 /* vulkan_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_core.h; sourceTree = "<group>"; };
|
||||||
@@ -5003,7 +4983,6 @@
|
|||||||
A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */,
|
A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */,
|
||||||
A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */,
|
A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */,
|
||||||
A7D8A73623E2513E00DCD162 /* vulkan_macos.h */,
|
A7D8A73623E2513E00DCD162 /* vulkan_macos.h */,
|
||||||
A7D8A73923E2513E00DCD162 /* vulkan_mir.h */,
|
|
||||||
A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */,
|
A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */,
|
||||||
A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */,
|
A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */,
|
||||||
A7D8A73523E2513E00DCD162 /* vulkan_win32.h */,
|
A7D8A73523E2513E00DCD162 /* vulkan_win32.h */,
|
||||||
@@ -5011,7 +4990,6 @@
|
|||||||
A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */,
|
A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */,
|
||||||
A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */,
|
A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */,
|
||||||
A7D8A73023E2513E00DCD162 /* vulkan.h */,
|
A7D8A73023E2513E00DCD162 /* vulkan.h */,
|
||||||
A7D8A73223E2513E00DCD162 /* vulkan.hpp */,
|
|
||||||
);
|
);
|
||||||
path = vulkan;
|
path = vulkan;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -5596,7 +5574,6 @@
|
|||||||
5616CA63252BB35F005D5928 /* SDL_sysurl.h in Headers */,
|
5616CA63252BB35F005D5928 /* SDL_sysurl.h in Headers */,
|
||||||
A75FCD4A23E25AB700529352 /* SDL_cocoakeyboard.h in Headers */,
|
A75FCD4A23E25AB700529352 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
A75FCD4B23E25AB700529352 /* SDL_uikitvulkan.h in Headers */,
|
A75FCD4B23E25AB700529352 /* SDL_uikitvulkan.h in Headers */,
|
||||||
A75FCD4E23E25AB700529352 /* vulkan.hpp in Headers */,
|
|
||||||
A75FCD4F23E25AB700529352 /* SDL_loadso.h in Headers */,
|
A75FCD4F23E25AB700529352 /* SDL_loadso.h in Headers */,
|
||||||
A75FCD5023E25AB700529352 /* gl2ext.h in Headers */,
|
A75FCD5023E25AB700529352 /* gl2ext.h in Headers */,
|
||||||
A75FCD5123E25AB700529352 /* SDL_clipboardevents_c.h in Headers */,
|
A75FCD5123E25AB700529352 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
@@ -5680,7 +5657,6 @@
|
|||||||
A75FCDA123E25AB700529352 /* vulkan_xlib.h in Headers */,
|
A75FCDA123E25AB700529352 /* vulkan_xlib.h in Headers */,
|
||||||
A75FCDA223E25AB700529352 /* SDL_uikitwindow.h in Headers */,
|
A75FCDA223E25AB700529352 /* SDL_uikitwindow.h in Headers */,
|
||||||
A75FCDA323E25AB700529352 /* vulkan_vi.h in Headers */,
|
A75FCDA323E25AB700529352 /* vulkan_vi.h in Headers */,
|
||||||
A75FCDA423E25AB700529352 /* vulkan_mir.h in Headers */,
|
|
||||||
A75FCDA523E25AB700529352 /* SDL_quit.h in Headers */,
|
A75FCDA523E25AB700529352 /* SDL_quit.h in Headers */,
|
||||||
A75FCDA623E25AB700529352 /* default_cursor.h in Headers */,
|
A75FCDA623E25AB700529352 /* default_cursor.h in Headers */,
|
||||||
A75FCDA723E25AB700529352 /* SDL_render_sw_c.h in Headers */,
|
A75FCDA723E25AB700529352 /* SDL_render_sw_c.h in Headers */,
|
||||||
@@ -5833,7 +5809,6 @@
|
|||||||
5616CA66252BB361005D5928 /* SDL_sysurl.h in Headers */,
|
5616CA66252BB361005D5928 /* SDL_sysurl.h in Headers */,
|
||||||
A75FCF0323E25AC700529352 /* SDL_cocoakeyboard.h in Headers */,
|
A75FCF0323E25AC700529352 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
A75FCF0423E25AC700529352 /* SDL_uikitvulkan.h in Headers */,
|
A75FCF0423E25AC700529352 /* SDL_uikitvulkan.h in Headers */,
|
||||||
A75FCF0723E25AC700529352 /* vulkan.hpp in Headers */,
|
|
||||||
A75FCF0823E25AC700529352 /* SDL_loadso.h in Headers */,
|
A75FCF0823E25AC700529352 /* SDL_loadso.h in Headers */,
|
||||||
A75FCF0923E25AC700529352 /* gl2ext.h in Headers */,
|
A75FCF0923E25AC700529352 /* gl2ext.h in Headers */,
|
||||||
A75FCF0A23E25AC700529352 /* SDL_clipboardevents_c.h in Headers */,
|
A75FCF0A23E25AC700529352 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
@@ -5917,7 +5892,6 @@
|
|||||||
A75FCF5A23E25AC700529352 /* vulkan_xlib.h in Headers */,
|
A75FCF5A23E25AC700529352 /* vulkan_xlib.h in Headers */,
|
||||||
A75FCF5B23E25AC700529352 /* SDL_uikitwindow.h in Headers */,
|
A75FCF5B23E25AC700529352 /* SDL_uikitwindow.h in Headers */,
|
||||||
A75FCF5C23E25AC700529352 /* vulkan_vi.h in Headers */,
|
A75FCF5C23E25AC700529352 /* vulkan_vi.h in Headers */,
|
||||||
A75FCF5D23E25AC700529352 /* vulkan_mir.h in Headers */,
|
|
||||||
A75FCF5E23E25AC700529352 /* SDL_quit.h in Headers */,
|
A75FCF5E23E25AC700529352 /* SDL_quit.h in Headers */,
|
||||||
A75FCF5F23E25AC700529352 /* default_cursor.h in Headers */,
|
A75FCF5F23E25AC700529352 /* default_cursor.h in Headers */,
|
||||||
A75FCF6023E25AC700529352 /* SDL_render_sw_c.h in Headers */,
|
A75FCF6023E25AC700529352 /* SDL_render_sw_c.h in Headers */,
|
||||||
@@ -6043,7 +6017,6 @@
|
|||||||
A769B0D023E259AE00872273 /* SDL_cocoakeyboard.h in Headers */,
|
A769B0D023E259AE00872273 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
5616CA5D252BB35E005D5928 /* SDL_sysurl.h in Headers */,
|
5616CA5D252BB35E005D5928 /* SDL_sysurl.h in Headers */,
|
||||||
A769B0D123E259AE00872273 /* SDL_uikitvulkan.h in Headers */,
|
A769B0D123E259AE00872273 /* SDL_uikitvulkan.h in Headers */,
|
||||||
A769B0D423E259AE00872273 /* vulkan.hpp in Headers */,
|
|
||||||
A769B0D623E259AE00872273 /* gl2ext.h in Headers */,
|
A769B0D623E259AE00872273 /* gl2ext.h in Headers */,
|
||||||
A769B0D723E259AE00872273 /* SDL_clipboardevents_c.h in Headers */,
|
A769B0D723E259AE00872273 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
A769B0D923E259AE00872273 /* SDL_syshaptic_c.h in Headers */,
|
A769B0D923E259AE00872273 /* SDL_syshaptic_c.h in Headers */,
|
||||||
@@ -6114,7 +6087,6 @@
|
|||||||
F386F6F52884663E001840AA /* SDL_utils_c.h in Headers */,
|
F386F6F52884663E001840AA /* SDL_utils_c.h in Headers */,
|
||||||
A769B12A23E259AE00872273 /* SDL_uikitwindow.h in Headers */,
|
A769B12A23E259AE00872273 /* SDL_uikitwindow.h in Headers */,
|
||||||
A769B12B23E259AE00872273 /* vulkan_vi.h in Headers */,
|
A769B12B23E259AE00872273 /* vulkan_vi.h in Headers */,
|
||||||
A769B12C23E259AE00872273 /* vulkan_mir.h in Headers */,
|
|
||||||
A769B12E23E259AE00872273 /* default_cursor.h in Headers */,
|
A769B12E23E259AE00872273 /* default_cursor.h in Headers */,
|
||||||
A769B12F23E259AE00872273 /* SDL_render_sw_c.h in Headers */,
|
A769B12F23E259AE00872273 /* SDL_render_sw_c.h in Headers */,
|
||||||
A769B13223E259AE00872273 /* SDL_nullvideo.h in Headers */,
|
A769B13223E259AE00872273 /* SDL_nullvideo.h in Headers */,
|
||||||
@@ -6387,13 +6359,11 @@
|
|||||||
A7D8B26723E2514200DCD162 /* vk_platform.h in Headers */,
|
A7D8B26723E2514200DCD162 /* vk_platform.h in Headers */,
|
||||||
A7D8B2AF23E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
A7D8B2AF23E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
||||||
A7D8B26123E2514200DCD162 /* vulkan.h in Headers */,
|
A7D8B26123E2514200DCD162 /* vulkan.h in Headers */,
|
||||||
A7D8B26D23E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
A7D8B2B523E2514200DCD162 /* vulkan_android.h in Headers */,
|
A7D8B2B523E2514200DCD162 /* vulkan_android.h in Headers */,
|
||||||
A7D8B2A923E2514200DCD162 /* vulkan_core.h in Headers */,
|
A7D8B2A923E2514200DCD162 /* vulkan_core.h in Headers */,
|
||||||
A7D8B27323E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
A7D8B27323E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
||||||
A7D8B2A323E2514200DCD162 /* vulkan_ios.h in Headers */,
|
A7D8B2A323E2514200DCD162 /* vulkan_ios.h in Headers */,
|
||||||
A7D8B28523E2514200DCD162 /* vulkan_macos.h in Headers */,
|
A7D8B28523E2514200DCD162 /* vulkan_macos.h in Headers */,
|
||||||
A7D8B29723E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
A7D8B25B23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25B23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
A7D8B27923E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
A7D8B27923E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
||||||
A7D8B27F23E2514200DCD162 /* vulkan_win32.h in Headers */,
|
A7D8B27F23E2514200DCD162 /* vulkan_win32.h in Headers */,
|
||||||
@@ -6629,13 +6599,11 @@
|
|||||||
A7D8B26823E2514200DCD162 /* vk_platform.h in Headers */,
|
A7D8B26823E2514200DCD162 /* vk_platform.h in Headers */,
|
||||||
A7D8B2B023E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
A7D8B2B023E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
||||||
A7D8B26223E2514200DCD162 /* vulkan.h in Headers */,
|
A7D8B26223E2514200DCD162 /* vulkan.h in Headers */,
|
||||||
A7D8B26E23E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
A7D8B2B623E2514200DCD162 /* vulkan_android.h in Headers */,
|
A7D8B2B623E2514200DCD162 /* vulkan_android.h in Headers */,
|
||||||
A7D8B2AA23E2514200DCD162 /* vulkan_core.h in Headers */,
|
A7D8B2AA23E2514200DCD162 /* vulkan_core.h in Headers */,
|
||||||
A7D8B27423E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
A7D8B27423E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
||||||
A7D8B2A423E2514200DCD162 /* vulkan_ios.h in Headers */,
|
A7D8B2A423E2514200DCD162 /* vulkan_ios.h in Headers */,
|
||||||
A7D8B28623E2514200DCD162 /* vulkan_macos.h in Headers */,
|
A7D8B28623E2514200DCD162 /* vulkan_macos.h in Headers */,
|
||||||
A7D8B29823E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
A7D8B25C23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25C23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
A7D8B27A23E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
A7D8B27A23E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
||||||
A7D8B28023E2514200DCD162 /* vulkan_win32.h in Headers */,
|
A7D8B28023E2514200DCD162 /* vulkan_win32.h in Headers */,
|
||||||
@@ -6704,7 +6672,6 @@
|
|||||||
A7D8AE9223E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
A7D8AE9223E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
5616CA5A252BB35D005D5928 /* SDL_sysurl.h in Headers */,
|
5616CA5A252BB35D005D5928 /* SDL_sysurl.h in Headers */,
|
||||||
A7D8ACE523E2514100DCD162 /* SDL_uikitvulkan.h in Headers */,
|
A7D8ACE523E2514100DCD162 /* SDL_uikitvulkan.h in Headers */,
|
||||||
A7D8B27023E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
A7D8B22823E2514200DCD162 /* gl2ext.h in Headers */,
|
A7D8B22823E2514200DCD162 /* gl2ext.h in Headers */,
|
||||||
A7D8BB7323E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
A7D8BB7323E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
A7D8AAE423E2514100DCD162 /* SDL_syshaptic_c.h in Headers */,
|
A7D8AAE423E2514100DCD162 /* SDL_syshaptic_c.h in Headers */,
|
||||||
@@ -6775,7 +6742,6 @@
|
|||||||
F386F6F42884663E001840AA /* SDL_utils_c.h in Headers */,
|
F386F6F42884663E001840AA /* SDL_utils_c.h in Headers */,
|
||||||
A7D8AC9D23E2514100DCD162 /* SDL_uikitwindow.h in Headers */,
|
A7D8AC9D23E2514100DCD162 /* SDL_uikitwindow.h in Headers */,
|
||||||
A7D8B25E23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25E23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
A7D8B29A23E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
A7D8BB4F23E2514500DCD162 /* default_cursor.h in Headers */,
|
A7D8BB4F23E2514500DCD162 /* default_cursor.h in Headers */,
|
||||||
A7D8B9FF23E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
A7D8B9FF23E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
||||||
A7D8ABFB23E2514100DCD162 /* SDL_nullvideo.h in Headers */,
|
A7D8ABFB23E2514100DCD162 /* SDL_nullvideo.h in Headers */,
|
||||||
@@ -7048,13 +7014,11 @@
|
|||||||
A7D8B26623E2514200DCD162 /* vk_platform.h in Headers */,
|
A7D8B26623E2514200DCD162 /* vk_platform.h in Headers */,
|
||||||
A7D8B2AE23E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
A7D8B2AE23E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
||||||
A7D8B26023E2514200DCD162 /* vulkan.h in Headers */,
|
A7D8B26023E2514200DCD162 /* vulkan.h in Headers */,
|
||||||
A7D8B26C23E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
A7D8B2B423E2514200DCD162 /* vulkan_android.h in Headers */,
|
A7D8B2B423E2514200DCD162 /* vulkan_android.h in Headers */,
|
||||||
A7D8B2A823E2514200DCD162 /* vulkan_core.h in Headers */,
|
A7D8B2A823E2514200DCD162 /* vulkan_core.h in Headers */,
|
||||||
A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
||||||
A7D8B2A223E2514200DCD162 /* vulkan_ios.h in Headers */,
|
A7D8B2A223E2514200DCD162 /* vulkan_ios.h in Headers */,
|
||||||
A7D8B28423E2514200DCD162 /* vulkan_macos.h in Headers */,
|
A7D8B28423E2514200DCD162 /* vulkan_macos.h in Headers */,
|
||||||
A7D8B29623E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
A7D8B25A23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25A23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
A7D8B27823E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
A7D8B27823E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
||||||
A7D8B27E23E2514200DCD162 /* vulkan_win32.h in Headers */,
|
A7D8B27E23E2514200DCD162 /* vulkan_win32.h in Headers */,
|
||||||
@@ -7118,7 +7082,6 @@
|
|||||||
A7D8BA7623E2514400DCD162 /* SDL_shaders_gl.h in Headers */,
|
A7D8BA7623E2514400DCD162 /* SDL_shaders_gl.h in Headers */,
|
||||||
A7D8B42B23E2514300DCD162 /* SDL_systhread_c.h in Headers */,
|
A7D8B42B23E2514300DCD162 /* SDL_systhread_c.h in Headers */,
|
||||||
A7D8AE9123E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
A7D8AE9123E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
A7D8B26F23E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
A7D8B22723E2514200DCD162 /* gl2ext.h in Headers */,
|
A7D8B22723E2514200DCD162 /* gl2ext.h in Headers */,
|
||||||
A7D8BB7223E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
A7D8BB7223E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
A7D8AAE323E2514100DCD162 /* SDL_syshaptic_c.h in Headers */,
|
A7D8AAE323E2514100DCD162 /* SDL_syshaptic_c.h in Headers */,
|
||||||
@@ -7189,7 +7152,6 @@
|
|||||||
A7D8B29F23E2514200DCD162 /* vulkan_xlib.h in Headers */,
|
A7D8B29F23E2514200DCD162 /* vulkan_xlib.h in Headers */,
|
||||||
A7D8B25D23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25D23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
F316AB882B5A02C3002EF551 /* yuv_rgb_common.h in Headers */,
|
F316AB882B5A02C3002EF551 /* yuv_rgb_common.h in Headers */,
|
||||||
A7D8B29923E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
A1BB8B6F27F6CF330057CFA8 /* SDL_list.h in Headers */,
|
A1BB8B6F27F6CF330057CFA8 /* SDL_list.h in Headers */,
|
||||||
A7D8BB4E23E2514500DCD162 /* default_cursor.h in Headers */,
|
A7D8BB4E23E2514500DCD162 /* default_cursor.h in Headers */,
|
||||||
A7D8B9FE23E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
A7D8B9FE23E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
||||||
@@ -7325,7 +7287,6 @@
|
|||||||
DB313FDB17554B71006C0E22 /* SDL_keycode.h in Headers */,
|
DB313FDB17554B71006C0E22 /* SDL_keycode.h in Headers */,
|
||||||
A7D8AE9323E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
A7D8AE9323E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
A7D8ACE623E2514100DCD162 /* SDL_uikitvulkan.h in Headers */,
|
A7D8ACE623E2514100DCD162 /* SDL_uikitvulkan.h in Headers */,
|
||||||
A7D8B27123E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
DB313FDC17554B71006C0E22 /* SDL_loadso.h in Headers */,
|
DB313FDC17554B71006C0E22 /* SDL_loadso.h in Headers */,
|
||||||
A7D8B22923E2514200DCD162 /* gl2ext.h in Headers */,
|
A7D8B22923E2514200DCD162 /* gl2ext.h in Headers */,
|
||||||
A7D8BB7423E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
A7D8BB7423E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
@@ -7409,7 +7370,6 @@
|
|||||||
A7D8B2A123E2514200DCD162 /* vulkan_xlib.h in Headers */,
|
A7D8B2A123E2514200DCD162 /* vulkan_xlib.h in Headers */,
|
||||||
A7D8AC9E23E2514100DCD162 /* SDL_uikitwindow.h in Headers */,
|
A7D8AC9E23E2514100DCD162 /* SDL_uikitwindow.h in Headers */,
|
||||||
A7D8B25F23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25F23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
A7D8B29B23E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
DB313FE817554B71006C0E22 /* SDL_quit.h in Headers */,
|
DB313FE817554B71006C0E22 /* SDL_quit.h in Headers */,
|
||||||
A7D8BB5023E2514500DCD162 /* default_cursor.h in Headers */,
|
A7D8BB5023E2514500DCD162 /* default_cursor.h in Headers */,
|
||||||
A7D8BA0023E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
A7D8BA0023E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
||||||
@@ -9768,8 +9728,8 @@
|
|||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
DEPLOYMENT_POSTPROCESSING = YES;
|
DEPLOYMENT_POSTPROCESSING = YES;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 2903.0.0;
|
DYLIB_COMPATIBILITY_VERSION = 3301.0.0;
|
||||||
DYLIB_CURRENT_VERSION = 2903.0.0;
|
DYLIB_CURRENT_VERSION = 3301.0.0;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
GCC_ALTIVEC_EXTENSIONS = YES;
|
GCC_ALTIVEC_EXTENSIONS = YES;
|
||||||
@@ -9810,7 +9770,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||||
MARKETING_VERSION = 2.29.2;
|
MARKETING_VERSION = 2.33.0;
|
||||||
OTHER_LDFLAGS = "-liconv";
|
OTHER_LDFLAGS = "-liconv";
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
@@ -9853,8 +9813,8 @@
|
|||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 2903.0.0;
|
DYLIB_COMPATIBILITY_VERSION = 3301.0.0;
|
||||||
DYLIB_CURRENT_VERSION = 2903.0.0;
|
DYLIB_CURRENT_VERSION = 3301.0.0;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
@@ -9896,7 +9856,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||||
MARKETING_VERSION = 2.29.2;
|
MARKETING_VERSION = 2.33.0;
|
||||||
OTHER_LDFLAGS = "-liconv";
|
OTHER_LDFLAGS = "-liconv";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@@ -10102,8 +10062,8 @@
|
|||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = "";
|
||||||
DYLIB_COMPATIBILITY_VERSION = 2903.0.0;
|
DYLIB_COMPATIBILITY_VERSION = 3301.0.0;
|
||||||
DYLIB_CURRENT_VERSION = 2903.0.0;
|
DYLIB_CURRENT_VERSION = 3301.0.0;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
@@ -10154,8 +10114,8 @@
|
|||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = "";
|
||||||
DYLIB_COMPATIBILITY_VERSION = 2903.0.0;
|
DYLIB_COMPATIBILITY_VERSION = 3301.0.0;
|
||||||
DYLIB_CURRENT_VERSION = 2903.0.0;
|
DYLIB_CURRENT_VERSION = 3301.0.0;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
Title SDL 2.29.2
|
Title SDL 2.33.0
|
||||||
Version 1
|
Version 1
|
||||||
Description SDL Library for Mac OS X (http://www.libsdl.org)
|
Description SDL Library for Mac OS X (http://www.libsdl.org)
|
||||||
DefaultLocation /Library/Frameworks
|
DefaultLocation /Library/Frameworks
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
163
acinclude/libtool.m4
vendored
163
acinclude/libtool.m4
vendored
@@ -219,8 +219,8 @@ esac
|
|||||||
ofile=libtool
|
ofile=libtool
|
||||||
can_build_shared=yes
|
can_build_shared=yes
|
||||||
|
|
||||||
# All known linkers require a '.a' archive for static linking (except MSVC,
|
# All known linkers require a '.a' archive for static linking (except MSVC and
|
||||||
# which needs '.lib').
|
# ICC, which need '.lib').
|
||||||
libext=a
|
libext=a
|
||||||
|
|
||||||
with_gnu_ld=$lt_cv_prog_gnu_ld
|
with_gnu_ld=$lt_cv_prog_gnu_ld
|
||||||
@@ -1023,6 +1023,21 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
|
|||||||
rm -f conftest.*
|
rm -f conftest.*
|
||||||
fi])
|
fi])
|
||||||
|
|
||||||
|
# Feature test to disable chained fixups since it is not
|
||||||
|
# compatible with '-undefined dynamic_lookup'
|
||||||
|
AC_CACHE_CHECK([for -no_fixup_chains linker flag],
|
||||||
|
[lt_cv_support_no_fixup_chains],
|
||||||
|
[ save_LDFLAGS=$LDFLAGS
|
||||||
|
LDFLAGS="$LDFLAGS -Wl,-no_fixup_chains"
|
||||||
|
AC_LINK_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM([],[])],
|
||||||
|
lt_cv_support_no_fixup_chains=yes,
|
||||||
|
lt_cv_support_no_fixup_chains=no
|
||||||
|
)
|
||||||
|
LDFLAGS=$save_LDFLAGS
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
AC_CACHE_CHECK([for -exported_symbols_list linker flag],
|
AC_CACHE_CHECK([for -exported_symbols_list linker flag],
|
||||||
[lt_cv_ld_exported_symbols_list],
|
[lt_cv_ld_exported_symbols_list],
|
||||||
[lt_cv_ld_exported_symbols_list=no
|
[lt_cv_ld_exported_symbols_list=no
|
||||||
@@ -1047,7 +1062,7 @@ _LT_EOF
|
|||||||
echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
|
echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
|
||||||
$RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
|
$RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
|
||||||
cat > conftest.c << _LT_EOF
|
cat > conftest.c << _LT_EOF
|
||||||
int main() { return 0;}
|
int main(void) { return 0;}
|
||||||
_LT_EOF
|
_LT_EOF
|
||||||
echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
|
echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
|
||||||
$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
|
$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
|
||||||
@@ -1072,7 +1087,12 @@ _LT_EOF
|
|||||||
10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
|
10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
|
||||||
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
|
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
|
||||||
*)
|
*)
|
||||||
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
|
if test yes = "$lt_cv_support_no_fixup_chains"; then
|
||||||
|
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup $wl-no_fixup_chains'
|
||||||
|
else
|
||||||
|
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup'
|
||||||
|
fi
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -1365,7 +1385,7 @@ mips64*-*linux*)
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
|
x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
|
||||||
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
|
s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*)
|
||||||
# Find out what ABI is being produced by ac_compile, and set linker
|
# Find out what ABI is being produced by ac_compile, and set linker
|
||||||
# options accordingly. Note that the listed cases only cover the
|
# options accordingly. Note that the listed cases only cover the
|
||||||
# situations where additional linker options are needed (such as when
|
# situations where additional linker options are needed (such as when
|
||||||
@@ -1380,7 +1400,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
|
|||||||
x86_64-*kfreebsd*-gnu)
|
x86_64-*kfreebsd*-gnu)
|
||||||
LD="${LD-ld} -m elf_i386_fbsd"
|
LD="${LD-ld} -m elf_i386_fbsd"
|
||||||
;;
|
;;
|
||||||
x86_64-*linux*)
|
x86_64-*linux*|x86_64-gnu*)
|
||||||
case `/usr/bin/file conftest.o` in
|
case `/usr/bin/file conftest.o` in
|
||||||
*x86-64*)
|
*x86-64*)
|
||||||
LD="${LD-ld} -m elf32_x86_64"
|
LD="${LD-ld} -m elf32_x86_64"
|
||||||
@@ -1409,7 +1429,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
|
|||||||
x86_64-*kfreebsd*-gnu)
|
x86_64-*kfreebsd*-gnu)
|
||||||
LD="${LD-ld} -m elf_x86_64_fbsd"
|
LD="${LD-ld} -m elf_x86_64_fbsd"
|
||||||
;;
|
;;
|
||||||
x86_64-*linux*)
|
x86_64-*linux*|x86_64-gnu*)
|
||||||
LD="${LD-ld} -m elf_x86_64"
|
LD="${LD-ld} -m elf_x86_64"
|
||||||
;;
|
;;
|
||||||
powerpcle-*linux*|powerpc64le-*linux*)
|
powerpcle-*linux*|powerpc64le-*linux*)
|
||||||
@@ -1540,15 +1560,8 @@ old_postinstall_cmds='chmod 644 $oldlib'
|
|||||||
old_postuninstall_cmds=
|
old_postuninstall_cmds=
|
||||||
|
|
||||||
if test -n "$RANLIB"; then
|
if test -n "$RANLIB"; then
|
||||||
case $host_os in
|
|
||||||
bitrig* | openbsd*)
|
|
||||||
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
|
old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
|
||||||
|
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case $host_os in
|
case $host_os in
|
||||||
@@ -1687,7 +1700,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
|
|||||||
lt_cv_sys_max_cmd_len=-1;
|
lt_cv_sys_max_cmd_len=-1;
|
||||||
;;
|
;;
|
||||||
|
|
||||||
cygwin* | mingw* | cegcc*)
|
cygwin* | mingw* | windows* | cegcc*)
|
||||||
# On Win9x/ME, this test blows up -- it succeeds, but takes
|
# On Win9x/ME, this test blows up -- it succeeds, but takes
|
||||||
# about 5 minutes as the teststring grows exponentially.
|
# about 5 minutes as the teststring grows exponentially.
|
||||||
# Worse, since 9x/ME are not pre-emptively multitasking,
|
# Worse, since 9x/ME are not pre-emptively multitasking,
|
||||||
@@ -1869,11 +1882,11 @@ else
|
|||||||
/* When -fvisibility=hidden is used, assume the code has been annotated
|
/* When -fvisibility=hidden is used, assume the code has been annotated
|
||||||
correspondingly for the symbols needed. */
|
correspondingly for the symbols needed. */
|
||||||
#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
|
#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
|
||||||
int fnord () __attribute__((visibility("default")));
|
int fnord (void) __attribute__((visibility("default")));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int fnord () { return 42; }
|
int fnord (void) { return 42; }
|
||||||
int main ()
|
int main (void)
|
||||||
{
|
{
|
||||||
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
|
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
|
||||||
int status = $lt_dlunknown;
|
int status = $lt_dlunknown;
|
||||||
@@ -1930,7 +1943,7 @@ else
|
|||||||
lt_cv_dlopen_self=yes
|
lt_cv_dlopen_self=yes
|
||||||
;;
|
;;
|
||||||
|
|
||||||
mingw* | pw32* | cegcc*)
|
mingw* | windows* | pw32* | cegcc*)
|
||||||
lt_cv_dlopen=LoadLibrary
|
lt_cv_dlopen=LoadLibrary
|
||||||
lt_cv_dlopen_libs=
|
lt_cv_dlopen_libs=
|
||||||
;;
|
;;
|
||||||
@@ -2298,7 +2311,7 @@ if test yes = "$GCC"; then
|
|||||||
*) lt_awk_arg='/^libraries:/' ;;
|
*) lt_awk_arg='/^libraries:/' ;;
|
||||||
esac
|
esac
|
||||||
case $host_os in
|
case $host_os in
|
||||||
mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
|
mingw* | windows* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
|
||||||
*) lt_sed_strip_eq='s|=/|/|g' ;;
|
*) lt_sed_strip_eq='s|=/|/|g' ;;
|
||||||
esac
|
esac
|
||||||
lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
|
lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
|
||||||
@@ -2356,7 +2369,7 @@ BEGIN {RS = " "; FS = "/|\n";} {
|
|||||||
# AWK program above erroneously prepends '/' to C:/dos/paths
|
# AWK program above erroneously prepends '/' to C:/dos/paths
|
||||||
# for these hosts.
|
# for these hosts.
|
||||||
case $host_os in
|
case $host_os in
|
||||||
mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
|
mingw* | windows* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
|
||||||
$SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
|
$SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
|
||||||
esac
|
esac
|
||||||
sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
|
sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
|
||||||
@@ -2525,7 +2538,7 @@ bsdi[[45]]*)
|
|||||||
# libtool to hard-code these into programs
|
# libtool to hard-code these into programs
|
||||||
;;
|
;;
|
||||||
|
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
cygwin* | mingw* | windows* | pw32* | cegcc*)
|
||||||
version_type=windows
|
version_type=windows
|
||||||
shrext_cmds=.dll
|
shrext_cmds=.dll
|
||||||
need_version=no
|
need_version=no
|
||||||
@@ -2554,14 +2567,14 @@ cygwin* | mingw* | pw32* | cegcc*)
|
|||||||
cygwin*)
|
cygwin*)
|
||||||
# Cygwin DLLs use 'cyg' prefix rather than 'lib'
|
# Cygwin DLLs use 'cyg' prefix rather than 'lib'
|
||||||
#soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
|
#soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
|
||||||
soname_spec='`echo $libname | sed -e 's/^lib//'`$shared_ext' # SDL customization
|
soname_spec='`echo $libname | sed -e 's/^lib//'`$shared_ext' # SDL customization.
|
||||||
m4_if([$1], [],[
|
m4_if([$1], [],[
|
||||||
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
|
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
|
||||||
;;
|
;;
|
||||||
mingw* | cegcc*)
|
mingw* | windows* | cegcc*)
|
||||||
# MinGW DLLs use traditional 'lib' prefix
|
# MinGW DLLs use traditional 'lib' prefix
|
||||||
#soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
|
#soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
|
||||||
soname_spec='`echo $libname | $SED -e 's/^lib//'`$shared_ext' # SDL customization
|
soname_spec='`echo $libname | $SED -e 's/^lib//'`$shared_ext' # SDL customization.
|
||||||
;;
|
;;
|
||||||
pw32*)
|
pw32*)
|
||||||
# pw32 DLLs use 'pw' prefix rather than 'lib'
|
# pw32 DLLs use 'pw' prefix rather than 'lib'
|
||||||
@@ -2571,14 +2584,14 @@ m4_if([$1], [],[
|
|||||||
dynamic_linker='Win32 ld.exe'
|
dynamic_linker='Win32 ld.exe'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*,cl*)
|
*,cl* | *,icl*)
|
||||||
# Native MSVC
|
# Native MSVC or ICC
|
||||||
libname_spec='$name'
|
libname_spec='$name'
|
||||||
soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
|
soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
|
||||||
library_names_spec='$libname.dll.lib'
|
library_names_spec='$libname.dll.lib'
|
||||||
|
|
||||||
case $build_os in
|
case $build_os in
|
||||||
mingw*)
|
mingw* | windows*)
|
||||||
sys_lib_search_path_spec=
|
sys_lib_search_path_spec=
|
||||||
lt_save_ifs=$IFS
|
lt_save_ifs=$IFS
|
||||||
IFS=';'
|
IFS=';'
|
||||||
@@ -2628,7 +2641,7 @@ m4_if([$1], [],[
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
# Assume MSVC wrapper
|
# Assume MSVC and ICC wrapper
|
||||||
library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
|
library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
|
||||||
dynamic_linker='Win32 ld.exe'
|
dynamic_linker='Win32 ld.exe'
|
||||||
;;
|
;;
|
||||||
@@ -3267,7 +3280,7 @@ if test yes = "$GCC"; then
|
|||||||
# Check if gcc -print-prog-name=ld gives a path.
|
# Check if gcc -print-prog-name=ld gives a path.
|
||||||
AC_MSG_CHECKING([for ld used by $CC])
|
AC_MSG_CHECKING([for ld used by $CC])
|
||||||
case $host in
|
case $host in
|
||||||
*-*-mingw*)
|
*-*-mingw* | *-*-windows*)
|
||||||
# gcc leaves a trailing carriage return, which upsets mingw
|
# gcc leaves a trailing carriage return, which upsets mingw
|
||||||
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
|
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
|
||||||
*)
|
*)
|
||||||
@@ -3376,7 +3389,7 @@ case $reload_flag in
|
|||||||
esac
|
esac
|
||||||
reload_cmds='$LD$reload_flag -o $output$reload_objs'
|
reload_cmds='$LD$reload_flag -o $output$reload_objs'
|
||||||
case $host_os in
|
case $host_os in
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
cygwin* | mingw* | windows* | pw32* | cegcc*)
|
||||||
if test yes != "$GCC"; then
|
if test yes != "$GCC"; then
|
||||||
reload_cmds=false
|
reload_cmds=false
|
||||||
fi
|
fi
|
||||||
@@ -3473,10 +3486,10 @@ cygwin*)
|
|||||||
# func_win32_libid is a shell function defined in ltmain.sh
|
# func_win32_libid is a shell function defined in ltmain.sh
|
||||||
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
|
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
|
||||||
lt_cv_file_magic_cmd='func_win32_libid'
|
lt_cv_file_magic_cmd='func_win32_libid'
|
||||||
lt_cv_deplibs_check_method=pass_all # SDL customization
|
lt_cv_deplibs_check_method=pass_all # SDL customization.
|
||||||
;;
|
;;
|
||||||
|
|
||||||
mingw* | pw32*)
|
mingw* | windows* | pw32*)
|
||||||
# Base MSYS/MinGW do not provide the 'file' command needed by
|
# Base MSYS/MinGW do not provide the 'file' command needed by
|
||||||
# func_win32_libid shell function, so use a weaker test based on 'objdump',
|
# func_win32_libid shell function, so use a weaker test based on 'objdump',
|
||||||
# unless we find 'file', for example because we are cross-compiling.
|
# unless we find 'file', for example because we are cross-compiling.
|
||||||
@@ -3485,10 +3498,10 @@ mingw* | pw32*)
|
|||||||
lt_cv_file_magic_cmd='func_win32_libid'
|
lt_cv_file_magic_cmd='func_win32_libid'
|
||||||
else
|
else
|
||||||
# Keep this pattern in sync with the one in func_win32_libid.
|
# Keep this pattern in sync with the one in func_win32_libid.
|
||||||
lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
|
lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)'
|
||||||
lt_cv_file_magic_cmd='$OBJDUMP -f'
|
lt_cv_file_magic_cmd='$OBJDUMP -f'
|
||||||
fi
|
fi
|
||||||
lt_cv_deplibs_check_method=pass_all # SDL customization
|
lt_cv_deplibs_check_method=pass_all # SDL customization.
|
||||||
;;
|
;;
|
||||||
|
|
||||||
cegcc*)
|
cegcc*)
|
||||||
@@ -3641,7 +3654,7 @@ file_magic_glob=
|
|||||||
want_nocaseglob=no
|
want_nocaseglob=no
|
||||||
if test "$build" = "$host"; then
|
if test "$build" = "$host"; then
|
||||||
case $host_os in
|
case $host_os in
|
||||||
mingw* | pw32*)
|
mingw* | windows* | pw32*)
|
||||||
if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
|
if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
|
||||||
want_nocaseglob=yes
|
want_nocaseglob=yes
|
||||||
else
|
else
|
||||||
@@ -3693,7 +3706,7 @@ else
|
|||||||
# Tru64's nm complains that /dev/null is an invalid object file
|
# Tru64's nm complains that /dev/null is an invalid object file
|
||||||
# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
|
# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
|
||||||
case $build_os in
|
case $build_os in
|
||||||
mingw*) lt_bad_file=conftest.nm/nofile ;;
|
mingw* | windows*) lt_bad_file=conftest.nm/nofile ;;
|
||||||
*) lt_bad_file=/dev/null ;;
|
*) lt_bad_file=/dev/null ;;
|
||||||
esac
|
esac
|
||||||
case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
|
case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
|
||||||
@@ -3784,7 +3797,7 @@ lt_cv_sharedlib_from_linklib_cmd,
|
|||||||
[lt_cv_sharedlib_from_linklib_cmd='unknown'
|
[lt_cv_sharedlib_from_linklib_cmd='unknown'
|
||||||
|
|
||||||
case $host_os in
|
case $host_os in
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
cygwin* | mingw* | windows* | pw32* | cegcc*)
|
||||||
# two different shell functions defined in ltmain.sh;
|
# two different shell functions defined in ltmain.sh;
|
||||||
# decide which one to use based on capabilities of $DLLTOOL
|
# decide which one to use based on capabilities of $DLLTOOL
|
||||||
case `$DLLTOOL --help 2>&1` in
|
case `$DLLTOOL --help 2>&1` in
|
||||||
@@ -3929,7 +3942,7 @@ case $host_os in
|
|||||||
aix*)
|
aix*)
|
||||||
symcode='[[BCDT]]'
|
symcode='[[BCDT]]'
|
||||||
;;
|
;;
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
cygwin* | mingw* | windows* | pw32* | cegcc*)
|
||||||
symcode='[[ABCDGISTW]]'
|
symcode='[[ABCDGISTW]]'
|
||||||
;;
|
;;
|
||||||
hpux*)
|
hpux*)
|
||||||
@@ -4008,7 +4021,7 @@ $lt_c_name_lib_hook\
|
|||||||
# Handle CRLF in mingw tool chain
|
# Handle CRLF in mingw tool chain
|
||||||
opt_cr=
|
opt_cr=
|
||||||
case $build_os in
|
case $build_os in
|
||||||
mingw*)
|
mingw* | windows*)
|
||||||
opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
|
opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -4023,7 +4036,7 @@ for ac_symprfx in "" "_"; do
|
|||||||
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
|
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
|
||||||
# Fake it for dumpbin and say T for any non-static function,
|
# Fake it for dumpbin and say T for any non-static function,
|
||||||
# D for any global variable and I for any imported variable.
|
# D for any global variable and I for any imported variable.
|
||||||
# Also find C++ and __fastcall symbols from MSVC++,
|
# Also find C++ and __fastcall symbols from MSVC++ or ICC,
|
||||||
# which start with @ or ?.
|
# which start with @ or ?.
|
||||||
lt_cv_sys_global_symbol_pipe="$AWK ['"\
|
lt_cv_sys_global_symbol_pipe="$AWK ['"\
|
||||||
" {last_section=section; section=\$ 3};"\
|
" {last_section=section; section=\$ 3};"\
|
||||||
@@ -4059,7 +4072,7 @@ void nm_test_func(void){}
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
int main(){nm_test_var='a';nm_test_func();return(0);}
|
int main(void){nm_test_var='a';nm_test_func();return(0);}
|
||||||
_LT_EOF
|
_LT_EOF
|
||||||
|
|
||||||
if AC_TRY_EVAL(ac_compile); then
|
if AC_TRY_EVAL(ac_compile); then
|
||||||
@@ -4235,7 +4248,7 @@ m4_if([$1], [CXX], [
|
|||||||
beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
|
beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
|
||||||
# PIC is the default for these OSes.
|
# PIC is the default for these OSes.
|
||||||
;;
|
;;
|
||||||
mingw* | cygwin* | os2* | pw32* | cegcc*)
|
mingw* | windows* | cygwin* | os2* | pw32* | cegcc*)
|
||||||
# This hack is so that the source file can tell whether it is being
|
# This hack is so that the source file can tell whether it is being
|
||||||
# built for inclusion in a dll (and should export symbols for example).
|
# built for inclusion in a dll (and should export symbols for example).
|
||||||
# Although the cygwin gcc ignores -fPIC, still need this for old-style
|
# Although the cygwin gcc ignores -fPIC, still need this for old-style
|
||||||
@@ -4311,7 +4324,7 @@ m4_if([$1], [CXX], [
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
mingw* | cygwin* | os2* | pw32* | cegcc*)
|
mingw* | windows* | cygwin* | os2* | pw32* | cegcc*)
|
||||||
# This hack is so that the source file can tell whether it is being
|
# This hack is so that the source file can tell whether it is being
|
||||||
# built for inclusion in a dll (and should export symbols for example).
|
# built for inclusion in a dll (and should export symbols for example).
|
||||||
m4_if([$1], [GCJ], [],
|
m4_if([$1], [GCJ], [],
|
||||||
@@ -4559,7 +4572,7 @@ m4_if([$1], [CXX], [
|
|||||||
# PIC is the default for these OSes.
|
# PIC is the default for these OSes.
|
||||||
;;
|
;;
|
||||||
|
|
||||||
mingw* | cygwin* | pw32* | os2* | cegcc*)
|
mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)
|
||||||
# This hack is so that the source file can tell whether it is being
|
# This hack is so that the source file can tell whether it is being
|
||||||
# built for inclusion in a dll (and should export symbols for example).
|
# built for inclusion in a dll (and should export symbols for example).
|
||||||
# Although the cygwin gcc ignores -fPIC, still need this for old-style
|
# Although the cygwin gcc ignores -fPIC, still need this for old-style
|
||||||
@@ -4663,7 +4676,7 @@ m4_if([$1], [CXX], [
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
|
||||||
mingw* | cygwin* | pw32* | os2* | cegcc*)
|
mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)
|
||||||
# This hack is so that the source file can tell whether it is being
|
# This hack is so that the source file can tell whether it is being
|
||||||
# built for inclusion in a dll (and should export symbols for example).
|
# built for inclusion in a dll (and should export symbols for example).
|
||||||
m4_if([$1], [GCJ], [],
|
m4_if([$1], [GCJ], [],
|
||||||
@@ -4938,9 +4951,9 @@ m4_if([$1], [CXX], [
|
|||||||
pw32*)
|
pw32*)
|
||||||
_LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
|
_LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
|
||||||
;;
|
;;
|
||||||
cygwin* | mingw* | cegcc*)
|
cygwin* | mingw* | windows* | cegcc*)
|
||||||
case $cc_basename in
|
case $cc_basename in
|
||||||
cl*)
|
cl* | icl*)
|
||||||
_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
|
_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@@ -4996,16 +5009,16 @@ dnl Note also adjust exclude_expsyms for C++ above.
|
|||||||
extract_expsyms_cmds=
|
extract_expsyms_cmds=
|
||||||
|
|
||||||
case $host_os in
|
case $host_os in
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
cygwin* | mingw* | windows* | pw32* | cegcc*)
|
||||||
# FIXME: the MSVC++ port hasn't been tested in a loooong time
|
# FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
|
||||||
# When not using gcc, we currently assume that we are using
|
# When not using gcc, we currently assume that we are using
|
||||||
# Microsoft Visual C++.
|
# Microsoft Visual C++ or Intel C++ Compiler.
|
||||||
if test yes != "$GCC"; then
|
if test yes != "$GCC"; then
|
||||||
with_gnu_ld=no
|
with_gnu_ld=no
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
interix*)
|
interix*)
|
||||||
# we just hope/assume this is gcc and not c89 (= MSVC++)
|
# we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
|
||||||
with_gnu_ld=yes
|
with_gnu_ld=yes
|
||||||
;;
|
;;
|
||||||
openbsd* | bitrig*)
|
openbsd* | bitrig*)
|
||||||
@@ -5111,7 +5124,7 @@ _LT_EOF
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
cygwin* | mingw* | windows* | pw32* | cegcc*)
|
||||||
# _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
|
# _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
|
||||||
# as there is no search path for DLLs.
|
# as there is no search path for DLLs.
|
||||||
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
|
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
|
||||||
@@ -5568,14 +5581,14 @@ _LT_EOF
|
|||||||
_LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
|
_LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
|
||||||
;;
|
;;
|
||||||
|
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
cygwin* | mingw* | windows* | pw32* | cegcc*)
|
||||||
# When not using gcc, we currently assume that we are using
|
# When not using gcc, we currently assume that we are using
|
||||||
# Microsoft Visual C++.
|
# Microsoft Visual C++ or Intel C++ Compiler.
|
||||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||||
# no search path for DLLs.
|
# no search path for DLLs.
|
||||||
case $cc_basename in
|
case $cc_basename in
|
||||||
cl*)
|
cl* | icl*)
|
||||||
# Native MSVC
|
# Native MSVC or ICC
|
||||||
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
|
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
|
||||||
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
|
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
|
||||||
_LT_TAGVAR(always_export_symbols, $1)=yes
|
_LT_TAGVAR(always_export_symbols, $1)=yes
|
||||||
@@ -5585,14 +5598,14 @@ _LT_EOF
|
|||||||
# Tell ltmain to make .dll files, not .so files.
|
# Tell ltmain to make .dll files, not .so files.
|
||||||
shrext_cmds=.dll
|
shrext_cmds=.dll
|
||||||
# FIXME: Setting linknames here is a bad hack.
|
# FIXME: Setting linknames here is a bad hack.
|
||||||
_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
|
_LT_TAGVAR(archive_cmds, $1)='$CC -Fe $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
|
||||||
_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
|
_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
|
||||||
cp "$export_symbols" "$output_objdir/$soname.def";
|
cp "$export_symbols" "$output_objdir/$soname.def";
|
||||||
echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
|
echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
|
||||||
else
|
else
|
||||||
$SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
|
$SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
|
||||||
fi~
|
fi~
|
||||||
$CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
|
$CC -Fe $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
|
||||||
linknames='
|
linknames='
|
||||||
# The linker will not automatically build a static lib if we build a DLL.
|
# The linker will not automatically build a static lib if we build a DLL.
|
||||||
# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
|
# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
|
||||||
@@ -5616,7 +5629,7 @@ _LT_EOF
|
|||||||
fi'
|
fi'
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
# Assume MSVC wrapper
|
# Assume MSVC and ICC wrapper
|
||||||
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
|
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
|
||||||
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
|
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
|
||||||
# Tell ltmain to make .lib files, not .a files.
|
# Tell ltmain to make .lib files, not .a files.
|
||||||
@@ -6225,7 +6238,7 @@ _LT_TAGVAR(objext, $1)=$objext
|
|||||||
lt_simple_compile_test_code="int some_variable = 0;"
|
lt_simple_compile_test_code="int some_variable = 0;"
|
||||||
|
|
||||||
# Code to be used in simple link tests
|
# Code to be used in simple link tests
|
||||||
lt_simple_link_test_code='int main(){return(0);}'
|
lt_simple_link_test_code='int main(void){return(0);}'
|
||||||
|
|
||||||
_LT_TAG_COMPILER
|
_LT_TAG_COMPILER
|
||||||
# Save the default compiler, since it gets overwritten when the other
|
# Save the default compiler, since it gets overwritten when the other
|
||||||
@@ -6435,7 +6448,7 @@ if test yes != "$_lt_caught_CXX_error"; then
|
|||||||
# Commands to make compiler produce verbose output that lists
|
# Commands to make compiler produce verbose output that lists
|
||||||
# what "hidden" libraries, object files and flags are used when
|
# what "hidden" libraries, object files and flags are used when
|
||||||
# linking a shared library.
|
# linking a shared library.
|
||||||
output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
|
output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "[[-]]L"'
|
||||||
|
|
||||||
else
|
else
|
||||||
GXX=no
|
GXX=no
|
||||||
@@ -6644,10 +6657,10 @@ if test yes != "$_lt_caught_CXX_error"; then
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
cygwin* | mingw* | windows* | pw32* | cegcc*)
|
||||||
case $GXX,$cc_basename in
|
case $GXX,$cc_basename in
|
||||||
,cl* | no,cl*)
|
,cl* | no,cl* | ,icl* | no,icl*)
|
||||||
# Native MSVC
|
# Native MSVC or ICC
|
||||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||||
# no search path for DLLs.
|
# no search path for DLLs.
|
||||||
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
|
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
|
||||||
@@ -6811,7 +6824,7 @@ if test yes != "$_lt_caught_CXX_error"; then
|
|||||||
# explicitly linking system object files so we need to strip them
|
# explicitly linking system object files so we need to strip them
|
||||||
# from the output so that they don't get included in the library
|
# from the output so that they don't get included in the library
|
||||||
# dependencies.
|
# dependencies.
|
||||||
output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
|
output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "[[-]]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
if test yes = "$GXX"; then
|
if test yes = "$GXX"; then
|
||||||
@@ -6876,7 +6889,7 @@ if test yes != "$_lt_caught_CXX_error"; then
|
|||||||
# explicitly linking system object files so we need to strip them
|
# explicitly linking system object files so we need to strip them
|
||||||
# from the output so that they don't get included in the library
|
# from the output so that they don't get included in the library
|
||||||
# dependencies.
|
# dependencies.
|
||||||
output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
|
output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "[[-]]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
if test yes = "$GXX"; then
|
if test yes = "$GXX"; then
|
||||||
@@ -7215,7 +7228,7 @@ if test yes != "$_lt_caught_CXX_error"; then
|
|||||||
# Commands to make compiler produce verbose output that lists
|
# Commands to make compiler produce verbose output that lists
|
||||||
# what "hidden" libraries, object files and flags are used when
|
# what "hidden" libraries, object files and flags are used when
|
||||||
# linking a shared library.
|
# linking a shared library.
|
||||||
output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
|
output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "[[-]]L"'
|
||||||
|
|
||||||
else
|
else
|
||||||
# FIXME: insert proper C++ library support
|
# FIXME: insert proper C++ library support
|
||||||
@@ -7299,7 +7312,7 @@ if test yes != "$_lt_caught_CXX_error"; then
|
|||||||
# Commands to make compiler produce verbose output that lists
|
# Commands to make compiler produce verbose output that lists
|
||||||
# what "hidden" libraries, object files and flags are used when
|
# what "hidden" libraries, object files and flags are used when
|
||||||
# linking a shared library.
|
# linking a shared library.
|
||||||
output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
|
output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "[[-]]L"'
|
||||||
else
|
else
|
||||||
# g++ 2.7 appears to require '-G' NOT '-shared' on this
|
# g++ 2.7 appears to require '-G' NOT '-shared' on this
|
||||||
# platform.
|
# platform.
|
||||||
@@ -7310,7 +7323,7 @@ if test yes != "$_lt_caught_CXX_error"; then
|
|||||||
# Commands to make compiler produce verbose output that lists
|
# Commands to make compiler produce verbose output that lists
|
||||||
# what "hidden" libraries, object files and flags are used when
|
# what "hidden" libraries, object files and flags are used when
|
||||||
# linking a shared library.
|
# linking a shared library.
|
||||||
output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
|
output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "[[-]]L"'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
|
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
|
||||||
@@ -8331,7 +8344,7 @@ AC_CACHE_VAL(lt_cv_to_host_file_cmd,
|
|||||||
[case $host in
|
[case $host in
|
||||||
*-*-mingw* )
|
*-*-mingw* )
|
||||||
case $build in
|
case $build in
|
||||||
*-*-mingw* ) # actually msys
|
*-*-mingw* | *-*-windows* ) # actually msys
|
||||||
lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
|
lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
|
||||||
;;
|
;;
|
||||||
*-*-cygwin* )
|
*-*-cygwin* )
|
||||||
@@ -8344,7 +8357,7 @@ AC_CACHE_VAL(lt_cv_to_host_file_cmd,
|
|||||||
;;
|
;;
|
||||||
*-*-cygwin* )
|
*-*-cygwin* )
|
||||||
case $build in
|
case $build in
|
||||||
*-*-mingw* ) # actually msys
|
*-*-mingw* | *-*-windows* ) # actually msys
|
||||||
lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
|
lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
|
||||||
;;
|
;;
|
||||||
*-*-cygwin* )
|
*-*-cygwin* )
|
||||||
@@ -8370,9 +8383,9 @@ AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
|
|||||||
[#assume ordinary cross tools, or native build.
|
[#assume ordinary cross tools, or native build.
|
||||||
lt_cv_to_tool_file_cmd=func_convert_file_noop
|
lt_cv_to_tool_file_cmd=func_convert_file_noop
|
||||||
case $host in
|
case $host in
|
||||||
*-*-mingw* )
|
*-*-mingw* | *-*-windows* )
|
||||||
case $build in
|
case $build in
|
||||||
*-*-mingw* ) # actually msys
|
*-*-mingw* | *-*-windows* ) # actually msys
|
||||||
lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
|
lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
2
acinclude/ltoptions.m4
vendored
2
acinclude/ltoptions.m4
vendored
@@ -128,7 +128,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
|
|||||||
[enable_win32_dll=yes
|
[enable_win32_dll=yes
|
||||||
|
|
||||||
case $host in
|
case $host in
|
||||||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
|
*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-cegcc*)
|
||||||
AC_CHECK_TOOL(AS, as, false)
|
AC_CHECK_TOOL(AS, as, false)
|
||||||
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
|
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
|
||||||
AC_CHECK_TOOL(OBJDUMP, objdump, false)
|
AC_CHECK_TOOL(OBJDUMP, objdump, false)
|
||||||
|
81
android-project/app/proguard-rules.pro
vendored
81
android-project/app/proguard-rules.pro
vendored
@@ -15,3 +15,84 @@
|
|||||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||||
# public *;
|
# public *;
|
||||||
#}
|
#}
|
||||||
|
|
||||||
|
-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.SDLInputConnection {
|
||||||
|
void nativeCommitText(java.lang.String, int);
|
||||||
|
void nativeGenerateScancodeForUnichar(char);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keep,includedescriptorclasses class org.libsdl.app.SDLActivity {
|
||||||
|
# for some reason these aren't compatible with allowoptimization modifier
|
||||||
|
boolean supportsRelativeMouse();
|
||||||
|
void setWindowStyle(boolean);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.SDLActivity {
|
||||||
|
java.lang.String nativeGetHint(java.lang.String); # Java-side doesn't use this, so it gets minified, but C-side still tries to register it
|
||||||
|
boolean onNativeSoftReturnKey();
|
||||||
|
void onNativeKeyboardFocusLost();
|
||||||
|
boolean isScreenKeyboardShown();
|
||||||
|
android.util.DisplayMetrics getDisplayDPI();
|
||||||
|
java.lang.String clipboardGetText();
|
||||||
|
boolean clipboardHasText();
|
||||||
|
void clipboardSetText(java.lang.String);
|
||||||
|
int createCustomCursor(int[], int, int, int, int);
|
||||||
|
void destroyCustomCursor(int);
|
||||||
|
android.content.Context getContext();
|
||||||
|
boolean getManifestEnvironmentVariables();
|
||||||
|
android.view.Surface getNativeSurface();
|
||||||
|
void initTouch();
|
||||||
|
boolean isAndroidTV();
|
||||||
|
boolean isChromebook();
|
||||||
|
boolean isDeXMode();
|
||||||
|
boolean isTablet();
|
||||||
|
void manualBackButton();
|
||||||
|
int messageboxShowMessageBox(int, java.lang.String, java.lang.String, int[], int[], java.lang.String[], int[]);
|
||||||
|
void minimizeWindow();
|
||||||
|
int openURL(java.lang.String);
|
||||||
|
void requestPermission(java.lang.String, int);
|
||||||
|
int showToast(java.lang.String, int, int, int, int);
|
||||||
|
boolean sendMessage(int, int);
|
||||||
|
boolean setActivityTitle(java.lang.String);
|
||||||
|
boolean setCustomCursor(int);
|
||||||
|
void setOrientation(int, int, boolean, java.lang.String);
|
||||||
|
boolean setRelativeMouseEnabled(boolean);
|
||||||
|
boolean setSystemCursor(int);
|
||||||
|
boolean shouldMinimizeOnFocusLoss();
|
||||||
|
boolean showTextInput(int, int, int, int);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.HIDDeviceManager {
|
||||||
|
boolean initialize(boolean, boolean);
|
||||||
|
boolean openDevice(int);
|
||||||
|
int sendOutputReport(int, byte[]);
|
||||||
|
int sendFeatureReport(int, byte[]);
|
||||||
|
boolean getFeatureReport(int, byte[]);
|
||||||
|
void closeDevice(int);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.SDLAudioManager {
|
||||||
|
int[] getAudioOutputDevices();
|
||||||
|
int[] getAudioInputDevices();
|
||||||
|
int[] audioOpen(int, int, int, int, int);
|
||||||
|
void audioWriteFloatBuffer(float[]);
|
||||||
|
void audioWriteShortBuffer(short[]);
|
||||||
|
void audioWriteByteBuffer(byte[]);
|
||||||
|
void audioClose();
|
||||||
|
int[] captureOpen(int, int, int, int, int);
|
||||||
|
int captureReadFloatBuffer(float[], boolean);
|
||||||
|
int captureReadShortBuffer(short[], boolean);
|
||||||
|
int captureReadByteBuffer(byte[], boolean);
|
||||||
|
void captureClose();
|
||||||
|
void audioSetThreadPriority(boolean, int);
|
||||||
|
native int nativeSetupJNI();
|
||||||
|
native void removeAudioDevice(boolean, int);
|
||||||
|
native void addAudioDevice(boolean, int);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.SDLControllerManager {
|
||||||
|
void pollInputDevices();
|
||||||
|
void pollHapticDevices();
|
||||||
|
void hapticRun(int, float, int);
|
||||||
|
void hapticStop(int);
|
||||||
|
}
|
||||||
|
@@ -62,7 +62,7 @@
|
|||||||
<application android:label="@string/app_name"
|
<application android:label="@string/app_name"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
|
android:theme="@style/AppTheme"
|
||||||
android:hardwareAccelerated="true" >
|
android:hardwareAccelerated="true" >
|
||||||
|
|
||||||
<!-- Example of setting SDL hints from AndroidManifest.xml:
|
<!-- Example of setting SDL hints from AndroidManifest.xml:
|
||||||
|
@@ -277,6 +277,7 @@ public class HIDDeviceManager {
|
|||||||
0x044f, // Thrustmaster
|
0x044f, // Thrustmaster
|
||||||
0x045e, // Microsoft
|
0x045e, // Microsoft
|
||||||
0x0738, // Mad Catz
|
0x0738, // Mad Catz
|
||||||
|
0x0b05, // ASUS
|
||||||
0x0e6f, // PDP
|
0x0e6f, // PDP
|
||||||
0x0f0d, // Hori
|
0x0f0d, // Hori
|
||||||
0x10f5, // Turtle Beach
|
0x10f5, // Turtle Beach
|
||||||
@@ -590,7 +591,13 @@ public class HIDDeviceManager {
|
|||||||
} else {
|
} else {
|
||||||
flags = 0;
|
flags = 0;
|
||||||
}
|
}
|
||||||
|
if (Build.VERSION.SDK_INT >= 33 /* Android 14.0 (U) */) {
|
||||||
|
Intent intent = new Intent(HIDDeviceManager.ACTION_USB_PERMISSION);
|
||||||
|
intent.setPackage(mContext.getPackageName());
|
||||||
|
mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, intent, flags));
|
||||||
|
} else {
|
||||||
mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags));
|
mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags));
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.v(TAG, "Couldn't request permission for USB device " + usbDevice);
|
Log.v(TAG, "Couldn't request permission for USB device " + usbDevice);
|
||||||
HIDDeviceOpenResult(deviceID, false);
|
HIDDeviceOpenResult(deviceID, false);
|
||||||
|
@@ -38,6 +38,10 @@ public class SDL {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void loadLibrary(String libraryName) throws UnsatisfiedLinkError, SecurityException, NullPointerException {
|
public static void loadLibrary(String libraryName) throws UnsatisfiedLinkError, SecurityException, NullPointerException {
|
||||||
|
loadLibrary(libraryName, mContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void loadLibrary(String libraryName, Context context) throws UnsatisfiedLinkError, SecurityException, NullPointerException {
|
||||||
|
|
||||||
if (libraryName == null) {
|
if (libraryName == null) {
|
||||||
throw new NullPointerException("No library name provided.");
|
throw new NullPointerException("No library name provided.");
|
||||||
@@ -53,10 +57,10 @@ public class SDL {
|
|||||||
// To use ReLinker, just add it as a dependency. For more information, see
|
// To use ReLinker, just add it as a dependency. For more information, see
|
||||||
// https://github.com/KeepSafe/ReLinker for ReLinker's repository.
|
// https://github.com/KeepSafe/ReLinker for ReLinker's repository.
|
||||||
//
|
//
|
||||||
Class<?> relinkClass = mContext.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker");
|
Class<?> relinkClass = context.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker");
|
||||||
Class<?> relinkListenerClass = mContext.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker$LoadListener");
|
Class<?> relinkListenerClass = context.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker$LoadListener");
|
||||||
Class<?> contextClass = mContext.getClassLoader().loadClass("android.content.Context");
|
Class<?> contextClass = context.getClassLoader().loadClass("android.content.Context");
|
||||||
Class<?> stringClass = mContext.getClassLoader().loadClass("java.lang.String");
|
Class<?> stringClass = context.getClassLoader().loadClass("java.lang.String");
|
||||||
|
|
||||||
// Get a 'force' instance of the ReLinker, so we can ensure libraries are reinstalled if
|
// Get a 'force' instance of the ReLinker, so we can ensure libraries are reinstalled if
|
||||||
// they've changed during updates.
|
// they've changed during updates.
|
||||||
@@ -66,7 +70,7 @@ public class SDL {
|
|||||||
|
|
||||||
// Actually load the library!
|
// Actually load the library!
|
||||||
Method loadMethod = relinkInstanceClass.getDeclaredMethod("loadLibrary", contextClass, stringClass, stringClass, relinkListenerClass);
|
Method loadMethod = relinkInstanceClass.getDeclaredMethod("loadLibrary", contextClass, stringClass, stringClass, relinkListenerClass);
|
||||||
loadMethod.invoke(relinkInstance, mContext, libraryName, null, null);
|
loadMethod.invoke(relinkInstance, context, libraryName, null, null);
|
||||||
}
|
}
|
||||||
catch (final Throwable e) {
|
catch (final Throwable e) {
|
||||||
// Fall back
|
// Fall back
|
||||||
|
@@ -60,8 +60,8 @@ import java.util.Locale;
|
|||||||
public class SDLActivity extends Activity implements View.OnSystemUiVisibilityChangeListener {
|
public class SDLActivity extends Activity implements View.OnSystemUiVisibilityChangeListener {
|
||||||
private static final String TAG = "SDL";
|
private static final String TAG = "SDL";
|
||||||
private static final int SDL_MAJOR_VERSION = 2;
|
private static final int SDL_MAJOR_VERSION = 2;
|
||||||
private static final int SDL_MINOR_VERSION = 29;
|
private static final int SDL_MINOR_VERSION = 33;
|
||||||
private static final int SDL_MICRO_VERSION = 2;
|
private static final int SDL_MICRO_VERSION = 0;
|
||||||
/*
|
/*
|
||||||
// Display InputType.SOURCE/CLASS of events and devices
|
// Display InputType.SOURCE/CLASS of events and devices
|
||||||
//
|
//
|
||||||
@@ -89,7 +89,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
|||||||
| InputDevice.SOURCE_CLASS_POSITION
|
| InputDevice.SOURCE_CLASS_POSITION
|
||||||
| InputDevice.SOURCE_CLASS_TRACKBALL);
|
| InputDevice.SOURCE_CLASS_TRACKBALL);
|
||||||
|
|
||||||
if (s2 != 0) cls += "Some_Unkown";
|
if (s2 != 0) cls += "Some_Unknown";
|
||||||
|
|
||||||
s2 = s_copy & InputDevice.SOURCE_ANY; // keep source only, no class;
|
s2 = s_copy & InputDevice.SOURCE_ANY; // keep source only, no class;
|
||||||
|
|
||||||
@@ -163,7 +163,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
|||||||
if (s == FLAG_TAINTED) src += " FLAG_TAINTED";
|
if (s == FLAG_TAINTED) src += " FLAG_TAINTED";
|
||||||
s2 &= ~FLAG_TAINTED;
|
s2 &= ~FLAG_TAINTED;
|
||||||
|
|
||||||
if (s2 != 0) src += " Some_Unkown";
|
if (s2 != 0) src += " Some_Unknown";
|
||||||
|
|
||||||
Log.v(TAG, prefix + "int=" + s_copy + " CLASS={" + cls + " } source(s):" + src);
|
Log.v(TAG, prefix + "int=" + s_copy + " CLASS={" + cls + " } source(s):" + src);
|
||||||
}
|
}
|
||||||
@@ -281,7 +281,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
|||||||
// Load the .so
|
// Load the .so
|
||||||
public void loadLibraries() {
|
public void loadLibraries() {
|
||||||
for (String lib : getLibraries()) {
|
for (String lib : getLibraries()) {
|
||||||
SDL.loadLibrary(lib);
|
SDL.loadLibrary(lib, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -790,6 +790,9 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
|||||||
window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||||
SDLActivity.mFullscreenModeActive = false;
|
SDLActivity.mFullscreenModeActive = false;
|
||||||
}
|
}
|
||||||
|
if (Build.VERSION.SDK_INT >= 28 /* Android 9 (Pie) */) {
|
||||||
|
window.getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.e(TAG, "error handling message, getContext() returned no Activity");
|
Log.e(TAG, "error handling message, getContext() returned no Activity");
|
||||||
@@ -995,8 +998,8 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
|||||||
/* No valid hint, nothing is explicitly allowed */
|
/* No valid hint, nothing is explicitly allowed */
|
||||||
if (!is_portrait_allowed && !is_landscape_allowed) {
|
if (!is_portrait_allowed && !is_landscape_allowed) {
|
||||||
if (resizable) {
|
if (resizable) {
|
||||||
/* All orientations are allowed */
|
/* All orientations are allowed, respecting user orientation lock setting */
|
||||||
req = ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR;
|
req = ActivityInfo.SCREEN_ORIENTATION_FULL_USER;
|
||||||
} else {
|
} else {
|
||||||
/* Fixed window and nothing specified. Get orientation from w/h of created window */
|
/* Fixed window and nothing specified. Get orientation from w/h of created window */
|
||||||
req = (w > h ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
|
req = (w > h ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
|
||||||
@@ -1005,8 +1008,8 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
|||||||
/* At least one orientation is allowed */
|
/* At least one orientation is allowed */
|
||||||
if (resizable) {
|
if (resizable) {
|
||||||
if (is_portrait_allowed && is_landscape_allowed) {
|
if (is_portrait_allowed && is_landscape_allowed) {
|
||||||
/* hint allows both landscape and portrait, promote to full sensor */
|
/* hint allows both landscape and portrait, promote to full user */
|
||||||
req = ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR;
|
req = ActivityInfo.SCREEN_ORIENTATION_FULL_USER;
|
||||||
} else {
|
} else {
|
||||||
/* Use the only one allowed "orientation" */
|
/* Use the only one allowed "orientation" */
|
||||||
req = (is_landscape_allowed ? orientation_landscape : orientation_portrait);
|
req = (is_landscape_allowed ? orientation_landscape : orientation_portrait);
|
||||||
|
@@ -546,6 +546,7 @@ class SDLHapticHandler {
|
|||||||
if (haptic == null) {
|
if (haptic == null) {
|
||||||
InputDevice device = InputDevice.getDevice(deviceIds[i]);
|
InputDevice device = InputDevice.getDevice(deviceIds[i]);
|
||||||
Vibrator vib = device.getVibrator();
|
Vibrator vib = device.getVibrator();
|
||||||
|
if (vib != null) {
|
||||||
if (vib.hasVibrator()) {
|
if (vib.hasVibrator()) {
|
||||||
haptic = new SDLHaptic();
|
haptic = new SDLHaptic();
|
||||||
haptic.device_id = deviceIds[i];
|
haptic.device_id = deviceIds[i];
|
||||||
@@ -556,6 +557,7 @@ class SDLHapticHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Check VIBRATOR_SERVICE */
|
/* Check VIBRATOR_SERVICE */
|
||||||
Vibrator vib = (Vibrator) SDL.getContext().getSystemService(Context.VIBRATOR_SERVICE);
|
Vibrator vib = (Vibrator) SDL.getContext().getSystemService(Context.VIBRATOR_SERVICE);
|
||||||
|
@@ -1,8 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<!-- Base application theme. -->
|
<!-- Base application theme. -->
|
||||||
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
|
<style name="AppTheme" parent="android:Theme.NoTitleBar.Fullscreen">
|
||||||
<!-- Customize your theme here. -->
|
<!-- Customize your theme here. -->
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -80,7 +80,8 @@ do
|
|||||||
cd $folder
|
cd $folder
|
||||||
done
|
done
|
||||||
|
|
||||||
ACTIVITY="${folder}Activity"
|
# Uppercase the first char in the activity class name because it's Java
|
||||||
|
ACTIVITY="$(echo $folder | awk '{$1=toupper(substr($1,0,1))substr($1,2)}1')Activity"
|
||||||
sed -i -e "s|\"SDLActivity\"|\"$ACTIVITY\"|g" $BUILDPATH/app/src/main/AndroidManifest.xml
|
sed -i -e "s|\"SDLActivity\"|\"$ACTIVITY\"|g" $BUILDPATH/app/src/main/AndroidManifest.xml
|
||||||
|
|
||||||
# Fill in a default Activity
|
# Fill in a default Activity
|
||||||
|
1561
build-scripts/build-release.py
Executable file
1561
build-scripts/build-release.py
Executable file
File diff suppressed because it is too large
Load Diff
18
build-scripts/cmake-toolchain-mingw64-i686.cmake
Normal file
18
build-scripts/cmake-toolchain-mingw64-i686.cmake
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
set(CMAKE_SYSTEM_NAME Windows)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR x86)
|
||||||
|
|
||||||
|
find_program(CMAKE_C_COMPILER NAMES i686-w64-mingw32-gcc)
|
||||||
|
find_program(CMAKE_CXX_COMPILER NAMES i686-w64-mingw32-g++)
|
||||||
|
find_program(CMAKE_RC_COMPILER NAMES i686-w64-mingw32-windres windres)
|
||||||
|
|
||||||
|
if(NOT CMAKE_C_COMPILER)
|
||||||
|
message(FATAL_ERROR "Failed to find CMAKE_C_COMPILER.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT CMAKE_CXX_COMPILER)
|
||||||
|
message(FATAL_ERROR "Failed to find CMAKE_CXX_COMPILER.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT CMAKE_RC_COMPILER)
|
||||||
|
message(FATAL_ERROR "Failed to find CMAKE_RC_COMPILER.")
|
||||||
|
endif()
|
18
build-scripts/cmake-toolchain-mingw64-x86_64.cmake
Normal file
18
build-scripts/cmake-toolchain-mingw64-x86_64.cmake
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
set(CMAKE_SYSTEM_NAME Windows)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||||
|
|
||||||
|
find_program(CMAKE_C_COMPILER NAMES x86_64-w64-mingw32-gcc)
|
||||||
|
find_program(CMAKE_CXX_COMPILER NAMES x86_64-w64-mingw32-g++)
|
||||||
|
find_program(CMAKE_RC_COMPILER NAMES x86_64-w64-mingw32-windres windres)
|
||||||
|
|
||||||
|
if(NOT CMAKE_C_COMPILER)
|
||||||
|
message(FATAL_ERROR "Failed to find CMAKE_C_COMPILER.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT CMAKE_CXX_COMPILER)
|
||||||
|
message(FATAL_ERROR "Failed to find CMAKE_CXX_COMPILER.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT CMAKE_RC_COMPILER)
|
||||||
|
message(FATAL_ERROR "Failed to find CMAKE_RC_COMPILER.")
|
||||||
|
endif()
|
24
build-scripts/config.guess
vendored
24
build-scripts/config.guess
vendored
@@ -1,10 +1,10 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Attempt to guess a canonical system name.
|
# Attempt to guess a canonical system name.
|
||||||
# Copyright 1992-2024 Free Software Foundation, Inc.
|
# Copyright 1992-2025 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||||
|
|
||||||
timestamp='2024-01-01'
|
timestamp='2025-07-10'
|
||||||
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
# This file is free software; you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public License as published by
|
# under the terms of the GNU General Public License as published by
|
||||||
@@ -60,7 +60,7 @@ version="\
|
|||||||
GNU config.guess ($timestamp)
|
GNU config.guess ($timestamp)
|
||||||
|
|
||||||
Originally written by Per Bothner.
|
Originally written by Per Bothner.
|
||||||
Copyright 1992-2024 Free Software Foundation, Inc.
|
Copyright 1992-2025 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
This is free software; see the source for copying conditions. There is NO
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
@@ -123,7 +123,7 @@ set_cc_for_build() {
|
|||||||
dummy=$tmp/dummy
|
dummy=$tmp/dummy
|
||||||
case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
|
case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
|
||||||
,,) echo "int x;" > "$dummy.c"
|
,,) echo "int x;" > "$dummy.c"
|
||||||
for driver in cc gcc c89 c99 ; do
|
for driver in cc gcc c17 c99 c89 ; do
|
||||||
if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
|
if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
|
||||||
CC_FOR_BUILD=$driver
|
CC_FOR_BUILD=$driver
|
||||||
break
|
break
|
||||||
@@ -634,6 +634,7 @@ EOF
|
|||||||
sed 's/^ //' << EOF > "$dummy.c"
|
sed 's/^ //' << EOF > "$dummy.c"
|
||||||
#include <sys/systemcfg.h>
|
#include <sys/systemcfg.h>
|
||||||
|
|
||||||
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
if (!__power_pc())
|
if (!__power_pc())
|
||||||
@@ -718,7 +719,8 @@ EOF
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
int main ()
|
int
|
||||||
|
main ()
|
||||||
{
|
{
|
||||||
#if defined(_SC_KERNEL_BITS)
|
#if defined(_SC_KERNEL_BITS)
|
||||||
long bits = sysconf(_SC_KERNEL_BITS);
|
long bits = sysconf(_SC_KERNEL_BITS);
|
||||||
@@ -1595,8 +1597,11 @@ EOF
|
|||||||
*:Unleashed:*:*)
|
*:Unleashed:*:*)
|
||||||
GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
|
GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
|
||||||
;;
|
;;
|
||||||
*:Ironclad:*:*)
|
x86_64:[Ii]ronclad:*:*|i?86:[Ii]ronclad:*:*)
|
||||||
GUESS=$UNAME_MACHINE-unknown-ironclad
|
GUESS=$UNAME_MACHINE-pc-ironclad-mlibc
|
||||||
|
;;
|
||||||
|
*:[Ii]ronclad:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-ironclad-mlibc
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -1621,6 +1626,7 @@ cat > "$dummy.c" <<EOF
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
#if defined (sony)
|
#if defined (sony)
|
||||||
@@ -1805,8 +1811,8 @@ fi
|
|||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
|
||||||
# time-stamp-start: "timestamp='"
|
# time-stamp-start: "timestamp='"
|
||||||
# time-stamp-format: "%:y-%02m-%02d"
|
# time-stamp-format: "%Y-%02m-%02d"
|
||||||
# time-stamp-end: "'"
|
# time-stamp-end: "'"
|
||||||
# End:
|
# End:
|
||||||
|
749
build-scripts/config.sub
vendored
749
build-scripts/config.sub
vendored
File diff suppressed because it is too large
Load Diff
43
build-scripts/create-release.py
Executable file
43
build-scripts/create-release.py
Executable file
@@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
from pathlib import Path
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
ROOT = Path(__file__).resolve().parents[1]
|
||||||
|
|
||||||
|
|
||||||
|
def determine_remote() -> str:
|
||||||
|
text = (ROOT / "build-scripts/release-info.json").read_text()
|
||||||
|
release_info = json.loads(text)
|
||||||
|
if "remote" in release_info:
|
||||||
|
return release_info["remote"]
|
||||||
|
project_with_version = release_info["name"]
|
||||||
|
project, _ = re.subn("([^a-zA-Z_])", "", project_with_version)
|
||||||
|
return f"libsdl-org/{project}"
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
default_remote = determine_remote()
|
||||||
|
|
||||||
|
current_commit = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=ROOT, text=True).strip()
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(allow_abbrev=False)
|
||||||
|
parser.add_argument("--ref", required=True, help=f"Name of branch or tag containing release.yml")
|
||||||
|
parser.add_argument("--remote", "-R", default=default_remote, help=f"Remote repo (default={default_remote})")
|
||||||
|
parser.add_argument("--commit", default=current_commit, help=f"Commit (default={current_commit})")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
print(f"Running release.yml workflow:")
|
||||||
|
print(f" commit = {args.commit}")
|
||||||
|
print(f" remote = {args.remote}")
|
||||||
|
|
||||||
|
subprocess.check_call(["gh", "-R", args.remote, "workflow", "run", "release.yml", "--ref", args.ref, "-f", f"commit={args.commit}"], cwd=ROOT)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
raise SystemExit(main())
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -395,7 +395,7 @@ int main(void)
|
|||||||
printf(
|
printf(
|
||||||
"/*\n"
|
"/*\n"
|
||||||
" Simple DirectMedia Layer\n"
|
" Simple DirectMedia Layer\n"
|
||||||
" Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>\n"
|
" Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>\n"
|
||||||
"\n"
|
"\n"
|
||||||
" This software is provided 'as-is', without any express or implied\n"
|
" This software is provided 'as-is', without any express or implied\n"
|
||||||
" warranty. In no event will the authors be held liable for any damages\n"
|
" warranty. In no event will the authors be held liable for any damages\n"
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -113,7 +113,7 @@ int main(void)
|
|||||||
printf(
|
printf(
|
||||||
"/*\n"
|
"/*\n"
|
||||||
" Simple DirectMedia Layer\n"
|
" Simple DirectMedia Layer\n"
|
||||||
" Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>\n"
|
" Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>\n"
|
||||||
"\n"
|
"\n"
|
||||||
" This software is provided 'as-is', without any express or implied\n"
|
" This software is provided 'as-is', without any express or implied\n"
|
||||||
" warranty. In no event will the authors be held liable for any damages\n"
|
" warranty. In no event will the authors be held liable for any damages\n"
|
||||||
|
@@ -2415,10 +2415,10 @@ libtool_validate_options ()
|
|||||||
# preserve --debug
|
# preserve --debug
|
||||||
test : = "$debug_cmd" || func_append preserve_args " --debug"
|
test : = "$debug_cmd" || func_append preserve_args " --debug"
|
||||||
|
|
||||||
case $host in
|
case $host_os in
|
||||||
# Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
|
# Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
|
||||||
# see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
|
# see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
|
||||||
*cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
|
cygwin* | mingw* | windows* | pw32* | cegcc* | solaris2* | os2*)
|
||||||
# don't eliminate duplications in $postdeps and $predeps
|
# don't eliminate duplications in $postdeps and $predeps
|
||||||
opt_duplicate_compiler_generated_deps=:
|
opt_duplicate_compiler_generated_deps=:
|
||||||
;;
|
;;
|
||||||
@@ -2750,7 +2750,7 @@ EOF
|
|||||||
|
|
||||||
# func_convert_core_file_wine_to_w32 ARG
|
# func_convert_core_file_wine_to_w32 ARG
|
||||||
# Helper function used by file name conversion functions when $build is *nix,
|
# Helper function used by file name conversion functions when $build is *nix,
|
||||||
# and $host is mingw, cygwin, or some other w32 environment. Relies on a
|
# and $host is mingw, windows, cygwin, or some other w32 environment. Relies on a
|
||||||
# correctly configured wine environment available, with the winepath program
|
# correctly configured wine environment available, with the winepath program
|
||||||
# in $build's $PATH.
|
# in $build's $PATH.
|
||||||
#
|
#
|
||||||
@@ -2782,9 +2782,10 @@ func_convert_core_file_wine_to_w32 ()
|
|||||||
|
|
||||||
# func_convert_core_path_wine_to_w32 ARG
|
# func_convert_core_path_wine_to_w32 ARG
|
||||||
# Helper function used by path conversion functions when $build is *nix, and
|
# Helper function used by path conversion functions when $build is *nix, and
|
||||||
# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
|
# $host is mingw, windows, cygwin, or some other w32 environment. Relies on a
|
||||||
# configured wine environment available, with the winepath program in $build's
|
# correctly configured wine environment available, with the winepath program
|
||||||
# $PATH. Assumes ARG has no leading or trailing path separator characters.
|
# in $build's $PATH. Assumes ARG has no leading or trailing path separator
|
||||||
|
# characters.
|
||||||
#
|
#
|
||||||
# ARG is path to be converted from $build format to win32.
|
# ARG is path to be converted from $build format to win32.
|
||||||
# Result is available in $func_convert_core_path_wine_to_w32_result.
|
# Result is available in $func_convert_core_path_wine_to_w32_result.
|
||||||
@@ -3439,7 +3440,7 @@ func_mode_compile ()
|
|||||||
|
|
||||||
# On Cygwin there's no "real" PIC flag so we must build both object types
|
# On Cygwin there's no "real" PIC flag so we must build both object types
|
||||||
case $host_os in
|
case $host_os in
|
||||||
cygwin* | mingw* | pw32* | os2* | cegcc*)
|
cygwin* | mingw* | windows* | pw32* | os2* | cegcc*)
|
||||||
pic_mode=default
|
pic_mode=default
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -4316,7 +4317,7 @@ func_mode_install ()
|
|||||||
'exit $?'
|
'exit $?'
|
||||||
tstripme=$stripme
|
tstripme=$stripme
|
||||||
case $host_os in
|
case $host_os in
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
cygwin* | mingw* | windows* | pw32* | cegcc*)
|
||||||
case $realname in
|
case $realname in
|
||||||
*.dll.a)
|
*.dll.a)
|
||||||
tstripme=
|
tstripme=
|
||||||
@@ -4429,7 +4430,7 @@ func_mode_install ()
|
|||||||
|
|
||||||
# Do a test to see if this is really a libtool program.
|
# Do a test to see if this is really a libtool program.
|
||||||
case $host in
|
case $host in
|
||||||
*cygwin* | *mingw*)
|
*cygwin* | *mingw* | *windows*)
|
||||||
if func_ltwrapper_executable_p "$file"; then
|
if func_ltwrapper_executable_p "$file"; then
|
||||||
func_ltwrapper_scriptname "$file"
|
func_ltwrapper_scriptname "$file"
|
||||||
wrapper=$func_ltwrapper_scriptname_result
|
wrapper=$func_ltwrapper_scriptname_result
|
||||||
@@ -4657,7 +4658,7 @@ extern \"C\" {
|
|||||||
$RM $export_symbols
|
$RM $export_symbols
|
||||||
eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
|
eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
|
||||||
case $host in
|
case $host in
|
||||||
*cygwin* | *mingw* | *cegcc* )
|
*cygwin* | *mingw* | *windows* | *cegcc* )
|
||||||
eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
|
eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
|
||||||
eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
|
eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
|
||||||
;;
|
;;
|
||||||
@@ -4669,7 +4670,7 @@ extern \"C\" {
|
|||||||
eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
|
eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
|
||||||
eval '$MV "$nlist"T "$nlist"'
|
eval '$MV "$nlist"T "$nlist"'
|
||||||
case $host in
|
case $host in
|
||||||
*cygwin* | *mingw* | *cegcc* )
|
*cygwin* | *mingw* | *windows* | *cegcc* )
|
||||||
eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
|
eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
|
||||||
eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
|
eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
|
||||||
;;
|
;;
|
||||||
@@ -4683,7 +4684,7 @@ extern \"C\" {
|
|||||||
func_basename "$dlprefile"
|
func_basename "$dlprefile"
|
||||||
name=$func_basename_result
|
name=$func_basename_result
|
||||||
case $host in
|
case $host in
|
||||||
*cygwin* | *mingw* | *cegcc* )
|
*cygwin* | *mingw* | *windows* | *cegcc* )
|
||||||
# if an import library, we need to obtain dlname
|
# if an import library, we need to obtain dlname
|
||||||
if func_win32_import_lib_p "$dlprefile"; then
|
if func_win32_import_lib_p "$dlprefile"; then
|
||||||
func_tr_sh "$dlprefile"
|
func_tr_sh "$dlprefile"
|
||||||
@@ -4858,7 +4859,7 @@ static const void *lt_preloaded_setup() {
|
|||||||
# Transform the symbol file into the correct name.
|
# Transform the symbol file into the correct name.
|
||||||
symfileobj=$output_objdir/${my_outputname}S.$objext
|
symfileobj=$output_objdir/${my_outputname}S.$objext
|
||||||
case $host in
|
case $host in
|
||||||
*cygwin* | *mingw* | *cegcc* )
|
*cygwin* | *mingw* | *windows* | *cegcc* )
|
||||||
if test -f "$output_objdir/$my_outputname.def"; then
|
if test -f "$output_objdir/$my_outputname.def"; then
|
||||||
compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
|
compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
|
||||||
finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
|
finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
|
||||||
@@ -4934,7 +4935,7 @@ func_win32_libid ()
|
|||||||
*ar\ archive*) # could be an import, or static
|
*ar\ archive*) # could be an import, or static
|
||||||
# Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
|
# Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
|
||||||
if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
|
if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
|
||||||
$EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
|
$EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)' >/dev/null; then
|
||||||
case $nm_interface in
|
case $nm_interface in
|
||||||
"MS dumpbin")
|
"MS dumpbin")
|
||||||
if func_cygming_ms_implib_p "$1" ||
|
if func_cygming_ms_implib_p "$1" ||
|
||||||
@@ -5201,7 +5202,7 @@ func_extract_archives ()
|
|||||||
#
|
#
|
||||||
# Emit a libtool wrapper script on stdout.
|
# Emit a libtool wrapper script on stdout.
|
||||||
# Don't directly open a file because we may want to
|
# Don't directly open a file because we may want to
|
||||||
# incorporate the script contents within a cygwin/mingw
|
# incorporate the script contents within a cygwin/mingw/windows
|
||||||
# wrapper executable. Must ONLY be called from within
|
# wrapper executable. Must ONLY be called from within
|
||||||
# func_mode_link because it depends on a number of variables
|
# func_mode_link because it depends on a number of variables
|
||||||
# set therein.
|
# set therein.
|
||||||
@@ -5209,7 +5210,7 @@ func_extract_archives ()
|
|||||||
# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
|
# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
|
||||||
# variable will take. If 'yes', then the emitted script
|
# variable will take. If 'yes', then the emitted script
|
||||||
# will assume that the directory where it is stored is
|
# will assume that the directory where it is stored is
|
||||||
# the $objdir directory. This is a cygwin/mingw-specific
|
# the $objdir directory. This is a cygwin/mingw/windows-specific
|
||||||
# behavior.
|
# behavior.
|
||||||
func_emit_wrapper ()
|
func_emit_wrapper ()
|
||||||
{
|
{
|
||||||
@@ -5333,7 +5334,7 @@ func_exec_program_core ()
|
|||||||
"
|
"
|
||||||
case $host in
|
case $host in
|
||||||
# Backslashes separate directories on plain windows
|
# Backslashes separate directories on plain windows
|
||||||
*-*-mingw | *-*-os2* | *-cegcc*)
|
*-*-mingw* | *-*-windows* | *-*-os2* | *-cegcc*)
|
||||||
$ECHO "\
|
$ECHO "\
|
||||||
if test -n \"\$lt_option_debug\"; then
|
if test -n \"\$lt_option_debug\"; then
|
||||||
\$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
|
\$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
|
||||||
@@ -5401,7 +5402,7 @@ func_exec_program ()
|
|||||||
file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
|
file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
|
||||||
done
|
done
|
||||||
|
|
||||||
# Usually 'no', except on cygwin/mingw when embedded into
|
# Usually 'no', except on cygwin/mingw/windows when embedded into
|
||||||
# the cwrapper.
|
# the cwrapper.
|
||||||
WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
|
WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
|
||||||
if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
|
if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
|
||||||
@@ -5533,7 +5534,7 @@ EOF
|
|||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#ifdef _MSC_VER
|
#if defined _WIN32 && !defined __GNUC__
|
||||||
# include <direct.h>
|
# include <direct.h>
|
||||||
# include <process.h>
|
# include <process.h>
|
||||||
# include <io.h>
|
# include <io.h>
|
||||||
@@ -5558,7 +5559,7 @@ EOF
|
|||||||
/* declarations of non-ANSI functions */
|
/* declarations of non-ANSI functions */
|
||||||
#if defined __MINGW32__
|
#if defined __MINGW32__
|
||||||
# ifdef __STRICT_ANSI__
|
# ifdef __STRICT_ANSI__
|
||||||
int _putenv (const char *);
|
_CRTIMP int __cdecl _putenv (const char *);
|
||||||
# endif
|
# endif
|
||||||
#elif defined __CYGWIN__
|
#elif defined __CYGWIN__
|
||||||
# ifdef __STRICT_ANSI__
|
# ifdef __STRICT_ANSI__
|
||||||
@@ -5756,7 +5757,7 @@ main (int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
EOF
|
EOF
|
||||||
case $host in
|
case $host in
|
||||||
*mingw* | *cygwin* )
|
*mingw* | *windows* | *cygwin* )
|
||||||
# make stdout use "unix" line endings
|
# make stdout use "unix" line endings
|
||||||
echo " setmode(1,_O_BINARY);"
|
echo " setmode(1,_O_BINARY);"
|
||||||
;;
|
;;
|
||||||
@@ -5859,7 +5860,7 @@ EOF
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
case $host_os in
|
case $host_os in
|
||||||
mingw*)
|
mingw* | windows*)
|
||||||
cat <<"EOF"
|
cat <<"EOF"
|
||||||
{
|
{
|
||||||
char* p;
|
char* p;
|
||||||
@@ -5901,7 +5902,7 @@ EOF
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
case $host_os in
|
case $host_os in
|
||||||
mingw*)
|
mingw* | windows*)
|
||||||
cat <<"EOF"
|
cat <<"EOF"
|
||||||
/* execv doesn't actually work on mingw as expected on unix */
|
/* execv doesn't actually work on mingw as expected on unix */
|
||||||
newargz = prepare_spawn (newargz);
|
newargz = prepare_spawn (newargz);
|
||||||
@@ -6320,7 +6321,7 @@ lt_update_lib_path (const char *name, const char *value)
|
|||||||
|
|
||||||
EOF
|
EOF
|
||||||
case $host_os in
|
case $host_os in
|
||||||
mingw*)
|
mingw* | windows*)
|
||||||
cat <<"EOF"
|
cat <<"EOF"
|
||||||
|
|
||||||
/* Prepares an argument vector before calling spawn().
|
/* Prepares an argument vector before calling spawn().
|
||||||
@@ -6495,12 +6496,12 @@ func_mode_link ()
|
|||||||
$debug_cmd
|
$debug_cmd
|
||||||
|
|
||||||
case $host in
|
case $host in
|
||||||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
|
*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)
|
||||||
# It is impossible to link a dll without this setting, and
|
# It is impossible to link a dll without this setting, and
|
||||||
# we shouldn't force the makefile maintainer to figure out
|
# we shouldn't force the makefile maintainer to figure out
|
||||||
# what system we are compiling for in order to pass an extra
|
# what system we are compiling for in order to pass an extra
|
||||||
# flag for every libtool invocation.
|
# flag for every libtool invocation.
|
||||||
# SDL customization: SDL code doesn't have any undefined symbols
|
# SDL customization: SDL code doesn't have any undefined symbols.
|
||||||
allow_undefined=no
|
allow_undefined=no
|
||||||
|
|
||||||
# FIXME: Unfortunately, there are problems with the above when trying
|
# FIXME: Unfortunately, there are problems with the above when trying
|
||||||
@@ -6508,7 +6509,7 @@ func_mode_link ()
|
|||||||
# even a static library is built. For now, we need to specify
|
# even a static library is built. For now, we need to specify
|
||||||
# -no-undefined on the libtool link line when we can be certain
|
# -no-undefined on the libtool link line when we can be certain
|
||||||
# that all symbols are satisfied, otherwise we get a static library.
|
# that all symbols are satisfied, otherwise we get a static library.
|
||||||
# SDL customization: SDL code doesn't have any undefined symbols
|
# SDL customization: SDL code doesn't have any undefined symbols.
|
||||||
# allow_undefined=yes
|
# allow_undefined=yes
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@@ -7003,7 +7004,7 @@ func_mode_link ()
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
case $host in
|
case $host in
|
||||||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
|
*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)
|
||||||
testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
|
testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
|
||||||
case :$dllsearchpath: in
|
case :$dllsearchpath: in
|
||||||
*":$dir:"*) ;;
|
*":$dir:"*) ;;
|
||||||
@@ -7023,7 +7024,7 @@ func_mode_link ()
|
|||||||
-l*)
|
-l*)
|
||||||
if test X-lc = "X$arg" || test X-lm = "X$arg"; then
|
if test X-lc = "X$arg" || test X-lm = "X$arg"; then
|
||||||
case $host in
|
case $host in
|
||||||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
|
*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
|
||||||
# These systems don't actually have a C or math library (as such)
|
# These systems don't actually have a C or math library (as such)
|
||||||
continue
|
continue
|
||||||
;;
|
;;
|
||||||
@@ -7095,7 +7096,7 @@ func_mode_link ()
|
|||||||
continue
|
continue
|
||||||
;;
|
;;
|
||||||
-mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \
|
-mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \
|
||||||
|-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
|
|-threads|-fopenmp|-fopenmp=*|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
|
||||||
func_append compiler_flags " $arg"
|
func_append compiler_flags " $arg"
|
||||||
func_append compile_command " $arg"
|
func_append compile_command " $arg"
|
||||||
func_append finalize_command " $arg"
|
func_append finalize_command " $arg"
|
||||||
@@ -7118,7 +7119,7 @@ func_mode_link ()
|
|||||||
|
|
||||||
-no-install)
|
-no-install)
|
||||||
case $host in
|
case $host in
|
||||||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
|
*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
|
||||||
# The PATH hackery in wrapper scripts is required on Windows
|
# The PATH hackery in wrapper scripts is required on Windows
|
||||||
# and Darwin in order for the loader to find any dlls it needs.
|
# and Darwin in order for the loader to find any dlls it needs.
|
||||||
func_warning "'-no-install' is ignored for $host"
|
func_warning "'-no-install' is ignored for $host"
|
||||||
@@ -7303,13 +7304,29 @@ func_mode_link ()
|
|||||||
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
|
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
|
||||||
# -specs=* GCC specs files
|
# -specs=* GCC specs files
|
||||||
# -stdlib=* select c++ std lib with clang
|
# -stdlib=* select c++ std lib with clang
|
||||||
|
# -fdiagnostics-color* simply affects output
|
||||||
|
# -frecord-gcc-switches used to verify flags were respected
|
||||||
# -fsanitize=* Clang/GCC memory and address sanitizer
|
# -fsanitize=* Clang/GCC memory and address sanitizer
|
||||||
|
# -fno-sanitize* Clang/GCC memory and address sanitizer
|
||||||
|
# -shared-libsan Link with shared sanitizer runtimes (Clang)
|
||||||
|
# -static-libsan Link with static sanitizer runtimes (Clang)
|
||||||
|
# -no-canonical-prefixes Do not expand any symbolic links
|
||||||
# -fuse-ld=* Linker select flags for GCC
|
# -fuse-ld=* Linker select flags for GCC
|
||||||
|
# -static-* direct GCC to link specific libraries statically
|
||||||
|
# -fcilkplus Cilk Plus language extension features for C/C++
|
||||||
|
# -rtlib=* select c runtime lib with clang
|
||||||
|
# --unwindlib=* select unwinder library with clang
|
||||||
|
# -f{file|debug|macro|profile}-prefix-map=* needed for lto linking
|
||||||
# -Wa,* Pass flags directly to the assembler
|
# -Wa,* Pass flags directly to the assembler
|
||||||
|
# -Werror, -Werror=* Report (specified) warnings as errors
|
||||||
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
|
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
|
||||||
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
|
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
|
||||||
-O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
|
-O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-no-canonical-prefixes| \
|
||||||
-specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*)
|
-stdlib=*|-rtlib=*|--unwindlib=*| \
|
||||||
|
-specs=*|-fsanitize=*|-fno-sanitize*|-shared-libsan|-static-libsan| \
|
||||||
|
-ffile-prefix-map=*|-fdebug-prefix-map=*|-fmacro-prefix-map=*|-fprofile-prefix-map=*| \
|
||||||
|
-fdiagnostics-color*|-frecord-gcc-switches| \
|
||||||
|
-fuse-ld=*|-static-*|-fcilkplus|-Wa,*|-Werror|-Werror=*)
|
||||||
func_quote_for_eval "$arg"
|
func_quote_for_eval "$arg"
|
||||||
arg=$func_quote_for_eval_result
|
arg=$func_quote_for_eval_result
|
||||||
func_append compile_command " $arg"
|
func_append compile_command " $arg"
|
||||||
@@ -7639,7 +7656,7 @@ func_mode_link ()
|
|||||||
found=false
|
found=false
|
||||||
case $deplib in
|
case $deplib in
|
||||||
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
|
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
|
||||||
|-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
|
|-threads|-fopenmp|-fopenmp=*|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
|
||||||
if test prog,link = "$linkmode,$pass"; then
|
if test prog,link = "$linkmode,$pass"; then
|
||||||
compile_deplibs="$deplib $compile_deplibs"
|
compile_deplibs="$deplib $compile_deplibs"
|
||||||
finalize_deplibs="$deplib $finalize_deplibs"
|
finalize_deplibs="$deplib $finalize_deplibs"
|
||||||
@@ -8022,7 +8039,7 @@ func_mode_link ()
|
|||||||
fi
|
fi
|
||||||
case $host in
|
case $host in
|
||||||
# special handling for platforms with PE-DLLs.
|
# special handling for platforms with PE-DLLs.
|
||||||
*cygwin* | *mingw* | *cegcc* )
|
*cygwin* | *mingw* | *windows* | *cegcc* )
|
||||||
# Linker will automatically link against shared library if both
|
# Linker will automatically link against shared library if both
|
||||||
# static and shared are present. Therefore, ensure we extract
|
# static and shared are present. Therefore, ensure we extract
|
||||||
# symbols from the import library if a shared library is present
|
# symbols from the import library if a shared library is present
|
||||||
@@ -8165,8 +8182,8 @@ func_mode_link ()
|
|||||||
fi
|
fi
|
||||||
if test -n "$library_names" &&
|
if test -n "$library_names" &&
|
||||||
{ test no = "$use_static_libs" || test -z "$old_library"; }; then
|
{ test no = "$use_static_libs" || test -z "$old_library"; }; then
|
||||||
case $host in
|
case $host_os in
|
||||||
*cygwin* | *mingw* | *cegcc* | *os2*)
|
cygwin* | mingw* | windows* | cegcc* | os2*)
|
||||||
# No point in relinking DLLs because paths are not encoded
|
# No point in relinking DLLs because paths are not encoded
|
||||||
func_append notinst_deplibs " $lib"
|
func_append notinst_deplibs " $lib"
|
||||||
need_relink=no
|
need_relink=no
|
||||||
@@ -8235,8 +8252,8 @@ func_mode_link ()
|
|||||||
soname=$dlname
|
soname=$dlname
|
||||||
elif test -n "$soname_spec"; then
|
elif test -n "$soname_spec"; then
|
||||||
# bleh windows
|
# bleh windows
|
||||||
case $host in
|
case $host_os in
|
||||||
*cygwin* | mingw* | *cegcc*) # | *os2* # SDL customization: removed OS/2 versioning support.
|
cygwin* | mingw* | windows* | cegcc*) # | os2* # SDL customization: removed OS/2 versioning support.
|
||||||
func_arith $current - $age
|
func_arith $current - $age
|
||||||
major=$func_arith_result
|
major=$func_arith_result
|
||||||
versuffix=-$major
|
versuffix=-$major
|
||||||
@@ -8378,7 +8395,7 @@ func_mode_link ()
|
|||||||
test no = "$hardcode_direct_absolute"; then
|
test no = "$hardcode_direct_absolute"; then
|
||||||
add=$libdir/$linklib
|
add=$libdir/$linklib
|
||||||
elif test yes = "$hardcode_minus_L"; then
|
elif test yes = "$hardcode_minus_L"; then
|
||||||
add_dir=-L$libdir
|
add_dir=-L$lt_sysroot$libdir
|
||||||
add=-l$name
|
add=-l$name
|
||||||
elif test yes = "$hardcode_shlibpath_var"; then
|
elif test yes = "$hardcode_shlibpath_var"; then
|
||||||
case :$finalize_shlibpath: in
|
case :$finalize_shlibpath: in
|
||||||
@@ -8395,7 +8412,7 @@ func_mode_link ()
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# We cannot seem to hardcode it, guess we'll fake it.
|
# We cannot seem to hardcode it, guess we'll fake it.
|
||||||
add_dir=-L$libdir
|
add_dir=-L$lt_sysroot$libdir
|
||||||
# Try looking first in the location we're being installed to.
|
# Try looking first in the location we're being installed to.
|
||||||
if test -n "$inst_prefix_dir"; then
|
if test -n "$inst_prefix_dir"; then
|
||||||
case $libdir in
|
case $libdir in
|
||||||
@@ -8666,7 +8683,7 @@ func_mode_link ()
|
|||||||
test CXX = "$tagname" && {
|
test CXX = "$tagname" && {
|
||||||
case $host_os in
|
case $host_os in
|
||||||
linux*)
|
linux*)
|
||||||
case `$CC -V 2>&1 | sed 5q` in
|
case `$CC -V 2>&1 | $SED 5q` in
|
||||||
*Sun\ C*) # Sun C++ 5.9
|
*Sun\ C*) # Sun C++ 5.9
|
||||||
func_suncc_cstd_abi
|
func_suncc_cstd_abi
|
||||||
|
|
||||||
@@ -8839,13 +8856,13 @@ func_mode_link ()
|
|||||||
#
|
#
|
||||||
case $version_type in
|
case $version_type in
|
||||||
# correct linux to gnu/linux during the next big refactor
|
# correct linux to gnu/linux during the next big refactor
|
||||||
darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none)
|
darwin|freebsd-elf|linux|midnightbsd-elf|osf|qnx|windows|none)
|
||||||
func_arith $number_major + $number_minor
|
func_arith $number_major + $number_minor
|
||||||
current=$func_arith_result
|
current=$func_arith_result
|
||||||
age=$number_minor
|
age=$number_minor
|
||||||
revision=$number_revision
|
revision=$number_revision
|
||||||
;;
|
;;
|
||||||
freebsd-aout|qnx|sunos)
|
freebsd-aout|sco|sunos)
|
||||||
current=$number_major
|
current=$number_major
|
||||||
revision=$number_minor
|
revision=$number_minor
|
||||||
age=0
|
age=0
|
||||||
@@ -8992,8 +9009,9 @@ func_mode_link ()
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
qnx)
|
qnx)
|
||||||
major=.$current
|
func_arith $current - $age
|
||||||
versuffix=.$current
|
major=.$func_arith_result
|
||||||
|
versuffix=$major.$age.$revision
|
||||||
;;
|
;;
|
||||||
|
|
||||||
sco)
|
sco)
|
||||||
@@ -9146,7 +9164,7 @@ func_mode_link ()
|
|||||||
if test yes = "$build_libtool_libs"; then
|
if test yes = "$build_libtool_libs"; then
|
||||||
if test -n "$rpath"; then
|
if test -n "$rpath"; then
|
||||||
case $host in
|
case $host in
|
||||||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
|
*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
|
||||||
# these systems don't actually have a c library (as such)!
|
# these systems don't actually have a c library (as such)!
|
||||||
;;
|
;;
|
||||||
*-*-rhapsody* | *-*-darwin1.[012])
|
*-*-rhapsody* | *-*-darwin1.[012])
|
||||||
@@ -9660,7 +9678,7 @@ EOF
|
|||||||
|
|
||||||
orig_export_symbols=
|
orig_export_symbols=
|
||||||
case $host_os in
|
case $host_os in
|
||||||
cygwin* | mingw* | cegcc*)
|
cygwin* | mingw* | windows* | cegcc*)
|
||||||
if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
|
if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
|
||||||
# exporting using user supplied symfile
|
# exporting using user supplied symfile
|
||||||
func_dll_def_p "$export_symbols" || {
|
func_dll_def_p "$export_symbols" || {
|
||||||
@@ -10330,7 +10348,7 @@ EOF
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
case $host in
|
case $host in
|
||||||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
|
*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)
|
||||||
testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
|
testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
|
||||||
case :$dllsearchpath: in
|
case :$dllsearchpath: in
|
||||||
*":$libdir:"*) ;;
|
*":$libdir:"*) ;;
|
||||||
@@ -10408,7 +10426,7 @@ EOF
|
|||||||
# Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
|
# Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
|
||||||
wrappers_required=false
|
wrappers_required=false
|
||||||
;;
|
;;
|
||||||
*cygwin* | *mingw* )
|
*cygwin* | *mingw* | *windows* )
|
||||||
test yes = "$build_libtool_libs" || wrappers_required=false
|
test yes = "$build_libtool_libs" || wrappers_required=false
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@@ -10561,7 +10579,7 @@ EOF
|
|||||||
*) exeext= ;;
|
*) exeext= ;;
|
||||||
esac
|
esac
|
||||||
case $host in
|
case $host in
|
||||||
*cygwin* | *mingw* )
|
*cygwin* | *mingw* | windows* )
|
||||||
func_dirname_and_basename "$output" "" "."
|
func_dirname_and_basename "$output" "" "."
|
||||||
output_name=$func_basename_result
|
output_name=$func_basename_result
|
||||||
output_path=$func_dirname_result
|
output_path=$func_dirname_result
|
||||||
@@ -10893,7 +10911,7 @@ EOF
|
|||||||
# tests/bindir.at for full details.
|
# tests/bindir.at for full details.
|
||||||
tdlname=$dlname
|
tdlname=$dlname
|
||||||
case $host,$output,$installed,$module,$dlname in
|
case $host,$output,$installed,$module,$dlname in
|
||||||
*cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
|
*cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *windows*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
|
||||||
# If a -bindir argument was supplied, place the dll there.
|
# If a -bindir argument was supplied, place the dll there.
|
||||||
if test -n "$bindir"; then
|
if test -n "$bindir"; then
|
||||||
func_relative_path "$install_libdir" "$bindir"
|
func_relative_path "$install_libdir" "$bindir"
|
||||||
|
108
build-scripts/release-info.json
Normal file
108
build-scripts/release-info.json
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
{
|
||||||
|
"name": "SDL2",
|
||||||
|
"remote": "libsdl-org/SDL",
|
||||||
|
"version": {
|
||||||
|
"file": "include/SDL_version.h",
|
||||||
|
"re_major": "^#define SDL_MAJOR_VERSION\\s+([0-9]+)$",
|
||||||
|
"re_minor": "^#define SDL_MINOR_VERSION\\s+([0-9]+)$",
|
||||||
|
"re_micro": "^#define SDL_PATCHLEVEL\\s+([0-9]+)$"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"checks": [
|
||||||
|
"src/SDL.c",
|
||||||
|
"include/SDL.h",
|
||||||
|
"test/testsprite2.c",
|
||||||
|
"android-project/app/src/main/java/org/libsdl/app/SDLActivity.java"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"dmg": {
|
||||||
|
"project": "Xcode/SDL/SDL.xcodeproj",
|
||||||
|
"path": "Xcode/SDL/build/SDL2.dmg",
|
||||||
|
"target": "Standard DMG"
|
||||||
|
},
|
||||||
|
"mingw": {
|
||||||
|
"autotools": {
|
||||||
|
"archs": ["x86", "x64"],
|
||||||
|
"args": [
|
||||||
|
],
|
||||||
|
"files": {
|
||||||
|
"@<@TRIPLET@>@/include/SDL2": [
|
||||||
|
"include/SDL_config*.h"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"files": {
|
||||||
|
"": [
|
||||||
|
"mingw/pkg-support/INSTALL.txt",
|
||||||
|
"mingw/pkg-support/Makefile",
|
||||||
|
"BUGS.txt",
|
||||||
|
"CREDITS.txt",
|
||||||
|
"README-SDL.txt",
|
||||||
|
"WhatsNew.txt",
|
||||||
|
"LICENSE.txt",
|
||||||
|
"README.md"
|
||||||
|
],
|
||||||
|
"cmake": [
|
||||||
|
"mingw/pkg-support/cmake/sdl2-config.cmake",
|
||||||
|
"mingw/pkg-support/cmake/sdl2-config-version.cmake"
|
||||||
|
],
|
||||||
|
"docs": [
|
||||||
|
"docs/*"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"test/*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"msvc": {
|
||||||
|
"msbuild": {
|
||||||
|
"archs": [
|
||||||
|
"x86",
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"projects": [
|
||||||
|
"VisualC/SDL/SDL.vcxproj",
|
||||||
|
"VisualC/SDLmain/SDLmain.vcxproj",
|
||||||
|
"VisualC/SDLtest/SDLtest.vcxproj"
|
||||||
|
],
|
||||||
|
"files-lib": {
|
||||||
|
"": [
|
||||||
|
"VisualC/SDL/@<@PLATFORM@>@/@<@CONFIGURATION@>@/SDL2.dll"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"files-devel": {
|
||||||
|
"lib/@<@ARCH@>@": [
|
||||||
|
"VisualC/SDL/@<@PLATFORM@>@/@<@CONFIGURATION@>@/SDL2.dll",
|
||||||
|
"VisualC/SDL/@<@PLATFORM@>@/@<@CONFIGURATION@>@/SDL2.lib",
|
||||||
|
"VisualC/SDL/@<@PLATFORM@>@/@<@CONFIGURATION@>@/SDL2.pdb",
|
||||||
|
"VisualC/SDLmain/@<@PLATFORM@>@/@<@CONFIGURATION@>@/SDL2main.lib",
|
||||||
|
"VisualC/SDLtest/@<@PLATFORM@>@/@<@CONFIGURATION@>@/SDL2test.lib"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"files-lib": {
|
||||||
|
"": [
|
||||||
|
"README-SDL.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"files-devel": {
|
||||||
|
"": [
|
||||||
|
"README-SDL.txt",
|
||||||
|
"BUGS.txt",
|
||||||
|
"LICENSE.txt",
|
||||||
|
"README.md",
|
||||||
|
"WhatsNew.txt"
|
||||||
|
],
|
||||||
|
"cmake": [
|
||||||
|
"VisualC/pkg-support/cmake/sdl2-config.cmake",
|
||||||
|
"VisualC/pkg-support/cmake/sdl2-config-version.cmake"
|
||||||
|
],
|
||||||
|
"docs": [
|
||||||
|
"docs/*"
|
||||||
|
],
|
||||||
|
"include": [
|
||||||
|
"include/*.h"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
303
build-scripts/setup-gdk-desktop.py
Normal file
303
build-scripts/setup-gdk-desktop.py
Normal file
@@ -0,0 +1,303 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import functools
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
import re
|
||||||
|
import shutil
|
||||||
|
import subprocess
|
||||||
|
import tempfile
|
||||||
|
import textwrap
|
||||||
|
import urllib.request
|
||||||
|
import zipfile
|
||||||
|
|
||||||
|
# Update both variables when updating the GDK
|
||||||
|
GIT_REF = "June_2024_Update_1"
|
||||||
|
GDK_EDITION = "240601" # YYMMUU
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
class GdDesktopConfigurator:
|
||||||
|
def __init__(self, gdk_path, arch, vs_folder, vs_version=None, vs_toolset=None, temp_folder=None, git_ref=None, gdk_edition=None):
|
||||||
|
self.git_ref = git_ref or GIT_REF
|
||||||
|
self.gdk_edition = gdk_edition or GDK_EDITION
|
||||||
|
self.gdk_path = gdk_path
|
||||||
|
self.temp_folder = temp_folder or Path(tempfile.gettempdir())
|
||||||
|
self.dl_archive_path = Path(self.temp_folder) / f"{ self.git_ref }.zip"
|
||||||
|
self.gdk_extract_path = Path(self.temp_folder) / f"GDK-{ self.git_ref }"
|
||||||
|
self.arch = arch
|
||||||
|
self.vs_folder = vs_folder
|
||||||
|
self._vs_version = vs_version
|
||||||
|
self._vs_toolset = vs_toolset
|
||||||
|
|
||||||
|
def download_archive(self) -> None:
|
||||||
|
gdk_url = f"https://github.com/microsoft/GDK/archive/refs/tags/{ GIT_REF }.zip"
|
||||||
|
logger.info("Downloading %s to %s", gdk_url, self.dl_archive_path)
|
||||||
|
urllib.request.urlretrieve(gdk_url, self.dl_archive_path)
|
||||||
|
assert self.dl_archive_path.is_file()
|
||||||
|
|
||||||
|
def extract_zip_archive(self) -> None:
|
||||||
|
extract_path = self.gdk_extract_path.parent
|
||||||
|
assert self.dl_archive_path.is_file()
|
||||||
|
logger.info("Extracting %s to %s", self.dl_archive_path, extract_path)
|
||||||
|
with zipfile.ZipFile(self.dl_archive_path) as zf:
|
||||||
|
zf.extractall(extract_path)
|
||||||
|
assert self.gdk_extract_path.is_dir(), f"{self.gdk_extract_path} must exist"
|
||||||
|
|
||||||
|
def extract_development_kit(self) -> None:
|
||||||
|
extract_dks_cmd = self.gdk_extract_path / "SetupScripts/ExtractXboxOneDKs.cmd"
|
||||||
|
assert extract_dks_cmd.is_file()
|
||||||
|
logger.info("Extracting GDK Development Kit: running %s", extract_dks_cmd)
|
||||||
|
cmd = ["cmd.exe", "/C", str(extract_dks_cmd), str(self.gdk_extract_path), str(self.gdk_path)]
|
||||||
|
logger.debug("Running %r", cmd)
|
||||||
|
subprocess.check_call(cmd)
|
||||||
|
|
||||||
|
def detect_vs_version(self) -> str:
|
||||||
|
vs_regex = re.compile("VS([0-9]{4})")
|
||||||
|
supported_vs_versions = []
|
||||||
|
for p in self.gaming_grdk_build_path.iterdir():
|
||||||
|
if not p.is_dir():
|
||||||
|
continue
|
||||||
|
if m := vs_regex.match(p.name):
|
||||||
|
supported_vs_versions.append(m.group(1))
|
||||||
|
logger.info(f"Supported Visual Studio versions: {supported_vs_versions}")
|
||||||
|
vs_versions = set(self.vs_folder.parts).intersection(set(supported_vs_versions))
|
||||||
|
if not vs_versions:
|
||||||
|
raise RuntimeError("Visual Studio version is incompatible")
|
||||||
|
if len(vs_versions) > 1:
|
||||||
|
raise RuntimeError(f"Too many compatible VS versions found ({vs_versions})")
|
||||||
|
vs_version = vs_versions.pop()
|
||||||
|
logger.info(f"Used Visual Studio version: {vs_version}")
|
||||||
|
return vs_version
|
||||||
|
|
||||||
|
def detect_vs_toolset(self) -> str:
|
||||||
|
toolset_paths = []
|
||||||
|
for ts_path in self.gdk_toolset_parent_path.iterdir():
|
||||||
|
if not ts_path.is_dir():
|
||||||
|
continue
|
||||||
|
ms_props = ts_path / "Microsoft.Cpp.props"
|
||||||
|
if not ms_props.is_file():
|
||||||
|
continue
|
||||||
|
toolset_paths.append(ts_path.name)
|
||||||
|
logger.info("Detected Visual Studio toolsets: %s", toolset_paths)
|
||||||
|
assert toolset_paths, "Have we detected at least one toolset?"
|
||||||
|
|
||||||
|
def toolset_number(toolset: str) -> int:
|
||||||
|
if m:= re.match("[^0-9]*([0-9]+).*", toolset):
|
||||||
|
return int(m.group(1))
|
||||||
|
return -9
|
||||||
|
|
||||||
|
return max(toolset_paths, key=toolset_number)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def vs_version(self) -> str:
|
||||||
|
if self._vs_version is None:
|
||||||
|
self._vs_version = self.detect_vs_version()
|
||||||
|
return self._vs_version
|
||||||
|
|
||||||
|
@property
|
||||||
|
def vs_toolset(self) -> str:
|
||||||
|
if self._vs_toolset is None:
|
||||||
|
self._vs_toolset = self.detect_vs_toolset()
|
||||||
|
return self._vs_toolset
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def copy_files_and_merge_into(srcdir: Path, dstdir: Path) -> None:
|
||||||
|
logger.info(f"Copy {srcdir} to {dstdir}")
|
||||||
|
for root, _, files in os.walk(srcdir):
|
||||||
|
dest_root = dstdir / Path(root).relative_to(srcdir)
|
||||||
|
if not dest_root.is_dir():
|
||||||
|
dest_root.mkdir()
|
||||||
|
for file in files:
|
||||||
|
srcfile = Path(root) / file
|
||||||
|
dstfile = dest_root / file
|
||||||
|
shutil.copy(srcfile, dstfile)
|
||||||
|
|
||||||
|
def copy_msbuild(self) -> None:
|
||||||
|
vc_toolset_parent_path = self.vs_folder / "MSBuild/Microsoft/VC"
|
||||||
|
if 1:
|
||||||
|
logger.info(f"Detected compatible Visual Studio version: {self.vs_version}")
|
||||||
|
srcdir = vc_toolset_parent_path
|
||||||
|
dstdir = self.gdk_toolset_parent_path
|
||||||
|
assert srcdir.is_dir(), "Source directory must exist"
|
||||||
|
assert dstdir.is_dir(), "Destination directory must exist"
|
||||||
|
|
||||||
|
self.copy_files_and_merge_into(srcdir=srcdir, dstdir=dstdir)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def game_dk_path(self) -> Path:
|
||||||
|
return self.gdk_path / "Microsoft GDK"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def game_dk_latest_path(self) -> Path:
|
||||||
|
return self.game_dk_path / self.gdk_edition
|
||||||
|
|
||||||
|
@property
|
||||||
|
def windows_sdk_path(self) -> Path:
|
||||||
|
return self.gdk_path / "Windows Kits/10"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def gaming_grdk_build_path(self) -> Path:
|
||||||
|
return self.game_dk_latest_path / "GRDK"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def gdk_toolset_parent_path(self) -> Path:
|
||||||
|
return self.gaming_grdk_build_path / f"VS{self.vs_version}/flatDeployment/MSBuild/Microsoft/VC"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def env(self) -> dict[str, str]:
|
||||||
|
game_dk = self.game_dk_path
|
||||||
|
game_dk_latest = self.game_dk_latest_path
|
||||||
|
windows_sdk_dir = self.windows_sdk_path
|
||||||
|
gaming_grdk_build = self.gaming_grdk_build_path
|
||||||
|
|
||||||
|
return {
|
||||||
|
"GRDKEDITION": f"{self.gdk_edition}",
|
||||||
|
"GameDK": f"{game_dk}\\",
|
||||||
|
"GameDKLatest": f"{ game_dk_latest }\\",
|
||||||
|
"WindowsSdkDir": f"{ windows_sdk_dir }\\",
|
||||||
|
"GamingGRDKBuild": f"{ gaming_grdk_build }\\",
|
||||||
|
"VSInstallDir": f"{ self.vs_folder }\\",
|
||||||
|
}
|
||||||
|
|
||||||
|
def create_user_props(self, path: Path) -> None:
|
||||||
|
vc_targets_path = self.gaming_grdk_build_path / f"VS{ self.vs_version }/flatDeployment/MSBuild/Microsoft/VC/{ self.vs_toolset }"
|
||||||
|
vc_targets_path16 = self.gaming_grdk_build_path / f"VS2019/flatDeployment/MSBuild/Microsoft/VC/{ self.vs_toolset }"
|
||||||
|
vc_targets_path17 = self.gaming_grdk_build_path / f"VS2022/flatDeployment/MSBuild/Microsoft/VC/{ self.vs_toolset }"
|
||||||
|
additional_include_directories = ";".join(str(p) for p in self.gdk_include_paths)
|
||||||
|
additional_library_directories = ";".join(str(p) for p in self.gdk_library_paths)
|
||||||
|
durango_xdk_install_path = self.gdk_path / "Microsoft GDK"
|
||||||
|
with path.open("w") as f:
|
||||||
|
f.write(textwrap.dedent(f"""\
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<VCTargetsPath>{ vc_targets_path }\\</VCTargetsPath>
|
||||||
|
<VCTargetsPath16>{ vc_targets_path16 }\\</VCTargetsPath16>
|
||||||
|
<VCTargetsPath17>{ vc_targets_path17 }\\</VCTargetsPath17>
|
||||||
|
<BWOI_GDK_Path>{ self.gaming_grdk_build_path }\\</BWOI_GDK_Path>
|
||||||
|
<Platform Condition="'$(Platform)' == ''">Gaming.Desktop.x64</Platform>
|
||||||
|
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
|
||||||
|
<XdkEditionTarget>{ self.gdk_edition }</XdkEditionTarget>
|
||||||
|
<DurangoXdkInstallPath>{ durango_xdk_install_path }</DurangoXdkInstallPath>
|
||||||
|
|
||||||
|
<DefaultXdkEditionRootVS2019>$(DurangoXdkInstallPath)\\{self.gdk_edition}\\GRDK\\VS2019\\flatDeployment\\MSBuild\\Microsoft\\VC\\{self.vs_toolset}\\Platforms\\$(Platform)\\</DefaultXdkEditionRootVS2019>
|
||||||
|
<XdkEditionRootVS2019>$(DurangoXdkInstallPath)\\{self.gdk_edition}\\GRDK\\VS2019\\flatDeployment\\MSBuild\\Microsoft\\VC\\{self.vs_toolset}\\Platforms\\$(Platform)\\</XdkEditionRootVS2019>
|
||||||
|
<DefaultXdkEditionRootVS2022>$(DurangoXdkInstallPath)\\{self.gdk_edition}\\GRDK\\VS2022\\flatDeployment\\MSBuild\\Microsoft\\VC\\{self.vs_toolset}\\Platforms\\$(Platform)\\</DefaultXdkEditionRootVS2022>
|
||||||
|
<XdkEditionRootVS2022>$(DurangoXdkInstallPath)\\{self.gdk_edition}\\GRDK\\VS2022\\flatDeployment\\MSBuild\\Microsoft\\VC\\{self.vs_toolset}\\Platforms\\$(Platform)\\</XdkEditionRootVS2022>
|
||||||
|
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
<DisableInstalledVCTargetsUse>true</DisableInstalledVCTargetsUse>
|
||||||
|
<ClearDevCommandPromptEnvVars>true</ClearDevCommandPromptEnvVars>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Platform)' == 'Gaming.Desktop.x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>{ additional_include_directories };%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalLibraryDirectories>{ additional_library_directories };%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
</Project>
|
||||||
|
"""))
|
||||||
|
|
||||||
|
@property
|
||||||
|
def gdk_include_paths(self) -> list[Path]:
|
||||||
|
return [
|
||||||
|
self.gaming_grdk_build_path / "gamekit/include",
|
||||||
|
]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def gdk_library_paths(self) -> list[Path]:
|
||||||
|
return [
|
||||||
|
self.gaming_grdk_build_path / f"gamekit/lib/{self.arch}",
|
||||||
|
]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def gdk_binary_path(self) -> list[Path]:
|
||||||
|
return [
|
||||||
|
self.gaming_grdk_build_path / "bin",
|
||||||
|
self.game_dk_path / "bin",
|
||||||
|
]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def build_env(self) -> dict[str, str]:
|
||||||
|
gdk_include = ";".join(str(p) for p in self.gdk_include_paths)
|
||||||
|
gdk_lib = ";".join(str(p) for p in self.gdk_library_paths)
|
||||||
|
gdk_path = ";".join(str(p) for p in self.gdk_binary_path)
|
||||||
|
return {
|
||||||
|
"GDK_INCLUDE": gdk_include,
|
||||||
|
"GDK_LIB": gdk_lib,
|
||||||
|
"GDK_PATH": gdk_path,
|
||||||
|
}
|
||||||
|
|
||||||
|
def print_env(self) -> None:
|
||||||
|
for k, v in self.env.items():
|
||||||
|
print(f"set \"{k}={v}\"")
|
||||||
|
print()
|
||||||
|
for k, v in self.build_env.items():
|
||||||
|
print(f"set \"{k}={v}\"")
|
||||||
|
print()
|
||||||
|
print(f"set \"PATH=%GDK_PATH%;%PATH%\"")
|
||||||
|
print(f"set \"LIB=%GDK_LIB%;%LIB%\"")
|
||||||
|
print(f"set \"INCLUDE=%GDK_INCLUDE%;%INCLUDE%\"")
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
parser = argparse.ArgumentParser(allow_abbrev=False)
|
||||||
|
parser.add_argument("--arch", choices=["amd64"], default="amd64", help="Architecture")
|
||||||
|
parser.add_argument("--download", action="store_true", help="Download GDK")
|
||||||
|
parser.add_argument("--extract", action="store_true", help="Extract downloaded GDK")
|
||||||
|
parser.add_argument("--copy-msbuild", action="store_true", help="Copy MSBuild files")
|
||||||
|
parser.add_argument("--temp-folder", help="Temporary folder where to download and extract GDK")
|
||||||
|
parser.add_argument("--gdk-path", required=True, type=Path, help="Folder where to store the GDK")
|
||||||
|
parser.add_argument("--ref-edition", type=str, help="Git ref and GDK edition separated by comma")
|
||||||
|
parser.add_argument("--vs-folder", required=True, type=Path, help="Installation folder of Visual Studio")
|
||||||
|
parser.add_argument("--vs-version", required=False, type=int, help="Visual Studio version")
|
||||||
|
parser.add_argument("--vs-toolset", required=False, help="Visual Studio toolset (e.g. v150)")
|
||||||
|
parser.add_argument("--props-folder", required=False, type=Path, default=Path(), help="Visual Studio toolset (e.g. v150)")
|
||||||
|
parser.add_argument("--no-user-props", required=False, dest="user_props", action="store_false", help="Don't ")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
|
||||||
|
git_ref = None
|
||||||
|
gdk_edition = None
|
||||||
|
if args.ref_edition is not None:
|
||||||
|
git_ref, gdk_edition = args.ref_edition.split(",", 1)
|
||||||
|
try:
|
||||||
|
int(gdk_edition)
|
||||||
|
except ValueError:
|
||||||
|
parser.error("Edition should be an integer (YYMMUU) (Y=year M=month U=update)")
|
||||||
|
|
||||||
|
configurator = GdDesktopConfigurator(
|
||||||
|
arch=args.arch,
|
||||||
|
git_ref=git_ref,
|
||||||
|
gdk_edition=gdk_edition,
|
||||||
|
vs_folder=args.vs_folder,
|
||||||
|
vs_version=args.vs_version,
|
||||||
|
vs_toolset=args.vs_toolset,
|
||||||
|
gdk_path=args.gdk_path,
|
||||||
|
temp_folder=args.temp_folder,
|
||||||
|
)
|
||||||
|
|
||||||
|
if args.download:
|
||||||
|
configurator.download_archive()
|
||||||
|
|
||||||
|
if args.extract:
|
||||||
|
configurator.extract_zip_archive()
|
||||||
|
|
||||||
|
configurator.extract_development_kit()
|
||||||
|
|
||||||
|
if args.copy_msbuild:
|
||||||
|
configurator.copy_msbuild()
|
||||||
|
|
||||||
|
if args.user_props:
|
||||||
|
configurator.print_env()
|
||||||
|
configurator.create_user_props(args.props_folder / "Directory.Build.props")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
raise SystemExit(main())
|
@@ -5,8 +5,8 @@
|
|||||||
SDL_ROOT=$(dirname $0)/..
|
SDL_ROOT=$(dirname $0)/..
|
||||||
cd $SDL_ROOT
|
cd $SDL_ROOT
|
||||||
|
|
||||||
if [ -e ./VERSION.txt ]; then
|
if [ -e ./REVISION.txt ]; then
|
||||||
cat ./VERSION.txt
|
cat ./REVISION.txt
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@@ -29,7 +29,7 @@ done
|
|||||||
rev=`sh showrev.sh 2>/dev/null`
|
rev=`sh showrev.sh 2>/dev/null`
|
||||||
if [ "$rev" != "" ]; then
|
if [ "$rev" != "" ]; then
|
||||||
if [ -n "$dist" ]; then
|
if [ -n "$dist" ]; then
|
||||||
echo "$rev" > "$outdir/VERSION.txt"
|
echo "$rev" > "$outdir/REVISION.txt"
|
||||||
fi
|
fi
|
||||||
echo "/* Generated by updaterev.sh, do not edit */" >"$header.new"
|
echo "/* Generated by updaterev.sh, do not edit */" >"$header.new"
|
||||||
if [ -n "$vendor" ]; then
|
if [ -n "$vendor" ]; then
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -27,11 +27,13 @@ function(check_cpu_architecture ARCH VARIABLE)
|
|||||||
if(ARCH STREQUAL "x86")
|
if(ARCH STREQUAL "x86")
|
||||||
_internal_check_cpu_architecture("defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) ||defined( __i386) || defined(_M_IX86)" x86 ${VARIABLE})
|
_internal_check_cpu_architecture("defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) ||defined( __i386) || defined(_M_IX86)" x86 ${VARIABLE})
|
||||||
elseif(ARCH STREQUAL "x64")
|
elseif(ARCH STREQUAL "x64")
|
||||||
_internal_check_cpu_architecture("defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)" x64 ${VARIABLE})
|
_internal_check_cpu_architecture("(defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)) && !defined(_M_ARM64EC)" x64 ${VARIABLE})
|
||||||
elseif(ARCH STREQUAL "arm32")
|
elseif(ARCH STREQUAL "arm32")
|
||||||
_internal_check_cpu_architecture("defined(__arm__) || defined(_M_ARM)" arm32 ${VARIABLE})
|
_internal_check_cpu_architecture("defined(__arm__) || defined(_M_ARM)" arm32 ${VARIABLE})
|
||||||
elseif(ARCH STREQUAL "arm64")
|
elseif(ARCH STREQUAL "arm64")
|
||||||
_internal_check_cpu_architecture("defined(__aarch64__) || defined(_M_ARM64)" arm64 ${VARIABLE})
|
_internal_check_cpu_architecture("defined(__aarch64__) || defined(_M_ARM64)" arm64 ${VARIABLE})
|
||||||
|
elseif(ARCH STREQUAL "arm64ec")
|
||||||
|
_internal_check_cpu_architecture("defined(_M_ARM64EC)" arm64ec ${VARIABLE})
|
||||||
elseif(ARCH STREQUAL "loongarch64")
|
elseif(ARCH STREQUAL "loongarch64")
|
||||||
_internal_check_cpu_architecture("defined(__loongarch64)" loongarch64 ${VARIABLE})
|
_internal_check_cpu_architecture("defined(__loongarch64)" loongarch64 ${VARIABLE})
|
||||||
else()
|
else()
|
||||||
|
@@ -119,7 +119,7 @@ macro(CheckALSA)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(NOT HAVE_ALSA_SHARED)
|
if(NOT HAVE_ALSA_SHARED)
|
||||||
list(APPEND CMAKE_DEPENDS ALSA::ALSA)
|
list(APPEND CMAKE_LIBS ALSA::ALSA)
|
||||||
list(APPEND PKGCONFIG_DEPENDS alsa)
|
list(APPEND PKGCONFIG_DEPENDS alsa)
|
||||||
endif()
|
endif()
|
||||||
set(HAVE_SDL_AUDIO TRUE)
|
set(HAVE_SDL_AUDIO TRUE)
|
||||||
@@ -947,7 +947,7 @@ macro(CheckPTHREAD)
|
|||||||
elseif(BSDI)
|
elseif(BSDI)
|
||||||
set(PTHREAD_CFLAGS "-D_REENTRANT -D_THREAD_SAFE")
|
set(PTHREAD_CFLAGS "-D_REENTRANT -D_THREAD_SAFE")
|
||||||
set(PTHREAD_LDFLAGS "")
|
set(PTHREAD_LDFLAGS "")
|
||||||
elseif(DARWIN)
|
elseif(MACOS)
|
||||||
set(PTHREAD_CFLAGS "-D_THREAD_SAFE")
|
set(PTHREAD_CFLAGS "-D_THREAD_SAFE")
|
||||||
# causes Carbon.p complaints?
|
# causes Carbon.p complaints?
|
||||||
# set(PTHREAD_CFLAGS "-D_REENTRANT -D_THREAD_SAFE")
|
# set(PTHREAD_CFLAGS "-D_REENTRANT -D_THREAD_SAFE")
|
||||||
@@ -963,7 +963,11 @@ macro(CheckPTHREAD)
|
|||||||
set(PTHREAD_LDFLAGS "-lpthread")
|
set(PTHREAD_LDFLAGS "-lpthread")
|
||||||
elseif(SOLARIS)
|
elseif(SOLARIS)
|
||||||
set(PTHREAD_CFLAGS "-D_REENTRANT")
|
set(PTHREAD_CFLAGS "-D_REENTRANT")
|
||||||
set(PTHREAD_LDFLAGS "-pthread -lposix4")
|
if(CMAKE_C_COMPILER_ID MATCHES "SunPro")
|
||||||
|
set(PTHREAD_LDFLAGS "-mt -lpthread")
|
||||||
|
else()
|
||||||
|
set(PTHREAD_LDFLAGS "-pthread")
|
||||||
|
endif()
|
||||||
elseif(SYSV5)
|
elseif(SYSV5)
|
||||||
set(PTHREAD_CFLAGS "-D_REENTRANT -Kthread")
|
set(PTHREAD_CFLAGS "-D_REENTRANT -Kthread")
|
||||||
set(PTHREAD_LDFLAGS "")
|
set(PTHREAD_LDFLAGS "")
|
||||||
@@ -1249,6 +1253,7 @@ macro(CheckHIDAPI)
|
|||||||
|
|
||||||
if(HAVE_HIDAPI)
|
if(HAVE_HIDAPI)
|
||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
|
enable_language(CXX)
|
||||||
list(APPEND SOURCE_FILES ${SDL2_SOURCE_DIR}/src/hidapi/android/hid.cpp)
|
list(APPEND SOURCE_FILES ${SDL2_SOURCE_DIR}/src/hidapi/android/hid.cpp)
|
||||||
endif()
|
endif()
|
||||||
if(IOS OR TVOS)
|
if(IOS OR TVOS)
|
||||||
@@ -1276,13 +1281,18 @@ endmacro()
|
|||||||
# - n/a
|
# - n/a
|
||||||
macro(CheckRPI)
|
macro(CheckRPI)
|
||||||
if(SDL_RPI)
|
if(SDL_RPI)
|
||||||
pkg_check_modules(VIDEO_RPI bcm_host brcmegl)
|
pkg_check_modules(VIDEO_RPI bcm_host)
|
||||||
if (NOT VIDEO_RPI_FOUND)
|
if (NOT VIDEO_RPI_FOUND)
|
||||||
set(VIDEO_RPI_INCLUDE_DIRS "/opt/vc/include" "/opt/vc/include/interface/vcos/pthreads" "/opt/vc/include/interface/vmcs_host/linux/" )
|
set(VIDEO_RPI_INCLUDE_DIRS "/opt/vc/include" "/opt/vc/include/interface/vcos/pthreads" "/opt/vc/include/interface/vmcs_host/linux/" )
|
||||||
set(VIDEO_RPI_LIBRARY_DIRS "/opt/vc/lib" )
|
set(VIDEO_RPI_LIBRARY_DIRS "/opt/vc/lib" )
|
||||||
set(VIDEO_RPI_LIBRARIES bcm_host )
|
set(VIDEO_RPI_LIBRARIES bcm_host )
|
||||||
set(VIDEO_RPI_LDFLAGS "-Wl,-rpath,/opt/vc/lib")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
pkg_check_modules(VIDEO_RPI_EGL brcmegl)
|
||||||
|
if (NOT VIDEO_RPI_EGL_FOUND)
|
||||||
|
set(VIDEO_RPI_EGL_LDFLAGS "-Wl,-rpath,/opt/vc/lib")
|
||||||
|
endif()
|
||||||
|
|
||||||
listtostr(VIDEO_RPI_INCLUDE_DIRS VIDEO_RPI_INCLUDE_FLAGS "-I")
|
listtostr(VIDEO_RPI_INCLUDE_DIRS VIDEO_RPI_INCLUDE_FLAGS "-I")
|
||||||
listtostr(VIDEO_RPI_LIBRARY_DIRS VIDEO_RPI_LIBRARY_FLAGS "-L")
|
listtostr(VIDEO_RPI_LIBRARY_DIRS VIDEO_RPI_LIBRARY_FLAGS "-L")
|
||||||
|
|
||||||
@@ -1291,9 +1301,7 @@ macro(CheckRPI)
|
|||||||
set(CMAKE_REQUIRED_LIBRARIES "${VIDEO_RPI_LIBRARIES}")
|
set(CMAKE_REQUIRED_LIBRARIES "${VIDEO_RPI_LIBRARIES}")
|
||||||
check_c_source_compiles("
|
check_c_source_compiles("
|
||||||
#include <bcm_host.h>
|
#include <bcm_host.h>
|
||||||
#include <EGL/eglplatform.h>
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
EGL_DISPMANX_WINDOW_T window;
|
|
||||||
bcm_host_init();
|
bcm_host_init();
|
||||||
}" HAVE_RPI)
|
}" HAVE_RPI)
|
||||||
set(CMAKE_REQUIRED_FLAGS "${ORIG_CMAKE_REQUIRED_FLAGS}")
|
set(CMAKE_REQUIRED_FLAGS "${ORIG_CMAKE_REQUIRED_FLAGS}")
|
||||||
@@ -1307,7 +1315,7 @@ macro(CheckRPI)
|
|||||||
list(APPEND EXTRA_LIBS ${VIDEO_RPI_LIBRARIES})
|
list(APPEND EXTRA_LIBS ${VIDEO_RPI_LIBRARIES})
|
||||||
# !!! FIXME: shouldn't be using CMAKE_C_FLAGS, right?
|
# !!! FIXME: shouldn't be using CMAKE_C_FLAGS, right?
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${VIDEO_RPI_INCLUDE_FLAGS} ${VIDEO_RPI_LIBRARY_FLAGS}")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${VIDEO_RPI_INCLUDE_FLAGS} ${VIDEO_RPI_LIBRARY_FLAGS}")
|
||||||
list(APPEND EXTRA_LDFLAGS ${VIDEO_RPI_LDFLAGS})
|
list(APPEND EXTRA_LDFLAGS ${VIDEO_RPI_LDFLAGS} ${VIDEO_RPI_EGL_LDFLAGS})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
@@ -1352,12 +1360,13 @@ endmacro()
|
|||||||
|
|
||||||
macro(CheckLibUDev)
|
macro(CheckLibUDev)
|
||||||
if(SDL_LIBUDEV)
|
if(SDL_LIBUDEV)
|
||||||
check_include_file("libudev.h" have_libudev_header)
|
check_include_file("libudev.h" HAVE_LIBUDEV_HEADER)
|
||||||
if(have_libudev_header)
|
if(HAVE_LIBUDEV_HEADER)
|
||||||
set(HAVE_LIBUDEV_H TRUE)
|
set(HAVE_LIBUDEV_H TRUE)
|
||||||
FindLibraryAndSONAME(udev)
|
FindLibraryAndSONAME(udev)
|
||||||
if(UDEV_LIB_SONAME)
|
if(UDEV_LIB_SONAME)
|
||||||
set(SDL_UDEV_DYNAMIC "\"${UDEV_LIB_SONAME}\"")
|
set(SDL_UDEV_DYNAMIC "\"${UDEV_LIB_SONAME}\"")
|
||||||
|
set(HAVE_LIBUDEV TRUE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@@ -32,10 +32,8 @@ macro(SDL_DetectCMakePlatform)
|
|||||||
set(SDL_CMAKE_PLATFORM QNX)
|
set(SDL_CMAKE_PLATFORM QNX)
|
||||||
endif()
|
endif()
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
if(CMAKE_SYSTEM_NAME MATCHES ".*Darwin.*")
|
if(CMAKE_SYSTEM_NAME MATCHES ".*(Darwin|MacOS).*")
|
||||||
set(SDL_CMAKE_PLATFORM DARWIN)
|
set(SDL_CMAKE_PLATFORM MACOS)
|
||||||
elseif(CMAKE_SYSTEM_NAME MATCHES ".*MacOS.*")
|
|
||||||
set(SDL_CMAKE_PLATFORM MACOSX)
|
|
||||||
elseif(CMAKE_SYSTEM_NAME MATCHES ".*tvOS.*")
|
elseif(CMAKE_SYSTEM_NAME MATCHES ".*tvOS.*")
|
||||||
set(SDL_CMAKE_PLATFORM TVOS)
|
set(SDL_CMAKE_PLATFORM TVOS)
|
||||||
elseif(CMAKE_SYSTEM_NAME MATCHES ".*iOS.*")
|
elseif(CMAKE_SYSTEM_NAME MATCHES ".*iOS.*")
|
||||||
@@ -43,6 +41,10 @@ macro(SDL_DetectCMakePlatform)
|
|||||||
if(CMAKE_VERSION VERSION_LESS 3.14)
|
if(CMAKE_VERSION VERSION_LESS 3.14)
|
||||||
set(SDL_CMAKE_PLATFORM IOS)
|
set(SDL_CMAKE_PLATFORM IOS)
|
||||||
endif()
|
endif()
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES ".*watchOS.*")
|
||||||
|
set(SDL_CMAKE_PLATFORM WATCHOS)
|
||||||
|
elseif (CMAKE_SYSTEM_NAME MATCHES "visionOS")
|
||||||
|
set(SDL_CMAKE_PLATFORM VISIONOS)
|
||||||
endif()
|
endif()
|
||||||
elseif(CMAKE_SYSTEM_NAME MATCHES "BeOS.*")
|
elseif(CMAKE_SYSTEM_NAME MATCHES "BeOS.*")
|
||||||
message_error("BeOS support has been removed as of SDL 2.0.2.")
|
message_error("BeOS support has been removed as of SDL 2.0.2.")
|
||||||
|
@@ -3,6 +3,8 @@
|
|||||||
cmake_minimum_required(VERSION 3.12)
|
cmake_minimum_required(VERSION 3.12)
|
||||||
project(sdl_test LANGUAGES C)
|
project(sdl_test LANGUAGES C)
|
||||||
|
|
||||||
|
include(CheckLanguage)
|
||||||
|
include(FeatureSummary)
|
||||||
include(GenerateExportHeader)
|
include(GenerateExportHeader)
|
||||||
|
|
||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
@@ -19,14 +21,31 @@ cmake_policy(SET CMP0074 NEW)
|
|||||||
# Override CMAKE_FIND_ROOT_PATH_MODE to allow search for SDL2 outside of sysroot
|
# Override CMAKE_FIND_ROOT_PATH_MODE to allow search for SDL2 outside of sysroot
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE NEVER)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE NEVER)
|
||||||
|
|
||||||
include(FeatureSummary)
|
|
||||||
|
|
||||||
option(TEST_SHARED "Test linking to shared SDL2 library" ON)
|
option(TEST_SHARED "Test linking to shared SDL2 library" ON)
|
||||||
add_feature_info("TEST_SHARED" TEST_SHARED "Test linking with shared library")
|
add_feature_info("TEST_SHARED" TEST_SHARED "Test linking with shared library")
|
||||||
|
|
||||||
option(TEST_STATIC "Test linking to static SDL2 library" ON)
|
option(TEST_STATIC "Test linking to static SDL2 library" ON)
|
||||||
add_feature_info("TEST_STATIC" TEST_STATIC "Test linking with static library")
|
add_feature_info("TEST_STATIC" TEST_STATIC "Test linking with static library")
|
||||||
|
|
||||||
|
option(TEST_TEST "Test linking to SDL3_test library" ON)
|
||||||
|
add_feature_info("TEST_TEST" TEST_STATIC "Test linking to SDL test library")
|
||||||
|
|
||||||
|
option(TEST_FULL "Run complete SDL test suite" OFF)
|
||||||
|
add_feature_info("TEST_FULL" TEST_FULL "Build full SDL testsuite")
|
||||||
|
|
||||||
|
# FIXME: how to target ios/tvos with Swift?
|
||||||
|
# https://gitlab.kitware.com/cmake/cmake/-/issues/20104
|
||||||
|
if(APPLE AND CMAKE_SYSTEM_NAME MATCHES ".*(Darwin|MacOS).*")
|
||||||
|
# multiple values for CMAKE_OSX_ARCHITECTURES not supported with Swift
|
||||||
|
list(LENGTH CMAKE_OSX_ARCHITECTURES count_osx_archs)
|
||||||
|
if(count_osx_archs LESS_EQUAL 1)
|
||||||
|
check_language(Swift)
|
||||||
|
if(CMAKE_Swift_COMPILER)
|
||||||
|
enable_language(Swift)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(TEST_SHARED)
|
if(TEST_SHARED)
|
||||||
find_package(SDL2 REQUIRED CONFIG COMPONENTS SDL2)
|
find_package(SDL2 REQUIRED CONFIG COMPONENTS SDL2)
|
||||||
if(EMSCRIPTEN OR (WIN32 AND NOT WINDOWS_STORE))
|
if(EMSCRIPTEN OR (WIN32 AND NOT WINDOWS_STORE))
|
||||||
@@ -75,6 +94,17 @@ if(TEST_SHARED)
|
|||||||
generate_export_header(sharedlib-shared-vars EXPORT_MACRO_NAME MYLIBRARY_EXPORT)
|
generate_export_header(sharedlib-shared-vars EXPORT_MACRO_NAME MYLIBRARY_EXPORT)
|
||||||
target_compile_definitions(sharedlib-shared-vars PRIVATE "EXPORT_HEADER=\"${CMAKE_CURRENT_BINARY_DIR}/sharedlib-shared-vars_export.h\"")
|
target_compile_definitions(sharedlib-shared-vars PRIVATE "EXPORT_HEADER=\"${CMAKE_CURRENT_BINARY_DIR}/sharedlib-shared-vars_export.h\"")
|
||||||
set_target_properties(sharedlib-shared-vars PROPERTIES C_VISIBILITY_PRESET "hidden")
|
set_target_properties(sharedlib-shared-vars PROPERTIES C_VISIBILITY_PRESET "hidden")
|
||||||
|
|
||||||
|
if(TEST_TEST)
|
||||||
|
add_executable(sdltest-shared sdltest.c)
|
||||||
|
target_link_libraries(sdltest-shared PRIVATE SDL2::SDL2main SDL2::SDL2test SDL2::SDL2)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_Swift_COMPILER)
|
||||||
|
add_executable(swift-shared main.swift)
|
||||||
|
target_include_directories(swift-shared PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/swift")
|
||||||
|
target_link_libraries(swift-shared PRIVATE SDL2::SDL2)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(TEST_STATIC)
|
if(TEST_STATIC)
|
||||||
@@ -111,6 +141,26 @@ if(TEST_STATIC)
|
|||||||
target_link_libraries(cli-static-vars PRIVATE ${SDL2_STATIC_LIBRARIES})
|
target_link_libraries(cli-static-vars PRIVATE ${SDL2_STATIC_LIBRARIES})
|
||||||
target_include_directories(cli-static-vars PRIVATE ${SDL2_INCLUDE_DIRS})
|
target_include_directories(cli-static-vars PRIVATE ${SDL2_INCLUDE_DIRS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(TEST_TEST)
|
||||||
|
add_executable(sdltest-static sdltest.c)
|
||||||
|
target_link_libraries(sdltest-static PRIVATE SDL2::SDL2main SDL2::SDL2test SDL2::SDL2-static)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_Swift_COMPILER)
|
||||||
|
add_executable(swift-static main.swift)
|
||||||
|
target_include_directories(swift-static PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/swift")
|
||||||
|
target_link_libraries(swift-static PRIVATE SDL2::SDL2-static)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(TEST_FULL)
|
||||||
|
enable_testing()
|
||||||
|
set(SDL_TESTS_TIMEOUT_MULTIPLIER "1" CACHE STRING "Test timeout multiplier")
|
||||||
|
set(SDL_TESTS_LINK_SHARED ${TEST_SHARED})
|
||||||
|
|
||||||
|
add_definitions(-DNO_BUILD_CONFIG)
|
||||||
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/../../test" SDL_test)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message(STATUS "SDL2_PREFIX: ${SDL2_PREFIX}")
|
message(STATUS "SDL2_PREFIX: ${SDL2_PREFIX}")
|
||||||
|
12
cmake/test/main.swift
Normal file
12
cmake/test/main.swift
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
/* Contributed by Piotr Usewicz (https://github.com/pusewicz) */
|
||||||
|
|
||||||
|
import SDL2
|
||||||
|
|
||||||
|
guard SDL_Init(Uint32(SDL_INIT_VIDEO)) == 0 else {
|
||||||
|
fatalError("SDL_Init error: \(String(cString: SDL_GetError()))")
|
||||||
|
}
|
||||||
|
|
||||||
|
var sdlVersion = SDL_version()
|
||||||
|
SDL_GetVersion(&sdlVersion)
|
||||||
|
|
||||||
|
print("SDL version: \(sdlVersion.major).\(sdlVersion.minor).\(sdlVersion.patch)")
|
9
cmake/test/sdltest.c
Normal file
9
cmake/test/sdltest.c
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#include "SDL.h"
|
||||||
|
#include "SDL_test.h"
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
SDLTest_CommonState state;
|
||||||
|
SDLTest_CommonDefaultArgs(&state, argc, argv);
|
||||||
|
return 0;
|
||||||
|
}
|
4
cmake/test/swift/module.modulemap
Normal file
4
cmake/test/swift/module.modulemap
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
module SDL2 [extern_c] {
|
||||||
|
header "shim.h"
|
||||||
|
export *
|
||||||
|
}
|
3
cmake/test/swift/shim.h
Normal file
3
cmake/test/swift/shim.h
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
/* Contributed by Piotr Usewicz (https://github.com/pusewicz) */
|
||||||
|
|
||||||
|
#include "SDL.h"
|
89
configure.ac
89
configure.ac
@@ -12,8 +12,8 @@ orig_CFLAGS="$CFLAGS"
|
|||||||
dnl Set various version strings - taken gratefully from the GTk sources
|
dnl Set various version strings - taken gratefully from the GTk sources
|
||||||
# See docs/release_checklist.md
|
# See docs/release_checklist.md
|
||||||
SDL_MAJOR_VERSION=2
|
SDL_MAJOR_VERSION=2
|
||||||
SDL_MINOR_VERSION=29
|
SDL_MINOR_VERSION=33
|
||||||
SDL_MICRO_VERSION=2
|
SDL_MICRO_VERSION=0
|
||||||
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
|
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
|
||||||
|
|
||||||
SDL_BINARY_AGE=`expr $SDL_MINOR_VERSION \* 100 + $SDL_MICRO_VERSION`
|
SDL_BINARY_AGE=`expr $SDL_MINOR_VERSION \* 100 + $SDL_MICRO_VERSION`
|
||||||
@@ -322,7 +322,7 @@ AC_ARG_ENABLE(libc,
|
|||||||
dnl See whether we are allowed to use system iconv
|
dnl See whether we are allowed to use system iconv
|
||||||
enable_system_iconv_default=yes
|
enable_system_iconv_default=yes
|
||||||
case "$host" in
|
case "$host" in
|
||||||
*-*-cygwin*|*-*-mingw*)
|
*-*-cygwin*|*-*-mingw*|*-*-darwin*|*-ios-*)
|
||||||
enable_system_iconv_default=no
|
enable_system_iconv_default=no
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -359,7 +359,7 @@ dnl Checks for library functions.
|
|||||||
AC_DEFINE(HAVE_MPROTECT, 1, [ ])
|
AC_DEFINE(HAVE_MPROTECT, 1, [ ])
|
||||||
],[]),
|
],[]),
|
||||||
)
|
)
|
||||||
AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv bsearch qsort abs bcopy memset memcmp memcpy memmove wcslen wcslcpy wcslcat _wcsdup wcsdup wcsstr wcscmp wcsncmp wcscasecmp _wcsicmp wcsncasecmp _wcsnicmp strlen strlcpy strlcat _strrev _strupr _strlwr index rindex strchr strrchr strstr strtok_r itoa _ltoa _uitoa _ultoa strtod strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp strcasestr vsscanf vsnprintf fopen64 fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname getauxval elf_aux_info poll _Exit)
|
AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv bsearch qsort abs bcopy memset memcmp memcpy memmove wcslen wcslcpy wcslcat _wcsdup wcsdup wcsstr wcscmp wcsncmp wcscasecmp _wcsicmp wcsncasecmp _wcsnicmp strlen strlcpy strlcat _strrev _strupr _strlwr index rindex strchr strrchr strstr strtok_r itoa _ltoa _uitoa _ultoa strtod strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp strcasestr vsscanf vsnprintf fopen64 fseeko fseeko64 sigaction sigtimedwait setjmp nanosleep sysconf sysctlbyname getauxval elf_aux_info poll memfd_create posix_fallocate _Exit)
|
||||||
|
|
||||||
AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
|
AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
|
||||||
AC_CHECK_FUNCS(acos acosf asin asinf atan atanf atan2 atan2f ceil ceilf copysign copysignf cos cosf exp expf fabs fabsf floor floorf trunc truncf fmod fmodf log logf log10 log10f lround lroundf pow powf round roundf scalbn scalbnf sin sinf sqrt sqrtf tan tanf)
|
AC_CHECK_FUNCS(acos acosf asin asinf atan atanf atan2 atan2f ceil ceilf copysign copysignf cos cosf exp expf fabs fabsf floor floorf trunc truncf fmod fmodf log logf log10 log10f lround lroundf pow powf round roundf scalbn scalbnf sin sinf sqrt sqrtf tan tanf)
|
||||||
@@ -698,8 +698,8 @@ dnl Check for various instruction support
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
AC_ARG_ENABLE(3dnow,
|
AC_ARG_ENABLE(3dnow,
|
||||||
[AS_HELP_STRING([--enable-3dnow], [use 3DNow! assembly routines [default=yes]])],
|
[AS_HELP_STRING([--enable-3dnow], [use 3DNow! assembly routines [default=no]])],
|
||||||
, enable_3dnow=yes)
|
, enable_3dnow=no)
|
||||||
if test x$enable_3dnow = xyes; then
|
if test x$enable_3dnow = xyes; then
|
||||||
save_CFLAGS="$CFLAGS"
|
save_CFLAGS="$CFLAGS"
|
||||||
have_gcc_3dnow=no
|
have_gcc_3dnow=no
|
||||||
@@ -938,38 +938,6 @@ fi
|
|||||||
AC_DEFINE(HAVE_LSXINTRIN_H, 1, [ ])
|
AC_DEFINE(HAVE_LSXINTRIN_H, 1, [ ])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_ARG_ENABLE(lasx,
|
|
||||||
[AS_HELP_STRING([--enable-lasx], [use LASX assembly routines [default=yes]])],
|
|
||||||
, enable_LASX=yes)
|
|
||||||
if test x$enable_LASX = xyes; then
|
|
||||||
save_CFLAGS="$CFLAGS"
|
|
||||||
have_gcc_lasx=no
|
|
||||||
AC_MSG_CHECKING(for GCC -mlasx option)
|
|
||||||
lasx_CFLAGS="-mlasx"
|
|
||||||
CFLAGS="$save_CFLAGS $lasx_CFLAGS"
|
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
#ifndef __loongarch_asx
|
|
||||||
#error Assembler CPP flag not enabled
|
|
||||||
#endif
|
|
||||||
]], [])], [have_gcc_lasx=yes], [])
|
|
||||||
AC_MSG_RESULT($have_gcc_lasx)
|
|
||||||
CFLAGS="$save_CFLAGS"
|
|
||||||
|
|
||||||
if test x$have_gcc_lasx = xyes; then
|
|
||||||
EXTRA_CFLAGS="$EXTRA_CFLAGS $lasx_CFLAGS"
|
|
||||||
SUMMARY_math="${SUMMARY_math} lasx"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for lasxintrin.h)
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <lasxintrin.h>]])],
|
|
||||||
[have_lasxintrin_h_hdr=yes],[have_lasxintrin_h_hdr=no])
|
|
||||||
AC_MSG_RESULT($have_lasxintrin_h_hdr)
|
|
||||||
if test x$have_lasxintrin_h_hdr = xyes; then
|
|
||||||
AC_DEFINE(HAVE_LASXINTRIN_H, 1, [ ])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl See if the OSS audio interface is supported
|
dnl See if the OSS audio interface is supported
|
||||||
CheckOSS()
|
CheckOSS()
|
||||||
{
|
{
|
||||||
@@ -1279,7 +1247,6 @@ CheckNAS()
|
|||||||
have_nas=yes
|
have_nas=yes
|
||||||
NAS_CFLAGS="-I/usr/X11R6/include/"
|
NAS_CFLAGS="-I/usr/X11R6/include/"
|
||||||
NAS_LIBS="-L/usr/X11R6/lib -laudio -lXt"
|
NAS_LIBS="-L/usr/X11R6/lib -laudio -lXt"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_MSG_RESULT($have_nas)
|
AC_MSG_RESULT($have_nas)
|
||||||
@@ -1880,18 +1847,27 @@ CheckNativeClient()
|
|||||||
CheckRPI()
|
CheckRPI()
|
||||||
{
|
{
|
||||||
AC_ARG_ENABLE(video-rpi,
|
AC_ARG_ENABLE(video-rpi,
|
||||||
[AS_HELP_STRING([--enable-video-rpi], [use Raspberry Pi 2/3 video driver [default=yes]])],
|
[AS_HELP_STRING([--enable-video-rpi], [use Raspberry Pi 0-3 video driver [default=yes]])],
|
||||||
, enable_video_rpi=yes)
|
, enable_video_rpi=yes)
|
||||||
if test x$enable_video = xyes -a x$enable_video_rpi = xyes; then
|
if test x$enable_video = xyes -a x$enable_video_rpi = xyes; then
|
||||||
PKG_CHECK_MODULES([RPI], [bcm_host brcmegl], video_rpi=yes, video_rpi=no)
|
PKG_CHECK_MODULES([RPI], [bcm_host], video_rpi=yes, video_rpi=no)
|
||||||
|
PKG_CHECK_MODULES([RPI_EGL], [brcmegl], video_rpi_egl=yes, video_rpi_egl=no)
|
||||||
|
|
||||||
if test x$video_rpi = xno; then
|
if test x$video_rpi = xno; then
|
||||||
if test x$ARCH = xnetbsd; then
|
if test x$ARCH = xnetbsd; then
|
||||||
RPI_CFLAGS="-I/usr/pkg/include -I/usr/pkg/include/interface/vcos/pthreads -I/usr/pkg/include/interface/vmcs_host/linux"
|
RPI_CFLAGS="-I/usr/pkg/include -I/usr/pkg/include/interface/vcos/pthreads -I/usr/pkg/include/interface/vmcs_host/linux"
|
||||||
RPI_LIBS="-Wl,-R/usr/pkg/lib -L/usr/pkg/lib -lbcm_host"
|
RPI_LIBS="-L/usr/pkg/lib -lbcm_host"
|
||||||
else
|
else
|
||||||
RPI_CFLAGS="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
|
RPI_CFLAGS="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
|
||||||
RPI_LIBS="-Wl,-rpath,/opt/vc/lib -L/opt/vc/lib -lbcm_host"
|
RPI_LIBS="-L/opt/vc/lib -lbcm_host"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$video_rpi_egl = xno; then
|
||||||
|
if test x$ARCH = xnetbsd; then
|
||||||
|
RPI_EGL_LIBS="-Wl,-R/usr/pkg/lib"
|
||||||
|
else
|
||||||
|
RPI_EGL_LIBS="-Wl,-rpath,/opt/vc/lib"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1899,15 +1875,13 @@ CheckRPI()
|
|||||||
ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
|
ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
|
||||||
|
|
||||||
# Add the Raspberry Pi compiler flags and libraries
|
# Add the Raspberry Pi compiler flags and libraries
|
||||||
CFLAGS="$CFLAGS $RPI_CFLAGS"; LIBS="$LIBS $RPI_LIBS"
|
CFLAGS="$CFLAGS $RPI_CFLAGS"; LIBS="$LIBS $RPI_EGL_LIBS $RPI_LIBS"
|
||||||
|
|
||||||
AC_MSG_CHECKING(for Raspberry Pi 2/3)
|
AC_MSG_CHECKING(for Raspberry Pi 0-3)
|
||||||
have_video_rpi=no
|
have_video_rpi=no
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||||
#include <bcm_host.h>
|
#include <bcm_host.h>
|
||||||
#include <EGL/eglplatform.h>
|
|
||||||
]], [[
|
]], [[
|
||||||
EGL_DISPMANX_WINDOW_T window;
|
|
||||||
bcm_host_init();
|
bcm_host_init();
|
||||||
]])], [have_video_rpi=yes],[])
|
]])], [have_video_rpi=yes],[])
|
||||||
AC_MSG_RESULT($have_video_rpi)
|
AC_MSG_RESULT($have_video_rpi)
|
||||||
@@ -1919,7 +1893,7 @@ CheckRPI()
|
|||||||
CFLAGS="$CFLAGS $RPI_CFLAGS"
|
CFLAGS="$CFLAGS $RPI_CFLAGS"
|
||||||
SDL_CFLAGS="$SDL_CFLAGS $RPI_CFLAGS"
|
SDL_CFLAGS="$SDL_CFLAGS $RPI_CFLAGS"
|
||||||
EXTRA_CFLAGS="$EXTRA_CFLAGS $RPI_CFLAGS"
|
EXTRA_CFLAGS="$EXTRA_CFLAGS $RPI_CFLAGS"
|
||||||
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $RPI_LIBS"
|
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $RPI_EGL_LIBS $RPI_LIBS"
|
||||||
SOURCES="$SOURCES $srcdir/src/video/raspberry/*.c"
|
SOURCES="$SOURCES $srcdir/src/video/raspberry/*.c"
|
||||||
AC_DEFINE(SDL_VIDEO_DRIVER_RPI, 1, [ ])
|
AC_DEFINE(SDL_VIDEO_DRIVER_RPI, 1, [ ])
|
||||||
SUMMARY_video="${SUMMARY_video} rpi"
|
SUMMARY_video="${SUMMARY_video} rpi"
|
||||||
@@ -2768,6 +2742,10 @@ CheckVulkan()
|
|||||||
#endif
|
#endif
|
||||||
]],[])], [],[enable_video_vulkan=no])
|
]],[])], [],[enable_video_vulkan=no])
|
||||||
;;
|
;;
|
||||||
|
*-*-solaris*)
|
||||||
|
dnl Strictly speaking, what's missing here is libxcb. Even without Vulkan support at the OS level, it should still compile if we had that.
|
||||||
|
enable_video_vulkan=no
|
||||||
|
;;
|
||||||
*-*-darwin*)
|
*-*-darwin*)
|
||||||
save_CFLAGS="$CFLAGS"
|
save_CFLAGS="$CFLAGS"
|
||||||
dnl Work around that we don't have Objective-C support in autoconf
|
dnl Work around that we don't have Objective-C support in autoconf
|
||||||
@@ -3375,17 +3353,14 @@ CheckDIRECTX()
|
|||||||
if test x$enable_directx = xyes; then
|
if test x$enable_directx = xyes; then
|
||||||
AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
|
AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
|
||||||
AC_CHECK_HEADER(d3d11_1.h, have_d3d11=yes)
|
AC_CHECK_HEADER(d3d11_1.h, have_d3d11=yes)
|
||||||
AC_MSG_CHECKING(for d3d12 Windows SDK version)
|
AC_MSG_CHECKING(for compatible d3d12 headers)
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||||
#include <winsdkver.h>
|
|
||||||
#include <sdkddkver.h>
|
|
||||||
#include <d3d12.h>
|
#include <d3d12.h>
|
||||||
|
#include <d3d12sdklayers.h>
|
||||||
ID3D12Device1 *device;
|
ID3D12Device1 *device;
|
||||||
#if WDK_NTDDI_VERSION <= 0x0A000008
|
|
||||||
asdf
|
|
||||||
#endif
|
|
||||||
]])], [have_d3d12=yes],[have_d3d12=no])
|
]])], [have_d3d12=yes],[have_d3d12=no])
|
||||||
AC_MSG_RESULT($have_d3d12)
|
AC_MSG_RESULT($have_d3d12)
|
||||||
|
|
||||||
AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
|
AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
|
||||||
AC_CHECK_HEADER(dsound.h, have_dsound=yes)
|
AC_CHECK_HEADER(dsound.h, have_dsound=yes)
|
||||||
AC_CHECK_HEADER(dinput.h, have_dinput=yes)
|
AC_CHECK_HEADER(dinput.h, have_dinput=yes)
|
||||||
@@ -3660,7 +3635,7 @@ CheckHIDAPI()
|
|||||||
|
|
||||||
if test x$hidapi_support = xyes; then
|
if test x$hidapi_support = xyes; then
|
||||||
if test x$have_libusb_h = xyes; then
|
if test x$have_libusb_h = xyes; then
|
||||||
AC_DEFINE(HAVE_LIBUSB)
|
AC_DEFINE(HAVE_LIBUSB, 1, [ ])
|
||||||
EXTRA_CFLAGS="$EXTRA_CFLAGS $LIBUSB_CFLAGS"
|
EXTRA_CFLAGS="$EXTRA_CFLAGS $LIBUSB_CFLAGS"
|
||||||
if test x$require_hidapi_libusb = xyes; then
|
if test x$require_hidapi_libusb = xyes; then
|
||||||
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LIBUSB_LIBS"
|
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LIBUSB_LIBS"
|
||||||
@@ -3893,10 +3868,14 @@ case "$host" in
|
|||||||
if test x$enable_audio = xyes; then
|
if test x$enable_audio = xyes; then
|
||||||
case $ARCH in
|
case $ARCH in
|
||||||
sysv5|solaris|hpux)
|
sysv5|solaris|hpux)
|
||||||
|
# Newer Solaris-based systems, like OpenIndiana, don't have this interface anymore. Check for the header first.
|
||||||
|
AC_CHECK_HEADER(sys/audioio.h, have_sys_audioio_h=yes, have_sys_audioio_h=no)
|
||||||
|
if test x$have_sys_audioio_h = xyes; then
|
||||||
AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO, 1, [ ])
|
AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO, 1, [ ])
|
||||||
SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
|
SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
|
||||||
SUMMARY_audio="${SUMMARY_audio} sun"
|
SUMMARY_audio="${SUMMARY_audio} sun"
|
||||||
have_audio=yes
|
have_audio=yes
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
netbsd) # Don't use this on OpenBSD, it's busted.
|
netbsd) # Don't use this on OpenBSD, it's busted.
|
||||||
AC_DEFINE(SDL_AUDIO_DRIVER_NETBSD, 1, [ ])
|
AC_DEFINE(SDL_AUDIO_DRIVER_NETBSD, 1, [ ])
|
||||||
|
@@ -257,7 +257,7 @@ Game Center
|
|||||||
|
|
||||||
Game Center integration might require that you break up your main loop in order to yield control back to the system. In other words, instead of running an endless main loop, you run each frame in a callback function, using:
|
Game Center integration might require that you break up your main loop in order to yield control back to the system. In other words, instead of running an endless main loop, you run each frame in a callback function, using:
|
||||||
|
|
||||||
int SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
|
int SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, SDL_iOSAnimationCallback callback, void *callbackParam);
|
||||||
|
|
||||||
This will set up the given function to be called back on the animation callback, and then you have to return from main() to let the Cocoa event loop run.
|
This will set up the given function to be called back on the animation callback, and then you have to return from main() to let the Cocoa event loop run.
|
||||||
|
|
||||||
|
@@ -261,10 +261,10 @@ Some things that may be of interest about how it all works...
|
|||||||
## Working directory
|
## Working directory
|
||||||
|
|
||||||
In SDL 1.2, the working directory of your SDL app is by default set to its
|
In SDL 1.2, the working directory of your SDL app is by default set to its
|
||||||
parent, but this is no longer the case in SDL 2.0. SDL2 does change the
|
parent, but this is no longer the case in SDL 2.0 and later. SDL2 does not
|
||||||
working directory, which means it'll be whatever the command line prompt
|
change the working directory, which means it'll be whatever the command line
|
||||||
that launched the program was using, or if launched by double-clicking in
|
prompt that launched the program was using, or if launched by double-clicking
|
||||||
the finger, it will be "/", the _root of the filesystem_. Plan accordingly!
|
in the Finder, it will be "/", the _root of the filesystem_. Plan accordingly!
|
||||||
You can use SDL_GetBasePath() to find where the program is running from and
|
You can use SDL_GetBasePath() to find where the program is running from and
|
||||||
chdir() there directly.
|
chdir() there directly.
|
||||||
|
|
||||||
|
@@ -29,7 +29,7 @@ cmake --install build
|
|||||||
|
|
||||||
|
|
||||||
## Compiling a HelloWorld
|
## Compiling a HelloWorld
|
||||||
[PSP Hello World](https://psp-dev.org/doku.php?id=tutorial:hello_world)
|
[PSP Hello World](https://pspdev.github.io/basic_programs.html#hello-world)
|
||||||
|
|
||||||
## To Do
|
## To Do
|
||||||
- PSP Screen Keyboard
|
- PSP Screen Keyboard
|
||||||
|
@@ -14,7 +14,6 @@ Works out of box.
|
|||||||
Windows:
|
Windows:
|
||||||
Unfortunately there is no windows support as of yet. Support for Windows 7 is planned, but we currently have no way to test. If you have a Windows 7 WM_TOUCH supported device, and are willing to help test please contact me at jim.tla+sdl_touch@gmail.com
|
Unfortunately there is no windows support as of yet. Support for Windows 7 is planned, but we currently have no way to test. If you have a Windows 7 WM_TOUCH supported device, and are willing to help test please contact me at jim.tla+sdl_touch@gmail.com
|
||||||
|
|
||||||
===========================================================================
|
|
||||||
Events
|
Events
|
||||||
===========================================================================
|
===========================================================================
|
||||||
SDL_FINGERDOWN:
|
SDL_FINGERDOWN:
|
||||||
@@ -39,7 +38,6 @@ Fields:
|
|||||||
Same as SDL_FINGERDOWN.
|
Same as SDL_FINGERDOWN.
|
||||||
|
|
||||||
|
|
||||||
===========================================================================
|
|
||||||
Functions
|
Functions
|
||||||
===========================================================================
|
===========================================================================
|
||||||
SDL provides the ability to access the underlying SDL_Finger structures.
|
SDL provides the ability to access the underlying SDL_Finger structures.
|
||||||
@@ -76,7 +74,6 @@ A SDL_Finger has the following fields:
|
|||||||
The pressure of the touch.
|
The pressure of the touch.
|
||||||
|
|
||||||
|
|
||||||
===========================================================================
|
|
||||||
Notes
|
Notes
|
||||||
===========================================================================
|
===========================================================================
|
||||||
For a complete example see test/testgesture.c
|
For a complete example see test/testgesture.c
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -25,7 +25,6 @@
|
|||||||
* Main include header for the SDL library
|
* Main include header for the SDL library
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef SDL_h_
|
#ifndef SDL_h_
|
||||||
#define SDL_h_
|
#define SDL_h_
|
||||||
|
|
||||||
@@ -70,6 +69,8 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* WIKI CATEGORY: Init */
|
||||||
|
|
||||||
/* As of version 0.5, SDL is loaded dynamically into the application */
|
/* As of version 0.5, SDL is loaded dynamically into the application */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -130,7 +131,7 @@ extern "C" {
|
|||||||
* call SDL_Quit() to force shutdown). If a subsystem is already loaded then
|
* call SDL_Quit() to force shutdown). If a subsystem is already loaded then
|
||||||
* this call will increase the ref-count and return.
|
* this call will increase the ref-count and return.
|
||||||
*
|
*
|
||||||
* \param flags subsystem initialization flags
|
* \param flags subsystem initialization flags.
|
||||||
* \returns 0 on success or a negative error code on failure; call
|
* \returns 0 on success or a negative error code on failure; call
|
||||||
* SDL_GetError() for more information.
|
* SDL_GetError() for more information.
|
||||||
*
|
*
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -61,6 +61,8 @@ assert can have unique static variables associated with it.
|
|||||||
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "brk #22\n\t" )
|
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "brk #22\n\t" )
|
||||||
#elif defined(__APPLE__) && defined(__arm__)
|
#elif defined(__APPLE__) && defined(__arm__)
|
||||||
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "bkpt #22\n\t" )
|
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "bkpt #22\n\t" )
|
||||||
|
#elif defined(_WIN32) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__arm64__) || defined(__aarch64__)) )
|
||||||
|
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "brk #0xF000\n\t" )
|
||||||
#elif defined(__386__) && defined(__WATCOMC__)
|
#elif defined(__386__) && defined(__WATCOMC__)
|
||||||
#define SDL_TriggerBreakpoint() { _asm { int 0x03 } }
|
#define SDL_TriggerBreakpoint() { _asm { int 0x03 } }
|
||||||
#elif defined(HAVE_SIGNAL_H) && !defined(__WATCOMC__)
|
#elif defined(HAVE_SIGNAL_H) && !defined(__WATCOMC__)
|
||||||
@@ -151,7 +153,7 @@ extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *,
|
|||||||
#define SDL_enabled_assert(condition) \
|
#define SDL_enabled_assert(condition) \
|
||||||
do { \
|
do { \
|
||||||
while ( !(condition) ) { \
|
while ( !(condition) ) { \
|
||||||
static struct SDL_AssertData sdl_assert_data = { 0, 0, #condition, 0, 0, 0, 0 }; \
|
static struct SDL_AssertData sdl_assert_data = { 0, 0, #condition, NULL, 0, NULL, NULL }; \
|
||||||
const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_FILE, SDL_LINE); \
|
const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_FILE, SDL_LINE); \
|
||||||
if (sdl_assert_state == SDL_ASSERTION_RETRY) { \
|
if (sdl_assert_state == SDL_ASSERTION_RETRY) { \
|
||||||
continue; /* go again. */ \
|
continue; /* go again. */ \
|
||||||
@@ -191,8 +193,8 @@ extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *,
|
|||||||
* A callback that fires when an SDL assertion fails.
|
* A callback that fires when an SDL assertion fails.
|
||||||
*
|
*
|
||||||
* \param data a pointer to the SDL_AssertData structure corresponding to the
|
* \param data a pointer to the SDL_AssertData structure corresponding to the
|
||||||
* current assertion
|
* current assertion.
|
||||||
* \param userdata what was passed as `userdata` to SDL_SetAssertionHandler()
|
* \param userdata what was passed as `userdata` to SDL_SetAssertionHandler().
|
||||||
* \returns an SDL_AssertState value indicating how to handle the failure.
|
* \returns an SDL_AssertState value indicating how to handle the failure.
|
||||||
*/
|
*/
|
||||||
typedef SDL_AssertState (SDLCALL *SDL_AssertionHandler)(
|
typedef SDL_AssertState (SDLCALL *SDL_AssertionHandler)(
|
||||||
@@ -212,8 +214,8 @@ typedef SDL_AssertState (SDLCALL *SDL_AssertionHandler)(
|
|||||||
* This callback is NOT reset to SDL's internal handler upon SDL_Quit()!
|
* This callback is NOT reset to SDL's internal handler upon SDL_Quit()!
|
||||||
*
|
*
|
||||||
* \param handler the SDL_AssertionHandler function to call when an assertion
|
* \param handler the SDL_AssertionHandler function to call when an assertion
|
||||||
* fails or NULL for the default handler
|
* fails or NULL for the default handler.
|
||||||
* \param userdata a pointer that is passed to `handler`
|
* \param userdata a pointer that is passed to `handler`.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*
|
*
|
||||||
@@ -254,7 +256,7 @@ extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetDefaultAssertionHandler(void
|
|||||||
* data, it is safe to pass a NULL pointer to this function to ignore it.
|
* data, it is safe to pass a NULL pointer to this function to ignore it.
|
||||||
*
|
*
|
||||||
* \param puserdata pointer which is filled with the "userdata" pointer that
|
* \param puserdata pointer which is filled with the "userdata" pointer that
|
||||||
* was passed to SDL_SetAssertionHandler()
|
* was passed to SDL_SetAssertionHandler().
|
||||||
* \returns the SDL_AssertionHandler that is called when an assert triggers.
|
* \returns the SDL_AssertionHandler that is called when an assert triggers.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.2.
|
* \since This function is available since SDL 2.0.2.
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -20,38 +20,29 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \file SDL_atomic.h
|
* # CategoryAtomic
|
||||||
*
|
*
|
||||||
* Atomic operations.
|
* Atomic operations.
|
||||||
*
|
*
|
||||||
* IMPORTANT:
|
* IMPORTANT: If you are not an expert in concurrent lockless programming, you
|
||||||
* If you are not an expert in concurrent lockless programming, you should
|
* should not be using any functions in this file. You should be protecting
|
||||||
* only be using the atomic lock and reference counting functions in this
|
* your data structures with full mutexes instead.
|
||||||
* file. In all other cases you should be protecting your data structures
|
|
||||||
* with full mutexes.
|
|
||||||
*
|
*
|
||||||
* The list of "safe" functions to use are:
|
* ***Seriously, here be dragons!***
|
||||||
* SDL_AtomicLock()
|
|
||||||
* SDL_AtomicUnlock()
|
|
||||||
* SDL_AtomicIncRef()
|
|
||||||
* SDL_AtomicDecRef()
|
|
||||||
*
|
*
|
||||||
* Seriously, here be dragons!
|
* You can find out a little more about lockless programming and the subtle
|
||||||
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
* issues that can arise here:
|
||||||
*
|
* https://learn.microsoft.com/en-us/windows/win32/dxtecharts/lockless-programming
|
||||||
* You can find out a little more about lockless programming and the
|
|
||||||
* subtle issues that can arise here:
|
|
||||||
* http://msdn.microsoft.com/en-us/library/ee418650%28v=vs.85%29.aspx
|
|
||||||
*
|
*
|
||||||
* There's also lots of good information here:
|
* There's also lots of good information here:
|
||||||
* http://www.1024cores.net/home/lock-free-algorithms
|
|
||||||
* http://preshing.com/
|
|
||||||
*
|
*
|
||||||
* These operations may or may not actually be implemented using
|
* - https://www.1024cores.net/home/lock-free-algorithms
|
||||||
* processor specific atomic operations. When possible they are
|
* - https://preshing.com/
|
||||||
* implemented as true processor specific atomic operations. When that
|
*
|
||||||
* is not possible the are implemented using locks that *do* use the
|
* These operations may or may not actually be implemented using processor
|
||||||
* available atomic operations.
|
* specific atomic operations. When possible they are implemented as true
|
||||||
|
* processor specific atomic operations. When that is not possible the are
|
||||||
|
* implemented using locks that *do* use the available atomic operations.
|
||||||
*
|
*
|
||||||
* All of the atomic operations that modify memory are full memory barriers.
|
* All of the atomic operations that modify memory are full memory barriers.
|
||||||
*/
|
*/
|
||||||
@@ -94,7 +85,7 @@ typedef int SDL_SpinLock;
|
|||||||
* ***Please note that spinlocks are dangerous if you don't know what you're
|
* ***Please note that spinlocks are dangerous if you don't know what you're
|
||||||
* doing. Please be careful using any sort of spinlock!***
|
* doing. Please be careful using any sort of spinlock!***
|
||||||
*
|
*
|
||||||
* \param lock a pointer to a lock variable
|
* \param lock a pointer to a lock variable.
|
||||||
* \returns SDL_TRUE if the lock succeeded, SDL_FALSE if the lock is already
|
* \returns SDL_TRUE if the lock succeeded, SDL_FALSE if the lock is already
|
||||||
* held.
|
* held.
|
||||||
*
|
*
|
||||||
@@ -111,7 +102,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_AtomicTryLock(SDL_SpinLock *lock);
|
|||||||
* ***Please note that spinlocks are dangerous if you don't know what you're
|
* ***Please note that spinlocks are dangerous if you don't know what you're
|
||||||
* doing. Please be careful using any sort of spinlock!***
|
* doing. Please be careful using any sort of spinlock!***
|
||||||
*
|
*
|
||||||
* \param lock a pointer to a lock variable
|
* \param lock a pointer to a lock variable.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*
|
*
|
||||||
@@ -128,7 +119,7 @@ extern DECLSPEC void SDLCALL SDL_AtomicLock(SDL_SpinLock *lock);
|
|||||||
* ***Please note that spinlocks are dangerous if you don't know what you're
|
* ***Please note that spinlocks are dangerous if you don't know what you're
|
||||||
* doing. Please be careful using any sort of spinlock!***
|
* doing. Please be careful using any sort of spinlock!***
|
||||||
*
|
*
|
||||||
* \param lock a pointer to a lock variable
|
* \param lock a pointer to a lock variable.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*
|
*
|
||||||
@@ -257,10 +248,13 @@ typedef void (*SDL_KernelMemoryBarrierFunc)();
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief A type representing an atomic integer value. It is a struct
|
* A type representing an atomic integer value.
|
||||||
* so people don't accidentally use numeric operations on it.
|
*
|
||||||
|
* It is a struct so people don't accidentally use numeric operations on it.
|
||||||
*/
|
*/
|
||||||
typedef struct { int value; } SDL_atomic_t;
|
typedef struct SDL_atomic_t {
|
||||||
|
int value;
|
||||||
|
} SDL_atomic_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set an atomic variable to a new value if it is currently an old value.
|
* Set an atomic variable to a new value if it is currently an old value.
|
||||||
@@ -268,9 +262,9 @@ typedef struct { int value; } SDL_atomic_t;
|
|||||||
* ***Note: If you don't know what this function is for, you shouldn't use
|
* ***Note: If you don't know what this function is for, you shouldn't use
|
||||||
* it!***
|
* it!***
|
||||||
*
|
*
|
||||||
* \param a a pointer to an SDL_atomic_t variable to be modified
|
* \param a a pointer to an SDL_atomic_t variable to be modified.
|
||||||
* \param oldval the old value
|
* \param oldval the old value.
|
||||||
* \param newval the new value
|
* \param newval the new value.
|
||||||
* \returns SDL_TRUE if the atomic variable was set, SDL_FALSE otherwise.
|
* \returns SDL_TRUE if the atomic variable was set, SDL_FALSE otherwise.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
@@ -289,8 +283,8 @@ extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCAS(SDL_atomic_t *a, int oldval, int
|
|||||||
* ***Note: If you don't know what this function is for, you shouldn't use
|
* ***Note: If you don't know what this function is for, you shouldn't use
|
||||||
* it!***
|
* it!***
|
||||||
*
|
*
|
||||||
* \param a a pointer to an SDL_atomic_t variable to be modified
|
* \param a a pointer to an SDL_atomic_t variable to be modified.
|
||||||
* \param v the desired value
|
* \param v the desired value.
|
||||||
* \returns the previous value of the atomic variable.
|
* \returns the previous value of the atomic variable.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.2.
|
* \since This function is available since SDL 2.0.2.
|
||||||
@@ -305,7 +299,7 @@ extern DECLSPEC int SDLCALL SDL_AtomicSet(SDL_atomic_t *a, int v);
|
|||||||
* ***Note: If you don't know what this function is for, you shouldn't use
|
* ***Note: If you don't know what this function is for, you shouldn't use
|
||||||
* it!***
|
* it!***
|
||||||
*
|
*
|
||||||
* \param a a pointer to an SDL_atomic_t variable
|
* \param a a pointer to an SDL_atomic_t variable.
|
||||||
* \returns the current value of an atomic variable.
|
* \returns the current value of an atomic variable.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.2.
|
* \since This function is available since SDL 2.0.2.
|
||||||
@@ -322,8 +316,8 @@ extern DECLSPEC int SDLCALL SDL_AtomicGet(SDL_atomic_t *a);
|
|||||||
* ***Note: If you don't know what this function is for, you shouldn't use
|
* ***Note: If you don't know what this function is for, you shouldn't use
|
||||||
* it!***
|
* it!***
|
||||||
*
|
*
|
||||||
* \param a a pointer to an SDL_atomic_t variable to be modified
|
* \param a a pointer to an SDL_atomic_t variable to be modified.
|
||||||
* \param v the desired value to add
|
* \param v the desired value to add.
|
||||||
* \returns the previous value of the atomic variable.
|
* \returns the previous value of the atomic variable.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.2.
|
* \since This function is available since SDL 2.0.2.
|
||||||
@@ -356,9 +350,9 @@ extern DECLSPEC int SDLCALL SDL_AtomicAdd(SDL_atomic_t *a, int v);
|
|||||||
* ***Note: If you don't know what this function is for, you shouldn't use
|
* ***Note: If you don't know what this function is for, you shouldn't use
|
||||||
* it!***
|
* it!***
|
||||||
*
|
*
|
||||||
* \param a a pointer to a pointer
|
* \param a a pointer to a pointer.
|
||||||
* \param oldval the old pointer value
|
* \param oldval the old pointer value.
|
||||||
* \param newval the new pointer value
|
* \param newval the new pointer value.
|
||||||
* \returns SDL_TRUE if the pointer was set, SDL_FALSE otherwise.
|
* \returns SDL_TRUE if the pointer was set, SDL_FALSE otherwise.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
@@ -375,8 +369,8 @@ extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCASPtr(void **a, void *oldval, void *
|
|||||||
* ***Note: If you don't know what this function is for, you shouldn't use
|
* ***Note: If you don't know what this function is for, you shouldn't use
|
||||||
* it!***
|
* it!***
|
||||||
*
|
*
|
||||||
* \param a a pointer to a pointer
|
* \param a a pointer to a pointer.
|
||||||
* \param v the desired pointer value
|
* \param v the desired pointer value.
|
||||||
* \returns the previous value of the pointer.
|
* \returns the previous value of the pointer.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.2.
|
* \since This function is available since SDL 2.0.2.
|
||||||
@@ -392,7 +386,7 @@ extern DECLSPEC void* SDLCALL SDL_AtomicSetPtr(void **a, void* v);
|
|||||||
* ***Note: If you don't know what this function is for, you shouldn't use
|
* ***Note: If you don't know what this function is for, you shouldn't use
|
||||||
* it!***
|
* it!***
|
||||||
*
|
*
|
||||||
* \param a a pointer to a pointer
|
* \param a a pointer to a pointer.
|
||||||
* \returns the current value of a pointer.
|
* \returns the current value of a pointer.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.2.
|
* \since This function is available since SDL 2.0.2.
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
/* !!! FIXME: several functions in here need Doxygen comments. */
|
/* !!! FIXME: several functions in here need Doxygen comments. */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \file SDL_audio.h
|
* # CategoryAudio
|
||||||
*
|
*
|
||||||
* Access to the raw audio mixing buffer for the SDL library.
|
* Access to the raw audio mixing buffer for the SDL library.
|
||||||
*/
|
*/
|
||||||
@@ -44,22 +44,22 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Audio format flags.
|
* Audio format flags.
|
||||||
*
|
*
|
||||||
* These are what the 16 bits in SDL_AudioFormat currently mean...
|
* These are what the 16 bits in SDL_AudioFormat currently mean...
|
||||||
* (Unspecified bits are always zero).
|
* (Unspecified bits are always zero).
|
||||||
*
|
*
|
||||||
* \verbatim
|
* ```
|
||||||
++-----------------------sample is signed if set
|
* ++-----------------------sample is signed if set
|
||||||
||
|
* ||
|
||||||
|| ++-----------sample is bigendian if set
|
* || ++-----------sample is bigendian if set
|
||||||
|| ||
|
* || ||
|
||||||
|| || ++---sample is float if set
|
* || || ++---sample is float if set
|
||||||
|| || ||
|
* || || ||
|
||||||
|| || || +---sample bit size---+
|
* || || || +---sample bit size---+
|
||||||
|| || || | |
|
* || || || | |
|
||||||
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
|
* 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
|
||||||
\endverbatim
|
* ```
|
||||||
*
|
*
|
||||||
* There are macros in SDL 2.0 and later to query these bits.
|
* There are macros in SDL 2.0 and later to query these bits.
|
||||||
*/
|
*/
|
||||||
@@ -151,16 +151,10 @@ typedef Uint16 SDL_AudioFormat;
|
|||||||
/**
|
/**
|
||||||
* This function is called when the audio device needs more data.
|
* This function is called when the audio device needs more data.
|
||||||
*
|
*
|
||||||
* \param userdata An application-specific parameter saved in
|
* \param userdata An application-specific parameter saved in the
|
||||||
* the SDL_AudioSpec structure
|
* SDL_AudioSpec structure.
|
||||||
* \param stream A pointer to the audio data buffer.
|
* \param stream A pointer to the audio data buffer.
|
||||||
* \param len The length of that buffer in bytes.
|
* \param len Length of **stream** in bytes.
|
||||||
*
|
|
||||||
* Once the callback returns, the buffer will no longer be valid.
|
|
||||||
* Stereo samples are stored in a LRLRLR ordering.
|
|
||||||
*
|
|
||||||
* You can choose to avoid callbacks and use SDL_QueueAudio() instead, if
|
|
||||||
* you like. Just open your audio device with a NULL callback.
|
|
||||||
*/
|
*/
|
||||||
typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream,
|
typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream,
|
||||||
int len);
|
int len);
|
||||||
@@ -169,6 +163,8 @@ typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream,
|
|||||||
* The calculated values in this structure are calculated by SDL_OpenAudio().
|
* The calculated values in this structure are calculated by SDL_OpenAudio().
|
||||||
*
|
*
|
||||||
* For multi-channel audio, the default SDL channel mapping is:
|
* For multi-channel audio, the default SDL channel mapping is:
|
||||||
|
*
|
||||||
|
* ```
|
||||||
* 2: FL FR (stereo)
|
* 2: FL FR (stereo)
|
||||||
* 3: FL FR LFE (2.1 surround)
|
* 3: FL FR LFE (2.1 surround)
|
||||||
* 4: FL FR BL BR (quad)
|
* 4: FL FR BL BR (quad)
|
||||||
@@ -176,6 +172,7 @@ typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream,
|
|||||||
* 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR)
|
* 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR)
|
||||||
* 7: FL FR FC LFE BC SL SR (6.1 surround)
|
* 7: FL FR FC LFE BC SL SR (6.1 surround)
|
||||||
* 8: FL FR FC LFE BL BR SL SR (7.1 surround)
|
* 8: FL FR FC LFE BL BR SL SR (7.1 surround)
|
||||||
|
* ```
|
||||||
*/
|
*/
|
||||||
typedef struct SDL_AudioSpec
|
typedef struct SDL_AudioSpec
|
||||||
{
|
{
|
||||||
@@ -196,11 +193,11 @@ typedef void (SDLCALL * SDL_AudioFilter) (struct SDL_AudioCVT * cvt,
|
|||||||
SDL_AudioFormat format);
|
SDL_AudioFormat format);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Upper limit of filters in SDL_AudioCVT
|
* Upper limit of filters in SDL_AudioCVT
|
||||||
*
|
*
|
||||||
* The maximum number of SDL_AudioFilter functions in SDL_AudioCVT is
|
* The maximum number of SDL_AudioFilter functions in SDL_AudioCVT is
|
||||||
* currently limited to 9. The SDL_AudioCVT.filters array has 10 pointers,
|
* currently limited to 9. The SDL_AudioCVT.filters array has 10 pointers, one
|
||||||
* one of which is the terminating NULL pointer.
|
* of which is the terminating NULL pointer.
|
||||||
*/
|
*/
|
||||||
#define SDL_AUDIOCVT_MAX_FILTERS 9
|
#define SDL_AUDIOCVT_MAX_FILTERS 9
|
||||||
|
|
||||||
@@ -287,7 +284,7 @@ extern DECLSPEC int SDLCALL SDL_GetNumAudioDrivers(void);
|
|||||||
* meant to be proper names.
|
* meant to be proper names.
|
||||||
*
|
*
|
||||||
* \param index the index of the audio driver; the value ranges from 0 to
|
* \param index the index of the audio driver; the value ranges from 0 to
|
||||||
* SDL_GetNumAudioDrivers() - 1
|
* SDL_GetNumAudioDrivers() - 1.
|
||||||
* \returns the name of the audio driver at the requested index, or NULL if an
|
* \returns the name of the audio driver at the requested index, or NULL if an
|
||||||
* invalid index was specified.
|
* invalid index was specified.
|
||||||
*
|
*
|
||||||
@@ -314,7 +311,7 @@ extern DECLSPEC const char *SDLCALL SDL_GetAudioDriver(int index);
|
|||||||
* specific need to designate the audio driver you want to use. You should
|
* specific need to designate the audio driver you want to use. You should
|
||||||
* normally use SDL_Init() or SDL_InitSubSystem().
|
* normally use SDL_Init() or SDL_InitSubSystem().
|
||||||
*
|
*
|
||||||
* \param driver_name the name of the desired audio driver
|
* \param driver_name the name of the desired audio driver.
|
||||||
* \returns 0 on success or a negative error code on failure; call
|
* \returns 0 on success or a negative error code on failure; call
|
||||||
* SDL_GetError() for more information.
|
* SDL_GetError() for more information.
|
||||||
*
|
*
|
||||||
@@ -410,11 +407,11 @@ extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec * desired,
|
|||||||
/**
|
/**
|
||||||
* SDL Audio Device IDs.
|
* SDL Audio Device IDs.
|
||||||
*
|
*
|
||||||
* A successful call to SDL_OpenAudio() is always device id 1, and legacy
|
* A successful call to SDL_OpenAudio() is always device id 1, and legacy SDL
|
||||||
* SDL audio APIs assume you want this device ID. SDL_OpenAudioDevice() calls
|
* audio APIs assume you want this device ID. SDL_OpenAudioDevice() calls
|
||||||
* always returns devices >= 2 on success. The legacy calls are good both
|
* always returns devices >= 2 on success. The legacy calls are good both for
|
||||||
* for backwards compatibility and when you don't care about multiple,
|
* backwards compatibility and when you don't care about multiple, specific,
|
||||||
* specific, or capture devices.
|
* or capture devices.
|
||||||
*/
|
*/
|
||||||
typedef Uint32 SDL_AudioDeviceID;
|
typedef Uint32 SDL_AudioDeviceID;
|
||||||
|
|
||||||
@@ -452,7 +449,7 @@ typedef Uint32 SDL_AudioDeviceID;
|
|||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* \param iscapture zero to request playback devices, non-zero to request
|
* \param iscapture zero to request playback devices, non-zero to request
|
||||||
* recording devices
|
* recording devices.
|
||||||
* \returns the number of available devices exposed by the current driver or
|
* \returns the number of available devices exposed by the current driver or
|
||||||
* -1 if an explicit list of devices can't be determined. A return
|
* -1 if an explicit list of devices can't be determined. A return
|
||||||
* value of -1 does not necessarily mean an error condition.
|
* value of -1 does not necessarily mean an error condition.
|
||||||
@@ -478,7 +475,7 @@ extern DECLSPEC int SDLCALL SDL_GetNumAudioDevices(int iscapture);
|
|||||||
* invalid next time any of several other SDL functions are called.
|
* invalid next time any of several other SDL functions are called.
|
||||||
*
|
*
|
||||||
* \param index the index of the audio device; valid values range from 0 to
|
* \param index the index of the audio device; valid values range from 0 to
|
||||||
* SDL_GetNumAudioDevices() - 1
|
* SDL_GetNumAudioDevices() - 1.
|
||||||
* \param iscapture non-zero to query the list of recording devices, zero to
|
* \param iscapture non-zero to query the list of recording devices, zero to
|
||||||
* query the list of output devices.
|
* query the list of output devices.
|
||||||
* \returns the name of the audio device at the requested index, or NULL on
|
* \returns the name of the audio device at the requested index, or NULL on
|
||||||
@@ -504,11 +501,11 @@ extern DECLSPEC const char *SDLCALL SDL_GetAudioDeviceName(int index,
|
|||||||
* count.
|
* count.
|
||||||
*
|
*
|
||||||
* \param index the index of the audio device; valid values range from 0 to
|
* \param index the index of the audio device; valid values range from 0 to
|
||||||
* SDL_GetNumAudioDevices() - 1
|
* SDL_GetNumAudioDevices() - 1.
|
||||||
* \param iscapture non-zero to query the list of recording devices, zero to
|
* \param iscapture non-zero to query the list of recording devices, zero to
|
||||||
* query the list of output devices.
|
* query the list of output devices.
|
||||||
* \param spec The SDL_AudioSpec to be initialized by this function.
|
* \param spec The SDL_AudioSpec to be initialized by this function.
|
||||||
* \returns 0 on success, nonzero on error
|
* \returns 0 on success, nonzero on error.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.16.
|
* \since This function is available since SDL 2.0.16.
|
||||||
*
|
*
|
||||||
@@ -542,7 +539,7 @@ extern DECLSPEC int SDLCALL SDL_GetAudioDeviceSpec(int index,
|
|||||||
* \param spec The SDL_AudioSpec to be initialized by this function.
|
* \param spec The SDL_AudioSpec to be initialized by this function.
|
||||||
* \param iscapture non-zero to query the default recording device, zero to
|
* \param iscapture non-zero to query the default recording device, zero to
|
||||||
* query the default output device.
|
* query the default output device.
|
||||||
* \returns 0 on success, nonzero on error
|
* \returns 0 on success, nonzero on error.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.24.0.
|
* \since This function is available since SDL 2.24.0.
|
||||||
*
|
*
|
||||||
@@ -594,7 +591,7 @@ extern DECLSPEC int SDLCALL SDL_GetDefaultAudioInfo(char **name,
|
|||||||
* frames_ (with stereo output, two samples--left and right--would make a
|
* frames_ (with stereo output, two samples--left and right--would make a
|
||||||
* single sample frame). This number should be a power of two, and may be
|
* single sample frame). This number should be a power of two, and may be
|
||||||
* adjusted by the audio driver to a value more suitable for the hardware.
|
* adjusted by the audio driver to a value more suitable for the hardware.
|
||||||
* Good values seem to range between 512 and 8096 inclusive, depending on
|
* Good values seem to range between 512 and 4096 inclusive, depending on
|
||||||
* the application and CPU speed. Smaller values reduce latency, but can
|
* the application and CPU speed. Smaller values reduce latency, but can
|
||||||
* lead to underflow if the application is doing heavy processing and cannot
|
* lead to underflow if the application is doing heavy processing and cannot
|
||||||
* fill the audio buffer in time. Note that the number of sample frames is
|
* fill the audio buffer in time. Note that the number of sample frames is
|
||||||
@@ -645,13 +642,13 @@ extern DECLSPEC int SDLCALL SDL_GetDefaultAudioInfo(char **name,
|
|||||||
* driver-specific name as appropriate. NULL requests the most
|
* driver-specific name as appropriate. NULL requests the most
|
||||||
* reasonable default device.
|
* reasonable default device.
|
||||||
* \param iscapture non-zero to specify a device should be opened for
|
* \param iscapture non-zero to specify a device should be opened for
|
||||||
* recording, not playback
|
* recording, not playback.
|
||||||
* \param desired an SDL_AudioSpec structure representing the desired output
|
* \param desired an SDL_AudioSpec structure representing the desired output
|
||||||
* format; see SDL_OpenAudio() for more information
|
* format; see SDL_OpenAudio() for more information.
|
||||||
* \param obtained an SDL_AudioSpec structure filled in with the actual output
|
* \param obtained an SDL_AudioSpec structure filled in with the actual output
|
||||||
* format; see SDL_OpenAudio() for more information
|
* format; see SDL_OpenAudio() for more information.
|
||||||
* \param allowed_changes 0, or one or more flags OR'd together
|
* \param allowed_changes 0, or one or more flags OR'd together.
|
||||||
* \returns a valid device ID that is > 0 on success or 0 on failure; call
|
* \returns a valid device ID > 0 on success or 0 on failure; call
|
||||||
* SDL_GetError() for more information.
|
* SDL_GetError() for more information.
|
||||||
*
|
*
|
||||||
* For compatibility with SDL 1.2, this will never return 1, since
|
* For compatibility with SDL 1.2, this will never return 1, since
|
||||||
@@ -712,7 +709,7 @@ extern DECLSPEC SDL_AudioStatus SDLCALL SDL_GetAudioStatus(void);
|
|||||||
* Use this function to get the current audio state of an audio device.
|
* Use this function to get the current audio state of an audio device.
|
||||||
*
|
*
|
||||||
* \param dev the ID of an audio device previously opened with
|
* \param dev the ID of an audio device previously opened with
|
||||||
* SDL_OpenAudioDevice()
|
* SDL_OpenAudioDevice().
|
||||||
* \returns the SDL_AudioStatus of the specified audio device.
|
* \returns the SDL_AudioStatus of the specified audio device.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
@@ -745,7 +742,7 @@ extern DECLSPEC SDL_AudioStatus SDLCALL SDL_GetAudioDeviceStatus(SDL_AudioDevice
|
|||||||
*
|
*
|
||||||
* ...and is only useful if you used the legacy SDL_OpenAudio() function.
|
* ...and is only useful if you used the legacy SDL_OpenAudio() function.
|
||||||
*
|
*
|
||||||
* \param pause_on non-zero to pause, 0 to unpause
|
* \param pause_on non-zero to pause, 0 to unpause.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*
|
*
|
||||||
@@ -775,8 +772,8 @@ extern DECLSPEC void SDLCALL SDL_PauseAudio(int pause_on);
|
|||||||
* callback, you shouldn't pause the audio device, as it will lead to dropouts
|
* callback, you shouldn't pause the audio device, as it will lead to dropouts
|
||||||
* in the audio playback. Instead, you should use SDL_LockAudioDevice().
|
* in the audio playback. Instead, you should use SDL_LockAudioDevice().
|
||||||
*
|
*
|
||||||
* \param dev a device opened by SDL_OpenAudioDevice()
|
* \param dev a device opened by SDL_OpenAudioDevice().
|
||||||
* \param pause_on non-zero to pause, 0 to unpause
|
* \param pause_on non-zero to pause, 0 to unpause.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*
|
*
|
||||||
@@ -841,14 +838,14 @@ extern DECLSPEC void SDLCALL SDL_PauseAudioDevice(SDL_AudioDeviceID dev,
|
|||||||
* SDL_LoadWAV("sample.wav", &spec, &buf, &len);
|
* SDL_LoadWAV("sample.wav", &spec, &buf, &len);
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* \param src The data source for the WAVE data
|
* \param src The data source for the WAVE data.
|
||||||
* \param freesrc If non-zero, SDL will _always_ free the data source
|
* \param freesrc If non-zero, SDL will _always_ free the data source.
|
||||||
* \param spec An SDL_AudioSpec that will be filled in with the wave file's
|
* \param spec An SDL_AudioSpec that will be filled in with the wave file's
|
||||||
* format details
|
* format details.
|
||||||
* \param audio_buf A pointer filled with the audio data, allocated by the
|
* \param audio_buf A pointer filled with the audio data, allocated by the
|
||||||
* function.
|
* function.
|
||||||
* \param audio_len A pointer filled with the length of the audio data buffer
|
* \param audio_len A pointer filled with the length of the audio data buffer
|
||||||
* in bytes
|
* in bytes.
|
||||||
* \returns This function, if successfully called, returns `spec`, which will
|
* \returns This function, if successfully called, returns `spec`, which will
|
||||||
* be filled with the audio data format of the wave source data.
|
* be filled with the audio data format of the wave source data.
|
||||||
* `audio_buf` will be filled with a pointer to an allocated buffer
|
* `audio_buf` will be filled with a pointer to an allocated buffer
|
||||||
@@ -875,6 +872,7 @@ extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads a WAV from a file.
|
* Loads a WAV from a file.
|
||||||
|
*
|
||||||
* Compatibility convenience function.
|
* Compatibility convenience function.
|
||||||
*/
|
*/
|
||||||
#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \
|
#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \
|
||||||
@@ -888,7 +886,7 @@ extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src,
|
|||||||
* this function with a NULL pointer.
|
* this function with a NULL pointer.
|
||||||
*
|
*
|
||||||
* \param audio_buf a pointer to the buffer created by SDL_LoadWAV() or
|
* \param audio_buf a pointer to the buffer created by SDL_LoadWAV() or
|
||||||
* SDL_LoadWAV_RW()
|
* SDL_LoadWAV_RW().
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*
|
*
|
||||||
@@ -912,15 +910,16 @@ extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf);
|
|||||||
* and then can call SDL_ConvertAudio() to complete the conversion.
|
* and then can call SDL_ConvertAudio() to complete the conversion.
|
||||||
*
|
*
|
||||||
* \param cvt an SDL_AudioCVT structure filled in with audio conversion
|
* \param cvt an SDL_AudioCVT structure filled in with audio conversion
|
||||||
* information
|
* information.
|
||||||
* \param src_format the source format of the audio data; for more info see
|
* \param src_format the source format of the audio data; for more info see
|
||||||
* SDL_AudioFormat
|
* SDL_AudioFormat.
|
||||||
* \param src_channels the number of channels in the source
|
* \param src_channels the number of channels in the source.
|
||||||
* \param src_rate the frequency (sample-frames-per-second) of the source
|
* \param src_rate the frequency (sample-frames-per-second) of the source.
|
||||||
* \param dst_format the destination format of the audio data; for more info
|
* \param dst_format the destination format of the audio data; for more info
|
||||||
* see SDL_AudioFormat
|
* see SDL_AudioFormat.
|
||||||
* \param dst_channels the number of channels in the destination
|
* \param dst_channels the number of channels in the destination.
|
||||||
* \param dst_rate the frequency (sample-frames-per-second) of the destination
|
* \param dst_rate the frequency (sample-frames-per-second) of the
|
||||||
|
* destination.
|
||||||
* \returns 1 if the audio filter is prepared, 0 if no conversion is needed,
|
* \returns 1 if the audio filter is prepared, 0 if no conversion is needed,
|
||||||
* or a negative error code on failure; call SDL_GetError() for more
|
* or a negative error code on failure; call SDL_GetError() for more
|
||||||
* information.
|
* information.
|
||||||
@@ -991,12 +990,12 @@ typedef struct _SDL_AudioStream SDL_AudioStream;
|
|||||||
/**
|
/**
|
||||||
* Create a new audio stream.
|
* Create a new audio stream.
|
||||||
*
|
*
|
||||||
* \param src_format The format of the source audio
|
* \param src_format The format of the source audio.
|
||||||
* \param src_channels The number of channels of the source audio
|
* \param src_channels The number of channels of the source audio.
|
||||||
* \param src_rate The sampling rate of the source audio
|
* \param src_rate The sampling rate of the source audio.
|
||||||
* \param dst_format The format of the desired audio output
|
* \param dst_format The format of the desired audio output.
|
||||||
* \param dst_channels The number of channels of the desired audio output
|
* \param dst_channels The number of channels of the desired audio output.
|
||||||
* \param dst_rate The sampling rate of the desired audio output
|
* \param dst_rate The sampling rate of the desired audio output.
|
||||||
* \returns 0 on success, or -1 on error.
|
* \returns 0 on success, or -1 on error.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.7.
|
* \since This function is available since SDL 2.0.7.
|
||||||
@@ -1018,9 +1017,9 @@ extern DECLSPEC SDL_AudioStream * SDLCALL SDL_NewAudioStream(const SDL_AudioForm
|
|||||||
/**
|
/**
|
||||||
* Add data to be converted/resampled to the stream.
|
* Add data to be converted/resampled to the stream.
|
||||||
*
|
*
|
||||||
* \param stream The stream the audio data is being added to
|
* \param stream The stream the audio data is being added to.
|
||||||
* \param buf A pointer to the audio data to add
|
* \param buf A pointer to the audio data to add.
|
||||||
* \param len The number of bytes to write to the stream
|
* \param len The number of bytes to write to the stream.
|
||||||
* \returns 0 on success, or -1 on error.
|
* \returns 0 on success, or -1 on error.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.7.
|
* \since This function is available since SDL 2.0.7.
|
||||||
@@ -1037,10 +1036,10 @@ extern DECLSPEC int SDLCALL SDL_AudioStreamPut(SDL_AudioStream *stream, const vo
|
|||||||
/**
|
/**
|
||||||
* Get converted/resampled data from the stream
|
* Get converted/resampled data from the stream
|
||||||
*
|
*
|
||||||
* \param stream The stream the audio is being requested from
|
* \param stream The stream the audio is being requested from.
|
||||||
* \param buf A buffer to fill with audio data
|
* \param buf A buffer to fill with audio data.
|
||||||
* \param len The maximum number of bytes to fill
|
* \param len The maximum number of bytes to fill.
|
||||||
* \returns the number of bytes read from the stream, or -1 on error
|
* \returns the number of bytes read from the stream, or -1 on error.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.7.
|
* \since This function is available since SDL 2.0.7.
|
||||||
*
|
*
|
||||||
@@ -1118,6 +1117,9 @@ extern DECLSPEC void SDLCALL SDL_AudioStreamClear(SDL_AudioStream *stream);
|
|||||||
*/
|
*/
|
||||||
extern DECLSPEC void SDLCALL SDL_FreeAudioStream(SDL_AudioStream *stream);
|
extern DECLSPEC void SDLCALL SDL_FreeAudioStream(SDL_AudioStream *stream);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum volume allowed in calls to SDL_MixAudio and SDL_MixAudioFormat.
|
||||||
|
*/
|
||||||
#define SDL_MIX_MAXVOLUME 128
|
#define SDL_MIX_MAXVOLUME 128
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1132,11 +1134,11 @@ extern DECLSPEC void SDLCALL SDL_FreeAudioStream(SDL_AudioStream *stream);
|
|||||||
* ...where `format` is the obtained format of the audio device from the
|
* ...where `format` is the obtained format of the audio device from the
|
||||||
* legacy SDL_OpenAudio() function.
|
* legacy SDL_OpenAudio() function.
|
||||||
*
|
*
|
||||||
* \param dst the destination for the mixed audio
|
* \param dst the destination for the mixed audio.
|
||||||
* \param src the source audio buffer to be mixed
|
* \param src the source audio buffer to be mixed.
|
||||||
* \param len the length of the audio buffer in bytes
|
* \param len the length of the audio buffer in bytes.
|
||||||
* \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME
|
* \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME
|
||||||
* for full audio volume
|
* for full audio volume.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*
|
*
|
||||||
@@ -1165,13 +1167,13 @@ extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 * dst, const Uint8 * src,
|
|||||||
* SDL_MixAudioFormat() is really only needed when you're mixing a single
|
* SDL_MixAudioFormat() is really only needed when you're mixing a single
|
||||||
* audio stream with a volume adjustment.
|
* audio stream with a volume adjustment.
|
||||||
*
|
*
|
||||||
* \param dst the destination for the mixed audio
|
* \param dst the destination for the mixed audio.
|
||||||
* \param src the source audio buffer to be mixed
|
* \param src the source audio buffer to be mixed.
|
||||||
* \param format the SDL_AudioFormat structure representing the desired audio
|
* \param format the SDL_AudioFormat structure representing the desired audio
|
||||||
* format
|
* format.
|
||||||
* \param len the length of the audio buffer in bytes
|
* \param len the length of the audio buffer in bytes.
|
||||||
* \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME
|
* \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME
|
||||||
* for full audio volume
|
* for full audio volume.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*/
|
*/
|
||||||
@@ -1215,9 +1217,9 @@ extern DECLSPEC void SDLCALL SDL_MixAudioFormat(Uint8 * dst,
|
|||||||
* from planar audio formats into a non-planar one (see SDL_AudioFormat)
|
* from planar audio formats into a non-planar one (see SDL_AudioFormat)
|
||||||
* before queuing audio.
|
* before queuing audio.
|
||||||
*
|
*
|
||||||
* \param dev the device ID to which we will queue audio
|
* \param dev the device ID to which we will queue audio.
|
||||||
* \param data the data to queue to the device for later playback
|
* \param data the data to queue to the device for later playback.
|
||||||
* \param len the number of bytes (not samples!) to which `data` points
|
* \param len the number of bytes (not samples!) to which `data` points.
|
||||||
* \returns 0 on success or a negative error code on failure; call
|
* \returns 0 on success or a negative error code on failure; call
|
||||||
* SDL_GetError() for more information.
|
* SDL_GetError() for more information.
|
||||||
*
|
*
|
||||||
@@ -1263,9 +1265,9 @@ extern DECLSPEC int SDLCALL SDL_QueueAudio(SDL_AudioDeviceID dev, const void *da
|
|||||||
* You should not call SDL_LockAudio() on the device before dequeueing; SDL
|
* You should not call SDL_LockAudio() on the device before dequeueing; SDL
|
||||||
* handles locking internally for this function.
|
* handles locking internally for this function.
|
||||||
*
|
*
|
||||||
* \param dev the device ID from which we will dequeue audio
|
* \param dev the device ID from which we will dequeue audio.
|
||||||
* \param data a pointer into where audio data should be copied
|
* \param data a pointer into where audio data should be copied.
|
||||||
* \param len the number of bytes (not samples!) to which (data) points
|
* \param len the number of bytes (not samples!) to which (data) points.
|
||||||
* \returns the number of bytes dequeued, which could be less than requested;
|
* \returns the number of bytes dequeued, which could be less than requested;
|
||||||
* call SDL_GetError() for more information.
|
* call SDL_GetError() for more information.
|
||||||
*
|
*
|
||||||
@@ -1299,7 +1301,7 @@ extern DECLSPEC Uint32 SDLCALL SDL_DequeueAudio(SDL_AudioDeviceID dev, void *dat
|
|||||||
* You should not call SDL_LockAudio() on the device before querying; SDL
|
* You should not call SDL_LockAudio() on the device before querying; SDL
|
||||||
* handles locking internally for this function.
|
* handles locking internally for this function.
|
||||||
*
|
*
|
||||||
* \param dev the device ID of which we will query queued audio size
|
* \param dev the device ID of which we will query queued audio size.
|
||||||
* \returns the number of bytes (not samples!) of queued audio.
|
* \returns the number of bytes (not samples!) of queued audio.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.4.
|
* \since This function is available since SDL 2.0.4.
|
||||||
@@ -1334,7 +1336,7 @@ extern DECLSPEC Uint32 SDLCALL SDL_GetQueuedAudioSize(SDL_AudioDeviceID dev);
|
|||||||
*
|
*
|
||||||
* This function always succeeds and thus returns void.
|
* This function always succeeds and thus returns void.
|
||||||
*
|
*
|
||||||
* \param dev the device ID of which to clear the audio queue
|
* \param dev the device ID of which to clear the audio queue.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.4.
|
* \since This function is available since SDL 2.0.4.
|
||||||
*
|
*
|
||||||
@@ -1406,7 +1408,7 @@ extern DECLSPEC void SDLCALL SDL_LockAudio(void);
|
|||||||
* at once, not only will you block the audio callback, you'll block the other
|
* at once, not only will you block the audio callback, you'll block the other
|
||||||
* thread.
|
* thread.
|
||||||
*
|
*
|
||||||
* \param dev the ID of the device to be locked
|
* \param dev the ID of the device to be locked.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*
|
*
|
||||||
@@ -1439,7 +1441,7 @@ extern DECLSPEC void SDLCALL SDL_UnlockAudio(void);
|
|||||||
*
|
*
|
||||||
* This function should be paired with a previous SDL_LockAudioDevice() call.
|
* This function should be paired with a previous SDL_LockAudioDevice() call.
|
||||||
*
|
*
|
||||||
* \param dev the ID of the device to be unlocked
|
* \param dev the ID of the device to be unlocked.
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*
|
*
|
||||||
@@ -1481,7 +1483,7 @@ extern DECLSPEC void SDLCALL SDL_CloseAudio(void);
|
|||||||
* The device ID is invalid as soon as the device is closed, and is eligible
|
* The device ID is invalid as soon as the device is closed, and is eligible
|
||||||
* for reuse in a new SDL_OpenAudioDevice() call immediately.
|
* for reuse in a new SDL_OpenAudioDevice() call immediately.
|
||||||
*
|
*
|
||||||
* \param dev an audio device previously opened with SDL_OpenAudioDevice()
|
* \param dev an audio device previously opened with SDL_OpenAudioDevice().
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*
|
*
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \file SDL_bits.h
|
* # CategoryBits
|
||||||
*
|
*
|
||||||
* Functions for fiddling with bits and bitmasks.
|
* Functions for fiddling with bits and bitmasks.
|
||||||
*/
|
*/
|
||||||
@@ -56,6 +56,12 @@ extern __inline int _SDL_bsr_watcom(Uint32);
|
|||||||
modify exact [eax] nomemory;
|
modify exact [eax] nomemory;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use this function to get the index of the most significant (set) bit in a
|
||||||
|
*
|
||||||
|
* \param x the number to find the MSB of.
|
||||||
|
* \returns the index of the most significant bit of x, or -1 if x is 0.
|
||||||
|
*/
|
||||||
SDL_FORCE_INLINE int
|
SDL_FORCE_INLINE int
|
||||||
SDL_MostSignificantBitIndex32(Uint32 x)
|
SDL_MostSignificantBitIndex32(Uint32 x)
|
||||||
{
|
{
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \file SDL_blendmode.h
|
* # CategoryBlendmode
|
||||||
*
|
*
|
||||||
* Header file declaring the SDL_BlendMode enumeration
|
* Header file declaring the SDL_BlendMode enumeration
|
||||||
*/
|
*/
|
||||||
@@ -35,9 +35,9 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief The blend mode used in SDL_RenderCopy() and drawing operations.
|
* The blend mode used in SDL_RenderCopy() and drawing operations.
|
||||||
*/
|
*/
|
||||||
typedef enum
|
typedef enum SDL_BlendMode
|
||||||
{
|
{
|
||||||
SDL_BLENDMODE_NONE = 0x00000000, /**< no blending
|
SDL_BLENDMODE_NONE = 0x00000000, /**< no blending
|
||||||
dstRGBA = srcRGBA */
|
dstRGBA = srcRGBA */
|
||||||
@@ -60,21 +60,22 @@ typedef enum
|
|||||||
} SDL_BlendMode;
|
} SDL_BlendMode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief The blend operation used when combining source and destination pixel components
|
* The blend operation used when combining source and destination pixel
|
||||||
|
* components
|
||||||
*/
|
*/
|
||||||
typedef enum
|
typedef enum SDL_BlendOperation
|
||||||
{
|
{
|
||||||
SDL_BLENDOPERATION_ADD = 0x1, /**< dst + src: supported by all renderers */
|
SDL_BLENDOPERATION_ADD = 0x1, /**< dst + src: supported by all renderers */
|
||||||
SDL_BLENDOPERATION_SUBTRACT = 0x2, /**< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES */
|
SDL_BLENDOPERATION_SUBTRACT = 0x2, /**< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES */
|
||||||
SDL_BLENDOPERATION_REV_SUBTRACT = 0x3, /**< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES */
|
SDL_BLENDOPERATION_REV_SUBTRACT = 0x3, /**< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES */
|
||||||
SDL_BLENDOPERATION_MINIMUM = 0x4, /**< min(dst, src) : supported by D3D9, D3D11 */
|
SDL_BLENDOPERATION_MINIMUM = 0x4, /**< min(dst, src) : supported by D3D9, D3D11 */
|
||||||
SDL_BLENDOPERATION_MAXIMUM = 0x5 /**< max(dst, src) : supported by D3D9, D3D11 */
|
SDL_BLENDOPERATION_MAXIMUM = 0x5 /**< max(dst, src) : supported by D3D9, D3D11 */
|
||||||
} SDL_BlendOperation;
|
} SDL_BlendOperation;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief The normalized factor used to multiply pixel components
|
* The normalized factor used to multiply pixel components
|
||||||
*/
|
*/
|
||||||
typedef enum
|
typedef enum SDL_BlendFactor
|
||||||
{
|
{
|
||||||
SDL_BLENDFACTOR_ZERO = 0x1, /**< 0, 0, 0, 0 */
|
SDL_BLENDFACTOR_ZERO = 0x1, /**< 0, 0, 0, 0 */
|
||||||
SDL_BLENDFACTOR_ONE = 0x2, /**< 1, 1, 1, 1 */
|
SDL_BLENDFACTOR_ONE = 0x2, /**< 1, 1, 1, 1 */
|
||||||
@@ -158,18 +159,18 @@ typedef enum
|
|||||||
* case.
|
* case.
|
||||||
*
|
*
|
||||||
* \param srcColorFactor the SDL_BlendFactor applied to the red, green, and
|
* \param srcColorFactor the SDL_BlendFactor applied to the red, green, and
|
||||||
* blue components of the source pixels
|
* blue components of the source pixels.
|
||||||
* \param dstColorFactor the SDL_BlendFactor applied to the red, green, and
|
* \param dstColorFactor the SDL_BlendFactor applied to the red, green, and
|
||||||
* blue components of the destination pixels
|
* blue components of the destination pixels.
|
||||||
* \param colorOperation the SDL_BlendOperation used to combine the red,
|
* \param colorOperation the SDL_BlendOperation used to combine the red,
|
||||||
* green, and blue components of the source and
|
* green, and blue components of the source and
|
||||||
* destination pixels
|
* destination pixels.
|
||||||
* \param srcAlphaFactor the SDL_BlendFactor applied to the alpha component of
|
* \param srcAlphaFactor the SDL_BlendFactor applied to the alpha component of
|
||||||
* the source pixels
|
* the source pixels.
|
||||||
* \param dstAlphaFactor the SDL_BlendFactor applied to the alpha component of
|
* \param dstAlphaFactor the SDL_BlendFactor applied to the alpha component of
|
||||||
* the destination pixels
|
* the destination pixels.
|
||||||
* \param alphaOperation the SDL_BlendOperation used to combine the alpha
|
* \param alphaOperation the SDL_BlendOperation used to combine the alpha
|
||||||
* component of the source and destination pixels
|
* component of the source and destination pixels.
|
||||||
* \returns an SDL_BlendMode that represents the chosen factors and
|
* \returns an SDL_BlendMode that represents the chosen factors and
|
||||||
* operations.
|
* operations.
|
||||||
*
|
*
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \file SDL_clipboard.h
|
* # CategoryClipboard
|
||||||
*
|
*
|
||||||
* Include file for SDL clipboard handling
|
* Include file for SDL clipboard handling
|
||||||
*/
|
*/
|
||||||
@@ -41,7 +41,7 @@ extern "C" {
|
|||||||
/**
|
/**
|
||||||
* Put UTF-8 text into the clipboard.
|
* Put UTF-8 text into the clipboard.
|
||||||
*
|
*
|
||||||
* \param text the text to store in the clipboard
|
* \param text the text to store in the clipboard.
|
||||||
* \returns 0 on success or a negative error code on failure; call
|
* \returns 0 on success or a negative error code on failure; call
|
||||||
* SDL_GetError() for more information.
|
* SDL_GetError() for more information.
|
||||||
*
|
*
|
||||||
@@ -85,7 +85,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void);
|
|||||||
/**
|
/**
|
||||||
* Put UTF-8 text into the primary selection.
|
* Put UTF-8 text into the primary selection.
|
||||||
*
|
*
|
||||||
* \param text the text to store in the primary selection
|
* \param text the text to store in the primary selection.
|
||||||
* \returns 0 on success or a negative error code on failure; call
|
* \returns 0 on success or a negative error code on failure; call
|
||||||
* SDL_GetError() for more information.
|
* SDL_GetError() for more information.
|
||||||
*
|
*
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -24,9 +24,7 @@
|
|||||||
|
|
||||||
#include "SDL_platform.h"
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
/**
|
/* WIKI CATEGORY: - */
|
||||||
* \file SDL_config.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Add any platform that doesn't build using the configure system. */
|
/* Add any platform that doesn't build using the configure system. */
|
||||||
#if defined(__WIN32__)
|
#if defined(__WIN32__)
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -190,7 +190,10 @@
|
|||||||
#cmakedefine HAVE_FOPEN64 1
|
#cmakedefine HAVE_FOPEN64 1
|
||||||
#cmakedefine HAVE_FSEEKO 1
|
#cmakedefine HAVE_FSEEKO 1
|
||||||
#cmakedefine HAVE_FSEEKO64 1
|
#cmakedefine HAVE_FSEEKO64 1
|
||||||
|
#cmakedefine HAVE_MEMFD_CREATE 1
|
||||||
|
#cmakedefine HAVE_POSIX_FALLOCATE 1
|
||||||
#cmakedefine HAVE_SIGACTION 1
|
#cmakedefine HAVE_SIGACTION 1
|
||||||
|
#cmakedefine HAVE_SIGTIMEDWAIT 1
|
||||||
#cmakedefine HAVE_SA_SIGACTION 1
|
#cmakedefine HAVE_SA_SIGACTION 1
|
||||||
#cmakedefine HAVE_SETJMP 1
|
#cmakedefine HAVE_SETJMP 1
|
||||||
#cmakedefine HAVE_NANOSLEEP 1
|
#cmakedefine HAVE_NANOSLEEP 1
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Simple DirectMedia Layer
|
Simple DirectMedia Layer
|
||||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@@ -195,6 +195,7 @@
|
|||||||
#undef HAVE_FSEEKO
|
#undef HAVE_FSEEKO
|
||||||
#undef HAVE_FSEEKO64
|
#undef HAVE_FSEEKO64
|
||||||
#undef HAVE_SIGACTION
|
#undef HAVE_SIGACTION
|
||||||
|
#undef HAVE_SIGTIMEDWAIT
|
||||||
#undef HAVE_SA_SIGACTION
|
#undef HAVE_SA_SIGACTION
|
||||||
#undef HAVE_SETJMP
|
#undef HAVE_SETJMP
|
||||||
#undef HAVE_NANOSLEEP
|
#undef HAVE_NANOSLEEP
|
||||||
@@ -211,9 +212,12 @@
|
|||||||
#undef HAVE_GETAUXVAL
|
#undef HAVE_GETAUXVAL
|
||||||
#undef HAVE_ELF_AUX_INFO
|
#undef HAVE_ELF_AUX_INFO
|
||||||
#undef HAVE_POLL
|
#undef HAVE_POLL
|
||||||
|
#undef HAVE_MEMFD_CREATE
|
||||||
|
#undef HAVE_POSIX_FALLOCATE
|
||||||
#undef HAVE__EXIT
|
#undef HAVE__EXIT
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define HAVE_STDARG_H 1
|
#define HAVE_STDARG_H 1
|
||||||
#define HAVE_STDDEF_H 1
|
#define HAVE_STDDEF_H 1
|
||||||
#define HAVE_STDINT_H 1
|
#define HAVE_STDINT_H 1
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user