Compare commits
748 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
b6eb396626 | |
|
|
b4fdd26946 | |
|
|
14b5df3e2c | |
|
|
482c8e1256 | |
|
|
162bb983ab | |
|
|
4bd8d682c9 | |
|
|
119cacac0d | |
|
|
1cdc87082f | |
|
|
73d591e877 | |
|
|
e460578cba | |
|
|
29ea018a2e | |
|
|
45d6bcb2a7 | |
|
|
f93bd379e6 | |
|
|
6a57a07073 | |
|
|
b6b1e95d37 | |
|
|
edbfa2905f | |
|
|
2eb4ee2302 | |
|
|
b79e19e901 | |
|
|
64196bd5e7 | |
|
|
900d76d94c | |
|
|
01ff9ecdc3 | |
|
|
74e58b34e1 | |
|
|
a1c52098ad | |
|
|
115b032ca1 | |
|
|
93b16188bf | |
|
|
1395135d38 | |
|
|
68572b545e | |
|
|
0f542d8517 | |
|
|
b40eb663a7 | |
|
|
45ec826517 | |
|
|
db4ed0301a | |
|
|
dca75bb289 | |
|
|
14811af6ec | |
|
|
0d4117bb59 | |
|
|
b44deb2a1c | |
|
|
30a575dc28 | |
|
|
500723614b | |
|
|
61dd0df958 | |
|
|
b199be2fc7 | |
|
|
5ae8418352 | |
|
|
742ac8f73a | |
|
|
93f23448d0 | |
|
|
0e2c9177c0 | |
|
|
968396b99b | |
|
|
2d4d6e6689 | |
|
|
134725f121 | |
|
|
d00fb4b333 | |
|
|
f2b9b42437 | |
|
|
e334105074 | |
|
|
5ca6ba9380 | |
|
|
6a734b0d6d | |
|
|
56c6e1aab9 | |
|
|
755622536f | |
|
|
a02df866d6 | |
|
|
4910f2590f | |
|
|
a44d18f2c1 | |
|
|
309c6d920f | |
|
|
d7faf89ff2 | |
|
|
a4279c7efc | |
|
|
3d5e009292 | |
|
|
b737122dd6 | |
|
|
153623e1f1 | |
|
|
2f54c689e9 | |
|
|
8374c79c5d | |
|
|
f150f0c649 | |
|
|
e465b9ccba | |
|
|
d07f84330f | |
|
|
53406f5046 | |
|
|
6afdb0f176 | |
|
|
fe76435079 | |
|
|
2cbe56aaeb | |
|
|
2a8309bcb0 | |
|
|
831987e4db | |
|
|
b756f80b4a | |
|
|
ddd50b5e3a | |
|
|
72b29fee19 | |
|
|
8459f9ed74 | |
|
|
78edbe2e00 | |
|
|
8af7006019 | |
|
|
6d3343f3b1 | |
|
|
ad1623243c | |
|
|
c95ea4a498 | |
|
|
e00e734ed3 | |
|
|
0ad706c3a9 | |
|
|
0f95e40c83 | |
|
|
68d6711d84 | |
|
|
4bf2e4ed83 | |
|
|
570ce0194e | |
|
|
6783b31260 | |
|
|
a99ef867bc | |
|
|
29d34e7e86 | |
|
|
dc76a18275 | |
|
|
fa0f30e5ef | |
|
|
6ad23ed20b | |
|
|
5aa5eeb992 | |
|
|
42f472107d | |
|
|
5d58a71618 | |
|
|
191abbad87 | |
|
|
432885fb0b | |
|
|
e39c5d55d3 | |
|
|
61beafa967 | |
|
|
c1fee0c161 | |
|
|
6a05c82952 | |
|
|
7ccfdf0660 | |
|
|
f1d8dedd6f | |
|
|
0efd939a2d | |
|
|
2e7a5c9897 | |
|
|
514b10f662 | |
|
|
deb7538384 | |
|
|
1f58533518 | |
|
|
c25b0053d0 | |
|
|
4712bf5909 | |
|
|
f09f7d49e0 | |
|
|
5cd53f2017 | |
|
|
b7346799d3 | |
|
|
d3c19e573d | |
|
|
431a9c89e8 | |
|
|
375ba90589 | |
|
|
6af12744ff | |
|
|
7c9490116a | |
|
|
20890533d5 | |
|
|
1fbf50dea4 | |
|
|
c0bb55a83b | |
|
|
a6398b12fa | |
|
|
d606a2c7d3 | |
|
|
19f625947b | |
|
|
fab5b4a5aa | |
|
|
95d311e9bf | |
|
|
9283b69c00 | |
|
|
d006955398 | |
|
|
31faecde59 | |
|
|
c6fada2c1f | |
|
|
d437434cf9 | |
|
|
4003ff7d6b | |
|
|
94768aa089 | |
|
|
34c1766007 | |
|
|
34ad75f2c9 | |
|
|
2b342b55bd | |
|
|
71991c2275 | |
|
|
d2a0a597b9 | |
|
|
18a1f45ee4 | |
|
|
39c266af1b | |
|
|
3a762a5311 | |
|
|
fc9f9c011b | |
|
|
5774e290c5 | |
|
|
d84ad841f1 | |
|
|
873cc1ca67 | |
|
|
5918ad85e6 | |
|
|
f7dbe57966 | |
|
|
60c7da3cfb | |
|
|
cefb338e02 | |
|
|
d6e7c9b41d | |
|
|
0d4b271fed | |
|
|
f4cf292899 | |
|
|
da0b7c8484 | |
|
|
f68f7ffaf0 | |
|
|
8c4d2db9d1 | |
|
|
df692aeaba | |
|
|
06da3877db | |
|
|
e88058ed37 | |
|
|
26dc506d53 | |
|
|
04df26a574 | |
|
|
f5541e7518 | |
|
|
f701f9a9cb | |
|
|
5cd4d7854a | |
|
|
8a8df0bfa4 | |
|
|
d826461573 | |
|
|
53973d3505 | |
|
|
70b1d1a87a | |
|
|
359643af24 | |
|
|
3a66c9b359 | |
|
|
980a27427d | |
|
|
edc2e32b3f | |
|
|
e49446df61 | |
|
|
5e4443a1f9 | |
|
|
afdfa29547 | |
|
|
28ef8faaa1 | |
|
|
aabc23348b | |
|
|
dfb014d4a8 | |
|
|
aa175c75ac | |
|
|
a3e54ebcf3 | |
|
|
ac4dfe9df7 | |
|
|
7bb3943467 | |
|
|
4c1919cdee | |
|
|
321a829243 | |
|
|
4b01fa8556 | |
|
|
05c44ceb91 | |
|
|
2bb57c9317 | |
|
|
6e5474959f | |
|
|
dc44cab8be | |
|
|
af6cbc9b9e | |
|
|
17d7f82ffd | |
|
|
2c11be635d | |
|
|
4fb5cec968 | |
|
|
cbba51ddce | |
|
|
433f7cfa49 | |
|
|
5efdf12738 | |
|
|
4cadc0009d | |
|
|
862519b051 | |
|
|
c6abd08689 | |
|
|
725b5d5973 | |
|
|
ef1decc6ad | |
|
|
9c9626b502 | |
|
|
af20525b18 | |
|
|
873c3a5310 | |
|
|
fa8ab487a1 | |
|
|
c91641b5cd | |
|
|
2d32791f35 | |
|
|
79b2e7b474 | |
|
|
529341fd7d | |
|
|
9d2b38d972 | |
|
|
38ef3678c6 | |
|
|
8198a50fd6 | |
|
|
d28bf267a1 | |
|
|
ef1b8fe86d | |
|
|
7c326bb2a2 | |
|
|
8b11e8b5c8 | |
|
|
fae6c725ec | |
|
|
21c092bd80 | |
|
|
92b899f5bf | |
|
|
b0ed2e02de | |
|
|
7c94970b8d | |
|
|
6dab29e62d | |
|
|
9b1af5d3af | |
|
|
663a8ef24b | |
|
|
aa11859bda | |
|
|
e6644af301 | |
|
|
6f6eba3d2c | |
|
|
579aa4f6d8 | |
|
|
06cb87f773 | |
|
|
d05f5cc34d | |
|
|
57714203de | |
|
|
dc25f28774 | |
|
|
21b4fe79aa | |
|
|
6658154f2d | |
|
|
d547f6e0a5 | |
|
|
da9b8209d6 | |
|
|
af4494284d | |
|
|
00a1a49405 | |
|
|
952824356e | |
|
|
9b4e0ebd80 | |
|
|
b4989b62a1 | |
|
|
ecb058079c | |
|
|
9f93969211 | |
|
|
19a4cb61ea | |
|
|
a52fdf90e7 | |
|
|
abbfe4181b | |
|
|
157c538a08 | |
|
|
027c6a8fb7 | |
|
|
99830141db | |
|
|
3ff478f3ef | |
|
|
b0f2597e38 | |
|
|
8e3eebe483 | |
|
|
c44d33c4e1 | |
|
|
ad229da788 | |
|
|
18bd436b39 | |
|
|
f19bf483be | |
|
|
085d4979ca | |
|
|
167f501a1a | |
|
|
07026d593c | |
|
|
3ca40dae17 | |
|
|
2741a33a15 | |
|
|
403e466ac2 | |
|
|
c9240a1880 | |
|
|
221ee0303c | |
|
|
cedd6ffae6 | |
|
|
85f1b4c5c5 | |
|
|
01c2e1c3fd | |
|
|
23aee471e5 | |
|
|
28a2a74a97 | |
|
|
f22810fe54 | |
|
|
e2d09bdcf5 | |
|
|
baae55f1eb | |
|
|
b23a91720e | |
|
|
f2bf473e08 | |
|
|
c1b6d369b2 | |
|
|
e995e54168 | |
|
|
51d0cd7779 | |
|
|
8b6c4b97e6 | |
|
|
d6120b3c83 | |
|
|
ae2d73cf54 | |
|
|
e41c2b15fb | |
|
|
863906766f | |
|
|
8dd99cb11c | |
|
|
f23afac745 | |
|
|
1972cbe080 | |
|
|
c225539ba7 | |
|
|
389fa08ebb | |
|
|
73397d3714 | |
|
|
a7705d16e5 | |
|
|
9b55b3a958 | |
|
|
b1905750be | |
|
|
6dd9d26846 | |
|
|
48bf31f86f | |
|
|
b0370d117c | |
|
|
fa2a67fb3b | |
|
|
c3e4d73341 | |
|
|
3ca94e8a33 | |
|
|
1de9fa76f9 | |
|
|
c0cf269159 | |
|
|
bae80d369f | |
|
|
74bb2a5fb3 | |
|
|
6980a08090 | |
|
|
fa687e9e99 | |
|
|
c440ff84cc | |
|
|
62ef0198c5 | |
|
|
ffb3964b10 | |
|
|
155d7b2e07 | |
|
|
5fb24f6653 | |
|
|
08dabad8ca | |
|
|
4f282b4f8b | |
|
|
be14bbe80c | |
|
|
51be963ac8 | |
|
|
f95507b448 | |
|
|
8b4c36a9ec | |
|
|
8ce38175f5 | |
|
|
9c6895247d | |
|
|
c24ced908c | |
|
|
9069b33ded | |
|
|
a8daedc480 | |
|
|
32e235634a | |
|
|
058352442e | |
|
|
cc564500c1 | |
|
|
4eb7eb412c | |
|
|
5d0c9295ca | |
|
|
3f9627b776 | |
|
|
cce29a87e1 | |
|
|
215ecac933 | |
|
|
7c71e7dfe3 | |
|
|
de11785597 | |
|
|
89b6d8ec59 | |
|
|
7c5229096f | |
|
|
273f249ec4 | |
|
|
2d1b480d68 | |
|
|
f7580f109a | |
|
|
5ee12395a7 | |
|
|
7a532a8662 | |
|
|
7330da3e5a | |
|
|
c8377c7797 | |
|
|
8dad7b377d | |
|
|
3f8f16e711 | |
|
|
6397a5a455 | |
|
|
0b3a20be2d | |
|
|
dbec9e8c76 | |
|
|
c4a9dfb191 | |
|
|
d1cdb915f4 | |
|
|
46d2e4124e | |
|
|
2751661a4e | |
|
|
dbaa2e5e5d | |
|
|
a0c9da6712 | |
|
|
148d2debcb | |
|
|
4405515c73 | |
|
|
926a286277 | |
|
|
ecd3302e74 | |
|
|
d13f1114c6 | |
|
|
d9320945ea | |
|
|
e4fa7264ba | |
|
|
33d73d9f4d | |
|
|
0b102ee2c1 | |
|
|
a4c8363d60 | |
|
|
ce5a0aec59 | |
|
|
03b17f565a | |
|
|
cdd32375c6 | |
|
|
9667f5198d | |
|
|
47a318cb46 | |
|
|
c89e224050 | |
|
|
bbcfaff705 | |
|
|
1eb1af9389 | |
|
|
ac5a185d1b | |
|
|
cecb4bc1b5 | |
|
|
0b40c37ccd | |
|
|
72eb16bc7b | |
|
|
4286c2d0c1 | |
|
|
f082d17ee4 | |
|
|
ee2e521f5d | |
|
|
36785ad6db | |
|
|
7bc1d6b70a | |
|
|
35747957b7 | |
|
|
56f79192e7 | |
|
|
d75c537d81 | |
|
|
d5e75c8331 | |
|
|
9d68068d84 | |
|
|
cb0b2fb7cf | |
|
|
651d80b27d | |
|
|
c2242e06c4 | |
|
|
a1f74c4b6a | |
|
|
d50b9db910 | |
|
|
54c452de76 | |
|
|
4ea384e8b9 | |
|
|
6a0291a9ab | |
|
|
215aca07f0 | |
|
|
72ea3e3be8 | |
|
|
2b7f007921 | |
|
|
4df5eecada | |
|
|
81cb751756 | |
|
|
4739372547 | |
|
|
aedbcb51b2 | |
|
|
0624680953 | |
|
|
7e1bd3b3ef | |
|
|
62fd4e15ec | |
|
|
54fbd6870b | |
|
|
c944f1ec67 | |
|
|
1fef9e1f23 | |
|
|
396d18ff3b | |
|
|
ee232ad635 | |
|
|
603ac3218c | |
|
|
dd28b954f4 | |
|
|
d60ff6fa51 | |
|
|
549539e62f | |
|
|
812e86ed0b | |
|
|
11b7f85cf0 | |
|
|
0b0f7f5f0a | |
|
|
47679d1788 | |
|
|
734f9d2c6b | |
|
|
467bfa00aa | |
|
|
c7410c9792 | |
|
|
e436de39b0 | |
|
|
0c08ad12e6 | |
|
|
12ec05879e | |
|
|
e25df6065c | |
|
|
f1afea268f | |
|
|
a1f1ce639e | |
|
|
9c9aa11d77 | |
|
|
b3d94e6abe | |
|
|
9284db5b65 | |
|
|
2d43ecc092 | |
|
|
3cf0c04831 | |
|
|
350fcdae1e | |
|
|
f7e54f4394 | |
|
|
82b494203d | |
|
|
736f4fd10d | |
|
|
c861410732 | |
|
|
748cc820e5 | |
|
|
e4cbe64172 | |
|
|
751e44d399 | |
|
|
323f87dfe6 | |
|
|
1e414ac871 | |
|
|
8b36940221 | |
|
|
a389afe03a | |
|
|
db9b359b8b | |
|
|
b73d03b199 | |
|
|
243af150a8 | |
|
|
c6fd588088 | |
|
|
06e09c3019 | |
|
|
34474b32aa | |
|
|
3dc7b93eff | |
|
|
a44f760f31 | |
|
|
c770b22b38 | |
|
|
61fc66f59f | |
|
|
7db63f8570 | |
|
|
4dc90741d7 | |
|
|
1f395b9a6c | |
|
|
eba646cebb | |
|
|
3ef1f91d9d | |
|
|
182473618b | |
|
|
56dc6d133d | |
|
|
8a4b76ec59 | |
|
|
fe11a70f22 | |
|
|
ecbe04bebe | |
|
|
6b8daad36d | |
|
|
699e85799d | |
|
|
59cf7735a3 | |
|
|
16eb611825 | |
|
|
44a0b99c76 | |
|
|
2bd057d829 | |
|
|
dc108719e9 | |
|
|
1e048f5e81 | |
|
|
4afe9de86b | |
|
|
d8f5f00aac | |
|
|
cb3383f310 | |
|
|
d423c5f715 | |
|
|
1ba4035db6 | |
|
|
d14b21dc11 | |
|
|
1abb1f39f5 | |
|
|
7a39d2a4ee | |
|
|
6794e232ac | |
|
|
6786662d10 | |
|
|
60a3b0742a | |
|
|
d7e1525ff4 | |
|
|
4e37936525 | |
|
|
9f05130a04 | |
|
|
053ab631ee | |
|
|
a7b57462fa | |
|
|
5ed12e0cc0 | |
|
|
400c3b568d | |
|
|
587dfd1eea | |
|
|
8ca8877339 | |
|
|
382d1b2901 | |
|
|
8b51e47b19 | |
|
|
c731d5770c | |
|
|
5cad6edec0 | |
|
|
5cf11c7a27 | |
|
|
671507979e | |
|
|
576faba9a6 | |
|
|
7f383f9caa | |
|
|
1852e68b48 | |
|
|
f18d9e0559 | |
|
|
647fb43ccd | |
|
|
d76a64abc9 | |
|
|
d56d310c1f | |
|
|
09059e2c1d | |
|
|
f9a8fa8ea9 | |
|
|
40ac530d59 | |
|
|
9292c8952a | |
|
|
4e0f762c3c | |
|
|
c892cfb5dc | |
|
|
47c4e91443 | |
|
|
698a461fdd | |
|
|
199be2f489 | |
|
|
e3d91630ee | |
|
|
2abe621457 | |
|
|
ac6ca04d74 | |
|
|
ebc5d343a4 | |
|
|
035946cfe9 | |
|
|
4f10d814c6 | |
|
|
a2c7ad85fb | |
|
|
730441c692 | |
|
|
a608ac2de5 | |
|
|
f2b29258f6 | |
|
|
e6e11c1e72 | |
|
|
d737ae0c28 | |
|
|
023411e444 | |
|
|
8559ccc404 | |
|
|
a17571d9a3 | |
|
|
fe086a089d | |
|
|
eb84b2e607 | |
|
|
ea38185ea9 | |
|
|
92b82d2cf8 | |
|
|
49cc96b0c4 | |
|
|
022855eca2 | |
|
|
38b9deffbc | |
|
|
f2794d609a | |
|
|
65253713f1 | |
|
|
9d56cf94cd | |
|
|
697f904e98 | |
|
|
f01553497c | |
|
|
7189ccbb7b | |
|
|
49bf55f5c6 | |
|
|
be5a215a6c | |
|
|
7f13b8b1e1 | |
|
|
e340a8a4ff | |
|
|
ae1b692333 | |
|
|
9dff9a2b14 | |
|
|
398eceafca | |
|
|
18986b29f4 | |
|
|
2cfd53aa79 | |
|
|
14c403f6b8 | |
|
|
bc57708120 | |
|
|
f64d0807f4 | |
|
|
faf2516d56 | |
|
|
2091c3cf69 | |
|
|
1296a7edea | |
|
|
62caadf4c3 | |
|
|
4b0ec476e3 | |
|
|
932ec01ea1 | |
|
|
33d626cf60 | |
|
|
629662657f | |
|
|
ad80542a57 | |
|
|
876b81cc45 | |
|
|
52929fd904 | |
|
|
794b4e0255 | |
|
|
acdcb0a793 | |
|
|
ab47f1f5f6 | |
|
|
57c5aa664a | |
|
|
55cd5bc3a0 | |
|
|
78e7887c7b | |
|
|
6d5a5b78c8 | |
|
|
d9b77bdf9a | |
|
|
f8bdc510e8 | |
|
|
ffb790b1b5 | |
|
|
09751a8aa4 | |
|
|
a332ace34a | |
|
|
eaef976993 | |
|
|
21c612b975 | |
|
|
1feb61062b | |
|
|
c35ae6f714 | |
|
|
730236790d | |
|
|
753dff9ffc | |
|
|
b88f114e12 | |
|
|
633d6abbec | |
|
|
eecd3fbdeb | |
|
|
2d962cb418 | |
|
|
47d5b5e17c | |
|
|
a07478f468 | |
|
|
5f845dff41 | |
|
|
30eb0949c7 | |
|
|
67d5e8dc16 | |
|
|
9667313919 | |
|
|
d21e9a4b5f | |
|
|
f07112e21c | |
|
|
76f98d30f0 | |
|
|
8a9c38f05c | |
|
|
6dc082c7d0 | |
|
|
ec958ff150 | |
|
|
f209157070 | |
|
|
27feb27c39 | |
|
|
c580186841 | |
|
|
b0aad823b2 | |
|
|
9f04e9f1a2 | |
|
|
c03dffbf5f | |
|
|
69f0cda9c7 | |
|
|
ec47920b52 | |
|
|
0e2859936a | |
|
|
bcc97ecbfe | |
|
|
a8d57d7d17 | |
|
|
eb4137aefd | |
|
|
ae2b0b10dd | |
|
|
8ba91e933a | |
|
|
8557bd0205 | |
|
|
59a656edb4 | |
|
|
ee1c1ba2c7 | |
|
|
df49656b25 | |
|
|
591e31bea6 | |
|
|
e93c9336dd | |
|
|
06cab0a5a1 | |
|
|
a0f652cb8c | |
|
|
5092b5ac7f | |
|
|
80957f9668 | |
|
|
1055c7b5be | |
|
|
9053303825 | |
|
|
6a51ab9215 | |
|
|
be2c4be4a0 | |
|
|
eb73db48f3 | |
|
|
ce409304c4 | |
|
|
8397efbb9e | |
|
|
7de040abf9 | |
|
|
68fd12f52c | |
|
|
a46626cf78 | |
|
|
e86caaa4e1 | |
|
|
829511a337 | |
|
|
9889eca356 | |
|
|
f9c66481c1 | |
|
|
f79435b30e | |
|
|
70b22712a8 | |
|
|
d1942c6dd7 | |
|
|
36a1fbbd49 | |
|
|
2dc30e8859 | |
|
|
f172c913c2 | |
|
|
d38ef4d233 | |
|
|
13cbc3884d | |
|
|
f5ad93973f | |
|
|
e2ada4cfe4 | |
|
|
0e1fba3d1e | |
|
|
9467c8951a | |
|
|
84118251fb | |
|
|
d4cc8d442c | |
|
|
d4c13858a5 | |
|
|
60b0f59551 | |
|
|
361f7e3dcc | |
|
|
3ced7d970e | |
|
|
a6e410b09a | |
|
|
507bbdf37a | |
|
|
4b3b3517b7 | |
|
|
744ea58b9d | |
|
|
92c35cb04c | |
|
|
f756f6d94a | |
|
|
cef42bf5c1 | |
|
|
f5f79288d3 | |
|
|
51fa993fc1 | |
|
|
03186fa2b0 | |
|
|
7901ee45a1 | |
|
|
3043fe7f0b | |
|
|
07c73d02ca | |
|
|
0a95076da4 | |
|
|
d98304c617 | |
|
|
c84d21c0f0 | |
|
|
50eeaa0409 | |
|
|
8d62f710fc | |
|
|
3abe11b093 | |
|
|
292c847777 | |
|
|
33266d8fe1 | |
|
|
fba21fe979 | |
|
|
a3b4a6dc03 | |
|
|
ff84934559 | |
|
|
0e5394e238 | |
|
|
896af463ab | |
|
|
9ebf3fec6d | |
|
|
eb7fb558e6 | |
|
|
22e8d52ed6 | |
|
|
1853ef1a3a | |
|
|
9a514e3ade | |
|
|
384892972c | |
|
|
2e4d92f526 | |
|
|
d1d00dae4c | |
|
|
c1eea9b09f | |
|
|
f8319ad828 | |
|
|
5e0697126e | |
|
|
bcd6e6e457 | |
|
|
0c21f86a62 | |
|
|
eedcc5326b | |
|
|
c26fb7b162 | |
|
|
705106e324 | |
|
|
ec2993933c | |
|
|
9ad3f97efb | |
|
|
fc676d906d | |
|
|
12a82990d3 | |
|
|
a970aea405 | |
|
|
5a72b13822 | |
|
|
a9868556a3 | |
|
|
5687f8070c | |
|
|
1ac30e0338 | |
|
|
c552004211 | |
|
|
93523daf50 | |
|
|
259a100c82 | |
|
|
281338243a | |
|
|
817f578dfc | |
|
|
d3374727e7 | |
|
|
a4c2c2f88a | |
|
|
a8b3bca199 | |
|
|
6614b4de93 | |
|
|
d3f4bcdf53 | |
|
|
01182aeb0e | |
|
|
cf5300149f | |
|
|
1bfc86b9c3 | |
|
|
1c61512e64 | |
|
|
b1deff231e | |
|
|
447d4060d5 | |
|
|
10f849cad1 | |
|
|
41e3f6cc67 | |
|
|
66fe5a9d00 | |
|
|
dd1812a4ed | |
|
|
1f50e8e0ec | |
|
|
da9c4508b3 | |
|
|
c9abbde679 | |
|
|
fb5d022a76 | |
|
|
a004920785 | |
|
|
a43ffbb54e | |
|
|
7c976cb3c5 | |
|
|
28d9cb117c | |
|
|
021a8ed409 | |
|
|
7d9542592a | |
|
|
b088b1a635 | |
|
|
2cc17f04c1 | |
|
|
efc52ab1ea | |
|
|
1f8d946de4 | |
|
|
1829014bc8 | |
|
|
319516126b | |
|
|
39ff1db4ff | |
|
|
ba00d2767a | |
|
|
9d5783c203 | |
|
|
cba495bd88 | |
|
|
1064271e15 | |
|
|
a3a78d11c2 | |
|
|
f8f518e90a | |
|
|
c612d83a2b | |
|
|
e724a8e86e | |
|
|
777e82f9fa | |
|
|
9b155a3793 |
|
|
@ -16,4 +16,5 @@ runs:
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ inputs.DEST_NAME }}
|
name: ${{ inputs.DEST_NAME }}
|
||||||
path: ${{ inputs.SOURCE_FILE }}
|
path: ${{ inputs.SOURCE_FILE }}
|
||||||
|
if-no-files-found: error
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-3DS:
|
build-3DS:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: devkitpro/devkitarm:latest
|
image: devkitpro/devkitarm:latest
|
||||||
|
|
@ -23,13 +24,6 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
make 3ds
|
make 3ds
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile 3DS build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
|
@ -54,4 +48,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: '3ds'
|
WORKFLOW_NAME: '3ds'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce 3DS build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,11 @@
|
||||||
name: Build latest (Android2)
|
name: Build latest (Android2)
|
||||||
on: [push]
|
# trigger via either push to selected branches or on manual run
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.ref }}-android
|
group: ${{ github.ref }}-android
|
||||||
|
|
@ -7,31 +13,16 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
if: github.ref_name == github.event.repository.default_branch
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/saschpe/android-ndk:34-jdk17.0.8_7-ndk25.2.9519653-cmake3.22.1
|
image: ghcr.io/saschpe/android-ndk:34-jdk17.0.8_7-ndk25.2.9519653-cmake3.22.1
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Compile android builds
|
- name: Retrieve dependencies
|
||||||
shell: bash
|
shell: bash
|
||||||
id: compile
|
|
||||||
env:
|
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
|
||||||
DROID_FLAGS: "-fPIC -shared -s -O1 -fvisibility=hidden -rdynamic -funwind-tables"
|
|
||||||
DROID_LIBS: "-lGLESv2 -lEGL -lm -landroid -llog"
|
|
||||||
run: |
|
run: |
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
|
||||||
|
|
||||||
DROID_FLAGS="-fPIC -shared -s -O1 -fvisibility=hidden -rdynamic -funwind-tables"
|
|
||||||
DROID_LIBS="-lGLESv2 -lEGL -lm -landroid -llog"
|
|
||||||
|
|
||||||
ROOT_DIR=$PWD
|
|
||||||
NDK_ROOT="/opt/android-sdk-linux/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin"
|
|
||||||
TOOLS_ROOT=$ROOT_DIR/build-tools
|
|
||||||
SDK_ROOT="/opt/android-sdk-linux/platforms/android-34"
|
|
||||||
|
|
||||||
mkdir build-tools
|
mkdir build-tools
|
||||||
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/build-tools.zip
|
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/build-tools.zip
|
||||||
unzip build-tools.zip -d build-tools
|
unzip build-tools.zip -d build-tools
|
||||||
|
|
@ -39,21 +30,38 @@ jobs:
|
||||||
chmod +x build-tools/dx
|
chmod +x build-tools/dx
|
||||||
chmod +x build-tools/zipalign
|
chmod +x build-tools/zipalign
|
||||||
|
|
||||||
cd $ROOT_DIR/src
|
- name: Compile android builds
|
||||||
$NDK_ROOT/armv7a-linux-androideabi19-clang *.c $DROID_FLAGS -march=armv5 $DROID_LIBS $LATEST_FLAG -o cc-droid-arm_16
|
shell: bash
|
||||||
$NDK_ROOT/armv7a-linux-androideabi19-clang *.c $DROID_FLAGS $DROID_LIBS $LATEST_FLAG -o cc-droid-arm_32
|
id: compile
|
||||||
$NDK_ROOT/aarch64-linux-android21-clang *.c $DROID_FLAGS $DROID_LIBS $LATEST_FLAG -o cc-droid-arm_64
|
env:
|
||||||
$NDK_ROOT/i686-linux-android21-clang *.c $DROID_FLAGS $DROID_LIBS $LATEST_FLAG -o cc-droid-x86_32
|
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror"
|
||||||
$NDK_ROOT/x86_64-linux-android21-clang *.c $DROID_FLAGS $DROID_LIBS $LATEST_FLAG -o cc-droid-x86_64
|
DROID_FLAGS: "-fPIC -shared -fvisibility=hidden -rdynamic -funwind-tables"
|
||||||
|
LIBS: "-lGLESv2 -lEGL -lm -llog"
|
||||||
|
SRCS: "src/*.c src/android/*.c third_party/bearssl/*.c"
|
||||||
|
run: |
|
||||||
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||||
|
|
||||||
|
DROID_FLAGS="-fPIC -shared -s -O1 -fvisibility=hidden -rdynamic -funwind-tables"
|
||||||
|
|
||||||
|
ROOT_DIR=$PWD
|
||||||
|
NDK_ROOT="/opt/android-sdk-linux/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin"
|
||||||
|
TOOLS_ROOT=$ROOT_DIR/build-tools
|
||||||
|
SDK_ROOT="/opt/android-sdk-linux/platforms/android-34"
|
||||||
|
|
||||||
|
$NDK_ROOT/armv7a-linux-androideabi19-clang ${{ env.SRCS }} $COMMON_FLAGS $DROID_FLAGS -march=armv5 -rtlib=libgcc -L $ROOT_DIR/build-tools/runtime ${{ env.LIBS }} $LATEST_FLAG -o cc-droid-arm_16
|
||||||
|
$NDK_ROOT/armv7a-linux-androideabi19-clang ${{ env.SRCS }} $COMMON_FLAGS $DROID_FLAGS -mfpu=vfp3-d16 ${{ env.LIBS }} $LATEST_FLAG -o cc-droid-arm_32
|
||||||
|
$NDK_ROOT/aarch64-linux-android21-clang ${{ env.SRCS }} $COMMON_FLAGS $DROID_FLAGS ${{ env.LIBS }} $LATEST_FLAG -o cc-droid-arm_64
|
||||||
|
$NDK_ROOT/i686-linux-android21-clang ${{ env.SRCS }} $COMMON_FLAGS $DROID_FLAGS ${{ env.LIBS }} $LATEST_FLAG -o cc-droid-x86_32
|
||||||
|
$NDK_ROOT/x86_64-linux-android21-clang ${{ env.SRCS }} $COMMON_FLAGS $DROID_FLAGS ${{ env.LIBS }} $LATEST_FLAG -o cc-droid-x86_64
|
||||||
|
|
||||||
cd $ROOT_DIR/android/app/src/main
|
cd $ROOT_DIR/android/app/src/main
|
||||||
# copy required native libraries
|
# copy required native libraries
|
||||||
mkdir lib lib/armeabi lib/armeabi-v7a lib/arm64-v8a lib/x86 lib/x86_64
|
mkdir lib lib/armeabi lib/armeabi-v7a lib/arm64-v8a lib/x86 lib/x86_64
|
||||||
cp $ROOT_DIR/src/cc-droid-arm_16 lib/armeabi/libclassicube.so
|
cp $ROOT_DIR/cc-droid-arm_16 lib/armeabi/libclassicube.so
|
||||||
cp $ROOT_DIR/src/cc-droid-arm_32 lib/armeabi-v7a/libclassicube.so
|
cp $ROOT_DIR/cc-droid-arm_32 lib/armeabi-v7a/libclassicube.so
|
||||||
cp $ROOT_DIR/src/cc-droid-arm_64 lib/arm64-v8a/libclassicube.so
|
cp $ROOT_DIR/cc-droid-arm_64 lib/arm64-v8a/libclassicube.so
|
||||||
cp $ROOT_DIR/src/cc-droid-x86_32 lib/x86/libclassicube.so
|
cp $ROOT_DIR/cc-droid-x86_32 lib/x86/libclassicube.so
|
||||||
cp $ROOT_DIR/src/cc-droid-x86_64 lib/x86_64/libclassicube.so
|
cp $ROOT_DIR/cc-droid-x86_64 lib/x86_64/libclassicube.so
|
||||||
|
|
||||||
# The following commands are for manually building an .apk, see
|
# The following commands are for manually building an .apk, see
|
||||||
# https://spin.atomicobject.com/2011/08/22/building-android-application-bundles-apks-by-hand/
|
# https://spin.atomicobject.com/2011/08/22/building-android-application-bundles-apks-by-hand/
|
||||||
|
|
@ -71,29 +79,44 @@ jobs:
|
||||||
echo -n "${{ secrets.ANDROID_SIGNING_KEY_BASE64 }}" | base64 --decode > debug.keystore
|
echo -n "${{ secrets.ANDROID_SIGNING_KEY_BASE64 }}" | base64 --decode > debug.keystore
|
||||||
|
|
||||||
# compile the multiple .class files into one .dex file
|
# compile the multiple .class files into one .dex file
|
||||||
$TOOLS_ROOT/dx --dex --output=obj/classes.dex ./obj
|
$TOOLS_ROOT/dx --dex --output=classes.dex ./obj
|
||||||
# create initial .apk with packaged version of resources
|
# create initial .apk with packaged version of resources
|
||||||
$TOOLS_ROOT/aapt package -f -M AndroidManifest.xml -S res -F obj/cc-unsigned.apk -I $SDK_ROOT/android.jar
|
$TOOLS_ROOT/aapt package -f -M AndroidManifest.xml -S res -F cc-unsigned.apk -I $SDK_ROOT/android.jar
|
||||||
# and add all the required files
|
# and add all the required files
|
||||||
cp obj/classes.dex classes.dex
|
$TOOLS_ROOT/aapt add -f cc-unsigned.apk classes.dex lib/armeabi/libclassicube.so lib/armeabi-v7a/libclassicube.so lib/arm64-v8a/libclassicube.so lib/x86/libclassicube.so lib/x86_64/libclassicube.so
|
||||||
$TOOLS_ROOT/aapt add -f obj/cc-unsigned.apk classes.dex lib/armeabi/libclassicube.so lib/armeabi-v7a/libclassicube.so lib/arm64-v8a/libclassicube.so lib/x86/libclassicube.so lib/x86_64/libclassicube.so
|
|
||||||
# sign the apk with debug key (https://stackoverflow.com/questions/16711233/)
|
# sign the apk with debug key (https://stackoverflow.com/questions/16711233/)
|
||||||
cp obj/cc-unsigned.apk obj/cc-signed.apk
|
# Note per https://developer.android.com/tools/zipalign
|
||||||
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore debug.keystore -storepass android -keypass android obj/cc-signed.apk androiddebugkey
|
# - if using apksigner, zipalign must be called before apksigner
|
||||||
|
# - if using jarsigner, zipalign must be called after jarsigner
|
||||||
|
$TOOLS_ROOT/zipalign -f 4 cc-unsigned.apk cc-signed.apk
|
||||||
|
$TOOLS_ROOT/apksigner sign --ks debug.keystore --ks-pass pass:android cc-signed.apk
|
||||||
|
cp cc-signed.apk $ROOT_DIR/src/cc.apk
|
||||||
|
|
||||||
|
# old v1 only version (doesn't work properly now)
|
||||||
|
#cp cc-unsigned.apk cc-signed.apk
|
||||||
|
#jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore debug.keystore -storepass android -keypass android cc-signed.apk androiddebugkey
|
||||||
# jarsigner -verbose
|
# jarsigner -verbose
|
||||||
# create aligned .apk file
|
# create aligned .apk file
|
||||||
$TOOLS_ROOT/zipalign -f 4 obj/cc-signed.apk $ROOT_DIR/src/cc.apk
|
#$TOOLS_ROOT/zipalign -f 4 cc-signed.apk $ROOT_DIR/src/cc.apk
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile android build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc.apk'
|
SOURCE_FILE: 'src/cc.apk'
|
||||||
DEST_NAME: 'ClassiCube.apk'
|
DEST_NAME: 'cc.apk'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_success
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
|
WORKFLOW_NAME: 'android'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce android build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -13,29 +13,27 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/kos-builds/kos-dc:sha-656a397-14.1.0
|
image: ghcr.io/kos-builds/kos-dc:sha-20149ee-14.2.0
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Compile Dreamcast build
|
- name: Install prerequisites
|
||||||
id: compile
|
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get -y install genisoimage
|
apt-get -y install genisoimage
|
||||||
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/cdi4dc -O /opt/toolchains/dc/kos/utils/cdi4dc
|
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/cdi4dc -O /opt/toolchains/dc/kos/utils/cdi4dc
|
||||||
chmod +x /opt/toolchains/dc/kos/utils/cdi4dc
|
chmod +x /opt/toolchains/dc/kos/utils/cdi4dc
|
||||||
|
|
||||||
|
- name: Compile Dreamcast build
|
||||||
|
id: compile
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
export PATH=/opt/toolchains/dc/kos/utils/:$PATH
|
export PATH=/opt/toolchains/dc/kos/utils/:$PATH
|
||||||
make dreamcast
|
make dreamcast
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile Dreamcast build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
|
@ -43,6 +41,12 @@ jobs:
|
||||||
SOURCE_FILE: 'ClassiCube-dc.cdi'
|
SOURCE_FILE: 'ClassiCube-dc.cdi'
|
||||||
DEST_NAME: 'ClassiCube-dc.cdi'
|
DEST_NAME: 'ClassiCube-dc.cdi'
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'ClassiCube-dc.iso'
|
||||||
|
DEST_NAME: 'ClassiCube-dc.iso'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
|
|
@ -55,3 +59,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'dreamcast'
|
WORKFLOW_NAME: 'dreamcast'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce Dreamcast build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -13,63 +13,57 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: empterdose/freebsd-cross-build:11.4
|
image: empterdose/freebsd-cross-build:11.4
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install prerequisites
|
- name: Install prerequisites
|
||||||
run: apk add bash wget
|
run: apk add bash wget curl
|
||||||
|
|
||||||
- name: Retrieve OpenGL and X11 dev files (64 bit)
|
- name: Retrieve OpenGL and X11 dev files (64 bit)
|
||||||
run: |
|
run: |
|
||||||
mkdir src/freebsd64
|
mkdir freebsd64
|
||||||
cd src/freebsd64
|
cd freebsd64
|
||||||
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/freebsd64.zip
|
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/freebsd64.zip
|
||||||
unzip freebsd64.zip
|
unzip freebsd64.zip
|
||||||
|
|
||||||
- name: Retrieve OpenGL and X11 dev files (32 bit)
|
- name: Retrieve OpenGL and X11 dev files (32 bit)
|
||||||
run: |
|
run: |
|
||||||
mkdir src/freebsd32
|
mkdir freebsd32
|
||||||
cd src/freebsd32
|
cd freebsd32
|
||||||
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/freebsd32.zip
|
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/freebsd32.zip
|
||||||
unzip freebsd32.zip
|
unzip freebsd32.zip
|
||||||
|
|
||||||
- name: Compile FreeBSD builds
|
- name: Compile FreeBSD builds
|
||||||
id: compile
|
id: compile
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
LIBS: "-lm -lpthread -lX11 -lXi -lGL -lexecinfo"
|
||||||
PLAT32_FLAGS: "-fno-pie -fvisibility=hidden -fcf-protection=none -rdynamic -DCC_BUILD_ICON -I freebsd32/include -L freebsd32/lib"
|
SRCS: "src/*.c third_party/bearssl/*.c"
|
||||||
PLAT64_FLAGS: "-fno-pie -fvisibility=hidden -fcf-protection=none -rdynamic -DCC_BUILD_ICON -I freebsd64/include -L freebsd64/lib"
|
FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror -fvisibility=hidden -rdynamic -Werror"
|
||||||
|
PLAT32_FLAGS: "-fno-pie -fcf-protection=none -I freebsd32/include -L freebsd32/lib"
|
||||||
|
PLAT64_FLAGS: "-fno-pie -fcf-protection=none -I freebsd64/include -L freebsd64/lib"
|
||||||
|
|
||||||
run: |
|
run: |
|
||||||
apk add curl
|
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||||
|
|
||||||
cd src
|
i386-freebsd11-clang ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.PLAT32_FLAGS }} $LATEST_FLAG -o cc-fbsd32-gl1 ${{ env.LIBS }}
|
||||||
i386-freebsd11-clang *.c ${{ env.COMMON_FLAGS }} ${{ env.PLAT32_FLAGS }} $LATEST_FLAG -o cc-fbsd32-gl1 -lm -lpthread -lX11 -lXi -lGL -lexecinfo
|
x86_64-freebsd11-clang ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.PLAT64_FLAGS }} $LATEST_FLAG -o cc-fbsd64-gl1 ${{ env.LIBS }}
|
||||||
x86_64-freebsd11-clang *.c ${{ env.COMMON_FLAGS }} ${{ env.PLAT64_FLAGS }} $LATEST_FLAG -o cc-fbsd64-gl1 -lm -lpthread -lX11 -lXi -lGL -lexecinfo
|
|
||||||
|
|
||||||
|
|
||||||
# otherwise notify_failure doesn't work
|
|
||||||
- name: Install curl when necessary
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
run: apk add curl
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile FreeBSD build(s)'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-fbsd32-gl1'
|
SOURCE_FILE: 'cc-fbsd32-gl1'
|
||||||
DEST_NAME: 'ClassiCube-FreeBSD-32'
|
DEST_NAME: 'ClassiCube-FreeBSD-32'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-fbsd64-gl1'
|
SOURCE_FILE: 'cc-fbsd64-gl1'
|
||||||
DEST_NAME: 'ClassiCube-FreeBSD-64'
|
DEST_NAME: 'ClassiCube-FreeBSD-64'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -77,4 +71,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'freebsd'
|
WORKFLOW_NAME: 'freebsd'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce FreeBSD build(s)'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
name: Build latest (GBA)
|
||||||
|
# trigger via either push to selected branches or on manual run
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.ref }}-gba
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: devkitpro/devkitarm:latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Compile GBA build
|
||||||
|
id: compile
|
||||||
|
run: |
|
||||||
|
make gba
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'ClassiCube-gba.gba'
|
||||||
|
DEST_NAME: 'ClassiCube-gba.gba'
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'ClassiCube-gba.elf'
|
||||||
|
DEST_NAME: 'ClassiCube-gba.elf'
|
||||||
|
|
||||||
|
|
||||||
|
# NOTE: Not uploaded to website downloads at present
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce GBA build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
name: Build latest (GameCube)
|
||||||
|
# trigger via either push to selected branches or on manual run
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.ref }}-gc
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: ghcr.io/extremscorner/libogc2:latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Compile GameCube build
|
||||||
|
id: compile
|
||||||
|
run: |
|
||||||
|
make gamecube
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'ClassiCube-gc.dol'
|
||||||
|
DEST_NAME: 'ClassiCube-gc.dol'
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'ClassiCube-gc.elf'
|
||||||
|
DEST_NAME: 'ClassiCube-gc.elf'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_success
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
|
WORKFLOW_NAME: 'gc'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce GameCube build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
@ -12,32 +12,28 @@ concurrency:
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-haiku:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: haiku/cross-compiler:x86_64-r1beta4
|
image: haiku/cross-compiler:x86_64-r1beta4
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Compile haiku build
|
- name: Compile haiku build
|
||||||
id: compile
|
id: compile
|
||||||
env:
|
env:
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
LIBS: "-lm -lGL -lnetwork -lstdc++ -lbe -lgame -ltracker"
|
||||||
|
SRCS: "src/*.c src/Platform_BeOS.cpp src/Window_BeOS.cpp third_party/bearssl/*.c"
|
||||||
|
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror"
|
||||||
run: |
|
run: |
|
||||||
cd src
|
x86_64-unknown-haiku-gcc ${{ env.SRCS }} -o ClassiCube-haiku ${{ env.COMMON_FLAGS }} ${{ env.LIBS }}
|
||||||
x86_64-unknown-haiku-gcc *.c Platform_BeOS.cpp Window_BeOS.cpp -o ClassiCube-haiku ${{ env.COMMON_FLAGS }} -lm -lGL -lnetwork -lstdc++ -lbe -lgame -ltracker
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile Haiku build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/ClassiCube-haiku'
|
SOURCE_FILE: 'ClassiCube-haiku'
|
||||||
DEST_NAME: 'ClassiCube-haiku'
|
DEST_NAME: 'ClassiCube-haiku'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -45,4 +41,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'haiku'
|
WORKFLOW_NAME: 'haiku'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce Haiku build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -13,29 +13,25 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: macOS-12
|
timeout-minutes: 10
|
||||||
|
runs-on: macOS-14
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Compile iOS build
|
- name: Compile iOS build
|
||||||
id: compile
|
id: compile
|
||||||
run: |
|
run: |
|
||||||
cd ios
|
cd misc/ios
|
||||||
|
sudo xcode-select -s /Applications/Xcode_15.0.1.app/Contents/Developer
|
||||||
xcodebuild -sdk iphoneos -configuration Release CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO
|
xcodebuild -sdk iphoneos -configuration Release CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO
|
||||||
cd build/Release-iphoneos
|
cd build/Release-iphoneos
|
||||||
mkdir Payload
|
mkdir Payload
|
||||||
mv ClassiCube.app Payload/ClassiCube.app
|
mv ClassiCube.app Payload/ClassiCube.app
|
||||||
zip -r cc.ipa Payload
|
zip -r cc.ipa Payload
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile iOS build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'ios/build/Release-iphoneos/cc.ipa'
|
SOURCE_FILE: 'misc/ios/build/Release-iphoneos/cc.ipa'
|
||||||
DEST_NAME: 'cc.ipa'
|
DEST_NAME: 'cc.ipa'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -44,3 +40,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'ios'
|
WORKFLOW_NAME: 'ios'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce iOS build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -18,46 +18,50 @@ jobs:
|
||||||
# =============== 32 BIT LINUX ==============
|
# =============== 32 BIT LINUX ==============
|
||||||
# ===========================================
|
# ===========================================
|
||||||
build-32:
|
build-32:
|
||||||
runs-on: ubuntu-20.04
|
timeout-minutes: 10
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: ubuntu:20.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install packages
|
- name: Install packages
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
sudo dpkg --add-architecture i386
|
apt-get -y update
|
||||||
sudo apt-get -y update
|
apt-get -y install gcc-multilib wget curl unzip
|
||||||
sudo apt-get -y install gcc-multilib libx11-dev:i386 libxi-dev:i386 libgl1-mesa-dev:i386
|
|
||||||
|
- name: Retrieve dependencies
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/linux32.zip
|
||||||
|
unzip linux32.zip
|
||||||
|
|
||||||
- name: Compile 32 bit Linux builds
|
- name: Compile 32 bit Linux builds
|
||||||
shell: bash
|
shell: bash
|
||||||
id: compile
|
id: compile
|
||||||
env:
|
env:
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
LIBS: "-lX11 -lXi -lpthread -lGL -lm -ldl"
|
||||||
NIX32_FLAGS: "-no-pie -fno-pie -m32 -fvisibility=hidden -fcf-protection=none -rdynamic -DCC_BUILD_ICON"
|
SRCS: "src/*.c third_party/bearssl/*.c"
|
||||||
|
FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror -fvisibility=hidden -rdynamic -Werror"
|
||||||
|
NIX32_FLAGS: "-no-pie -fno-pie -m32 -fcf-protection=none -L ./lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||||
run: |
|
run: |
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"$(git rev-parse --short "$GITHUB_SHA")\"
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||||
|
|
||||||
cd src
|
gcc ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.NIX32_FLAGS }} $LATEST_FLAG -o cc-nix32-gl1 ${{ env.LIBS }}
|
||||||
gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.NIX32_FLAGS }} $LATEST_FLAG -o cc-nix32-gl1 -lX11 -lXi -lpthread -lGL -lm -ldl
|
gcc ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.NIX32_FLAGS }} $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -o cc-nix32-gl2 ${{ env.LIBS }}
|
||||||
gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.NIX32_FLAGS }} $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -o cc-nix32-gl2 -lX11 -lXi -lpthread -lGL -lm -ldl
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile 32 bit Linux build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-nix32-gl1'
|
SOURCE_FILE: 'cc-nix32-gl1'
|
||||||
DEST_NAME: 'ClassiCube-Linux32-OpenGL'
|
DEST_NAME: 'ClassiCube-Linux32-OpenGL'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-nix32-gl2'
|
SOURCE_FILE: 'cc-nix32-gl2'
|
||||||
DEST_NAME: 'ClassiCube-Linux32-ModernGL'
|
DEST_NAME: 'ClassiCube-Linux32-ModernGL'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -67,54 +71,69 @@ jobs:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'linux32'
|
WORKFLOW_NAME: 'linux32'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce 32 bit Linux build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
||||||
#============================================
|
#============================================
|
||||||
# =============== 64 BIT LINUX ==============
|
# =============== 64 BIT LINUX ==============
|
||||||
# ===========================================
|
# ===========================================
|
||||||
build-64:
|
build-64:
|
||||||
runs-on: ubuntu-20.04
|
timeout-minutes: 10
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: ubuntu:20.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
apt-get -y update
|
||||||
|
apt-get -y install gcc wget curl unzip
|
||||||
|
|
||||||
|
- name: Retrieve dependencies
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/linux64.zip
|
||||||
|
unzip linux64.zip
|
||||||
|
|
||||||
- name: Compile 64 bit Linux builds
|
- name: Compile 64 bit Linux builds
|
||||||
shell: bash
|
shell: bash
|
||||||
id: compile
|
id: compile
|
||||||
env:
|
env:
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
LIBS: "-lX11 -lXi -lpthread -lGL -lm -ldl"
|
||||||
NIX64_FLAGS: "-no-pie -fno-pie -m64 -fvisibility=hidden -fcf-protection=none -rdynamic -DCC_BUILD_ICON"
|
SRCS: "src/*.c third_party/bearssl/*.c"
|
||||||
|
FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror -fvisibility=hidden -rdynamic -Werror"
|
||||||
|
NIX64_FLAGS: "-no-pie -fno-pie -m64 -fcf-protection=none -rdynamic -L ./lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get -y update
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||||
sudo apt-get -y install libx11-dev libxi-dev libgl1-mesa-dev libsdl2-dev
|
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"$(git rev-parse --short "$GITHUB_SHA")\"
|
gcc ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.NIX64_FLAGS }} $LATEST_FLAG -o cc-nix64-gl1 ${{ env.LIBS }}
|
||||||
|
gcc ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.NIX64_FLAGS }} $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -o cc-nix64-gl2 ${{ env.LIBS }}
|
||||||
cd src
|
#gcc ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.NIX64_FLAGS }} $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -DCC_WIN_BACKEND=CC_WIN_BACKEND_SDL2 -o cc-sdl64-gl2 -lSDL2 ${{ env.LIBS }}
|
||||||
gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.NIX64_FLAGS }} $LATEST_FLAG -o cc-nix64-gl1 -lX11 -lXi -lpthread -lGL -lm -ldl
|
|
||||||
gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.NIX64_FLAGS }} $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -o cc-nix64-gl2 -lX11 -lXi -lpthread -lGL -lm -ldl
|
|
||||||
gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.NIX64_FLAGS }} $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -DCC_WIN_BACKEND=CC_WIN_BACKEND_SDL2 -o cc-sdl64-gl2 -lSDL2 -lpthread -lGL -lm -ldl
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile 64 bit Linux build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-nix64-gl1'
|
SOURCE_FILE: 'cc-nix64-gl1'
|
||||||
DEST_NAME: 'ClassiCube-Linux64-OpenGL'
|
DEST_NAME: 'ClassiCube-Linux64-OpenGL'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-nix64-gl2'
|
SOURCE_FILE: 'cc-nix64-gl2'
|
||||||
DEST_NAME: 'ClassiCube-Linux64-ModernGL'
|
DEST_NAME: 'ClassiCube-Linux64-ModernGL'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
# - uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
# if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
# with:
|
||||||
SOURCE_FILE: 'src/cc-sdl64-gl2'
|
# SOURCE_FILE: 'cc-sdl64-gl2'
|
||||||
DEST_NAME: 'ClassiCube-Linux64-SDL2'
|
# DEST_NAME: 'ClassiCube-Linux64-SDL2'
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_success
|
- uses: ./.github/actions/notify_success
|
||||||
|
|
@ -122,3 +141,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'linux64'
|
WORKFLOW_NAME: 'linux64'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce 64 bit Linux build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -13,70 +13,87 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/classicube/minimal-osxcross:latest
|
image: ghcr.io/classicube/minimal-osxcross:latest
|
||||||
credentials:
|
credentials:
|
||||||
username: UnknownShadow200
|
username: ${{ github.actor }}
|
||||||
password: ${{ secrets.GHCR_ACCESS_KEY }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Compile 32 bit macOS builds
|
- name: Compile 32 bit macOS builds
|
||||||
shell: bash
|
shell: bash
|
||||||
id: compile
|
id: compile
|
||||||
env:
|
env:
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -fvisibility=hidden -rdynamic -DCC_BUILD_ICON"
|
LIBS: "-framework Security -framework Cocoa -framework OpenGL -framework IOKit -lobjc -lgcc_s.1"
|
||||||
|
SRCS: "src/*.c src/Window_cocoa.m third_party/bearssl/*.c"
|
||||||
|
FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -fvisibility=hidden -rdynamic"
|
||||||
run: |
|
run: |
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||||
|
|
||||||
cd src
|
|
||||||
PATH=$PATH:/usr/local/compiler/target/bin
|
PATH=$PATH:/usr/local/compiler/target/bin
|
||||||
i386-apple-darwin8-clang *.c Window_cocoa.m ${{ env.COMMON_FLAGS }} $LATEST_FLAG -o cc-mac32-gl1 -framework Cocoa -framework OpenGL -framework IOKit -lobjc -lgcc_s.1
|
i386-apple-darwin8-clang ${{ env.SRCS }} ${{ env.FLAGS }} $LATEST_FLAG -o cc-mac32-gl1 ${{ env.LIBS }}
|
||||||
i386-apple-darwin8-clang *.c Window_cocoa.m ${{ env.COMMON_FLAGS }} $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -o cc-mac32-gl2 -framework Cocoa -framework OpenGL -framework IOKit -lobjc -lgcc_s.1
|
i386-apple-darwin8-clang ${{ env.SRCS }} ${{ env.FLAGS }} $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -o cc-mac32-gl2 ${{ env.LIBS }}
|
||||||
|
|
||||||
- name: Compile 32 bit macOS builds (PowerPC)
|
- name: Compile 32 bit macOS builds (PowerPC)
|
||||||
shell: bash
|
shell: bash
|
||||||
id: compile_ppc
|
id: compile_ppc
|
||||||
env:
|
env:
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -fvisibility=hidden -static-libgcc -Wl,-no_compact_unwind -DCC_BUILD_ICON -isystem /usr/local/compiler/ppc/target/SDK/MacOSX10.5.sdk -Wl,-syslibroot /usr/local/compiler/ppc/target/SDK/MacOSX10.5.sdk"
|
LIBS: "-framework Security -framework Cocoa -framework OpenGL -framework IOKit -lobjc"
|
||||||
|
SRCS: "src/*.c src/Window_cocoa.m third_party/bearssl/*.c"
|
||||||
|
FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -fvisibility=hidden -static-libgcc -Wl,-no_compact_unwind -isystem /usr/local/compiler/ppc/target/SDK/MacOSX10.5.sdk -Wl,-syslibroot /usr/local/compiler/ppc/target/SDK/MacOSX10.5.sdk"
|
||||||
run: |
|
run: |
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||||
|
|
||||||
mkdir -p /home/minty/repos/osxcross-ppc-test/target/bin
|
mkdir -p /home/minty/repos/osxcross-ppc-test/target/bin
|
||||||
ln -s /usr/local/compiler/ppc/target/bin/powerpc64-apple-darwin9-as /home/minty/repos/osxcross-ppc-test/target/bin/powerpc64-apple-darwin9-as
|
ln -s /usr/local/compiler/ppc/target/bin/powerpc64-apple-darwin9-as /home/minty/repos/osxcross-ppc-test/target/bin/powerpc64-apple-darwin9-as
|
||||||
cd src
|
|
||||||
PATH=$PATH:/usr/local/compiler/ppc/target/bin
|
PATH=$PATH:/usr/local/compiler/ppc/target/bin
|
||||||
powerpc-apple-darwin9-base-gcc *.c Window_cocoa.m ${{ env.COMMON_FLAGS }} $LATEST_FLAG -o cc-mac32-ppc -mmacosx-version-min=10.2.0 -m32 -framework Cocoa -framework OpenGL -framework IOKit -lobjc
|
powerpc-apple-darwin9-base-gcc *${{ env.SRCS }} ${{ env.FLAGS }} $LATEST_FLAG -o cc-mac32-ppc -mmacosx-version-min=10.2.0 -m32 ${{ env.LIBS }}
|
||||||
|
|
||||||
|
- name: Generate combined Intel + PowerPC build
|
||||||
- uses: ./.github/actions/notify_failure
|
shell: bash
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
id: gen_universal
|
||||||
with:
|
run: |
|
||||||
NOTIFY_MESSAGE: 'Failed to compile 32 bit macOS build'
|
PATH=$PATH:/usr/local/compiler/target/bin
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
i386-apple-darwin8-lipo -create -output cc-mac32-universal cc-mac32-gl1 cc-mac32-ppc
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-mac32-gl1'
|
SOURCE_FILE: 'cc-mac32-gl1'
|
||||||
DEST_NAME: 'ClassiCube-mac32-OpenGL'
|
DEST_NAME: 'ClassiCube-mac32-OpenGL'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-mac32-gl2'
|
SOURCE_FILE: 'cc-mac32-gl2'
|
||||||
DEST_NAME: 'ClassiCube-mac32-ModernGL'
|
DEST_NAME: 'ClassiCube-mac32-ModernGL'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile_ppc.outcome == 'success' }}
|
if: ${{ always() && steps.compile_ppc.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-mac32-ppc'
|
SOURCE_FILE: 'cc-mac32-ppc'
|
||||||
DEST_NAME: 'ClassiCube-mac32-PPC'
|
DEST_NAME: 'ClassiCube-mac32-PPC'
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.gen_universal.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'cc-mac32-universal'
|
||||||
|
DEST_NAME: 'ClassiCube-mac32'
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_success
|
- uses: ./.github/actions/notify_success
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'mac32'
|
WORKFLOW_NAME: 'mac32'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce 32 bit macOS build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: macOS-latest
|
runs-on: macOS-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
@ -22,42 +23,37 @@ jobs:
|
||||||
shell: bash
|
shell: bash
|
||||||
id: compile
|
id: compile
|
||||||
env:
|
env:
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
LIBS: "-framework Security -framework Cocoa -framework OpenGL -framework IOKit -lobjc"
|
||||||
MAC_ARM64_FLAGS: "-fvisibility=hidden -rdynamic -DCC_BUILD_ICON -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -arch arm64"
|
SRCS: "src/*.c src/Window_cocoa.m third_party/bearssl/*.c"
|
||||||
MAC_INTEL64_FLAGS: "-fvisibility=hidden -rdynamic -DCC_BUILD_ICON -arch x86_64"
|
FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -fvisibility=hidden -rdynamic"
|
||||||
|
ARM64_FLAGS: "-DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -arch arm64"
|
||||||
|
INTEL64_FLAGS: "-arch x86_64"
|
||||||
run: |
|
run: |
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"$(git rev-parse --short "$GITHUB_SHA")\"
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"$(git rev-parse --short "$GITHUB_SHA")\"
|
||||||
cd src
|
|
||||||
|
|
||||||
MACOSX_DEPLOYMENT_TARGET=10.5 clang *.c Window_cocoa.m ${{ env.COMMON_FLAGS }} ${{ env.MAC_INTEL64_FLAGS }} $LATEST_FLAG -o cc-mac64-gl1 -framework Cocoa -framework OpenGL -framework IOKit -lobjc
|
MACOSX_DEPLOYMENT_TARGET=10.5 clang ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.INTEL64_FLAGS }} $LATEST_FLAG -o cc-mac64-gl1 ${{ env.LIBS }}
|
||||||
MACOSX_DEPLOYMENT_TARGET=10.5 clang *.c Window_cocoa.m ${{ env.COMMON_FLAGS }} ${{ env.MAC_INTEL64_FLAGS }} $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -o cc-mac64-gl2 -framework Cocoa -framework OpenGL -framework IOKit -lobjc
|
MACOSX_DEPLOYMENT_TARGET=10.5 clang ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.INTEL64_FLAGS }} $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -o cc-mac64-gl2 ${{ env.LIBS }}
|
||||||
|
|
||||||
clang *.c Window_cocoa.m ${{ env.COMMON_FLAGS }} ${{ env.MAC_ARM64_FLAGS }} $LATEST_FLAG -o cc-mac-arm64 -framework Cocoa -framework OpenGL -framework IOKit -lobjc
|
clang ${{ env.SRCS }} ${{ env.COMMON_FLAGS }} ${{ env.ARM64_FLAGS }} $LATEST_FLAG -o cc-mac-arm64 ${{ env.LIBS }}
|
||||||
# https://wiki.freepascal.org/Code_Signing_for_macOS#Ad_hoc_signing
|
# https://wiki.freepascal.org/Code_Signing_for_macOS#Ad_hoc_signing
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile 64 bit macOS builds'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-mac64-gl1'
|
SOURCE_FILE: 'cc-mac64-gl1'
|
||||||
DEST_NAME: 'ClassiCube-mac64-OpenGL'
|
DEST_NAME: 'ClassiCube-mac64-OpenGL'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-mac64-gl2'
|
SOURCE_FILE: 'cc-mac64-gl2'
|
||||||
DEST_NAME: 'ClassiCube-mac64-ModernGL'
|
DEST_NAME: 'ClassiCube-mac64-ModernGL'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-mac-arm64'
|
SOURCE_FILE: 'cc-mac-arm64'
|
||||||
DEST_NAME: 'ClassiCube-mac-ARM64'
|
DEST_NAME: 'ClassiCube-mac-ARM64'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -66,3 +62,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'mac64'
|
WORKFLOW_NAME: 'mac64'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce 64 bit macOS builds'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,8 @@ concurrency:
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-mac-classic:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/autc04/retro68
|
image: ghcr.io/autc04/retro68
|
||||||
|
|
@ -21,16 +22,16 @@ jobs:
|
||||||
- name: Compile Mac classic build
|
- name: Compile Mac classic build
|
||||||
id: compile
|
id: compile
|
||||||
run: |
|
run: |
|
||||||
make macclassic_68k RETRO68=/Retro68-build/toolchain
|
|
||||||
make macclassic_ppc RETRO68=/Retro68-build/toolchain
|
make macclassic_ppc RETRO68=/Retro68-build/toolchain
|
||||||
|
make macclassic_68k RETRO68=/Retro68-build/toolchain
|
||||||
|
make macclassic_68k RETRO68=/Retro68-build/toolchain ARCH_68040=1
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
NOTIFY_MESSAGE: 'Failed to compile Mac Classic build'
|
SOURCE_FILE: 'ClassiCube-ppc.dsk'
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
DEST_NAME: 'ClassiCube-ppc.dsk'
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
|
@ -41,5 +42,19 @@ jobs:
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'ClassiCube-ppc.dsk'
|
SOURCE_FILE: 'ClassiCube-68040.dsk'
|
||||||
DEST_NAME: 'ClassiCube-ppc.dsk'
|
DEST_NAME: 'ClassiCube-68040.dsk'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_success
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
|
WORKFLOW_NAME: 'macclassic'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce Mac Classic build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
name: Build latest (MS DOS)
|
||||||
|
# trigger via either push to selected branches or on manual run
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.ref }}-msdos
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: ghcr.io/volkertb/debian-djgpp
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install prerequisites
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get -y install curl
|
||||||
|
|
||||||
|
- name: Compile MS dos build
|
||||||
|
id: compile
|
||||||
|
run: |
|
||||||
|
make CC=gcc dos
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'CCDOS.EXE'
|
||||||
|
DEST_NAME: 'ClassiCube.exe'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_success
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
|
WORKFLOW_NAME: 'msdos'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce MS DOS build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
@ -13,16 +13,20 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/dragonminded/libdragon:latest
|
image: ghcr.io/dragonminded/libdragon:preview
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Compile N64 build
|
- name: Install prerequisites
|
||||||
id: compile
|
|
||||||
run: |
|
run: |
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get -y install curl
|
apt-get -y install curl
|
||||||
|
|
||||||
|
- name: Compile N64 build
|
||||||
|
id: compile
|
||||||
|
run: |
|
||||||
REAL_DIR=`pwd`
|
REAL_DIR=`pwd`
|
||||||
cd /tmp
|
cd /tmp
|
||||||
git clone -b opengl https://github.com/DragonMinded/libdragon.git --depth=1
|
git clone -b opengl https://github.com/DragonMinded/libdragon.git --depth=1
|
||||||
|
|
@ -31,13 +35,6 @@ jobs:
|
||||||
make tools-install
|
make tools-install
|
||||||
cd $REAL_DIR
|
cd $REAL_DIR
|
||||||
make n64
|
make n64
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile N64 build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
|
|
@ -58,3 +55,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'n64'
|
WORKFLOW_NAME: 'n64'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce N64 build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -12,47 +12,49 @@ concurrency:
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-DS:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: skylyrac/blocksds:dev-latest
|
image: skylyrac/blocksds:dev-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install prerequisites
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get -y install curl
|
||||||
|
|
||||||
- name: Compile NDS build
|
- name: Compile NDS build
|
||||||
id: compile
|
id: compile
|
||||||
run: |
|
run: |
|
||||||
apt-get -y install curl
|
|
||||||
export BLOCKSDS=/opt/blocksds/core
|
|
||||||
export BLOCKSDSEXT=/opt/blocksds/external
|
|
||||||
make ds
|
make ds
|
||||||
export BUILD_DSI=1
|
export BUILD_NONET=1
|
||||||
make ds
|
make ds
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile NDS build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'ClassiCube-nds.nds'
|
SOURCE_FILE: 'ClassiCube.nds'
|
||||||
DEST_NAME: 'ClassiCube-nds.nds'
|
DEST_NAME: 'ClassiCube.nds'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'build-nds/ClassiCube.elf'
|
SOURCE_FILE: 'build/nds/cc-arm9.elf'
|
||||||
DEST_NAME: 'ClassiCube-nds.elf'
|
DEST_NAME: 'ClassiCube.elf'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'ClassiCube-dsi.nds'
|
SOURCE_FILE: 'ClassiCube-nonet.nds'
|
||||||
DEST_NAME: 'ClassiCube-dsi.nds'
|
DEST_NAME: 'ClassiCube-nonet.nds'
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'build/nds_nonet/cc-arm9.elf'
|
||||||
|
DEST_NAME: 'ClassiCube-nonet.elf'
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_success
|
- uses: ./.github/actions/notify_success
|
||||||
|
|
@ -60,3 +62,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'nds'
|
WORKFLOW_NAME: 'nds'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce NDS build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/cross-rs/x86_64-unknown-netbsd:edge
|
image: ghcr.io/cross-rs/x86_64-unknown-netbsd:edge
|
||||||
|
|
@ -22,37 +23,32 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get -y install zip wget
|
apt-get -y install zip wget
|
||||||
|
|
||||||
- name: Retrieve OpenGL and X11 dev files (64 bit)
|
- name: Retrieve OpenGL and X11 dev files (64 bit)
|
||||||
run: |
|
run: |
|
||||||
mkdir src/netbsd64
|
mkdir netbsd64
|
||||||
cd src/netbsd64
|
cd netbsd64
|
||||||
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/netbsd64.zip
|
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/netbsd64.zip
|
||||||
unzip netbsd64.zip
|
unzip netbsd64.zip
|
||||||
|
|
||||||
- name: Compile NetBSD builds
|
- name: Compile NetBSD builds
|
||||||
id: compile
|
id: compile
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
LIBS: "-lm -lpthread -lX11 -lXi -lGL -lexecinfo"
|
||||||
PLAT64_FLAGS: "-fno-pie -fvisibility=hidden -fcf-protection=none -rdynamic -DCC_BUILD_ICON -I netbsd64/include -L netbsd64/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
SRCS: "src/*.c third_party/bearssl/*.c"
|
||||||
|
FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror -Wl,-R/usr/X11R7/lib -fvisibility=hidden -rdynamic -Werror"
|
||||||
|
PLAT64_FLAGS: "-fno-pie -fcf-protection=none -I netbsd64/include -L netbsd64/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||||
run: |
|
run: |
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||||
echo $LATEST_FLAG
|
|
||||||
|
|
||||||
cd src
|
|
||||||
x86_64-unknown-netbsd-gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.PLAT64_FLAGS }} $LATEST_FLAG -o cc-netbsd64-gl1 -lm -lpthread -lX11 -lXi -lGL -lexecinfo
|
|
||||||
|
|
||||||
|
x86_64-unknown-netbsd-gcc ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.PLAT64_FLAGS }} $LATEST_FLAG -o cc-netbsd64-gl1 ${{ env.LIBS }}
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile NetBSD build(s)'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-netbsd64-gl1'
|
SOURCE_FILE: 'cc-netbsd64-gl1'
|
||||||
DEST_NAME: 'ClassiCube-NetBSD-64'
|
DEST_NAME: 'ClassiCube-NetBSD-64'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -60,4 +56,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'netbsd'
|
WORKFLOW_NAME: 'netbsd'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce NetBSD build(s)'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -13,51 +13,46 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-PS1:
|
build-PS1:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/classicube/minimal-psn00b:latest
|
image: ghcr.io/classicube/minimal-psn00b:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Compile PS1 build
|
- name: Install prerequisites
|
||||||
id: compile
|
|
||||||
run: |
|
run: |
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y curl
|
apt-get install -y curl
|
||||||
export PSNOOB=/usr/local/psnoob
|
|
||||||
export PATH=$PATH:$PSNOOB/bin
|
- name: Compile PS1 build
|
||||||
export PSN00BSDK_LIBS=$PSNOOB/lib/libpsn00b
|
id: compile
|
||||||
|
run: |
|
||||||
|
export PSN00BSDK_ROOT=/usr/local/psnoob
|
||||||
make ps1
|
make ps1
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile PS1 build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'misc/ps1/build/ClassiCube-PS1.elf'
|
SOURCE_FILE: 'build/ps1/ClassiCube-ps1.elf'
|
||||||
DEST_NAME: 'ClassiCube-PS1.elf'
|
DEST_NAME: 'ClassiCube-PS1.elf'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'misc/ps1/build/ClassiCube-PS1.exe'
|
SOURCE_FILE: 'ClassiCube-ps1.exe'
|
||||||
DEST_NAME: 'ClassiCube-PS1.exe'
|
DEST_NAME: 'ClassiCube-PS1.exe'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'misc/ps1/build/ClassiCube-PS1.bin'
|
SOURCE_FILE: 'ClassiCube-ps1.bin'
|
||||||
DEST_NAME: 'ClassiCube-PS1.bin'
|
DEST_NAME: 'ClassiCube-PS1.bin'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'misc/ps1/build/ClassiCube-PS1.cue'
|
SOURCE_FILE: 'ClassiCube-ps1.cue'
|
||||||
DEST_NAME: 'ClassiCube-PS1.cue'
|
DEST_NAME: 'ClassiCube-PS1.cue'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -66,3 +61,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'ps1'
|
WORKFLOW_NAME: 'ps1'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce PS1 build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -13,24 +13,21 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/ps2dev/ps2sdk:latest
|
image: ghcr.io/ps2dev/ps2sdk:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install prerequisites
|
||||||
|
run: |
|
||||||
|
apk add make mpc1 curl
|
||||||
|
|
||||||
- name: Compile PS2 build
|
- name: Compile PS2 build
|
||||||
id: compile
|
id: compile
|
||||||
run: |
|
run: |
|
||||||
apk add make mpc1 curl
|
|
||||||
make ps2
|
make ps2
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile PS2 build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
|
@ -49,4 +46,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'ps2'
|
WORKFLOW_NAME: 'ps2'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce PS2 build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -13,16 +13,20 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-PS3:
|
build-PS3:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/classicube/minimal-psl1ght:latest
|
image: ghcr.io/classicube/minimal-psl1ght:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Compile PS3 build
|
- name: Install prerequisites
|
||||||
id: compile
|
|
||||||
run: |
|
run: |
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y curl
|
apt-get install -y curl
|
||||||
|
|
||||||
|
- name: Compile PS3 build
|
||||||
|
id: compile
|
||||||
|
run: |
|
||||||
export PS3DEV=/usr/local/ps3dev
|
export PS3DEV=/usr/local/ps3dev
|
||||||
export PSL1GHT=/usr/local/ps3dev
|
export PSL1GHT=/usr/local/ps3dev
|
||||||
export PATH=$PATH:$PS3DEV/bin
|
export PATH=$PATH:$PS3DEV/bin
|
||||||
|
|
@ -30,13 +34,6 @@ jobs:
|
||||||
make ps3
|
make ps3
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile PS3 build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
|
|
@ -61,3 +58,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'ps3'
|
WORKFLOW_NAME: 'ps3'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce PS3 build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -12,26 +12,22 @@ concurrency:
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-PSP:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: pspdev/pspdev:latest
|
image: pspdev/pspdev:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install prerequisites
|
||||||
|
run: |
|
||||||
|
apk add curl curl-dev
|
||||||
|
|
||||||
- name: Compile PSP build
|
- name: Compile PSP build
|
||||||
id: compile
|
id: compile
|
||||||
run: |
|
run: |
|
||||||
apk add curl curl-dev
|
|
||||||
export PSPSDK=$(psp-config --pspsdk-path)
|
|
||||||
make psp
|
make psp
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile PSP build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
|
@ -51,3 +47,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'psp'
|
WORKFLOW_NAME: 'psp'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce PSP build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -16,40 +16,37 @@ jobs:
|
||||||
# ================ 32 BIT RPI ===============
|
# ================ 32 BIT RPI ===============
|
||||||
# ===========================================
|
# ===========================================
|
||||||
build-RPI32:
|
build-RPI32:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: dockcross/linux-armv6-lts
|
image: dockcross/linux-armv6-lts
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Retrieve OpenGL and X11 dev files
|
- name: Retrieve OpenGL and X11 dev files
|
||||||
run: |
|
run: |
|
||||||
mkdir src/rpi
|
mkdir rpi
|
||||||
cd src/rpi
|
cd rpi
|
||||||
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/rpi32.zip
|
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/rpi32.zip
|
||||||
unzip rpi32.zip
|
unzip rpi32.zip
|
||||||
|
|
||||||
- name: Compile RPI 32 bit build
|
- name: Compile RPI 32 bit build
|
||||||
id: compile
|
id: compile
|
||||||
env:
|
env:
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
LIBS: "-lGLESv2 -lEGL -lX11 -lXi -lm -lpthread -ldl -lrt"
|
||||||
RPI32_FLAGS: "-fvisibility=hidden -rdynamic -DCC_BUILD_ICON -DCC_BUILD_RPI -I rpi/include -L rpi/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
SRCS: "src/*.c third_party/bearssl/*.c"
|
||||||
|
FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror -fvisibility=hidden -rdynamic"
|
||||||
|
RPI32_FLAGS: "-DCC_BUILD_RPI -I rpi/include -L rpi/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||||
run: |
|
run: |
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"$GITHUB_SHA\"
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"$GITHUB_SHA\"
|
||||||
|
|
||||||
cd src
|
$CC ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.RPI32_FLAGS }} $LATEST_FLAG -o cc-rpi32 ${{ env.LIBS }}
|
||||||
$CC *.c ${{ env.COMMON_FLAGS }} ${{ env.RPI32_FLAGS }} $LATEST_FLAG -o cc-rpi32 -lGLESv2 -lEGL -lX11 -lXi -lm -lpthread -ldl -lrt
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile RPI 32 bit build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-rpi32'
|
SOURCE_FILE: 'cc-rpi32'
|
||||||
DEST_NAME: 'cc-rpi32'
|
DEST_NAME: 'cc-rpi32'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -60,44 +57,48 @@ jobs:
|
||||||
WORKFLOW_NAME: 'rpi32'
|
WORKFLOW_NAME: 'rpi32'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce RPI 32 bit build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
||||||
|
|
||||||
#============================================
|
#============================================
|
||||||
# ================ 64 BIT RPI ===============
|
# ================ 64 BIT RPI ===============
|
||||||
# ===========================================
|
# ===========================================
|
||||||
build-RPI64:
|
build-RPI64:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: dockcross/linux-arm64-lts
|
image: dockcross/linux-arm64-lts
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Retrieve OpenGL and X11 dev files
|
- name: Retrieve OpenGL and X11 dev files
|
||||||
run: |
|
run: |
|
||||||
mkdir src/rpi
|
mkdir rpi
|
||||||
cd src/rpi
|
cd rpi
|
||||||
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/rpi64.zip
|
wget https://github.com/ClassiCube/rpi-compiling-stuff/raw/main/rpi64.zip
|
||||||
unzip rpi64.zip
|
unzip rpi64.zip
|
||||||
|
|
||||||
- name: Compile RPI 64 bit build
|
- name: Compile RPI 64 bit build
|
||||||
id: compile
|
id: compile
|
||||||
env:
|
env:
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
LIBS: "-lGLESv2 -lEGL -lX11 -lXi -lm -lpthread -ldl -lrt"
|
||||||
RPI64_FLAGS: "-fvisibility=hidden -rdynamic -DCC_BUILD_ICON -DCC_BUILD_RPI -I rpi/include -L rpi/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
SRCS: "src/*.c third_party/bearssl/*.c"
|
||||||
|
FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror -fvisibility=hidden -rdynamic"
|
||||||
|
RPI64_FLAGS: "-DCC_BUILD_RPI -I rpi/include -L rpi/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||||
run: |
|
run: |
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"$GITHUB_SHA\"
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"$GITHUB_SHA\"
|
||||||
|
|
||||||
cd src
|
$CC ${{ env.SRCS }} ${{ env.FLAGS }} ${{ env.RPI64_FLAGS }} $LATEST_FLAG -o cc-rpi64 ${{ env.LIBS }}
|
||||||
$CC *.c ${{ env.COMMON_FLAGS }} ${{ env.RPI64_FLAGS }} $LATEST_FLAG -o cc-rpi64 -lGLESv2 -lEGL -lX11 -lXi -lm -lpthread -ldl -lrt
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile RPI 64 bit build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-rpi64'
|
SOURCE_FILE: 'cc-rpi64'
|
||||||
DEST_NAME: 'cc-rpi64'
|
DEST_NAME: 'cc-rpi64'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -105,4 +106,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'rpi64'
|
WORKFLOW_NAME: 'rpi64'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce RPI 64 bit build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -13,29 +13,27 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ijacquez/yaul:1.0.10
|
image: ijacquez/yaul:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install prerequisites
|
||||||
|
run: |
|
||||||
|
apt-get --allow-releaseinfo-change update
|
||||||
|
apt-get install -y curl
|
||||||
|
|
||||||
- name: Compile Saturn build
|
- name: Compile Saturn build
|
||||||
id: compile
|
id: compile
|
||||||
run: |
|
run: |
|
||||||
apt-get update
|
|
||||||
apt-get -y install curl
|
|
||||||
make saturn
|
make saturn
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile Saturn build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'build-saturn/ClassiCube-saturn.elf'
|
SOURCE_FILE: 'build/saturn/ClassiCube-saturn.elf'
|
||||||
DEST_NAME: 'ClassiCube-saturn.elf'
|
DEST_NAME: 'ClassiCube-saturn.elf'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
|
|
@ -56,3 +54,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'saturn'
|
WORKFLOW_NAME: 'saturn'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce Saturn build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,8 @@ concurrency:
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-switch:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: devkitpro/devkita64:latest
|
image: devkitpro/devkita64:latest
|
||||||
|
|
@ -23,13 +24,6 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
make switch
|
make switch
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile Switch build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
|
@ -48,4 +42,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'switch'
|
WORKFLOW_NAME: 'switch'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce Switch build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
name: Build latest (Symbian)
|
||||||
|
# trigger via either push to selected branches or on manual run
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
- ModernLighting
|
||||||
|
- AngledLighting
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.ref }}-symbian
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Download Symbian SDK
|
||||||
|
run: Invoke-WebRequest https://nnp.nnchan.ru/dl/symbiansr1_gcce_workflow.zip -OutFile symbiansdk.zip
|
||||||
|
- name: Extract Symbian SDK
|
||||||
|
run: Expand-Archive symbiansdk.zip -DestinationPath .
|
||||||
|
|
||||||
|
- name: Compile Symbian build
|
||||||
|
id: compile
|
||||||
|
run: |
|
||||||
|
$SDK = "$pwd/SDK/"
|
||||||
|
$Env:EPOCROOT = "$SDK".Substring(2)
|
||||||
|
$Env:SBS_GCCE441BIN = "$pwd/GCCE/bin"
|
||||||
|
cmd /c "$SDK/epoc32/tools/sbs\bin\sbs.bat -b misc/symbian/bld.inf -c armv5_urel_gcce -f - -m $SDK/epoc32/build/ClassiCube/makefile -j 4"
|
||||||
|
|
||||||
|
cd misc/symbian
|
||||||
|
(Get-Content ClassiCube.pkg).Replace('$(EPOCROOT)', "$SDK").Replace('$(PLATFORM)', 'armv5').Replace('$(TARGET)', 'urel') | Set-Content ClassiCube.pkg
|
||||||
|
cmd /c "$SDK/epoc32/tools/makesis.exe ClassiCube.pkg ClassiCube.sis"
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'misc/symbian/ClassiCube.sis'
|
||||||
|
DEST_NAME: 'ClassiCube-Symbian.sis'
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'SDK/epoc32/release/armv5/urel/ClassiCube_s60v5.exe'
|
||||||
|
DEST_NAME: 'ClassiCube_s60v5.exe'
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'SDK/epoc32/release/armv5/urel/ClassiCube_s60v3.exe'
|
||||||
|
DEST_NAME: 'ClassiCube_s60v3.exe'
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'SDK/epoc32/release/armv5/urel/ClassiCube_s60v5.exe.sym'
|
||||||
|
DEST_NAME: 'ClassiCube_s60v5.elf'
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'SDK/epoc32/release/armv5/urel/ClassiCube_s60v3.exe.sym'
|
||||||
|
DEST_NAME: 'ClassiCube_s60v3.elf'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_success
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
|
WORKFLOW_NAME: 'symbian'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce Symbian build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
@ -12,7 +12,8 @@ concurrency:
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-Vita:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: vitasdk/vitasdk:latest
|
image: vitasdk/vitasdk:latest
|
||||||
|
|
@ -23,13 +24,6 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
make vita
|
make vita
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile Vita build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
|
@ -48,4 +42,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'vita'
|
WORKFLOW_NAME: 'vita'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce Vita build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: trzeci/emscripten-fastcomp:1.39.0
|
image: trzeci/emscripten-fastcomp:1.39.0
|
||||||
|
|
@ -20,21 +21,16 @@ jobs:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Compiles webclient
|
- name: Compiles webclient
|
||||||
id: compile
|
id: compile
|
||||||
|
env:
|
||||||
|
SRCS: "src/*.c src/webclient/*.c"
|
||||||
run: |
|
run: |
|
||||||
cd src
|
emcc ${{ env.SRCS }} -o ClassiCube.js -s WASM=0 -s NO_EXIT_RUNTIME=1 -s LEGACY_VM_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 -s ABORTING_MALLOC=0 -s ENVIRONMENT=web -s TOTAL_STACK=256Kb --js-library src/webclient/interop_web.js -Os -g2 -s SINGLE_FILE
|
||||||
emcc *.c -o ClassiCube.js -s WASM=0 -s NO_EXIT_RUNTIME=1 -s LEGACY_VM_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 -s ABORTING_MALLOC=0 -s ENVIRONMENT=web -s TOTAL_STACK=256Kb --js-library interop_web.js -Os -g2 -s SINGLE_FILE
|
|
||||||
sed -i 's#eventHandler.useCapture);#{ useCapture: eventHandler.useCapture, passive: false });#g' ClassiCube.js
|
sed -i 's#eventHandler.useCapture);#{ useCapture: eventHandler.useCapture, passive: false });#g' ClassiCube.js
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile Webclient'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/ClassiCube.js'
|
SOURCE_FILE: 'ClassiCube.js'
|
||||||
DEST_NAME: 'ClassiCube.js'
|
DEST_NAME: 'ClassiCube.js'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -42,4 +38,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'webclient'
|
WORKFLOW_NAME: 'webclient'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce Webclient'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
name: Build latest (Wii/GameCube)
|
name: Build latest (Wii)
|
||||||
# trigger via either push to selected branches or on manual run
|
# trigger via either push to selected branches or on manual run
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
|
@ -8,22 +8,21 @@ on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.ref }}-wiigc
|
group: ${{ github.ref }}-wii
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: devkitpro/devkitppc:latest
|
image: devkitpro/devkitppc:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Compile Wii and GameCube build
|
- name: Compile Wii build
|
||||||
id: compile
|
id: compile
|
||||||
run: |
|
run: |
|
||||||
make wii
|
make wii
|
||||||
make clean
|
|
||||||
make gamecube
|
|
||||||
|
|
||||||
- name: Create Wii homebrew
|
- name: Create Wii homebrew
|
||||||
run: |
|
run: |
|
||||||
|
|
@ -31,13 +30,6 @@ jobs:
|
||||||
cp ClassiCube-wii.dol wiitest/apps/ClassiCube/boot.dol
|
cp ClassiCube-wii.dol wiitest/apps/ClassiCube/boot.dol
|
||||||
cp misc/wii/icon.png wiitest/apps/ClassiCube/icon.png
|
cp misc/wii/icon.png wiitest/apps/ClassiCube/icon.png
|
||||||
cp misc/wii/meta.xml wiitest/apps/ClassiCube/meta.xml
|
cp misc/wii/meta.xml wiitest/apps/ClassiCube/meta.xml
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile Wii/Gamecube build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
|
|
@ -46,24 +38,12 @@ jobs:
|
||||||
SOURCE_FILE: 'ClassiCube-wii.dol'
|
SOURCE_FILE: 'ClassiCube-wii.dol'
|
||||||
DEST_NAME: 'ClassiCube-wii.dol'
|
DEST_NAME: 'ClassiCube-wii.dol'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
|
||||||
with:
|
|
||||||
SOURCE_FILE: 'ClassiCube-gc.dol'
|
|
||||||
DEST_NAME: 'ClassiCube-gc.dol'
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'ClassiCube-wii.elf'
|
SOURCE_FILE: 'ClassiCube-wii.elf'
|
||||||
DEST_NAME: 'ClassiCube-wii.elf'
|
DEST_NAME: 'ClassiCube-wii.elf'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
|
||||||
with:
|
|
||||||
SOURCE_FILE: 'ClassiCube-gc.elf'
|
|
||||||
DEST_NAME: 'ClassiCube-gc.elf'
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
|
|
@ -75,4 +55,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'wiigc'
|
WORKFLOW_NAME: 'wii'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce Wii build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
@ -13,6 +13,7 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: devkitpro/devkitppc:latest
|
image: devkitpro/devkitppc:latest
|
||||||
|
|
@ -22,13 +23,6 @@ jobs:
|
||||||
id: compile
|
id: compile
|
||||||
run: |
|
run: |
|
||||||
make wiiu
|
make wiiu
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile WiiU build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
|
|
@ -54,4 +48,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'wiiu'
|
WORKFLOW_NAME: 'wiiu'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce WiiU build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ jobs:
|
||||||
# ============== ARM32 WINDOWS ==============
|
# ============== ARM32 WINDOWS ==============
|
||||||
# ===========================================
|
# ===========================================
|
||||||
build-32:
|
build-32:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: dockcross/windows-armv7
|
image: dockcross/windows-armv7
|
||||||
|
|
@ -24,31 +25,33 @@ jobs:
|
||||||
- name: Compile ARM32 Windows builds
|
- name: Compile ARM32 Windows builds
|
||||||
shell: bash
|
shell: bash
|
||||||
id: compile
|
id: compile
|
||||||
env:
|
env:
|
||||||
|
LIBS: "-lwinmm -limagehlp"
|
||||||
|
SRCS: "src/*.c third_party/bearssl/*.c"
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
||||||
WIN32_FLAGS: "-mwindows -nostartfiles -Wl,-emain_real -DCC_NOMAIN -DCC_GFX_BACKEND=CC_GFX_BACKEND_D3D11"
|
WIN32_FLAGS: "-mwindows -nostartfiles -Wl,-emain_real -DCC_NOMAIN -DCC_GFX_BACKEND=CC_GFX_BACKEND_D3D11"
|
||||||
run: |
|
run: |
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||||
|
|
||||||
cd src
|
armv7-w64-mingw32-gcc ${{ env.SRCS }} ${{ env.COMMON_FLAGS }} ${{ env.WIN32_FLAGS }} -o cc-arm32-d3d11.exe $LATEST_FLAG ${{ env.LIBS }}
|
||||||
armv7-w64-mingw32-gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.WIN32_FLAGS }} -o cc-arm32-d3d11.exe $LATEST_FLAG -lwinmm -limagehlp
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile 32 bit Windows build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-arm32-d3d11.exe'
|
SOURCE_FILE: 'cc-arm32-d3d11.exe'
|
||||||
DEST_NAME: 'ClassiCube-arm32-Direct3D11.exe'
|
DEST_NAME: 'ClassiCube-arm32-Direct3D11.exe'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce 32 bit Windows-ARM build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
#============================================
|
#============================================
|
||||||
# ============== ARM64 WINDOWS ==============
|
# ============== ARM64 WINDOWS ==============
|
||||||
# ===========================================
|
# ===========================================
|
||||||
build-64:
|
build-64:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: dockcross/windows-arm64
|
image: dockcross/windows-arm64
|
||||||
|
|
@ -58,23 +61,32 @@ jobs:
|
||||||
shell: bash
|
shell: bash
|
||||||
id: compile
|
id: compile
|
||||||
env:
|
env:
|
||||||
|
LIBS: "-lwinmm -limagehlp"
|
||||||
|
SRCS: "src/*.c third_party/bearssl/*.c"
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
||||||
WIN64_FLAGS: "-mwindows -nostartfiles -Wl,-emain_real -DCC_NOMAIN -DCC_GFX_BACKEND=CC_GFX_BACKEND_D3D11"
|
WIN64_FLAGS: "-mwindows -nostartfiles -Wl,-emain_real -DCC_NOMAIN -DCC_GFX_BACKEND=CC_GFX_BACKEND_D3D11"
|
||||||
run: |
|
run: |
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||||
|
|
||||||
cd src
|
aarch64-w64-mingw32-gcc ${{ env.SRCS }} ${{ env.COMMON_FLAGS }} ${{ env.WIN64_FLAGS }} -o cc-arm64-d3d11.exe $LATEST_FLAG ${{ env.LIBS }}
|
||||||
aarch64-w64-mingw32-gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.WIN64_FLAGS }} -o cc-arm64-d3d11.exe $LATEST_FLAG -lwinmm -limagehlp
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
- uses: ./.github/actions/notify_failure
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
if: failure()
|
||||||
with:
|
with:
|
||||||
NOTIFY_MESSAGE: 'Failed to compile 64 bit Windows build'
|
NOTIFY_MESSAGE: 'Failed to produce 64 bit Windows build'
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-arm64-d3d11.exe'
|
SOURCE_FILE: 'cc-arm64-d3d11.exe'
|
||||||
DEST_NAME: 'ClassiCube-arm64-Direct3D11.exe'
|
DEST_NAME: 'ClassiCube-arm64-Direct3D11.exe'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce 64 bit Windows-ARM build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -18,58 +18,58 @@ jobs:
|
||||||
# ============== 32 BIT WINDOWS =============
|
# ============== 32 BIT WINDOWS =============
|
||||||
# ===========================================
|
# ===========================================
|
||||||
build-32:
|
build-32:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo apt-get -y install gcc-mingw-w64-i686
|
||||||
|
|
||||||
- name: Compile 32 bit Windows builds
|
- name: Compile 32 bit Windows builds
|
||||||
shell: bash
|
shell: bash
|
||||||
id: compile
|
id: compile
|
||||||
env:
|
env:
|
||||||
|
LIBS: "-lwinmm -limagehlp"
|
||||||
|
SRCS: "src/*.c third_party/bearssl/*.c"
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
||||||
WIN32_FLAGS: "-mwindows -nostartfiles -Wl,-e_main_real -DCC_NOMAIN CCicon_32.res"
|
WIN32_FLAGS: "-mwindows -nostartfiles -Wl,-e_main_real -DCC_NOMAIN src/CCicon_32.res"
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get -y install gcc-mingw-w64-i686
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"$(git rev-parse --short "$GITHUB_SHA")\"
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"$(git rev-parse --short "$GITHUB_SHA")\"
|
|
||||||
|
|
||||||
cp misc/windows/CCicon_32.res src/CCicon_32.res
|
cp misc/windows/CCicon_32.res src/CCicon_32.res
|
||||||
cd src
|
|
||||||
i686-w64-mingw32-gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.WIN32_FLAGS }} -o cc-w32-d3d9.exe $LATEST_FLAG -lwinmm -limagehlp
|
i686-w64-mingw32-gcc ${{ env.SRCS }} ${{ env.COMMON_FLAGS }} ${{ env.WIN32_FLAGS }} -o cc-w32-d3d9.exe $LATEST_FLAG ${{ env.LIBS }}
|
||||||
i686-w64-mingw32-gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.WIN32_FLAGS }} -o cc-w32-ogl.exe $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL1 -lwinmm -limagehlp -lopengl32
|
i686-w64-mingw32-gcc ${{ env.SRCS }} ${{ env.COMMON_FLAGS }} ${{ env.WIN32_FLAGS }} -o cc-w32-ogl.exe $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL1 ${{ env.LIBS }}
|
||||||
i686-w64-mingw32-gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.WIN32_FLAGS }} -o cc-w32-d3d11.exe $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_D3D11 -lwinmm -limagehlp
|
i686-w64-mingw32-gcc ${{ env.SRCS }} ${{ env.COMMON_FLAGS }} ${{ env.WIN32_FLAGS }} -o cc-w32-d3d11.exe $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_D3D11 ${{ env.LIBS }}
|
||||||
|
|
||||||
# mingw defaults to i686, but some really old CPUs only support i586
|
# mingw defaults to i686, but some really old CPUs only support i586
|
||||||
i686-w64-mingw32-gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.WIN32_FLAGS }} -march=i586 -o cc-w9x-ogl.exe $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL1 -DCC_BUILD_NOSTDLIB -lwinmm -limagehlp -lopengl32
|
i686-w64-mingw32-gcc ${{ env.SRCS }} ${{ env.COMMON_FLAGS }} ${{ env.WIN32_FLAGS }} -march=i586 -o cc-w9x-ogl.exe $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL1 -DCC_BUILD_NOSTDLIB ${{ env.LIBS }}
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile 32 bit Windows build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-w32-d3d9.exe'
|
SOURCE_FILE: 'cc-w32-d3d9.exe'
|
||||||
DEST_NAME: 'ClassiCube-Win32-Direct3D9.exe'
|
DEST_NAME: 'ClassiCube-Win32-Direct3D9.exe'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-w32-ogl.exe'
|
SOURCE_FILE: 'cc-w32-ogl.exe'
|
||||||
DEST_NAME: 'ClassiCube-Win32-OpenGL.exe'
|
DEST_NAME: 'ClassiCube-Win32-OpenGL.exe'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-w32-d3d11.exe'
|
SOURCE_FILE: 'cc-w32-d3d11.exe'
|
||||||
DEST_NAME: 'ClassiCube-Win32-Direct3D11.exe'
|
DEST_NAME: 'ClassiCube-Win32-Direct3D11.exe'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-w9x-ogl.exe'
|
SOURCE_FILE: 'cc-w9x-ogl.exe'
|
||||||
DEST_NAME: 'ClassiCube-Win9x.exe'
|
DEST_NAME: 'ClassiCube-Win9x.exe'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -78,55 +78,62 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'win32'
|
WORKFLOW_NAME: 'win32'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce 32 bit Windows build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
||||||
|
|
||||||
#============================================
|
#============================================
|
||||||
# ============== 64 BIT WINDOWS =============
|
# ============== 64 BIT WINDOWS =============
|
||||||
# ===========================================
|
# ===========================================
|
||||||
build-64:
|
build-64:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo apt-get -y install gcc-mingw-w64-x86-64
|
||||||
|
|
||||||
- name: Compile 64 bit Windows builds
|
- name: Compile 64 bit Windows builds
|
||||||
shell: bash
|
shell: bash
|
||||||
id: compile
|
id: compile
|
||||||
env:
|
env:
|
||||||
|
LIBS: "-lwinmm -limagehlp"
|
||||||
|
SRCS: "src/*.c third_party/bearssl/*.c"
|
||||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
||||||
WIN64_FLAGS: "-mwindows -nostartfiles -Wl,-emain_real -DCC_NOMAIN CCicon_64.res"
|
WIN64_FLAGS: "-mwindows -nostartfiles -Wl,-emain_real -DCC_NOMAIN src/CCicon_64.res"
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get -y install gcc-mingw-w64-x86-64
|
|
||||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"$(git rev-parse --short "$GITHUB_SHA")\"
|
LATEST_FLAG=-DCC_COMMIT_SHA=\"$(git rev-parse --short "$GITHUB_SHA")\"
|
||||||
|
|
||||||
cp misc/windows/CCicon_64.res src/CCicon_64.res
|
cp misc/windows/CCicon_64.res src/CCicon_64.res
|
||||||
cd src
|
x86_64-w64-mingw32-gcc ${{ env.SRCS }} ${{ env.COMMON_FLAGS }} ${{ env.WIN64_FLAGS }} -o cc-w64-d3d9.exe $LATEST_FLAG ${{ env.LIBS }}
|
||||||
x86_64-w64-mingw32-gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.WIN64_FLAGS }} -o cc-w64-d3d9.exe $LATEST_FLAG -lwinmm -limagehlp
|
x86_64-w64-mingw32-gcc ${{ env.SRCS }} ${{ env.COMMON_FLAGS }} ${{ env.WIN64_FLAGS }} -o cc-w64-ogl.exe $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL1 ${{ env.LIBS }}
|
||||||
x86_64-w64-mingw32-gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.WIN64_FLAGS }} -o cc-w64-ogl.exe $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL1 -lwinmm -limagehlp -lopengl32
|
x86_64-w64-mingw32-gcc ${{ env.SRCS }} ${{ env.COMMON_FLAGS }} ${{ env.WIN64_FLAGS }} -o cc-w64-d3d11.exe $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_D3D11 ${{ env.LIBS }}
|
||||||
x86_64-w64-mingw32-gcc *.c ${{ env.COMMON_FLAGS }} ${{ env.WIN64_FLAGS }} -o cc-w64-d3d11.exe $LATEST_FLAG -DCC_GFX_BACKEND=CC_GFX_BACKEND_D3D11 -lwinmm -limagehlp
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile 64 bit Windows build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-w64-d3d9.exe'
|
SOURCE_FILE: 'cc-w64-d3d9.exe'
|
||||||
DEST_NAME: 'ClassiCube-Win64-Direct3D9.exe'
|
DEST_NAME: 'ClassiCube-Win64-Direct3D9.exe'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-w64-ogl.exe'
|
SOURCE_FILE: 'cc-w64-ogl.exe'
|
||||||
DEST_NAME: 'ClassiCube-Win64-OpenGL.exe'
|
DEST_NAME: 'ClassiCube-Win64-OpenGL.exe'
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
SOURCE_FILE: 'src/cc-w64-d3d11.exe'
|
SOURCE_FILE: 'cc-w64-d3d11.exe'
|
||||||
DEST_NAME: 'ClassiCube-Win64-Direct3D11.exe'
|
DEST_NAME: 'ClassiCube-Win64-Direct3D11.exe'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -135,3 +142,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'win64'
|
WORKFLOW_NAME: 'win64'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce 64 bit Windows build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -12,26 +12,22 @@ concurrency:
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-Xbox:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/xboxdev/nxdk:git-e955705a
|
image: ghcr.io/xboxdev/nxdk:git-e955705a
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install prerequisites
|
||||||
|
run: |
|
||||||
|
apk add curl curl-dev
|
||||||
|
|
||||||
- name: Compile Xbox build
|
- name: Compile Xbox build
|
||||||
id: compile
|
id: compile
|
||||||
run: |
|
run: |
|
||||||
apk add curl curl-dev
|
|
||||||
eval $(/usr/src/nxdk/bin/activate -s)
|
eval $(/usr/src/nxdk/bin/activate -s)
|
||||||
make xbox
|
make xbox
|
||||||
cp bin/default.xbe ClassiCube-xbox.xbe
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile Xbox build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
|
|
@ -51,4 +47,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'xbox'
|
WORKFLOW_NAME: 'xbox'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce Xbox build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -12,27 +12,25 @@ concurrency:
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-360:
|
build:
|
||||||
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: free60/libxenon
|
image: free60/libxenon
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Compile 360 build
|
- name: Install prerequisites
|
||||||
id: compile
|
|
||||||
run: |
|
run: |
|
||||||
sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
|
sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y curl
|
apt-get install -y curl
|
||||||
|
|
||||||
|
- name: Compile 360 build
|
||||||
|
id: compile
|
||||||
|
run: |
|
||||||
export DEVKITXENON=/usr/local/xenon
|
export DEVKITXENON=/usr/local/xenon
|
||||||
export PATH=$PATH:$DEVKITXENON/bin:$DEVKITXENON/usr/bin
|
export PATH=$PATH:$DEVKITXENON/bin:$DEVKITXENON/usr/bin
|
||||||
make xbox360
|
make xbox360
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_failure
|
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
|
||||||
with:
|
|
||||||
NOTIFY_MESSAGE: 'Failed to compile Xbox 360 build'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
|
|
@ -52,4 +50,11 @@ jobs:
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'xbox360'
|
WORKFLOW_NAME: 'xbox360'
|
||||||
|
|
||||||
|
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce Xbox 360 build'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
wget https://cdn.classicube.net/client/latest/ClassiCube.64.exe -O cc-w64.exe
|
wget https://cdn.classicube.net/client/latest/ClassiCube.64.exe -O cc-w64.exe
|
||||||
wget https://cdn.classicube.net/client/latest/ClassiCube.exe -O cc-w32.exe
|
wget https://cdn.classicube.net/client/latest/ClassiCube.exe -O cc-w32.exe
|
||||||
|
wget https://cdn.classicube.net/client/latest/cc-w9x.exe -O cc-w9x.exe
|
||||||
|
|
||||||
# Download Linux artifacts
|
# Download Linux artifacts
|
||||||
- name: Retrieve Linux binaries
|
- name: Retrieve Linux binaries
|
||||||
|
|
@ -43,11 +44,21 @@ jobs:
|
||||||
wget https://cdn.classicube.net/client/latest/ClassiCube.rpi -O cc-rpi-32
|
wget https://cdn.classicube.net/client/latest/ClassiCube.rpi -O cc-rpi-32
|
||||||
|
|
||||||
# Download FreeBSD artifacts
|
# Download FreeBSD artifacts
|
||||||
- name: Retrieve macOS binaries
|
- name: Retrieve FreeBSD binaries
|
||||||
run: |
|
run: |
|
||||||
wget https://cdn.classicube.net/client/latest/cc-freebsd-64 -O cc-freebsd-64
|
wget https://cdn.classicube.net/client/latest/cc-freebsd-64 -O cc-freebsd-64
|
||||||
wget https://cdn.classicube.net/client/latest/cc-freebsd-32 -O cc-freebsd-32
|
wget https://cdn.classicube.net/client/latest/cc-freebsd-32 -O cc-freebsd-32
|
||||||
|
|
||||||
|
# Download NetBSD artifacts
|
||||||
|
- name: Retrieve NetBSD binaries
|
||||||
|
run: |
|
||||||
|
wget https://cdn.classicube.net/client/latest/cc-netbsd-64 -O cc-netbsd-64
|
||||||
|
|
||||||
|
# Download haiku artifacts
|
||||||
|
- name: Retrieve haiku binaries
|
||||||
|
run: |
|
||||||
|
wget https://cdn.classicube.net/client/latest/cc-haiku-64 -O cc-haiku-64
|
||||||
|
|
||||||
- name: Generate builds
|
- name: Generate builds
|
||||||
id: compile
|
id: compile
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
@ -73,6 +84,12 @@ jobs:
|
||||||
rm ClassiCube/ClassiCube.exe
|
rm ClassiCube/ClassiCube.exe
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Generate haiku builds
|
||||||
|
make_unix_tar cc-haiku64.tar.gz cc-haiku-64
|
||||||
|
|
||||||
|
# Generate NetBSD builds
|
||||||
|
make_unix_tar cc-netbsd64.tar.gz cc-netbsd-64
|
||||||
|
|
||||||
# Generate FreeBSD builds
|
# Generate FreeBSD builds
|
||||||
make_unix_tar cc-freebsd32.tar.gz cc-freebsd-32
|
make_unix_tar cc-freebsd32.tar.gz cc-freebsd-32
|
||||||
make_unix_tar cc-freebsd64.tar.gz cc-freebsd-64
|
make_unix_tar cc-freebsd64.tar.gz cc-freebsd-64
|
||||||
|
|
@ -81,10 +98,6 @@ jobs:
|
||||||
make_unix_tar cc-rpi32.tar.gz cc-rpi-32
|
make_unix_tar cc-rpi32.tar.gz cc-rpi-32
|
||||||
make_unix_tar cc-rpi64.tar.gz cc-rpi-64
|
make_unix_tar cc-rpi64.tar.gz cc-rpi-64
|
||||||
|
|
||||||
# Generate Linux builds
|
|
||||||
make_unix_tar cc-linux32.tar.gz cc-linux-32
|
|
||||||
make_unix_tar cc-linux64.tar.gz cc-linux-64
|
|
||||||
|
|
||||||
# Generate macOS builds
|
# Generate macOS builds
|
||||||
make_unix_tar cc-mac32.tar.gz cc-mac-32
|
make_unix_tar cc-mac32.tar.gz cc-mac-32
|
||||||
make_unix_tar cc-mac64.tar.gz cc-mac-64
|
make_unix_tar cc-mac64.tar.gz cc-mac-64
|
||||||
|
|
@ -92,13 +105,14 @@ jobs:
|
||||||
# Generate Windows builds
|
# Generate Windows builds
|
||||||
make_windows_zip cc-win32.zip cc-w32.exe
|
make_windows_zip cc-win32.zip cc-w32.exe
|
||||||
make_windows_zip cc-win64.zip cc-w64.exe
|
make_windows_zip cc-win64.zip cc-w64.exe
|
||||||
|
|
||||||
|
# Generate Linux builds
|
||||||
- uses: ./.github/actions/notify_failure
|
# NOTE: Must be last since it adds linux specific file
|
||||||
if: ${{ always() && steps.compile.outcome == 'failure' }}
|
cp misc/linux/install-desktop-entry.sh ClassiCube/install-desktop-entry.sh
|
||||||
with:
|
chmod +x ClassiCube/install-desktop-entry.sh
|
||||||
NOTIFY_MESSAGE: 'Failed to produce release'
|
|
||||||
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
make_unix_tar cc-linux32.tar.gz cc-linux-32
|
||||||
|
make_unix_tar cc-linux64.tar.gz cc-linux-64
|
||||||
|
|
||||||
|
|
||||||
# Generate Linux release files
|
# Generate Linux release files
|
||||||
|
|
@ -142,6 +156,12 @@ jobs:
|
||||||
SOURCE_FILE: 'cc-win64.zip'
|
SOURCE_FILE: 'cc-win64.zip'
|
||||||
DEST_NAME: 'cc-win64.zip'
|
DEST_NAME: 'cc-win64.zip'
|
||||||
|
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'cc-w9x.exe'
|
||||||
|
DEST_NAME: 'cc-win9x.exe'
|
||||||
|
|
||||||
|
|
||||||
# Generate RPI release files
|
# Generate RPI release files
|
||||||
- uses: ./.github/actions/upload_build
|
- uses: ./.github/actions/upload_build
|
||||||
|
|
@ -171,8 +191,32 @@ jobs:
|
||||||
DEST_NAME: 'cc-freebsd64.tar.gz'
|
DEST_NAME: 'cc-freebsd64.tar.gz'
|
||||||
|
|
||||||
|
|
||||||
|
# Generate NetBSD release files
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'cc-netbsd64.tar.gz'
|
||||||
|
DEST_NAME: 'cc-netbsd64.tar.gz'
|
||||||
|
|
||||||
|
|
||||||
|
# Generate haiku release files
|
||||||
|
- uses: ./.github/actions/upload_build
|
||||||
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
|
with:
|
||||||
|
SOURCE_FILE: 'cc-haiku64.tar.gz'
|
||||||
|
DEST_NAME: 'cc-haiku64.tar.gz'
|
||||||
|
|
||||||
|
|
||||||
- uses: ./.github/actions/notify_success
|
- uses: ./.github/actions/notify_success
|
||||||
if: ${{ always() && steps.compile.outcome == 'success' }}
|
if: ${{ always() && steps.compile.outcome == 'success' }}
|
||||||
with:
|
with:
|
||||||
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
|
||||||
WORKFLOW_NAME: 'release'
|
WORKFLOW_NAME: 'release'
|
||||||
|
|
||||||
|
|
||||||
|
# Log any failure
|
||||||
|
- uses: ./.github/actions/notify_failure
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
NOTIFY_MESSAGE: 'Failed to produce release'
|
||||||
|
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
*.VC.VC.opendb
|
*.VC.VC.opendb
|
||||||
|
|
||||||
# Android build results
|
# Android build results
|
||||||
|
android/app/.cxx/
|
||||||
android/.cxx/
|
android/.cxx/
|
||||||
android/.idea/
|
android/.idea/
|
||||||
android/.gradle/
|
android/.gradle/
|
||||||
|
|
@ -25,21 +26,16 @@ project.xcworkspace/
|
||||||
xcuserdata/
|
xcuserdata/
|
||||||
|
|
||||||
# Nintendo Console build results
|
# Nintendo Console build results
|
||||||
build-3ds/
|
|
||||||
build-gc/
|
|
||||||
build-nds/
|
build-nds/
|
||||||
|
build-dsi/
|
||||||
build-n64/
|
build-n64/
|
||||||
build-wii/
|
|
||||||
build-wiiu/
|
|
||||||
build-switch/
|
|
||||||
classicube.nds
|
classicube.nds
|
||||||
|
|
||||||
# SEGA console build results
|
# SEGA console build results
|
||||||
build-dc/
|
|
||||||
IP.BIN
|
IP.BIN
|
||||||
ISO_FILES/
|
ISO_FILES/
|
||||||
third_party/gldc/libGLdc.a
|
|
||||||
build-saturn/
|
|
||||||
cd/
|
cd/
|
||||||
|
|
||||||
# Microsoft console build results
|
# Microsoft console build results
|
||||||
build-360/
|
build-360/
|
||||||
main.exe
|
main.exe
|
||||||
|
|
@ -48,20 +44,17 @@ misc/xbox/ps_coloured.inl
|
||||||
misc/xbox/ps_textured.inl
|
misc/xbox/ps_textured.inl
|
||||||
misc/xbox/vs_coloured.inl
|
misc/xbox/vs_coloured.inl
|
||||||
misc/xbox/vs_textured.inl
|
misc/xbox/vs_textured.inl
|
||||||
|
|
||||||
# Sony console build results
|
# Sony console build results
|
||||||
build-ps2/
|
|
||||||
build-ps3/
|
|
||||||
build-psp/
|
|
||||||
build-vita/
|
|
||||||
EBOOT.PBP
|
EBOOT.PBP
|
||||||
PARAM.SFO
|
PARAM.SFO
|
||||||
param.sfo
|
param.sfo
|
||||||
eboot.bin
|
eboot.bin
|
||||||
|
pkg.gp4
|
||||||
|
|
||||||
# Build results
|
# Build results
|
||||||
[Dd]ebug/
|
[Dd]ebug/
|
||||||
[Rr]elease/
|
[Rr]elease/
|
||||||
[Rr]eleases/
|
|
||||||
x64/
|
x64/
|
||||||
x86/
|
x86/
|
||||||
build/
|
build/
|
||||||
|
|
@ -93,11 +86,22 @@ ClassiCube*
|
||||||
screenshots
|
screenshots
|
||||||
fontscache.txt
|
fontscache.txt
|
||||||
|
|
||||||
|
# DOS files
|
||||||
|
CWSDPMI.EXE
|
||||||
|
CWSDPMI.SWP
|
||||||
|
OPTIONS.TXT
|
||||||
|
CCDOS.EXE
|
||||||
|
|
||||||
# Android source files need to be included
|
# Android source files need to be included
|
||||||
!android/app/src/main/java/com/classicube
|
!android/app/src/main/java/com/classicube
|
||||||
|
|
||||||
# Flatpak wrapper which needs to be included
|
# Flatpak wrapper needs to be included
|
||||||
!misc/linux/flatpak/ClassiCubeLauncher
|
!misc/flatpak/ClassiCubeLauncher
|
||||||
|
|
||||||
|
# UWP files needs to be included
|
||||||
|
!misc/UWP/ClassiCube-UWP.sln
|
||||||
|
!misc/UWP/ClassiCube-UWP.vcxproj
|
||||||
|
!misc/UWP/ClassiCube-UWP.vcxproj.filters
|
||||||
|
|
||||||
# CMake files
|
# CMake files
|
||||||
CMakeFiles/
|
CMakeFiles/
|
||||||
|
|
@ -215,3 +219,7 @@ _UpgradeReport_Files/
|
||||||
Backup*/
|
Backup*/
|
||||||
UpgradeLog*.XML
|
UpgradeLog*.XML
|
||||||
UpgradeLog*.htm
|
UpgradeLog*.htm
|
||||||
|
|
||||||
|
# Eclipse
|
||||||
|
.cproject
|
||||||
|
.project
|
||||||
|
|
|
||||||
232
Makefile
|
|
@ -1,9 +1,12 @@
|
||||||
SOURCE_DIR = src
|
SOURCE_DIR = src
|
||||||
BUILD_DIR = build
|
BUILD_DIR = build
|
||||||
C_SOURCES = $(wildcard $(SOURCE_DIR)/*.c)
|
C_SOURCES = $(wildcard $(SOURCE_DIR)/*.c)
|
||||||
C_OBJECTS = $(patsubst $(SOURCE_DIR)/%.c, $(BUILD_DIR)/%.o, $(C_SOURCES))
|
OBJECTS = $(patsubst %.c, $(BUILD_DIR)/%.o, $(C_SOURCES))
|
||||||
|
BUILD_DIRS = $(BUILD_DIR) $(BUILD_DIR)/src
|
||||||
|
|
||||||
OBJECTS = $(C_OBJECTS)
|
##############################
|
||||||
|
# Configurable flags and names
|
||||||
|
##############################
|
||||||
# Flags passed to the C compiler
|
# Flags passed to the C compiler
|
||||||
CFLAGS = -pipe -fno-math-errno -Werror -Wno-error=missing-braces -Wno-error=strict-aliasing
|
CFLAGS = -pipe -fno-math-errno -Werror -Wno-error=missing-braces -Wno-error=strict-aliasing
|
||||||
# Flags passed to the linker
|
# Flags passed to the linker
|
||||||
|
|
@ -11,9 +14,24 @@ LDFLAGS = -g -rdynamic
|
||||||
# Name of the main executable
|
# Name of the main executable
|
||||||
ENAME = ClassiCube
|
ENAME = ClassiCube
|
||||||
# Name of the final target file
|
# Name of the final target file
|
||||||
# (usually this is the executable, but e.g. is app bundle on macOS)
|
# (usually this is the executable, but e.g. is the app bundle on macOS)
|
||||||
TARGET := $(ENAME)
|
TARGET := $(ENAME)
|
||||||
|
|
||||||
|
# Enables dependency tracking (https://make.mad-scientist.net/papers/advanced-auto-dependency-generation/)
|
||||||
|
# This ensures that changing a .h file automatically results in the .c files using it being auto recompiled when next running make
|
||||||
|
# On older systems the required GCC options may not be supported - in which case just change TRACK_DEPENDENCIES to 0
|
||||||
|
TRACK_DEPENDENCIES=1
|
||||||
|
# link using C Compiler by default
|
||||||
|
LINK = $(CC)
|
||||||
|
# Whether to add BearSSL source files to list of files to compile
|
||||||
|
BEARSSL=1
|
||||||
|
# Optimization level in release builds
|
||||||
|
OPT_LEVEL=1
|
||||||
|
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
# Determine shell command used to remove files (for "make clean")
|
||||||
|
#################################################################
|
||||||
ifndef RM
|
ifndef RM
|
||||||
# No prefined RM variable, try to guess OS default
|
# No prefined RM variable, try to guess OS default
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
|
|
@ -23,11 +41,10 @@ ifndef RM
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Enables dependency tracking (https://make.mad-scientist.net/papers/advanced-auto-dependency-generation/)
|
|
||||||
# This ensures that changing a .h file automatically results in the .c files using it being auto recompiled when next running make
|
|
||||||
# On older systems the required GCC options may not be supported - in which case just change TRACK_DEPENDENCIES to 0
|
|
||||||
TRACK_DEPENDENCIES=1
|
|
||||||
|
|
||||||
|
###########################################################
|
||||||
|
# If target platform isn't specified, default to current OS
|
||||||
|
###########################################################
|
||||||
ifndef $(PLAT)
|
ifndef $(PLAT)
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
PLAT = mingw
|
PLAT = mingw
|
||||||
|
|
@ -36,12 +53,20 @@ ifndef $(PLAT)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#########################################################
|
||||||
|
# Setup environment appropriate for the specific platform
|
||||||
|
#########################################################
|
||||||
ifeq ($(PLAT),web)
|
ifeq ($(PLAT),web)
|
||||||
CC = emcc
|
CC = emcc
|
||||||
OEXT = .html
|
OEXT = .html
|
||||||
CFLAGS = -g
|
CFLAGS = -g
|
||||||
LDFLAGS = -g -s WASM=1 -s NO_EXIT_RUNTIME=1 -s ALLOW_MEMORY_GROWTH=1 -s TOTAL_STACK=1Mb --js-library $(SOURCE_DIR)/interop_web.js
|
LDFLAGS = -g -s WASM=1 -s NO_EXIT_RUNTIME=1 -s ABORTING_MALLOC=0 -s ALLOW_MEMORY_GROWTH=1 -s TOTAL_STACK=256Kb --js-library $(SOURCE_DIR)/webclient/interop_web.js
|
||||||
BUILD_DIR = build-web
|
BUILD_DIR = build/web
|
||||||
|
BEARSSL = 0
|
||||||
|
|
||||||
|
BUILD_DIRS += $(BUILD_DIR)/src/webclient
|
||||||
|
C_SOURCES += $(wildcard src/webclient/*.c)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),mingw)
|
ifeq ($(PLAT),mingw)
|
||||||
|
|
@ -50,115 +75,148 @@ ifeq ($(PLAT),mingw)
|
||||||
CFLAGS += -DUNICODE
|
CFLAGS += -DUNICODE
|
||||||
LDFLAGS = -g
|
LDFLAGS = -g
|
||||||
LIBS = -mwindows -lwinmm
|
LIBS = -mwindows -lwinmm
|
||||||
BUILD_DIR = build-win
|
BUILD_DIR = build/win
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),linux)
|
ifeq ($(PLAT),linux)
|
||||||
CFLAGS += -DCC_BUILD_ICON
|
# -lm may be needed for __builtin_sqetf (in cases where it isn't replaced by a CPU instruction intrinsic)
|
||||||
LIBS = -lX11 -lXi -lpthread -lGL -ldl
|
LIBS = -lX11 -lXi -lpthread -lGL -ldl -lm
|
||||||
BUILD_DIR = build-linux
|
BUILD_DIR = build/linux
|
||||||
|
|
||||||
|
# Detect MCST LCC, where -O3 is about equivalent to -O1
|
||||||
|
ifeq ($(shell $(CC) -dM -E -xc - < /dev/null | grep -o __MCST__),__MCST__)
|
||||||
|
OPT_LEVEL=3
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),sunos)
|
ifeq ($(PLAT),sunos)
|
||||||
CFLAGS += -DCC_BUILD_ICON
|
|
||||||
LIBS = -lsocket -lX11 -lXi -lGL
|
LIBS = -lsocket -lX11 -lXi -lGL
|
||||||
BUILD_DIR = build-solaris
|
BUILD_DIR = build/solaris
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(PLAT),hp-ux)
|
||||||
|
CC = gcc
|
||||||
|
CFLAGS += -std=c99 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_DEFAULT_SOURCE -D_BSD_SOURCE
|
||||||
|
LDFLAGS =
|
||||||
|
LIBS = -lm -lX11 -lXi -lXext -L/opt/graphics/OpenGL/lib/hpux32 -lGL -lpthread
|
||||||
|
BUILD_DIR = build/hpux
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),darwin)
|
ifeq ($(PLAT),darwin)
|
||||||
OBJECTS += $(BUILD_DIR)/Window_cocoa.o
|
OBJECTS += $(BUILD_DIR)/src/Window_cocoa.o
|
||||||
CFLAGS += -DCC_BUILD_ICON
|
|
||||||
LIBS =
|
LIBS =
|
||||||
LDFLAGS = -rdynamic -framework Cocoa -framework OpenGL -framework IOKit -lobjc
|
LDFLAGS = -rdynamic -framework Security -framework Cocoa -framework OpenGL -framework IOKit -lobjc
|
||||||
BUILD_DIR = build-macos
|
BUILD_DIR = build/macos
|
||||||
TARGET = $(ENAME).app
|
TARGET = $(ENAME).app
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),freebsd)
|
ifeq ($(PLAT),freebsd)
|
||||||
CFLAGS += -I /usr/local/include -DCC_BUILD_ICON
|
CFLAGS += -I /usr/local/include
|
||||||
LDFLAGS = -L /usr/local/lib -rdynamic
|
LDFLAGS = -L /usr/local/lib -rdynamic
|
||||||
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
||||||
BUILD_DIR = build-freebsd
|
BUILD_DIR = build/freebsd
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),openbsd)
|
ifeq ($(PLAT),openbsd)
|
||||||
CFLAGS += -I /usr/X11R6/include -I /usr/local/include -DCC_BUILD_ICON
|
CFLAGS += -I /usr/X11R6/include -I /usr/local/include
|
||||||
LDFLAGS = -L /usr/X11R6/lib -L /usr/local/lib -rdynamic
|
LDFLAGS = -L /usr/X11R6/lib -L /usr/local/lib -rdynamic
|
||||||
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
||||||
BUILD_DIR = build-openbsd
|
BUILD_DIR = build/openbsd
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),netbsd)
|
ifeq ($(PLAT),netbsd)
|
||||||
CFLAGS += -I /usr/X11R7/include -I /usr/pkg/include -DCC_BUILD_ICON
|
CFLAGS += -I /usr/X11R7/include -I /usr/pkg/include
|
||||||
LDFLAGS = -L /usr/X11R7/lib -L /usr/pkg/lib -rdynamic
|
LDFLAGS = -L /usr/X11R7/lib -L /usr/pkg/lib -rdynamic -Wl,-R/usr/X11R7/lib
|
||||||
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
||||||
BUILD_DIR = build-netbsd
|
BUILD_DIR = build/netbsd
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),dragonfly)
|
ifeq ($(PLAT),dragonfly)
|
||||||
CFLAGS += -I /usr/local/include -DCC_BUILD_ICON
|
CFLAGS += -I /usr/local/include
|
||||||
LDFLAGS = -L /usr/local/lib -rdynamic
|
LDFLAGS = -L /usr/local/lib -rdynamic
|
||||||
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
||||||
BUILD_DIR = build-flybsd
|
BUILD_DIR = build/flybsd
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),haiku)
|
ifeq ($(PLAT),haiku)
|
||||||
OBJECTS += $(BUILD_DIR)/Platform_BeOS.o $(BUILD_DIR)/Window_BeOS.o
|
OBJECTS += $(BUILD_DIR)/src/Platform_BeOS.o $(BUILD_DIR)/src/Window_BeOS.o
|
||||||
CFLAGS = -pipe -fno-math-errno
|
CFLAGS = -pipe -fno-math-errno
|
||||||
LDFLAGS = -g
|
LDFLAGS = -g
|
||||||
LIBS = -lGL -lnetwork -lstdc++ -lbe -lgame -ltracker
|
LINK = $(CXX)
|
||||||
BUILD_DIR = build-haiku
|
LIBS = -lGL -lnetwork -lbe -lgame -ltracker
|
||||||
|
BUILD_DIR = build/haiku
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),beos)
|
ifeq ($(PLAT),beos)
|
||||||
OBJECTS += $(BUILD_DIR)/Platform_BeOS.o $(BUILD_DIR)/Window_BeOS.o
|
OBJECTS += $(BUILD_DIR)/src/Platform_BeOS.o $(BUILD_DIR)/src/Window_BeOS.o
|
||||||
CFLAGS = -pipe
|
CFLAGS = -pipe
|
||||||
LDFLAGS = -g
|
LDFLAGS = -g
|
||||||
LIBS = -lGL -lnetwork -lstdc++ -lbe -lgame -ltracker
|
LINK = $(CXX)
|
||||||
BUILD_DIR = build-beos
|
LIBS = -lGL -lnetwork -lbe -lgame -ltracker
|
||||||
TRACK_DEPENDENCIES=0
|
BUILD_DIR = build/beos
|
||||||
|
TRACK_DEPENDENCIES = 0
|
||||||
|
BEARSSL = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),serenityos)
|
ifeq ($(PLAT),serenityos)
|
||||||
LIBS = -lgl -lSDL2
|
LIBS = -lgl -lSDL2
|
||||||
BUILD_DIR = build-serenity
|
BUILD_DIR = build/serenity
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLAT),irix)
|
ifeq ($(PLAT),irix)
|
||||||
CC = gcc
|
CC = gcc
|
||||||
LIBS = -lGL -lX11 -lXi -lpthread -ldl
|
LIBS = -lGL -lX11 -lXi -lpthread -ldl
|
||||||
BUILD_DIR = build-irix
|
BUILD_DIR = build/irix
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(PLAT),rpi)
|
||||||
|
CFLAGS += -DCC_BUILD_RPI
|
||||||
|
LIBS = -lpthread -lX11 -lXi -lEGL -lGLESv2 -ldl
|
||||||
|
BUILD_DIR = build/rpi
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef SDL2
|
ifeq ($(PLAT),riscos)
|
||||||
|
LIBS =
|
||||||
|
LDFLAGS = -g
|
||||||
|
BUILD_DIR = build/riscos
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(PLAT),wince)
|
||||||
|
CC = arm-mingw32ce-gcc
|
||||||
|
OEXT = .exe
|
||||||
|
CFLAGS += -march=armv5te -DUNICODE -D_WIN32_WCE -std=gnu99
|
||||||
|
LDFLAGS = -g
|
||||||
|
LIBS = -lcoredll -lws2
|
||||||
|
BUILD_DIR = build/wince
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef BUILD_SDL2
|
||||||
CFLAGS += -DCC_WIN_BACKEND=CC_WIN_BACKEND_SDL2
|
CFLAGS += -DCC_WIN_BACKEND=CC_WIN_BACKEND_SDL2
|
||||||
LIBS += -lSDL2
|
LIBS += -lSDL2
|
||||||
endif
|
endif
|
||||||
ifdef SDL3
|
ifdef BUILD_SDL3
|
||||||
CFLAGS += -DCC_WIN_BACKEND=CC_WIN_BACKEND_SDL3
|
CFLAGS += -DCC_WIN_BACKEND=CC_WIN_BACKEND_SDL3
|
||||||
LIBS += -lSDL3
|
LIBS += -lSDL3
|
||||||
endif
|
endif
|
||||||
ifdef TERMINAL
|
ifdef BUILD_TERMINAL
|
||||||
CFLAGS += -DCC_WIN_BACKEND=CC_WIN_BACKEND_TERMINAL -DCC_GFX_BACKEND=CC_GFX_BACKEND_SOFTGPU
|
CFLAGS += -DCC_WIN_BACKEND=CC_WIN_BACKEND_TERMINAL -DCC_GFX_BACKEND=CC_GFX_BACKEND_SOFTGPU
|
||||||
LIBS := $(subst mwindows,mconsole,$(LIBS))
|
LIBS := $(subst mwindows,mconsole,$(LIBS))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef BEARSSL
|
ifeq ($(BEARSSL),1)
|
||||||
BEARSSL_SOURCES = $(wildcard third_party/bearssl/src/*.c)
|
BUILD_DIRS += $(BUILD_DIR)/third_party/bearssl
|
||||||
BEARSSL_OBJECTS = $(patsubst third_party/bearssl/src/%.c, $(BUILD_DIR)/%.o, $(BEARSSL_SOURCES))
|
C_SOURCES += $(wildcard third_party/bearssl/*.c)
|
||||||
OBJECTS += $(BEARSSL_OBJECTS)
|
|
||||||
CFLAGS += -Ithird_party/bearssl/inc -DCC_SSL_BACKEND=CC_SSL_BACKEND_BEARSSL -DCC_NET_BACKEND=CC_NET_BACKEND_BUILTIN
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef RELEASE
|
ifdef RELEASE
|
||||||
CFLAGS += -O1
|
CFLAGS += -O$(OPT_LEVEL)
|
||||||
else
|
else
|
||||||
CFLAGS += -g
|
CFLAGS += -g
|
||||||
endif
|
endif
|
||||||
|
|
||||||
default: $(PLAT)
|
default: $(PLAT)
|
||||||
|
|
||||||
|
# Build for the specified platform
|
||||||
web:
|
web:
|
||||||
$(MAKE) $(TARGET) PLAT=web
|
$(MAKE) $(TARGET) PLAT=web
|
||||||
linux:
|
linux:
|
||||||
|
|
@ -167,6 +225,8 @@ mingw:
|
||||||
$(MAKE) $(TARGET) PLAT=mingw
|
$(MAKE) $(TARGET) PLAT=mingw
|
||||||
sunos:
|
sunos:
|
||||||
$(MAKE) $(TARGET) PLAT=sunos
|
$(MAKE) $(TARGET) PLAT=sunos
|
||||||
|
hp-ux:
|
||||||
|
$(MAKE) $(TARGET) PLAT=hp-ux
|
||||||
darwin:
|
darwin:
|
||||||
$(MAKE) $(TARGET) PLAT=darwin
|
$(MAKE) $(TARGET) PLAT=darwin
|
||||||
freebsd:
|
freebsd:
|
||||||
|
|
@ -185,42 +245,50 @@ serenityos:
|
||||||
$(MAKE) $(TARGET) PLAT=serenityos
|
$(MAKE) $(TARGET) PLAT=serenityos
|
||||||
irix:
|
irix:
|
||||||
$(MAKE) $(TARGET) PLAT=irix
|
$(MAKE) $(TARGET) PLAT=irix
|
||||||
|
riscos:
|
||||||
|
$(MAKE) $(TARGET) PLAT=riscos
|
||||||
|
wince:
|
||||||
|
$(MAKE) $(TARGET) PLAT=wince
|
||||||
# Default overrides
|
# Default overrides
|
||||||
sdl2:
|
sdl2:
|
||||||
$(MAKE) $(TARGET) SDL2=1
|
$(MAKE) $(TARGET) BUILD_SDL2=1
|
||||||
sdl3:
|
sdl3:
|
||||||
$(MAKE) $(TARGET) SDL3=1
|
$(MAKE) $(TARGET) BUILD_SDL3=1
|
||||||
terminal:
|
terminal:
|
||||||
$(MAKE) $(TARGET) TERMINAL=1
|
$(MAKE) $(TARGET) BUILD_TERMINAL=1
|
||||||
release:
|
release:
|
||||||
$(MAKE) $(TARGET) RELEASE=1
|
$(MAKE) $(TARGET) RELEASE=1
|
||||||
|
|
||||||
# Some builds require more complex handling, so are moved to
|
# Some builds require more complex handling, so are moved to
|
||||||
# separate makefiles to avoid having one giant messy makefile
|
# separate makefiles to avoid having one giant messy makefile
|
||||||
dreamcast:
|
32x:
|
||||||
$(MAKE) -f misc/dreamcast/Makefile
|
$(MAKE) -f misc/32x/Makefile
|
||||||
saturn:
|
saturn:
|
||||||
$(MAKE) -f misc/saturn/Makefile
|
$(MAKE) -f misc/saturn/Makefile
|
||||||
|
dreamcast:
|
||||||
|
$(MAKE) -f misc/dreamcast/Makefile
|
||||||
psp:
|
psp:
|
||||||
$(MAKE) -f misc/psp/Makefile
|
$(MAKE) -f misc/psp/Makefile
|
||||||
vita:
|
vita:
|
||||||
$(MAKE) -f misc/vita/Makefile
|
$(MAKE) -f misc/vita/Makefile
|
||||||
ps1:
|
ps1:
|
||||||
cmake --preset default misc/ps1
|
$(MAKE) -f misc/ps1/Makefile
|
||||||
cmake --build misc/ps1/build
|
|
||||||
ps2:
|
ps2:
|
||||||
$(MAKE) -f misc/ps2/Makefile
|
$(MAKE) -f misc/ps2/Makefile
|
||||||
ps3:
|
ps3:
|
||||||
$(MAKE) -f misc/ps3/Makefile
|
$(MAKE) -f misc/ps3/Makefile
|
||||||
|
ps4:
|
||||||
|
$(MAKE) -f misc/ps4/Makefile
|
||||||
xbox:
|
xbox:
|
||||||
$(MAKE) -f misc/xbox/Makefile
|
$(MAKE) -f misc/xbox/Makefile
|
||||||
xbox360:
|
xbox360:
|
||||||
$(MAKE) -f misc/xbox360/Makefile
|
$(MAKE) -f misc/xbox360/Makefile
|
||||||
n64:
|
n64:
|
||||||
$(MAKE) -f misc/n64/Makefile
|
$(MAKE) -f misc/n64/Makefile
|
||||||
|
gba:
|
||||||
|
$(MAKE) -f misc/gba/Makefile
|
||||||
ds:
|
ds:
|
||||||
$(MAKE) -f misc/ds/Makefile
|
$(MAKE) -f misc/nds/Makefile
|
||||||
3ds:
|
3ds:
|
||||||
$(MAKE) -f misc/3ds/Makefile
|
$(MAKE) -f misc/3ds/Makefile
|
||||||
gamecube:
|
gamecube:
|
||||||
|
|
@ -233,19 +301,37 @@ switch:
|
||||||
$(MAKE) -f misc/switch/Makefile
|
$(MAKE) -f misc/switch/Makefile
|
||||||
os/2:
|
os/2:
|
||||||
$(MAKE) -f misc/os2/Makefile
|
$(MAKE) -f misc/os2/Makefile
|
||||||
|
dos:
|
||||||
|
$(MAKE) -f misc/msdos/Makefile
|
||||||
macclassic_68k:
|
macclassic_68k:
|
||||||
$(MAKE) -f misc/macclassic/Makefile_68k
|
$(MAKE) -f misc/macclassic/Makefile_68k
|
||||||
macclassic_ppc:
|
macclassic_ppc:
|
||||||
$(MAKE) -f misc/macclassic/Makefile_ppc
|
$(MAKE) -f misc/macclassic/Makefile_ppc
|
||||||
|
amiga_gcc:
|
||||||
|
$(MAKE) -f misc/amiga/Makefile_68k
|
||||||
|
amiga:
|
||||||
|
$(MAKE) -f misc/amiga/Makefile
|
||||||
|
atari_st:
|
||||||
|
$(MAKE) -f misc/atari_st/Makefile
|
||||||
|
|
||||||
|
# Cleans up all build .o files
|
||||||
clean:
|
clean:
|
||||||
$(RM) $(OBJECTS)
|
$(RM) $(OBJECTS)
|
||||||
|
|
||||||
$(BUILD_DIR):
|
|
||||||
mkdir -p $(BUILD_DIR)
|
|
||||||
$(ENAME): $(BUILD_DIR) $(OBJECTS)
|
|
||||||
$(CC) $(LDFLAGS) -o $@$(OEXT) $(OBJECTS) $(EXTRA_LIBS) $(LIBS)
|
|
||||||
|
|
||||||
|
#################################################
|
||||||
|
# Source files and executable compilation section
|
||||||
|
#################################################
|
||||||
|
# Auto creates directories for build files (.o and .d files)
|
||||||
|
$(BUILD_DIRS):
|
||||||
|
mkdir -p $@
|
||||||
|
|
||||||
|
# Main executable (typically just 'ClassiCube' or 'ClassiCube.exe')
|
||||||
|
$(ENAME): $(BUILD_DIRS) $(OBJECTS)
|
||||||
|
$(LINK) $(LDFLAGS) -o $@$(OEXT) $(OBJECTS) $(EXTRA_LIBS) $(LIBS)
|
||||||
|
@echo "----------------------------------------------------"
|
||||||
|
@echo "Successfully compiled executable file: $(ENAME)"
|
||||||
|
@echo "----------------------------------------------------"
|
||||||
|
|
||||||
# macOS app bundle
|
# macOS app bundle
|
||||||
$(ENAME).app : $(ENAME)
|
$(ENAME).app : $(ENAME)
|
||||||
|
|
@ -259,29 +345,27 @@ $(ENAME).app : $(ENAME)
|
||||||
# === Compiling with dependency tracking ===
|
# === Compiling with dependency tracking ===
|
||||||
# NOTE: Tracking dependencies might not work on older systems - disable this if so
|
# NOTE: Tracking dependencies might not work on older systems - disable this if so
|
||||||
ifeq ($(TRACK_DEPENDENCIES), 1)
|
ifeq ($(TRACK_DEPENDENCIES), 1)
|
||||||
|
|
||||||
DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d
|
DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d
|
||||||
DEPFILES := $(patsubst $(SOURCE_DIR)/%.c, $(BUILD_DIR)/%.d, $(C_SOURCES))
|
DEPFILES := $(patsubst %.o, %.d, $(OBJECTS))
|
||||||
$(DEPFILES):
|
$(DEPFILES):
|
||||||
|
|
||||||
$(C_OBJECTS): $(BUILD_DIR)/%.o : $(SOURCE_DIR)/%.c $(BUILD_DIR)/%.d
|
$(BUILD_DIR)/%.o : %.c $(BUILD_DIR)/%.d
|
||||||
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||||
|
$(BUILD_DIR)/%.o : %.cpp $(BUILD_DIR)/%.d
|
||||||
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||||
|
$(BUILD_DIR)/%.o : %.m $(BUILD_DIR)/%.d
|
||||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEPFLAGS) -c $< -o $@
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
include $(wildcard $(DEPFILES))
|
include $(wildcard $(DEPFILES))
|
||||||
# === Compiling WITHOUT dependency tracking ===
|
# === Compiling WITHOUT dependency tracking ===
|
||||||
else
|
else
|
||||||
$(C_OBJECTS): $(BUILD_DIR)/%.o : $(SOURCE_DIR)/%.c
|
|
||||||
|
$(BUILD_DIR)/%.o : %.c
|
||||||
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
|
||||||
|
$(BUILD_DIR)/%.o : %.cpp
|
||||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# === Platform specific file compiling ===
|
|
||||||
$(BUILD_DIR)/%.o: $(SOURCE_DIR)/%.m
|
|
||||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: $(SOURCE_DIR)/%.cpp
|
|
||||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: third_party/bearssl/src/%.c
|
|
||||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
# EXTRA_CFLAGS and EXTRA_LIBS are not defined in the makefile intentionally -
|
# EXTRA_CFLAGS and EXTRA_LIBS are not defined in the makefile intentionally -
|
||||||
# define them on the command line as a simple way of adding CFLAGS/LIBS
|
# define them on the command line as a simple way of adding CFLAGS/LIBS
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ set(${CMAKE_C_FLAGS}, "${CMAKE_C_FLAGS}")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -Wall -Werror")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -Wall -Werror")
|
||||||
|
|
||||||
add_library(classicube SHARED
|
add_library(classicube SHARED
|
||||||
../../src/main.c
|
|
||||||
../../src/IsometricDrawer.c
|
../../src/IsometricDrawer.c
|
||||||
../../src/Builder.c
|
../../src/Builder.c
|
||||||
../../src/ExtMath.c
|
../../src/ExtMath.c
|
||||||
|
|
@ -31,7 +30,6 @@ add_library(classicube SHARED
|
||||||
../../src/Camera.c
|
../../src/Camera.c
|
||||||
../../src/Game.c
|
../../src/Game.c
|
||||||
../../src/GameVersion.c
|
../../src/GameVersion.c
|
||||||
../../src/Window_Android.c
|
|
||||||
../../src/_ftbase.c
|
../../src/_ftbase.c
|
||||||
../../src/Graphics_GL2.c
|
../../src/Graphics_GL2.c
|
||||||
../../src/Deflate.c
|
../../src/Deflate.c
|
||||||
|
|
@ -49,7 +47,6 @@ add_library(classicube SHARED
|
||||||
../../src/World.c
|
../../src/World.c
|
||||||
../../src/SelOutlineRenderer.c
|
../../src/SelOutlineRenderer.c
|
||||||
../../src/Platform_Posix.c
|
../../src/Platform_Posix.c
|
||||||
../../src/Platform_Android.c
|
|
||||||
../../src/LScreens.c
|
../../src/LScreens.c
|
||||||
../../src/_truetype.c
|
../../src/_truetype.c
|
||||||
../../src/_ftglyph.c
|
../../src/_ftglyph.c
|
||||||
|
|
@ -100,16 +97,138 @@ add_library(classicube SHARED
|
||||||
../../src/SystemFonts.c
|
../../src/SystemFonts.c
|
||||||
../../src/Commands.c
|
../../src/Commands.c
|
||||||
../../src/EntityRenderers.c
|
../../src/EntityRenderers.c
|
||||||
../../src/AudioBackend.c
|
../../src/Audio_SLES.c
|
||||||
../../src/TouchUI.c
|
../../src/TouchUI.c
|
||||||
../../src/LBackend_Android.c
|
../../src/LBackend_Android.c
|
||||||
|
../../src/InputHandler.c
|
||||||
|
../../src/MenuOptions.c
|
||||||
|
../../src/FancyLighting.c
|
||||||
|
../../src/Queue.c
|
||||||
|
../../src/SSL.c
|
||||||
|
../../src/Certs.c
|
||||||
|
../../src/android/Platform_Android.c
|
||||||
|
../../src/android/Window_Android.c
|
||||||
|
../../third_party/bearssl/aes_big_cbcdec.c
|
||||||
|
../../third_party/bearssl/aes_big_cbcenc.c
|
||||||
|
../../third_party/bearssl/aes_big_ctr.c
|
||||||
|
../../third_party/bearssl/aes_big_ctrcbc.c
|
||||||
|
../../third_party/bearssl/aes_big_dec.c
|
||||||
|
../../third_party/bearssl/aes_big_enc.c
|
||||||
|
../../third_party/bearssl/aes_common.c
|
||||||
|
../../third_party/bearssl/aesctr_drbg.c
|
||||||
|
../../third_party/bearssl/aes_x86ni.c
|
||||||
|
../../third_party/bearssl/aes_x86ni_cbcdec.c
|
||||||
|
../../third_party/bearssl/aes_x86ni_cbcenc.c
|
||||||
|
../../third_party/bearssl/aes_x86ni_ctr.c
|
||||||
|
../../third_party/bearssl/aes_x86ni_ctrcbc.c
|
||||||
|
../../third_party/bearssl/asn1enc.c
|
||||||
|
../../third_party/bearssl/ccm.c
|
||||||
|
../../third_party/bearssl/ccopy.c
|
||||||
|
../../third_party/bearssl/chacha20_ct.c
|
||||||
|
../../third_party/bearssl/chacha20_sse2.c
|
||||||
|
../../third_party/bearssl/dec32be.c
|
||||||
|
../../third_party/bearssl/dec32le.c
|
||||||
|
../../third_party/bearssl/dec64be.c
|
||||||
|
../../third_party/bearssl/dec64le.c
|
||||||
|
../../third_party/bearssl/dig_oid.c
|
||||||
|
../../third_party/bearssl/dig_size.c
|
||||||
|
../../third_party/bearssl/ec_all_m31.c
|
||||||
|
../../third_party/bearssl/ec_c25519_i31.c
|
||||||
|
../../third_party/bearssl/ec_c25519_m31.c
|
||||||
|
../../third_party/bearssl/ec_c25519_m62.c
|
||||||
|
../../third_party/bearssl/ec_c25519_m64.c
|
||||||
|
../../third_party/bearssl/ec_curve25519.c
|
||||||
|
../../third_party/bearssl/ec_default.c
|
||||||
|
../../third_party/bearssl/ecdsa_atr.c
|
||||||
|
../../third_party/bearssl/ecdsa_default_vrfy_asn1.c
|
||||||
|
../../third_party/bearssl/ecdsa_default_vrfy_raw.c
|
||||||
|
../../third_party/bearssl/ecdsa_i31_bits.c
|
||||||
|
../../third_party/bearssl/ecdsa_i31_vrfy_asn1.c
|
||||||
|
../../third_party/bearssl/ecdsa_i31_vrfy_raw.c
|
||||||
|
../../third_party/bearssl/ec_p256_m31.c
|
||||||
|
../../third_party/bearssl/ec_p256_m62.c
|
||||||
|
../../third_party/bearssl/ec_p256_m64.c
|
||||||
|
../../third_party/bearssl/ec_prime_i31.c
|
||||||
|
../../third_party/bearssl/ec_secp256r1.c
|
||||||
|
../../third_party/bearssl/ec_secp384r1.c
|
||||||
|
../../third_party/bearssl/ec_secp521r1.c
|
||||||
|
../../third_party/bearssl/enc32be.c
|
||||||
|
../../third_party/bearssl/enc32le.c
|
||||||
|
../../third_party/bearssl/enc64be.c
|
||||||
|
../../third_party/bearssl/enc64le.c
|
||||||
|
../../third_party/bearssl/gcm.c
|
||||||
|
../../third_party/bearssl/ghash_ctmul64.c
|
||||||
|
../../third_party/bearssl/ghash_ctmul.c
|
||||||
|
../../third_party/bearssl/ghash_pclmul.c
|
||||||
|
../../third_party/bearssl/hmac.c
|
||||||
|
../../third_party/bearssl/hmac_ct.c
|
||||||
|
../../third_party/bearssl/hmac_drbg.c
|
||||||
|
../../third_party/bearssl/i31_add.c
|
||||||
|
../../third_party/bearssl/i31_bitlen.c
|
||||||
|
../../third_party/bearssl/i31_decmod.c
|
||||||
|
../../third_party/bearssl/i31_decode.c
|
||||||
|
../../third_party/bearssl/i31_decred.c
|
||||||
|
../../third_party/bearssl/i31_encode.c
|
||||||
|
../../third_party/bearssl/i31_fmont.c
|
||||||
|
../../third_party/bearssl/i31_iszero.c
|
||||||
|
../../third_party/bearssl/i31_moddiv.c
|
||||||
|
../../third_party/bearssl/i31_modpow2.c
|
||||||
|
../../third_party/bearssl/i31_modpow.c
|
||||||
|
../../third_party/bearssl/i31_montmul.c
|
||||||
|
../../third_party/bearssl/i31_mulacc.c
|
||||||
|
../../third_party/bearssl/i31_muladd.c
|
||||||
|
../../third_party/bearssl/i31_ninv31.c
|
||||||
|
../../third_party/bearssl/i31_reduce.c
|
||||||
|
../../third_party/bearssl/i31_rshift.c
|
||||||
|
../../third_party/bearssl/i31_sub.c
|
||||||
|
../../third_party/bearssl/i31_tmont.c
|
||||||
|
../../third_party/bearssl/i32_div32.c
|
||||||
|
../../third_party/bearssl/i62_modpow2.c
|
||||||
|
../../third_party/bearssl/md5.c
|
||||||
|
../../third_party/bearssl/md5sha1.c
|
||||||
|
../../third_party/bearssl/multihash.c
|
||||||
|
../../third_party/bearssl/poly1305_ctmul.c
|
||||||
|
../../third_party/bearssl/poly1305_ctmulq.c
|
||||||
|
../../third_party/bearssl/prf.c
|
||||||
|
../../third_party/bearssl/prf_md5sha1.c
|
||||||
|
../../third_party/bearssl/prf_sha256.c
|
||||||
|
../../third_party/bearssl/prf_sha384.c
|
||||||
|
../../third_party/bearssl/rsa_default_pkcs1_vrfy.c
|
||||||
|
../../third_party/bearssl/rsa_default_priv.c
|
||||||
|
../../third_party/bearssl/rsa_default_pub.c
|
||||||
|
../../third_party/bearssl/rsa_i31_pkcs1_vrfy.c
|
||||||
|
../../third_party/bearssl/rsa_i31_priv.c
|
||||||
|
../../third_party/bearssl/rsa_i31_pub.c
|
||||||
|
../../third_party/bearssl/rsa_i62_pkcs1_vrfy.c
|
||||||
|
../../third_party/bearssl/rsa_i62_priv.c
|
||||||
|
../../third_party/bearssl/rsa_i62_pub.c
|
||||||
|
../../third_party/bearssl/rsa_pkcs1_sig_unpad.c
|
||||||
|
../../third_party/bearssl/sha1.c
|
||||||
|
../../third_party/bearssl/sha2big.c
|
||||||
|
../../third_party/bearssl/sha2small.c
|
||||||
|
../../third_party/bearssl/ssl_client.c
|
||||||
|
../../third_party/bearssl/ssl_client_default_rsapub.c
|
||||||
|
../../third_party/bearssl/ssl_client_full.c
|
||||||
|
../../third_party/bearssl/ssl_engine.c
|
||||||
|
../../third_party/bearssl/ssl_engine_default_aescbc.c
|
||||||
|
../../third_party/bearssl/ssl_engine_default_aesccm.c
|
||||||
|
../../third_party/bearssl/ssl_engine_default_aesgcm.c
|
||||||
|
../../third_party/bearssl/ssl_engine_default_chapol.c
|
||||||
|
../../third_party/bearssl/ssl_engine_default_ec.c
|
||||||
|
../../third_party/bearssl/ssl_engine_default_ecdsa.c
|
||||||
|
../../third_party/bearssl/ssl_engine_default_rsavrfy.c
|
||||||
|
../../third_party/bearssl/ssl_hashes.c
|
||||||
|
../../third_party/bearssl/ssl_hs_client.c
|
||||||
|
../../third_party/bearssl/ssl_io.c
|
||||||
|
../../third_party/bearssl/ssl_rec_cbc.c
|
||||||
|
../../third_party/bearssl/ssl_rec_ccm.c
|
||||||
|
../../third_party/bearssl/ssl_rec_chapol.c
|
||||||
|
../../third_party/bearssl/ssl_rec_gcm.c
|
||||||
|
../../third_party/bearssl/x509_minimal.c
|
||||||
|
../../third_party/bearssl/x509_minimal_full.c
|
||||||
)
|
)
|
||||||
|
|
||||||
# add lib dependencies
|
|
||||||
target_link_libraries(classicube
|
target_link_libraries(classicube
|
||||||
android
|
|
||||||
EGL
|
EGL
|
||||||
GLESv2
|
GLESv2
|
||||||
log
|
log)
|
||||||
OpenSLES
|
|
||||||
jnigraphics)
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
<!-- BEGIN_INCLUDE(manifest) -->
|
<!-- BEGIN_INCLUDE(manifest) -->
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.classicube.android.client"
|
package="com.classicube.android.client"
|
||||||
android:versionCode="1360"
|
android:versionCode="1370"
|
||||||
android:versionName="1.3.6">
|
android:versionName="1.3.7">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
package com.classicube;
|
package com.classicube;
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.lang.reflect.Method;
|
import java.security.KeyStore;
|
||||||
import java.net.HttpURLConnection;
|
import java.security.cert.CertificateFactory;
|
||||||
import java.net.URL;
|
import java.security.cert.X509Certificate;
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
|
|
@ -23,30 +23,31 @@ import android.content.Intent;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
|
import android.graphics.Canvas;
|
||||||
|
import android.graphics.Color;
|
||||||
import android.graphics.PixelFormat;
|
import android.graphics.PixelFormat;
|
||||||
|
import android.graphics.Rect;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.provider.OpenableColumns;
|
import android.provider.OpenableColumns;
|
||||||
import android.provider.Settings.Secure;
|
import android.provider.Settings.Secure;
|
||||||
import android.text.Editable;
|
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.text.Selection;
|
|
||||||
import android.text.SpannableStringBuilder;
|
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
import android.view.SurfaceHolder;
|
import android.view.SurfaceHolder;
|
||||||
import android.view.SurfaceView;
|
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.view.inputmethod.BaseInputConnection;
|
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
import android.view.inputmethod.InputConnection;
|
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
|
|
||||||
|
import javax.net.ssl.TrustManager;
|
||||||
|
import javax.net.ssl.TrustManagerFactory;
|
||||||
|
import javax.net.ssl.X509TrustManager;
|
||||||
|
|
||||||
// This class contains all the glue/interop code for bridging ClassiCube to the java Android world.
|
// This class contains all the glue/interop code for bridging ClassiCube to the java Android world.
|
||||||
// Some functionality is only available on later Android versions - try {} catch {} is used in such places
|
// Some functionality is only available on later Android versions - try {} catch {} is used in such places
|
||||||
// to ensure that the game can still run on earlier Android versions (albeit with reduced functionality)
|
// to ensure that the game can still run on earlier Android versions (albeit with reduced functionality)
|
||||||
|
|
@ -120,10 +121,14 @@ public class MainActivity extends Activity
|
||||||
pending.add(args);
|
pending.add(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void pushCmd(int cmd, Surface surface) {
|
public void pushCmd(int cmd, SurfaceHolder holder) {
|
||||||
NativeCmdArgs args = getCmdArgs();
|
NativeCmdArgs args = getCmdArgs();
|
||||||
args.cmd = cmd;
|
Rect rect = holder.getSurfaceFrame();
|
||||||
args.sur = surface;
|
|
||||||
|
args.cmd = cmd;
|
||||||
|
args.sur = holder.getSurface();
|
||||||
|
args.arg1 = rect.width();
|
||||||
|
args.arg2 = rect.height();
|
||||||
pending.add(args);
|
pending.add(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -350,9 +355,9 @@ public class MainActivity extends Activity
|
||||||
case CMD_GPAD_AXISL: processJoystickL(c.arg1, c.arg2); break;
|
case CMD_GPAD_AXISL: processJoystickL(c.arg1, c.arg2); break;
|
||||||
case CMD_GPAD_AXISR: processJoystickR(c.arg1, c.arg2); break;
|
case CMD_GPAD_AXISR: processJoystickR(c.arg1, c.arg2); break;
|
||||||
|
|
||||||
case CMD_WIN_CREATED: processSurfaceCreated(c.sur); break;
|
case CMD_WIN_CREATED: processSurfaceCreated(c.sur, c.arg1, c.arg2); break;
|
||||||
case CMD_WIN_DESTROYED: processSurfaceDestroyed(); break;
|
case CMD_WIN_DESTROYED: processSurfaceDestroyed(); break;
|
||||||
case CMD_WIN_RESIZED: processSurfaceResized(c.sur); break;
|
case CMD_WIN_RESIZED: processSurfaceResized(c.arg1, c.arg2); break;
|
||||||
case CMD_WIN_REDRAW: processSurfaceRedrawNeeded(); break;
|
case CMD_WIN_REDRAW: processSurfaceRedrawNeeded(); break;
|
||||||
|
|
||||||
case CMD_APP_START: processOnStart(); break;
|
case CMD_APP_START: processOnStart(); break;
|
||||||
|
|
@ -387,9 +392,9 @@ public class MainActivity extends Activity
|
||||||
native void processJoystickL(int x, int y);
|
native void processJoystickL(int x, int y);
|
||||||
native void processJoystickR(int x, int y);
|
native void processJoystickR(int x, int y);
|
||||||
|
|
||||||
native void processSurfaceCreated(Surface sur);
|
native void processSurfaceCreated(Surface sur, int w, int h);
|
||||||
native void processSurfaceDestroyed();
|
native void processSurfaceDestroyed();
|
||||||
native void processSurfaceResized(Surface sur);
|
native void processSurfaceResized(int w, int h);
|
||||||
native void processSurfaceRedrawNeeded();
|
native void processSurfaceRedrawNeeded();
|
||||||
|
|
||||||
native void processOnStart();
|
native void processOnStart();
|
||||||
|
|
@ -434,6 +439,8 @@ public class MainActivity extends Activity
|
||||||
view.setOnGenericMotionListener(listener);
|
view.setOnGenericMotionListener(listener);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// Unsupported on android 12
|
// Unsupported on android 12
|
||||||
|
} catch (NoClassDefFoundError ex) {
|
||||||
|
// Unsupported on android 12
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -442,13 +449,15 @@ public class MainActivity extends Activity
|
||||||
public void surfaceCreated(SurfaceHolder holder) {
|
public void surfaceCreated(SurfaceHolder holder) {
|
||||||
// getSurface - API level 1
|
// getSurface - API level 1
|
||||||
Log.i("CC_WIN", "win created " + holder.getSurface());
|
Log.i("CC_WIN", "win created " + holder.getSurface());
|
||||||
MainActivity.this.pushCmd(CMD_WIN_CREATED, holder.getSurface());
|
Rect r = holder.getSurfaceFrame();
|
||||||
|
MainActivity.this.pushCmd(CMD_WIN_CREATED, holder);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
|
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
|
||||||
// getSurface - API level 1
|
// getSurface - API level 1
|
||||||
Log.i("CC_WIN", "win changed " + holder.getSurface());
|
Log.i("CC_WIN", "win changed " + holder.getSurface());
|
||||||
MainActivity.this.pushCmd(CMD_WIN_RESIZED, holder.getSurface());
|
Rect r = holder.getSurfaceFrame();
|
||||||
|
MainActivity.this.pushCmd(CMD_WIN_RESIZED, holder);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void surfaceDestroyed(SurfaceHolder holder) {
|
public void surfaceDestroyed(SurfaceHolder holder) {
|
||||||
|
|
@ -905,113 +914,100 @@ public class MainActivity extends Activity
|
||||||
|
|
||||||
|
|
||||||
// ======================================================================
|
// ======================================================================
|
||||||
// -------------------------------- HTTP --------------------------------
|
// -------------------------------- SSL ---------------------------------
|
||||||
// ======================================================================
|
// ======================================================================
|
||||||
// Implements java Android side of the Android HTTP backend (See Http.c)
|
static X509TrustManager trust;
|
||||||
static HttpURLConnection conn;
|
static CertificateFactory certFactory;
|
||||||
static InputStream src;
|
static ArrayList<X509Certificate> chain = new ArrayList<X509Certificate>();
|
||||||
static byte[] readCache = new byte[8192];
|
|
||||||
|
|
||||||
public static int httpInit(String url, String method) {
|
static X509TrustManager CreateTrust() throws Exception {
|
||||||
// newer android versions block cleartext traffic by default
|
TrustManagerFactory factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
|
||||||
if (android.os.Build.VERSION.SDK_INT >= 26) {
|
// Load default Trust Anchor certificates
|
||||||
url = url.replace("http://", "https://");
|
factory.init((KeyStore)null);
|
||||||
|
|
||||||
|
TrustManager[] trustManagers = factory.getTrustManagers();
|
||||||
|
for (int i = 0; i < trustManagers.length; i++)
|
||||||
|
{
|
||||||
|
// Should be first entry, e.g. X509TrustManagerImpl
|
||||||
|
if (trustManagers[i] instanceof X509TrustManager)
|
||||||
|
return (X509TrustManager)trustManagers[i];
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int sslCreateTrust() {
|
||||||
try {
|
try {
|
||||||
conn = (HttpURLConnection)new URL(url).openConnection();
|
trust = CreateTrust();
|
||||||
conn.setDoInput(true);
|
return 1;
|
||||||
conn.setRequestMethod(method);
|
|
||||||
conn.setInstanceFollowRedirects(true);
|
|
||||||
|
|
||||||
httpAddMethodHeaders(method);
|
|
||||||
return 0;
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
return httpOnError(ex);
|
ex.printStackTrace();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void httpAddMethodHeaders(String method) {
|
|
||||||
if (!method.equals("HEAD")) return;
|
|
||||||
|
|
||||||
// Ever since dropbox switched to to chunked transfer encoding,
|
|
||||||
// sending a HEAD request to dropbox always seems to result in the
|
|
||||||
// next GET request failing with 'Unexpected status line' ProtocolException
|
|
||||||
// Seems to be a known issue: https://github.com/square/okhttp/issues/3689
|
|
||||||
// Simplest workaround is to ask for connection to be closed after HEAD request
|
|
||||||
httpSetHeader("connection", "close");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void httpSetHeader(String name, String value) {
|
|
||||||
conn.setRequestProperty(name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int httpSetData(byte[] data) {
|
|
||||||
try {
|
|
||||||
conn.setDoOutput(true);
|
|
||||||
conn.getOutputStream().write(data);
|
|
||||||
conn.getOutputStream().flush();
|
|
||||||
return 0;
|
return 0;
|
||||||
} catch (Exception ex) {
|
|
||||||
return httpOnError(ex);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int httpPerform() {
|
public static void sslAddCert(byte[] data) {
|
||||||
int len;
|
|
||||||
try {
|
try {
|
||||||
conn.connect();
|
if (certFactory == null) certFactory = CertificateFactory.getInstance("X.509");
|
||||||
// Some implementations also provide this as getHeaderField(0), but some don't
|
if (certFactory == null) return;
|
||||||
httpParseHeader("HTTP/1.1 " + conn.getResponseCode() + " MSG");
|
|
||||||
|
|
||||||
// Legitimate webservers aren't going to reply with over 200 headers
|
|
||||||
for (int i = 0; i < 200; i++) {
|
|
||||||
String key = conn.getHeaderFieldKey(i);
|
|
||||||
String val = conn.getHeaderField(i);
|
|
||||||
if (key == null && val == null) break;
|
|
||||||
|
|
||||||
if (key == null) {
|
|
||||||
httpParseHeader(val);
|
|
||||||
} else {
|
|
||||||
httpParseHeader(key + ":" + val);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
src = conn.getInputStream();
|
InputStream in = new ByteArrayInputStream(data);
|
||||||
while ((len = src.read(readCache)) > 0) {
|
X509Certificate cert = (X509Certificate) certFactory.generateCertificate(in);
|
||||||
httpAppendData(readCache, len);
|
chain.add(cert);
|
||||||
}
|
|
||||||
|
|
||||||
httpFinish();
|
|
||||||
return 0;
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
return httpOnError(ex);
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void httpFinish() {
|
public static int sslVerifyChain() {
|
||||||
conn = null;
|
int result = -200;
|
||||||
try {
|
try {
|
||||||
src.close();
|
X509Certificate[] certs = new X509Certificate[chain.size()];
|
||||||
} catch (Exception ex) { }
|
for (int i = 0; i < chain.size(); i++) certs[i] = chain.get(i);
|
||||||
src = null;
|
|
||||||
|
trust.checkServerTrusted(certs, "INV");
|
||||||
|
// standard java checks auth type, but android doesn't
|
||||||
|
// See https://issues.chromium.org/issues/40955801
|
||||||
|
result = 0;
|
||||||
|
} catch (Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
chain.clear();
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Should we prune this list?
|
|
||||||
static List<String> errors = new ArrayList<String>();
|
|
||||||
|
|
||||||
static int httpOnError(Exception ex) {
|
// ======================================================================
|
||||||
ex.printStackTrace();
|
// --------------------------- Legacy window ----------------------------
|
||||||
httpFinish();
|
// ======================================================================
|
||||||
errors.add(ex.getMessage());
|
Canvas cur_canvas;
|
||||||
return -errors.size(); // don't want 0 as an error code
|
public int[] legacy_lockCanvas(int l, int t, int r, int b) {
|
||||||
|
CCView surface = (CCView)curView;
|
||||||
|
Rect rect = new Rect(l, t, r, b);
|
||||||
|
cur_canvas = surface.getHolder().lockCanvas(rect);
|
||||||
|
|
||||||
|
int w = (r - l);
|
||||||
|
int h = (b - t);
|
||||||
|
return new int[w * h];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String httpDescribeError(int res) {
|
public void legacy_unlockCanvas(int l, int t, int r, int b, int[] buf) {
|
||||||
res = -res - 1;
|
CCView surface = (CCView)curView;
|
||||||
return res >= 0 && res < errors.size() ? errors.get(res) : null;
|
int w = (r - l);
|
||||||
}
|
int h = (b - t);
|
||||||
|
|
||||||
native static void httpParseHeader(String header);
|
// TODO avoid need to swap R/B
|
||||||
native static void httpAppendData(byte[] data, int len);
|
for (int i = 0; i < buf.length; i++)
|
||||||
|
{
|
||||||
|
int color = buf[i];
|
||||||
|
int R = color & 0x00FF0000;
|
||||||
|
int B = color & 0x000000FF;
|
||||||
|
|
||||||
|
buf[i] = (color & 0xFF00FF00) | (B << 16) | (R >> 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
cur_canvas.drawBitmap(buf, 0, w, l, t, w, h, false, null);
|
||||||
|
surface.getHolder().unlockCanvasAndPost(cur_canvas);
|
||||||
|
cur_canvas = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
* Hemsindor - testing ClassicalSharp on macOS.
|
* Hemsindor - testing ClassicalSharp on macOS.
|
||||||
* headshotnoby - developing the Switch port.
|
* headshotnoby - developing the Switch port.
|
||||||
* Beyond_5D - identifying many differences from original Classic
|
* Beyond_5D - identifying many differences from original Classic
|
||||||
|
* shinovon - developing the Symbian port.
|
||||||
|
|
||||||
And a big thanks to everyone else in the ClassiCube community (who I didn't mention here),
|
And a big thanks to everyone else in the ClassiCube community (who I didn't mention here),
|
||||||
who in the past have provided many suggestions and assisted in identifying bugs.
|
who in the past have provided many suggestions and assisted in identifying bugs.
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ For simplicity, related system specific code is grouped together as a Module (e.
|
||||||
|
|
||||||
#### Note: By default, ClassiCube automatically selects the recommended backends for the system. <br> It is recommended that you do *NOT* change the backends unless you know exactly what you are doing.
|
#### Note: By default, ClassiCube automatically selects the recommended backends for the system. <br> It is recommended that you do *NOT* change the backends unless you know exactly what you are doing.
|
||||||
|
|
||||||
However, on some systems there are potentially multiple backends for a Module. For example on Windows:
|
Some systems may provide multiple potential backends for a Module. For example on Windows:
|
||||||
* OpenGL could be used instead of Direct3D 9 for the 3D rendering backend
|
* OpenGL could be used instead of Direct3D 9 for the 3D rendering backend
|
||||||
* SDL could be used instead of the native WinAPI for the window backend
|
* SDL could be used instead of the native WinAPI for the window backend
|
||||||
|
|
||||||
|
|
@ -19,45 +19,54 @@ TODO finish this
|
||||||
TODO introduction (explaining platform specific modules, and how classicube has to integrate with one of them)
|
TODO introduction (explaining platform specific modules, and how classicube has to integrate with one of them)
|
||||||
|
|
||||||
There are two ways of changing the backend that gets used for the system:
|
There are two ways of changing the backend that gets used for the system:
|
||||||
1) Changing the defines in `Core.h`
|
1) Changing the default defines in `Core.h`
|
||||||
2) Adding `-DCC_BUILD_MANUAL` to compilation flags and then manually defining module backends via additional compilation flags
|
2) Using additional compilation flags to override default module backend(s)
|
||||||
|
3) Adding `-DCC_BUILD_MANUAL` to compilation flags and then manually defining all module backends via additional compilation flags
|
||||||
|
|
||||||
When manually compiling the source code, 1) is usually the easiest. <br>
|
When manually compiling the source code, 1) is usually the easiest. <br>
|
||||||
For automated scripts compiling every single commit, 2) is the recommended approach
|
For automated scripts compiling every single commit, 2) is the recommended approach
|
||||||
TODO: Move this into table
|
TODO: Move this into table
|
||||||
|
|
||||||
|
|
||||||
### 3D Graphics backends
|
### 3D Graphics backends (`CC_GFX_BACKEND`)
|
||||||
* CC_BUILD_D3D9 - Direct3D 9
|
* CC_GFX_BACKEND_SOFTGPU - Software rasteriser
|
||||||
* CC_BUILD_D3D11 - Direct3D 11
|
* CC_GFX_BACKEND_D3D9 - Direct3D 9
|
||||||
* CC_BUILD_GL - OpenGL
|
* CC_GFX_BACKEND_D3D11 - Direct3D 11
|
||||||
|
* CC_GFX_BACKEND_GL1 - OpenGL 1.2/1.5
|
||||||
|
* CC_GFX_BACKEND_GL2 - OpenGL 2 (shaders)
|
||||||
|
|
||||||
The OpenGL backend can be further customised:
|
The OpenGL backend can be further customised:
|
||||||
* CC_BUILD_GL11 - (must also have CC_BUILD_GL defined)
|
* CC_BUILD_GL11 (must be using CC_GFX_BACKEND_GL1)
|
||||||
* CC_BUILD_GLMODERN - (must also have CC_BUILD_GL defined)
|
* CC_BUILD_GLES (must be using CC_GFX_BACKEND_GL2)
|
||||||
* CC_BUILD_GLES (must also have CC_BUILD_GL defined)
|
|
||||||
|
|
||||||
### OpenGL context backends
|
### OpenGL context backends
|
||||||
* CC_BUILD_EGL
|
* CC_BUILD_EGL
|
||||||
* CC_BUILD_WGL
|
* CC_BUILD_WGL
|
||||||
|
|
||||||
### HTTP backends
|
### HTTP backends (`CC_NET_BACKEND`)
|
||||||
* CC_BUILD_CURL
|
* CC_NET_BACKEND_BUILTIN - custom HTTP client
|
||||||
* CC_BUILD_HTTPCLIENT - custom HTTP client
|
* CC_NET_BACKEND_LIBCURL
|
||||||
* CC_BUILD_WININET
|
|
||||||
* CC_BUILD_CFNETWORK
|
* CC_BUILD_CFNETWORK
|
||||||
|
|
||||||
### SSL backends
|
### SSL backends (`CC_SSL_BACKEND`)
|
||||||
* CC_BUILD_SCHANNEL
|
* CC_SSL_BACKEND_NONE
|
||||||
* CC_BUILD_BEARSSL
|
* CC_SSL_BACKEND_BEARSSL
|
||||||
|
* CC_SSL_BACKEND_SCHANNEL
|
||||||
|
|
||||||
### Window backends
|
### Window backends (`CC_WIN_BACKEND`)
|
||||||
* CC_BUILD_SDL
|
* CC_WIN_BACKEND_TERMINAL
|
||||||
* CC_BUILD_X11
|
* CC_WIN_BACKEND_SDL2
|
||||||
* CC_BUILD_WINGUI
|
* CC_WIN_BACKEND_SDL3
|
||||||
|
* CC_WIN_BACKEND_X11
|
||||||
|
* CC_WIN_BACKEND_WIN32
|
||||||
|
|
||||||
|
### Audio backends (`CC_AUD_BACKEND`)
|
||||||
|
* CC_AUD_BACKEND_OPENAL
|
||||||
|
* CC_AUD_BACKEND_WINMM
|
||||||
|
* CC_AUD_BACKEND_OPENSLES
|
||||||
|
|
||||||
### Platform backends
|
### Platform backends
|
||||||
* CC_BUILD_POSIX
|
* CC_BUILD_POSIX
|
||||||
* CC_BUILD_WIN
|
* CC_BUILD_WIN
|
||||||
|
|
||||||
TODO fill in rest
|
TODO fill in rest
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ To find the functions and variables available for use in plugins, look for `CC_A
|
||||||
|
|
||||||
You need to download and install either Visual Studio, MinGW, or GCC/Clang.
|
You need to download and install either Visual Studio, MinGW, or GCC/Clang.
|
||||||
|
|
||||||
*Note: MinGW/GCC/Clang are relatively small, while Visual Studio is gigabytes in size.
|
*Note: MinGW/GCC/Clang are relatively small, while Visual Studio is gigabytes in size.
|
||||||
If you're just trying to compile a plugin on Windows you might want to use MinGW. See main readme.*
|
If you're just trying to compile a plugin on Windows you might want to use MinGW. See main readme.*
|
||||||
|
|
||||||
I assume your directory is structured like this:
|
I assume your directory is structured like this:
|
||||||
|
|
@ -20,6 +20,7 @@ Or in other words, in a directory somewhere, you have a file named `TestPlugin.c
|
||||||
|
|
||||||
### Basic plugin
|
### Basic plugin
|
||||||
```C
|
```C
|
||||||
|
#include "src/PluginAPI.h"
|
||||||
#include "src/Chat.h"
|
#include "src/Chat.h"
|
||||||
#include "src/Game.h"
|
#include "src/Game.h"
|
||||||
#include "src/String.h"
|
#include "src/String.h"
|
||||||
|
|
@ -29,37 +30,12 @@ static void TestPlugin_Init(void) {
|
||||||
Chat_Add(&msg);
|
Chat_Add(&msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Plugin_ApiVersion = 1;
|
PLUGIN_EXPORT int Plugin_ApiVersion = 1;
|
||||||
struct IGameComponent Plugin_Component = { TestPlugin_Init };
|
PLUGIN_EXPORT struct IGameComponent Plugin_Component = { TestPlugin_Init };
|
||||||
```
|
```
|
||||||
Here's the idea for a basic plugin that shows "Hello world" in chat when the game starts. Alas, this won't compile...
|
Here's a basic plugin that shows "Hello world" in chat when the game starts.
|
||||||
|
|
||||||
### Basic plugin boilerplate
|
Note that `src/PluginAPI.h` must always be included as the first header.
|
||||||
```C
|
|
||||||
#ifdef _WIN32
|
|
||||||
#define CC_API __declspec(dllimport)
|
|
||||||
#define CC_VAR __declspec(dllimport)
|
|
||||||
#define EXPORT __declspec(dllexport)
|
|
||||||
#else
|
|
||||||
#define CC_API
|
|
||||||
#define CC_VAR
|
|
||||||
#define EXPORT __attribute__((visibility("default")))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "src/Chat.h"
|
|
||||||
#include "src/Game.h"
|
|
||||||
#include "src/String.h"
|
|
||||||
|
|
||||||
static void TestPlugin_Init(void) {
|
|
||||||
cc_string msg = String_FromConst("Hello world!");
|
|
||||||
Chat_Add(&msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT int Plugin_ApiVersion = 1;
|
|
||||||
EXPORT struct IGameComponent Plugin_Component = { TestPlugin_Init };
|
|
||||||
```
|
|
||||||
With this boilerplate, we're ready to compile the plugin.
|
|
||||||
All plugins require this boilerplate, so feel free to copy and paste it.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -68,8 +44,8 @@ All plugins require this boilerplate, so feel free to copy and paste it.
|
||||||
Exported plugin functions **must** be surrounded with `extern "C"`, i.e.
|
Exported plugin functions **must** be surrounded with `extern "C"`, i.e.
|
||||||
```C
|
```C
|
||||||
extern "C" {
|
extern "C" {
|
||||||
EXPORT int Plugin_ApiVersion = 1;
|
PLUGIN_EXPORT int Plugin_ApiVersion = 1;
|
||||||
EXPORT struct IGameComponent Plugin_Component = { TestPlugin_Init };
|
PLUGIN_EXPORT struct IGameComponent Plugin_Component = { TestPlugin_Init };
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Otherwise your plugin will not load. (you'll see `error getting plugin version` in-game)
|
Otherwise your plugin will not load. (you'll see `error getting plugin version` in-game)
|
||||||
|
|
|
||||||
|
|
@ -1,71 +1,23 @@
|
||||||
Although most of the code is platform-independent, some per-platform functionality is required.
|
Although most of the code is platform-independent, some per-platform functionality is required.
|
||||||
|
|
||||||
By default I try to automatically define appropriate backends for your system in `Core.h`. Define ```CC_BUILD_MANUAL``` to disable this.
|
By default `Core.h` tries to automatically define appropriate backends for your system. Define ```CC_BUILD_MANUAL``` to disable this.
|
||||||
|
|
||||||
|
Note: Updating doesn't work properly in Windows 95 or Windows 98
|
||||||
|
|
||||||
## Before you start
|
## Before you start
|
||||||
* IEEE floating support is required. (Can be emulated in software, but will affect performance)
|
* IEEE floating-point support is required. (Can be emulated in software, but will affect performance)
|
||||||
* int must be 32-bits. 32-bit addressing (or more) is required.
|
* The `int` data type must be 32-bits.
|
||||||
|
* 32-bit addressing (or more) is required.
|
||||||
* Support for 8/16/32/64 integer types is required. (your compiler must support 64-bit arithmetic)
|
* Support for 8/16/32/64 integer types is required. (your compiler must support 64-bit arithmetic)
|
||||||
* At least around 2 MB of RAM is required at a minimum
|
* At least around 2 MB of RAM is required at a minimum
|
||||||
* At least 128 kb for main thread stack size
|
* At least 128 kb for main thread stack size
|
||||||
|
|
||||||
In other words, the codebase can theroetically be ported to any modern-ish hardware, but not stuff like a UNIVAC machine, the SuperFX chip on the SNES, or an 8-bit microcontroller.
|
In summary, the codebase can theroetically be ported to any modern-ish hardware, but not stuff like a UNIVAC machine, the SuperFX chip on the SNES, or an 8-bit microcontroller.
|
||||||
|
|
||||||
## Supported platforms
|
|
||||||
**Note:** Some of these machines are just virtual machines. Should still work on real hardware though.
|
|
||||||
|
|
||||||
#### Tier 1 support
|
|
||||||
These platforms are regularly tested on and have executables automatically compiled for. (see buildbot.sh)
|
|
||||||
|
|
||||||
|Platform|Machine|Notes|
|
|
||||||
|--------|-------|-----|
|
|
||||||
|Windows x86/x64 | Windows 7 |
|
|
||||||
|macOS x86/x64 | macOS 10.12 |
|
|
||||||
|Linux x86/x64 | Xubuntu 14 |
|
|
||||||
|Web client | Chrome |
|
|
||||||
|
|
||||||
#### Tier 2 support
|
|
||||||
These machines are far less frequently tested on, but are otherwise same as tier 1 support.
|
|
||||||
|
|
||||||
|Platform|Machine|Notes|
|
|
||||||
|--------|-------|-----|
|
|
||||||
|Windows x86 | Windows 2000 |
|
|
||||||
|Windows x86 | 98 + KernelEX | Updating doesn't work
|
|
||||||
|Windows x64 | Windows 10 |
|
|
||||||
|ReactOS | ReactOS |
|
|
||||||
|Linux x64 | Arch linux |
|
|
||||||
|Linux x64 | Linux Mint |
|
|
||||||
|Linux x64 | Kubuntu |
|
|
||||||
|Linux x64 | Debian |
|
|
||||||
|Linux x64 | Fedora |
|
|
||||||
|Linux x86/x64 | Lubuntu |
|
|
||||||
|Web client | Firefox |
|
|
||||||
|Web client | Safari |
|
|
||||||
|Web client | Edge | Cursor doesn't seem to disappear
|
|
||||||
|
|
||||||
#### Tier 3 support
|
|
||||||
The game has been compiled and run on these platforms before. It may or may not still compile for them.
|
|
||||||
|
|
||||||
I don't really test these platforms at all, only when I suspect some changes to the code might impact them.
|
|
||||||
|
|
||||||
|Platform|Machine|Notes|
|
|
||||||
|--------|-------|-----|
|
|
||||||
|macOS x86 | macOS 10.4 |
|
|
||||||
|FreeBSD x86 | FreeBSD | x64 should work too |
|
|
||||||
|NetBSD x86 | NetBSD | x64 should work too |
|
|
||||||
|OpenBSD x86 | OpenBSD | x64 should work too |
|
|
||||||
|Solaris x86 | OpenIndiana | x64 should work too |
|
|
||||||
|macOS PPC | macOS 10.3 | PPC64 completely untested |
|
|
||||||
|Linux PPC | Debian | Issues with colour channels incorrectly swapped? |
|
|
||||||
|Linux ARM | Raspberry pi | ARM64 should work too |
|
|
||||||
|Linux SPARC | Debian | Didn't really work due to lack of 24-bit colours |
|
|
||||||
|Linux Alpha | Debian |
|
|
||||||
|HaikuOS | Nightly |
|
|
||||||
|
|
||||||
## Porting
|
## Porting
|
||||||
|
|
||||||
Listed below are the requirements for implementing each platform-dependent file.
|
Listed below are the requirements for implementing each platform-dependent file.<br>
|
||||||
You should try to take advantage of existing backends when porting to other platforms.
|
When porting to other platforms, you should try to leverage existing backends when possible.<br>
|
||||||
Only cross platform backends are listed below.
|
Only cross platform backends are listed below.
|
||||||
|
|
||||||
### Platform
|
### Platform
|
||||||
|
|
@ -93,8 +45,8 @@ Create a window, show a dialog window, set window contents, keyboard/mouse input
|
||||||
Also monitor size, clipboard, cursor, raw relative mouse movement (optional)
|
Also monitor size, clipboard, cursor, raw relative mouse movement (optional)
|
||||||
|
|
||||||
Define:
|
Define:
|
||||||
- ```CC_BUILD_X11``` - Use X11/XLib (unix-ish) (glX)
|
- ```DEFAULT_WIN_BACKEND CC_WIN_BACKEND_X11 ``` - Use X11/XLib (unix-ish) (glX)
|
||||||
- ```CC_BUILD_SDL``` - Use SDL library (SDL)
|
- ```DEFAULT_WIN_BACKEND CC_WIN_BACKEND_SDL2``` - Use SDL2 library (SDL2)
|
||||||
|
|
||||||
If using OpenGL, also OpenGL context management
|
If using OpenGL, also OpenGL context management
|
||||||
|
|
||||||
|
|
@ -112,24 +64,29 @@ posix note: Register access is highly dependent on OS and architecture.
|
||||||
Play multiple audio streams with varying sample rates
|
Play multiple audio streams with varying sample rates
|
||||||
|
|
||||||
Define:
|
Define:
|
||||||
- ```CC_BUILD_OPENAL``` - use OpenAL
|
- ```DEFAULT_AUD_BACKEND CC_AUD_BACKEND_OPENAL``` - use OpenAL
|
||||||
- ```CC_BUILD_NOAUDIO``` - stub audio implementation (silent)
|
- ```CC_BUILD_NOAUDIO``` - stub audio implementation (silent)
|
||||||
|
|
||||||
### 3D Graphics
|
### 3D Graphics
|
||||||
Texturing, depth buffer, alpha, etc (See Graphics.h for full list)
|
Texturing, depth buffer, alpha, etc (See Graphics.h for full list)
|
||||||
|
|
||||||
Define:
|
Define:
|
||||||
- ```CC_BUILD_D3D9``` - Use Direct3D9
|
- ```DEFAULT_GFX_BACKEND CC_GFX_BACKEND_GL1``` - Use legacy OpenGL (1.5/1.2 + ARB_VERTEX_BUFFER_OBJECT)
|
||||||
- ```CC_BUILD_GL``` - Use OpenGL (1.5/1.2 + ARB_VERTEX_BUFFER_OBJECT)
|
- ```CC_BUILD_GL11``` - Use OpenGL 1.1 features only
|
||||||
- ```CC_BUILD_GL11``` - Use OpenGL 1.1 features only
|
- ```DEFAULT_GFX_BACKEND CC_GFX_BACKEND_GL2``` - Use modern OpenGL shaders
|
||||||
- ```CC_BUILD_GLMODERN``` - Use modern OpenGL shaders
|
- ```CC_BUILD_GLES``` - Makes these shaders compatible with OpenGL ES
|
||||||
- ```CC_BUILD_GLES``` - Makes these shaders compatible with OpenGL ES
|
- ```DEFAULT_GFX_BACKEND CC_GFX_BACKEND_SOFTGPU``` - Use built in software rasteriser
|
||||||
|
|
||||||
### HTTP
|
### HTTP
|
||||||
HTTP, HTTPS, and setting request/getting response headers
|
HTTP, HTTPS, and setting request/getting response headers
|
||||||
|
|
||||||
Define:
|
Define:
|
||||||
- ```CC_BUILD_HTTPCLIENT``` - use built in simple HTTP backend
|
- ```DEFAULT_NET_BACKEND CC_NET_BACKEND_BUILTIN``` - use built in simple HTTP backend
|
||||||
- ```CC_BUILD_CURL``` - use libcurl for HTTP
|
|
||||||
|
|
||||||
Supporting connection reuse is highly recommended. (but not required)
|
Supporting connection reuse is highly recommended. (but not required)
|
||||||
|
|
||||||
|
### SSL
|
||||||
|
SSL and TLS support, plus basic certificate validation
|
||||||
|
|
||||||
|
Define:
|
||||||
|
- ```DEFAULT_SSL_BACKEND CC_SSL_BACKEND_BEARSSL``` - use BearSSL for SSL/TLS
|
||||||
|
|
|
||||||
|
|
@ -1,652 +0,0 @@
|
||||||
// !$*UTF8*$!
|
|
||||||
{
|
|
||||||
archiveVersion = 1;
|
|
||||||
classes = {
|
|
||||||
};
|
|
||||||
objectVersion = 50;
|
|
||||||
objects = {
|
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
|
||||||
9A4D0C642BDD168800E1695D /* TouchUI.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A4D0C632BDD168800E1695D /* TouchUI.c */; };
|
|
||||||
9A57ECEE2BCD1408006A89F0 /* AudioBackend.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A57ECED2BCD1408006A89F0 /* AudioBackend.c */; };
|
|
||||||
9A57ECF02BCD1413006A89F0 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A57ECEF2BCD1412006A89F0 /* main.c */; };
|
|
||||||
9A62ADF5286D906F00E5E3DE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9A62ADF4286D906F00E5E3DE /* Assets.xcassets */; };
|
|
||||||
9A6C79652BFDDEF200676D27 /* FancyLighting.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A6C79642BFDDEF100676D27 /* FancyLighting.c */; };
|
|
||||||
9A6C79672BFDDF0700676D27 /* Queue.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A6C79662BFDDF0600676D27 /* Queue.c */; };
|
|
||||||
9A6C7DFA2C2F610C00676D27 /* LBackend_ios.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A6C7DF92C2F610C00676D27 /* LBackend_ios.m */; };
|
|
||||||
9A6C7DFC2C41E93700676D27 /* InputHandler.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A6C7DFB2C41E93700676D27 /* InputHandler.c */; };
|
|
||||||
9A6C7DFE2C41E95D00676D27 /* MenuOptions.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A6C7DFD2C41E95C00676D27 /* MenuOptions.c */; };
|
|
||||||
9A6C7E002C41EED700676D27 /* Window_ios.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A6C7DFF2C41EED700676D27 /* Window_ios.m */; };
|
|
||||||
9A7401D92B737D5C0040E575 /* Commands.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A7401D82B737D5B0040E575 /* Commands.c */; };
|
|
||||||
9A7401DB2B7384060040E575 /* SSL.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A7401DA2B7384060040E575 /* SSL.c */; };
|
|
||||||
9A89D4F227F802F600FF3F80 /* LWidgets.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D37827F802F500FF3F80 /* LWidgets.c */; };
|
|
||||||
9A89D4F327F802F600FF3F80 /* Graphics_GL2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D37A27F802F500FF3F80 /* Graphics_GL2.c */; };
|
|
||||||
9A89D4F427F802F600FF3F80 /* Vorbis.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D37C27F802F500FF3F80 /* Vorbis.c */; };
|
|
||||||
9A89D4F527F802F600FF3F80 /* _ftsynth.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D37D27F802F500FF3F80 /* _ftsynth.c */; };
|
|
||||||
9A89D4F727F802F600FF3F80 /* Game.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D38027F802F500FF3F80 /* Game.c */; };
|
|
||||||
9A89D4F927F802F600FF3F80 /* Http_Worker.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D38227F802F500FF3F80 /* Http_Worker.c */; };
|
|
||||||
9A89D4FB27F802F600FF3F80 /* TexturePack.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D38427F802F500FF3F80 /* TexturePack.c */; };
|
|
||||||
9A89D4FD27F802F600FF3F80 /* ExtMath.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D38627F802F500FF3F80 /* ExtMath.c */; };
|
|
||||||
9A89D4FE27F802F600FF3F80 /* Inventory.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D38B27F802F500FF3F80 /* Inventory.c */; };
|
|
||||||
9A89D4FF27F802F600FF3F80 /* Gui.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D38C27F802F500FF3F80 /* Gui.c */; };
|
|
||||||
9A89D50027F802F600FF3F80 /* _truetype.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D38E27F802F500FF3F80 /* _truetype.c */; };
|
|
||||||
9A89D50127F802F600FF3F80 /* LBackend.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D38F27F802F500FF3F80 /* LBackend.c */; };
|
|
||||||
9A89D50227F802F600FF3F80 /* Block.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D39127F802F500FF3F80 /* Block.c */; };
|
|
||||||
9A89D50327F802F600FF3F80 /* Platform_Posix.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D39227F802F500FF3F80 /* Platform_Posix.c */; };
|
|
||||||
9A89D50427F802F600FF3F80 /* Model.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D39627F802F500FF3F80 /* Model.c */; };
|
|
||||||
9A89D50527F802F600FF3F80 /* LScreens.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D39827F802F500FF3F80 /* LScreens.c */; };
|
|
||||||
9A89D50627F802F600FF3F80 /* Builder.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D39927F802F500FF3F80 /* Builder.c */; };
|
|
||||||
9A89D50727F802F600FF3F80 /* Particle.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D39B27F802F500FF3F80 /* Particle.c */; };
|
|
||||||
9A89D50827F802F600FF3F80 /* PackedCol.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D39C27F802F500FF3F80 /* PackedCol.c */; };
|
|
||||||
9A89D54F27F802F600FF3F80 /* Deflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D47227F802F500FF3F80 /* Deflate.c */; };
|
|
||||||
9A89D55027F802F600FF3F80 /* Entity.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D47427F802F500FF3F80 /* Entity.c */; };
|
|
||||||
9A89D55127F802F600FF3F80 /* IsometricDrawer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D47527F802F500FF3F80 /* IsometricDrawer.c */; };
|
|
||||||
9A89D55227F802F600FF3F80 /* Logger.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D47627F802F500FF3F80 /* Logger.c */; };
|
|
||||||
9A89D55327F802F600FF3F80 /* _psaux.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D47727F802F500FF3F80 /* _psaux.c */; };
|
|
||||||
9A89D55427F802F600FF3F80 /* Bitmap.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D47827F802F500FF3F80 /* Bitmap.c */; };
|
|
||||||
9A89D55527F802F600FF3F80 /* HeldBlockRenderer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D47927F802F500FF3F80 /* HeldBlockRenderer.c */; };
|
|
||||||
9A89D55627F802F600FF3F80 /* EnvRenderer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D47A27F802F500FF3F80 /* EnvRenderer.c */; };
|
|
||||||
9A89D55827F802F600FF3F80 /* Graphics_GL1.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D47E27F802F500FF3F80 /* Graphics_GL1.c */; };
|
|
||||||
9A89D55927F802F600FF3F80 /* interop_ios.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D47F27F802F600FF3F80 /* interop_ios.m */; };
|
|
||||||
9A89D55B27F802F600FF3F80 /* _type1.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D48227F802F600FF3F80 /* _type1.c */; };
|
|
||||||
9A89D55C27F802F600FF3F80 /* Animations.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D48527F802F600FF3F80 /* Animations.c */; };
|
|
||||||
9A89D55D27F802F600FF3F80 /* _psmodule.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D48627F802F600FF3F80 /* _psmodule.c */; };
|
|
||||||
9A89D55E27F802F600FF3F80 /* World.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D48727F802F600FF3F80 /* World.c */; };
|
|
||||||
9A89D55F27F802F600FF3F80 /* _sfnt.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D48827F802F600FF3F80 /* _sfnt.c */; };
|
|
||||||
9A89D56027F802F600FF3F80 /* _ftbitmap.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D48A27F802F600FF3F80 /* _ftbitmap.c */; };
|
|
||||||
9A89D56127F802F600FF3F80 /* Menus.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D48B27F802F600FF3F80 /* Menus.c */; };
|
|
||||||
9A89D56227F802F600FF3F80 /* _ftbase.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D48C27F802F600FF3F80 /* _ftbase.c */; };
|
|
||||||
9A89D56327F802F600FF3F80 /* _autofit.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D48D27F802F600FF3F80 /* _autofit.c */; };
|
|
||||||
9A89D56427F802F600FF3F80 /* String.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D49227F802F600FF3F80 /* String.c */; };
|
|
||||||
9A89D56527F802F600FF3F80 /* Generator.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D49427F802F600FF3F80 /* Generator.c */; };
|
|
||||||
9A89D56627F802F600FF3F80 /* Drawer2D.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D49527F802F600FF3F80 /* Drawer2D.c */; };
|
|
||||||
9A89D56727F802F600FF3F80 /* Drawer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D49827F802F600FF3F80 /* Drawer.c */; };
|
|
||||||
9A89D56827F802F600FF3F80 /* Lighting.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D49927F802F600FF3F80 /* Lighting.c */; };
|
|
||||||
9A89D56A27F802F600FF3F80 /* Physics.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D49B27F802F600FF3F80 /* Physics.c */; };
|
|
||||||
9A89D56B27F802F600FF3F80 /* Server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D49E27F802F600FF3F80 /* Server.c */; };
|
|
||||||
9A89D56C27F802F600FF3F80 /* _ftinit.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4A027F802F600FF3F80 /* _ftinit.c */; };
|
|
||||||
9A89D56F27F802F600FF3F80 /* Input.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4A627F802F600FF3F80 /* Input.c */; };
|
|
||||||
9A89D57227F802F600FF3F80 /* Picking.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4AA27F802F600FF3F80 /* Picking.c */; };
|
|
||||||
9A89D57327F802F600FF3F80 /* Utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4AB27F802F600FF3F80 /* Utils.c */; };
|
|
||||||
9A89D57427F802F600FF3F80 /* MapRenderer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4AE27F802F600FF3F80 /* MapRenderer.c */; };
|
|
||||||
9A89D57527F802F600FF3F80 /* AxisLinesRenderer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4AF27F802F600FF3F80 /* AxisLinesRenderer.c */; };
|
|
||||||
9A89D57627F802F600FF3F80 /* _pshinter.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4B127F802F600FF3F80 /* _pshinter.c */; };
|
|
||||||
9A89D57827F802F600FF3F80 /* Protocol.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4B327F802F600FF3F80 /* Protocol.c */; };
|
|
||||||
9A89D57927F802F600FF3F80 /* Event.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4B527F802F600FF3F80 /* Event.c */; };
|
|
||||||
9A89D57B27F802F600FF3F80 /* _ftglyph.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4BB27F802F600FF3F80 /* _ftglyph.c */; };
|
|
||||||
9A89D57C27F802F600FF3F80 /* Chat.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4BC27F802F600FF3F80 /* Chat.c */; };
|
|
||||||
9A89D57D27F802F600FF3F80 /* _smooth.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4BD27F802F600FF3F80 /* _smooth.c */; };
|
|
||||||
9A89D57E27F802F600FF3F80 /* Resources.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4BE27F802F600FF3F80 /* Resources.c */; };
|
|
||||||
9A89D57F27F802F600FF3F80 /* LWeb.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4C427F802F600FF3F80 /* LWeb.c */; };
|
|
||||||
9A89D58027F802F600FF3F80 /* Formats.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4C627F802F600FF3F80 /* Formats.c */; };
|
|
||||||
9A89D58127F802F600FF3F80 /* SelOutlineRenderer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4C927F802F600FF3F80 /* SelOutlineRenderer.c */; };
|
|
||||||
9A89D58327F802F600FF3F80 /* EntityComponents.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4CC27F802F600FF3F80 /* EntityComponents.c */; };
|
|
||||||
9A89D58427F802F600FF3F80 /* Camera.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4CF27F802F600FF3F80 /* Camera.c */; };
|
|
||||||
9A89D58627F802F600FF3F80 /* Screens.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4D127F802F600FF3F80 /* Screens.c */; };
|
|
||||||
9A89D58727F802F600FF3F80 /* SelectionBox.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4D227F802F600FF3F80 /* SelectionBox.c */; };
|
|
||||||
9A89D58927F802F600FF3F80 /* _cff.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4DA27F802F600FF3F80 /* _cff.c */; };
|
|
||||||
9A89D58A27F802F600FF3F80 /* BlockPhysics.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4DB27F802F600FF3F80 /* BlockPhysics.c */; };
|
|
||||||
9A89D58B27F802F600FF3F80 /* Launcher.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4DD27F802F600FF3F80 /* Launcher.c */; };
|
|
||||||
9A89D58D27F802F600FF3F80 /* Options.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4E327F802F600FF3F80 /* Options.c */; };
|
|
||||||
9A89D58E27F802F600FF3F80 /* Window_SDL2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4E427F802F600FF3F80 /* Window_SDL2.c */; };
|
|
||||||
9A89D58F27F802F600FF3F80 /* Audio.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4E727F802F600FF3F80 /* Audio.c */; };
|
|
||||||
9A89D59027F802F600FF3F80 /* Stream.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4E827F802F600FF3F80 /* Stream.c */; };
|
|
||||||
9A89D59127F802F600FF3F80 /* Vectors.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4E927F802F600FF3F80 /* Vectors.c */; };
|
|
||||||
9A89D59427F802F600FF3F80 /* Widgets.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A89D4EE27F802F600FF3F80 /* Widgets.c */; };
|
|
||||||
9AC5433E2AE2649F0086C85F /* SystemFonts.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AC5433D2AE2649E0086C85F /* SystemFonts.c */; };
|
|
||||||
9AC543402AE264AC0086C85F /* GameVersion.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AC5433F2AE264AC0086C85F /* GameVersion.c */; };
|
|
||||||
9AC543422AE264B90086C85F /* EntityRenderers.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AC543412AE264B90086C85F /* EntityRenderers.c */; };
|
|
||||||
/* End PBXBuildFile section */
|
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
|
||||||
9A4D0C632BDD168800E1695D /* TouchUI.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = TouchUI.c; sourceTree = "<group>"; };
|
|
||||||
9A57ECED2BCD1408006A89F0 /* AudioBackend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = AudioBackend.c; sourceTree = "<group>"; };
|
|
||||||
9A57ECEF2BCD1412006A89F0 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; };
|
|
||||||
9A62ADF4286D906F00E5E3DE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = ClassiCube/Assets.xcassets; sourceTree = "<group>"; };
|
|
||||||
9A6C79642BFDDEF100676D27 /* FancyLighting.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = FancyLighting.c; sourceTree = "<group>"; };
|
|
||||||
9A6C79662BFDDF0600676D27 /* Queue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Queue.c; sourceTree = "<group>"; };
|
|
||||||
9A6C7DF92C2F610C00676D27 /* LBackend_ios.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LBackend_ios.m; sourceTree = "<group>"; };
|
|
||||||
9A6C7DFB2C41E93700676D27 /* InputHandler.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = InputHandler.c; sourceTree = "<group>"; };
|
|
||||||
9A6C7DFD2C41E95C00676D27 /* MenuOptions.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = MenuOptions.c; sourceTree = "<group>"; };
|
|
||||||
9A6C7DFF2C41EED700676D27 /* Window_ios.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Window_ios.m; sourceTree = "<group>"; };
|
|
||||||
9A7401D82B737D5B0040E575 /* Commands.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Commands.c; sourceTree = "<group>"; };
|
|
||||||
9A7401DA2B7384060040E575 /* SSL.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SSL.c; sourceTree = "<group>"; };
|
|
||||||
9A89D35727F802B100FF3F80 /* ClassiCube.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ClassiCube.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
9A89D36827F802B400FF3F80 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
|
||||||
9A89D37827F802F500FF3F80 /* LWidgets.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LWidgets.c; sourceTree = "<group>"; };
|
|
||||||
9A89D37A27F802F500FF3F80 /* Graphics_GL2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Graphics_GL2.c; sourceTree = "<group>"; };
|
|
||||||
9A89D37C27F802F500FF3F80 /* Vorbis.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Vorbis.c; sourceTree = "<group>"; };
|
|
||||||
9A89D37D27F802F500FF3F80 /* _ftsynth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _ftsynth.c; sourceTree = "<group>"; };
|
|
||||||
9A89D38027F802F500FF3F80 /* Game.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Game.c; sourceTree = "<group>"; };
|
|
||||||
9A89D38227F802F500FF3F80 /* Http_Worker.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Http_Worker.c; sourceTree = "<group>"; };
|
|
||||||
9A89D38427F802F500FF3F80 /* TexturePack.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = TexturePack.c; sourceTree = "<group>"; };
|
|
||||||
9A89D38627F802F500FF3F80 /* ExtMath.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ExtMath.c; sourceTree = "<group>"; };
|
|
||||||
9A89D38B27F802F500FF3F80 /* Inventory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Inventory.c; sourceTree = "<group>"; };
|
|
||||||
9A89D38C27F802F500FF3F80 /* Gui.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Gui.c; sourceTree = "<group>"; };
|
|
||||||
9A89D38E27F802F500FF3F80 /* _truetype.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _truetype.c; sourceTree = "<group>"; };
|
|
||||||
9A89D38F27F802F500FF3F80 /* LBackend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LBackend.c; sourceTree = "<group>"; };
|
|
||||||
9A89D39127F802F500FF3F80 /* Block.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Block.c; sourceTree = "<group>"; };
|
|
||||||
9A89D39227F802F500FF3F80 /* Platform_Posix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Platform_Posix.c; sourceTree = "<group>"; };
|
|
||||||
9A89D39627F802F500FF3F80 /* Model.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Model.c; sourceTree = "<group>"; };
|
|
||||||
9A89D39827F802F500FF3F80 /* LScreens.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LScreens.c; sourceTree = "<group>"; };
|
|
||||||
9A89D39927F802F500FF3F80 /* Builder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Builder.c; sourceTree = "<group>"; };
|
|
||||||
9A89D39B27F802F500FF3F80 /* Particle.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Particle.c; sourceTree = "<group>"; };
|
|
||||||
9A89D39C27F802F500FF3F80 /* PackedCol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = PackedCol.c; sourceTree = "<group>"; };
|
|
||||||
9A89D47227F802F500FF3F80 /* Deflate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Deflate.c; sourceTree = "<group>"; };
|
|
||||||
9A89D47427F802F500FF3F80 /* Entity.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Entity.c; sourceTree = "<group>"; };
|
|
||||||
9A89D47527F802F500FF3F80 /* IsometricDrawer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = IsometricDrawer.c; sourceTree = "<group>"; };
|
|
||||||
9A89D47627F802F500FF3F80 /* Logger.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Logger.c; sourceTree = "<group>"; };
|
|
||||||
9A89D47727F802F500FF3F80 /* _psaux.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _psaux.c; sourceTree = "<group>"; };
|
|
||||||
9A89D47827F802F500FF3F80 /* Bitmap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Bitmap.c; sourceTree = "<group>"; };
|
|
||||||
9A89D47927F802F500FF3F80 /* HeldBlockRenderer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = HeldBlockRenderer.c; sourceTree = "<group>"; };
|
|
||||||
9A89D47A27F802F500FF3F80 /* EnvRenderer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = EnvRenderer.c; sourceTree = "<group>"; };
|
|
||||||
9A89D47E27F802F500FF3F80 /* Graphics_GL1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Graphics_GL1.c; sourceTree = "<group>"; };
|
|
||||||
9A89D47F27F802F600FF3F80 /* interop_ios.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = interop_ios.m; sourceTree = "<group>"; };
|
|
||||||
9A89D48227F802F600FF3F80 /* _type1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _type1.c; sourceTree = "<group>"; };
|
|
||||||
9A89D48527F802F600FF3F80 /* Animations.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Animations.c; sourceTree = "<group>"; };
|
|
||||||
9A89D48627F802F600FF3F80 /* _psmodule.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _psmodule.c; sourceTree = "<group>"; };
|
|
||||||
9A89D48727F802F600FF3F80 /* World.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = World.c; sourceTree = "<group>"; };
|
|
||||||
9A89D48827F802F600FF3F80 /* _sfnt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _sfnt.c; sourceTree = "<group>"; };
|
|
||||||
9A89D48A27F802F600FF3F80 /* _ftbitmap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _ftbitmap.c; sourceTree = "<group>"; };
|
|
||||||
9A89D48B27F802F600FF3F80 /* Menus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Menus.c; sourceTree = "<group>"; };
|
|
||||||
9A89D48C27F802F600FF3F80 /* _ftbase.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _ftbase.c; sourceTree = "<group>"; };
|
|
||||||
9A89D48D27F802F600FF3F80 /* _autofit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _autofit.c; sourceTree = "<group>"; };
|
|
||||||
9A89D49227F802F600FF3F80 /* String.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = String.c; sourceTree = "<group>"; };
|
|
||||||
9A89D49427F802F600FF3F80 /* Generator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Generator.c; sourceTree = "<group>"; };
|
|
||||||
9A89D49527F802F600FF3F80 /* Drawer2D.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Drawer2D.c; sourceTree = "<group>"; };
|
|
||||||
9A89D49827F802F600FF3F80 /* Drawer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Drawer.c; sourceTree = "<group>"; };
|
|
||||||
9A89D49927F802F600FF3F80 /* Lighting.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Lighting.c; sourceTree = "<group>"; };
|
|
||||||
9A89D49B27F802F600FF3F80 /* Physics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Physics.c; sourceTree = "<group>"; };
|
|
||||||
9A89D49E27F802F600FF3F80 /* Server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Server.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4A027F802F600FF3F80 /* _ftinit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _ftinit.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4A627F802F600FF3F80 /* Input.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Input.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4AA27F802F600FF3F80 /* Picking.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Picking.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4AB27F802F600FF3F80 /* Utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Utils.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4AE27F802F600FF3F80 /* MapRenderer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = MapRenderer.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4AF27F802F600FF3F80 /* AxisLinesRenderer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = AxisLinesRenderer.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4B127F802F600FF3F80 /* _pshinter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _pshinter.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4B327F802F600FF3F80 /* Protocol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Protocol.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4B527F802F600FF3F80 /* Event.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Event.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4BB27F802F600FF3F80 /* _ftglyph.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _ftglyph.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4BC27F802F600FF3F80 /* Chat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Chat.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4BD27F802F600FF3F80 /* _smooth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _smooth.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4BE27F802F600FF3F80 /* Resources.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Resources.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4C427F802F600FF3F80 /* LWeb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LWeb.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4C627F802F600FF3F80 /* Formats.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Formats.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4C927F802F600FF3F80 /* SelOutlineRenderer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SelOutlineRenderer.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4CC27F802F600FF3F80 /* EntityComponents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = EntityComponents.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4CF27F802F600FF3F80 /* Camera.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Camera.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4D127F802F600FF3F80 /* Screens.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Screens.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4D227F802F600FF3F80 /* SelectionBox.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SelectionBox.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4DA27F802F600FF3F80 /* _cff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = _cff.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4DB27F802F600FF3F80 /* BlockPhysics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = BlockPhysics.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4DD27F802F600FF3F80 /* Launcher.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Launcher.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4E327F802F600FF3F80 /* Options.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Options.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4E427F802F600FF3F80 /* Window_SDL2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Window_SDL2.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4E727F802F600FF3F80 /* Audio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Audio.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4E827F802F600FF3F80 /* Stream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Stream.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4E927F802F600FF3F80 /* Vectors.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Vectors.c; sourceTree = "<group>"; };
|
|
||||||
9A89D4EE27F802F600FF3F80 /* Widgets.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Widgets.c; sourceTree = "<group>"; };
|
|
||||||
9AC5433D2AE2649E0086C85F /* SystemFonts.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SystemFonts.c; sourceTree = "<group>"; };
|
|
||||||
9AC5433F2AE264AC0086C85F /* GameVersion.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = GameVersion.c; sourceTree = "<group>"; };
|
|
||||||
9AC543412AE264B90086C85F /* EntityRenderers.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = EntityRenderers.c; sourceTree = "<group>"; };
|
|
||||||
/* End PBXFileReference section */
|
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
|
||||||
9A89D35427F802B100FF3F80 /* Frameworks */ = {
|
|
||||||
isa = PBXFrameworksBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXFrameworksBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
|
||||||
9A89D34E27F802B100FF3F80 = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
9A62ADF4286D906F00E5E3DE /* Assets.xcassets */,
|
|
||||||
9A89D36827F802B400FF3F80 /* Info.plist */,
|
|
||||||
9A89D37727F802F500FF3F80 /* src */,
|
|
||||||
9A89D35827F802B100FF3F80 /* Products */,
|
|
||||||
);
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
9A89D35827F802B100FF3F80 /* Products */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
9A89D35727F802B100FF3F80 /* ClassiCube.app */,
|
|
||||||
);
|
|
||||||
name = Products;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
9A89D37727F802F500FF3F80 /* src */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
9A6C7DFF2C41EED700676D27 /* Window_ios.m */,
|
|
||||||
9A6C7DFD2C41E95C00676D27 /* MenuOptions.c */,
|
|
||||||
9A6C7DFB2C41E93700676D27 /* InputHandler.c */,
|
|
||||||
9A6C7DF92C2F610C00676D27 /* LBackend_ios.m */,
|
|
||||||
9A6C79662BFDDF0600676D27 /* Queue.c */,
|
|
||||||
9A6C79642BFDDEF100676D27 /* FancyLighting.c */,
|
|
||||||
9A4D0C632BDD168800E1695D /* TouchUI.c */,
|
|
||||||
9A57ECEF2BCD1412006A89F0 /* main.c */,
|
|
||||||
9A57ECED2BCD1408006A89F0 /* AudioBackend.c */,
|
|
||||||
9A7401DA2B7384060040E575 /* SSL.c */,
|
|
||||||
9A7401D82B737D5B0040E575 /* Commands.c */,
|
|
||||||
9AC543412AE264B90086C85F /* EntityRenderers.c */,
|
|
||||||
9AC5433F2AE264AC0086C85F /* GameVersion.c */,
|
|
||||||
9AC5433D2AE2649E0086C85F /* SystemFonts.c */,
|
|
||||||
9A89D48D27F802F600FF3F80 /* _autofit.c */,
|
|
||||||
9A89D4DA27F802F600FF3F80 /* _cff.c */,
|
|
||||||
9A89D48C27F802F600FF3F80 /* _ftbase.c */,
|
|
||||||
9A89D48A27F802F600FF3F80 /* _ftbitmap.c */,
|
|
||||||
9A89D4BB27F802F600FF3F80 /* _ftglyph.c */,
|
|
||||||
9A89D4A027F802F600FF3F80 /* _ftinit.c */,
|
|
||||||
9A89D37D27F802F500FF3F80 /* _ftsynth.c */,
|
|
||||||
9A89D47727F802F500FF3F80 /* _psaux.c */,
|
|
||||||
9A89D4B127F802F600FF3F80 /* _pshinter.c */,
|
|
||||||
9A89D48627F802F600FF3F80 /* _psmodule.c */,
|
|
||||||
9A89D48827F802F600FF3F80 /* _sfnt.c */,
|
|
||||||
9A89D4BD27F802F600FF3F80 /* _smooth.c */,
|
|
||||||
9A89D38E27F802F500FF3F80 /* _truetype.c */,
|
|
||||||
9A89D48227F802F600FF3F80 /* _type1.c */,
|
|
||||||
9A89D48527F802F600FF3F80 /* Animations.c */,
|
|
||||||
9A89D4E727F802F600FF3F80 /* Audio.c */,
|
|
||||||
9A89D4AF27F802F600FF3F80 /* AxisLinesRenderer.c */,
|
|
||||||
9A89D47827F802F500FF3F80 /* Bitmap.c */,
|
|
||||||
9A89D39127F802F500FF3F80 /* Block.c */,
|
|
||||||
9A89D4DB27F802F600FF3F80 /* BlockPhysics.c */,
|
|
||||||
9A89D39927F802F500FF3F80 /* Builder.c */,
|
|
||||||
9A89D4CF27F802F600FF3F80 /* Camera.c */,
|
|
||||||
9A89D4BC27F802F600FF3F80 /* Chat.c */,
|
|
||||||
9A89D47227F802F500FF3F80 /* Deflate.c */,
|
|
||||||
9A89D49827F802F600FF3F80 /* Drawer.c */,
|
|
||||||
9A89D49527F802F600FF3F80 /* Drawer2D.c */,
|
|
||||||
9A89D47427F802F500FF3F80 /* Entity.c */,
|
|
||||||
9A89D4CC27F802F600FF3F80 /* EntityComponents.c */,
|
|
||||||
9A89D47A27F802F500FF3F80 /* EnvRenderer.c */,
|
|
||||||
9A89D4B527F802F600FF3F80 /* Event.c */,
|
|
||||||
9A89D38627F802F500FF3F80 /* ExtMath.c */,
|
|
||||||
9A89D4C627F802F600FF3F80 /* Formats.c */,
|
|
||||||
9A89D38027F802F500FF3F80 /* Game.c */,
|
|
||||||
9A89D49427F802F600FF3F80 /* Generator.c */,
|
|
||||||
9A89D47E27F802F500FF3F80 /* Graphics_GL1.c */,
|
|
||||||
9A89D37A27F802F500FF3F80 /* Graphics_GL2.c */,
|
|
||||||
9A89D38C27F802F500FF3F80 /* Gui.c */,
|
|
||||||
9A89D47927F802F500FF3F80 /* HeldBlockRenderer.c */,
|
|
||||||
9A89D38227F802F500FF3F80 /* Http_Worker.c */,
|
|
||||||
9A89D4A627F802F600FF3F80 /* Input.c */,
|
|
||||||
9A89D38B27F802F500FF3F80 /* Inventory.c */,
|
|
||||||
9A89D47527F802F500FF3F80 /* IsometricDrawer.c */,
|
|
||||||
9A89D4DD27F802F600FF3F80 /* Launcher.c */,
|
|
||||||
9A89D38F27F802F500FF3F80 /* LBackend.c */,
|
|
||||||
9A89D49927F802F600FF3F80 /* Lighting.c */,
|
|
||||||
9A89D47627F802F500FF3F80 /* Logger.c */,
|
|
||||||
9A89D39827F802F500FF3F80 /* LScreens.c */,
|
|
||||||
9A89D4C427F802F600FF3F80 /* LWeb.c */,
|
|
||||||
9A89D37827F802F500FF3F80 /* LWidgets.c */,
|
|
||||||
9A89D4AE27F802F600FF3F80 /* MapRenderer.c */,
|
|
||||||
9A89D48B27F802F600FF3F80 /* Menus.c */,
|
|
||||||
9A89D39627F802F500FF3F80 /* Model.c */,
|
|
||||||
9A89D4E327F802F600FF3F80 /* Options.c */,
|
|
||||||
9A89D39C27F802F500FF3F80 /* PackedCol.c */,
|
|
||||||
9A89D39B27F802F500FF3F80 /* Particle.c */,
|
|
||||||
9A89D49B27F802F600FF3F80 /* Physics.c */,
|
|
||||||
9A89D4C927F802F600FF3F80 /* SelOutlineRenderer.c */,
|
|
||||||
9A89D4AA27F802F600FF3F80 /* Picking.c */,
|
|
||||||
9A89D39227F802F500FF3F80 /* Platform_Posix.c */,
|
|
||||||
9A89D4B327F802F600FF3F80 /* Protocol.c */,
|
|
||||||
9A89D4BE27F802F600FF3F80 /* Resources.c */,
|
|
||||||
9A89D4D127F802F600FF3F80 /* Screens.c */,
|
|
||||||
9A89D4D227F802F600FF3F80 /* SelectionBox.c */,
|
|
||||||
9A89D49E27F802F600FF3F80 /* Server.c */,
|
|
||||||
9A89D4E827F802F600FF3F80 /* Stream.c */,
|
|
||||||
9A89D49227F802F600FF3F80 /* String.c */,
|
|
||||||
9A89D38427F802F500FF3F80 /* TexturePack.c */,
|
|
||||||
9A89D4AB27F802F600FF3F80 /* Utils.c */,
|
|
||||||
9A89D4E927F802F600FF3F80 /* Vectors.c */,
|
|
||||||
9A89D37C27F802F500FF3F80 /* Vorbis.c */,
|
|
||||||
9A89D4EE27F802F600FF3F80 /* Widgets.c */,
|
|
||||||
9A89D4E427F802F600FF3F80 /* Window_SDL2.c */,
|
|
||||||
9A89D48727F802F600FF3F80 /* World.c */,
|
|
||||||
9A89D47F27F802F600FF3F80 /* interop_ios.m */,
|
|
||||||
);
|
|
||||||
name = src;
|
|
||||||
path = ../src;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
/* End PBXGroup section */
|
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
|
||||||
9A89D35627F802B100FF3F80 /* ClassiCube */ = {
|
|
||||||
isa = PBXNativeTarget;
|
|
||||||
buildConfigurationList = 9A89D36D27F802B400FF3F80 /* Build configuration list for PBXNativeTarget "ClassiCube" */;
|
|
||||||
buildPhases = (
|
|
||||||
9A89D35327F802B100FF3F80 /* Sources */,
|
|
||||||
9A89D35427F802B100FF3F80 /* Frameworks */,
|
|
||||||
9A89D35527F802B100FF3F80 /* Resources */,
|
|
||||||
);
|
|
||||||
buildRules = (
|
|
||||||
);
|
|
||||||
dependencies = (
|
|
||||||
);
|
|
||||||
name = ClassiCube;
|
|
||||||
productName = CCIOS2;
|
|
||||||
productReference = 9A89D35727F802B100FF3F80 /* ClassiCube.app */;
|
|
||||||
productType = "com.apple.product-type.application";
|
|
||||||
};
|
|
||||||
/* End PBXNativeTarget section */
|
|
||||||
|
|
||||||
/* Begin PBXProject section */
|
|
||||||
9A89D34F27F802B100FF3F80 /* Project object */ = {
|
|
||||||
isa = PBXProject;
|
|
||||||
attributes = {
|
|
||||||
LastUpgradeCheck = 1010;
|
|
||||||
ORGANIZATIONNAME = ClassiCube;
|
|
||||||
TargetAttributes = {
|
|
||||||
9A89D35627F802B100FF3F80 = {
|
|
||||||
CreatedOnToolsVersion = 10.1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
buildConfigurationList = 9A89D35227F802B100FF3F80 /* Build configuration list for PBXProject "CCIOS" */;
|
|
||||||
compatibilityVersion = "Xcode 9.3";
|
|
||||||
developmentRegion = en;
|
|
||||||
hasScannedForEncodings = 0;
|
|
||||||
knownRegions = (
|
|
||||||
en,
|
|
||||||
Base,
|
|
||||||
);
|
|
||||||
mainGroup = 9A89D34E27F802B100FF3F80;
|
|
||||||
productRefGroup = 9A89D35827F802B100FF3F80 /* Products */;
|
|
||||||
projectDirPath = "";
|
|
||||||
projectRoot = "";
|
|
||||||
targets = (
|
|
||||||
9A89D35627F802B100FF3F80 /* ClassiCube */,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/* End PBXProject section */
|
|
||||||
|
|
||||||
/* Begin PBXResourcesBuildPhase section */
|
|
||||||
9A89D35527F802B100FF3F80 /* Resources */ = {
|
|
||||||
isa = PBXResourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
9A62ADF5286D906F00E5E3DE /* Assets.xcassets in Resources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXResourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
|
||||||
9A89D35327F802B100FF3F80 /* Sources */ = {
|
|
||||||
isa = PBXSourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
9A89D50727F802F600FF3F80 /* Particle.c in Sources */,
|
|
||||||
9A89D56C27F802F600FF3F80 /* _ftinit.c in Sources */,
|
|
||||||
9A89D58F27F802F600FF3F80 /* Audio.c in Sources */,
|
|
||||||
9A89D55227F802F600FF3F80 /* Logger.c in Sources */,
|
|
||||||
9A89D58E27F802F600FF3F80 /* Window_SDL2.c in Sources */,
|
|
||||||
9A89D4FF27F802F600FF3F80 /* Gui.c in Sources */,
|
|
||||||
9A89D55027F802F600FF3F80 /* Entity.c in Sources */,
|
|
||||||
9A89D58327F802F600FF3F80 /* EntityComponents.c in Sources */,
|
|
||||||
9A7401D92B737D5C0040E575 /* Commands.c in Sources */,
|
|
||||||
9A89D57327F802F600FF3F80 /* Utils.c in Sources */,
|
|
||||||
9A6C7DFE2C41E95D00676D27 /* MenuOptions.c in Sources */,
|
|
||||||
9A89D58427F802F600FF3F80 /* Camera.c in Sources */,
|
|
||||||
9A89D57C27F802F600FF3F80 /* Chat.c in Sources */,
|
|
||||||
9A89D50527F802F600FF3F80 /* LScreens.c in Sources */,
|
|
||||||
9A89D56727F802F600FF3F80 /* Drawer.c in Sources */,
|
|
||||||
9A89D4F327F802F600FF3F80 /* Graphics_GL2.c in Sources */,
|
|
||||||
9A89D55C27F802F600FF3F80 /* Animations.c in Sources */,
|
|
||||||
9A89D58D27F802F600FF3F80 /* Options.c in Sources */,
|
|
||||||
9A89D57927F802F600FF3F80 /* Event.c in Sources */,
|
|
||||||
9A89D55B27F802F600FF3F80 /* _type1.c in Sources */,
|
|
||||||
9A89D58127F802F600FF3F80 /* SelOutlineRenderer.c in Sources */,
|
|
||||||
9A89D56027F802F600FF3F80 /* _ftbitmap.c in Sources */,
|
|
||||||
9A89D50327F802F600FF3F80 /* Platform_Posix.c in Sources */,
|
|
||||||
9A89D58027F802F600FF3F80 /* Formats.c in Sources */,
|
|
||||||
9A89D4FB27F802F600FF3F80 /* TexturePack.c in Sources */,
|
|
||||||
9A89D50827F802F600FF3F80 /* PackedCol.c in Sources */,
|
|
||||||
9A89D50227F802F600FF3F80 /* Block.c in Sources */,
|
|
||||||
9A89D57227F802F600FF3F80 /* Picking.c in Sources */,
|
|
||||||
9A89D59127F802F600FF3F80 /* Vectors.c in Sources */,
|
|
||||||
9A89D58A27F802F600FF3F80 /* BlockPhysics.c in Sources */,
|
|
||||||
9A89D56127F802F600FF3F80 /* Menus.c in Sources */,
|
|
||||||
9A89D4F727F802F600FF3F80 /* Game.c in Sources */,
|
|
||||||
9A89D55627F802F600FF3F80 /* EnvRenderer.c in Sources */,
|
|
||||||
9A89D58927F802F600FF3F80 /* _cff.c in Sources */,
|
|
||||||
9A6C79672BFDDF0700676D27 /* Queue.c in Sources */,
|
|
||||||
9A89D4F227F802F600FF3F80 /* LWidgets.c in Sources */,
|
|
||||||
9A89D55327F802F600FF3F80 /* _psaux.c in Sources */,
|
|
||||||
9A89D50427F802F600FF3F80 /* Model.c in Sources */,
|
|
||||||
9A89D54F27F802F600FF3F80 /* Deflate.c in Sources */,
|
|
||||||
9A89D56327F802F600FF3F80 /* _autofit.c in Sources */,
|
|
||||||
9A89D55F27F802F600FF3F80 /* _sfnt.c in Sources */,
|
|
||||||
9A89D55527F802F600FF3F80 /* HeldBlockRenderer.c in Sources */,
|
|
||||||
9A89D4FD27F802F600FF3F80 /* ExtMath.c in Sources */,
|
|
||||||
9A57ECEE2BCD1408006A89F0 /* AudioBackend.c in Sources */,
|
|
||||||
9A89D56427F802F600FF3F80 /* String.c in Sources */,
|
|
||||||
9A89D57D27F802F600FF3F80 /* _smooth.c in Sources */,
|
|
||||||
9AC543402AE264AC0086C85F /* GameVersion.c in Sources */,
|
|
||||||
9AC543422AE264B90086C85F /* EntityRenderers.c in Sources */,
|
|
||||||
9A89D50127F802F600FF3F80 /* LBackend.c in Sources */,
|
|
||||||
9A89D56827F802F600FF3F80 /* Lighting.c in Sources */,
|
|
||||||
9A89D57827F802F600FF3F80 /* Protocol.c in Sources */,
|
|
||||||
9A89D55427F802F600FF3F80 /* Bitmap.c in Sources */,
|
|
||||||
9A89D50627F802F600FF3F80 /* Builder.c in Sources */,
|
|
||||||
9A89D55127F802F600FF3F80 /* IsometricDrawer.c in Sources */,
|
|
||||||
9A89D57B27F802F600FF3F80 /* _ftglyph.c in Sources */,
|
|
||||||
9A89D55827F802F600FF3F80 /* Graphics_GL1.c in Sources */,
|
|
||||||
9A89D59427F802F600FF3F80 /* Widgets.c in Sources */,
|
|
||||||
9A89D55927F802F600FF3F80 /* interop_ios.m in Sources */,
|
|
||||||
9A7401DB2B7384060040E575 /* SSL.c in Sources */,
|
|
||||||
9A89D4F527F802F600FF3F80 /* _ftsynth.c in Sources */,
|
|
||||||
9A89D55D27F802F600FF3F80 /* _psmodule.c in Sources */,
|
|
||||||
9A89D56F27F802F600FF3F80 /* Input.c in Sources */,
|
|
||||||
9A89D57E27F802F600FF3F80 /* Resources.c in Sources */,
|
|
||||||
9A89D4F427F802F600FF3F80 /* Vorbis.c in Sources */,
|
|
||||||
9A89D56227F802F600FF3F80 /* _ftbase.c in Sources */,
|
|
||||||
9A89D56B27F802F600FF3F80 /* Server.c in Sources */,
|
|
||||||
9A89D50027F802F600FF3F80 /* _truetype.c in Sources */,
|
|
||||||
9A6C79652BFDDEF200676D27 /* FancyLighting.c in Sources */,
|
|
||||||
9A4D0C642BDD168800E1695D /* TouchUI.c in Sources */,
|
|
||||||
9AC5433E2AE2649F0086C85F /* SystemFonts.c in Sources */,
|
|
||||||
9A89D57F27F802F600FF3F80 /* LWeb.c in Sources */,
|
|
||||||
9A89D56627F802F600FF3F80 /* Drawer2D.c in Sources */,
|
|
||||||
9A57ECF02BCD1413006A89F0 /* main.c in Sources */,
|
|
||||||
9A89D57427F802F600FF3F80 /* MapRenderer.c in Sources */,
|
|
||||||
9A89D57627F802F600FF3F80 /* _pshinter.c in Sources */,
|
|
||||||
9A89D56A27F802F600FF3F80 /* Physics.c in Sources */,
|
|
||||||
9A6C7DFA2C2F610C00676D27 /* LBackend_ios.m in Sources */,
|
|
||||||
9A89D58727F802F600FF3F80 /* SelectionBox.c in Sources */,
|
|
||||||
9A89D4FE27F802F600FF3F80 /* Inventory.c in Sources */,
|
|
||||||
9A89D56527F802F600FF3F80 /* Generator.c in Sources */,
|
|
||||||
9A89D57527F802F600FF3F80 /* AxisLinesRenderer.c in Sources */,
|
|
||||||
9A6C7E002C41EED700676D27 /* Window_ios.m in Sources */,
|
|
||||||
9A89D55E27F802F600FF3F80 /* World.c in Sources */,
|
|
||||||
9A89D58627F802F600FF3F80 /* Screens.c in Sources */,
|
|
||||||
9A89D4F927F802F600FF3F80 /* Http_Worker.c in Sources */,
|
|
||||||
9A89D58B27F802F600FF3F80 /* Launcher.c in Sources */,
|
|
||||||
9A89D59027F802F600FF3F80 /* Stream.c in Sources */,
|
|
||||||
9A6C7DFC2C41E93700676D27 /* InputHandler.c in Sources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXSourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
|
||||||
9A89D36B27F802B400FF3F80 /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
|
||||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_COMMA = YES;
|
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
||||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
|
||||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
||||||
ENABLE_TESTABILITY = YES;
|
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
||||||
"DEBUG=1",
|
|
||||||
"$(inherited)",
|
|
||||||
);
|
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
||||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
|
||||||
MTL_FAST_MATH = YES;
|
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
|
||||||
SDKROOT = iphoneos;
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
9A89D36C27F802B400FF3F80 /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
|
||||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_COMMA = YES;
|
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
||||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
|
||||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
||||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
|
||||||
MTL_FAST_MATH = YES;
|
|
||||||
SDKROOT = iphoneos;
|
|
||||||
VALIDATE_PRODUCT = YES;
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
9A89D36E27F802B400FF3F80 /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
||||||
CODE_SIGN_STYLE = Automatic;
|
|
||||||
INFOPLIST_FILE = Info.plist;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
|
||||||
"$(inherited)",
|
|
||||||
"@executable_path/Frameworks",
|
|
||||||
);
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.classicube.client.ios;
|
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
9A89D36F27F802B400FF3F80 /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
||||||
CODE_SIGN_STYLE = Automatic;
|
|
||||||
INFOPLIST_FILE = Info.plist;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
|
||||||
"$(inherited)",
|
|
||||||
"@executable_path/Frameworks",
|
|
||||||
);
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.classicube.client.ios;
|
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
/* End XCBuildConfiguration section */
|
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
|
||||||
9A89D35227F802B100FF3F80 /* Build configuration list for PBXProject "CCIOS" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
9A89D36B27F802B400FF3F80 /* Debug */,
|
|
||||||
9A89D36C27F802B400FF3F80 /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
9A89D36D27F802B400FF3F80 /* Build configuration list for PBXNativeTarget "ClassiCube" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
9A89D36E27F802B400FF3F80 /* Debug */,
|
|
||||||
9A89D36F27F802B400FF3F80 /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
/* End XCConfigurationList section */
|
|
||||||
};
|
|
||||||
rootObject = 9A89D34F27F802B100FF3F80 /* Project object */;
|
|
||||||
}
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"size" : "20x20",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"size" : "20x20",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"size" : "29x29",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"size" : "29x29",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"size" : "40x40",
|
|
||||||
"filename" : "CC_80.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"size" : "40x40",
|
|
||||||
"filename" : "CC_120.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"size" : "60x60",
|
|
||||||
"filename" : "CC_120.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"size" : "60x60",
|
|
||||||
"filename" : "CC_180.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"size" : "20x20",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"size" : "20x20",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"size" : "29x29",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"size" : "29x29",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"size" : "40x40",
|
|
||||||
"filename" : "CC_40.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"size" : "40x40",
|
|
||||||
"filename" : "CC_80.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"size" : "76x76",
|
|
||||||
"filename" : "CC_76.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"size" : "76x76",
|
|
||||||
"filename" : "CC_152.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"size" : "83.5x83.5",
|
|
||||||
"filename" : "CC_167.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "1024x1024",
|
|
||||||
"idiom" : "ios-marketing",
|
|
||||||
"filename" : "CC_1024.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
26
license.txt
|
|
@ -177,6 +177,32 @@ SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BearSSL license
|
||||||
|
==================
|
||||||
|
Copyright (c) 2016 Thomas Pornin <pornin@bolet.org>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||||
|
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FreeType license
|
FreeType license
|
||||||
==================
|
==================
|
||||||
The FreeType Project LICENSE
|
The FreeType Project LICENSE
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,6 @@ extern "C" {
|
||||||
extern void fast_memcpy(void *dst, void *src, int len);
|
extern void fast_memcpy(void *dst, void *src, int len);
|
||||||
extern void CacheControl(int mode);
|
extern void CacheControl(int mode);
|
||||||
extern void CacheClearLine(void* ptr);
|
extern void CacheClearLine(void* ptr);
|
||||||
extern void ScreenStretch(int src, int width, int height, int interp);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,19 +4,50 @@ else
|
||||||
ROOTDIR = /opt/toolchains/sega
|
ROOTDIR = /opt/toolchains/sega
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Configurable options
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
TARGET = ClassiCube-32x
|
||||||
|
BUILD_DIR = build/32x
|
||||||
|
SOURCE_DIRS = src src/32x misc/32x
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Compilable files
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
C_FILES = $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
|
||||||
|
S_FILES = misc/32x/sh2_crt0.s
|
||||||
|
OBJS = $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.s=%.o)))
|
||||||
|
|
||||||
|
# Dependency tracking
|
||||||
|
DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d
|
||||||
|
DEPFILES := $(OBJS:%.o=%.d)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Code generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
LDSCRIPTSDIR = $(ROOTDIR)/ldscripts
|
LDSCRIPTSDIR = $(ROOTDIR)/ldscripts
|
||||||
|
LIBS = $(LIBPATH) -lc -lgcc -lgcc-Os-4-200 -lnosys
|
||||||
|
|
||||||
LIBPATH = -L$(ROOTDIR)/sh-elf/lib -L$(ROOTDIR)/sh-elf/lib/gcc/sh-elf/4.6.2 -L$(ROOTDIR)/sh-elf/sh-elf/lib
|
LIBPATH = -L$(ROOTDIR)/sh-elf/lib -L$(ROOTDIR)/sh-elf/lib/gcc/sh-elf/4.6.2 -L$(ROOTDIR)/sh-elf/sh-elf/lib
|
||||||
INCPATH = -I. -I../include -I$(ROOTDIR)/sh-elf/include -I$(ROOTDIR)/sh-elf/sh-elf/include
|
INCPATH = -I$(ROOTDIR)/sh-elf/include -I$(ROOTDIR)/sh-elf/sh-elf/include
|
||||||
|
|
||||||
SHCCFLAGS = -m2 -mb -Ofast -Wall -g -c -fomit-frame-pointer -DPLAT_32X -ffunction-sections -fdata-sections
|
SHCCFLAGS = -m2 -mb -Ofast -Wall -g -c -fomit-frame-pointer -DPLAT_32X -ffunction-sections -fdata-sections
|
||||||
SHHWFLAGS = -m2 -mb -O1 -Wall -g -c -fomit-frame-pointer
|
SHHWFLAGS = -m2 -mb -O1 -Wall -g -c -fomit-frame-pointer
|
||||||
SHLDFLAGS = -T $(LDSCRIPTSDIR)/mars.ld -Wl,-Map=output.map -nostdlib -Wl,--gc-sections
|
SHLDFLAGS = -T $(LDSCRIPTSDIR)/mars.ld -nostdlib -Wl,--gc-sections
|
||||||
SHASFLAGS = --big
|
SHASFLAGS = --big
|
||||||
|
|
||||||
MDLDFLAGS = -T $(LDSCRIPTSDIR)/md.ld --oformat binary
|
MDLDFLAGS = -T $(LDSCRIPTSDIR)/md.ld --oformat binary
|
||||||
MDASFLAGS = -m68000 --register-prefix-optional
|
MDASFLAGS = -m68000 --register-prefix-optional
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Compiler tools
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
SHPREFIX = $(ROOTDIR)/sh-elf/bin/sh-elf-
|
SHPREFIX = $(ROOTDIR)/sh-elf/bin/sh-elf-
|
||||||
SHCC = $(SHPREFIX)gcc
|
SHCC = $(SHPREFIX)gcc
|
||||||
SHAS = $(SHPREFIX)as
|
SHAS = $(SHPREFIX)as
|
||||||
|
|
@ -27,44 +58,62 @@ MDPREFIX = $(ROOTDIR)/m68k-elf/bin/m68k-elf-
|
||||||
MDAS = $(MDPREFIX)as
|
MDAS = $(MDPREFIX)as
|
||||||
MDLD = $(MDPREFIX)ld
|
MDLD = $(MDPREFIX)ld
|
||||||
|
|
||||||
DD = dd
|
|
||||||
RM = rm -f
|
|
||||||
|
|
||||||
TARGET = ClassiCube
|
#---------------------------------------------------------------------------------
|
||||||
LIBS = $(LIBPATH) -lc -lgcc -lgcc-Os-4-200 -lnosys
|
# main targets
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
all: $(BUILD_DIR) $(BUILD_DIR)/m68k_crt0.bin $(BUILD_DIR)/m68k_crt1.bin $(TARGET).bin
|
||||||
|
|
||||||
SOURCE_DIRS = ../../src
|
clean:
|
||||||
C_FILES = $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
|
rm -f $(BUILD_DIR)/*.o $(BUILD_DIR)/*.bin $(TARGET).bin $(TARGET).elf
|
||||||
OBJS = sh2_crt0.o main_32x.o hw_32x.o $(notdir $(C_FILES:%.c=%.o))
|
|
||||||
|
|
||||||
all: m68k_crt0.bin m68k_crt1.bin $(TARGET).bin
|
$(BUILD_DIR):
|
||||||
|
mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# binary generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
$(TARGET).bin: $(TARGET).elf
|
$(TARGET).bin: $(TARGET).elf
|
||||||
$(SHOBJC) -O binary $< temp.bin
|
$(SHOBJC) -O binary $< $(BUILD_DIR)/temp.bin
|
||||||
$(DD) if=temp.bin of=$@ bs=64K conv=sync
|
dd if=$(BUILD_DIR)/temp.bin of=$@ bs=64K conv=sync
|
||||||
|
|
||||||
$(TARGET).elf: $(OBJS)
|
$(TARGET).elf: $(OBJS)
|
||||||
$(SHCC) $(SHLDFLAGS) $(OBJS) $(LIBS) -o $(TARGET).elf
|
$(SHCC) $(SHLDFLAGS) $(OBJS) $(LIBS) -o $(TARGET).elf
|
||||||
|
|
||||||
m68k_crt0.bin: m68k_crt0.s
|
|
||||||
$(MDAS) $(MDASFLAGS) -o m68k_crt0.o m68k_crt0.s
|
|
||||||
$(MDLD) $(MDLDFLAGS) -o m68k_crt0.bin m68k_crt0.o
|
|
||||||
|
|
||||||
m68k_crt1.bin: m68k_crt1.s
|
$(BUILD_DIR)/m68k_crt0.o: misc/32x/m68k_crt0.s
|
||||||
$(MDAS) $(MDASFLAGS) -o m68k_crt1.o m68k_crt1.s
|
$(MDAS) $(MDASFLAGS) $< -o $@
|
||||||
$(MDLD) $(MDLDFLAGS) -o m68k_crt1.bin m68k_crt1.o
|
|
||||||
|
|
||||||
hw_32x.o: hw_32x.c
|
$(BUILD_DIR)/m68k_crt0.bin: $(BUILD_DIR)/m68k_crt0.o
|
||||||
$(SHCC) $(SHHWFLAGS) $(INCPATH) $< -o $@
|
$(MDLD) $(MDLDFLAGS) $< -o $@
|
||||||
|
|
||||||
%.o: %.c
|
$(BUILD_DIR)/m68k_crt1.o: misc/32x/m68k_crt1.s
|
||||||
$(SHCC) $(SHCCFLAGS) $(INCPATH) $< -o $@
|
$(MDAS) $(MDASFLAGS) $< -o $@
|
||||||
|
|
||||||
%.o: ../../src/%.c
|
$(BUILD_DIR)/m68k_crt1.bin: $(BUILD_DIR)/m68k_crt1.o
|
||||||
$(SHCC) $(SHCCFLAGS) $(INCPATH) $< -o $@
|
$(MDLD) $(MDLDFLAGS) $< -o $@
|
||||||
|
|
||||||
%.o: %.s
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# object generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(BUILD_DIR)/%.o: src/%.c
|
||||||
|
$(SHCC) $(SHCCFLAGS) $(INCPATH) $(DEPFLAGS) $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o: src/32x/%.c
|
||||||
|
$(SHCC) $(SHCCFLAGS) $(INCPATH) $(DEPFLAGS) $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o: misc/32x/%.c
|
||||||
|
$(SHCC) $(SHCCFLAGS) $(INCPATH) $(DEPFLAGS) $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o: misc/32x/%.s
|
||||||
$(SHAS) $(SHASFLAGS) $(INCPATH) $< -o $@
|
$(SHAS) $(SHASFLAGS) $(INCPATH) $< -o $@
|
||||||
|
|
||||||
clean:
|
|
||||||
$(RM) *.o *.bin *.elf output.map
|
#---------------------------------------------------------------------------------
|
||||||
|
# Dependency tracking
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(DEPFILES):
|
||||||
|
|
||||||
|
include $(wildcard $(DEPFILES))
|
||||||
|
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#include "32x.h"
|
|
||||||
#include "hw_32x.h"
|
|
||||||
|
|
||||||
int32_t fix16_sqrt(int32_t value)
|
|
||||||
{
|
|
||||||
uint32_t t;
|
|
||||||
uint32_t r = value;
|
|
||||||
uint32_t b = 0x40000000;
|
|
||||||
uint32_t q = 0;
|
|
||||||
|
|
||||||
while (b > 0x40) {
|
|
||||||
t = q + b;
|
|
||||||
|
|
||||||
if (r >= t) {
|
|
||||||
r -= t;
|
|
||||||
q = t + b; /* Equivalent to q += 2 * b */
|
|
||||||
}
|
|
||||||
|
|
||||||
r <<= 1;
|
|
||||||
b >>= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
q >>= 8;
|
|
||||||
|
|
||||||
return q;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -6,11 +6,11 @@
|
||||||
|
|
||||||
! Standard MD Header at 0x000
|
! Standard MD Header at 0x000
|
||||||
|
|
||||||
.incbin "m68k_crt0.bin", 0, 0x3C0
|
.incbin "build/32x/m68k_crt0.bin", 0, 0x3C0
|
||||||
|
|
||||||
! Standard Mars Header at 0x3C0
|
! Standard Mars Header at 0x3C0
|
||||||
|
|
||||||
.ascii "32X Example " /* module name (16 chars) */
|
.ascii "ClassiCube 32X " /* module name (16 chars) */
|
||||||
.long 0x00000000 /* version */
|
.long 0x00000000 /* version */
|
||||||
.long __text_end-0x02000000 /* Source (in ROM) */
|
.long __text_end-0x02000000 /* Source (in ROM) */
|
||||||
.long 0x00000000 /* Destination (in SDRAM) */
|
.long 0x00000000 /* Destination (in SDRAM) */
|
||||||
|
|
@ -22,26 +22,26 @@
|
||||||
|
|
||||||
! Standard MD startup code at 0x3F0
|
! Standard MD startup code at 0x3F0
|
||||||
|
|
||||||
.incbin "m68k_crt1.bin"
|
.incbin "build/32x/m68k_crt1.bin"
|
||||||
|
|
||||||
|
|
||||||
.data
|
.data
|
||||||
|
|
||||||
! Master Vector Base Table at 0x06000000
|
! Master Vector Base Table at 0x06000000
|
||||||
|
|
||||||
.long mstart /* Cold Start PC */
|
.long mstart /* 0, Cold Start PC */
|
||||||
.long 0x0603FC00 /* Cold Start SP */
|
.long 0x0603FC00 /* 1, Cold Start SP */
|
||||||
.long mstart /* Manual Reset PC */
|
.long mstart /* 2, Manual Reset PC */
|
||||||
.long 0x0603FC00 /* Manual Reset SP */
|
.long 0x0603FC00 /* 3, Manual Reset SP */
|
||||||
.long main_err /* Illegal instruction */
|
.long main_err /* 4, Illegal instruction */
|
||||||
.long 0x00000000 /* reserved */
|
.long _wdt_handler/* 5, reserved - repurposed for WDT */
|
||||||
.long main_err /* Invalid slot instruction */
|
.long main_err /* 6, Invalid slot instruction */
|
||||||
.long 0x20100400 /* reserved */
|
.long 0x20100400 /* 7, reserved */
|
||||||
.long 0x20100420 /* reserved */
|
.long 0x20100420 /* 8, reserved */
|
||||||
.long main_err /* CPU address error */
|
.long main_err /* 9, CPU address error */
|
||||||
.long main_err /* DMA address error */
|
.long main_err /* 10, DMA address error */
|
||||||
.long main_err /* NMI vector */
|
.long main_err /* 11, NMI vector */
|
||||||
.long main_err /* User break vector */
|
.long main_err /* 12, User break vector */
|
||||||
.space 76 /* reserved */
|
.space 76 /* reserved */
|
||||||
.long main_err /* TRAPA #32 */
|
.long main_err /* TRAPA #32 */
|
||||||
.long main_err /* TRAPA #33 */
|
.long main_err /* TRAPA #33 */
|
||||||
|
|
@ -637,81 +637,6 @@ _CacheControl:
|
||||||
_sh2_cctl:
|
_sh2_cctl:
|
||||||
.long 0xFFFFFE92
|
.long 0xFFFFFE92
|
||||||
|
|
||||||
! void ScreenStretch(int src, int width, int height, int interp);
|
|
||||||
! On entry: r4 = src pointer, r5 = width, r6 = height, r7 = interpolate
|
|
||||||
|
|
||||||
.align 4
|
|
||||||
.global _ScreenStretch
|
|
||||||
_ScreenStretch:
|
|
||||||
cmp/pl r7
|
|
||||||
bt ss_interp
|
|
||||||
|
|
||||||
! stretch screen without interpolation
|
|
||||||
|
|
||||||
0:
|
|
||||||
mov r5,r3
|
|
||||||
shll r3
|
|
||||||
mov r3,r2
|
|
||||||
shll r2
|
|
||||||
add r4,r3
|
|
||||||
add r4,r2
|
|
||||||
1:
|
|
||||||
add #-2,r3
|
|
||||||
mov.w @r3,r0
|
|
||||||
extu.w r0,r1
|
|
||||||
shll16 r0
|
|
||||||
or r1,r0
|
|
||||||
mov.l r0,@-r2
|
|
||||||
cmp/eq r3,r4
|
|
||||||
bf 1b
|
|
||||||
|
|
||||||
/* next line */
|
|
||||||
mov.w ss_pitch,r0
|
|
||||||
dt r6
|
|
||||||
bf/s 0b
|
|
||||||
add r0,r4
|
|
||||||
rts
|
|
||||||
nop
|
|
||||||
|
|
||||||
ss_interp:
|
|
||||||
|
|
||||||
! stretch screen with interpolation
|
|
||||||
|
|
||||||
0:
|
|
||||||
mov r5,r3
|
|
||||||
shll r3
|
|
||||||
mov r3,r2
|
|
||||||
shll r2
|
|
||||||
add r4,r3
|
|
||||||
add r4,r2
|
|
||||||
mov #0,r7
|
|
||||||
1:
|
|
||||||
add #-2,r3
|
|
||||||
mov.w @r3,r0
|
|
||||||
mov.w ss_mask,r1
|
|
||||||
and r0,r1 /* masked curr pixel */
|
|
||||||
shll16 r0
|
|
||||||
add r1,r7 /* add to masked prev pixel */
|
|
||||||
shlr r7 /* blended pixel */
|
|
||||||
or r7,r0 /* curr pixel << 16 | blended pixel */
|
|
||||||
mov r1,r7 /* masked prev pixel = masked curr pixel */
|
|
||||||
mov.l r0,@-r2
|
|
||||||
cmp/eq r3,r4
|
|
||||||
bf 1b
|
|
||||||
|
|
||||||
/* next line */
|
|
||||||
mov.w ss_pitch,r0
|
|
||||||
dt r6
|
|
||||||
bf/s 0b
|
|
||||||
add r0,r4
|
|
||||||
rts
|
|
||||||
nop
|
|
||||||
|
|
||||||
ss_mask:
|
|
||||||
.word 0x7BDE
|
|
||||||
ss_pitch:
|
|
||||||
.word 640
|
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
|
||||||
|
|
@ -1,136 +1,132 @@
|
||||||
#---------------------------------------------------------------------------------
|
ifeq ($(strip $(DEVKITPRO)),)
|
||||||
|
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>devkitPro)
|
||||||
|
endif
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
ifeq ($(strip $(DEVKITARM)),)
|
|
||||||
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM")
|
|
||||||
endif
|
|
||||||
|
|
||||||
TOPDIR ?= $(CURDIR)
|
|
||||||
include $(DEVKITARM)/3ds_rules
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# configurable options
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
APP_ICON := $(TOPDIR)/misc/3ds/icon.png
|
|
||||||
APP_TITLE := ClassiCube
|
|
||||||
APP_DESCRIPTION := Simple block building sandbox
|
|
||||||
APP_AUTHOR := UnknownShadow200
|
|
||||||
TARGET := ClassiCube-3ds
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# TARGET is the name of the output
|
|
||||||
# BUILD is the directory where object files & intermediate files will be placed
|
|
||||||
# SOURCES is a list of directories containing source code
|
|
||||||
# INCLUDES is a list of directories containing header files
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
BUILD := build-3ds
|
|
||||||
SOURCES := src misc/3ds third_party/bearssl/src
|
|
||||||
INCLUDES := third_party/bearssl/inc
|
|
||||||
|
|
||||||
CIA_BANNER_BIN := $(TOPDIR)/misc/3ds/banner.bin
|
|
||||||
CIA_ICON_BIN := $(TOPDIR)/misc/3ds/icon.bin
|
|
||||||
CIA_SPEC_RSF := $(TOPDIR)/misc/3ds/spec.rsf
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# options for code generation
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
ARCH := -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft
|
|
||||||
|
|
||||||
CFLAGS := -g -Wall -O2 -mword-relocations \
|
|
||||||
-ffunction-sections \
|
|
||||||
$(ARCH)
|
|
||||||
|
|
||||||
CFLAGS += $(INCLUDE) -D__3DS__
|
|
||||||
|
|
||||||
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11
|
|
||||||
|
|
||||||
ASFLAGS := -g $(ARCH)
|
|
||||||
LDFLAGS = -specs=3dsx.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
|
|
||||||
|
|
||||||
LIBS := -lctru -lm
|
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# no real need to edit anything past this point unless you need to add additional
|
# Configurable options
|
||||||
# rules for different file extensions
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
ifneq ($(BUILD),$(notdir $(CURDIR)))
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
# Name of the final output
|
||||||
|
TARGET = ClassiCube-3ds
|
||||||
|
# List of directories containing source code
|
||||||
|
SOURCE_DIRS = src src/3ds third_party/bearssl
|
||||||
|
# List of directories containing shader files
|
||||||
|
SHDR_DIRS = misc/3ds
|
||||||
|
# Directory where object files are placed
|
||||||
|
BUILD_DIR = build/3ds
|
||||||
|
|
||||||
export OUTPUT := $(CURDIR)/$(TARGET)
|
APP_ICON = misc/3ds/icon.png
|
||||||
export TOPDIR := $(CURDIR)
|
APP_TITLE = ClassiCube
|
||||||
|
APP_DESCRIPTION = Simple block building sandbox
|
||||||
|
APP_AUTHOR = ClassiCube team
|
||||||
|
|
||||||
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir))
|
CIA_BANNER_BIN = misc/3ds/banner.bin
|
||||||
|
CIA_ICON_BIN = misc/3ds/icon.bin
|
||||||
|
CIA_SPEC_RSF = misc/3ds/spec.rsf
|
||||||
|
|
||||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
|
||||||
|
|
||||||
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
|
|
||||||
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
|
|
||||||
PICAFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.v.pica)))
|
|
||||||
|
|
||||||
export LD := $(CC)
|
|
||||||
|
|
||||||
export OFILES_SOURCES := $(CFILES:.c=.o) $(SFILES:.s=.o)
|
|
||||||
|
|
||||||
export OFILES_BIN := $(PICAFILES:.v.pica=.shbin.o)
|
|
||||||
|
|
||||||
export OFILES := $(OFILES_BIN) $(OFILES_SOURCES)
|
|
||||||
|
|
||||||
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
|
|
||||||
$(foreach dir,$(CTRULIB),-I$(dir)/include) \
|
|
||||||
-I$(CURDIR)/$(BUILD)
|
|
||||||
|
|
||||||
export LIBPATHS := $(foreach dir,$(CTRULIB),-L$(dir)/lib)
|
|
||||||
|
|
||||||
export _3DSXFLAGS = --smdh=$(CURDIR)/$(TARGET).smdh
|
|
||||||
|
|
||||||
.PHONY: all clean
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
all: $(BUILD)
|
# Compilable files
|
||||||
$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/misc/3ds/Makefile
|
#---------------------------------------------------------------------------------
|
||||||
|
S_FILES = $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.S))
|
||||||
|
C_FILES = $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
|
||||||
|
OBJS = $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.S=%.o)))
|
||||||
|
|
||||||
|
PICAFILES := $(foreach dir,$(SHDR_DIRS),$(notdir $(wildcard $(dir)/*.v.pica)))
|
||||||
|
OBJS += $(addprefix $(BUILD_DIR)/, $(PICAFILES:.v.pica=.shbin.o))
|
||||||
|
|
||||||
|
# Dependency tracking
|
||||||
|
DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d
|
||||||
|
DEPFILES := $(OBJS:%.o=%.d)
|
||||||
|
|
||||||
$(BUILD):
|
|
||||||
mkdir -p $@
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
# Code generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
ARCH = -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft
|
||||||
|
CFLAGS = -g -Wall -O2 -mword-relocations -ffunction-sections $(ARCH) $(INCLUDE) -D__3DS__ -DPLAT_3DS
|
||||||
|
ASFLAGS = -g $(ARCH)
|
||||||
|
|
||||||
|
LDFLAGS = -specs=3dsx.specs -g $(ARCH)
|
||||||
|
LIBS = -lctru -lm
|
||||||
|
INCLUDES=
|
||||||
|
|
||||||
|
CTRULIB = $(DEVKITPRO)/libctru
|
||||||
|
INCLUDES += $(foreach dir, $(CTRULIB), -I$(dir)/include)
|
||||||
|
LDFLAGS += $(foreach dir,$(CTRULIB), -L$(dir)/lib)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Compiler tools
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
PREFIX := $(DEVKITPRO)/devkitARM/bin/arm-none-eabi-
|
||||||
|
ARM_AS := $(PREFIX)as
|
||||||
|
ARM_CC := $(PREFIX)gcc
|
||||||
|
ARM_CXX := $(PREFIX)g++
|
||||||
|
|
||||||
|
_DSXTOOL := $(DEVKITPRO)/tools/bin/3dsxtool
|
||||||
|
SMDHTOOL := $(DEVKITPRO)/tools/bin/smdhtool
|
||||||
|
PICASSO := $(DEVKITPRO)/tools/bin/picasso
|
||||||
|
BIN2S := $(DEVKITPRO)/tools/bin/bin2s
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Main targets
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
default: $(BUILD_DIR) $(TARGET).cia
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
echo clean ...
|
rm $(TARGET).cia $(TARGET).3dsx $(TARGET).elf $(OBJS)
|
||||||
rm -fr $(BUILD) $(TARGET).cia $(TARGET).3dsx $(OUTPUT).smdh $(TARGET).elf
|
|
||||||
|
$(BUILD_DIR):
|
||||||
|
mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
else
|
# Executable generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(TARGET).elf: $(OBJS)
|
||||||
|
$(ARM_CC) $(LDFLAGS) $^ -o $@ $(LIBS)
|
||||||
|
|
||||||
|
$(BUILD_DIR).smdh: $(APP_ICON)
|
||||||
|
$(SMDHTOOL) --create "$(APP_TITLE)" "$(APP_DESCRIPTION)" "$(APP_AUTHOR)" $(APP_ICON) $@
|
||||||
|
|
||||||
|
$(TARGET).3dsx: $(TARGET).elf $(BUILD_DIR).smdh
|
||||||
|
$(_DSXTOOL) $< $@ --smdh=$(BUILD_DIR).smdh
|
||||||
|
|
||||||
|
$(BUILD_DIR)/makerom:
|
||||||
|
wget https://github.com/3DSGuy/Project_CTR/releases/download/makerom-v0.18.3/makerom-v0.18.3-ubuntu_x86_64.zip -O $(BUILD_DIR)/makerom.zip
|
||||||
|
unzip $(BUILD_DIR)/makerom.zip -d $(BUILD_DIR)
|
||||||
|
chmod +x $(BUILD_DIR)/makerom
|
||||||
|
|
||||||
|
$(TARGET).cia : $(TARGET).3dsx $(BUILD_DIR)/makerom
|
||||||
|
$(BUILD_DIR)/makerom -f cia -o $(TARGET).cia -elf $(TARGET).elf -rsf $(CIA_SPEC_RSF) -icon $(CIA_ICON_BIN) -banner $(CIA_BANNER_BIN) -exefslogo -target t
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# main targets
|
# Object generation
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
$(OUTPUT).cia : $(OUTPUT).3dsx makerom
|
$(BUILD_DIR)/%.o: src/%.c
|
||||||
./makerom -f cia -o "$(OUTPUT).cia" -elf "$(OUTPUT).elf" -rsf "$(CIA_SPEC_RSF)" -icon "$(CIA_ICON_BIN)" -banner "$(CIA_BANNER_BIN)" -exefslogo -target t
|
$(ARM_CC) $(CFLAGS) $(INCLUDES) $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
makerom:
|
|
||||||
wget https://github.com/3DSGuy/Project_CTR/releases/download/makerom-v0.18.3/makerom-v0.18.3-ubuntu_x86_64.zip
|
|
||||||
unzip makerom-v0.18.3-ubuntu_x86_64.zip
|
|
||||||
chmod +x makerom
|
|
||||||
|
|
||||||
$(OUTPUT).3dsx : $(OUTPUT).elf $(OUTPUT).smdh
|
$(BUILD_DIR)/%.o: src/3ds/%.c
|
||||||
|
$(ARM_CC) $(CFLAGS) $(INCLUDES) $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o: third_party/bearssl/%.c
|
||||||
|
$(ARM_CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.shbin: misc/3ds/%.v.pica
|
||||||
|
$(PICASSO) $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.shbin.o: $(BUILD_DIR)/%.shbin
|
||||||
|
$(BIN2S) $< | $(ARM_CC) -x assembler-with-cpp -c - -o $@
|
||||||
|
|
||||||
$(OUTPUT).elf : $(OFILES)
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
.PRECIOUS : %.shbin
|
# Dependency tracking
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
$(DEPFILES):
|
||||||
|
|
||||||
%.shbin.o : %.v.pica
|
include $(wildcard $(DEPFILES))
|
||||||
$(eval CUR_SRC := $<)
|
|
||||||
$(eval CUR_FILE := $(notdir $(CUR_SRC)))
|
|
||||||
$(eval CUR_BIN := $(CURDIR)/$(subst .v.pica,.shbin,$(CUR_FILE)))
|
|
||||||
picasso -o $(CUR_BIN) $(CUR_SRC)
|
|
||||||
bin2s $(CUR_BIN) | $(AS) -o $(CUR_BIN).o
|
|
||||||
|
|
||||||
|
|
||||||
-include $(DEPSDIR)/*.d
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------------
|
|
||||||
endif
|
|
||||||
#---------------------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
To see debug log messages in Citra:
|
||||||
|
|
||||||
|
1) Make sure log level set to "Debug.Emulated:Debug"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Commands used to generate the .bin files:
|
||||||
|
|
||||||
|
`bannertool makebanner -i banner.png -a audio.wav -o banner.bin`
|
||||||
|
|
||||||
|
`bannertool makesmdh -s ClassiCube -l ClassiCube -p UnknownShadow200 -i icon.png -o icon.bin`
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
Debug log messages output to debug service, so may be possible to see from console via remote gdb
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
; Vertex shader for rendering coloured vertices for PICA200 GPU on the Nintendo 3DS
|
; Vertex shader for rendering coloured vertices for PICA200 GPU on the Nintendo 3DS
|
||||||
; ==================================================================================
|
; ==================================================================================
|
||||||
|
|
||||||
; Uniforms
|
; Uniforms (layout common to all shaders)
|
||||||
.fvec MVP[4];
|
.alias MVP_0 c0
|
||||||
|
.alias MVP_1 c1
|
||||||
|
.alias MVP_2 c2
|
||||||
|
.alias MVP_3 c3
|
||||||
|
.alias TEX_OFFSET c4
|
||||||
|
|
||||||
; Constants
|
; Constants (initialised in Graphics_3DS.c)
|
||||||
.constf ONE_DIV_255(0.003921568627, 0.003921568627, 0.003921568627, 0.003921568627)
|
.alias ONE_DIV_255 c5
|
||||||
|
|
||||||
; Outputs
|
; Outputs
|
||||||
.out out_pos position
|
.out out_pos position
|
||||||
|
|
@ -16,14 +20,11 @@
|
||||||
.alias in_col v1
|
.alias in_col v1
|
||||||
|
|
||||||
.proc main
|
.proc main
|
||||||
; r0 = in_pos
|
; out_pos = MVP * in_pos
|
||||||
mov r0, in_pos
|
dp4 out_pos.x, MVP_0, in_pos
|
||||||
|
dp4 out_pos.y, MVP_1, in_pos
|
||||||
; out_pos = MVP * r0
|
dp4 out_pos.z, MVP_2, in_pos
|
||||||
dp4 out_pos.x, MVP[0], r0
|
dp4 out_pos.w, MVP_3, in_pos
|
||||||
dp4 out_pos.y, MVP[1], r0
|
|
||||||
dp4 out_pos.z, MVP[2], r0
|
|
||||||
dp4 out_pos.w, MVP[3], r0
|
|
||||||
|
|
||||||
; out_col = in_col * ONE_DIV_255
|
; out_col = in_col * ONE_DIV_255
|
||||||
mul out_col, ONE_DIV_255, in_col
|
mul out_col, ONE_DIV_255, in_col
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
; Vertex shader for rendering textured vertices with an offset for PICA200 GPU on the Nintendo 3DS
|
; Vertex shader for rendering textured vertices with an offset for PICA200 GPU on the Nintendo 3DS
|
||||||
; ==================================================================================
|
; ==================================================================================
|
||||||
|
|
||||||
; Uniforms
|
; Uniforms (layout common to all shaders)
|
||||||
.fvec MVP[4];
|
.alias MVP_0 c0
|
||||||
.fvec tex_offset;
|
.alias MVP_1 c1
|
||||||
|
.alias MVP_2 c2
|
||||||
|
.alias MVP_3 c3
|
||||||
|
.alias TEX_OFFSET c4
|
||||||
|
|
||||||
; Constants
|
; Constants (initialised in Graphics_3DS.c)
|
||||||
.constf ONE_DIV_255(0.003921568627, 0.003921568627, 0.003921568627, 0.003921568627)
|
.alias ONE_DIV_255 c5
|
||||||
|
|
||||||
; Outputs
|
; Outputs
|
||||||
.out out_pos position
|
.out out_pos position
|
||||||
|
|
@ -19,19 +22,16 @@
|
||||||
.alias in_tex v2
|
.alias in_tex v2
|
||||||
|
|
||||||
.proc main
|
.proc main
|
||||||
; r0 = in_pos
|
; out_pos = MVP * in_pos
|
||||||
mov r0, in_pos
|
dp4 out_pos.x, MVP_0, in_pos
|
||||||
|
dp4 out_pos.y, MVP_1, in_pos
|
||||||
; out_pos = MVP * r0
|
dp4 out_pos.z, MVP_2, in_pos
|
||||||
dp4 out_pos.x, MVP[0], r0
|
dp4 out_pos.w, MVP_3, in_pos
|
||||||
dp4 out_pos.y, MVP[1], r0
|
|
||||||
dp4 out_pos.z, MVP[2], r0
|
|
||||||
dp4 out_pos.w, MVP[3], r0
|
|
||||||
|
|
||||||
; out_col = in_col * ONE_DIV_255
|
; out_col = in_col * ONE_DIV_255
|
||||||
mul out_col, ONE_DIV_255, in_col
|
mul out_col, ONE_DIV_255, in_col
|
||||||
; out_tex = in_tex + tex_offset
|
; out_tex = in_tex + tex_offset
|
||||||
add out_tex, tex_offset, in_tex
|
add out_tex, TEX_OFFSET, in_tex
|
||||||
|
|
||||||
end
|
end
|
||||||
.end
|
.end
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
Commands used to generate the .bin files:
|
|
||||||
|
|
||||||
`bannertool makebanner -i banner.png -a audio.wav -o banner.bin`
|
|
||||||
|
|
||||||
`bannertool makesmdh -s ClassiCube -l ClassiCube -p UnknownShadow200 -i icon.png -o icon.bin`
|
|
||||||
|
|
@ -46,7 +46,7 @@ AccessControlInfo:
|
||||||
AffinityMask : 1
|
AffinityMask : 1
|
||||||
|
|
||||||
Priority : 16
|
Priority : 16
|
||||||
|
SystemMode : 80MB
|
||||||
MaxCpu : 0x9E # Default
|
MaxCpu : 0x9E # Default
|
||||||
DisableDebug : false
|
DisableDebug : false
|
||||||
EnableForceDebug : false
|
EnableForceDebug : false
|
||||||
|
|
@ -73,10 +73,10 @@ AccessControlInfo:
|
||||||
|
|
||||||
# Virtual Address Mappings
|
# Virtual Address Mappings
|
||||||
IORegisterMapping:
|
IORegisterMapping:
|
||||||
- 1ff50000-1ff57fff # DSP memory
|
- 1ff50000-1ff57fff # DSP memory
|
||||||
- 1ff70000-1ff77fff
|
- 1ff70000-1ff77fff
|
||||||
MemoryMapping:
|
MemoryMapping:
|
||||||
- 1f000000-1f5fffff:r # VRAM
|
- 1f000000-1f5fffff # VRAM
|
||||||
|
|
||||||
SystemCallAccess:
|
SystemCallAccess:
|
||||||
ArbitrateAddress: 34
|
ArbitrateAddress: 34
|
||||||
|
|
@ -201,4 +201,4 @@ SystemControlInfo:
|
||||||
ptm: 0x0004013000002202L
|
ptm: 0x0004013000002202L
|
||||||
ro: 0x0004013000003702L
|
ro: 0x0004013000003702L
|
||||||
socket: 0x0004013000002e02L
|
socket: 0x0004013000002e02L
|
||||||
spi: 0x0004013000002302L
|
spi: 0x0004013000002302L
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
; Vertex shader for rendering textured vertices for PICA200 GPU on the Nintendo 3DS
|
; Vertex shader for rendering textured vertices for PICA200 GPU on the Nintendo 3DS
|
||||||
; ==================================================================================
|
; ==================================================================================
|
||||||
|
|
||||||
; Uniforms
|
; Uniforms (layout common to all shaders)
|
||||||
.fvec MVP[4];
|
.alias MVP_0 c0
|
||||||
|
.alias MVP_1 c1
|
||||||
|
.alias MVP_2 c2
|
||||||
|
.alias MVP_3 c3
|
||||||
|
.alias TEX_OFFSET c4
|
||||||
|
|
||||||
; Constants
|
; Constants (initialised in Graphics_3DS.c)
|
||||||
.constf ONE_DIV_255(0.003921568627, 0.003921568627, 0.003921568627, 0.003921568627)
|
.alias ONE_DIV_255 c5
|
||||||
|
|
||||||
; Outputs
|
; Outputs
|
||||||
.out out_pos position
|
.out out_pos position
|
||||||
|
|
@ -18,14 +22,11 @@
|
||||||
.alias in_tex v2
|
.alias in_tex v2
|
||||||
|
|
||||||
.proc main
|
.proc main
|
||||||
; r0 = in_pos
|
; out_pos = MVP * in_pos
|
||||||
mov r0, in_pos
|
dp4 out_pos.x, MVP_0, in_pos
|
||||||
|
dp4 out_pos.y, MVP_1, in_pos
|
||||||
; out_pos = MVP * r0
|
dp4 out_pos.z, MVP_2, in_pos
|
||||||
dp4 out_pos.x, MVP[0], r0
|
dp4 out_pos.w, MVP_3, in_pos
|
||||||
dp4 out_pos.y, MVP[1], r0
|
|
||||||
dp4 out_pos.z, MVP[2], r0
|
|
||||||
dp4 out_pos.w, MVP[3], r0
|
|
||||||
|
|
||||||
; out_col = in_col * ONE_DIV_255
|
; out_col = in_col * ONE_DIV_255
|
||||||
mul out_col, ONE_DIV_255, in_col
|
mul out_col, ONE_DIV_255, in_col
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.32002.261
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ClassiCube-UWP", "ClassiCube-UWP.vcxproj", "{A901236D-C8EF-4041-966F-46F17511E342}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|ARM = Debug|ARM
|
||||||
|
Debug|ARM64 = Debug|ARM64
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|ARM = Release|ARM
|
||||||
|
Release|ARM64 = Release|ARM64
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|ARM.Build.0 = Debug|ARM
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|x64.Deploy.0 = Debug|x64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Debug|x86.Deploy.0 = Debug|Win32
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|ARM.ActiveCfg = Release|ARM
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|ARM.Build.0 = Release|ARM
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|ARM.Deploy.0 = Release|ARM
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|ARM64.Build.0 = Release|ARM64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|x64.Build.0 = Release|x64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|x64.Deploy.0 = Release|x64
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{A901236D-C8EF-4041-966F-46F17511E342}.Release|x86.Deploy.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {AB4A9C28-F91F-439E-8D2E-E54273138ADC}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
|
|
@ -0,0 +1,432 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{a901236d-c8ef-4041-966f-46f17511e342}</ProjectGuid>
|
||||||
|
<RootNamespace>ClassiCube_UWP</RootNamespace>
|
||||||
|
<DefaultLanguage>en-US</DefaultLanguage>
|
||||||
|
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
||||||
|
<AppContainerApplication>true</AppContainerApplication>
|
||||||
|
<ApplicationType>Windows Store</ApplicationType>
|
||||||
|
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.20348.0</WindowsTargetPlatformVersion>
|
||||||
|
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
|
||||||
|
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
||||||
|
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|ARM">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<CompileAsWinRT>false</CompileAsWinRT>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<CompileAsWinRT>false</CompileAsWinRT>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<CompileAsWinRT>false</CompileAsWinRT>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<CompileAsWinRT>false</CompileAsWinRT>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<CompileAsWinRT>false</CompileAsWinRT>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<CompileAsWinRT>false</CompileAsWinRT>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<CompileAsWinRT>false</CompileAsWinRT>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<CompileAsWinRT>false</CompileAsWinRT>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AppxManifest Include="Package.appxmanifest">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</AppxManifest>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\src\Animations.c" />
|
||||||
|
<ClCompile Include="..\..\src\Audio.c" />
|
||||||
|
<ClCompile Include="..\..\src\Audio_OpenAL.c" />
|
||||||
|
<ClCompile Include="..\..\src\AxisLinesRenderer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Bitmap.c" />
|
||||||
|
<ClCompile Include="..\..\src\Block.c" />
|
||||||
|
<ClCompile Include="..\..\src\BlockPhysics.c" />
|
||||||
|
<ClCompile Include="..\..\src\Builder.c" />
|
||||||
|
<ClCompile Include="..\..\src\Camera.c" />
|
||||||
|
<ClCompile Include="..\..\src\Certs.c" />
|
||||||
|
<ClCompile Include="..\..\src\Chat.c" />
|
||||||
|
<ClCompile Include="..\..\src\Commands.c" />
|
||||||
|
<ClCompile Include="..\..\src\Deflate.c" />
|
||||||
|
<ClCompile Include="..\..\src\Drawer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Drawer2D.c" />
|
||||||
|
<ClCompile Include="..\..\src\Entity.c" />
|
||||||
|
<ClCompile Include="..\..\src\EntityComponents.c" />
|
||||||
|
<ClCompile Include="..\..\src\EntityRenderers.c" />
|
||||||
|
<ClCompile Include="..\..\src\EnvRenderer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Event.c" />
|
||||||
|
<ClCompile Include="..\..\src\ExtMath.c" />
|
||||||
|
<ClCompile Include="..\..\src\FancyLighting.c" />
|
||||||
|
<ClCompile Include="..\..\src\Formats.c" />
|
||||||
|
<ClCompile Include="..\..\src\Game.c" />
|
||||||
|
<ClCompile Include="..\..\src\GameVersion.c" />
|
||||||
|
<ClCompile Include="..\..\src\Generator.c" />
|
||||||
|
<ClCompile Include="..\..\src\Graphics_D3D11.c" />
|
||||||
|
<ClCompile Include="..\..\src\Gui.c" />
|
||||||
|
<ClCompile Include="..\..\src\HeldBlockRenderer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Http_Worker.c" />
|
||||||
|
<ClCompile Include="..\..\src\Input.c" />
|
||||||
|
<ClCompile Include="..\..\src\InputHandler.c" />
|
||||||
|
<ClCompile Include="..\..\src\Inventory.c" />
|
||||||
|
<ClCompile Include="..\..\src\IsometricDrawer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Launcher.c" />
|
||||||
|
<ClCompile Include="..\..\src\LBackend.c" />
|
||||||
|
<ClCompile Include="..\..\src\LBackend_Android.c" />
|
||||||
|
<ClCompile Include="..\..\src\Lighting.c" />
|
||||||
|
<ClCompile Include="..\..\src\Logger.c" />
|
||||||
|
<ClCompile Include="..\..\src\LScreens.c" />
|
||||||
|
<ClCompile Include="..\..\src\LWeb.c" />
|
||||||
|
<ClCompile Include="..\..\src\LWidgets.c" />
|
||||||
|
<ClCompile Include="..\..\src\MapRenderer.c" />
|
||||||
|
<ClCompile Include="..\..\src\MenuOptions.c" />
|
||||||
|
<ClCompile Include="..\..\src\Menus.c" />
|
||||||
|
<ClCompile Include="..\..\src\Model.c" />
|
||||||
|
<ClCompile Include="..\..\src\Options.c" />
|
||||||
|
<ClCompile Include="..\..\src\PackedCol.c" />
|
||||||
|
<ClCompile Include="..\..\src\Particle.c" />
|
||||||
|
<ClCompile Include="..\..\src\Physics.c" />
|
||||||
|
<ClCompile Include="..\..\src\Picking.c" />
|
||||||
|
<ClCompile Include="..\..\src\Protocol.c" />
|
||||||
|
<ClCompile Include="..\..\src\Queue.c" />
|
||||||
|
<ClCompile Include="..\..\src\Resources.c" />
|
||||||
|
<ClCompile Include="..\..\src\Screens.c" />
|
||||||
|
<ClCompile Include="..\..\src\SelectionBox.c" />
|
||||||
|
<ClCompile Include="..\..\src\SelOutlineRenderer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Server.c" />
|
||||||
|
<ClCompile Include="..\..\src\SSL.c" />
|
||||||
|
<ClCompile Include="..\..\src\Stream.c" />
|
||||||
|
<ClCompile Include="..\..\src\String.c" />
|
||||||
|
<ClCompile Include="..\..\src\SystemFonts.c" />
|
||||||
|
<ClCompile Include="..\..\src\TexturePack.c" />
|
||||||
|
<ClCompile Include="..\..\src\TouchUI.c" />
|
||||||
|
<ClCompile Include="..\..\src\Utils.c" />
|
||||||
|
<ClCompile Include="..\..\src\UWP\Platform_UWP.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\UWP\Window_UWP.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\Vectors.c" />
|
||||||
|
<ClCompile Include="..\..\src\Vorbis.c" />
|
||||||
|
<ClCompile Include="..\..\src\Widgets.c" />
|
||||||
|
<ClCompile Include="..\..\src\World.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aesctr_drbg.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_cbcdec.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_cbcenc.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_ctr.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_ctrcbc.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_dec.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_enc.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_common.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_x86ni.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_x86ni_cbcdec.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_x86ni_cbcenc.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_x86ni_ctr.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_x86ni_ctrcbc.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\asn1enc.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ccm.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ccopy.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\chacha20_ct.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\chacha20_sse2.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dec32be.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dec32le.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dec64be.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dec64le.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dig_oid.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dig_size.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_atr.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_default_vrfy_asn1.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_default_vrfy_raw.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_i31_bits.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_i31_vrfy_asn1.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_i31_vrfy_raw.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_all_m31.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_c25519_i31.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_c25519_m31.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_c25519_m62.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_c25519_m64.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_curve25519.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_default.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_p256_m31.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_p256_m62.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_p256_m64.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_prime_i31.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_secp256r1.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_secp384r1.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_secp521r1.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\enc32be.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\enc32le.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\enc64be.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\enc64le.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\gcm.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ghash_ctmul.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ghash_ctmul64.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ghash_pclmul.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\hmac.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\hmac_ct.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\hmac_drbg.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_add.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_bitlen.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_decmod.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_decode.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_decred.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_encode.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_fmont.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_iszero.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_moddiv.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_modpow.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_modpow2.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_montmul.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_mulacc.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_muladd.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_ninv31.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_reduce.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_rshift.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_sub.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_tmont.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i32_div32.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i62_modpow2.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\md5.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\md5sha1.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\multihash.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\poly1305_ctmul.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\poly1305_ctmulq.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\prf.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\prf_md5sha1.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\prf_sha256.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\prf_sha384.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_default_pkcs1_vrfy.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_default_priv.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_default_pub.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i31_pkcs1_vrfy.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i31_priv.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i31_pub.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i62_pkcs1_vrfy.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i62_priv.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i62_pub.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_pkcs1_sig_unpad.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\sha1.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\sha2big.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\sha2small.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_client.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_client_default_rsapub.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_client_full.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_aescbc.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_aesccm.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_aesgcm.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_chapol.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_ec.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_ecdsa.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_rsavrfy.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_hashes.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_hs_client.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_io.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_rec_cbc.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_rec_ccm.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_rec_chapol.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_rec_gcm.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\x509_minimal.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\x509_minimal_full.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Image Include="Assets\Square150x150Logo.scale-200.png">
|
||||||
|
<DeploymentContent>true</DeploymentContent>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\Square44x44Logo.scale-200.png">
|
||||||
|
<DeploymentContent>true</DeploymentContent>
|
||||||
|
</Image>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,445 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="Common">
|
||||||
|
<UniqueIdentifier>a901236d-c8ef-4041-966f-46f17511e342</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="BearSSL">
|
||||||
|
<UniqueIdentifier>{93fa4266-80e4-4bbf-a7fa-c47e07da5098}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AppxManifest Include="Package.appxmanifest" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\src\Animations.c" />
|
||||||
|
<ClCompile Include="..\..\src\Audio.c" />
|
||||||
|
<ClCompile Include="..\..\src\AxisLinesRenderer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Bitmap.c" />
|
||||||
|
<ClCompile Include="..\..\src\Block.c" />
|
||||||
|
<ClCompile Include="..\..\src\BlockPhysics.c" />
|
||||||
|
<ClCompile Include="..\..\src\Builder.c" />
|
||||||
|
<ClCompile Include="..\..\src\Camera.c" />
|
||||||
|
<ClCompile Include="..\..\src\Chat.c" />
|
||||||
|
<ClCompile Include="..\..\src\Commands.c" />
|
||||||
|
<ClCompile Include="..\..\src\Deflate.c" />
|
||||||
|
<ClCompile Include="..\..\src\Drawer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Drawer2D.c" />
|
||||||
|
<ClCompile Include="..\..\src\Entity.c" />
|
||||||
|
<ClCompile Include="..\..\src\EntityComponents.c" />
|
||||||
|
<ClCompile Include="..\..\src\EntityRenderers.c" />
|
||||||
|
<ClCompile Include="..\..\src\EnvRenderer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Event.c" />
|
||||||
|
<ClCompile Include="..\..\src\ExtMath.c" />
|
||||||
|
<ClCompile Include="..\..\src\FancyLighting.c" />
|
||||||
|
<ClCompile Include="..\..\src\Formats.c" />
|
||||||
|
<ClCompile Include="..\..\src\Game.c" />
|
||||||
|
<ClCompile Include="..\..\src\GameVersion.c" />
|
||||||
|
<ClCompile Include="..\..\src\Generator.c" />
|
||||||
|
<ClCompile Include="..\..\src\Gui.c" />
|
||||||
|
<ClCompile Include="..\..\src\HeldBlockRenderer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Http_Worker.c" />
|
||||||
|
<ClCompile Include="..\..\src\Input.c" />
|
||||||
|
<ClCompile Include="..\..\src\InputHandler.c" />
|
||||||
|
<ClCompile Include="..\..\src\Inventory.c" />
|
||||||
|
<ClCompile Include="..\..\src\IsometricDrawer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Launcher.c" />
|
||||||
|
<ClCompile Include="..\..\src\LBackend.c" />
|
||||||
|
<ClCompile Include="..\..\src\LBackend_Android.c" />
|
||||||
|
<ClCompile Include="..\..\src\Lighting.c" />
|
||||||
|
<ClCompile Include="..\..\src\Logger.c" />
|
||||||
|
<ClCompile Include="..\..\src\LScreens.c" />
|
||||||
|
<ClCompile Include="..\..\src\LWeb.c" />
|
||||||
|
<ClCompile Include="..\..\src\LWidgets.c" />
|
||||||
|
<ClCompile Include="..\..\src\MapRenderer.c" />
|
||||||
|
<ClCompile Include="..\..\src\MenuOptions.c" />
|
||||||
|
<ClCompile Include="..\..\src\Menus.c" />
|
||||||
|
<ClCompile Include="..\..\src\Model.c" />
|
||||||
|
<ClCompile Include="..\..\src\Options.c" />
|
||||||
|
<ClCompile Include="..\..\src\PackedCol.c" />
|
||||||
|
<ClCompile Include="..\..\src\Particle.c" />
|
||||||
|
<ClCompile Include="..\..\src\Physics.c" />
|
||||||
|
<ClCompile Include="..\..\src\Picking.c" />
|
||||||
|
<ClCompile Include="..\..\src\Protocol.c" />
|
||||||
|
<ClCompile Include="..\..\src\Queue.c" />
|
||||||
|
<ClCompile Include="..\..\src\Resources.c" />
|
||||||
|
<ClCompile Include="..\..\src\Screens.c" />
|
||||||
|
<ClCompile Include="..\..\src\SelectionBox.c" />
|
||||||
|
<ClCompile Include="..\..\src\SelOutlineRenderer.c" />
|
||||||
|
<ClCompile Include="..\..\src\Server.c" />
|
||||||
|
<ClCompile Include="..\..\src\SSL.c" />
|
||||||
|
<ClCompile Include="..\..\src\Stream.c" />
|
||||||
|
<ClCompile Include="..\..\src\String.c" />
|
||||||
|
<ClCompile Include="..\..\src\SystemFonts.c" />
|
||||||
|
<ClCompile Include="..\..\src\TexturePack.c" />
|
||||||
|
<ClCompile Include="..\..\src\TouchUI.c" />
|
||||||
|
<ClCompile Include="..\..\src\Utils.c" />
|
||||||
|
<ClCompile Include="..\..\src\Vectors.c" />
|
||||||
|
<ClCompile Include="..\..\src\Vorbis.c" />
|
||||||
|
<ClCompile Include="..\..\src\Widgets.c" />
|
||||||
|
<ClCompile Include="..\..\src\World.c" />
|
||||||
|
<ClCompile Include="..\..\src\Graphics_D3D11.c" />
|
||||||
|
<ClCompile Include="..\..\src\UWP\Platform_UWP.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\UWP\Window_UWP.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\Audio_OpenAL.c" />
|
||||||
|
<ClCompile Include="..\..\src\Certs.c" />
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_cbcdec.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_cbcenc.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_ctr.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_ctrcbc.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_dec.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_big_enc.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_common.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_x86ni.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_x86ni_cbcdec.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_x86ni_cbcenc.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_x86ni_ctr.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aes_x86ni_ctrcbc.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\aesctr_drbg.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\asn1enc.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ccm.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ccopy.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\chacha20_ct.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\chacha20_sse2.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dec32be.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dec32le.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dec64be.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dec64le.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dig_oid.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\dig_size.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_all_m31.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_c25519_i31.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_c25519_m31.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_c25519_m62.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_c25519_m64.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_curve25519.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_default.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_p256_m31.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_p256_m62.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_p256_m64.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_prime_i31.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_secp256r1.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_secp384r1.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ec_secp521r1.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_atr.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_default_vrfy_asn1.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_default_vrfy_raw.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_i31_bits.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_i31_vrfy_asn1.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ecdsa_i31_vrfy_raw.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\enc32be.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\enc32le.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\enc64be.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\enc64le.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\gcm.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ghash_ctmul.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ghash_ctmul64.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ghash_pclmul.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\hmac.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\hmac_ct.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\hmac_drbg.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_add.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_bitlen.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_decmod.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_decode.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_decred.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_encode.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_fmont.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_iszero.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_moddiv.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_modpow.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_modpow2.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_montmul.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_mulacc.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_muladd.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_ninv31.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_reduce.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_rshift.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_sub.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i31_tmont.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i32_div32.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\i62_modpow2.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\md5.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\md5sha1.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\multihash.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\poly1305_ctmul.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\poly1305_ctmulq.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\prf.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\prf_md5sha1.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\prf_sha256.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\prf_sha384.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_default_pkcs1_vrfy.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_default_priv.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_default_pub.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i31_pkcs1_vrfy.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i31_priv.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i31_pub.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i62_pkcs1_vrfy.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i62_priv.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_i62_pub.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\rsa_pkcs1_sig_unpad.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\sha1.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\sha2big.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\sha2small.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_client.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_client_default_rsapub.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_client_full.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_aescbc.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_aesccm.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_aesgcm.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_chapol.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_ec.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_ecdsa.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_engine_default_rsavrfy.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_hashes.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_hs_client.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_io.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_rec_cbc.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_rec_ccm.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_rec_chapol.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\ssl_rec_gcm.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\x509_minimal.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\third_party\bearssl\x509_minimal_full.c">
|
||||||
|
<Filter>BearSSL</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Image Include="Assets\Square44x44Logo.scale-200.png" />
|
||||||
|
<Image Include="Assets\Square150x150Logo.scale-200.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<Package
|
||||||
|
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||||
|
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
||||||
|
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||||
|
IgnorableNamespaces="uap mp">
|
||||||
|
|
||||||
|
<Identity
|
||||||
|
Name="64f1d536-965b-4190-90d3-47d861786f88"
|
||||||
|
Publisher="CN=ClassiCube"
|
||||||
|
Version="1.0.0.0" />
|
||||||
|
|
||||||
|
<mp:PhoneIdentity PhoneProductId="64f1d536-965b-4190-90d3-47d861786f88" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
|
||||||
|
|
||||||
|
<Properties>
|
||||||
|
<DisplayName>ClassiCube-UWP</DisplayName>
|
||||||
|
<PublisherDisplayName>ClassiCube</PublisherDisplayName>
|
||||||
|
<Logo>Assets\StoreLogo.png</Logo>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Dependencies>
|
||||||
|
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
||||||
|
</Dependencies>
|
||||||
|
|
||||||
|
<Resources>
|
||||||
|
<Resource Language="x-generate"/>
|
||||||
|
</Resources>
|
||||||
|
|
||||||
|
<Applications>
|
||||||
|
<Application Id="App"
|
||||||
|
Executable="$targetnametoken$.exe"
|
||||||
|
EntryPoint="ClassiCube_UWP.App">
|
||||||
|
<uap:VisualElements
|
||||||
|
DisplayName="ClassiCube-UWP"
|
||||||
|
Description="ClassiCube-UWP"
|
||||||
|
BackgroundColor="transparent" Square44x44Logo="Assets\Square44x44Logo.png" Square150x150Logo="Assets\Square150x150Logo.png">
|
||||||
|
<uap:DefaultTile>
|
||||||
|
<uap:ShowNameOnTiles>
|
||||||
|
<uap:ShowOn Tile="square150x150Logo"/>
|
||||||
|
</uap:ShowNameOnTiles>
|
||||||
|
</uap:DefaultTile>
|
||||||
|
</uap:VisualElements>
|
||||||
|
</Application>
|
||||||
|
</Applications>
|
||||||
|
|
||||||
|
<Capabilities>
|
||||||
|
<Capability Name="internetClient" />
|
||||||
|
</Capabilities>
|
||||||
|
</Package>
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
|
@ -0,0 +1,42 @@
|
||||||
|
TARGET := ClassiCube-amiga
|
||||||
|
BUILD_DIR := build/amiga
|
||||||
|
SOURCE_DIRS := src src/amiga
|
||||||
|
|
||||||
|
S_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.S))
|
||||||
|
C_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
|
||||||
|
OBJS := $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.S=%.o)))
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Code generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
CC = vc +aos68k
|
||||||
|
CFLAGS = -rmcfg-amiga-softfloat -O1 -DPLAT_AMIGA
|
||||||
|
|
||||||
|
AS = vasmm68k_mot
|
||||||
|
ASFLAGS = -Fvobj -m68000 -no-fpu
|
||||||
|
|
||||||
|
LDFLAGS = $(CFLAGS)
|
||||||
|
LDLIBS = -lamiga -lmsoft
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Main targets
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
default: $(BUILD_DIR) $(TARGET)
|
||||||
|
|
||||||
|
$(BUILD_DIR):
|
||||||
|
mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
|
$(TARGET): $(OBJS)
|
||||||
|
$(CC) $(LDFLAGS) -final -o $@ $^ $(LDLIBS)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# object generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(BUILD_DIR)/%.o : src/%.c
|
||||||
|
$(CC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o : src/amiga/%.c
|
||||||
|
$(CC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
TARGET := ClassiCube-amiga
|
||||||
|
BUILD_DIR := build/amiga_68k
|
||||||
|
SOURCE_DIRS := src src/amiga
|
||||||
|
|
||||||
|
S_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.S))
|
||||||
|
C_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
|
||||||
|
OBJS := $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.S=%.o)))
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Code generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
AS := m68k-amigaos-as
|
||||||
|
CC := m68k-amigaos-gcc
|
||||||
|
CXX := m68k-amigaos-g++
|
||||||
|
CFLAGS := -O1 -fno-math-errno -DPLAT_AMIGA -DCC_BUILD_NOFPU
|
||||||
|
|
||||||
|
# Dependency tracking
|
||||||
|
DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d
|
||||||
|
DEPFILES := $(OBJS:%.o=%.d)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# main targets
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
default: $(BUILD_DIR) $(TARGET).exe
|
||||||
|
|
||||||
|
$(BUILD_DIR):
|
||||||
|
mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
|
$(TARGET).exe: $(C_OBJECTS)
|
||||||
|
$(CC) $(LDFLAGS) -o $(TARGET).exe $(C_OBJECTS)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# object generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(BUILD_DIR)/%.o : src/amiga/%.S
|
||||||
|
$(AS) $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o : src/%.c
|
||||||
|
$(CC) $(CFLAGS) $(DEPFLAGS) -S -c $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o : src/amiga/%.c
|
||||||
|
$(CC) $(CFLAGS) $(DEPFLAGS) -S -c $< -o $@
|
||||||
|
|
||||||
|
# Dependency tracking
|
||||||
|
$(DEPFILES):
|
||||||
|
|
||||||
|
include $(wildcard $(DEPFILES))
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
TARGET := ClassiCube-atari
|
||||||
|
BUILD_DIR := build/atari_st
|
||||||
|
SOURCE_DIRS := src src/atari_st
|
||||||
|
|
||||||
|
S_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.S))
|
||||||
|
C_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
|
||||||
|
OBJS := $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.S=%.o)))
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Code generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
CC = vc +tos
|
||||||
|
CFLAGS = -O1 -DPLAT_ATARIOS
|
||||||
|
|
||||||
|
AS = vasmm68k_mot
|
||||||
|
ASFLAGS = -Fvobj -m68000 -no-fpu
|
||||||
|
|
||||||
|
LDFLAGS = $(CFLAGS)
|
||||||
|
LDLIBS = -lm
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Main targets
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
default: $(BUILD_DIR) $(TARGET).tos
|
||||||
|
|
||||||
|
$(BUILD_DIR):
|
||||||
|
mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
|
$(TARGET).tos: $(OBJS)
|
||||||
|
$(CC) $(LDFLAGS) -final -o $@ $^ $(LDLIBS)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# object generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(BUILD_DIR)/%.o : src/%.c
|
||||||
|
$(CC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o : src/atari_st/%.c
|
||||||
|
$(CC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
@ -299,13 +299,17 @@ static const unsigned char TA6_EC_Q[] = {
|
||||||
0x8A
|
0x8A
|
||||||
};
|
};
|
||||||
|
|
||||||
static const br_x509_trust_anchor TAs[7] = {
|
static
|
||||||
|
#ifndef CC_BUILD_SYMBIAN
|
||||||
|
const
|
||||||
|
#endif
|
||||||
|
br_x509_trust_anchor TAs[7] = {
|
||||||
{
|
{
|
||||||
{ (unsigned char *)TA0_DN, sizeof TA0_DN },
|
{ (unsigned char *)TA0_DN, sizeof TA0_DN },
|
||||||
BR_X509_TA_CA,
|
BR_X509_TA_CA,
|
||||||
{
|
{
|
||||||
BR_KEYTYPE_RSA,
|
BR_KEYTYPE_RSA,
|
||||||
{ .rsa = {
|
{ {
|
||||||
(unsigned char *)TA0_RSA_N, sizeof TA0_RSA_N,
|
(unsigned char *)TA0_RSA_N, sizeof TA0_RSA_N,
|
||||||
(unsigned char *)TA0_RSA_E, sizeof TA0_RSA_E,
|
(unsigned char *)TA0_RSA_E, sizeof TA0_RSA_E,
|
||||||
} }
|
} }
|
||||||
|
|
@ -316,7 +320,7 @@ static const br_x509_trust_anchor TAs[7] = {
|
||||||
BR_X509_TA_CA,
|
BR_X509_TA_CA,
|
||||||
{
|
{
|
||||||
BR_KEYTYPE_RSA,
|
BR_KEYTYPE_RSA,
|
||||||
{ .rsa = {
|
{ {
|
||||||
(unsigned char *)TA1_RSA_N, sizeof TA1_RSA_N,
|
(unsigned char *)TA1_RSA_N, sizeof TA1_RSA_N,
|
||||||
(unsigned char *)TA1_RSA_E, sizeof TA1_RSA_E,
|
(unsigned char *)TA1_RSA_E, sizeof TA1_RSA_E,
|
||||||
} }
|
} }
|
||||||
|
|
@ -327,7 +331,7 @@ static const br_x509_trust_anchor TAs[7] = {
|
||||||
BR_X509_TA_CA,
|
BR_X509_TA_CA,
|
||||||
{
|
{
|
||||||
BR_KEYTYPE_RSA,
|
BR_KEYTYPE_RSA,
|
||||||
{ .rsa = {
|
{ {
|
||||||
(unsigned char *)TA2_RSA_N, sizeof TA2_RSA_N,
|
(unsigned char *)TA2_RSA_N, sizeof TA2_RSA_N,
|
||||||
(unsigned char *)TA2_RSA_E, sizeof TA2_RSA_E,
|
(unsigned char *)TA2_RSA_E, sizeof TA2_RSA_E,
|
||||||
} }
|
} }
|
||||||
|
|
@ -337,11 +341,17 @@ static const br_x509_trust_anchor TAs[7] = {
|
||||||
{ (unsigned char *)TA3_DN, sizeof TA3_DN },
|
{ (unsigned char *)TA3_DN, sizeof TA3_DN },
|
||||||
BR_X509_TA_CA,
|
BR_X509_TA_CA,
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#if defined CC_BUILD_SYMBIAN
|
||||||
|
BR_KEYTYPE_EC
|
||||||
|
/* set in SSL.c */
|
||||||
|
#else
|
||||||
BR_KEYTYPE_EC,
|
BR_KEYTYPE_EC,
|
||||||
{ .ec = {
|
{ .ec = {
|
||||||
BR_EC_secp384r1,
|
BR_EC_secp384r1,
|
||||||
(unsigned char *)TA3_EC_Q, sizeof TA3_EC_Q,
|
(unsigned char *)TA3_EC_Q, sizeof TA3_EC_Q,
|
||||||
} }
|
} }
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -349,7 +359,7 @@ static const br_x509_trust_anchor TAs[7] = {
|
||||||
BR_X509_TA_CA,
|
BR_X509_TA_CA,
|
||||||
{
|
{
|
||||||
BR_KEYTYPE_RSA,
|
BR_KEYTYPE_RSA,
|
||||||
{ .rsa = {
|
{ {
|
||||||
(unsigned char *)TA4_RSA_N, sizeof TA4_RSA_N,
|
(unsigned char *)TA4_RSA_N, sizeof TA4_RSA_N,
|
||||||
(unsigned char *)TA4_RSA_E, sizeof TA4_RSA_E,
|
(unsigned char *)TA4_RSA_E, sizeof TA4_RSA_E,
|
||||||
} }
|
} }
|
||||||
|
|
@ -360,7 +370,7 @@ static const br_x509_trust_anchor TAs[7] = {
|
||||||
BR_X509_TA_CA,
|
BR_X509_TA_CA,
|
||||||
{
|
{
|
||||||
BR_KEYTYPE_RSA,
|
BR_KEYTYPE_RSA,
|
||||||
{ .rsa = {
|
{ {
|
||||||
(unsigned char *)TA5_RSA_N, sizeof TA5_RSA_N,
|
(unsigned char *)TA5_RSA_N, sizeof TA5_RSA_N,
|
||||||
(unsigned char *)TA5_RSA_E, sizeof TA5_RSA_E,
|
(unsigned char *)TA5_RSA_E, sizeof TA5_RSA_E,
|
||||||
} }
|
} }
|
||||||
|
|
@ -370,11 +380,16 @@ static const br_x509_trust_anchor TAs[7] = {
|
||||||
{ (unsigned char *)TA6_DN, sizeof TA6_DN },
|
{ (unsigned char *)TA6_DN, sizeof TA6_DN },
|
||||||
BR_X509_TA_CA,
|
BR_X509_TA_CA,
|
||||||
{
|
{
|
||||||
|
#if defined CC_BUILD_SYMBIAN
|
||||||
|
BR_KEYTYPE_EC
|
||||||
|
/* set in SSL.c */
|
||||||
|
#else
|
||||||
BR_KEYTYPE_EC,
|
BR_KEYTYPE_EC,
|
||||||
{ .ec = {
|
{ .ec = {
|
||||||
BR_EC_secp384r1,
|
BR_EC_secp384r1,
|
||||||
(unsigned char *)TA6_EC_Q, sizeof TA6_EC_Q,
|
(unsigned char *)TA6_EC_Q, sizeof TA6_EC_Q,
|
||||||
} }
|
} }
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,3 @@
|
||||||
BUILD_DIR := build-dc
|
|
||||||
SOURCE_DIRS := src third_party/bearssl/src misc/dreamcast
|
|
||||||
TARGET := ClassiCube-dc
|
|
||||||
|
|
||||||
S_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.S))
|
|
||||||
C_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
|
|
||||||
OBJS := $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.S=%.o)))
|
|
||||||
CFLAGS := -g -DNDEBUG -O3 -fipa-pta -fno-pie -flto=auto -fomit-frame-pointer -fbuiltin -ffast-math -ffp-contract=fast -mfsrra -mfsca -pipe -fno-math-errno -Ithird_party/bearssl/inc
|
|
||||||
|
|
||||||
# Dependency tracking
|
|
||||||
DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d
|
|
||||||
DEPFILES := $(OBJS:%.o=%.d)
|
|
||||||
|
|
||||||
GLDC_LIB = third_party/gldc/libGLdc.a
|
|
||||||
LDFLAGS = -g
|
|
||||||
LIBS = -lm $(GLDC_LIB) -lppp -lkosfat
|
|
||||||
|
|
||||||
ifeq ($(strip $(KOS_BASE)),)
|
ifeq ($(strip $(KOS_BASE)),)
|
||||||
$(warning Please set KOS variables in your environment. For example:)
|
$(warning Please set KOS variables in your environment. For example:)
|
||||||
$(warning source /opt/toolchains/dc/kos/environ.sh)
|
$(warning source /opt/toolchains/dc/kos/environ.sh)
|
||||||
|
|
@ -23,7 +6,39 @@ endif
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# main targets
|
# Configurable options
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Directory where object files are placed
|
||||||
|
BUILD_DIR := build/dc
|
||||||
|
# List of directories containing source code
|
||||||
|
SOURCE_DIRS := src third_party/bearssl src/dreamcast
|
||||||
|
# Name of the final output
|
||||||
|
TARGET := ClassiCube-dc
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Compilable files
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
S_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.S))
|
||||||
|
C_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
|
||||||
|
OBJS := $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.S=%.o)))
|
||||||
|
|
||||||
|
# Dependency tracking
|
||||||
|
DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d
|
||||||
|
DEPFILES := $(OBJS:%.o=%.d)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Code generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
CFLAGS = -g -DNDEBUG -O3 -fipa-pta -fno-pie -flto=auto -fomit-frame-pointer -fbuiltin -ffast-math -ffp-contract=fast -mfsrra -mfsca -pipe -fno-math-errno -DPLAT_DREAMCAST
|
||||||
|
LDFLAGS = -g
|
||||||
|
|
||||||
|
# Additional libraries to link against
|
||||||
|
LIBS = -lm -lppp -lkosfat
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Main targets
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
default: $(BUILD_DIR) $(TARGET).cdi
|
default: $(BUILD_DIR) $(TARGET).cdi
|
||||||
|
|
||||||
|
|
@ -35,9 +50,9 @@ $(BUILD_DIR):
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# executable generation
|
# Executable generation
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
$(TARGET).elf: $(OBJS) $(GLDC_LIB)
|
$(TARGET).elf: $(OBJS)
|
||||||
kos-cc $(LDFLAGS) $^ -o $@ $(LIBS)
|
kos-cc $(LDFLAGS) $^ -o $@ $(LIBS)
|
||||||
|
|
||||||
$(TARGET).bin: $(TARGET).elf
|
$(TARGET).bin: $(TARGET).elf
|
||||||
|
|
@ -64,22 +79,24 @@ $(TARGET).cdi: $(TARGET).iso
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# object generation
|
# Object generation
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
$(GLDC_LIB): FORCE
|
|
||||||
$(MAKE) -C third_party/gldc
|
|
||||||
FORCE: ;
|
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: src/%.c
|
$(BUILD_DIR)/%.o: src/%.c
|
||||||
kos-cc $(CFLAGS) $(DEPFLAGS) -c $< -o $@
|
kos-cc $(CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: third_party/bearssl/src/%.c
|
$(BUILD_DIR)/%.o: src/dreamcast/%.c
|
||||||
|
kos-cc $(CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o: third_party/bearssl/%.c
|
||||||
kos-cc $(CFLAGS) -c $< -o $@
|
kos-cc $(CFLAGS) -c $< -o $@
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: misc/dreamcast/%.S
|
$(BUILD_DIR)/%.o: src/dreamcast/%.S
|
||||||
kos-cc $(DEPFLAGS) -c $< -o $@
|
kos-cc $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
# Dependency tracking
|
# Dependency tracking
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
$(DEPFILES):
|
$(DEPFILES):
|
||||||
|
|
||||||
include $(wildcard $(DEPFILES))
|
include $(wildcard $(DEPFILES))
|
||||||
|
|
|
||||||
|
|
@ -1,184 +0,0 @@
|
||||||
! FR0 = 0
|
|
||||||
! FR1 = 0
|
|
||||||
! FR2 = A.1
|
|
||||||
! FR3 = B.1
|
|
||||||
! FR4 = 0
|
|
||||||
! FR5 = 0
|
|
||||||
! FR6 = A.2
|
|
||||||
! FR7 = B.2
|
|
||||||
! FR8 = 0
|
|
||||||
! FR9 = 0
|
|
||||||
! FR10 = invT
|
|
||||||
! FR11 = t
|
|
||||||
|
|
||||||
#define TM1 r1 // temp register 1
|
|
||||||
#define TM2 r3 // temp register 2
|
|
||||||
|
|
||||||
#define IN1 r4 // input vertex 1
|
|
||||||
#define IN2 r5 // input vertex 2
|
|
||||||
#define OUT r6 // output vertex
|
|
||||||
|
|
||||||
#define CL1 r4 // input colour 1
|
|
||||||
#define CL2 r5 // input colour 2
|
|
||||||
#define CLO r7 // output colour
|
|
||||||
|
|
||||||
! Calculates the near plane intersection point between two points:
|
|
||||||
! float t = fabsf(v1->z) / fabsf(v2->z - v1->z)
|
|
||||||
! float invt = 1.0f - t;
|
|
||||||
!
|
|
||||||
! out->x = invt * v1->x + t * v2->x;
|
|
||||||
! out->y = invt * v1->y + t * v2->y;
|
|
||||||
! out->z = 0.0f; // clipped against near plane anyways (I.e Z/W = 0 --> Z = 0)
|
|
||||||
!
|
|
||||||
! out->u = invt * v1->u + t * v2->u;
|
|
||||||
! out->v = invt * v1->v + t * v2->v;
|
|
||||||
! out->w = invt * v1->w + t * v2->w;
|
|
||||||
!
|
|
||||||
! out->b = invt * v1->b + t * v2->b;
|
|
||||||
! out->g = invt * v1->g + t * v2->g;
|
|
||||||
! out->r = invt * v1->r + t * v2->r;
|
|
||||||
! out->a = invt * v1->a + t * v2->a;
|
|
||||||
! To optimise these calculations, FIPR is used:
|
|
||||||
! FIPR = FVm.x*FVn.x + FVm.y*FVn.x + FVm.z*FVn.z + FVm.w*FVn.w --> FVn.w
|
|
||||||
! FIPR can be used to accomplish "vout->Q invt * v1->Q + t * v2->Q" by:
|
|
||||||
! - assigning x/y components to 0 for both vectors
|
|
||||||
! - assigning t and invT to z/w of FVm vector
|
|
||||||
! - assigning v1 and v2 to z/w of FVn vector
|
|
||||||
! FIPR = 0*0 + 0*0 + t*v1->Q + invT*v2->Q --> FVn.w
|
|
||||||
! FIPR = t*v1->Q + invT*v2->Q --> FVn.w
|
|
||||||
|
|
||||||
.global _ClipEdge
|
|
||||||
.align 4
|
|
||||||
_ClipEdge:
|
|
||||||
mov IN1, TM1 ! MT, tmp = &v1
|
|
||||||
fldi0 fr4 ! LS, fr4 = 0
|
|
||||||
add #12, TM1 ! EX, tmp = &v1->z
|
|
||||||
fmov.s @TM1, fr2 ! LS, fr2 = v1->z
|
|
||||||
mov IN2, TM1 ! MT, tmp = &v2
|
|
||||||
fldi0 fr5 ! LS, fr5 = 0
|
|
||||||
add #12, TM1 ! EX, tmp = &v2->z
|
|
||||||
fmov.s @TM1,fr11 ! LS, fr11 = v2->z
|
|
||||||
fsub fr2,fr11 ! FE, fr11 = v2->z - v1->z
|
|
||||||
fldi0 fr8 ! LS, fr8 = 0
|
|
||||||
fmul fr11,fr11 ! FE, fr11 = (v2->z - v1->z) * (v2->z * v1->z)
|
|
||||||
fldi0 fr9 ! LS, fr9 = 0
|
|
||||||
fldi0 fr0 ! LS, fr0 = 0
|
|
||||||
fldi0 fr1 ! LS, fr1 = 0
|
|
||||||
fsrra fr11 ! FE, fr11 = 1 / abs(v2->z - v1->z)
|
|
||||||
fabs fr2 ! LS, fr2 = abs(v1->z)
|
|
||||||
fmul fr2,fr11 ! FE, fr11 = abs(v1->Z) / abs(v2->z - v1->z) --> t
|
|
||||||
add #4, IN1 ! EX, v1 += 4
|
|
||||||
fldi1 fr10 ! LS, fr10 = 1
|
|
||||||
add #4, IN2 ! EX, v2 += 4
|
|
||||||
add #4, OUT ! EX, OUT += 4
|
|
||||||
fsub fr11,fr10 ! FE, fr10 = 1.0 - t --> invT
|
|
||||||
|
|
||||||
fmov.s @IN1+, fr2 ! LS, A1 = v1->x, v1 += 4
|
|
||||||
fmov.s @IN2+, fr3 ! LS, B1 = v2->x, v2 += 4
|
|
||||||
fipr fv8, fv0 ! FE, LERP(A1, B1)
|
|
||||||
fmov.s @IN1+, fr6 ! LS, A2 = v1->y, v1 += 4
|
|
||||||
fmov.s @IN2+, fr7 ! LS, B2 = v2->y, v2 += 4
|
|
||||||
|
|
||||||
fmov.s fr3,@OUT ! LS, OUT->x = LERP
|
|
||||||
add #4, OUT ! EX, OUT += 4
|
|
||||||
fipr fv8, fv4 ! FE, LERP(A2, B2)
|
|
||||||
add #4, IN1 ! EX, v1 += 4
|
|
||||||
add #4, IN2 ! EX, v2 += 4
|
|
||||||
|
|
||||||
fmov.s fr7,@OUT ! LS, OUT->y = LERP
|
|
||||||
add #4, OUT ! EX, OUT += 4
|
|
||||||
fmov.s fr1,@OUT ! LS, OUT->z = 0
|
|
||||||
add #4, OUT ! EX, OUT += 4
|
|
||||||
|
|
||||||
fmov.s @IN1+, fr2 ! LS, A1 = v1->u, v1 += 4
|
|
||||||
fmov.s @IN2+, fr3 ! LS, B1 = v2->u, v2 += 4
|
|
||||||
fipr fv8, fv0 ! FE, LERP(A1, B1)
|
|
||||||
fmov.s @IN1+, fr6 ! LS, A2 = v1->v, v1 += 4
|
|
||||||
fmov.s @IN2+, fr7 ! LS, B2 = v2->v, v2 += 4
|
|
||||||
|
|
||||||
fmov.s fr3,@OUT ! LS, OUT->u = LERP
|
|
||||||
add #4, OUT ! EX, OUT += 4
|
|
||||||
fipr fv8, fv4 ! FE, LERP(A2, B2)
|
|
||||||
add #4, IN1 ! EX, v1 += 4
|
|
||||||
add #4, IN2 ! EX, v2 += 4
|
|
||||||
fmov.s @IN1,fr2 ! LS, A1 = v1->w
|
|
||||||
fmov.s @IN2,fr3 ! LS, B1 = v2->w
|
|
||||||
fmov.s fr7,@OUT ! LS, OUT->v = LERP
|
|
||||||
add #8, OUT ! EX, OUT += 8
|
|
||||||
|
|
||||||
fipr fv8, fv0 ! FE, LERP(A1, B1)
|
|
||||||
add #-4, IN1 ! EX, v1 -= 4
|
|
||||||
add #-4, IN2 ! EX, v2 -= 4
|
|
||||||
fmov.s fr3,@OUT ! LS, OUT->w = lerp
|
|
||||||
add #-4, OUT ! EX, OUT -= 4
|
|
||||||
|
|
||||||
mov.l @IN1,CL1 ! LS, ACOLOR = v1->bgra
|
|
||||||
mov.l @IN2,CL2 ! LS, BCOLOR = v2->bgra
|
|
||||||
! Bypass RGBA interpolation if unnecessary
|
|
||||||
cmp/eq CL1,CL2 ! MT, T = ACOLOR == BCOLOR
|
|
||||||
bt.s 1f ! BR, if (T) goto 1;
|
|
||||||
mov CL1,CLO ! MT, OUTCOLOR = ACOLOR (branch delay instruction)
|
|
||||||
! Interpolate B
|
|
||||||
extu.b CL1,TM1 ! EX, val = ACOLOR.b
|
|
||||||
lds TM1,fpul ! CO, FPUL = val
|
|
||||||
float fpul,fr2 ! EX, fr2 = float(FPUL)
|
|
||||||
extu.b CL2,TM1 ! EX, val = BCOLOR.b
|
|
||||||
lds TM1,fpul ! CO, FPUL = val
|
|
||||||
float fpul,fr3 ! EX, fr3 = float(FPUL)
|
|
||||||
fipr fv8, fv0 ! FE, LERP(A1, B1)
|
|
||||||
shlr8 CL1 ! EX, ACOLOR >>= 8
|
|
||||||
ftrc fr3,fpul ! FE, FPUL = int(lerp)
|
|
||||||
shlr8 CL2 ! EX, BCOLOR >>= 8
|
|
||||||
sts fpul,TM2 ! CO, tmp = FPUL
|
|
||||||
! Interpolate G
|
|
||||||
extu.b CL1,TM1 ! EX, val = ACOLOR.g
|
|
||||||
lds TM1,fpul ! CO, FPUL = val
|
|
||||||
float fpul,fr2 ! EX, fr2 = float(FPUL)
|
|
||||||
extu.b CL2,TM1 ! EX, val = BCOLOR.g
|
|
||||||
lds TM1,fpul ! CO, FPUL = val
|
|
||||||
float fpul,fr3 ! EX, fr3 = float(FPUL)
|
|
||||||
fipr fv8, fv0 ! FE, LERP(A1, B1)
|
|
||||||
shlr8 CL1 ! EX, ACOLOR >>= 8
|
|
||||||
ftrc fr3,fpul ! FE, FPUL = int(lerp)
|
|
||||||
extu.b TM2,TM2 ! EX, tmp = (uint8)tmp
|
|
||||||
mov TM2,CLO ! MT, OUTCOLOR.b = tmp
|
|
||||||
shlr8 CL2 ! EX, BCOLOR >>= 8
|
|
||||||
sts fpul,TM2 ! CO, tmp = FPUL
|
|
||||||
! Interpolate R
|
|
||||||
extu.b CL1,TM1 ! EX, val = ACOLOR.r
|
|
||||||
lds TM1,fpul ! CO, FPUL = val
|
|
||||||
float fpul,fr2 ! EX, fr2 = float(FPUL)
|
|
||||||
extu.b CL2,TM1 ! EX, val = BCOLOR.r
|
|
||||||
lds TM1,fpul ! CO, FPUL = val
|
|
||||||
float fpul,fr3 ! EX, fr3 = float(FPUL)
|
|
||||||
fipr fv8, fv0 ! FE, LERP(A1, B1)
|
|
||||||
shlr8 CL1 ! EX, ACOLOR >>= 8
|
|
||||||
ftrc fr3,fpul ! FE, FPUL = int(lerp)
|
|
||||||
extu.b TM2,TM2 ! EX, tmp = (uint8)tmp
|
|
||||||
shll8 TM2 ! EX, tmp <<= 8
|
|
||||||
or TM2,CLO ! EX, OUTCOLOR.g |= tmp
|
|
||||||
shlr8 CL2 ! EX, BCOLOR >>= 8
|
|
||||||
sts fpul,TM2 ! CO, tmp = FPUL
|
|
||||||
|
|
||||||
extu.b CL1,TM1 ! EX, val = ACOLOR.a
|
|
||||||
lds TM1,fpul ! CO, FPUL = val
|
|
||||||
float fpul,fr2 ! EX, fr2 = float(FPUL)
|
|
||||||
extu.b CL2,TM1 ! EX, val = BCOLOR.a
|
|
||||||
lds TM1,fpul ! CO, FPUL = val
|
|
||||||
float fpul,fr3 ! EX, fr3 = float(FPUL)
|
|
||||||
fipr fv8, fv0 ! FE, LERP(A1, B1)
|
|
||||||
ftrc fr3,fpul ! FE, FPUL = int(lerp)
|
|
||||||
extu.b TM2,TM2 ! EX, tmp = (uint8)tmp
|
|
||||||
shll16 TM2 ! EX, tmp <<= 16
|
|
||||||
or TM2,CLO ! EX, OUTCOLOR.r |= tmp
|
|
||||||
sts fpul,TM2 ! CO, tmp = FPUL
|
|
||||||
extu.b TM2,TM2 ! EX, tmp = (uint8)tmp
|
|
||||||
shll16 TM2 ! EX, tmp <<= 16
|
|
||||||
shll8 TM2 ! EX, tmp <<= 8
|
|
||||||
or TM2,CLO ! EX, OUTCOLOR.a |= tmp
|
|
||||||
|
|
||||||
1:
|
|
||||||
rts ! CO, return after executing instruction in delay slot
|
|
||||||
mov.l CLO,@OUT ! LS, OUT->color = OUTCOLOR
|
|
||||||
.size _ClipEdge, .-_ClipEdge
|
|
||||||
.type _ClipEdge, %function
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
Version : V1.360
|
Version : V1.360
|
||||||
SW Maker Name : UnknownShadow200
|
SW Maker Name : ClassiCube team
|
||||||
Game Title : ClassiCube Dreamcast
|
Game Title : ClassiCube
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Fallback Texture Pack and Audio
|
||||||
|
mkdir -p ${XDG_DATA_HOME}/ClassiCube/texpacks ${XDG_DATA_HOME}/ClassiCube/audio
|
||||||
|
test -f ${XDG_DATA_HOME}/ClassiCube/texpacks/classicube.zip || cp /app/share/classicube-texpack.zip ${XDG_DATA_HOME}/ClassiCube/texpacks/classicube.zip
|
||||||
|
test -f ${XDG_DATA_HOME}/ClassiCube/audio/classicube.zip || cp /app/share/classicube-audio.zip ${XDG_DATA_HOME}/ClassiCube/audio/classicube.zip
|
||||||
|
|
||||||
|
cd ${XDG_DATA_HOME}/ClassiCube && exec ClassiCube "$@"
|
||||||
|
|
@ -0,0 +1,136 @@
|
||||||
|
{
|
||||||
|
"id": "net.classicube.flatpak.client",
|
||||||
|
"runtime": "org.gnome.Platform",
|
||||||
|
"runtime-version": "48",
|
||||||
|
"sdk": "org.gnome.Sdk",
|
||||||
|
"command": "ClassiCubeLauncher",
|
||||||
|
"finish-args": [
|
||||||
|
"--socket=wayland",
|
||||||
|
"--socket=fallback-x11",
|
||||||
|
"--device=dri",
|
||||||
|
"--share=network",
|
||||||
|
"--share=ipc",
|
||||||
|
"--socket=pulseaudio"
|
||||||
|
],
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"name": "SDL3",
|
||||||
|
"buildsystem": "cmake-ninja",
|
||||||
|
"builddir": true,
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/libsdl-org/SDL.git",
|
||||||
|
"branch": "main"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cleanup": [
|
||||||
|
"/bin/sdl3-config",
|
||||||
|
"/include",
|
||||||
|
"/lib/libSDL3.la",
|
||||||
|
"/lib/libSDL3main.a",
|
||||||
|
"/lib/libSDL3main.la",
|
||||||
|
"/lib/libSDL3_test.a",
|
||||||
|
"/lib/libSDL3_test.la",
|
||||||
|
"/lib/cmake",
|
||||||
|
"/share/aclocal",
|
||||||
|
"/lib/pkgconfig"
|
||||||
|
],
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"name": "libdecor",
|
||||||
|
"buildsystem": "meson",
|
||||||
|
"config-opts": [
|
||||||
|
"-Ddemo=false"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitlab.freedesktop.org/libdecor/libdecor.git"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cleanup": [
|
||||||
|
"/include",
|
||||||
|
"/lib/pkgconfig"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zenity-gtk3",
|
||||||
|
"buildsystem": "meson",
|
||||||
|
"build-commands": [
|
||||||
|
"mkdir -p ${FLATPAK_DEST}/share/icons/hicolor"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"url": "https://gitlab.gnome.org/GNOME/zenity/-/archive/3.44.4/zenity-3.44.4.tar.gz",
|
||||||
|
"sha256": "e7b334867d4e11053e6e52e5d51b7a983dc549f93cb3fda757e40309b16bc57b"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-install": [
|
||||||
|
"mv ${FLATPAK_DEST}/bin/zenity ${FLATPAK_DEST}/bin/zenity-gtk3"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zenity-gtk4",
|
||||||
|
"buildsystem": "meson",
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"url": "https://gitlab.gnome.org/GNOME/zenity/-/archive/4.0.2/zenity-4.0.2.tar.gz",
|
||||||
|
"sha256": "fdbb74e882a6a56bb2f1a2381b81e08b06c627cc7e944edb71d107092c70dd80",
|
||||||
|
"x-checker-data": {
|
||||||
|
"type": "gnome",
|
||||||
|
"name": "zenity"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-install": [
|
||||||
|
"mv ${FLATPAK_DEST}/bin/zenity ${FLATPAK_DEST}/bin/zenity-gtk4"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ClassiCubeAssets",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"install -Dm644 classicube-texpack.zip ${FLATPAK_DEST}/share/classicube-texpack.zip",
|
||||||
|
"install -Dm644 classicube-audio.zip ${FLATPAK_DEST}/share/classicube-audio.zip"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"dest-filename": "classicube-texpack.zip",
|
||||||
|
"url": "https://classicube.net/static/default.zip",
|
||||||
|
"sha256": "55eac12a9727d209b42694d07dfdca8d50349779ab77ffc11a31d2cb66b45635"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"dest-filename": "classicube-audio.zip",
|
||||||
|
"url": "https://classicube.net/static/audio.zip",
|
||||||
|
"sha256": "13562a712d1cb1de3f36dd93a03245a377f201e7934d19c17de09202b410e04b"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ClassiCube",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"gcc -fno-math-errno src/*.c -o src/ClassiCube -rdynamic -lpthread -lGL -DCC_WIN_BACKEND=CC_WIN_BACKEND_SDL3 -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -DCC_BUILD_FLATPAK -L /app/lib -lSDL3",
|
||||||
|
"install -Dm755 src/ClassiCube -t ${FLATPAK_DEST}/bin",
|
||||||
|
"install -Dm755 misc/flatpak/ClassiCubeLauncher -t ${FLATPAK_DEST}/bin",
|
||||||
|
"install -Dm755 misc/flatpak/zenity-wrapper ${FLATPAK_DEST}/bin/zenity",
|
||||||
|
"install -Dm644 misc/flatpak/net.classicube.flatpak.client.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/net.classicube.flatpak.client.svg",
|
||||||
|
"install -Dm644 misc/flatpak/net.classicube.flatpak.client.desktop ${FLATPAK_DEST}/share/applications/net.classicube.flatpak.client.desktop",
|
||||||
|
"install -Dm644 misc/flatpak/net.classicube.flatpak.client.metainfo.xml ${FLATPAK_DEST}/share/metainfo/net.classicube.flatpak.client.metainfo.xml"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/ClassiCube/ClassiCube.git"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
{
|
||||||
|
"id": "net.classicube.flatpak.client",
|
||||||
|
"runtime": "org.freedesktop.Platform",
|
||||||
|
"runtime-version": "24.08",
|
||||||
|
"sdk": "org.freedesktop.Sdk",
|
||||||
|
"command": "ClassiCubeLauncher",
|
||||||
|
"finish-args": [
|
||||||
|
"--socket=x11",
|
||||||
|
"--device=dri",
|
||||||
|
"--share=network",
|
||||||
|
"--share=ipc",
|
||||||
|
"--socket=pulseaudio"
|
||||||
|
],
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"name": "ClassiCubeAssets",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"install -Dm644 classicube-texpack.zip ${FLATPAK_DEST}/share/classicube-texpack.zip",
|
||||||
|
"install -Dm644 classicube-audio.zip ${FLATPAK_DEST}/share/classicube-audio.zip"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"dest-filename": "classicube-texpack.zip",
|
||||||
|
"url": "https://classicube.net/static/default.zip",
|
||||||
|
"sha256": "55eac12a9727d209b42694d07dfdca8d50349779ab77ffc11a31d2cb66b45635"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"dest-filename": "classicube-audio.zip",
|
||||||
|
"url": "https://classicube.net/static/audio.zip",
|
||||||
|
"sha256": "13562a712d1cb1de3f36dd93a03245a377f201e7934d19c17de09202b410e04b"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ClassiCube",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"gcc -fno-math-errno src/*.c -o src/ClassiCube -O1 -DCC_BUILD_FLATPAK -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -rdynamic -lm -lpthread -lX11 -lXi -lGL -ldl",
|
||||||
|
"install -Dm755 src/ClassiCube -t ${FLATPAK_DEST}/bin",
|
||||||
|
"install -Dm755 misc/flatpak/ClassiCubeLauncher -t ${FLATPAK_DEST}/bin",
|
||||||
|
"install -Dm644 misc/flatpak/net.classicube.flatpak.client.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/net.classicube.flatpak.client.svg",
|
||||||
|
"install -Dm644 misc/flatpak/net.classicube.flatpak.client.desktop ${FLATPAK_DEST}/share/applications/net.classicube.flatpak.client.desktop",
|
||||||
|
"install -Dm644 misc/flatpak/net.classicube.flatpak.client.metainfo.xml ${FLATPAK_DEST}/share/metainfo/net.classicube.flatpak.client.metainfo.xml"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/ClassiCube/ClassiCube.git"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Allow forcing GTK3/4 through $CC_DIALOG_FORCE_ZENITY_GTK{3,4}
|
||||||
|
if [[ -z "${CC_DIALOG_FORCE_ZENITY_GTK3}" && "${XDG_CURRENT_DESKTOP}" == "GNOME" || ! -z "${CC_DIALOG_FORCE_ZENITY_GTK4}" ]]; then
|
||||||
|
zenity-gtk4 "$@"
|
||||||
|
else
|
||||||
|
zenity-gtk3 "$@"
|
||||||
|
fi
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
ifeq ($(strip $(DEVKITPRO)),)
|
||||||
|
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>devkitPro)
|
||||||
|
endif
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Configurable options
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Name of the final output
|
||||||
|
TARGET = ClassiCube-gba
|
||||||
|
# List of directories containing source code
|
||||||
|
SOURCE_DIRS = src src/gba
|
||||||
|
# Directory where object files are placed
|
||||||
|
BUILD_DIR = build/gba
|
||||||
|
|
||||||
|
GAME_TITLE = ClassiCube
|
||||||
|
GAME_CODE = 0000
|
||||||
|
MAKER_CODE = 00
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Compilable files
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
S_FILES = $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.S))
|
||||||
|
C_FILES = $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
|
||||||
|
OBJS = $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.S=%.o)))
|
||||||
|
|
||||||
|
# Dependency tracking
|
||||||
|
DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d
|
||||||
|
DEPFILES := $(OBJS:%.o=%.d)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Code generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
ARCH = -mthumb -mthumb-interwork
|
||||||
|
CFLAGS = -g -gdwarf-4 -Wall -O2 -DPLAT_GBA -ffunction-sections -fdata-sections -mcpu=arm7tdmi -mtune=arm7tdmi $(ARCH)
|
||||||
|
ASFLAGS = -g $(ARCH)
|
||||||
|
|
||||||
|
LDFLAGS = -specs=gba.specs -g $(ARCH)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Compiler tools
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
PREFIX = $(DEVKITPRO)/devkitARM/bin/arm-none-eabi-
|
||||||
|
ARM_AS = $(PREFIX)as
|
||||||
|
ARM_CC = $(PREFIX)gcc
|
||||||
|
ARM_OBJCOPY = $(PREFIX)objcopy
|
||||||
|
|
||||||
|
GBAFIX = $(DEVKITPRO)/tools/bin/gbafix
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Main targets
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
default: $(BUILD_DIR) $(TARGET).gba
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm $(TARGET).gba $(TARGET).elf $(OBJS)
|
||||||
|
|
||||||
|
$(BUILD_DIR):
|
||||||
|
mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Executable generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(TARGET).elf: $(OBJS)
|
||||||
|
$(ARM_CC) $(LDFLAGS) $^ -o $@ $(LIBS)
|
||||||
|
|
||||||
|
$(TARGET).gba: $(TARGET).elf
|
||||||
|
$(ARM_OBJCOPY) -O binary $< $@
|
||||||
|
$(GBAFIX) $@ -t$(GAME_TITLE) -c$(GAME_CODE) -m$(MAKER_CODE)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Object generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(BUILD_DIR)/%.o: src/%.c
|
||||||
|
$(ARM_CC) $(CFLAGS) $(INCLUDES) $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o: src/gba/%.c
|
||||||
|
$(ARM_CC) $(CFLAGS) $(INCLUDES) $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o: src/gba/%.S
|
||||||
|
$(ARM_CC) $(CFLAGS) $(INCLUDES) $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Dependency tracking
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(DEPFILES):
|
||||||
|
|
||||||
|
include $(wildcard $(DEPFILES))
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
To see debug log messages in mGBA:
|
||||||
|
|
||||||
|
1) In the UI, make sure in Tools > Logging, that Debugger is enabled
|
||||||
128
misc/gc/Makefile
|
|
@ -1,102 +1,94 @@
|
||||||
#---------------------------------------------------------------------------------
|
ifeq ($(strip $(DEVKITPRO)),)
|
||||||
# Clear the implicit built in rules
|
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>devkitPro)
|
||||||
#---------------------------------------------------------------------------------
|
endif
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SECONDARY:
|
|
||||||
|
|
||||||
ifeq ($(strip $(DEVKITPPC)),)
|
|
||||||
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(DEVKITPPC)/gamecube_rules
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# TARGET is the name of the output
|
# Configurable options
|
||||||
# BUILD is the directory where object files & intermediate files will be placed
|
|
||||||
# SOURCES is a list of directories containing source code
|
|
||||||
# INCLUDES is a list of directories containing extra header files
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
TARGET := ClassiCube-gc
|
# Name of the final output
|
||||||
BUILD := build-gc
|
TARGET = ClassiCube-gc
|
||||||
SOURCES := src third_party/bearssl/src
|
# List of directories containing source code
|
||||||
INCLUDES := third_party/bearssl/inc
|
SOURCE_DIRS = src src/gcwii third_party/bearssl
|
||||||
|
# Directory where object files are placed
|
||||||
|
BUILD_DIR = build/gc
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# options for code generation
|
# Compilable files
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
S_FILES = $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.S))
|
||||||
|
C_FILES = $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
|
||||||
|
OBJS = $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.S=%.o)))
|
||||||
|
|
||||||
|
# Dependency tracking
|
||||||
|
DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d
|
||||||
|
DEPFILES := $(OBJS:%.o=%.d)
|
||||||
|
|
||||||
CFLAGS = -g -O2 -Wall $(MACHDEP) $(INCLUDE)
|
|
||||||
CXXFLAGS = $(CFLAGS)
|
|
||||||
LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# any extra libraries we wish to link with the project
|
# Code generation
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
LIBS := -lasnd -lbba -lfat -logc -lm
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# no real need to edit anything past this point unless you need to add additional
|
|
||||||
# rules for different file extensions
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
ifneq ($(BUILD),$(notdir $(CURDIR)))
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
export OUTPUT := $(CURDIR)/$(TARGET)
|
MACHDEP = -DGEKKO -mogc -mcpu=750 -meabi -msdata=sysv -mhard-float
|
||||||
|
CFLAGS = -g -O2 -Wall $(MACHDEP) -I$(DEVKITPRO)/libogc2/gamecube/include -DPLAT_GAMECUBE
|
||||||
|
|
||||||
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir))
|
LDFLAGS = -g $(MACHDEP) -L$(DEVKITPRO)/libogc2/gamecube/lib
|
||||||
|
# Additional libraries to link against
|
||||||
|
LIBS = -lasnd -lbba -lfat -logc -lm
|
||||||
|
|
||||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# automatically build a list of object files for our project
|
# Compiler tools
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
|
PREFIX := $(DEVKITPRO)/devkitPPC/bin/powerpc-eabi-
|
||||||
sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
|
PPC_AS := $(PREFIX)as
|
||||||
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))
|
PPC_CC := $(PREFIX)gcc
|
||||||
|
PPC_CXX := $(PREFIX)g++
|
||||||
|
|
||||||
export LD := $(CC)
|
ELF2DOL := $(DEVKITPRO)/tools/bin/elf2dol
|
||||||
|
|
||||||
export OFILES := $(CFILES:.c=.o) $(sFILES:.s=.o) $(SFILES:.S=.o)
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# build a list of include paths
|
# Main targets
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
|
default: $(BUILD_DIR) $(TARGET).dol
|
||||||
-I$(CURDIR)/$(BUILD) \
|
|
||||||
-I$(LIBOGC_INC)
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# build a list of library paths
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
export LIBPATHS := -L$(LIBOGC_LIB)
|
|
||||||
|
|
||||||
export OUTPUT := $(CURDIR)/$(TARGET)
|
|
||||||
.PHONY: $(BUILD) clean
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
all: $(BUILD)
|
|
||||||
$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/misc/gc/Makefile
|
|
||||||
|
|
||||||
$(BUILD):
|
|
||||||
mkdir -p $@
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
clean:
|
clean:
|
||||||
echo clean ...
|
rm $(TARGET).dol $(TARGET).elf $(OBJS)
|
||||||
rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol
|
|
||||||
|
$(BUILD_DIR):
|
||||||
|
mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
else
|
# Executable generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(TARGET).elf: $(OBJS)
|
||||||
|
$(PPC_CC) $(LDFLAGS) $^ -o $@ $(LIBS)
|
||||||
|
|
||||||
|
$(TARGET).dol: $(TARGET).elf
|
||||||
|
$(ELF2DOL) $< $@
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# main targets
|
# Object generation
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
$(OUTPUT).dol: $(OUTPUT).elf
|
$(BUILD_DIR)/%.o: src/%.c
|
||||||
$(OUTPUT).elf: $(OFILES)
|
$(PPC_CC) $(CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o: src/gcwii/%.c
|
||||||
|
$(PPC_CC) $(CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o: third_party/bearssl/%.c
|
||||||
|
$(PPC_CC) $(CFLAGS) -c $< -o $@
|
||||||
|
|
||||||
-include $(DEPSDIR)/*.d
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
endif
|
# Dependency tracking
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
$(DEPFILES):
|
||||||
|
|
||||||
|
include $(wildcard $(DEPFILES))
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
To see debug log messages in Dolphin:
|
||||||
|
|
||||||
|
1) In the UI, make sure 'Show log configuration' checkbox is checked in View menu
|
||||||
|
2) Make sure "OSReport EXI (OSREPORT)" log type is enabled
|
||||||
|
3) In the UI, make sure 'Show log' checkbox is checked in View menu
|
||||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
|
@ -18,6 +18,16 @@
|
||||||
<string>1.0</string>
|
<string>1.0</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1</string>
|
<string>1</string>
|
||||||
|
<key>LSApplicationCategoryType</key>
|
||||||
|
<string>public.app-category.games</string>
|
||||||
|
<key>GCSupportsGameMode</key>
|
||||||
|
<true/>
|
||||||
|
<key>LSSupportsGameMode</key>
|
||||||
|
<true/>
|
||||||
|
<key>UIFileSharingEnabled</key>
|
||||||
|
<true/>
|
||||||
|
<key>LSSupportsOpeningDocumentsInPlace</key>
|
||||||
|
<true/>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>NSPhotoLibraryAddUsageDescription</key>
|
<key>NSPhotoLibraryAddUsageDescription</key>
|
||||||
|
|
@ -138,4 +148,4 @@
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
mkdir -p ${XDG_DATA_HOME}/ClassiCube
|
|
||||||
cd ${XDG_DATA_HOME}/ClassiCube && exec ClassiCube $@
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
{
|
|
||||||
"id": "net.classicube.flatpak.client",
|
|
||||||
"runtime": "org.freedesktop.Platform",
|
|
||||||
"runtime-version": "23.08",
|
|
||||||
"sdk": "org.freedesktop.Sdk",
|
|
||||||
"command": "ClassiCubeLauncher",
|
|
||||||
"finish-args": [
|
|
||||||
"--socket=wayland",
|
|
||||||
"--socket=fallback-x11",
|
|
||||||
"--device=dri",
|
|
||||||
"--share=network",
|
|
||||||
"--share=ipc",
|
|
||||||
"--socket=pulseaudio"
|
|
||||||
],
|
|
||||||
"modules": [
|
|
||||||
{
|
|
||||||
"name": "SDL3",
|
|
||||||
"buildsystem": "cmake-ninja",
|
|
||||||
"builddir": true,
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/libsdl-org/SDL.git",
|
|
||||||
"branch": "main"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cleanup": [
|
|
||||||
"/bin/sdl3-config",
|
|
||||||
"/include",
|
|
||||||
"/lib/libSDL3.la",
|
|
||||||
"/lib/libSDL3main.a",
|
|
||||||
"/lib/libSDL3main.la",
|
|
||||||
"/lib/libSDL3_test.a",
|
|
||||||
"/lib/libSDL3_test.la",
|
|
||||||
"/lib/cmake",
|
|
||||||
"/share/aclocal",
|
|
||||||
"/lib/pkgconfig"
|
|
||||||
],
|
|
||||||
"modules": [
|
|
||||||
{
|
|
||||||
"name": "libdecor",
|
|
||||||
"buildsystem": "meson",
|
|
||||||
"config-opts": [
|
|
||||||
"-Ddemo=false"
|
|
||||||
],
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://gitlab.freedesktop.org/libdecor/libdecor.git"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cleanup": [
|
|
||||||
"/include",
|
|
||||||
"/lib/pkgconfig"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ClassiCube",
|
|
||||||
"buildsystem": "simple",
|
|
||||||
"build-commands": [
|
|
||||||
"gcc -fno-math-errno src/*.c -o src/ClassiCube -rdynamic -lpthread -lGL -DCC_WIN_BACKEND=CC_WIN_BACKEND_SDL3 -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -DCC_BUILD_FLATPAK -L /app/lib -lSDL3",
|
|
||||||
"install -Dm755 src/ClassiCube -t ${FLATPAK_DEST}/bin",
|
|
||||||
"install -Dm755 misc/linux/flatpak/ClassiCubeLauncher -t ${FLATPAK_DEST}/bin",
|
|
||||||
"install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/net.classicube.flatpak.client.svg",
|
|
||||||
"install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.desktop ${FLATPAK_DEST}/share/applications/net.classicube.flatpak.client.desktop",
|
|
||||||
"install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.metainfo.xml ${FLATPAK_DEST}/share/metainfo/net.classicube.flatpak.client.metainfo.xml"
|
|
||||||
],
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/ClassiCube/ClassiCube.git"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||