Compare commits
2809 Commits
temp-image
...
soc-2022-t
Author | SHA1 | Date | |
---|---|---|---|
422c330390 | |||
8cd76bff47 | |||
9d1cfd9dde | |||
ff1883307f | |||
b73a52302e | |||
088157e447 | |||
e658c8851a | |||
f8cec1ff30 | |||
a76c1ddecc | |||
6e8217d35e | |||
![]() |
6ad9d8e224 | ||
91b5254598 | |||
cf8922ef57 | |||
b7e193cdad | |||
d48735cca2 | |||
575884b827 | |||
7bf306622e | |||
b8bd304bd4 | |||
7d030213b2 | |||
cf3238c1c7 | |||
ac4836af6a | |||
30f244d96f | |||
3c2a2a6c96 | |||
8a3ff496a7 | |||
498f079d2c | |||
881d1c9bc2 | |||
35b2b9b6e6 | |||
5c814e75f2 | |||
![]() |
600c391a65 | ||
3d3c0dfe30 | |||
5b5811c97b | |||
230f72347a | |||
![]() |
257b4d138c | ||
![]() |
33bad77043 | ||
524a9e3db8 | |||
5485057a27 | |||
0ea173165b | |||
9bae9d97b1 | |||
d86af60429 | |||
3c0162295f | |||
0d43117a40 | |||
23662a9a84 | |||
52b93c423d | |||
b8f489c65b | |||
133095fff4 | |||
18def163f8 | |||
f0b4aa5d59 | |||
8d61ca5815 | |||
2c1bffa286 | |||
24246d9870 | |||
![]() |
838c4a97f1 | ||
75489b5887 | |||
d54eb5ed20 | |||
510f3fe9a9 | |||
10981bc8c0 | |||
18960c08fd | |||
96764c3a1f | |||
9830603620 | |||
f59418fd92 | |||
5cda99ff52 | |||
c756d08b4a | |||
1152a437e0 | |||
0ff7a7b3b5 | |||
62346abc02 | |||
483bc6c9c1 | |||
e2975cb701 | |||
209bf7780e | |||
650d2f863d | |||
b6b5f317a3 | |||
23d2e77a54 | |||
69d3f41d75 | |||
6562a11c60 | |||
dc11e1164a | |||
947ece8d39 | |||
8b9469ec36 | |||
5a30fe29ef | |||
e0c966a3b9 | |||
49b068bc63 | |||
![]() |
e6eefdd402 | ||
dce03ecd5c | |||
798b49109b | |||
9bed68de13 | |||
36307d8fba | |||
1064bf58c3 | |||
b19751bee2 | |||
65b1b1cd34 | |||
a17f74ab34 | |||
0d644e6d06 | |||
9dd5c2a7ec | |||
1fed24de5a | |||
409c62aa61 | |||
02012b0cce | |||
fa99323f09 | |||
e6e9f1ac5a | |||
![]() |
2804497312 | ||
43ddfdb1a5 | |||
653100cd65 | |||
004d858138 | |||
7e89bbb2ff | |||
0a3650210f | |||
d3edb3cfc7 | |||
502089f275 | |||
298372fa06 | |||
f0fa90e156 | |||
fe988f6c7f | |||
60bf561d37 | |||
![]() |
2e33172719 | ||
15b4120064 | |||
41053deba4 | |||
2e6cd70473 | |||
216a2c0f37 | |||
c1a231f40b | |||
412c468893 | |||
7cc8f2743e | |||
e550e400cd | |||
ea39d808b5 | |||
fc79b17dce | |||
66483c58eb | |||
f5dae5844c | |||
9978689595 | |||
f7bfbc357c | |||
b83f33ffca | |||
4acbb84efa | |||
2770010224 | |||
08f5219d1c | |||
46f93ac6be | |||
04a75c90d5 | |||
20ba130315 | |||
a59fedb0bf | |||
6737f89e49 | |||
7a24fe372c | |||
f5e7221fbd | |||
b690f4c2e6 | |||
06780aa4e6 | |||
25f18e6c49 | |||
0f06de8072 | |||
58a67e6fb6 | |||
3012eca350 | |||
67254ea37c | |||
e772087ed6 | |||
c7942c31b2 | |||
ca9d65cc97 | |||
4e96d71ddb | |||
![]() |
d209629806 | ||
28f4fc664f | |||
4475c38c5c | |||
06e0776175 | |||
e903403b41 | |||
c654a92237 | |||
c1d295e905 | |||
e1f15e3b32 | |||
1b4f35f6a5 | |||
827fa81767 | |||
f001c85772 | |||
97f894881c | |||
74e9605455 | |||
6c31bd80e3 | |||
b5a5c24396 | |||
0bd6b3e5a0 | |||
f89ea052f7 | |||
9a063e85a5 | |||
67f5596f19 | |||
77b34a00f9 | |||
afde12e066 | |||
988fc24930 | |||
3b7ce70232 | |||
1c5f09e8a8 | |||
1243c2bdae | |||
40d700c6fb | |||
e2993719a8 | |||
5abe127b3d | |||
85fde25178 | |||
10850f0db9 | |||
19e0b60f3e | |||
5ada2afb6d | |||
434133a631 | |||
9634f7fae3 | |||
16f5d51109 | |||
c55dac9904 | |||
afe57c4001 | |||
37097ae62a | |||
3ac656d367 | |||
7a849678c9 | |||
07a5869cf6 | |||
ac2a56d7f3 | |||
019df1fa73 | |||
4c7b0804f8 | |||
cc4d46d91e | |||
9d7e731444 | |||
f24d32f791 | |||
922861c5dc | |||
add1da52ad | |||
9e622e1d02 | |||
f6268f921a | |||
717ab5aeae | |||
4d0f7c3dcd | |||
f5d0a40122 | |||
07341d7b32 | |||
9cad614ad5 | |||
![]() |
9670c649d8 | ||
a24a28db7b | |||
d83a418c45 | |||
28f852ccc3 | |||
00aa57594c | |||
178c184825 | |||
2601b9832d | |||
eb9fa052a1 | |||
6a11cd036c | |||
aebca2bd65 | |||
e6548c03f9 | |||
32ee2ffc7d | |||
14d1ad8dd8 | |||
6d726192be | |||
f37a37cafe | |||
41c7c744eb | |||
ed15900473 | |||
8a6cbcf386 | |||
0fddff027e | |||
a91c8d8efa | |||
62dece5c86 | |||
38bfa53081 | |||
0926495de4 | |||
a632260828 | |||
96f88511ee | |||
132e58610d | |||
3bdf1c11fb | |||
84906d47dc | |||
8b8fbffeea | |||
8a02696724 | |||
530f2abb9b | |||
4ff9c0f4e3 | |||
371fc68678 | |||
285a68b7bb | |||
![]() |
9c28f0eb37 | ||
![]() |
f69c565a33 | ||
fe4e646405 | |||
a3e7280bd8 | |||
8843705f65 | |||
d62e6f1225 | |||
1a71f9d2b8 | |||
cc1cc46099 | |||
17971b8a5b | |||
9e393fc2f1 | |||
![]() |
520be607e8 | ||
7a751327fa | |||
ca29376e00 | |||
b52760a023 | |||
fe746b2738 | |||
5b0e9bd975 | |||
6eea5f70e3 | |||
1af652d42e | |||
83fd3767d3 | |||
8d09a12414 | |||
1269bcce81 | |||
8edd1d8aa5 | |||
a1d2efd190 | |||
b3e0101a35 | |||
173a15bcda | |||
a857156578 | |||
3e7d977886 | |||
9fda233897 | |||
d39e0f9616 | |||
627d42cd56 | |||
ec493d79fa | |||
b568f445a5 | |||
391485f412 | |||
60442b0292 | |||
7974d2bff6 | |||
9c029a3eb0 | |||
![]() |
e62a33e572 | ||
ccf0d22e92 | |||
b69aad60bd | |||
![]() |
1203bd58be | ||
503bcaf1a2 | |||
f49efed953 | |||
3b7e314a28 | |||
d422715094 | |||
1456f30b02 | |||
2918a3a2a3 | |||
1e0e1ad20f | |||
2935b6a2ac | |||
3a8a44b3f9 | |||
16934c198a | |||
![]() |
4412e14708 | ||
4fc7e1a880 | |||
4637f3e83c | |||
58d350b489 | |||
dcbbdc89ea | |||
9ccc21dde3 | |||
4580c18c56 | |||
![]() |
b77494ec61 | ||
7c4826d971 | |||
99847cd642 | |||
b4d3ca624e | |||
263371dc4e | |||
243891104f | |||
af6a68217f | |||
ea182deeb9 | |||
b3101abcce | |||
56ede578e7 | |||
![]() |
7c511f1b47 | ||
14fc89f38f | |||
3a57f5a9cf | |||
f700aa67ac | |||
128aa7f3b0 | |||
3772dda4ab | |||
a094cdacf8 | |||
7eb2018a0b | |||
bb9647b703 | |||
3cd283a424 | |||
011d9cce19 | |||
bb34afac56 | |||
8589f60546 | |||
c7e4c43072 | |||
93a68f2a90 | |||
270a24cc64 | |||
545d469879 | |||
c4e11122c5 | |||
72ea37ae5f | |||
648350e456 | |||
d450a791c3 | |||
4e3ce04855 | |||
e37eebf16f | |||
899ec8b6b8 | |||
176d7bcc2e | |||
31da775ec2 | |||
![]() |
e90ba74d3e | ||
e230ccaf8c | |||
db5ffdd1a4 | |||
6572ad8620 | |||
a5190dce9d | |||
23f8fc38d9 | |||
9531eb24b3 | |||
8e02b53ae7 | |||
2681e480ea | |||
da45c12bef | |||
34f94a02f3 | |||
3fe7d049d2 | |||
5cc118fc09 | |||
7f7ed8e098 | |||
6b9a3be03d | |||
e7156be86e | |||
0b38b8dafa | |||
e73fd4f0c0 | |||
691ab3fc46 | |||
1a3ac2f750 | |||
5d9ebea15d | |||
12722bd354 | |||
2780c7e312 | |||
074010ad6d | |||
9d8fb80f21 | |||
4c4056579b | |||
d040e1da4f | |||
284a3431ae | |||
fa5cf5360c | |||
cf6c8ae01b | |||
6b84465352 | |||
0a2a8d702a | |||
3b51d9065c | |||
5c6053ccb1 | |||
![]() |
50976657ac | ||
4eb5163b18 | |||
16d329da28 | |||
9babe39de9 | |||
cf5529af12 | |||
e87082d8a7 | |||
379672ca0b | |||
9ad19b0453 | |||
c4701a027f | |||
1fb36e9a7c | |||
4a72b64c7b | |||
545b9ddc34 | |||
049e42ef20 | |||
c15e913df8 | |||
7f47f187c1 | |||
b5fe0f02be | |||
73d8015aa3 | |||
2b80bfe9d0 | |||
33f5e8f239 | |||
10488d54d9 | |||
91c44920dd | |||
3cd6ccd968 | |||
2d9c5f3dcf | |||
96a47af413 | |||
9e43a57d22 | |||
9580f23596 | |||
1174cdc914 | |||
9bb7de274d | |||
432c4c74eb | |||
![]() |
901791944d | ||
3ca76ae0e8 | |||
48bb144fea | |||
f4456a4d3c | |||
40ecf9d606 | |||
33eeed5b3c | |||
d73adfdc86 | |||
0f73a27b76 | |||
ef3f33dfd3 | |||
7afcfe111a | |||
604409b8c7 | |||
f60ac5068a | |||
fb08353f38 | |||
b450a8c851 | |||
68150b666c | |||
129ea355c8 | |||
bff9841465 | |||
a493956eaa | |||
a1e6245650 | |||
e72b86d3cb | |||
c667069a12 | |||
7dd0258d4a | |||
ae0b68e129 | |||
e0f3c23ac0 | |||
e9eae1b857 | |||
110c90b3cf | |||
d3b3d72303 | |||
e5ab1495e5 | |||
da7bc51210 | |||
38acd14fb7 | |||
71ce47a71d | |||
1bf35f1b19 | |||
61a7e5be18 | |||
4cab98f8be | |||
0f29f2c3e6 | |||
44bac4c8cc | |||
ca346d2176 | |||
54d076b20d | |||
46cb24e7c2 | |||
0e8d6c2828 | |||
65e7d49939 | |||
ee57afe7e1 | |||
12642bdeab | |||
b38a59881b | |||
6cee404914 | |||
75162ab8c2 | |||
79cee340a8 | |||
511a08585d | |||
b9f29a0f64 | |||
0f47506cde | |||
5c80bcf8c2 | |||
484ea573af | |||
dc389a6152 | |||
a1830859fa | |||
96f20ddc1e | |||
610619c203 | |||
a40b611128 | |||
f2cd7e08fe | |||
908dfd5e0d | |||
52cb24a779 | |||
3060b98842 | |||
a746cef825 | |||
d356a4f280 | |||
a5dcae0c64 | |||
3d66ee8c97 | |||
e37027634b | |||
4669178fc3 | |||
39c14f4e84 | |||
765c16bbd0 | |||
75ef51cc80 | |||
9301cc74ee | |||
344a8fb3d4 | |||
0d7e0ffdb5 | |||
e82141b6b4 | |||
247ceca629 | |||
18a17d4291 | |||
![]() |
a30e67813d | ||
a3a138b41b | |||
5fdd367786 | |||
![]() |
1ebc0ebdc0 | ||
993fd985f0 | |||
c338388354 | |||
c8058e51ee | |||
1c6b66c9cf | |||
94444aaadf | |||
fb86f3ee18 | |||
ed2a345402 | |||
7056c7520a | |||
ca59391704 | |||
![]() |
f523fb1dc9 | ||
![]() |
c8cef83fae | ||
b24e091c5a | |||
3f9376851b | |||
3437cf155e | |||
a5d9b3442d | |||
4267c6280a | |||
dd2ed1c55c | |||
fb62fcf071 | |||
e7544e3ce4 | |||
c1277c5d25 | |||
6856290514 | |||
cd6551d4eb | |||
fc1ae52994 | |||
de610d06a6 | |||
65bd9974d1 | |||
afd81e26af | |||
a9a4bcc3d1 | |||
a775389823 | |||
70171cdfdf | |||
6a59cf0530 | |||
1f85877263 | |||
![]() |
a8471459fd | ||
ec8365b9ed | |||
7f877ee042 | |||
fbeec91abf | |||
24e74f8bef | |||
ddebb0f783 | |||
bb0fc67582 | |||
2f77b2daac | |||
ce1dd44c68 | |||
![]() |
878a805ae8 | ||
f1c29b9bd3 | |||
fc3c589b18 | |||
a7bda30ca8 | |||
16746e8ec2 | |||
3c0d7152c8 | |||
cc4b6c6476 | |||
32bf6455a0 | |||
218f23935c | |||
86cfc30aac | |||
3152d68b70 | |||
93e4b15767 | |||
13373a6ccd | |||
49368c734b | |||
812a9728f8 | |||
314e5cb889 | |||
16166f69be | |||
5dfff02437 | |||
138a4846e2 | |||
86baf6e3ed | |||
3f1f4df3fd | |||
712b0496c1 | |||
967f96ee2e | |||
7b65086fdf | |||
da1dd98101 | |||
bd2f9a16fb | |||
![]() |
52c1f983cb | ||
b45f410b31 | |||
![]() |
74cf22c42c | ||
3a4f2131c2 | |||
9fef80c663 | |||
bf6aa5d63d | |||
abf8750dbc | |||
5b40c48f85 | |||
5417b8434a | |||
802f107e38 | |||
e5c65709a2 | |||
![]() |
8d53ead69b | ||
![]() |
f45a735aad | ||
84189a6340 | |||
f41c7723c9 | |||
5625a21fc7 | |||
da9e14b0b9 | |||
46456a59c4 | |||
7aad4d459e | |||
6d4f16a776 | |||
49032a8ca5 | |||
ae39abe7f3 | |||
fdc2b7bfa4 | |||
bf53956914 | |||
55e3930b25 | |||
d6badf6fde | |||
2a367689d4 | |||
38a2576ace | |||
790fe55c52 | |||
fdb1a7b5e1 | |||
374ce5dcb4 | |||
3131107ba3 | |||
ae5d3fa2d0 | |||
3f3d82cfe9 | |||
11480763b6 | |||
dc6fe73e70 | |||
a4a7af4732 | |||
f3c03982e5 | |||
6feca52349 | |||
f1df685f57 | |||
![]() |
1a516bb714 | ||
496394daad | |||
a337e7738f | |||
f381c31ac6 | |||
288e7d0af0 | |||
e8eb67bb04 | |||
841a354412 | |||
b0d2a435a1 | |||
a072a264b6 | |||
ef59c8295f | |||
c27be07d89 | |||
98b66dc040 | |||
![]() |
c980ed27f0 | ||
53f7c22022 | |||
332d87375d | |||
c64e9c6ae2 | |||
4949dd54eb | |||
cb3b9358bf | |||
6ec0f62e3f | |||
a4e7a5aa4f | |||
adaf92b4ab | |||
80e007fe8c | |||
c9a9763e36 | |||
aab947eb46 | |||
26c6ec5594 | |||
8f0612b781 | |||
08324ba2c1 | |||
e69f3d7db1 | |||
1ec01b2142 | |||
603d3c90a5 | |||
57b87feda1 | |||
d46647040d | |||
ceff1c2f65 | |||
ae73bd3d9e | |||
b0da080c2c | |||
7b778166db | |||
25d216724b | |||
cd412b4454 | |||
961db61fb8 | |||
bc3dbf109c | |||
463077a3d5 | |||
258f6cbf93 | |||
bfec666dbc | |||
a40a269062 | |||
10aa2fa902 | |||
2da7977e3e | |||
089175bb1f | |||
f29ff7fb7e | |||
2ca66d541a | |||
bc1eb513ab | |||
![]() |
cd77bf44d4 | ||
![]() |
d1340e1bb2 | ||
b84264fbc5 | |||
ec5b53a018 | |||
174c3ffb4a | |||
123f4db9bd | |||
2ea6a0dd4d | |||
e07b1b8316 | |||
cd968a3273 | |||
64a5a7ade1 | |||
5744e7d247 | |||
bb6f0b085e | |||
d55e1caa75 | |||
c968dae054 | |||
8eda776eef | |||
770510915c | |||
bdab538b30 | |||
a22ad7fbd3 | |||
2655f47ca3 | |||
b2e5fc72c8 | |||
8f79fa9c67 | |||
0d6dda4555 | |||
02c5ca2f22 | |||
9039fbaa9c | |||
917c096be6 | |||
ffa262c9f8 | |||
9e45af530a | |||
a8c81ffa83 | |||
14a5a91e0e | |||
54f357ed2a | |||
ec95f4a5df | |||
0e6d70fec9 | |||
d91711bc85 | |||
bc8e030a84 | |||
2b9dfff6f3 | |||
09b7e141d2 | |||
e4de0d28c4 | |||
bce37bc52a | |||
7542dc460f | |||
5565d79057 | |||
16fd5fa656 | |||
7f1a5f2567 | |||
![]() |
f4d31fbf6c | ||
85e3e3be5b | |||
aea59428eb | |||
63cf0d0890 | |||
![]() |
82d7234ed9 | ||
698e394e7e | |||
9bb4bf5748 | |||
3e4f84d10d | |||
eb5e7d0a31 | |||
469ee7ff15 | |||
09292b89c3 | |||
00506d7a86 | |||
2f2d13b8c6 | |||
eba6900b08 | |||
a833c7f4a5 | |||
f626fc27f9 | |||
3fe1079ecf | |||
2d67b375a1 | |||
62a2b92b6b | |||
a5409d2b59 | |||
f4101ba4a1 | |||
c4e5a7d59a | |||
f4a01c8a8b | |||
8f3847aef3 | |||
b81f1b8cf1 | |||
f93b237194 | |||
4418536f69 | |||
ad33e68348 | |||
1e882b8657 | |||
4d509fd6e1 | |||
c92f137a75 | |||
47b0ca85cd | |||
341f1e444f | |||
04ed96136b | |||
568b692bcf | |||
84e55e3dc2 | |||
d095fcd6b4 | |||
e222e19d82 | |||
fff8f969de | |||
fdb1f70468 | |||
9d9f2f1a03 | |||
45ed325443 | |||
84901adec5 | |||
dfb8c90324 | |||
0d73113452 | |||
029e6b5174 | |||
bf352df27a | |||
9b082da708 | |||
8d65895af8 | |||
de561280fc | |||
b215fe82e8 | |||
f8239cc9a0 | |||
cea37b3127 | |||
a89f829f12 | |||
019681b984 | |||
47c2a876bf | |||
d4cdae29c1 | |||
1d65f7ea91 | |||
b8bd20d7e0 | |||
![]() |
8e02b0d5d4 | ||
af7502dd9b | |||
d27f4e8493 | |||
f049591967 | |||
f61dd33f50 | |||
f68fb81064 | |||
838806be28 | |||
780ad443fd | |||
930e526cae | |||
42a6c226d0 | |||
c1dcc64750 | |||
74a34d95d6 | |||
a42307eb65 | |||
f600a2aa6d | |||
1a627d528c | |||
![]() |
89106a695a | ||
9e9895b055 | |||
65e13cc2d2 | |||
bc6965cb98 | |||
436a7ee651 | |||
2d5b91d6a0 | |||
eb13072399 | |||
f8ebb0e1d5 | |||
d0fabb318e | |||
f5b708d1cf | |||
29ca935eb8 | |||
4fc96e5000 | |||
24745e8d27 | |||
74420d95b3 | |||
e42e4e8568 | |||
c88de1594f | |||
f4cbfaded6 | |||
2e06c223cc | |||
5d0432a2ea | |||
a111aae415 | |||
ae11233b65 | |||
3ecc03c3d6 | |||
76b6741981 | |||
41feaa17f3 | |||
e9c3af3dd7 | |||
6730c11dd9 | |||
3e2017491a | |||
30e666f747 | |||
ae2d2c9361 | |||
b16eff2bb3 | |||
b3e53d6daa | |||
f4028630bf | |||
769cdccd0e | |||
22812579bb | |||
7ace6dc496 | |||
89ccff62d2 | |||
699944572f | |||
0fcfc4cc5b | |||
33c5adba62 | |||
9631bb1e17 | |||
ca780f4406 | |||
4fa743af85 | |||
683570c7fe | |||
80811c5638 | |||
790598fa60 | |||
fe4ae77ded | |||
c4c6ea7ea9 | |||
c34e3f0f19 | |||
28316e0810 | |||
8ca9ce0986 | |||
214e61fc2c | |||
47dbdf8dd5 | |||
14a893f20e | |||
b712dbe5de | |||
c56103356f | |||
2e70af5cd5 | |||
342e12d6d9 | |||
f517b3a295 | |||
708547ab06 | |||
136a06285f | |||
8fb2a61966 | |||
f937c186de | |||
3cd3a4abe3 | |||
1fcdb1ea28 | |||
e8e2bdaa86 | |||
c9ae9e1483 | |||
df8a9648e2 | |||
c536791f36 | |||
ba2c6c90fa | |||
a820ba0d36 | |||
418184d1c1 | |||
6f00b1500c | |||
9f8254fd34 | |||
369f652c80 | |||
2719869a2a | |||
c8edc458d1 | |||
88fbe94d70 | |||
77f2cb1686 | |||
5d1cab0c2f | |||
d7053ba030 | |||
0af772ef8a | |||
ffbeb34f5f | |||
c38187393a | |||
ebb492a389 | |||
df26f4f63a | |||
35e73aa347 | |||
![]() |
b48adbc9d7 | ||
b3b5d4cabb | |||
83349294b1 | |||
8fdd3aad9b | |||
0609b4bb49 | |||
8c9805fc62 | |||
939c2387a1 | |||
b759a3eac0 | |||
7a31229011 | |||
fb2ae6b8c5 | |||
9a4cb7a732 | |||
6d42cd8ff9 | |||
22bf263269 | |||
c6e3242e18 | |||
ff2d6c2ba8 | |||
c8b740cc00 | |||
![]() |
dbc439e41a | ||
dbb6016e94 | |||
200e63b0bf | |||
ed62b65474 | |||
3ad5510427 | |||
af6765a49c | |||
3ccdc362da | |||
46114f0a36 | |||
c7033bdf26 | |||
65fa34f63f | |||
f9ed31b15d | |||
4301b6c896 | |||
f752eaadbd | |||
c582a2dbd9 | |||
eddfa811da | |||
bdb5a50682 | |||
080e506e28 | |||
fcc3a68cac | |||
a4ed0f51c1 | |||
f4ff36431c | |||
f11401d32a | |||
51195c17ac | |||
210d0f1b80 | |||
c93f3b4596 | |||
1a740c2541 | |||
48c4c409b8 | |||
5c9ab3e003 | |||
77ddcc4717 | |||
7bbf101082 | |||
1660eff1a2 | |||
405d32bc80 | |||
8c4bd02b06 | |||
be84fe4ce1 | |||
205c6d8d08 | |||
6065fbb543 | |||
4be79da9a7 | |||
a2dacefb46 | |||
00af3e9472 | |||
b8c30fb80a | |||
c729ddd741 | |||
5973950b2a | |||
e9d7c05754 | |||
b66368f3fd | |||
![]() |
68d203af0b | ||
![]() |
f1beb3b3f6 | ||
b98175008f | |||
![]() |
00eb7594b1 | ||
0d80c4a2a6 | |||
9bd905e73f | |||
9df91654dc | |||
f1c27b383b | |||
29a3f43da5 | |||
![]() |
48754bc146 | ||
adf183eeae | |||
93bcfd19ba | |||
8c24e29338 | |||
cef36f4a95 | |||
717c150eb1 | |||
2397287a51 | |||
124aae91e2 | |||
7fc2804f45 | |||
84a7641563 | |||
1c70402c62 | |||
7b091fbb94 | |||
024f3ddf61 | |||
ee0c05e886 | |||
b8de9916ed | |||
e46a38942a | |||
3e989e8c8d | |||
b44cec0eca | |||
450a190095 | |||
901fc29df1 | |||
dcaaa5b6f4 | |||
b54abd7ede | |||
a46f34d9b3 | |||
f9751889df | |||
139a4b6a84 | |||
ea5bfedb49 | |||
e1c8ef551f | |||
c2bbd01b2f | |||
7c9b6cc380 | |||
ee363ee7b3 | |||
cf69652618 | |||
fa7224d8ed | |||
074c695a0d | |||
870ad7d05d | |||
ca2fb9bae9 | |||
8e717ce55a | |||
![]() |
5baa3ecda6 | ||
1e4cd98f0a | |||
8d43ee1b08 | |||
7c9c13cf83 | |||
908e6c7c4d | |||
3f952b3ca3 | |||
c2d2cd1468 | |||
a0748153b4 | |||
a80ad0a545 | |||
4680331749 | |||
6f3d155293 | |||
05b56d55e8 | |||
d6c4317f35 | |||
7533bee58b | |||
94ad77100c | |||
cbc024c3ca | |||
6e2270f3d3 | |||
e30ccb9a34 | |||
58555ccc7a | |||
8741cf2038 | |||
42d748be34 | |||
fa9e878e79 | |||
0d1b9eabf2 | |||
3e5cb7b23e | |||
b3938d2a36 | |||
113b8030ce | |||
470cbad51a | |||
427a2c920a | |||
906b9f55af | |||
c0df1cd1b3 | |||
1159b63a07 | |||
6044c6d09b | |||
c09cfdb251 | |||
![]() |
073139e329 | ||
992ae3f282 | |||
e4bb898e40 | |||
f3f7f8b37b | |||
17fc8db104 | |||
018acc5688 | |||
c5b67975cd | |||
d634194cac | |||
2c784f44cf | |||
766340856d | |||
d1f32b63eb | |||
32fd85e6f9 | |||
b24f204e91 | |||
ccd18691fc | |||
f2c7b56f0f | |||
3693e1d8e8 | |||
![]() |
c31f519954 | ||
d9effc1cc6 | |||
092cbacd8f | |||
65d44093c9 | |||
2e8089b6bf | |||
dea5d22da1 | |||
94a54ab554 | |||
9757b4efb1 | |||
f5077e057b | |||
207b0c2a0f | |||
dff11551de | |||
6f5d172d6c | |||
b04de6d180 | |||
77d3e6b439 | |||
6dcda1b9aa | |||
89306a3a05 | |||
87dd8dc740 | |||
993d17af90 | |||
66dada123c | |||
58fe38af9f | |||
a0e63bac02 | |||
81f23ad57a | |||
ca5f832fe9 | |||
0c9892020b | |||
![]() |
c21cc4dad5 | ||
9599c5415d | |||
cb5b33a627 | |||
31202ea628 | |||
0eb2244f0a | |||
59637cf073 | |||
14175043e5 | |||
1242e8b93c | |||
295b6e8230 | |||
3b0a08b793 | |||
51fdf4bdfc | |||
578771ae4d | |||
8d9d5da137 | |||
![]() |
502e1a44b9 | ||
3e782bba71 | |||
007184bcf2 | |||
59cd616534 | |||
8d528241a9 | |||
2001ee6251 | |||
fa114cc4a0 | |||
06a7afb528 | |||
a4382badb9 | |||
6599d2f03b | |||
e354ba701a | |||
3eb3d363e1 | |||
edd892166d | |||
007e95c259 | |||
a3f9862262 | |||
87978ff560 | |||
fbf92f5967 | |||
b9d02b9ced | |||
![]() |
eef98e66cf | ||
6bd270f3af | |||
8c233cfd78 | |||
5045968f24 | |||
61202f6f74 | |||
49173399f3 | |||
b765ea52af | |||
2f799f893e | |||
74a5fb734a | |||
30534deced | |||
2d9a6e4f68 | |||
be9800e8da | |||
b30cb05c14 | |||
![]() |
195986a719 | ||
8650c2b614 | |||
82a70ffe40 | |||
c0546ff953 | |||
0c5a7ca117 | |||
ec53e9fa69 | |||
ae683a22c6 | |||
87d74d03bf | |||
8e476c414c | |||
690ecaae20 | |||
067f0d40ae | |||
a652568570 | |||
2fa2612b06 | |||
42e275a7d4 | |||
8f1a11c35a | |||
17ab0342ac | |||
0091c97b32 | |||
f9e0b94c2f | |||
baf8ec2e54 | |||
046b45749c | |||
1bb7fda600 | |||
b47c5505aa | |||
74228e2cd2 | |||
81b797af66 | |||
28240f78ce | |||
![]() |
dcce4a59a0 | ||
![]() |
dc55e095e6 | ||
c171c99fa1 | |||
8852191b77 | |||
6f7959f55f | |||
3bc037a7eb | |||
9c2613d1b6 | |||
1dd1772419 | |||
0134ab4b56 | |||
6c679aca17 | |||
cd349dc402 | |||
c60b570841 | |||
d9d81cb1ff | |||
b4b85c5ce2 | |||
de71cdb35d | |||
4c3e91e5f5 | |||
9173dd24ad | |||
502c3d6c21 | |||
15021968c1 | |||
b38cd1bcbe | |||
4ffeb2d449 | |||
3893ba5d67 | |||
7849b56c3c | |||
061995775f | |||
a74a267767 | |||
77c0e79805 | |||
2a2e47b20c | |||
439f86ac89 | |||
08a39d32a9 | |||
11aa237858 | |||
bc256a4507 | |||
501ec81d3e | |||
![]() |
4bb90b8f4c | ||
ccb4e29873 | |||
e7464dffbc | |||
1c1e842879 | |||
a4c2060b91 | |||
b468255453 | |||
b6b94f878f | |||
7301547ca7 | |||
35594f4b92 | |||
10865c8f34 | |||
6e2b0a38f0 | |||
bfa1c077cb | |||
bda9a1b103 | |||
c2e26406c5 | |||
![]() |
f4827d08bc | ||
78f61bf8c1 | |||
c2737913db | |||
892562b7bf | |||
f9d7313bb7 | |||
686abf1850 | |||
e0e95f7895 | |||
9f8f35008c | |||
5823e749dc | |||
43e31d26a9 | |||
6f773b1a4f | |||
36e330bd9c | |||
865cdff426 | |||
17429fe5e5 | |||
82060c1697 | |||
95ff5e6d89 | |||
0f7da9a72f | |||
![]() |
719c86c0a6 | ||
b508999d8d | |||
b1b6994129 | |||
b8432c2c8e | |||
025959da23 | |||
![]() |
4ac6177b8d | ||
9913196470 | |||
b651754890 | |||
6b95e75d2f | |||
cc3c15fbdd | |||
![]() |
b96cdbcf7a | ||
![]() |
90298c24a2 | ||
78e7b20c0f | |||
90663acfd5 | |||
014cdd3441 | |||
9f2e995c3e | |||
3a035a4417 | |||
b28e261753 | |||
2a2261d7e1 | |||
23be3294ff | |||
98a04ed452 | |||
5e40c342ae | |||
aee8e49031 | |||
aae2ff49f5 | |||
92d0ed3000 | |||
![]() |
26d375467b | ||
![]() |
a7417ba845 | ||
a0a99fb252 | |||
f23f831e91 | |||
763b8f1423 | |||
dd2df5ceb0 | |||
2ba081f59b | |||
cdd2c8bd07 | |||
acafc7327e | |||
edc92f779e | |||
c7bffc8fa2 | |||
bdfee6d831 | |||
8f6f28a0dc | |||
f5428736a7 | |||
d02b8c1c3b | |||
![]() |
90042b7d79 | ||
b1517e26e2 | |||
![]() |
ce3dd12371 | ||
f3b56246d1 | |||
eac403b6e1 | |||
908976b09a | |||
84756b68e6 | |||
477066adee | |||
12a1fa9cf4 | |||
2c75857f9f | |||
ae9ef28126 | |||
62450e8485 | |||
![]() |
e58b18888c | ||
4a4f0a70eb | |||
693aa573db | |||
4dc6d14bdc | |||
11f3a388ed | |||
11a7da675f | |||
e1476ca310 | |||
929a210608 | |||
fcbd81fb0f | |||
1b566b70c1 | |||
e4931ab86d | |||
108963d508 | |||
75a051a6ab | |||
4fa71be89a | |||
26cda38985 | |||
26bc584e01 | |||
47ba541853 | |||
b891c72d2d | |||
b968e2bf48 | |||
6fa5d520b8 | |||
5b24291be1 | |||
48f7574716 | |||
1830a3dfb5 | |||
ad119d327e | |||
bff9bf728e | |||
611b82621d | |||
69c7ff1649 | |||
be0417d690 | |||
756710800c | |||
78fc5ea1c3 | |||
18bcd8321a | |||
622c4e4953 | |||
c7a345bd60 | |||
960a1ddd85 | |||
598917f49b | |||
7e02c90103 | |||
dbba5c4df9 | |||
b4fa74e812 | |||
09f769bde5 | |||
8d78c3152e | |||
a85df96b4f | |||
94533ca4b8 | |||
3505d948c6 | |||
9ebf8a0c35 | |||
060c5a7fa2 | |||
b4fb2a6980 | |||
8b54e05e33 | |||
eb837ba17e | |||
6513ce258f | |||
0f567ada9d | |||
ddbac88c08 | |||
836fbb90aa | |||
e33c15951b | |||
d0c2fd0570 | |||
d3c895fc41 | |||
777b72b5cb | |||
73fa571598 | |||
adbe71c3fa | |||
8960c6e060 | |||
![]() |
ed0964c976 | ||
f11dba8892 | |||
0fa1c65ee3 | |||
54f447ecde | |||
ac9ebc9de3 | |||
319a772b7f | |||
fc0f6d19ad | |||
5d7ee44406 | |||
1a98bec40e | |||
![]() |
82df48227b | ||
7d41e1ed40 | |||
60772baebf | |||
8ff5836766 | |||
b5c3885bf0 | |||
![]() |
d2271cf939 | ||
5559ea59a1 | |||
b5b6ae06f9 | |||
08daeb9472 | |||
03aba8046e | |||
8bd0ed6bd2 | |||
a0d139076c | |||
a52fbeadb1 | |||
54b293237e | |||
82bf11e73f | |||
dc1793e85b | |||
d86d7c935e | |||
5162135e14 | |||
3bdda67e50 | |||
cbeb8770cc | |||
48c0738d4a | |||
9ee9dd257f | |||
16011e34f0 | |||
7d7047058a | |||
![]() |
b31f5b8ce7 | ||
0f2cc50fc6 | |||
caeea212cf | |||
302584bd6e | |||
14d845192a | |||
e7ba34599c | |||
79e94caa6b | |||
5f8f436dca | |||
aa1fb4204d | |||
2d80f814cc | |||
7dc94155f6 | |||
0375720e28 | |||
aa21087d56 | |||
78e8fae346 | |||
b1cd3be0d0 | |||
f8c8abae38 | |||
0383047257 | |||
2a89509e45 | |||
10b1e993f4 | |||
8cb30c079d | |||
db63945c36 | |||
dc57ab8941 | |||
e86b62f195 | |||
5b2a6b6ebb | |||
502c707e0e | |||
![]() |
1d668b6356 | ||
281bcc1c1d | |||
94205e1d02 | |||
947f8ba300 | |||
04df0a3b8c | |||
2062116924 | |||
9fb98735ea | |||
f586c3ba21 | |||
5962db093f | |||
5f5e7ac317 | |||
11d075f07d | |||
![]() |
61e8310b75 | ||
46d7bcc068 | |||
a2e3005b42 | |||
2ea9d1fccf | |||
6b74c8e486 | |||
20f819d708 | |||
cd1044fb2b | |||
31bf70e35c | |||
cfdec85cd9 | |||
4824cad580 | |||
61b65e9c9b | |||
4196772ae8 | |||
3a002bff7a | |||
74dfb7ca23 | |||
a821a2db3d | |||
1fc95d829f | |||
f5dc675537 | |||
daa9edc9be | |||
fd98403211 | |||
8e71ba12e5 | |||
f80e4f0046 | |||
af2740abc0 | |||
00fb44797a | |||
cc0c4c17f0 | |||
1a6d0ec71c | |||
c09c3246eb | |||
3d96fd6fd6 | |||
56039e30c7 | |||
38a4d96a90 | |||
e4e5d7781e | |||
e62b5e867d | |||
ab7379ae62 | |||
4ee8dfa8b3 | |||
80c8a7dcb0 | |||
8810d0cecd | |||
e5a738af6d | |||
ecc2ec724e | |||
79d4740eda | |||
309b6319a0 | |||
![]() |
fd7384a751 | ||
![]() |
62ef1c08af | ||
0d9e22d43c | |||
b1e0be0d25 | |||
ab5d52a6db | |||
5188c14718 | |||
263f56ba49 | |||
4c3efb4320 | |||
e07ac34b3f | |||
![]() |
3d5f5c2d9a | ||
38394e1a32 | |||
d0948dfb17 | |||
b54c6a20aa | |||
1b0da28038 | |||
951fae3578 | |||
4f3b562506 | |||
0c80a0acd8 | |||
d1cbfc81bb | |||
da46ed9116 | |||
46b32c9d7b | |||
12baea1b8e | |||
8ece0816d9 | |||
f0f44fd92f | |||
a5644f9a28 | |||
aaab3c8ad4 | |||
f0118e9aca | |||
5e5e198bbe | |||
0676963809 | |||
2a7a01b339 | |||
aa34706aac | |||
3f0c09f6dd | |||
fc872d738e | |||
a330b9b0ea | |||
631506d9c3 | |||
eba06fee49 | |||
c87f6242b9 | |||
33518f9da1 | |||
30d1d4579e | |||
6cad9c7964 | |||
d02d1129f7 | |||
6861ef62a6 | |||
cc268238ea | |||
ba22aa8797 | |||
e59cc3a814 | |||
d33801e2bf | |||
1c992cc647 | |||
0dfb6eddc0 | |||
0c44b03b09 | |||
df0616bcd0 | |||
171851a6c8 | |||
![]() |
5ff931149b | ||
12217714c7 | |||
86b37748a7 | |||
6e5877c189 | |||
69a43069e8 | |||
![]() |
57b4efc250 | ||
fc40356ed8 | |||
a8e6ee17cc | |||
669349bfe4 | |||
b95601fa1a | |||
237857cc26 | |||
ac88123e29 | |||
5c92c04518 | |||
![]() |
2fc6563a59 | ||
eaa63c7d68 | |||
fc2c22e90c | |||
9b92ce9dc0 | |||
060a50a5f7 | |||
074a8558b7 | |||
3eb9b4dfbc | |||
a6f951b464 | |||
e0315a5ef0 | |||
1a8a69d318 | |||
3c7a6718dd | |||
4d464a946a | |||
d779b15485 | |||
f44a34fc55 | |||
3b7bce45d2 | |||
9ef727d3d4 | |||
0634bb24ee | |||
0c317e23bf | |||
5d84d9b0d6 | |||
2f49908a5e | |||
baae87ce86 | |||
473a2c83ea | |||
a7db7f88b0 | |||
1d9c050188 | |||
a323ada701 | |||
![]() |
7fd11d9c7f | ||
3d877c8a0d | |||
a111a0f1e1 | |||
a1b21a3503 | |||
d442782dbe | |||
62eb190d4e | |||
fcb0090842 | |||
65e7219706 | |||
cc8fe1a1cb | |||
7f0163118b | |||
720e19a833 | |||
9dadd8bdb1 | |||
0b5cf91b89 | |||
1e23304fbc | |||
9a25a34e42 | |||
4b96517e20 | |||
f38f12cbbc | |||
810f33d434 | |||
![]() |
708fabe3d7 | ||
8095875dff | |||
4b7ed584a8 | |||
d5f3351f55 | |||
308a12ac64 | |||
3d9f0280ff | |||
![]() |
1425b356b8 | ||
c722993ef1 | |||
5b1ec08f04 | |||
2d7957727c | |||
![]() |
fbc884d2a8 | ||
![]() |
bd327e3bf3 | ||
![]() |
110eb23005 | ||
4296c1fe25 | |||
099120e54a | |||
![]() |
024386bb89 | ||
f4718d52f3 | |||
16b6d4aeb3 | |||
44b318bd22 | |||
853713336f | |||
91bd63a196 | |||
22f5c05cb3 | |||
17769489d9 | |||
b1b153b88c | |||
4412cbc6d1 | |||
c9c95201d0 | |||
0ad73bb965 | |||
b0e47ffdcf | |||
77794b1a7b | |||
![]() |
16fe767d00 | ||
e8102aea13 | |||
37ede15e63 | |||
![]() |
eed8c2e655 | ||
198a763944 | |||
eb4b79c556 | |||
9e2d80c49e | |||
74a44e816c | |||
8399375098 | |||
52a5f68562 | |||
3558f565f1 | |||
0539208f97 | |||
e2cd5c6748 | |||
9c82c00b32 | |||
676198f57f | |||
c6ce2be496 | |||
b60f3fe6ad | |||
bfb4dcaa1a | |||
f3d5114c41 | |||
ce115a2786 | |||
69a720abb0 | |||
478eb3a0e6 | |||
c01e33d6ca | |||
163f6a17e4 | |||
08731d70bf | |||
c5a4159bee | |||
![]() |
db622b5a0b | ||
cdd4354c81 | |||
68ca12a7fc | |||
9a8669ac81 | |||
1f270cf99b | |||
b82de02e7c | |||
994da7077d | |||
83c8f996f1 | |||
5fe1624b0e | |||
8016d8a4bd | |||
296b261299 | |||
d8ef52ca47 | |||
3e7ee3f3bc | |||
ae94e36cfb | |||
9a53599180 | |||
7b16ddeb5a | |||
e9334c5df8 | |||
5c5ec837b3 | |||
96bdd65e74 | |||
db45292d8e | |||
b7458f909c | |||
![]() |
4e57b6ce77 | ||
6cf148227b | |||
2492d9852b | |||
e0e737b72b | |||
e3724d29ff | |||
802bc8e233 | |||
a28fd0ceb5 | |||
6d12bc9e91 | |||
a9d1b3d7e3 | |||
a32f447c54 | |||
c63a6d3057 | |||
0f583d9d60 | |||
07e2bd443e | |||
3221766820 | |||
a003547a37 | |||
3ea6dbfe73 | |||
98ad294d17 | |||
96834a7bac | |||
3b4b2bcb13 | |||
c20b99b70c | |||
a8331d8c9d | |||
2bc0e8d304 | |||
891268aa82 | |||
8e1b16534d | |||
2fd8fa8f84 | |||
42878ffc26 | |||
38eed4ada3 | |||
296d734344 | |||
185d9627b3 | |||
f431be224f | |||
845e2ed3a2 | |||
e99cb91530 | |||
d30f701e84 | |||
35dc4ba9e2 | |||
6963703801 | |||
2b3f7c6481 | |||
09710d5f2a | |||
26afa23b3b | |||
c2751f8a11 | |||
654bc35bc8 | |||
![]() |
0a86ab6639 | ||
![]() |
d2a01bb7cb | ||
0310638e94 | |||
ab032fba39 | |||
42368f2ef4 | |||
1640fbe7c6 | |||
7c55a7ccca | |||
b4a4004fb1 | |||
a2d32960b4 | |||
![]() |
c63d64a2ce | ||
416ef3b6b2 | |||
0efe581a5b | |||
29b9187b32 | |||
17eb8a9ceb | |||
dc7f88fd15 | |||
bba757ef81 | |||
a6504aa64b | |||
99fff90eab | |||
c486da0238 | |||
cfce5a32a7 | |||
6787cc13d4 | |||
bdc537e0a7 | |||
ac8beb4fda | |||
ff6098345a | |||
7f726b48ac | |||
![]() |
58be9708bf | ||
d8abac7357 | |||
e96623c19b | |||
b38491b407 | |||
5b87862ddc | |||
![]() |
8f05a547d5 | ||
984cd552f0 | |||
a7c65ef4cb | |||
75aa5ecbda | |||
fe43c17083 | |||
024a4da6b3 | |||
535c9308ef | |||
![]() |
50f0103059 | ||
9c279723da | |||
5179b8236b | |||
048c769774 | |||
![]() |
b226236b01 | ||
![]() |
d724d3ae58 | ||
![]() |
33d102e5b2 | ||
48f369d63a | |||
30acc5f9cd | |||
2547c3c70c | |||
![]() |
179100c021 | ||
ce95856f2d | |||
74b9c351b9 | |||
65e4c91bec | |||
9de3ed5c82 | |||
9a9a46df46 | |||
![]() |
e2d8b6dc06 | ||
f807e6effe | |||
f991f5ad51 | |||
f6d5d01715 | |||
b9799dfb8a | |||
aca083fbf3 | |||
75a9830d84 | |||
c196ca3740 | |||
0178e694b7 | |||
ed971a19fa | |||
![]() |
2882cbe685 | ||
2e3edb6995 | |||
298e9c7ebd | |||
01333cb47f | |||
c342b3cede | |||
4d9ddb4a77 | |||
7a943428de | |||
14f2d37ad1 | |||
b0c428c063 | |||
6f190f7f43 | |||
575ade22d4 | |||
![]() |
c6ed879f9a | ||
5fc488559c | |||
b719fa267a | |||
0c3d2461b7 | |||
![]() |
502f3debf9 | ||
![]() |
e16ff4132e | ||
2bd9cbe405 | |||
3cef9ebaf8 | |||
b67ccc333a | |||
4a03c5acf9 | |||
8d2da45f98 | |||
3a6813ea65 | |||
![]() |
56d1d19c88 | ||
604c33e694 | |||
b9c37608a9 | |||
7cb6fb0183 | |||
03ec505fa5 | |||
0385e2f1f9 | |||
5b8a3ccd37 | |||
97dbcf9746 | |||
8adc7cad00 | |||
31a2feceb8 | |||
f5191b8760 | |||
65a1fcdaf7 | |||
67a4908bfc | |||
3adef61942 | |||
41b8e0316a | |||
28e068b55c | |||
8898251584 | |||
11dd7941af | |||
67516d0dae | |||
8ed8fa80f4 | |||
08dbd3bc7f | |||
38d8b088e7 | |||
c2cdbe1e88 | |||
df3316cbe9 | |||
972a697f82 | |||
feea852b10 | |||
9364e17936 | |||
f438344cf2 | |||
6d9268c2c7 | |||
16afff2ddc | |||
42717596d0 | |||
f8f8edbe1a | |||
![]() |
75ccfa63d0 | ||
6a3c3c77b3 | |||
9ec94c3882 | |||
d813ee55fd | |||
5a06996722 | |||
67962824e9 | |||
37d298391e | |||
2890c11cd7 | |||
56cfd60d43 | |||
![]() |
721a9bc35c | ||
![]() |
3e98331a09 | ||
47de3659f0 | |||
6f56bd4083 | |||
767939231d | |||
058ce64be0 | |||
14a2706886 | |||
fa3bd17ae8 | |||
1e3f4c70ab | |||
c2c17cc076 | |||
6296cb5129 | |||
eccc9d8eba | |||
3035235def | |||
58d86527ae | |||
8c25889bb6 | |||
775f0d76d5 | |||
7e045094c1 | |||
f401741544 | |||
76acc5e999 | |||
adcce654e3 | |||
![]() |
549f68149d | ||
b90e892a17 | |||
5da02548e9 | |||
a0c2d6bf85 | |||
bec057a453 | |||
03d39a04a3 | |||
314b27850c | |||
95cce6f6b0 | |||
98fc998c70 | |||
fc58368263 | |||
2cb76a6c8d | |||
029b0df81a | |||
41b3feea85 | |||
![]() |
ccd2e89d37 | ||
ef2b8c1c3a | |||
933fed2a17 | |||
bf80dc2bd4 | |||
213cd39b6d | |||
a3eb4027c2 | |||
b32cb0266c | |||
e88807e71c | |||
b9f1b64801 | |||
98eb111568 | |||
2b191cd2b4 | |||
8eb40d2063 | |||
dc5ae10692 | |||
cb3c233ed3 | |||
65194f47b0 | |||
ad324316ce | |||
089e701191 | |||
4e6c0669e3 | |||
0f9057390d | |||
7484f274dc | |||
cc6db8921b | |||
47d961a4b1 | |||
![]() |
e96a809a68 | ||
25196f8a36 | |||
2839fe9a4d | |||
![]() |
db6287873c | ||
48ff456a4b | |||
48d2f536e1 | |||
05715eaea1 | |||
80859a6cb2 | |||
66dc4d4efb | |||
45f30543db | |||
ad245a25e2 | |||
c71013082d | |||
a9b94e5f81 | |||
31b2b84b3c | |||
1440074cac | |||
c9574412c7 | |||
![]() |
8f0e06a0ca | ||
![]() |
e28f07b5c8 | ||
3acbe2d1e9 | |||
![]() |
b0dc3aff2c | ||
![]() |
d62f443f2d | ||
![]() |
f1ae6952a8 | ||
![]() |
d6e7241237 | ||
4fa3eadce9 | |||
b1908f2e0b | |||
678b76d99a | |||
405bff7fd8 | |||
bc8dcf6db7 | |||
180163c4e4 | |||
f31c3f8114 | |||
f84f9eb8ed | |||
3e25561d51 | |||
927cb5bfac | |||
f076493dbb | |||
3f305b9ab3 | |||
8826db8f03 | |||
8e4c3c6a24 | |||
0ba061c3bc | |||
232b388455 | |||
ad3378215c | |||
abd02da4bd | |||
5a98e38275 | |||
078aa677b6 | |||
a8ee279aa9 | |||
94495049a8 | |||
95236d8a75 | |||
6da5ee8368 | |||
![]() |
7dc4ac71e8 | ||
9c09e5ba24 | |||
e22fd7247a | |||
fb84408aa5 | |||
0a57d6d076 | |||
24fea2bdc4 | |||
babd027fae | |||
cf5d582b77 | |||
c31b89e76e | |||
3a88f151c4 | |||
402845744f | |||
25c357124d | |||
da66c0519f | |||
a63982a65b | |||
4a70561bbd | |||
e0c8d0913b | |||
d1418dd151 | |||
567aad9dcd | |||
9a659f2573 | |||
02de1bff1e | |||
7d3db7a3ae | |||
4b5195a9d7 | |||
21ae323dbf | |||
ae43872ad5 | |||
d0a70adf8f | |||
af17676005 | |||
132576ebb1 | |||
8fad71799f | |||
17a19069db | |||
cd4a9c488f | |||
![]() |
9bc678969a | ||
359b6baf32 | |||
b1d915d027 | |||
88ab34488b | |||
![]() |
869a46df29 | ||
2d472b70e5 | |||
a0957ceab2 | |||
48014fbf14 | |||
77db370cb6 | |||
05a1770ab0 | |||
ee9688da99 | |||
d1944dee86 | |||
5cae213750 | |||
b4a2096415 | |||
4fd3d96f46 | |||
fbca6aeb7c | |||
4a3bcfa102 | |||
d683ea4862 | |||
2451d7d57e | |||
6f1ad5f5e7 | |||
3c62e539af | |||
484a914647 | |||
![]() |
b3525c3487 | ||
4aa9888854 | |||
07cacb6d14 | |||
![]() |
c4f7f59c65 | ||
5f2317fa9b | |||
c65b022e62 | |||
a99639792b | |||
7163db99c4 | |||
4aac251b42 | |||
e7a69b438f | |||
0329145712 | |||
0d0a45b89d | |||
883dbfb72f | |||
20846596b5 | |||
043555c78f | |||
![]() |
b6eb7dae59 | ||
cda3334586 | |||
b2143da253 | |||
e03810693c | |||
5e47056e8d | |||
1c264ebdc0 | |||
2e77a8f974 | |||
0b05e0b97e | |||
![]() |
a4f970e86b | ||
![]() |
811371a6bd | ||
![]() |
1db3e26c74 | ||
8315e97754 | |||
881c566032 | |||
749636bdb9 | |||
ceed37fc5c | |||
69a4d113e8 | |||
3f2d5dfc0d | |||
32da64c17e | |||
a3827d4b29 | |||
![]() |
a45976957e | ||
92c89d7b87 | |||
502d16e667 | |||
4f96190122 | |||
eb40b231f9 | |||
bc9c9631a4 | |||
e15320568a | |||
3039b215ba | |||
d55a64a4fa | |||
2c19d2eb2e | |||
c0a9ec222f | |||
f3a475a767 | |||
![]() |
8b7cd1ed2a | ||
63d2980efa | |||
f2455c7939 | |||
9743f76582 | |||
db918ae9a4 | |||
9439ac41eb | |||
aa1e8bb9ab | |||
aa46a67634 | |||
a410cea291 | |||
30f9ebb644 | |||
ee292a1d66 | |||
982aea88e0 | |||
87a3bf3356 | |||
3214028ae8 | |||
5dd8551021 | |||
d197e272bb | |||
aaa5a80763 | |||
0de0950ad5 | |||
51a7e4b488 | |||
be799749dc | |||
46c54b12b0 | |||
a5beca7ba0 | |||
67c42e7f03 | |||
8f344b530a | |||
![]() |
f8c21937d2 | ||
1a09024eac | |||
9db15f502c | |||
8306f89c37 | |||
434521a9e2 | |||
50869b408b | |||
e5c7f37223 | |||
6d1fbd249b | |||
951e43bee8 | |||
7b7c78c4dc | |||
1d18c0682f | |||
384a02a214 | |||
2aff04917f | |||
fd5e5dac89 | |||
120a17a45a | |||
e2f4c4db8d | |||
![]() |
f49a736ff4 | ||
7cd6bda206 | |||
792a481bee | |||
![]() |
81ec3dce65 | ||
![]() |
181d577d7d | ||
![]() |
f16033c0f5 | ||
![]() |
77ae30517f | ||
![]() |
236643606e | ||
![]() |
52af51708f | ||
![]() |
c9f485195b | ||
8551e89068 | |||
8b04308953 | |||
74db0f3d5f | |||
eb470bfbfe | |||
99b82116ef | |||
![]() |
fcf06d2ad7 | ||
![]() |
013d0631e6 | ||
6aaae44473 | |||
d8a9bcea6c | |||
c14ed182f5 | |||
![]() |
1ec93507e1 | ||
![]() |
e06399c223 | ||
8dd3387eb7 | |||
2d2baeaf04 | |||
e4f71e5ef3 | |||
2e9e2715ef | |||
7bb8eeb3a8 | |||
5d31252c76 | |||
f208713b02 | |||
8bd28ef16c | |||
11b0824d89 | |||
a776385b26 | |||
20bb859d9b | |||
931ae424b9 | |||
9fbf7f1180 | |||
![]() |
684b95804e | ||
bb7e3c2b56 | |||
228f7f1c85 | |||
7a5e663843 | |||
7455bb85cc | |||
5f1adfc508 | |||
0d43ff43a4 | |||
eae36be372 | |||
a3e122b9ae | |||
fc8bcd26c0 | |||
4de704a6df | |||
b84255f590 | |||
edcbf741df | |||
e513687288 | |||
f60cffad38 | |||
190334b47d | |||
e40b0d52cf | |||
fc848e9440 | |||
d5550c7b2c | |||
d889762590 | |||
c8d658c5ed | |||
328dfab423 | |||
![]() |
f87029f7b1 | ||
![]() |
d00de988c3 | ||
d88b821d28 | |||
![]() |
850b887339 | ||
![]() |
7cf3e713f7 | ||
c1d461bcbc | |||
8333b681a7 | |||
53261df6f0 | |||
0f530b0b03 | |||
f2b9bbd194 | |||
d5f5788b10 | |||
1d86d61782 | |||
43a582a2ab | |||
25a283acce | |||
11183ebc3c | |||
e994b72812 | |||
521fab080b | |||
b51d6d5068 | |||
744369c114 | |||
22184f3aee | |||
5eab5713c0 | |||
![]() |
0ebcc711fc | ||
b5f3f8ef1d | |||
9eb4cb956b | |||
432ad4c632 | |||
9c962b2e2b | |||
aa1ae1d3c8 | |||
d6f5b02940 | |||
e4289f2360 | |||
e7f4aa8f0c | |||
81b55d7988 | |||
a824c076b7 | |||
068d2b0861 | |||
e49fef45ce | |||
3ce6c5adfc | |||
a818a0f427 | |||
9c2b5900c0 | |||
a56f53ad56 | |||
277fa2f441 | |||
5a0b4e97e6 | |||
e6a9b22384 | |||
ee3f71d747 | |||
992d51bbcf | |||
e5688f67aa | |||
5dbd6968a6 | |||
f699dbba86 | |||
0ef96cd392 | |||
dc5b1d6c75 | |||
ff82bb5e3a | |||
0cb9926cd9 | |||
e26cc6aee3 | |||
85a0115c44 | |||
27fea7a3a5 | |||
f6a20fca5e | |||
637fe6f5ff | |||
933d56d9e9 | |||
f6baba695c | |||
![]() |
336082acba | ||
1cdf8b19e5 | |||
be699936af | |||
79ff65d07b | |||
4537eb0c3b | |||
![]() |
351c00d29a | ||
a567bef5cc | |||
ad35453cd1 | |||
5387d33e5f | |||
69c07adb51 | |||
59c3194f8e | |||
11c6d4e88e | |||
f688e3cc31 | |||
999f6526b1 | |||
![]() |
65dcb5ebd3 | ||
![]() |
9c6dff70c8 | ||
![]() |
542c03fed5 | ||
![]() |
633c8fc3c8 | ||
8bec875586 | |||
![]() |
1fb0247497 | ||
253e4e7ed2 | |||
eb1ede5693 | |||
1de051a7a9 | |||
e81d7bfcc9 | |||
5c80543c43 | |||
3ecdfd0938 | |||
00ba51d37b | |||
a250d3d1b7 | |||
d120a083da | |||
b073f58a8e | |||
1264142f78 | |||
d34c4089f1 | |||
9a67f9173b | |||
aab9047f9d | |||
42853bacc9 | |||
ce5428b294 | |||
59681a7ccd | |||
3d5085375f | |||
ca28f376f7 | |||
4c1393c202 | |||
eb4155cc1e | |||
2f7171622d | |||
ca37654b63 | |||
0c6dc7c59e | |||
2202259e9c | |||
dc73c71b3b | |||
7e54f5c218 | |||
0d223f6aca | |||
92f2b77e78 | |||
ae1f8315f7 | |||
3d132ead50 | |||
41ee5382f6 | |||
762d3a48e8 | |||
![]() |
49858bf526 | ||
8466fd4bd1 | |||
4edde244da | |||
2670032038 | |||
![]() |
922d53a791 | ||
84fde382e4 | |||
![]() |
49bc640b76 | ||
![]() |
7c9e128bbf | ||
60a6fbf5b5 | |||
ba28c10199 | |||
9b9fda2122 | |||
883326040e | |||
05a77bb0d8 | |||
4cd409ca98 | |||
fb524d1675 | |||
5aa81594e6 | |||
![]() |
66010b6deb | ||
9c3adb789a | |||
ecafa4c27c | |||
3656e66ac2 | |||
9b25fafbec | |||
ebb49ddd83 | |||
8621fdb10d | |||
35f34a3cf8 | |||
218bcff32d | |||
0f94c99ee7 | |||
a8ec7845e0 | |||
af3aaf8034 | |||
e26c89cd76 | |||
e74880a659 | |||
0f33f0de00 | |||
573b78b351 | |||
![]() |
eddffdd398 | ||
4a93c4bf1d | |||
2499768e07 | |||
400ea40dca | |||
62334c6ee4 | |||
f4f89a76a8 | |||
87e9451d66 | |||
72d25fa41d | |||
bcb9379c6d | |||
9ae98f305a | |||
be8270bc76 | |||
87e5c4230f | |||
ee1d5fb9e4 | |||
08b4b657b6 | |||
4eb4c90cf6 | |||
ac9ddf54a0 | |||
ac40d40cb7 | |||
5596f79821 | |||
354db59fb1 | |||
6cc9ba94b7 | |||
d7c802c25f | |||
b5f2c77658 | |||
9394d455af | |||
5adcf6c85e | |||
1013084038 | |||
9a0e1950ea | |||
1f6c2507f8 | |||
c4e4924096 | |||
![]() |
0e0977f3e6 | ||
810e225c26 | |||
![]() |
9ec77d709c | ||
4a5cd4e6c7 | |||
fced604acf | |||
4def6e8072 | |||
62c73db734 | |||
2aa49107a2 | |||
17757eabc7 | |||
9450057b43 | |||
31bcab0ecb | |||
c772461741 | |||
a264dff4fa | |||
29d9bb89ce | |||
3c6c15d676 | |||
c55afdf30b | |||
7bd614d431 | |||
d7c6442118 | |||
d4bdf21929 | |||
540bfbbb27 | |||
e74420124f | |||
f99beb730a | |||
87d9d33c00 | |||
27424b758a | |||
fc288d3970 | |||
c9f54cd644 | |||
037f789111 | |||
21e72496a6 | |||
df4d6c22cf | |||
854af0cd09 | |||
39df927b4a | |||
4c66021ccc | |||
8b5292a60e | |||
2e99295d5e | |||
e6dfe570cc | |||
555e7c2091 | |||
da130d751f | |||
587efa9949 | |||
af1341322f | |||
387b34f0c2 | |||
1466f480c4 | |||
0ce6ed4753 | |||
3ea90de9e6 | |||
e8fd2d8469 | |||
6f305577b3 | |||
24839fdefa | |||
556384ca1d | |||
83c274ccfc | |||
77155ae1c0 | |||
e2e4c1daaa | |||
3e12488b4e | |||
![]() |
08d2428632 | ||
082b063f2a | |||
ffafe494f6 | |||
9d25418a52 | |||
4039e94422 | |||
23bbc0d748 | |||
6073b6b874 | |||
ab97add5fa | |||
664eb19369 | |||
9c41767d57 | |||
4d5e8e5477 | |||
c01afe9562 | |||
c330c7a5da | |||
1909fd2781 | |||
6bf51ab03a | |||
ba49345705 | |||
2631b44e71 | |||
19bcfba56f | |||
2fc77071b5 | |||
c671a26637 | |||
378022c797 | |||
1243cb803e | |||
cea51c1bb5 | |||
c0016d85b2 | |||
59de9ceda0 | |||
97f2210157 | |||
![]() |
d4e1458db3 | ||
0c33e84020 | |||
03df72ee4e | |||
75b8c4fc18 | |||
484af996aa | |||
8c44793228 | |||
315210c22b | |||
93f2ebe7dd | |||
8ed4638960 | |||
9b2879f8b3 | |||
83c99ccb21 | |||
797a1356ca | |||
6e72e3fdb2 | |||
d3999683ff | |||
6e86cf0daa | |||
2eeb79805c | |||
1ba20947cc | |||
7d1d9e6015 | |||
4d46fac65d | |||
c594cfbe50 | |||
bbd787275f | |||
1d2dfc5e9e | |||
a446c53f16 | |||
d3a1e9cbb9 | |||
b030ec8760 | |||
4fd0a69d7b | |||
![]() |
07846b31f3 | ||
3c4947cdaa | |||
9ef400ddf7 | |||
4a1b0ea902 | |||
067d0d4466 | |||
fb3a0a34b4 | |||
a6214ce7ac | |||
511dfb7743 | |||
ef228d92f2 | |||
![]() |
db4d5d1583 | ||
dcb520a7af | |||
1ff853a3f0 | |||
00018bfaa2 | |||
dd7250efb1 | |||
![]() |
cee6af0056 | ||
![]() |
dd161ff7a4 | ||
4a674d08dd | |||
24c30e001f | |||
643da14a4e | |||
![]() |
acd7a648b1 | ||
a2c2f6a39e | |||
7a028330d2 | |||
![]() |
8d4244691a | ||
bc290b47cd | |||
e006e66084 | |||
4682a0882f | |||
5058c4b144 | |||
0ee95e83ea | |||
3e5e204c81 | |||
e67cd1f9a8 | |||
6d61cf4e80 | |||
7ef3a1a6e6 | |||
610ec34c1f | |||
aeb2c2afaf | |||
e253f9f66d | |||
a1598d6835 | |||
ead2c71a90 | |||
ead9ed7e16 | |||
98d4872d7f | |||
![]() |
c46e58817c | ||
ad976c0dd7 | |||
51380b9346 | |||
d84b4becd3 | |||
945dfd200b | |||
03a7747aa6 | |||
300239b01f | |||
![]() |
31bfa17a1f | ||
![]() |
e7b1be52e0 | ||
![]() |
f5066d43ae | ||
![]() |
4e56e738a8 | ||
d67f9820b8 | |||
5d38b13e61 | |||
d350976ba0 | |||
827e9ccb29 | |||
6cc83f9079 | |||
e25238e146 | |||
d40d5e8d0f | |||
5ac4e6c911 | |||
7aab508e32 | |||
![]() |
51727fe86f | ||
3d5d8b7f71 | |||
f22331ad21 | |||
2d3a62fe16 | |||
f634010c6e | |||
8f63dccaa9 | |||
ad370868a2 | |||
94b2d83421 | |||
56dba4df3c | |||
d356edf420 | |||
cf1a0ca612 | |||
612ec0ecdf | |||
694fe9f77b | |||
5f350a4acd | |||
4822153b85 | |||
6bb28a1a52 | |||
3a038f8a60 | |||
d2336237cf | |||
366abae3e7 | |||
5c27391b0f | |||
cc3ec1fc6f | |||
4b35d6950d | |||
b7b3c4c40c | |||
b40ac9684c | |||
87a0770bb9 | |||
8344ef7394 | |||
![]() |
7de3caa05d | ||
![]() |
6bbc3b5610 | ||
b0aaf6ff4a | |||
1c790555a0 | |||
64cd927519 | |||
86d87fcbdb | |||
a43f3c761e | |||
e0ce1c45f8 | |||
3b5224b57c | |||
2ebcb7fab3 | |||
![]() |
19c793af35 | ||
![]() |
309ea31485 | ||
![]() |
913b6b9ec1 | ||
3b745f3455 | |||
2ba72d847b | |||
ceaa787e42 | |||
c1909770e7 | |||
47451af027 | |||
6d9de230df | |||
fa96f7381c | |||
8c072cdc93 | |||
127baac44d | |||
59870796ea | |||
4046f61b39 | |||
4e1e057ced | |||
8bccc7d861 | |||
9cf40eee4b | |||
fab14f7854 | |||
976c91cd77 | |||
def1c0c538 | |||
3a8a7d93f9 | |||
923b28aab8 | |||
eb1755be35 | |||
a58be397e2 | |||
![]() |
f8d19ec5a3 | ||
![]() |
c7e25a25b0 | ||
f92e3b39f1 | |||
8530e48f86 | |||
b96462519f | |||
1897df891c | |||
6e4d2fa914 | |||
![]() |
4abb8a14a2 | ||
![]() |
be3eef19c0 | ||
![]() |
c5456819ee | ||
![]() |
ae21729557 | ||
![]() |
e4278b72bb | ||
9ed63ebb45 | |||
fb87578698 | |||
c4ce1b70e3 | |||
3dc44f8c89 | |||
52af3b20d4 | |||
8ecaa2d624 | |||
![]() |
b9123b806f | ||
![]() |
5bfdaaa800 | ||
eccb0b222e | |||
36b02c3815 | |||
472fc0c558 | |||
6ae03375b6 | |||
3eaf345352 | |||
84a0e04296 | |||
568c453ff3 | |||
337343ecc9 | |||
d7ecd4a0f3 | |||
dbf1e7c07f | |||
![]() |
8aa365745a | ||
873801d25e | |||
f381c73a21 | |||
82c852f387 | |||
8711483632 | |||
3e16f3b3ef | |||
c655146b87 | |||
7fed213ba4 | |||
356073c13e | |||
2297db5c49 | |||
16dd382f06 | |||
c509a12fd8 | |||
daa26ac0f5 | |||
e5c2bfb341 | |||
d7df0dcccb | |||
7ee816e32f | |||
5bd38f3be8 | |||
33b4e21820 | |||
93bf17d952 | |||
054957659f | |||
935136f844 | |||
081255671a | |||
3f484c502f | |||
0f08453ea9 | |||
3b75ca2f60 | |||
374cb32d4a | |||
2580869901 | |||
8c93f8c6cc | |||
bacfd55a0e | |||
4544761a2d | |||
59f53f5802 | |||
![]() |
37b93b5df8 | ||
63f9cb5a0b | |||
298d8a7b4a | |||
d2726e4626 | |||
b2cb99d3fd | |||
8146c996eb | |||
5d7f4f2cab | |||
fe9e7036b0 | |||
65b8b38787 | |||
c3ecfdf40b | |||
2252bc6a55 | |||
7509a74116 | |||
c7954d5904 | |||
578c2f117a | |||
389807624d | |||
0eb394af74 | |||
5035fbdd23 | |||
a0e2373b7e | |||
89ab3cdc56 | |||
a67c7693a7 | |||
8407c0b64e | |||
d4bd9f6a27 | |||
7bdba5f1e0 | |||
0835996cc9 | |||
ee2d39b3a7 | |||
663bd38ed6 | |||
6d97a5f93c | |||
7fed4c06c2 | |||
17906794f5 | |||
![]() |
236ef11a07 | ||
d0968a9c52 | |||
8f68cff01b | |||
dd483215e5 | |||
b6702aa604 | |||
884b167f74 | |||
e0a8f9b78e | |||
bb735bd518 | |||
3017585ebf | |||
859c062a2a | |||
ba6d59a85a | |||
42f430e9a2 | |||
83fd242546 | |||
7bc6a04767 | |||
1d88aeb95f | |||
ea0c86e961 | |||
27388f7f46 | |||
![]() |
33409f9f1c | ||
22de21bef1 | |||
7a4af7a01b | |||
8538c69921 | |||
9af791f873 | |||
![]() |
7e06fc11b7 | ||
2564d152d6 | |||
263c5b33d6 | |||
390b9f1305 | |||
076079454f | |||
213d00607e | |||
79e74b1486 | |||
943b919fe8 | |||
cb267cec55 | |||
31f31496af | |||
42e13ea4bf | |||
ddc54a2a6b | |||
fbc36c77b0 | |||
79ae5f5014 | |||
a45108840e | |||
2d42187395 | |||
9df27e7f00 | |||
4f37b548bd | |||
8cfdad99a0 | |||
24ada9c960 | |||
f1501ac060 | |||
5e5285baf6 | |||
9a763d24f2 | |||
be7855591e | |||
379bd6d50c | |||
d8e3bcf770 | |||
7f77bd95d9 | |||
c2f9133b29 | |||
630d2b6497 | |||
f9d3632cde | |||
af51b0d8d8 | |||
19bff8eb51 | |||
2613a2552d | |||
3bb4597b2d | |||
45b637e1e7 | |||
e08180fdab | |||
2156841c8c | |||
256d36683b | |||
7ec2c5c10b | |||
46b35c6836 | |||
49fc4449e7 | |||
a0a572ce8b | |||
683c130b06 | |||
8c60050d30 | |||
7c24804d62 | |||
977c958242 | |||
3cbf20228e | |||
f410efbda0 | |||
![]() |
fc259d4c30 | ||
d4e46c13cc | |||
a5578351c3 | |||
cc98b40f87 | |||
9b298cf3db | |||
cff6eb6580 | |||
8c4ddd5dde | |||
e0241e0860 | |||
a5cd1799fc | |||
8eb189925e | |||
7306417ae4 | |||
![]() |
4045b3d7b6 | ||
bf5e9ef2df | |||
c6642f06ab | |||
82e7956f12 | |||
b3d0abd893 | |||
d7dd7403a8 | |||
541ba68991 | |||
a5571fd0e8 | |||
6ea1455ce3 | |||
b959f603da | |||
4ec1c8bc9c | |||
25b4e41875 | |||
3c8182409c | |||
29dc6fb1c1 | |||
34a61ceeaa | |||
![]() |
3b16530aa1 | ||
![]() |
301fac5ded | ||
![]() |
a6b5d5bfe8 | ||
![]() |
70720c42c2 | ||
91dbc28363 | |||
f6b7396610 | |||
a2bb3c4cad | |||
8617ab153e | |||
![]() |
39c070ed8f | ||
f19582ebf4 | |||
db7c4d7a1c | |||
bd9f94e917 | |||
22807d2075 | |||
![]() |
3b28c785d4 | ||
![]() |
3902bebf18 | ||
1842cef210 | |||
![]() |
3da84d8b08 | ||
62a0984d72 | |||
e1a1dc868b | |||
dbd9472ef5 | |||
ae3c8bc9f0 | |||
5c86f0369c | |||
28434dab0c | |||
9097c97767 | |||
9bee8e46a1 | |||
c87c12b2a4 | |||
789b1617f7 | |||
e20fe18706 | |||
f4c8b4eb3e | |||
f6564df351 | |||
cf58648409 | |||
d2222d5b2c | |||
8cc5483331 | |||
231eac160e | |||
1032f111d0 | |||
f527d6582b | |||
d73726dbbe | |||
0327a464ba | |||
![]() |
0602852860 | ||
27fb63381e | |||
4a8bd31825 | |||
d449deec21 | |||
![]() |
e3de755ae3 | ||
edcb2ad7b3 | |||
fe3a9fcce1 | |||
3f91e7d779 | |||
22a341d9d8 | |||
338fe9e2b5 | |||
8cdee3a6d4 | |||
![]() |
34d8ef8fa4 | ||
7b62203fc7 | |||
1f1dcf41d5 | |||
ef6d108b75 | |||
b33d38ebd9 | |||
8c3aee2faf | |||
36dd3f42bc | |||
1829232598 | |||
0ef8a6179d | |||
f379943734 | |||
24c543d4af | |||
115ff08fdb | |||
6c6f591f90 | |||
39c50d8f31 | |||
8e3a58578a | |||
c4d3d10401 | |||
beaf2baeff | |||
![]() |
ef3d76fbaa | ||
6be665926c | |||
6a7066c2c1 | |||
4da282a161 | |||
010ea688f1 | |||
04e89c5b06 | |||
801d7b4921 | |||
1f9d85f56a | |||
9416004092 | |||
136f0910ff | |||
20f53f6984 | |||
399ac1ff11 | |||
e55f4657f7 | |||
2146256563 | |||
626c844105 | |||
353376c783 | |||
![]() |
eb326c7b40 | ||
521d4190a0 | |||
b8960267dd | |||
![]() |
156e07232e | ||
d09695b4dd | |||
90c3147e05 | |||
c7ff99b100 | |||
c77597cd0e | |||
ffea47530d | |||
7add8163e4 | |||
b154b8c6f8 | |||
b217eb73f5 | |||
50bd8bb175 | |||
c305b88aac | |||
944122d49f | |||
62885637fb | |||
![]() |
e74838d0d0 | ||
5791835678 | |||
7bd3762b7c | |||
bea7d2e22d | |||
178f4fa71e | |||
6f8e65cd7a | |||
d5e4cab76c | |||
3a672fe6fb | |||
64a5fd7a1d | |||
3cb3167278 | |||
73dc8c24e4 | |||
f76f48be23 | |||
0df8c22c8a | |||
1c1efe3ac6 | |||
10c11bb897 | |||
![]() |
1d902a6367 | ||
94d2470c41 | |||
4b598739c5 | |||
b588c09eee | |||
3d71a05a1d | |||
![]() |
2ddb53de54 | ||
63ac1660c0 | |||
3c889fe2b0 | |||
06d9c2c223 | |||
c0c840cc31 | |||
59c972b40a | |||
88b2bbc649 | |||
b58e660828 | |||
f052fb5646 | |||
08d8eee006 | |||
08f88bba69 | |||
7b66397664 | |||
901a03725e | |||
c238728105 | |||
b8f1ae5c38 | |||
dfd7832a0e | |||
2b3367cdf8 | |||
0597902bde | |||
![]() |
1cb303242f | ||
21d633f83b | |||
![]() |
15186f4259 | ||
![]() |
5b4ab89663 | ||
76f9d83a19 | |||
![]() |
60481e4d99 | ||
f130d4f211 | |||
5bb2b4236d | |||
2d06b97d29 | |||
![]() |
6b8dde93b0 | ||
5dca3ee6a2 | |||
5ae26e410a | |||
![]() |
ea3b2e8736 | ||
5b2d9c0cbe | |||
e908ebc094 | |||
7f57899823 | |||
00f6e4c990 | |||
4ffe2fec16 | |||
548eabbaa1 | |||
638c0bd234 | |||
a61ee1dcae | |||
0e51defcf4 | |||
![]() |
7ca13eef7c | ||
57c5f2a503 | |||
72e20785e1 | |||
25fc5876d3 | |||
![]() |
073d2390f0 | ||
ad2948face | |||
4681987d92 | |||
![]() |
8ec35c05b2 | ||
fae45a43fa | |||
a5f972c018 | |||
887ccb8537 | |||
295d5c6ef5 | |||
45079b169d | |||
1763ffa0be | |||
5eaeb9bd0d | |||
0212c423bf | |||
0a4fdcbb5f | |||
6bca614fd8 | |||
bfd43222c3 | |||
0a2d61f45c | |||
65e6bcdd9f | |||
ccefcf46bf | |||
4837ea3ab6 | |||
8b06c524d2 | |||
![]() |
fd2519e0b6 | ||
471f27d66b | |||
908ac7dce2 | |||
769ae5c866 | |||
d793d18413 | |||
e8dc82311d | |||
6e487228a5 | |||
544bd0c353 | |||
1b863041c9 | |||
0f77933031 | |||
9c2e385509 | |||
ffaaa0bcbf | |||
76879e3702 | |||
9b12889a1a | |||
2d24ba0210 | |||
ce0d4ea41c | |||
d961adb866 | |||
d66b047ca3 | |||
ec09ded792 | |||
a8df292264 | |||
4d0f846b93 | |||
9d529407da | |||
d764448f73 | |||
08da699faa | |||
61c288cee5 | |||
ef431a8705 | |||
3c175caaa3 | |||
ddf956fb58 | |||
2600806c2e | |||
ecba8c1243 | |||
f531dff9b3 | |||
![]() |
721b705499 | ||
ca0b728529 | |||
34267a868a | |||
9789a6c6d9 | |||
8506f3d9fe | |||
ac45540a34 | |||
037e1ad140 | |||
2fb31f34af | |||
d86f80f42a | |||
216a215ba5 | |||
7935d3668a | |||
![]() |
1e1d1f15e8 | ||
13b6cec039 | |||
3a0df7d37b | |||
6883c47bb5 | |||
47396ea81e | |||
4a95c3466f |
@@ -205,6 +205,7 @@ ForEachMacros:
|
||||
- FOREACH_SCENE_COLLECTION_BEGIN
|
||||
- FOREACH_SCENE_OBJECT_BEGIN
|
||||
- FOREACH_SELECTED_BASE_BEGIN
|
||||
- FOREACH_SELECTED_BEZT_BEGIN
|
||||
- FOREACH_SELECTED_EDITABLE_OBJECT_BEGIN
|
||||
- FOREACH_SELECTED_OBJECT_BEGIN
|
||||
- FOREACH_TRANS_DATA_CONTAINER
|
||||
@@ -268,6 +269,7 @@ ForEachMacros:
|
||||
StatementMacros:
|
||||
- PyObject_HEAD
|
||||
- PyObject_VAR_HEAD
|
||||
- ccl_gpu_kernel_postfix
|
||||
|
||||
MacroBlockBegin: "^BSDF_CLOSURE_CLASS_BEGIN$"
|
||||
MacroBlockEnd: "^BSDF_CLOSURE_CLASS_END$"
|
||||
|
@@ -1,6 +1,8 @@
|
||||
# The warnings below are disabled because they are too pedantic and not worth fixing.
|
||||
# Some of them will be enabled as part of the Clang-Tidy task, see T78535.
|
||||
|
||||
# NOTE: No comments in the list below is allowed. Clang-tidy will ignore items after comments in the lists flag list.
|
||||
# This is because the comment is not a valid list item and it will stop parsing flags if a list item is a comment.
|
||||
Checks: >
|
||||
-*,
|
||||
readability-*,
|
||||
@@ -14,10 +16,9 @@ Checks: >
|
||||
-readability-make-member-function-const,
|
||||
-readability-suspicious-call-argument,
|
||||
-readability-redundant-member-init,
|
||||
|
||||
-readability-misleading-indentation,
|
||||
|
||||
-readability-use-anyofallof,
|
||||
-readability-identifier-length,
|
||||
|
||||
-readability-function-cognitive-complexity,
|
||||
|
||||
@@ -35,6 +36,8 @@ Checks: >
|
||||
|
||||
-bugprone-redundant-branch-condition,
|
||||
|
||||
-bugprone-suspicious-include,
|
||||
|
||||
modernize-*,
|
||||
-modernize-use-auto,
|
||||
-modernize-use-trailing-return-type,
|
||||
@@ -42,8 +45,6 @@ Checks: >
|
||||
-modernize-use-nodiscard,
|
||||
-modernize-loop-convert,
|
||||
-modernize-pass-by-value,
|
||||
# Cannot be enabled yet, because using raw string literals in tests breaks
|
||||
# the windows compiler currently.
|
||||
-modernize-raw-string-literal,
|
||||
-modernize-return-braced-init-list
|
||||
|
||||
|
@@ -34,6 +34,15 @@ indent_style = space
|
||||
indent_size = 2
|
||||
max_line_length = 99
|
||||
|
||||
# Tom's Obvious Minimal Language
|
||||
[*.toml]
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
max_line_length = 120
|
||||
|
||||
# reStructuredText
|
||||
[*.rst]
|
||||
charset = utf-8
|
||||
|
@@ -256,7 +256,7 @@ endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF)
|
||||
option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF)
|
||||
option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON)
|
||||
option(WITH_SYSTEM_FREETYPE "Use the freetype library provided by the operating system" OFF)
|
||||
else()
|
||||
# not an option for other OS's
|
||||
@@ -284,6 +284,7 @@ option(WITH_IMAGE_TIFF "Enable LibTIFF Support" ON)
|
||||
option(WITH_IMAGE_DDS "Enable DDS Image Support" ON)
|
||||
option(WITH_IMAGE_CINEON "Enable CINEON and DPX Image Support" ON)
|
||||
option(WITH_IMAGE_HDR "Enable HDR Image Support" ON)
|
||||
option(WITH_IMAGE_WEBP "Enable WebP Image Support" ON)
|
||||
|
||||
# Audio/Video format support
|
||||
option(WITH_CODEC_AVI "Enable Blenders own AVI file support (raw/jpeg)" ON)
|
||||
@@ -299,9 +300,12 @@ option(WITH_USD "Enable Universal Scene Description (USD) Suppor
|
||||
# 3D format support
|
||||
# Disable opencollada when we don't have precompiled libs
|
||||
option(WITH_OPENCOLLADA "Enable OpenCollada Support (http://www.opencollada.org)" ON)
|
||||
option(WITH_IO_WAVEFRONT_OBJ "Enable Wavefront-OBJ 3D file format support (*.obj)" ON)
|
||||
option(WITH_IO_STL "Enable STL 3D file format support (*.stl)" ON)
|
||||
option(WITH_IO_GPENCIL "Enable grease-pencil file format IO (*.svg, *.pdf)" ON)
|
||||
|
||||
# Sound output
|
||||
option(WITH_SDL "Enable SDL for sound and joystick support" ON)
|
||||
option(WITH_SDL "Enable SDL for sound" ON)
|
||||
option(WITH_OPENAL "Enable OpenAL Support (http://www.openal.org)" ON)
|
||||
if(APPLE)
|
||||
option(WITH_COREAUDIO "Enable CoreAudio for audio support on macOS" ON)
|
||||
@@ -408,6 +412,8 @@ option(WITH_CYCLES_DEBUG "Build Cycles with options useful for debug
|
||||
option(WITH_CYCLES_STANDALONE "Build Cycles standalone application" OFF)
|
||||
option(WITH_CYCLES_STANDALONE_GUI "Build Cycles standalone with GUI" OFF)
|
||||
|
||||
option(WITH_CYCLES_HYDRA_RENDER_DELEGATE "Build Cycles Hydra render delegate" OFF)
|
||||
|
||||
option(WITH_CYCLES_DEBUG_NAN "Build Cycles with additional asserts for detecting NaNs and invalid values" OFF)
|
||||
option(WITH_CYCLES_NATIVE_ONLY "Build Cycles with native kernel only (which fits current CPU, use for development only)" OFF)
|
||||
option(WITH_CYCLES_KERNEL_ASAN "Build Cycles kernels with address sanitizer when WITH_COMPILER_ASAN is on, even if it's very slow" OFF)
|
||||
@@ -436,14 +442,9 @@ endif()
|
||||
|
||||
# AMD HIP
|
||||
if(NOT APPLE)
|
||||
if(WIN32)
|
||||
option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" ON)
|
||||
else()
|
||||
option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" OFF)
|
||||
endif()
|
||||
|
||||
option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" ON)
|
||||
option(WITH_CYCLES_HIP_BINARIES "Build Cycles AMD HIP binaries" OFF)
|
||||
set(CYCLES_HIP_BINARIES_ARCH gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032 gfx1034 CACHE STRING "AMD HIP architectures to build binaries for")
|
||||
set(CYCLES_HIP_BINARIES_ARCH gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032 gfx1034 gfx1035 CACHE STRING "AMD HIP architectures to build binaries for")
|
||||
mark_as_advanced(WITH_CYCLES_DEVICE_HIP)
|
||||
mark_as_advanced(CYCLES_HIP_BINARIES_ARCH)
|
||||
endif()
|
||||
@@ -488,7 +489,7 @@ if((UNIX AND NOT APPLE) OR (CMAKE_GENERATOR MATCHES "^Visual Studio.+"))
|
||||
endif()
|
||||
|
||||
option(WITH_BOOST "Enable features depending on boost" ON)
|
||||
option(WITH_TBB "Enable features depending on TBB (OpenVDB, OpenImageDenoise, sculpt multithreading)" ON)
|
||||
option(WITH_TBB "Enable multithreading. TBB is also required for features such as Cycles, OpenVDB and USD" ON)
|
||||
|
||||
# TBB malloc is only supported on for windows currently
|
||||
if(WIN32)
|
||||
@@ -502,7 +503,7 @@ else()
|
||||
set(WITH_EXPERIMENTAL_FEATURES OFF)
|
||||
endif()
|
||||
|
||||
# Unit testsing
|
||||
# Unit testing
|
||||
option(WITH_GTESTS "Enable GTest unit testing" OFF)
|
||||
option(WITH_OPENGL_RENDER_TESTS "Enable OpenGL render related unit testing (Experimental)" OFF)
|
||||
option(WITH_OPENGL_DRAW_TESTS "Enable OpenGL UI drawing related unit testing (Experimental)" OFF)
|
||||
@@ -531,6 +532,19 @@ mark_as_advanced(
|
||||
WITH_GPU_SHADER_BUILDER
|
||||
)
|
||||
|
||||
# Metal
|
||||
|
||||
if (APPLE)
|
||||
option(WITH_METAL_BACKEND "Use Metal for graphics instead of (or as well as) OpenGL on macOS." OFF)
|
||||
mark_as_advanced(WITH_METAL_BACKEND)
|
||||
else()
|
||||
set(WITH_METAL_BACKEND OFF)
|
||||
endif()
|
||||
|
||||
if (WITH_METAL_BACKEND)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version" FORCE)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
option(WITH_GL_ANGLE "Link with the ANGLE library, an OpenGL ES 2.0 implementation based on Direct3D, instead of the system OpenGL library." OFF)
|
||||
mark_as_advanced(WITH_GL_ANGLE)
|
||||
@@ -729,9 +743,10 @@ endif()
|
||||
#-----------------------------------------------------------------------------
|
||||
# Check for conflicting/unsupported configurations
|
||||
|
||||
if(NOT WITH_BLENDER AND NOT WITH_CYCLES_STANDALONE)
|
||||
if(NOT WITH_BLENDER AND NOT WITH_CYCLES_STANDALONE AND NOT WITH_CYCLES_HYDRA_RENDER_DELEGATE)
|
||||
message(FATAL_ERROR
|
||||
"At least one of WITH_BLENDER or WITH_CYCLES_STANDALONE "
|
||||
"or WITH_CYCLES_HYDRA_RENDER_DELEGATE "
|
||||
"must be enabled, nothing to do!"
|
||||
)
|
||||
endif()
|
||||
@@ -753,6 +768,7 @@ endif()
|
||||
|
||||
set_and_warn_dependency(WITH_PYTHON WITH_CYCLES OFF)
|
||||
set_and_warn_dependency(WITH_PYTHON WITH_DRACO OFF)
|
||||
set_and_warn_dependency(WITH_PYTHON WITH_MOD_FLUID OFF)
|
||||
|
||||
if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL)
|
||||
message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling WITH_DRACO for now")
|
||||
@@ -769,7 +785,9 @@ set_and_warn_dependency(WITH_BOOST WITH_OPENCOLORIO OFF)
|
||||
set_and_warn_dependency(WITH_BOOST WITH_QUADRIFLOW OFF)
|
||||
set_and_warn_dependency(WITH_BOOST WITH_USD OFF)
|
||||
set_and_warn_dependency(WITH_BOOST WITH_ALEMBIC OFF)
|
||||
set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF)
|
||||
if(WITH_CYCLES)
|
||||
set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF)
|
||||
endif()
|
||||
set_and_warn_dependency(WITH_PUGIXML WITH_OPENIMAGEIO OFF)
|
||||
|
||||
if(WITH_BOOST AND NOT (WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
|
||||
@@ -794,6 +812,9 @@ set_and_warn_dependency(WITH_IMAGE_OPENEXR WITH_OPENCOLORIO OFF)
|
||||
# Haru needs `TIFFFaxBlackCodes` & `TIFFFaxWhiteCodes` symbols from TIFF.
|
||||
set_and_warn_dependency(WITH_IMAGE_TIFF WITH_HARU OFF)
|
||||
|
||||
# USD needs OpenSubDiv, since that is used by the Cycles Hydra render delegate.
|
||||
set_and_warn_dependency(WITH_OPENSUBDIV WITH_USD OFF)
|
||||
|
||||
# auto enable openimageio for cycles
|
||||
if(WITH_CYCLES)
|
||||
set(WITH_OPENIMAGEIO ON)
|
||||
@@ -920,7 +941,10 @@ set(PLATFORM_CFLAGS)
|
||||
set(C_WARNINGS)
|
||||
set(CXX_WARNINGS)
|
||||
|
||||
# for gcc -Wno-blah-blah
|
||||
# NOTE: These flags are intended for situations where where it's impractical to
|
||||
# suppress warnings by modifying the code or for code which is maintained externally.
|
||||
# For GCC this typically means adding `-Wno-*` arguments to negate warnings
|
||||
# that are useful in the general case.
|
||||
set(C_REMOVE_STRICT_FLAGS)
|
||||
set(CXX_REMOVE_STRICT_FLAGS)
|
||||
|
||||
@@ -1274,6 +1298,16 @@ else()
|
||||
list(APPEND GL_DEFINITIONS -DWITH_GL_PROFILE_CORE)
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configure Metal.
|
||||
if (WITH_METAL_BACKEND)
|
||||
add_definitions(-DWITH_METAL_BACKEND)
|
||||
|
||||
# No need to add frameworks here, all the ones we need for Metal and
|
||||
# Metal-OpenGL Interop are already being added by
|
||||
# build_files/cmake/platform/platform_apple.cmake
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configure OpenMP.
|
||||
if(WITH_OPENMP)
|
||||
@@ -1430,14 +1464,6 @@ if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING))
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configure Ceres
|
||||
|
||||
if(WITH_LIBMV)
|
||||
# We always have C++11 which includes unordered_map.
|
||||
set(CERES_DEFINES "-DCERES_STD_UNORDERED_MAP;-DCERES_USE_CXX_THREADS")
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Extra limits to number of jobs running in parallel for some kind os tasks.
|
||||
# Only supported by Ninja build system currently.
|
||||
@@ -1514,7 +1540,6 @@ endif()
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_CAST_ALIGN -Wcast-align)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_VLA -Werror=vla)
|
||||
@@ -1599,6 +1624,18 @@ if(CMAKE_COMPILER_IS_GNUCC)
|
||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_IMPLICIT_FALLTHROUGH -Wimplicit-fallthrough=5)
|
||||
endif()
|
||||
|
||||
|
||||
#----------------------
|
||||
# Suppress Strict Flags
|
||||
#
|
||||
# Exclude the following warnings from this list:
|
||||
# - `-Wno-address`:
|
||||
# This can give useful hints that point to bugs/misleading logic.
|
||||
# - `-Wno-strict-prototypes`:
|
||||
# No need to support older C-style prototypes.
|
||||
#
|
||||
# If code in `./extern/` needs to suppress these flags that can be done on a case-by-case basis.
|
||||
|
||||
# flags to undo strict flags
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
||||
@@ -1654,6 +1691,9 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS -Wunused-macros)
|
||||
# ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros)
|
||||
|
||||
#----------------------
|
||||
# Suppress Strict Flags
|
||||
|
||||
# flags to undo strict flags
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_VARIABLE -Wno-unused-variable)
|
||||
@@ -1668,6 +1708,8 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DUPLICATE_ENUM -Wno-duplicate-enum)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNDEF -Wno-undef)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_NORETURN -Wno-missing-noreturn)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_BUT_SET_VARIABLE -Wno-unused-but-set-variable)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations)
|
||||
|
||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_PRIVATE_FIELD -Wno-unused-private-field)
|
||||
@@ -1717,6 +1759,7 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
||||
"/wd4828" # The file contains a character that is illegal
|
||||
"/wd4996" # identifier was declared deprecated
|
||||
"/wd4661" # no suitable definition provided for explicit template instantiation request
|
||||
"/wd4848" # 'no_unique_address' is a vendor extension in C++17
|
||||
# errors:
|
||||
"/we4013" # 'function' undefined; assuming extern returning int
|
||||
"/we4133" # incompatible pointer types
|
||||
@@ -1882,14 +1925,13 @@ if(WITH_BLENDER)
|
||||
# source after intern and extern to gather all
|
||||
# internal and external library information first, for test linking
|
||||
add_subdirectory(source)
|
||||
elseif(WITH_CYCLES_STANDALONE)
|
||||
elseif(WITH_CYCLES_STANDALONE OR WITH_CYCLES_HYDRA_RENDER_DELEGATE)
|
||||
add_subdirectory(intern/glew-mx)
|
||||
add_subdirectory(intern/guardedalloc)
|
||||
add_subdirectory(intern/libc_compat)
|
||||
add_subdirectory(intern/sky)
|
||||
|
||||
add_subdirectory(intern/cycles)
|
||||
add_subdirectory(extern/clew)
|
||||
if(WITH_CYCLES_LOGGING)
|
||||
if(NOT WITH_SYSTEM_GFLAGS)
|
||||
add_subdirectory(extern/gflags)
|
||||
@@ -1946,7 +1988,7 @@ if(FIRST_RUN)
|
||||
|
||||
set(_msg " - ${_setting}")
|
||||
string(LENGTH "${_msg}" _len)
|
||||
while("32" GREATER "${_len}")
|
||||
while("36" GREATER "${_len}")
|
||||
string(APPEND _msg " ")
|
||||
math(EXPR _len "${_len} + 1")
|
||||
endwhile()
|
||||
|
30
GNUmakefile
30
GNUmakefile
@@ -32,7 +32,7 @@ Other Convenience Targets
|
||||
* config: Run cmake configuration tool to set build options.
|
||||
* deps: Build library dependencies (intended only for platform maintainers).
|
||||
|
||||
The existance of locally build dependencies overrides the pre-built dependencies from subversion.
|
||||
The existence of locally build dependencies overrides the pre-built dependencies from subversion.
|
||||
These must be manually removed from '../lib/' to go back to using the pre-compiled libraries.
|
||||
|
||||
Project Files
|
||||
@@ -120,7 +120,7 @@ Utilities
|
||||
Updates git and all submodules but not svn.
|
||||
|
||||
* format:
|
||||
Format source code using clang (uses PATHS if passed in). For example::
|
||||
Format source code using clang-format & autopep8 (uses PATHS if passed in). For example::
|
||||
|
||||
make format PATHS="source/blender/blenlib source/blender/blenkernel"
|
||||
|
||||
@@ -130,6 +130,7 @@ Environment Variables
|
||||
* BUILD_DIR: Override default build path.
|
||||
* PYTHON: Use this for the Python command (used for checking tools).
|
||||
* NPROCS: Number of processes to use building (auto-detect when omitted).
|
||||
* AUTOPEP8: Command used for Python code-formatting (used for the format target).
|
||||
|
||||
Documentation Targets
|
||||
Not associated with building Blender.
|
||||
@@ -206,6 +207,27 @@ ifeq ($(OS_NCASE),darwin)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Set the LIBDIR, an empty string when not found.
|
||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE}_${CPU})
|
||||
ifeq (, $(LIBDIR))
|
||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE}_centos7_${CPU})
|
||||
endif
|
||||
ifeq (, $(LIBDIR))
|
||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE})
|
||||
endif
|
||||
|
||||
# Use the autopep8 module in ../lib/ (which can be executed via Python directly).
|
||||
# Otherwise the "autopep8" command can be used.
|
||||
ifndef AUTOPEP8
|
||||
ifneq (, $(LIBDIR))
|
||||
AUTOPEP8:=$(wildcard $(LIBDIR)/python/lib/python3.10/site-packages/autopep8.py)
|
||||
endif
|
||||
ifeq (, $(AUTOPEP8))
|
||||
AUTOPEP8:=autopep8
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# additional targets for the build configuration
|
||||
|
||||
@@ -527,8 +549,8 @@ update_code: .FORCE
|
||||
@$(PYTHON) ./build_files/utils/make_update.py --no-libraries
|
||||
|
||||
format: .FORCE
|
||||
@PATH="../lib/${OS_NCASE}_${CPU}/llvm/bin/:../lib/${OS_NCASE}_centos7_${CPU}/llvm/bin/:../lib/${OS_NCASE}/llvm/bin/:$(PATH)" \
|
||||
$(PYTHON) source/tools/utils_maintenance/clang_format_paths.py $(PATHS)
|
||||
@PATH="${LIBDIR}/llvm/bin/:$(PATH)" $(PYTHON) source/tools/utils_maintenance/clang_format_paths.py $(PATHS)
|
||||
@$(PYTHON) source/tools/utils_maintenance/autopep8_format_paths.py --autopep8-command="$(AUTOPEP8)" $(PATHS)
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
@@ -29,8 +29,9 @@ cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
include(ExternalProject)
|
||||
include(cmake/check_software.cmake)
|
||||
include(cmake/options.cmake)
|
||||
include(cmake/versions.cmake)
|
||||
include(cmake/options.cmake)
|
||||
include(cmake/boost_build_options.cmake)
|
||||
include(cmake/download.cmake)
|
||||
|
||||
if(ENABLE_MINGW64)
|
||||
@@ -46,19 +47,16 @@ include(cmake/png.cmake)
|
||||
include(cmake/jpeg.cmake)
|
||||
include(cmake/blosc.cmake)
|
||||
include(cmake/pthreads.cmake)
|
||||
include(cmake/imath.cmake)
|
||||
include(cmake/openexr.cmake)
|
||||
include(cmake/brotli.cmake)
|
||||
include(cmake/freetype.cmake)
|
||||
include(cmake/freeglut.cmake)
|
||||
include(cmake/glew.cmake)
|
||||
include(cmake/alembic.cmake)
|
||||
include(cmake/glfw.cmake)
|
||||
include(cmake/clew.cmake)
|
||||
include(cmake/cuew.cmake)
|
||||
include(cmake/opensubdiv.cmake)
|
||||
include(cmake/sdl.cmake)
|
||||
include(cmake/opencollada.cmake)
|
||||
include(cmake/llvm.cmake)
|
||||
if(APPLE)
|
||||
include(cmake/openmp.cmake)
|
||||
endif()
|
||||
@@ -75,8 +73,8 @@ endif()
|
||||
include(cmake/osl.cmake)
|
||||
include(cmake/tbb.cmake)
|
||||
include(cmake/openvdb.cmake)
|
||||
include(cmake/nanovdb.cmake)
|
||||
include(cmake/python.cmake)
|
||||
include(cmake/llvm.cmake)
|
||||
option(USE_PIP_NUMPY "Install NumPy using pip wheel instead of building from source" OFF)
|
||||
if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
||||
set(USE_PIP_NUMPY ON)
|
||||
@@ -94,12 +92,15 @@ include(cmake/pugixml.cmake)
|
||||
include(cmake/ispc.cmake)
|
||||
include(cmake/openimagedenoise.cmake)
|
||||
include(cmake/embree.cmake)
|
||||
include(cmake/fmt.cmake)
|
||||
include(cmake/robinmap.cmake)
|
||||
if(NOT APPLE)
|
||||
include(cmake/xr_openxr.cmake)
|
||||
endif()
|
||||
|
||||
# OpenColorIO and dependencies.
|
||||
include(cmake/expat.cmake)
|
||||
include(cmake/pystring.cmake)
|
||||
include(cmake/yamlcpp.cmake)
|
||||
include(cmake/opencolorio.cmake)
|
||||
|
||||
@@ -107,8 +108,9 @@ if(BLENDER_PLATFORM_ARM)
|
||||
include(cmake/sse2neon.cmake)
|
||||
endif()
|
||||
|
||||
if(WITH_WEBP)
|
||||
include(cmake/webp.cmake)
|
||||
include(cmake/webp.cmake)
|
||||
if(NOT APPLE)
|
||||
include(cmake/level-zero.cmake)
|
||||
endif()
|
||||
|
||||
if(NOT WIN32 OR ENABLE_MINGW64)
|
||||
|
@@ -1,30 +1,16 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(ALEMBIC_EXTRA_ARGS
|
||||
-DBUILDSTATIC=ON
|
||||
-DLINKSTATIC=ON
|
||||
-DILMBASE_ROOT=${LIBDIR}/openexr
|
||||
-DALEMBIC_ILMBASE_INCLUDE_DIRECTORY=${LIBDIR}/openexr/include/OpenEXR
|
||||
-DALEMBIC_ILMBASE_HALF_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DALEMBIC_ILMBASE_IMATH_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DALEMBIC_ILMBASE_ILMTHREAD_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DALEMBIC_ILMBASE_IEX_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DALEMBIC_ILMBASE_IEXMATH_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}IexMath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DUSE_PYILMBASE=0
|
||||
-DUSE_PYALEMBIC=0
|
||||
-DUSE_ARNOLD=0
|
||||
-DUSE_MAYA=0
|
||||
-DUSE_PRMAN=0
|
||||
-DUSE_HDF5=Off
|
||||
-DUSE_STATIC_HDF5=Off
|
||||
-DUSE_TESTS=Off
|
||||
-DALEMBIC_NO_OPENGL=1
|
||||
-DImath_ROOT=${LIBDIR}/imath
|
||||
-DUSE_PYALEMBIC=OFF
|
||||
-DUSE_ARNOLD=OFF
|
||||
-DUSE_MAYA=OFF
|
||||
-DUSE_PRMAN=OFF
|
||||
-DUSE_HDF5=OFF
|
||||
-DUSE_TESTS=OFF
|
||||
-DUSE_BINARIES=ON
|
||||
-DALEMBIC_ILMBASE_LINK_STATIC=On
|
||||
-DALEMBIC_ILMBASE_LINK_STATIC=OFF
|
||||
-DALEMBIC_SHARED_LIBS=OFF
|
||||
-DGLUT_INCLUDE_DIR=""
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_alembic
|
||||
@@ -55,6 +41,5 @@ endif()
|
||||
|
||||
add_dependencies(
|
||||
external_alembic
|
||||
external_zlib
|
||||
external_openexr
|
||||
)
|
||||
|
@@ -24,7 +24,6 @@ ExternalProject_Add(external_blosc
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${BLOSC_HASH_TYPE}=${BLOSC_HASH}
|
||||
PREFIX ${BUILD_DIR}/blosc
|
||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/blosc/src/external_blosc < ${PATCH_DIR}/blosc.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blosc ${DEFAULT_CMAKE_FLAGS} ${BLOSC_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/blosc
|
||||
)
|
||||
|
@@ -1,22 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(BOOST_ADDRESS_MODEL 64)
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(BOOST_ARCHITECTURE arm)
|
||||
else()
|
||||
set(BOOST_ARCHITECTURE x86)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
if(MSVC_VERSION GREATER_EQUAL 1920) # 2019
|
||||
set(BOOST_TOOLSET toolset=msvc-14.2)
|
||||
set(BOOST_COMPILER_STRING -vc142)
|
||||
else() # 2017
|
||||
set(BOOST_TOOLSET toolset=msvc-14.1)
|
||||
set(BOOST_COMPILER_STRING -vc141)
|
||||
endif()
|
||||
|
||||
set(BOOST_CONFIGURE_COMMAND bootstrap.bat)
|
||||
set(BOOST_BUILD_COMMAND b2)
|
||||
set(BOOST_BUILD_OPTIONS runtime-link=shared )
|
||||
@@ -36,11 +20,6 @@ else()
|
||||
set(BOOST_BUILD_COMMAND ./b2)
|
||||
set(BOOST_BUILD_OPTIONS cxxflags=${PLATFORM_CXXFLAGS} --disable-icu boost.locale.icu=off)
|
||||
set(BOOST_PATCH_COMMAND echo .)
|
||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
set(BOOST_ADDRESS_MODEL 64)
|
||||
else()
|
||||
set(BOOST_ADDRESS_MODEL 32)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_BOOST_PYTHON)
|
||||
|
@@ -0,0 +1,30 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(BOOST_ADDRESS_MODEL 64)
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(BOOST_ARCHITECTURE arm)
|
||||
else()
|
||||
set(BOOST_ARCHITECTURE x86)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
if(MSVC_VERSION GREATER_EQUAL 1920) # 2019
|
||||
set(BOOST_TOOLSET toolset=msvc-14.2)
|
||||
set(BOOST_COMPILER_STRING -vc142)
|
||||
else() # 2017
|
||||
set(BOOST_TOOLSET toolset=msvc-14.1)
|
||||
set(BOOST_COMPILER_STRING -vc141)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(DEFAULT_BOOST_FLAGS
|
||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||
-DBoost_USE_MULTITHREADED=ON
|
||||
-DBoost_USE_STATIC_LIBS=ON
|
||||
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||
-DBOOST_ROOT=${LIBDIR}/boost
|
||||
-DBoost_NO_SYSTEM_PATHS=ON
|
||||
-DBoost_NO_BOOST_CMAKE=ON
|
||||
-DBoost_ADDITIONAL_VERSIONS=${BOOST_VERSION_SHORT}
|
||||
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
|
||||
)
|
@@ -1,12 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(CLEW_EXTRA_ARGS)
|
||||
|
||||
ExternalProject_Add(external_clew
|
||||
URL file://${PACKAGE_DIR}/${CLEW_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${CLEW_HASH_TYPE}=${CLEW_HASH}
|
||||
PREFIX ${BUILD_DIR}/clew
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/clew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CLEW_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/clew
|
||||
)
|
@@ -1,13 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(CUEW_EXTRA_ARGS)
|
||||
|
||||
ExternalProject_Add(external_cuew
|
||||
URL file://${PACKAGE_DIR}/${CUEW_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${CUEW_HASH_TYPE}=${CUEW_HASH}
|
||||
PREFIX ${BUILD_DIR}/cuew
|
||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/cuew/src/external_cuew < ${PATCH_DIR}/cuew.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/cuew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CUEW_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/cuew
|
||||
)
|
@@ -1,11 +1,16 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
## Update and uncomment this in the release branch
|
||||
# set(BLENDER_VERSION 3.1)
|
||||
|
||||
function(download_source dep)
|
||||
set(TARGET_FILE ${${dep}_FILE})
|
||||
set(TARGET_HASH_TYPE ${${dep}_HASH_TYPE})
|
||||
set(TARGET_HASH ${${dep}_HASH})
|
||||
if(PACKAGE_USE_UPSTREAM_SOURCES)
|
||||
set(TARGET_URI ${${dep}_URI})
|
||||
elseif(BLENDER_VERSION)
|
||||
set(TARGET_URI https://svn.blender.org/svnroot/bf-blender/tags/blender-${BLENDER_VERSION}-release/lib/packages/${TARGET_FILE})
|
||||
else()
|
||||
set(TARGET_URI https://svn.blender.org/svnroot/bf-blender/trunk/lib/packages/${TARGET_FILE})
|
||||
endif()
|
||||
@@ -34,10 +39,6 @@ download_source(FREETYPE)
|
||||
download_source(GLEW)
|
||||
download_source(FREEGLUT)
|
||||
download_source(ALEMBIC)
|
||||
download_source(GLFW)
|
||||
download_source(CLEW)
|
||||
download_source(GLFW)
|
||||
download_source(CUEW)
|
||||
download_source(OPENSUBDIV)
|
||||
download_source(SDL)
|
||||
download_source(OPENCOLLADA)
|
||||
@@ -66,9 +67,7 @@ download_source(FFMPEG)
|
||||
download_source(FFTW)
|
||||
download_source(ICONV)
|
||||
download_source(SNDFILE)
|
||||
if(WITH_WEBP)
|
||||
download_source(WEBP)
|
||||
endif()
|
||||
download_source(WEBP)
|
||||
download_source(SPNAV)
|
||||
download_source(JEMALLOC)
|
||||
download_source(XML2)
|
||||
@@ -97,3 +96,8 @@ download_source(HARU)
|
||||
download_source(ZSTD)
|
||||
download_source(FLEX)
|
||||
download_source(BROTLI)
|
||||
download_source(FMT)
|
||||
download_source(ROBINMAP)
|
||||
download_source(IMATH)
|
||||
download_source(PYSTRING)
|
||||
download_source(LEVEL_ZERO)
|
||||
|
@@ -17,6 +17,16 @@ set(EMBREE_EXTRA_ARGS
|
||||
-DTBB_STATIC_LIB=${TBB_STATIC_LIBRARY}
|
||||
)
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
-DEMBREE_MAX_ISA=NEON)
|
||||
else()
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
-DEMBREE_MAX_ISA=AVX2)
|
||||
endif()
|
||||
|
||||
if(TBB_STATIC_LIBRARY)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
@@ -37,26 +47,15 @@ else()
|
||||
set(EMBREE_BUILD_DIR)
|
||||
endif()
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
ExternalProject_Add(external_embree
|
||||
GIT_REPOSITORY ${EMBREE_ARM_GIT}
|
||||
GIT_TAG "blender-arm"
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/embree
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/embree
|
||||
)
|
||||
else()
|
||||
ExternalProject_Add(external_embree
|
||||
URL file://${PACKAGE_DIR}/${EMBREE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${EMBREE_HASH_TYPE}=${EMBREE_HASH}
|
||||
PREFIX ${BUILD_DIR}/embree
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/embree/src/external_embree < ${PATCH_DIR}/embree.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/embree
|
||||
)
|
||||
endif()
|
||||
ExternalProject_Add(external_embree
|
||||
URL file://${PACKAGE_DIR}/${EMBREE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${EMBREE_HASH_TYPE}=${EMBREE_HASH}
|
||||
PREFIX ${BUILD_DIR}/embree
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/embree/src/external_embree < ${PATCH_DIR}/embree.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/embree
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_embree
|
||||
|
14
build_files/build_environment/cmake/fmt.cmake
Normal file
14
build_files/build_environment/cmake/fmt.cmake
Normal file
@@ -0,0 +1,14 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(FMT_EXTRA_ARGS
|
||||
-DFMT_TEST=Off
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_fmt
|
||||
URL file://${PACKAGE_DIR}/${FMT_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${FMT_HASH_TYPE}=${FMT_HASH}
|
||||
PREFIX ${BUILD_DIR}/fmt
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/fmt ${DEFAULT_CMAKE_FLAGS} ${FMT_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/fmt
|
||||
)
|
@@ -1,12 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(GLFW_EXTRA_ARGS)
|
||||
|
||||
ExternalProject_Add(external_glfw
|
||||
URL file://${PACKAGE_DIR}/${GLFW_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${GLFW_HASH_TYPE}=${GLFW_HASH}
|
||||
PREFIX ${BUILD_DIR}/glfw
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/glfw -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${GLFW_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/glfw
|
||||
)
|
@@ -14,8 +14,8 @@ if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
add_custom_target(Harvest_Release_Results
|
||||
COMMAND # jpeg rename libfile + copy include
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpg/include/ ${HARVEST_TARGET}/jpeg/include/ &&
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/jpeg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpeg/include/ ${HARVEST_TARGET}/jpeg/include/ &&
|
||||
# png
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static.lib ${HARVEST_TARGET}/png/lib/libpng.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/ &&
|
||||
@@ -67,6 +67,8 @@ harvest(brotli/include brotli/include "*.h")
|
||||
harvest(brotli/lib brotli/lib "*.a")
|
||||
harvest(boost/include boost/include "*")
|
||||
harvest(boost/lib boost/lib "*.a")
|
||||
harvest(imath/include imath/include "*.h")
|
||||
harvest(imath/lib imath/lib "*.a")
|
||||
harvest(ffmpeg/include ffmpeg/include "*.h")
|
||||
harvest(ffmpeg/lib ffmpeg/lib "*.a")
|
||||
harvest(fftw3/include fftw3/include "*.h")
|
||||
@@ -80,9 +82,13 @@ harvest(gmp/include gmp/include "*.h")
|
||||
harvest(gmp/lib gmp/lib "*.a")
|
||||
harvest(jemalloc/include jemalloc/include "*.h")
|
||||
harvest(jemalloc/lib jemalloc/lib "*.a")
|
||||
harvest(jpg/include jpeg/include "*.h")
|
||||
harvest(jpg/lib jpeg/lib "libjpeg.a")
|
||||
harvest(jpeg/include jpeg/include "*.h")
|
||||
harvest(jpeg/lib jpeg/lib "libjpeg.a")
|
||||
harvest(lame/lib ffmpeg/lib "*.a")
|
||||
if(NOT APPLE)
|
||||
harvest(level-zero/include/level_zero level-zero/include/level_zero "*.h")
|
||||
harvest(level-zero/lib level-zero/lib "*.so*")
|
||||
endif()
|
||||
harvest(llvm/bin llvm/bin "clang-format")
|
||||
if(BUILD_CLANG_TOOLS)
|
||||
harvest(llvm/bin llvm/bin "clang-tidy")
|
||||
@@ -135,13 +141,13 @@ harvest(openimagedenoise/include openimagedenoise/include "*")
|
||||
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
||||
harvest(embree/include embree/include "*.h")
|
||||
harvest(embree/lib embree/lib "*.a")
|
||||
harvest(openjpeg/include/openjpeg-2.3 openjpeg/include "*.h")
|
||||
harvest(openjpeg/include/openjpeg-${OPENJPEG_SHORT_VERSION} openjpeg/include "*.h")
|
||||
harvest(openjpeg/lib openjpeg/lib "*.a")
|
||||
harvest(opensubdiv/include opensubdiv/include "*.h")
|
||||
harvest(opensubdiv/lib opensubdiv/lib "*.a")
|
||||
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
||||
harvest(openvdb/include/nanovdb openvdb/include/nanovdb "*.h")
|
||||
harvest(openvdb/lib openvdb/lib "*.a")
|
||||
harvest(nanovdb/nanovdb nanovdb/include/nanovdb "*.h")
|
||||
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
|
||||
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
||||
harvest(osl/bin osl/bin "oslc")
|
||||
@@ -169,9 +175,10 @@ harvest(tiff/lib tiff/lib "*.a")
|
||||
harvest(vorbis/lib ffmpeg/lib "*.a")
|
||||
harvest(opus/lib ffmpeg/lib "*.a")
|
||||
harvest(vpx/lib ffmpeg/lib "*.a")
|
||||
harvest(webp/lib ffmpeg/lib "*.a")
|
||||
harvest(x264/lib ffmpeg/lib "*.a")
|
||||
harvest(xvidcore/lib ffmpeg/lib "*.a")
|
||||
harvest(webp/lib webp/lib "*.a")
|
||||
harvest(webp/include webp/include "*.h")
|
||||
harvest(usd/include usd/include "*.h")
|
||||
harvest(usd/lib/usd usd/lib/usd "*")
|
||||
harvest(usd/plugin usd/plugin "*")
|
||||
|
24
build_files/build_environment/cmake/imath.cmake
Normal file
24
build_files/build_environment/cmake/imath.cmake
Normal file
@@ -0,0 +1,24 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(IMATH_EXTRA_ARGS
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DBUILD_TESTING=OFF
|
||||
-DIMATH_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_imath
|
||||
URL file://${PACKAGE_DIR}/${IMATH_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${IMATH_HASH_TYPE}=${IMATH_HASH}
|
||||
PREFIX ${BUILD_DIR}/imath
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/imath ${DEFAULT_CMAKE_FLAGS} ${IMATH_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/imath
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_imath after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/imath/lib ${HARVEST_TARGET}/imath/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/imath/include ${HARVEST_TARGET}/imath/include
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
@@ -2,44 +2,52 @@
|
||||
|
||||
if(WIN32)
|
||||
# cmake for windows
|
||||
set(JPEG_EXTRA_ARGS -DNASM=${NASM_PATH} -DWITH_JPEG8=ON -DCMAKE_DEBUG_POSTFIX=d -DWITH_CRT_DLL=On)
|
||||
set(JPEG_EXTRA_ARGS
|
||||
-DNASM=${NASM_PATH}
|
||||
-DWITH_JPEG8=ON
|
||||
-DCMAKE_DEBUG_POSTFIX=d
|
||||
-DWITH_CRT_DLL=On
|
||||
-DENABLE_SHARED=OFF
|
||||
-DENABLE_STATIC=ON
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_jpeg
|
||||
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
||||
PREFIX ${BUILD_DIR}/jpg
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/jpg
|
||||
PREFIX ${BUILD_DIR}/jpeg
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpeg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/jpeg
|
||||
)
|
||||
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_jpeg after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpegd${LIBEXT} ${LIBDIR}/jpg/lib/jpeg${LIBEXT}
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
set(JPEG_LIBRARY jpeg-static${LIBEXT})
|
||||
else()
|
||||
set(JPEG_LIBRARY jpeg-staticd${LIBEXT})
|
||||
endif()
|
||||
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_jpeg after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpeg/lib/${JPEG_LIBRARY} ${LIBDIR}/jpeg/lib/jpeg${LIBEXT}
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
else(WIN32)
|
||||
# cmake for unix
|
||||
set(JPEG_EXTRA_ARGS
|
||||
-DWITH_JPEG8=ON
|
||||
-DENABLE_STATIC=ON
|
||||
-DENABLE_SHARED=OFF
|
||||
-DCMAKE_INSTALL_LIBDIR=${LIBDIR}/jpg/lib)
|
||||
-DCMAKE_INSTALL_LIBDIR=${LIBDIR}/jpeg/lib)
|
||||
|
||||
ExternalProject_Add(external_jpeg
|
||||
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
||||
PREFIX ${BUILD_DIR}/jpg
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/jpg
|
||||
PREFIX ${BUILD_DIR}/jpeg
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpeg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/jpeg
|
||||
)
|
||||
|
||||
set(JPEG_LIBRARY libjpeg${LIBEXT})
|
||||
|
21
build_files/build_environment/cmake/level-zero.cmake
Normal file
21
build_files/build_environment/cmake/level-zero.cmake
Normal file
@@ -0,0 +1,21 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(LEVEL_ZERO_EXTRA_ARGS
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_level-zero
|
||||
URL file://${PACKAGE_DIR}/${LEVEL_ZERO_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${LEVEL_ZERO_HASH_TYPE}=${LEVEL_ZERO_HASH}
|
||||
PREFIX ${BUILD_DIR}/level-zero
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/level-zero/src/external_level-zero < ${PATCH_DIR}/level-zero.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/level-zero ${DEFAULT_CMAKE_FLAGS} ${LEVEL_ZERO_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/level-zero
|
||||
)
|
||||
|
||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||
ExternalProject_Add_Step(external_level-zero after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/level-zero ${HARVEST_TARGET}/level-zero
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
@@ -25,11 +25,14 @@ set(LLVM_EXTRA_ARGS
|
||||
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
|
||||
-DLLVM_ENABLE_UNWIND_TABLES=OFF
|
||||
-DLLVM_ENABLE_PROJECTS=clang${LLVM_BUILD_CLANG_TOOLS_EXTRA}
|
||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
||||
${LLVM_XML2_ARGS}
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(LLVM_GENERATOR "Ninja")
|
||||
list(APPEND LLVM_EXTRA_ARGS -DPython3_FIND_REGISTRY=NEVER)
|
||||
else()
|
||||
set(LLVM_GENERATOR "Unix Makefiles")
|
||||
endif()
|
||||
@@ -74,3 +77,9 @@ if(APPLE)
|
||||
external_xml2
|
||||
)
|
||||
endif()
|
||||
|
||||
add_dependencies(
|
||||
ll
|
||||
external_python
|
||||
)
|
||||
|
||||
|
@@ -1,39 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(NANOVDB_EXTRA_ARGS
|
||||
# NanoVDB is header-only, so only need the install target
|
||||
-DNANOVDB_BUILD_UNITTESTS=OFF
|
||||
-DNANOVDB_BUILD_EXAMPLES=OFF
|
||||
-DNANOVDB_BUILD_BENCHMARK=OFF
|
||||
-DNANOVDB_BUILD_DOCS=OFF
|
||||
-DNANOVDB_BUILD_TOOLS=OFF
|
||||
-DNANOVDB_CUDA_KEEP_PTX=OFF
|
||||
# Do not need to include any of the dependencies because of this
|
||||
-DNANOVDB_USE_OPENVDB=OFF
|
||||
-DNANOVDB_USE_OPENGL=OFF
|
||||
-DNANOVDB_USE_OPENCL=OFF
|
||||
-DNANOVDB_USE_CUDA=OFF
|
||||
-DNANOVDB_USE_TBB=OFF
|
||||
-DNANOVDB_USE_BLOSC=OFF
|
||||
-DNANOVDB_USE_ZLIB=OFF
|
||||
-DNANOVDB_USE_OPTIX=OFF
|
||||
-DNANOVDB_ALLOW_FETCHCONTENT=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(nanovdb
|
||||
URL file://${PACKAGE_DIR}/${NANOVDB_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${NANOVDB_HASH_TYPE}=${NANOVDB_HASH}
|
||||
PREFIX ${BUILD_DIR}/nanovdb
|
||||
SOURCE_SUBDIR nanovdb
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/nanovdb/src/nanovdb < ${PATCH_DIR}/nanovdb.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/nanovdb ${DEFAULT_CMAKE_FLAGS} ${NANOVDB_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/nanovdb
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(nanovdb after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/nanovdb/nanovdb ${HARVEST_TARGET}/nanovdb/include/nanovdb
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
@@ -11,13 +11,12 @@ set(OPENCOLORIO_EXTRA_ARGS
|
||||
-DOCIO_BUILD_GPU_TESTS=OFF
|
||||
-DOCIO_USE_SSE=ON
|
||||
|
||||
# Manually build ext packages except for pystring, which does not have
|
||||
# a CMake or autotools build system that we can easily use.
|
||||
-DOCIO_INSTALL_EXT_PACKAGES=MISSING
|
||||
-DHalf_ROOT=${LIBDIR}/openexr
|
||||
-DHalf_STATIC_LIBRARY=ON
|
||||
-DOCIO_INSTALL_EXT_PACKAGES=NONE
|
||||
|
||||
-Dexpat_ROOT=${LIBDIR}/expat
|
||||
-Dyaml-cpp_ROOT=${LIBDIR}/yamlcpp
|
||||
-Dpystring_ROOT=${LIBDIR}/pystring
|
||||
-DImath_ROOT=${LIBDIR}/imath
|
||||
)
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
@@ -30,7 +29,9 @@ endif()
|
||||
if(WIN32)
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
${OPENCOLORIO_EXTRA_ARGS}
|
||||
-DOCIO_INLINES_HIDDEN=OFF
|
||||
-Dexpat_LIBRARY=${LIBDIR}/expat/lib/libexpatMD
|
||||
-Dyaml-cpp_LIBRARY=${LIBDIR}/expat/lib/libyaml-cppmd.lib
|
||||
-DImath_LIBRARY=${LIBDIR}/imath/lib/imath${OPENEXR_VERSION_POSTFIX}
|
||||
)
|
||||
else()
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
@@ -52,7 +53,8 @@ add_dependencies(
|
||||
external_opencolorio
|
||||
external_yamlcpp
|
||||
external_expat
|
||||
external_openexr
|
||||
external_imath
|
||||
external_pystring
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
@@ -62,7 +64,7 @@ if(WIN32)
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib ${HARVEST_TARGET}/opencolorio/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/expat/lib/libexpatMD.lib ${HARVEST_TARGET}/opencolorio/lib/libexpatMD.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pystring/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
@@ -71,7 +73,7 @@ if(WIN32)
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/lib/Opencolorio.lib ${HARVEST_TARGET}/opencolorio/lib/OpencolorIO_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmdd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/expat/lib/libexpatdMD.lib ${HARVEST_TARGET}/opencolorio/lib/libexpatdMD.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pystring/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring_d.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
@@ -79,7 +81,7 @@ else()
|
||||
ExternalProject_Add_Step(external_opencolorio after_install
|
||||
COMMAND cp ${LIBDIR}/yamlcpp/lib/libyaml-cpp.a ${LIBDIR}/opencolorio/lib/
|
||||
COMMAND cp ${LIBDIR}/expat/lib/libexpat.a ${LIBDIR}/opencolorio/lib/
|
||||
COMMAND cp ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/libpystring.a ${LIBDIR}/opencolorio/lib/
|
||||
COMMAND cp ${LIBDIR}/pystring/lib/libpystring.a ${LIBDIR}/opencolorio/lib/
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
@@ -16,12 +16,10 @@ set(OPENEXR_EXTRA_ARGS
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
-DBUILD_TESTING=OFF
|
||||
-DOPENEXR_BUILD_BOTH_STATIC_SHARED=OFF
|
||||
-DILMBASE_BUILD_BOTH_STATIC_SHARED=OFF
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DOPENEXR_BUILD_UTILS=OFF
|
||||
-DPYILMBASE_ENABLE=OFF
|
||||
-DOPENEXR_VIEWERS_ENABLE=OFF
|
||||
-DILMBASE_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
||||
-DOPENEXR_INSTALL_TOOLS=OFF
|
||||
-DOPENEXR_INSTALL_EXAMPLES=OFF
|
||||
-DImath_DIR=${LIBDIR}/imath/lib/cmake/Imath
|
||||
-DOPENEXR_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
||||
)
|
||||
|
||||
|
@@ -8,6 +8,7 @@ set(OIDN_EXTRA_ARGS
|
||||
-DOIDN_STATIC_LIB=ON
|
||||
-DOIDN_STATIC_RUNTIME=OFF
|
||||
-DISPC_EXECUTABLE=${LIBDIR}/ispc/bin/ispc
|
||||
-DOIDN_FILTER_RTLIGHTMAP=OFF
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
|
@@ -23,35 +23,20 @@ else()
|
||||
set(OIIO_SIMD_FLAGS)
|
||||
endif()
|
||||
|
||||
if(WITH_WEBP)
|
||||
set(WEBP_ARGS
|
||||
-DWEBP_INCLUDE_DIR=${LIBDIR}/webp/include
|
||||
-DWEBP_LIBRARY=${LIBDIR}/webp/lib/${LIBPREFIX}webp${LIBEXT}
|
||||
)
|
||||
set(WEBP_DEP external_webp)
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
set(OPENJPEG_FLAGS
|
||||
-DOpenJpeg_ROOT=${LIBDIR}/openjpeg_msvc
|
||||
-DOpenJPEG_ROOT=${LIBDIR}/openjpeg_msvc
|
||||
)
|
||||
else()
|
||||
set(OPENJPEG_FLAGS
|
||||
-DOpenJpeg_ROOT=${LIBDIR}/openjpeg
|
||||
-DOpenJPEG_ROOT=${LIBDIR}/openjpeg
|
||||
)
|
||||
endif()
|
||||
|
||||
set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
${OPENIMAGEIO_LINKSTATIC}
|
||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||
-DBoost_USE_MULTITHREADED=ON
|
||||
-DBoost_USE_STATIC_LIBS=ON
|
||||
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||
-DBOOST_ROOT=${LIBDIR}/boost
|
||||
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
|
||||
-DBoost_NO_SYSTEM_PATHS=ON
|
||||
-DBoost_NO_BOOST_CMAKE=ON
|
||||
${DEFAULT_BOOST_FLAGS}
|
||||
-DUSE_LIBSQUISH=OFF
|
||||
-DUSE_QT5=OFF
|
||||
-DUSE_NUKE=OFF
|
||||
@@ -62,7 +47,6 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-DUSE_LIBHEIF=OFF
|
||||
-DUSE_OPENGL=OFF
|
||||
-DUSE_TBB=OFF
|
||||
-DUSE_FIELD3D=OFF
|
||||
-DUSE_QT=OFF
|
||||
-DUSE_PYTHON=OFF
|
||||
-DUSE_GIF=OFF
|
||||
@@ -73,7 +57,7 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-DUSE_FREETYPE=OFF
|
||||
-DUSE_LIBRAW=OFF
|
||||
-DUSE_OPENCOLORIO=OFF
|
||||
-DUSE_WEBP=${WITH_WEBP}
|
||||
-DUSE_WEBP=ON
|
||||
-DOIIO_BUILD_TOOLS=${OIIO_TOOLS}
|
||||
-DOIIO_BUILD_TESTS=OFF
|
||||
-DBUILD_TESTING=OFF
|
||||
@@ -83,14 +67,9 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-DPNG_PNG_INCLUDE_DIR=${LIBDIR}/png/include
|
||||
-DTIFF_LIBRARY=${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT}
|
||||
-DTIFF_INCLUDE_DIR=${LIBDIR}/tiff/include
|
||||
-DJPEG_LIBRARY=${LIBDIR}/jpg/lib/${JPEG_LIBRARY}
|
||||
-DJPEG_INCLUDE_DIR=${LIBDIR}/jpg/include
|
||||
-DJPEG_LIBRARY=${LIBDIR}/jpeg/lib/${JPEG_LIBRARY}
|
||||
-DJPEG_INCLUDE_DIR=${LIBDIR}/jpeg/include
|
||||
${OPENJPEG_FLAGS}
|
||||
-DOpenEXR_USE_STATIC_LIBS=On
|
||||
-DILMBASE_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
@@ -98,8 +77,14 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-DUSE_EXTERNAL_PUGIXML=ON
|
||||
-DPUGIXML_LIBRARY=${LIBDIR}/pugixml/lib/${LIBPREFIX}pugixml${LIBEXT}
|
||||
-DPUGIXML_INCLUDE_DIR=${LIBDIR}/pugixml/include/
|
||||
${WEBP_FLAGS}
|
||||
-DBUILD_MISSING_ROBINMAP=OFF
|
||||
-DBUILD_MISSING_FMT=OFF
|
||||
-DFMT_INCLUDE_DIR=${LIBDIR}/fmt/include/
|
||||
-DRobinmap_ROOT=${LIBDIR}/robinmap
|
||||
-DWebP_ROOT=${LIBDIR}/webp
|
||||
${OIIO_SIMD_FLAGS}
|
||||
-DOpenEXR_ROOT=${LIBDIR}/openexr
|
||||
-DImath_ROOT=${LIBDIR}/imath
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_openimageio
|
||||
@@ -117,12 +102,15 @@ add_dependencies(
|
||||
external_png
|
||||
external_zlib
|
||||
external_openexr
|
||||
external_imath
|
||||
external_jpeg
|
||||
external_boost
|
||||
external_tiff
|
||||
external_pugixml
|
||||
external_fmt
|
||||
external_robinmap
|
||||
external_openjpeg${OPENJPEG_POSTFIX}
|
||||
${WEBP_DEP}
|
||||
external_webp
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
@@ -137,8 +125,8 @@ if(WIN32)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_openimageio after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_d.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util_d.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
@@ -3,20 +3,24 @@
|
||||
# Note the encoder/decoder may use png/tiff/lcms system libraries, but the
|
||||
# library itself does not depend on them, so should give no problems.
|
||||
|
||||
set(OPENJPEG_EXTRA_ARGS -DBUILD_SHARED_LIBS=OFF)
|
||||
|
||||
if(WIN32)
|
||||
set(OPENJPEG_EXTRA_ARGS -G "MSYS Makefiles" -DBUILD_PKGCONFIG_FILES=On)
|
||||
else()
|
||||
set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS})
|
||||
endif()
|
||||
|
||||
set(OPENJPEG_EXTRA_ARGS
|
||||
${OPENJPEG_EXTRA_ARGS}
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DBUILD_CODEC=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_openjpeg
|
||||
URL file://${PACKAGE_DIR}/${OPENJPEG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENJPEG_HASH_TYPE}=${OPENJPEG_HASH}
|
||||
PREFIX ${BUILD_DIR}/openjpeg
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build && ${CMAKE_COMMAND} ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg -DBUILD_SHARED_LIBS=Off -DBUILD_THIRDPARTY=OFF ${BUILD_DIR}/openjpeg/src/external_openjpeg
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build && ${CMAKE_COMMAND} ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg ${BUILD_DIR}/openjpeg/src/external_openjpeg
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make -j${MAKE_THREADS}
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make install
|
||||
INSTALL_DIR ${LIBDIR}/openjpeg
|
||||
|
@@ -1,19 +1,25 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(OPENSUBDIV_EXTRA_ARGS
|
||||
-DNO_LIB=OFF
|
||||
-DNO_EXAMPLES=ON
|
||||
-DNO_TUTORIALS=ON
|
||||
-DNO_REGRESSION=ON
|
||||
-DNO_PYTHON=ON
|
||||
-DNO_MAYA=ON
|
||||
-DNO_PTEX=ON
|
||||
-DNO_DOC=ON
|
||||
-DNO_CLEW=OFF
|
||||
-DNO_OPENCL=OFF
|
||||
-DNO_TUTORIALS=ON
|
||||
-DGLEW_INCLUDE_DIR=${LIBDIR}/glew/include
|
||||
-DGLEW_LIBRARY=${LIBDIR}/glew/lib/libGLEW${LIBEXT}
|
||||
-DGLFW_INCLUDE_DIR=${LIBDIR}/glfw/include
|
||||
-DGLFW_LIBRARIES=${LIBDIR}/glfw/lib/glfw3${LIBEXT}
|
||||
-DNO_OMP=ON
|
||||
-DNO_TBB=OFF
|
||||
-DNO_CUDA=ON
|
||||
-DNO_OPENCL=ON
|
||||
-DNO_CLEW=ON
|
||||
-DNO_OPENGL=OFF
|
||||
-DNO_METAL=OFF
|
||||
-DNO_DX=ON
|
||||
-DNO_TESTS=ON
|
||||
-DNO_GLTESTS=ON
|
||||
-DNO_GLEW=ON
|
||||
-DNO_GLFW=ON
|
||||
-DNO_GLFW_X11=ON
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
@@ -21,30 +27,12 @@ if(WIN32)
|
||||
${OPENSUBDIV_EXTRA_ARGS}
|
||||
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
||||
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb.lib
|
||||
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
|
||||
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/clew${LIBEXT}
|
||||
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
|
||||
-DCUEW_LIBRARY=${LIBDIR}/cuew/lib/cuew${LIBEXT}
|
||||
)
|
||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
set(OPENSUBDIV_EXTRA_ARGS
|
||||
${OPENSUBDIV_EXTRA_ARGS}
|
||||
-DNO_CUDA=OFF
|
||||
)
|
||||
else()
|
||||
set(OPENSUBDIV_EXTRA_ARGS
|
||||
${OPENSUBDIV_EXTRA_ARGS}
|
||||
-DNO_CUDA=ON
|
||||
)
|
||||
endif()
|
||||
|
||||
else()
|
||||
set(OPENSUBDIV_EXTRA_ARGS
|
||||
${OPENSUBDIV_EXTRA_ARGS}
|
||||
-DNO_CUDA=ON
|
||||
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
|
||||
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
|
||||
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/static/${LIBPREFIX}clew${LIBEXT}
|
||||
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
||||
-DTBB_tbb_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -76,9 +64,5 @@ endif()
|
||||
|
||||
add_dependencies(
|
||||
external_opensubdiv
|
||||
external_glew
|
||||
external_glfw
|
||||
external_clew
|
||||
external_cuew
|
||||
external_tbb
|
||||
)
|
||||
|
@@ -13,6 +13,7 @@ else()
|
||||
endif()
|
||||
|
||||
set(OPENVDB_EXTRA_ARGS
|
||||
${DEFAULT_BOOST_FLAGS}
|
||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||
-DBoost_USE_MULTITHREADED=ON
|
||||
-DBoost_USE_STATIC_LIBS=ON
|
||||
@@ -24,22 +25,20 @@ set(OPENVDB_EXTRA_ARGS
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
-DBlosc_INCLUDE_DIR=${LIBDIR}/blosc/include/
|
||||
-DBlosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
||||
-DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
|
||||
-DOPENVDB_BUILD_UNITTESTS=Off
|
||||
-DOPENVDB_BUILD_PYTHON_MODULE=Off
|
||||
-DBlosc_LIBRARY_RELEASE=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
||||
-DBlosc_LIBRARY_DEBUG=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
||||
-DOPENVDB_BUILD_UNITTESTS=OFF
|
||||
-DOPENVDB_BUILD_PYTHON_MODULE=OFF
|
||||
-DOPENVDB_BUILD_NANOVDB=ON
|
||||
-DNANOVDB_BUILD_TOOLS=OFF
|
||||
-DBlosc_ROOT=${LIBDIR}/blosc/
|
||||
-DTBB_ROOT=${LIBDIR}/tbb/
|
||||
-DOpenEXR_ROOT=${LIBDIR}/openexr
|
||||
-DIlmBase_ROOT=${LIBDIR}/openexr
|
||||
-DOPENEXR_LIBRARYDIR=${LIBDIR}/openexr/lib
|
||||
# All libs live in openexr, even the ilmbase ones
|
||||
-DILMBASE_LIBRARYDIR=${LIBDIR}/openexr/lib
|
||||
-DOPENVDB_CORE_SHARED=${OPENVDB_SHARED}
|
||||
-DOPENVDB_CORE_STATIC=${OPENVDB_STATIC}
|
||||
-DOPENVDB_BUILD_BINARIES=Off
|
||||
-DOPENVDB_BUILD_BINARIES=OFF
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
-DILMBASE_USE_STATIC_LIBS=On
|
||||
-DOPENEXR_USE_STATIC_LIBS=On
|
||||
-DBLOSC_USE_STATIC_LIBS=ON
|
||||
-DUSE_NANOVDB=ON
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
@@ -48,15 +47,6 @@ if(WIN32)
|
||||
# needs to link pthreads due to it being a blosc dependency
|
||||
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
|
||||
-DCMAKE_CXX_STANDARD_LIBRARIES="${LIBDIR}/pthreads/lib/pthreadVC3.lib"
|
||||
-DUSE_EXR=On
|
||||
)
|
||||
else()
|
||||
# OpenVDB can't find the _static libraries automatically.
|
||||
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
|
||||
-DTbb_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
|
||||
-DTbb_tbb_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
|
||||
-DTbb_tbbmalloc_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbbmalloc_static${LIBEXT}
|
||||
-DTbb_tbbmalloc_proxy_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbbmalloc_proxy_static${LIBEXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -74,7 +64,6 @@ add_dependencies(
|
||||
openvdb
|
||||
external_tbb
|
||||
external_boost
|
||||
external_openexr
|
||||
external_zlib
|
||||
external_blosc
|
||||
)
|
||||
@@ -82,7 +71,7 @@ add_dependencies(
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(openvdb after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include/openvdb ${HARVEST_TARGET}/openvdb/include/openvdb
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include ${HARVEST_TARGET}/openvdb/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb.dll ${HARVEST_TARGET}/openvdb/bin/openvdb.dll
|
||||
DEPENDEES install
|
||||
|
@@ -3,7 +3,6 @@
|
||||
if(WIN32)
|
||||
option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/fftw3 by installing mingw64" ON)
|
||||
endif()
|
||||
option(WITH_WEBP "Enable building of oiio with webp support" OFF)
|
||||
option(WITH_BOOST_PYTHON "Enable building of boost with python support" OFF)
|
||||
cmake_host_system_information(RESULT NUM_CORES QUERY NUMBER_OF_LOGICAL_CORES)
|
||||
set(MAKE_THREADS ${NUM_CORES} CACHE STRING "Number of threads to run make with")
|
||||
@@ -42,29 +41,29 @@ if(WIN32)
|
||||
set(LIBPREFIX "")
|
||||
|
||||
# For OIIO and OSL
|
||||
set(COMMON_DEFINES /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS)
|
||||
set(COMMON_DEFINES /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS)
|
||||
|
||||
if(MSVC_VERSION GREATER 1909)
|
||||
set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings.
|
||||
endif()
|
||||
string(APPEND COMMON_MSVC_FLAGS " /bigobj")
|
||||
if(WITH_OPTIMIZED_DEBUG)
|
||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
else()
|
||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
endif()
|
||||
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MD ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MD ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
|
||||
if(WITH_OPTIMIZED_DEBUG)
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
else()
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
endif()
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MD /${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MD /${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
|
||||
set(PLATFORM_FLAGS)
|
||||
set(PLATFORM_CXX_FLAGS)
|
||||
|
@@ -3,33 +3,15 @@
|
||||
if(WIN32)
|
||||
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
|
||||
set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe)
|
||||
set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=sse2)
|
||||
else()
|
||||
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES)
|
||||
set(OSL_FLEX_BISON)
|
||||
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
|
||||
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpeg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
|
||||
endif()
|
||||
|
||||
set(OSL_ILMBASE_CUSTOM_LIBRARIES "${LIBDIR}/openexr/lib/Imath${OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/Half{OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/IlmThread${OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/Iex${OPENEXR_VERSION_POSTFIX}.lib")
|
||||
|
||||
set(OSL_EXTRA_ARGS
|
||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||
-DBoost_USE_MULTITHREADED=ON
|
||||
-DBoost_USE_STATIC_LIBS=ON
|
||||
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||
-DBOOST_ROOT=${LIBDIR}/boost
|
||||
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
|
||||
-DBoost_NO_SYSTEM_PATHS=ON
|
||||
-DBoost_NO_BOOST_CMAKE=ON
|
||||
${DEFAULT_BOOST_FLAGS}
|
||||
-DOpenEXR_ROOT=${LIBDIR}/openexr/
|
||||
-DIlmBase_ROOT=${LIBDIR}/openexr/
|
||||
-DILMBASE_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DOpenImageIO_ROOT=${LIBDIR}/openimageio/
|
||||
-DOSL_BUILD_TESTS=OFF
|
||||
-DOSL_BUILD_MATERIALX=OFF
|
||||
@@ -49,10 +31,10 @@ set(OSL_EXTRA_ARGS
|
||||
-DUSE_QT=OFF
|
||||
-DUSE_Qt5=OFF
|
||||
-DINSTALL_DOCS=OFF
|
||||
${OSL_SIMD_FLAGS}
|
||||
-Dpugixml_ROOT=${LIBDIR}/pugixml
|
||||
-DUSE_PYTHON=OFF
|
||||
-DCMAKE_CXX_STANDARD=14
|
||||
-DImath_ROOT=${LIBDIR}/imath
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_osl
|
||||
|
22
build_files/build_environment/cmake/pystring.cmake
Normal file
22
build_files/build_environment/cmake/pystring.cmake
Normal file
@@ -0,0 +1,22 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(PYSTRING_EXTRA_ARGS
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_pystring
|
||||
URL file://${PACKAGE_DIR}/${PYSTRING_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${PYSTRING_HASH_TYPE}=${PYSTRING_HASH}
|
||||
PREFIX ${BUILD_DIR}/pystring
|
||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_pystring.txt ${BUILD_DIR}/pystring/src/external_pystring/CMakeLists.txt
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/pystring ${DEFAULT_CMAKE_FLAGS} ${PYSTRING_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/pystring
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_pystring after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pystring/lib ${HARVEST_TARGET}/pystring/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pystring/include ${HARVEST_TARGET}/pystring/include
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
@@ -15,7 +15,7 @@ ExternalProject_Add(external_python_site_packages
|
||||
CONFIGURE_COMMAND ${PIP_CONFIGURE_COMMAND}
|
||||
BUILD_COMMAND ""
|
||||
PREFIX ${BUILD_DIR}/site_packages
|
||||
INSTALL_COMMAND ${PYTHON_BINARY} -m pip install --no-cache-dir ${SITE_PACKAGES_EXTRA} cython==${CYTHON_VERSION} idna==${IDNA_VERSION} charset-normalizer==${CHARSET_NORMALIZER_VERSION} urllib3==${URLLIB3_VERSION} certifi==${CERTIFI_VERSION} requests==${REQUESTS_VERSION} zstandard==${ZSTANDARD_VERSION} --no-binary :all:
|
||||
INSTALL_COMMAND ${PYTHON_BINARY} -m pip install --no-cache-dir ${SITE_PACKAGES_EXTRA} cython==${CYTHON_VERSION} idna==${IDNA_VERSION} charset-normalizer==${CHARSET_NORMALIZER_VERSION} urllib3==${URLLIB3_VERSION} certifi==${CERTIFI_VERSION} requests==${REQUESTS_VERSION} zstandard==${ZSTANDARD_VERSION} autopep8==${AUTOPEP8_VERSION} pycodestyle==${PYCODESTYLE_VERSION} toml==${TOML_VERSION} --no-binary :all:
|
||||
)
|
||||
|
||||
if(USE_PIP_NUMPY)
|
||||
|
13
build_files/build_environment/cmake/robinmap.cmake
Normal file
13
build_files/build_environment/cmake/robinmap.cmake
Normal file
@@ -0,0 +1,13 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(ROBINMAP_EXTRA_ARGS
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_robinmap
|
||||
URL file://${PACKAGE_DIR}/${ROBINMAP_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${ROBINMAP_HASH_TYPE}=${ROBINMAP_HASH}
|
||||
PREFIX ${BUILD_DIR}/robinmap
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/robinmap ${DEFAULT_CMAKE_FLAGS} ${ROBINMAP_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/robinmap
|
||||
)
|
@@ -1,11 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WITH_WEBP)
|
||||
set(WITH_TIFF_WEBP ON)
|
||||
else()
|
||||
set(WITH_TIFF_WEBP OFF)
|
||||
endif()
|
||||
|
||||
set(TIFF_EXTRA_ARGS
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
||||
@@ -14,7 +8,7 @@ set(TIFF_EXTRA_ARGS
|
||||
-Dlzma=OFF
|
||||
-Djbig=OFF
|
||||
-Dzstd=OFF
|
||||
-Dwebp=${WITH_TIFF_WEBP}
|
||||
-Dwebp=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_tiff
|
||||
|
@@ -1,39 +1,72 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
# OIIO and OSL are statically linked for us, but USD doesn't know
|
||||
set(USD_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DOIIO_STATIC_DEFINE /DOSL_STATIC_DEFINE")
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
# USD does not look for debug libs, nor does it link them
|
||||
# when building static, so this is just to keep find_package happy
|
||||
# if we ever link dynamically on windows util will need to be linked as well.
|
||||
set(USD_OIIO_CMAKE_DEFINES "-DOIIO_LIBRARIES=${LIBDIR}/openimageio/lib/OpenImageIO_d${LIBEXT}")
|
||||
endif()
|
||||
set(USD_PLATFORM_FLAGS
|
||||
${USD_OIIO_CMAKE_DEFINES}
|
||||
-DCMAKE_CXX_FLAGS=${USD_CXX_FLAGS}
|
||||
)
|
||||
endif()
|
||||
|
||||
set(USD_EXTRA_ARGS
|
||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||
-DBoost_USE_MULTITHREADED=ON
|
||||
-DBoost_USE_STATIC_LIBS=ON
|
||||
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||
-DBOOST_ROOT=${LIBDIR}/boost
|
||||
-DBoost_NO_SYSTEM_PATHS=ON
|
||||
-DBoost_NO_BOOST_CMAKE=ON
|
||||
${DEFAULT_BOOST_FLAGS}
|
||||
${USD_PLATFORM_FLAGS}
|
||||
# This is a preventative measure that avoids possible conflicts when add-ons
|
||||
# try to load another USD library into the same process space.
|
||||
-DPXR_SET_INTERNAL_NAMESPACE=usdBlender
|
||||
-DOPENSUBDIV_ROOT_DIR=${LIBDIR}/opensubdiv
|
||||
-DOpenImageIO_ROOT=${LIBDIR}/openimageio
|
||||
-DOPENEXR_LIBRARIES=${LIBDIR}/imath/lib/imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/imath/include
|
||||
-DPXR_ENABLE_PYTHON_SUPPORT=OFF
|
||||
-DPXR_BUILD_IMAGING=ON
|
||||
-DPXR_BUILD_TESTS=OFF
|
||||
-DPXR_BUILD_EXAMPLES=OFF
|
||||
-DPXR_BUILD_TUTORIALS=OFF
|
||||
-DPXR_ENABLE_HDF5_SUPPORT=OFF
|
||||
-DPXR_ENABLE_MATERIALX_SUPPORT=OFF
|
||||
-DPXR_ENABLE_OPENVDB_SUPPORT=OFF
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DPXR_BUILD_MONOLITHIC=ON
|
||||
# OSL is an optional dependency of the Imaging module. However, since that
|
||||
# module was included for its support for converting primitive shapes (sphere,
|
||||
# cube, etc.) to geometry, it's not necessary. Disabling it will make it
|
||||
# simpler to build Blender; currently only Cycles uses OSL.
|
||||
-DPXR_ENABLE_OSL_SUPPORT=OFF
|
||||
# GL support on Linux also links to X11 libraries. Enabling it would break
|
||||
# headless or Wayland-only builds. OpenGL support would be useful if someone
|
||||
# wants to work on a Hydra viewport in Blender; when that's actually being
|
||||
# worked on, we could patch in a new PXR_ENABLE_X11_SUPPORT option (to
|
||||
# separate OpenGL from X11) and contribute it upstream.
|
||||
-DPXR_ENABLE_GL_SUPPORT=OFF
|
||||
# Disable Metal since USD fails to build this when OpenGL is disabled.
|
||||
-DPXR_ENABLE_METAL_SUPPORT=OFF
|
||||
# OIIO is used for loading image textures in Hydra Storm / Embree renderers,
|
||||
# which we don't use.
|
||||
-DPXR_BUILD_OPENIMAGEIO_PLUGIN=OFF
|
||||
# USD 22.03 does not support OCIO 2.x
|
||||
# Tracking ticket https://github.com/PixarAnimationStudios/USD/issues/1386
|
||||
-DPXR_BUILD_OPENCOLORIO_PLUGIN=OFF
|
||||
-DPXR_ENABLE_PTEX_SUPPORT=OFF
|
||||
-DPXR_BUILD_USD_TOOLS=OFF
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
-DBUILD_SHARED_LIBS=Off
|
||||
# USD is hellbound on making a shared lib, unless you point this variable to a valid cmake file
|
||||
# doesn't have to make sense, but as long as it points somewhere valid it will skip the shared lib.
|
||||
-DPXR_MONOLITHIC_IMPORT=${BUILD_DIR}/usd/src/external_usd/cmake/defaults/Version.cmake
|
||||
-DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include
|
||||
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
|
||||
-DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
|
||||
# USD wants the tbb debug lib set even when you are doing a release build
|
||||
# Otherwise it will error out during the cmake configure phase.
|
||||
-DTBB_LIBRARIES_DEBUG=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
|
||||
|
||||
# This is a preventative measure that avoids possible conflicts when add-ons
|
||||
# try to load another USD library into the same process space.
|
||||
-DPXR_SET_INTERNAL_NAMESPACE=usdBlender
|
||||
|
||||
-DPXR_ENABLE_PYTHON_SUPPORT=OFF
|
||||
-DPXR_BUILD_IMAGING=OFF
|
||||
-DPXR_BUILD_TESTS=OFF
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DPXR_BUILD_MONOLITHIC=ON
|
||||
|
||||
# The PXR_BUILD_USD_TOOLS argument is patched-in by usd.diff. An upstream pull request
|
||||
# can be found at https://github.com/PixarAnimationStudios/USD/pull/1048.
|
||||
-DPXR_BUILD_USD_TOOLS=OFF
|
||||
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
# USD is hellbound on making a shared lib, unless you point this variable to a valid cmake file
|
||||
# doesn't have to make sense, but as long as it points somewhere valid it will skip the shared lib.
|
||||
-DPXR_MONOLITHIC_IMPORT=${BUILD_DIR}/usd/src/external_usd/cmake/defaults/Version.cmake
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_usd
|
||||
@@ -50,29 +83,31 @@ add_dependencies(
|
||||
external_usd
|
||||
external_tbb
|
||||
external_boost
|
||||
external_opensubdiv
|
||||
)
|
||||
|
||||
# Since USD 21.11 the libraries are prefixed with "usd_", i.e. "libusd_m.a" became "libusd_usd_m.a".
|
||||
# See https://github.com/PixarAnimationStudios/USD/blob/release/CHANGELOG.md#2111---2021-11-01
|
||||
if(NOT WIN32)
|
||||
if (USD_VERSION VERSION_LESS 21.11)
|
||||
set(PXR_LIB_PREFIX "")
|
||||
else()
|
||||
set(PXR_LIB_PREFIX "usd_")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
# USD currently demands python be available at build time
|
||||
# and then proceeds not to use it, but still checks that the
|
||||
# version of the interpreter it is not going to use is atleast 2.7
|
||||
# so we need this dep currently since there is no system python
|
||||
# on windows.
|
||||
add_dependencies(
|
||||
external_usd
|
||||
external_python
|
||||
)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_usd after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/usd/ ${HARVEST_TARGET}/usd
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Release/usd_m.lib ${HARVEST_TARGET}/usd/lib/libusd_m.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Release/usd_usd_m.lib ${HARVEST_TARGET}/usd/lib/usd_usd_m.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_usd after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/usd/lib ${HARVEST_TARGET}/usd/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Debug/usd_m_d.lib ${HARVEST_TARGET}/usd/lib/libusd_m_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Debug/usd_usd_m_d.lib ${HARVEST_TARGET}/usd/lib/usd_usd_m_d.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
@@ -84,7 +119,7 @@ else()
|
||||
# case (only the shared library). As a result, we need to grab the `libusd_m.a`
|
||||
# file from the build directory instead of from the install directory.
|
||||
ExternalProject_Add_Step(external_usd after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/libusd_m.a ${HARVEST_TARGET}/usd/lib/libusd_m.a
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/lib${PXR_LIB_PREFIX}usd_m.a ${HARVEST_TARGET}/usd/lib/lib${PXR_LIB_PREFIX}usd_m.a
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
@@ -1,14 +1,14 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(ZLIB_VERSION 1.2.11)
|
||||
set(ZLIB_VERSION 1.2.12)
|
||||
set(ZLIB_URI https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz)
|
||||
set(ZLIB_HASH 1c9f62f0778697a09d36121ead88e08e)
|
||||
set(ZLIB_HASH 5fc414a9726be31427b440b434d05f78)
|
||||
set(ZLIB_HASH_TYPE MD5)
|
||||
set(ZLIB_FILE zlib-${ZLIB_VERSION}.tar.gz)
|
||||
|
||||
set(OPENAL_VERSION 1.20.1)
|
||||
set(OPENAL_VERSION 1.21.1)
|
||||
set(OPENAL_URI http://openal-soft.org/openal-releases/openal-soft-${OPENAL_VERSION}.tar.bz2)
|
||||
set(OPENAL_HASH 556695068ce8375b89986083d810fd35)
|
||||
set(OPENAL_HASH a936806ebd8de417b0ffd8cf3f48f456)
|
||||
set(OPENAL_HASH_TYPE MD5)
|
||||
set(OPENAL_FILE openal-soft-${OPENAL_VERSION}.tar.bz2)
|
||||
|
||||
@@ -18,24 +18,24 @@ set(PNG_HASH 505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca)
|
||||
set(PNG_HASH_TYPE SHA256)
|
||||
set(PNG_FILE libpng-${PNG_VERSION}.tar.xz)
|
||||
|
||||
set(JPEG_VERSION 2.0.4)
|
||||
set(JPEG_VERSION 2.1.3)
|
||||
set(JPEG_URI https://github.com/libjpeg-turbo/libjpeg-turbo/archive/${JPEG_VERSION}.tar.gz)
|
||||
set(JPEG_HASH 44c43e4a9fb352f47090804529317c88)
|
||||
set(JPEG_HASH 627b980fad0573e08e4c3b80b290fc91)
|
||||
set(JPEG_HASH_TYPE MD5)
|
||||
set(JPEG_FILE libjpeg-turbo-${JPEG_VERSION}.tar.gz)
|
||||
|
||||
set(BOOST_VERSION 1.73.0)
|
||||
set(BOOST_VERSION_NODOTS 1_73_0)
|
||||
set(BOOST_VERSION_NODOTS_SHORT 1_73)
|
||||
set(BOOST_VERSION 1.78.0)
|
||||
set(BOOST_VERSION_SHORT 1.78)
|
||||
set(BOOST_VERSION_NODOTS 1_78_0)
|
||||
set(BOOST_VERSION_NODOTS_SHORT 1_78)
|
||||
set(BOOST_URI https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION_NODOTS}.tar.gz)
|
||||
set(BOOST_HASH 4036cd27ef7548b8d29c30ea10956196)
|
||||
set(BOOST_HASH c2f6428ac52b0e5a3c9b2e1d8cc832b5)
|
||||
set(BOOST_HASH_TYPE MD5)
|
||||
set(BOOST_FILE boost_${BOOST_VERSION_NODOTS}.tar.gz)
|
||||
|
||||
# Using old version as recommended by OpenVDB build documentation.
|
||||
set(BLOSC_VERSION 1.5.0)
|
||||
set(BLOSC_VERSION 1.21.1)
|
||||
set(BLOSC_URI https://github.com/Blosc/c-blosc/archive/v${BLOSC_VERSION}.tar.gz)
|
||||
set(BLOSC_HASH 6e4a49c8c06f05aa543f3312cfce3d55)
|
||||
set(BLOSC_HASH 134b55813b1dca57019d2a2dc1f7a923)
|
||||
set(BLOSC_HASH_TYPE MD5)
|
||||
set(BLOSC_FILE blosc-${BLOSC_VERSION}.tar.gz)
|
||||
|
||||
@@ -45,12 +45,19 @@ set(PTHREADS_HASH f3bf81bb395840b3446197bcf4ecd653)
|
||||
set(PTHREADS_HASH_TYPE MD5)
|
||||
set(PTHREADS_FILE pthreads4w-code-${PTHREADS_VERSION}.zip)
|
||||
|
||||
set(OPENEXR_VERSION 2.5.5)
|
||||
set(OPENEXR_VERSION 3.1.4)
|
||||
set(OPENEXR_URI https://github.com/AcademySoftwareFoundation/openexr/archive/v${OPENEXR_VERSION}.tar.gz)
|
||||
set(OPENEXR_HASH 85e8a979092c9055d10ed103062d31a0)
|
||||
set(OPENEXR_HASH e990be1ff765797bc2d93a8060e1c1f2)
|
||||
set(OPENEXR_HASH_TYPE MD5)
|
||||
set(OPENEXR_FILE openexr-${OPENEXR_VERSION}.tar.gz)
|
||||
|
||||
set(IMATH_VERSION 3.1.4)
|
||||
set(IMATH_URI https://github.com/AcademySoftwareFoundation/Imath/archive/v${OPENEXR_VERSION}.tar.gz)
|
||||
set(IMATH_HASH fddf14ec73e12c34e74c3c175e311a3f)
|
||||
set(IMATH_HASH_TYPE MD5)
|
||||
set(IMATH_FILE imath-${IMATH_VERSION}.tar.gz)
|
||||
|
||||
|
||||
if(WIN32)
|
||||
# Openexr started appending _d on its own so now
|
||||
# we need to tell the build the postfix is _s while
|
||||
@@ -85,42 +92,21 @@ set(FREEGLUT_HASH 90c3ca4dd9d51cf32276bc5344ec9754)
|
||||
set(FREEGLUT_HASH_TYPE MD5)
|
||||
set(FREEGLUT_FILE freeglut-${FREEGLUT_VERSION}.tar.gz)
|
||||
|
||||
set(ALEMBIC_VERSION 1.7.16)
|
||||
set(ALEMBIC_VERSION 1.8.3)
|
||||
set(ALEMBIC_URI https://github.com/alembic/alembic/archive/${ALEMBIC_VERSION}.tar.gz)
|
||||
set(ALEMBIC_HASH effcc86e42fe6605588e3de57bde6677)
|
||||
set(ALEMBIC_HASH 2cd8d6e5a3ac4a014e24a4b04f4fadf9)
|
||||
set(ALEMBIC_HASH_TYPE MD5)
|
||||
set(ALEMBIC_FILE alembic-${ALEMBIC_VERSION}.tar.gz)
|
||||
|
||||
# hash is for 3.1.2
|
||||
set(GLFW_GIT_UID 30306e54705c3adae9fe082c816a3be71963485c)
|
||||
set(GLFW_URI https://github.com/glfw/glfw/archive/${GLFW_GIT_UID}.zip)
|
||||
set(GLFW_HASH 20cacb1613da7eeb092f3ac4f6b2b3d0)
|
||||
set(GLFW_HASH_TYPE MD5)
|
||||
set(GLFW_FILE glfw-${GLFW_GIT_UID}.zip)
|
||||
|
||||
# latest uid in git as of 2016-04-01
|
||||
set(CLEW_GIT_UID 277db43f6cafe8b27c6f1055f69dc67da4aeb299)
|
||||
set(CLEW_URI https://github.com/OpenCLWrangler/clew/archive/${CLEW_GIT_UID}.zip)
|
||||
set(CLEW_HASH 2c699d10ed78362e71f56fae2a4c5f98)
|
||||
set(CLEW_HASH_TYPE MD5)
|
||||
set(CLEW_FILE clew-${CLEW_GIT_UID}.zip)
|
||||
|
||||
# latest uid in git as of 2016-04-01
|
||||
set(CUEW_GIT_UID 1744972026de9cf27c8a7dc39cf39cd83d5f922f)
|
||||
set(CUEW_URI https://github.com/CudaWrangler/cuew/archive/${CUEW_GIT_UID}.zip)
|
||||
set(CUEW_HASH 86760d62978ebfd96cd93f5aa1abaf4a)
|
||||
set(CUEW_HASH_TYPE MD5)
|
||||
set(CUEW_FILE cuew-${CUEW_GIT_UID}.zip)
|
||||
|
||||
set(OPENSUBDIV_VERSION v3_4_3)
|
||||
set(OPENSUBDIV_VERSION v3_4_4)
|
||||
set(OPENSUBDIV_URI https://github.com/PixarAnimationStudios/OpenSubdiv/archive/${OPENSUBDIV_VERSION}.tar.gz)
|
||||
set(OPENSUBDIV_HASH 7bbfa275d021fb829e521df749160edb)
|
||||
set(OPENSUBDIV_HASH 39ecc5caf0abebc943d1ce131855e76e)
|
||||
set(OPENSUBDIV_HASH_TYPE MD5)
|
||||
set(OPENSUBDIV_FILE opensubdiv-${OPENSUBDIV_VERSION}.tar.gz)
|
||||
|
||||
set(SDL_VERSION 2.0.12)
|
||||
set(SDL_VERSION 2.0.20)
|
||||
set(SDL_URI https://www.libsdl.org/release/SDL2-${SDL_VERSION}.tar.gz)
|
||||
set(SDL_HASH 783b6f2df8ff02b19bb5ce492b99c8ff)
|
||||
set(SDL_HASH a53acc02e1cca98c4123229069b67c9e)
|
||||
set(SDL_HASH_TYPE MD5)
|
||||
set(SDL_FILE SDL2-${SDL_VERSION}.tar.gz)
|
||||
|
||||
@@ -130,9 +116,9 @@ set(OPENCOLLADA_HASH ee7dae874019fea7be11613d07567493)
|
||||
set(OPENCOLLADA_HASH_TYPE MD5)
|
||||
set(OPENCOLLADA_FILE opencollada-${OPENCOLLADA_VERSION}.tar.gz)
|
||||
|
||||
set(OPENCOLORIO_VERSION 2.0.0)
|
||||
set(OPENCOLORIO_VERSION 2.1.1)
|
||||
set(OPENCOLORIO_URI https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/v${OPENCOLORIO_VERSION}.tar.gz)
|
||||
set(OPENCOLORIO_HASH 1a2e3478b6cd9a1549f24e1b2205e3f0)
|
||||
set(OPENCOLORIO_HASH 604f562e073f23d88ce89ed4f7f709ba)
|
||||
set(OPENCOLORIO_HASH_TYPE MD5)
|
||||
set(OPENCOLORIO_FILE OpenColorIO-${OPENCOLORIO_VERSION}.tar.gz)
|
||||
|
||||
@@ -155,21 +141,37 @@ set(OPENMP_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${
|
||||
set(OPENMP_HASH_TYPE MD5)
|
||||
set(OPENMP_FILE openmp-${OPENMP_VERSION}.src.tar.xz)
|
||||
|
||||
set(OPENIMAGEIO_VERSION 2.2.15.1)
|
||||
set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/Release-${OPENIMAGEIO_VERSION}.tar.gz)
|
||||
set(OPENIMAGEIO_HASH 3db5c5f0b3dc91597c75e5df09eb9072)
|
||||
set(OPENIMAGEIO_VERSION v2.3.13.0)
|
||||
set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/refs/tags/${OPENIMAGEIO_VERSION}.tar.gz)
|
||||
set(OPENIMAGEIO_HASH de45fb38501c4581062b522b53b6141c)
|
||||
set(OPENIMAGEIO_HASH_TYPE MD5)
|
||||
set(OPENIMAGEIO_FILE OpenImageIO-${OPENIMAGEIO_VERSION}.tar.gz)
|
||||
|
||||
set(TIFF_VERSION 4.1.0)
|
||||
# 8.0.0 is currently oiio's preferred vesion although never versions may be available.
|
||||
# the preferred version can be found in oiio's externalpackages.cmake
|
||||
set(FMT_VERSION 8.0.0)
|
||||
set(FMT_URI https://github.com/fmtlib/fmt/archive/refs/tags/${FMT_VERSION}.tar.gz)
|
||||
set(FMT_HASH 7bce0e9e022e586b178b150002e7c2339994e3c2bbe44027e9abb0d60f9cce83)
|
||||
set(FMT_HASH_TYPE SHA256)
|
||||
set(FMT_FILE fmt-${FMT_VERSION}.tar.gz)
|
||||
|
||||
# 0.6.2 is currently oiio's preferred vesion although never versions may be available.
|
||||
# the preferred version can be found in oiio's externalpackages.cmake
|
||||
set(ROBINMAP_VERSION v0.6.2)
|
||||
set(ROBINMAP_URI https://github.com/Tessil/robin-map/archive/refs/tags/${ROBINMAP_VERSION}.tar.gz)
|
||||
set(ROBINMAP_HASH c08ec4b1bf1c85eb0d6432244a6a89862229da1cb834f3f90fba8dc35d8c8ef1)
|
||||
set(ROBINMAP_HASH_TYPE SHA256)
|
||||
set(ROBINMAP_FILE robinmap-${ROBINMAP_VERSION}.tar.gz)
|
||||
|
||||
set(TIFF_VERSION 4.3.0)
|
||||
set(TIFF_URI http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz)
|
||||
set(TIFF_HASH 2165e7aba557463acc0664e71a3ed424)
|
||||
set(TIFF_HASH 0a2e4744d1426a8fc8211c0cdbc3a1b3)
|
||||
set(TIFF_HASH_TYPE MD5)
|
||||
set(TIFF_FILE tiff-${TIFF_VERSION}.tar.gz)
|
||||
|
||||
set(OSL_VERSION 1.11.14.1)
|
||||
set(OSL_VERSION 1.11.17.0)
|
||||
set(OSL_URI https://github.com/imageworks/OpenShadingLanguage/archive/Release-${OSL_VERSION}.tar.gz)
|
||||
set(OSL_HASH 1abd7ce40481771a9fa937f19595d2f2)
|
||||
set(OSL_HASH 63265472ce14548839ace2e21e401544)
|
||||
set(OSL_HASH_TYPE MD5)
|
||||
set(OSL_FILE OpenShadingLanguage-${OSL_VERSION}.tar.gz)
|
||||
|
||||
@@ -181,24 +183,18 @@ set(PYTHON_HASH 14e8c22458ed7779a1957b26cde01db9)
|
||||
set(PYTHON_HASH_TYPE MD5)
|
||||
set(PYTHON_FILE Python-${PYTHON_VERSION}.tar.xz)
|
||||
|
||||
set(TBB_VERSION 2020_U2)
|
||||
set(TBB_VERSION 2020_U3)
|
||||
set(TBB_URI https://github.com/oneapi-src/oneTBB/archive/${TBB_VERSION}.tar.gz)
|
||||
set(TBB_HASH 1b711ae956524855088df3bbf5ec65dc)
|
||||
set(TBB_HASH 55ec8df6eae5ed6364a47f0e671e460c)
|
||||
set(TBB_HASH_TYPE MD5)
|
||||
set(TBB_FILE oneTBB-${TBB_VERSION}.tar.gz)
|
||||
|
||||
set(OPENVDB_VERSION 8.0.1)
|
||||
set(OPENVDB_VERSION 9.0.0)
|
||||
set(OPENVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
|
||||
set(OPENVDB_HASH 01b490be16cc0e15c690f9a153c21461)
|
||||
set(OPENVDB_HASH 684ce40c2f74f3a0c9cac530e1c7b07e)
|
||||
set(OPENVDB_HASH_TYPE MD5)
|
||||
set(OPENVDB_FILE openvdb-${OPENVDB_VERSION}.tar.gz)
|
||||
|
||||
set(NANOVDB_GIT_UID dc37d8a631922e7bef46712947dc19b755f3e841)
|
||||
set(NANOVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/${NANOVDB_GIT_UID}.tar.gz)
|
||||
set(NANOVDB_HASH e7b9e863ec2f3b04ead171dec2322807)
|
||||
set(NANOVDB_HASH_TYPE MD5)
|
||||
set(NANOVDB_FILE nano-vdb-${NANOVDB_GIT_UID}.tar.gz)
|
||||
|
||||
set(IDNA_VERSION 3.3)
|
||||
set(CHARSET_NORMALIZER_VERSION 2.0.10)
|
||||
set(URLLIB3_VERSION 1.26.8)
|
||||
@@ -208,6 +204,9 @@ set(CYTHON_VERSION 0.29.26)
|
||||
# The version of the zstd library used to build the Python package should match ZSTD_VERSION defined below.
|
||||
# At this time of writing, 0.17.0 was already released, but built against zstd 1.5.1, while we use 1.5.0.
|
||||
set(ZSTANDARD_VERSION 0.16.0)
|
||||
set(AUTOPEP8_VERSION 1.6.0)
|
||||
set(PYCODESTYLE_VERSION 2.8.0)
|
||||
set(TOML_VERSION 0.10.2)
|
||||
|
||||
set(NUMPY_VERSION 1.22.0)
|
||||
set(NUMPY_SHORT_VERSION 1.22)
|
||||
@@ -222,15 +221,15 @@ set(LAME_HASH 83e260acbe4389b54fe08e0bdbf7cddb)
|
||||
set(LAME_HASH_TYPE MD5)
|
||||
set(LAME_FILE lame-${LAME_VERSION}.tar.gz)
|
||||
|
||||
set(OGG_VERSION 1.3.4)
|
||||
set(OGG_VERSION 1.3.5)
|
||||
set(OGG_URI http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz)
|
||||
set(OGG_HASH fe5670640bd49e828d64d2879c31cb4dde9758681bb664f9bdbf159a01b0c76e)
|
||||
set(OGG_HASH 0eb4b4b9420a0f51db142ba3f9c64b333f826532dc0f48c6410ae51f4799b664)
|
||||
set(OGG_HASH_TYPE SHA256)
|
||||
set(OGG_FILE libogg-${OGG_VERSION}.tar.gz)
|
||||
|
||||
set(VORBIS_VERSION 1.3.6)
|
||||
set(VORBIS_VERSION 1.3.7)
|
||||
set(VORBIS_URI http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz)
|
||||
set(VORBIS_HASH 6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb)
|
||||
set(VORBIS_HASH 0e982409a9c3fc82ee06e08205b1355e5c6aa4c36bca58146ef399621b0ce5ab)
|
||||
set(VORBIS_HASH_TYPE SHA256)
|
||||
set(VORBIS_FILE libvorbis-${VORBIS_VERSION}.tar.gz)
|
||||
|
||||
@@ -240,15 +239,15 @@ set(THEORA_HASH b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc
|
||||
set(THEORA_HASH_TYPE SHA256)
|
||||
set(THEORA_FILE libtheora-${THEORA_VERSION}.tar.bz2)
|
||||
|
||||
set(FLAC_VERSION 1.3.3)
|
||||
set(FLAC_VERSION 1.3.4)
|
||||
set(FLAC_URI http://downloads.xiph.org/releases/flac/flac-${FLAC_VERSION}.tar.xz)
|
||||
set(FLAC_HASH 213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748)
|
||||
set(FLAC_HASH 8ff0607e75a322dd7cd6ec48f4f225471404ae2730d0ea945127b1355155e737 )
|
||||
set(FLAC_HASH_TYPE SHA256)
|
||||
set(FLAC_FILE flac-${FLAC_VERSION}.tar.xz)
|
||||
|
||||
set(VPX_VERSION 1.8.2)
|
||||
set(VPX_VERSION 1.11.0)
|
||||
set(VPX_URI https://github.com/webmproject/libvpx/archive/v${VPX_VERSION}/libvpx-v${VPX_VERSION}.tar.gz)
|
||||
set(VPX_HASH 8735d9fcd1a781ae6917f28f239a8aa358ce4864ba113ea18af4bb2dc8b474ac)
|
||||
set(VPX_HASH 965e51c91ad9851e2337aebcc0f517440c637c506f3a03948062e3d5ea129a83)
|
||||
set(VPX_HASH_TYPE SHA256)
|
||||
set(VPX_FILE libvpx-v${VPX_VERSION}.tar.gz)
|
||||
|
||||
@@ -258,9 +257,9 @@ set(OPUS_HASH 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d)
|
||||
set(OPUS_HASH_TYPE SHA256)
|
||||
set(OPUS_FILE opus-${OPUS_VERSION}.tar.gz)
|
||||
|
||||
set(X264_VERSION 33f9e1474613f59392be5ab6a7e7abf60fa63622)
|
||||
set(X264_VERSION 35fe20d1ba49918ec739a5b068c208ca82f977f7)
|
||||
set(X264_URI https://code.videolan.org/videolan/x264/-/archive/${X264_VERSION}/x264-${X264_VERSION}.tar.gz)
|
||||
set(X264_HASH 5456450ee1ae02cd2328be3157367a232a0ab73315e8c8f80dab80469524f525)
|
||||
set(X264_HASH bb4f7da03936b5a030ed5827133b58eb3f701d7e5dce32cca4ba6df93797d42e)
|
||||
set(X264_HASH_TYPE SHA256)
|
||||
set(X264_FILE x264-${X264_VERSION}.tar.gz)
|
||||
|
||||
@@ -270,22 +269,22 @@ set(XVIDCORE_HASH abbdcbd39555691dd1c9b4d08f0a031376a3b211652c0d8b3b8aa9be1303ce
|
||||
set(XVIDCORE_HASH_TYPE SHA256)
|
||||
set(XVIDCORE_FILE xvidcore-${XVIDCORE_VERSION}.tar.gz)
|
||||
|
||||
set(OPENJPEG_VERSION 2.3.1)
|
||||
set(OPENJPEG_SHORT_VERSION 2.3)
|
||||
set(OPENJPEG_VERSION 2.4.0)
|
||||
set(OPENJPEG_SHORT_VERSION 2.4)
|
||||
set(OPENJPEG_URI https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz)
|
||||
set(OPENJPEG_HASH 63f5a4713ecafc86de51bfad89cc07bb788e9bba24ebbf0c4ca637621aadb6a9)
|
||||
set(OPENJPEG_HASH 8702ba68b442657f11aaeb2b338443ca8d5fb95b0d845757968a7be31ef7f16d)
|
||||
set(OPENJPEG_HASH_TYPE SHA256)
|
||||
set(OPENJPEG_FILE openjpeg-v${OPENJPEG_VERSION}.tar.gz)
|
||||
|
||||
set(FFMPEG_VERSION 4.4)
|
||||
set(FFMPEG_VERSION 5.0)
|
||||
set(FFMPEG_URI http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2)
|
||||
set(FFMPEG_HASH 42093549751b582cf0f338a21a3664f52e0a9fbe0d238d3c992005e493607d0e)
|
||||
set(FFMPEG_HASH c0130b8db2c763430fd1c6905288d61bc44ee0548ad5fcd2dfd650b88432bed9)
|
||||
set(FFMPEG_HASH_TYPE SHA256)
|
||||
set(FFMPEG_FILE ffmpeg-${FFMPEG_VERSION}.tar.bz2)
|
||||
|
||||
set(FFTW_VERSION 3.3.8)
|
||||
set(FFTW_VERSION 3.3.10)
|
||||
set(FFTW_URI http://www.fftw.org/fftw-${FFTW_VERSION}.tar.gz)
|
||||
set(FFTW_HASH 8aac833c943d8e90d51b697b27d4384d)
|
||||
set(FFTW_HASH 8ccbf6a5ea78a16dbc3e1306e234cc5c)
|
||||
set(FFTW_HASH_TYPE MD5)
|
||||
set(FFTW_FILE fftw-${FFTW_VERSION}.tar.gz)
|
||||
|
||||
@@ -301,9 +300,9 @@ set(SNDFILE_HASH 646b5f98ce89ac60cdb060fcd398247c)
|
||||
set(SNDFILE_HASH_TYPE MD5)
|
||||
set(SNDFILE_FILE libsndfile-${SNDFILE_VERSION}.tar.gz)
|
||||
|
||||
set(WEBP_VERSION 0.6.1)
|
||||
set(WEBP_VERSION 1.2.2)
|
||||
set(WEBP_URI https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz)
|
||||
set(WEBP_HASH b49ce9c3e3e9acae4d91bca44bb85a72)
|
||||
set(WEBP_HASH b5e2e414a8adee4c25fe56b18dd9c549)
|
||||
set(WEBP_HASH_TYPE MD5)
|
||||
set(WEBP_FILE libwebp-${WEBP_VERSION}.tar.gz)
|
||||
|
||||
@@ -338,9 +337,15 @@ set(YAMLCPP_HASH b45bf1089a382e81f6b661062c10d0c2)
|
||||
set(YAMLCPP_HASH_TYPE MD5)
|
||||
set(YAMLCPP_FILE yaml-cpp-${YAMLCPP_VERSION}.tar.gz)
|
||||
|
||||
set(EXPAT_VERSION 2_2_10)
|
||||
set(PYSTRING_VERSION v1.1.3)
|
||||
set(PYSTRING_URI https://codeload.github.com/imageworks/pystring/tar.gz/refs/tags/${PYSTRING_VERSION})
|
||||
set(PYSTRING_HASH f2c68786b359f5e4e62bed53bc4fb86d)
|
||||
set(PYSTRING_HASH_TYPE MD5)
|
||||
set(PYSTRING_FILE pystring-${PYSTRING_VERSION}.tar.gz)
|
||||
|
||||
set(EXPAT_VERSION 2_4_4)
|
||||
set(EXPAT_URI https://github.com/libexpat/libexpat/archive/R_${EXPAT_VERSION}.tar.gz)
|
||||
set(EXPAT_HASH 7ca5f09959fcb9a57618368deb627b9f)
|
||||
set(EXPAT_HASH 2d3e81dee94b452369dc6394ff0f8f98)
|
||||
set(EXPAT_HASH_TYPE MD5)
|
||||
set(EXPAT_FILE libexpat-${EXPAT_VERSION}.tar.gz)
|
||||
|
||||
@@ -405,22 +410,21 @@ set(SQLITE_HASH fb558c49ee21a837713c4f1e7e413309aabdd9c7)
|
||||
set(SQLITE_HASH_TYPE SHA1)
|
||||
set(SQLITE_FILE sqlite-src-3240000.zip)
|
||||
|
||||
set(EMBREE_VERSION 3.10.0)
|
||||
set(EMBREE_VERSION 3.13.3)
|
||||
set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip)
|
||||
set(EMBREE_HASH 4bbe29e7eaa46417efc75fc5f1e8eb87)
|
||||
set(EMBREE_HASH f62766ba54e48a2f327c3a22596e7133)
|
||||
set(EMBREE_HASH_TYPE MD5)
|
||||
set(EMBREE_FILE embree-v${EMBREE_VERSION}.zip)
|
||||
set(EMBREE_ARM_GIT https://github.com/brechtvl/embree.git)
|
||||
|
||||
set(USD_VERSION 21.02)
|
||||
set(USD_VERSION 22.03)
|
||||
set(USD_URI https://github.com/PixarAnimationStudios/USD/archive/v${USD_VERSION}.tar.gz)
|
||||
set(USD_HASH 1dd1e2092d085ed393c1f7c450a4155a)
|
||||
set(USD_HASH e0e441a05057692a83124a1195b09eed)
|
||||
set(USD_HASH_TYPE MD5)
|
||||
set(USD_FILE usd-v${USD_VERSION}.tar.gz)
|
||||
|
||||
set(OIDN_VERSION 1.4.1)
|
||||
set(OIDN_VERSION 1.4.3)
|
||||
set(OIDN_URI https://github.com/OpenImageDenoise/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.src.tar.gz)
|
||||
set(OIDN_HASH df4007b0ab93b1c41cdf223b075d01c0)
|
||||
set(OIDN_HASH 027093eaf5e8b4e45835b991137b38e6)
|
||||
set(OIDN_HASH_TYPE MD5)
|
||||
set(OIDN_FILE oidn-${OIDN_VERSION}.src.tar.gz)
|
||||
|
||||
@@ -454,9 +458,9 @@ set(WL_PROTOCOLS_URI https://gitlab.freedesktop.org/wayland/wayland-protocols/-/
|
||||
set(WL_PROTOCOLS_HASH af5ca07e13517cdbab33504492cef54a)
|
||||
set(WL_PROTOCOLS_HASH_TYPE MD5)
|
||||
|
||||
set(ISPC_VERSION v1.16.0)
|
||||
set(ISPC_VERSION v1.17.0)
|
||||
set(ISPC_URI https://github.com/ispc/ispc/archive/${ISPC_VERSION}.tar.gz)
|
||||
set(ISPC_HASH 2e3abedbc0ea9aaec17d6562c632454d)
|
||||
set(ISPC_HASH 4f476a3109332a77fe839a9014c60ca9)
|
||||
set(ISPC_HASH_TYPE MD5)
|
||||
set(ISPC_FILE ispc-${ISPC_VERSION}.tar.gz)
|
||||
|
||||
@@ -492,3 +496,9 @@ set(BROTLI_URI https://github.com/google/brotli/archive/refs/tags/${BROTLI_VERSI
|
||||
set(BROTLI_HASH f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46)
|
||||
set(BROTLI_HASH_TYPE SHA256)
|
||||
set(BROTLI_FILE brotli-${BROTLI_VERSION}.tar.gz)
|
||||
|
||||
set(LEVEL_ZERO_VERSION v1.7.15)
|
||||
set(LEVEL_ZERO_URI https://github.com/oneapi-src/level-zero/archive/refs/tags/${LEVEL_ZERO_VERSION}.tar.gz)
|
||||
set(LEVEL_ZERO_HASH c39bb05a8e5898aa6c444e1704105b93d3f1888b9c333f8e7e73825ffbfb2617)
|
||||
set(LEVEL_ZERO_HASH_TYPE SHA256)
|
||||
set(LEVEL_ZERO_FILE level-zero-${LEVEL_ZERO_VERSION}.tar.gz)
|
||||
|
@@ -4,9 +4,15 @@
|
||||
# library itself does not depend on them, so should give no problems.
|
||||
|
||||
set(WEBP_EXTRA_ARGS
|
||||
-DWEBP_HAVE_SSE2=ON
|
||||
-DWEBP_HAVE_SSE41=OFF
|
||||
-DWEBP_HAVE_AVX2=OFF
|
||||
-DWEBP_BUILD_ANIM_UTILS=OFF
|
||||
-DWEBP_BUILD_CWEBP=OFF
|
||||
-DWEBP_BUILD_DWEBP=OFF
|
||||
-DWEBP_BUILD_GIF2WEBP=OFF
|
||||
-DWEBP_BUILD_IMG2WEBP=OFF
|
||||
-DWEBP_BUILD_VWEBP=OFF
|
||||
-DWEBP_BUILD_WEBPINFO=OFF
|
||||
-DWEBP_BUILD_WEBPMUX=OFF
|
||||
-DWEBP_BUILD_EXTRAS=OFF
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
|
@@ -37,10 +37,6 @@ graph[autosize = false, size = "25.7,8.3!", resolution = 300, overlap = false, s
|
||||
external_openimageio -- external_webp;
|
||||
external_openimageio -- external_opencolorio_extra;
|
||||
external_openmp -- external_clang;
|
||||
external_opensubdiv -- external_glew;
|
||||
external_opensubdiv -- external_glfw;
|
||||
external_opensubdiv -- external_clew;
|
||||
external_opensubdiv -- external_cuew;
|
||||
external_opensubdiv -- external_tbb;
|
||||
openvdb -- external_tbb;
|
||||
openvdb -- external_boost;
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,32 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright Contributors to the OpenColorIO Project.
|
||||
|
||||
project(pystring)
|
||||
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
set(HEADERS
|
||||
pystring.h
|
||||
)
|
||||
|
||||
set(SOURCES
|
||||
pystring.cpp
|
||||
)
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC ${HEADERS} ${SOURCES})
|
||||
|
||||
if(UNIX)
|
||||
set(pystring_CXX_FLAGS "${pystring_CXX_FLAGS} -fPIC")
|
||||
endif()
|
||||
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} ${pystring_CXX_FLAGS}"
|
||||
PUBLIC_HEADER "${HEADERS}"
|
||||
)
|
||||
|
||||
install(TARGETS ${PROJECT_NAME}
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
PUBLIC_HEADER DESTINATION include/pystring
|
||||
)
|
@@ -1,26 +0,0 @@
|
||||
--- CmakeLists.txt.orig 2015-12-31 03:46:41 -0700
|
||||
+++ CMakeLists.txt 2016-04-01 13:28:33 -0600
|
||||
@@ -22,3 +22,10 @@
|
||||
|
||||
add_executable(testcuew cuewTest/cuewTest.c include/cuew.h)
|
||||
target_link_libraries(testcuew cuew ${CMAKE_DL_LIBS})
|
||||
+
|
||||
+install(TARGETS cuew
|
||||
+ LIBRARY DESTINATION lib COMPONENT libraries
|
||||
+ ARCHIVE DESTINATION lib/static COMPONENT libraries)
|
||||
+
|
||||
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/cuew.h
|
||||
+ DESTINATION include/)
|
||||
\ No newline at end of file
|
||||
--- src/cuew.c 2016-04-01 13:41:43 -0600
|
||||
+++ src/cuew.c 2016-04-01 13:41:11 -0600
|
||||
@@ -15,7 +15,9 @@
|
||||
*/
|
||||
|
||||
#ifdef _MSC_VER
|
||||
+#if _MSC_VER < 1900
|
||||
# define snprintf _snprintf
|
||||
+#endif
|
||||
# define popen _popen
|
||||
# define pclose _pclose
|
||||
# define _CRT_SECURE_NO_WARNINGS
|
@@ -12,3 +12,19 @@ diff -Naur orig/common/sys/platform.h external_embree/common/sys/platform.h
|
||||
#else
|
||||
#define dll_export __attribute__ ((visibility ("default")))
|
||||
#define dll_import
|
||||
diff --git orig/common/tasking/CMakeLists.txt external_embree/common/tasking/CMakeLists.txt
|
||||
--- orig/common/tasking/CMakeLists.txt
|
||||
+++ external_embree/common/tasking/CMakeLists.txt
|
||||
@@ -27,7 +27,11 @@
|
||||
else()
|
||||
# If not found try getting older TBB via module (FindTBB.cmake)
|
||||
unset(TBB_DIR CACHE)
|
||||
- find_package(TBB 4.1 REQUIRED tbb)
|
||||
+ if (TBB_STATIC_LIB)
|
||||
+ find_package(TBB 4.1 REQUIRED tbb_static)
|
||||
+ else()
|
||||
+ find_package(TBB 4.1 REQUIRED tbb)
|
||||
+ endif()
|
||||
if (TBB_FOUND)
|
||||
TARGET_LINK_LIBRARIES(tasking PUBLIC TBB)
|
||||
TARGET_INCLUDE_DIRECTORIES(tasking PUBLIC "${TBB_INCLUDE_DIRS}")
|
||||
|
@@ -1,43 +1,6 @@
|
||||
diff -Naur external_ispc/CMakeLists.txt external_ispc_fixed/CMakeLists.txt
|
||||
--- external_ispc/CMakeLists.txt 2020-04-23 17:29:06 -0600
|
||||
+++ external_ispc_fixed/CMakeLists.txt 2020-05-05 09:01:09 -0600
|
||||
@@ -389,7 +389,7 @@
|
||||
|
||||
# Link against Clang libraries
|
||||
foreach(clangLib ${CLANG_LIBRARY_LIST})
|
||||
- find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS})
|
||||
+ find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS} ${CLANG_LIBRARY_DIR})
|
||||
list(APPEND CLANG_LIBRARY_FULL_PATH_LIST ${${clangLib}Path})
|
||||
endforeach()
|
||||
target_link_libraries(${PROJECT_NAME} ${CLANG_LIBRARY_FULL_PATH_LIST})
|
||||
diff -Naur orig/CMakeLists.txt external_ispc/CMakeLists.txt
|
||||
--- orig/CMakeLists.txt 2020-05-05 09:19:11 -0600
|
||||
+++ external_ispc/CMakeLists.txt 2020-05-05 09:26:44 -0600
|
||||
@@ -333,7 +333,7 @@
|
||||
|
||||
# Include directories
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
- ${LLVM_INCLUDE_DIRS}
|
||||
+ ${LLVM_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
|
||||
${GENX_DEPS_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
|
||||
diff -Naur orig/cmake/GenerateBuiltins.cmake.txt external_ispc/cmake/GenerateBuiltins.cmake.txt
|
||||
+++ orig/cmake/GenerateBuiltins.cmake 2020-05-25 13:32:40.830803821 +0200
|
||||
+++ external_ispc/cmake/GenerateBuiltins.cmake 2020-05-25 13:32:40.830803821 +0200
|
||||
@@ -97,6 +97,8 @@
|
||||
|
||||
if ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "x86")
|
||||
set(target_arch "i686")
|
||||
+ # Blender: disable 32bit due to build issues on Linux and being unnecessary.
|
||||
+ set(SKIP ON)
|
||||
elseif ("${bit}" STREQUAL "64" AND ${arch} STREQUAL "x86")
|
||||
set(target_arch "x86_64")
|
||||
elseif ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "arm")
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 46a8db8..f53beef 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
diff -Naur ispc-1.17.0.org/CMakeLists.txt ispc-1.17.0/CMakeLists.txt
|
||||
--- ispc-1.17.0.org/CMakeLists.txt 2022-01-15 01:35:15 -0700
|
||||
+++ ispc-1.17.0/CMakeLists.txt 2022-02-12 12:44:24 -0700
|
||||
@@ -36,8 +36,12 @@
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
@@ -53,7 +16,25 @@ index 46a8db8..f53beef 100644
|
||||
endif()
|
||||
|
||||
set(PROJECT_NAME ispc)
|
||||
@@ -412,6 +416,29 @@ else()
|
||||
@@ -443,7 +447,7 @@
|
||||
|
||||
# Include directories
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
- ${LLVM_INCLUDE_DIRS}
|
||||
+ ${LLVM_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
|
||||
${XE_DEPS_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
|
||||
@@ -507,7 +511,7 @@
|
||||
|
||||
# Link against Clang libraries
|
||||
foreach(clangLib ${CLANG_LIBRARY_LIST})
|
||||
- find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS})
|
||||
+ find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS} ${CLANG_LIBRARY_DIR})
|
||||
list(APPEND CLANG_LIBRARY_FULL_PATH_LIST ${${clangLib}Path})
|
||||
endforeach()
|
||||
target_link_libraries(${PROJECT_NAME} ${CLANG_LIBRARY_FULL_PATH_LIST})
|
||||
@@ -546,6 +550,29 @@
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -83,3 +64,15 @@ index 46a8db8..f53beef 100644
|
||||
# Build target for utility checking host ISA
|
||||
if (ISPC_INCLUDE_UTILS)
|
||||
add_executable(check_isa "")
|
||||
diff -Naur ispc-1.17.0.org/cmake/GenerateBuiltins.cmake ispc-1.17.0/cmake/GenerateBuiltins.cmake
|
||||
--- ispc-1.17.0.org/cmake/GenerateBuiltins.cmake 2022-01-15 01:35:15 -0700
|
||||
+++ ispc-1.17.0/cmake/GenerateBuiltins.cmake 2022-02-12 12:44:24 -0700
|
||||
@@ -124,6 +124,8 @@
|
||||
|
||||
if ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "x86")
|
||||
set(target_arch "i686")
|
||||
+ # Blender: disable 32bit due to build issues on Linux and being unnecessary.
|
||||
+ set(SKIP ON)
|
||||
elseif ("${bit}" STREQUAL "64" AND ${arch} STREQUAL "x86")
|
||||
set(target_arch "x86_64")
|
||||
elseif ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "arm")
|
||||
|
13
build_files/build_environment/patches/level-zero.diff
Normal file
13
build_files/build_environment/patches/level-zero.diff
Normal file
@@ -0,0 +1,13 @@
|
||||
diff -Naur external_levelzero_org/CMakeLists.txt external_levelzero/CMakeLists.txt
|
||||
--- external_levelzero_org/CMakeLists.txt 2022-03-07 13:22:11 -0700
|
||||
+++ external_levelzero/CMakeLists.txt 2022-03-29 13:22:15 -0600
|
||||
@@ -77,9 +77,6 @@
|
||||
#enabling Control Flow Guard
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /guard:cf")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /guard:cf")
|
||||
- # enable Spectre Mitigation
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qspectre")
|
||||
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Qspectre")
|
||||
endif()
|
||||
|
||||
#CXX compiler support
|
@@ -1,374 +0,0 @@
|
||||
Index: nanovdb/nanovdb/NanoVDB.h
|
||||
===================================================================
|
||||
--- a/nanovdb/nanovdb/NanoVDB.h (revision 62751)
|
||||
+++ b/nanovdb/nanovdb/NanoVDB.h (working copy)
|
||||
@@ -152,8 +152,8 @@
|
||||
|
||||
#endif // __CUDACC_RTC__
|
||||
|
||||
-#ifdef __CUDACC__
|
||||
-// Only define __hostdev__ when using NVIDIA CUDA compiler
|
||||
+#if defined(__CUDACC__) || defined(__HIP__)
|
||||
+// Only define __hostdev__ when using NVIDIA CUDA or HIP compiler
|
||||
#define __hostdev__ __host__ __device__
|
||||
#else
|
||||
#define __hostdev__
|
||||
@@ -461,7 +461,7 @@
|
||||
/// Maximum floating-point values
|
||||
template<typename T>
|
||||
struct Maximum;
|
||||
-#ifdef __CUDA_ARCH__
|
||||
+#if defined(__CUDA_ARCH__) || defined(__HIP__)
|
||||
template<>
|
||||
struct Maximum<int>
|
||||
{
|
||||
@@ -1006,10 +1006,10 @@
|
||||
using Vec3i = Vec3<int>;
|
||||
|
||||
/// @brief Return a single precision floating-point vector of this coordinate
|
||||
-Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
||||
+inline __hostdev__ Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
||||
|
||||
/// @brief Return a double precision floating-point vector of this coordinate
|
||||
-Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
||||
+inline __hostdev__ Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
||||
|
||||
// ----------------------------> Vec4 <--------------------------------------
|
||||
|
||||
@@ -1820,7 +1820,7 @@
|
||||
}; // Map
|
||||
|
||||
template<typename Mat4T>
|
||||
-void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
||||
+__hostdev__ void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
||||
{
|
||||
float * mf = mMatF, *vf = mVecF;
|
||||
float* mif = mInvMatF;
|
||||
@@ -2170,7 +2170,7 @@
|
||||
}; // Class Grid
|
||||
|
||||
template<typename TreeT>
|
||||
-int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
||||
+__hostdev__ int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
||||
{
|
||||
for (uint32_t i = 0, n = blindDataCount(); i < n; ++i)
|
||||
if (blindMetaData(i).mSemantic == semantic)
|
||||
@@ -2328,7 +2328,7 @@
|
||||
}; // Tree class
|
||||
|
||||
template<typename RootT>
|
||||
-void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
||||
+__hostdev__ void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
||||
{
|
||||
min = this->root().valueMin();
|
||||
max = this->root().valueMax();
|
||||
@@ -2336,7 +2336,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<typename NodeT>
|
||||
-const NodeT* Tree<RootT>::getNode(uint32_t i) const
|
||||
+__hostdev__ const NodeT* Tree<RootT>::getNode(uint32_t i) const
|
||||
{
|
||||
static_assert(is_same<TreeNodeT<NodeT::LEVEL>, NodeT>::value, "Tree::getNode: unvalid node type");
|
||||
NANOVDB_ASSERT(i < DataType::mCount[NodeT::LEVEL]);
|
||||
@@ -2345,7 +2345,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<int LEVEL>
|
||||
-const typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i) const
|
||||
+__hostdev__ const typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i) const
|
||||
{
|
||||
NANOVDB_ASSERT(i < DataType::mCount[LEVEL]);
|
||||
return reinterpret_cast<const TreeNodeT<LEVEL>*>(reinterpret_cast<const uint8_t*>(this) + DataType::mBytes[LEVEL]) + i;
|
||||
@@ -2353,7 +2353,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<typename NodeT>
|
||||
-NodeT* Tree<RootT>::getNode(uint32_t i)
|
||||
+__hostdev__ NodeT* Tree<RootT>::getNode(uint32_t i)
|
||||
{
|
||||
static_assert(is_same<TreeNodeT<NodeT::LEVEL>, NodeT>::value, "Tree::getNode: invalid node type");
|
||||
NANOVDB_ASSERT(i < DataType::mCount[NodeT::LEVEL]);
|
||||
@@ -2362,7 +2362,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<int LEVEL>
|
||||
-typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i)
|
||||
+__hostdev__ typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i)
|
||||
{
|
||||
NANOVDB_ASSERT(i < DataType::mCount[LEVEL]);
|
||||
return reinterpret_cast<TreeNodeT<LEVEL>*>(reinterpret_cast<uint8_t*>(this) + DataType::mBytes[LEVEL]) + i;
|
||||
@@ -2370,7 +2370,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<typename NodeT>
|
||||
-uint32_t Tree<RootT>::getNodeID(const NodeT& node) const
|
||||
+__hostdev__ uint32_t Tree<RootT>::getNodeID(const NodeT& node) const
|
||||
{
|
||||
static_assert(is_same<TreeNodeT<NodeT::LEVEL>, NodeT>::value, "Tree::getNodeID: invalid node type");
|
||||
const NodeT* first = reinterpret_cast<const NodeT*>(reinterpret_cast<const uint8_t*>(this) + DataType::mBytes[NodeT::LEVEL]);
|
||||
@@ -2380,7 +2380,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<typename NodeT>
|
||||
-uint32_t Tree<RootT>::getLinearOffset(const NodeT& node) const
|
||||
+__hostdev__ uint32_t Tree<RootT>::getLinearOffset(const NodeT& node) const
|
||||
{
|
||||
return this->getNodeID(node) + DataType::mPFSum[NodeT::LEVEL];
|
||||
}
|
||||
@@ -3366,7 +3366,7 @@
|
||||
}; // LeafNode class
|
||||
|
||||
template<typename ValueT, typename CoordT, template<uint32_t> class MaskT, uint32_t LOG2DIM>
|
||||
-inline void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
||||
+inline __hostdev__ void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
||||
{
|
||||
static_assert(LOG2DIM == 3, "LeafNode::updateBBox: only supports LOGDIM = 3!");
|
||||
if (!this->isActive()) return;
|
||||
Index: nanovdb/nanovdb/util/SampleFromVoxels.h
|
||||
===================================================================
|
||||
--- a/nanovdb/nanovdb/util/SampleFromVoxels.h (revision 62751)
|
||||
+++ b/nanovdb/nanovdb/util/SampleFromVoxels.h (working copy)
|
||||
@@ -22,7 +22,7 @@
|
||||
#define NANOVDB_SAMPLE_FROM_VOXELS_H_HAS_BEEN_INCLUDED
|
||||
|
||||
// Only define __hostdev__ when compiling as NVIDIA CUDA
|
||||
-#ifdef __CUDACC__
|
||||
+#if defined(__CUDACC__) || defined(__HIP__)
|
||||
#define __hostdev__ __host__ __device__
|
||||
#else
|
||||
#include <cmath> // for floor
|
||||
@@ -136,7 +136,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
||||
{
|
||||
const CoordT ijk = Round<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -147,7 +147,7 @@
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
||||
{
|
||||
if (ijk != mPos) {
|
||||
mPos = ijk;
|
||||
@@ -158,7 +158,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
||||
{
|
||||
return mAcc.getValue(Round<CoordT>(xyz));
|
||||
}
|
||||
@@ -195,7 +195,7 @@
|
||||
}; // TrilinearSamplerBase
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
||||
+__hostdev__ void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
||||
{
|
||||
v[0][0][0] = mAcc.getValue(ijk); // i, j, k
|
||||
|
||||
@@ -224,7 +224,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
{
|
||||
#if 0
|
||||
auto lerp = [](ValueT a, ValueT b, ValueT w){ return fma(w, b-a, a); };// = w*(b-a) + a
|
||||
@@ -239,7 +239,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
{
|
||||
static_assert(std::is_floating_point<ValueT>::value, "TrilinearSampler::gradient requires a floating-point type");
|
||||
#if 0
|
||||
@@ -270,7 +270,7 @@
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
||||
{
|
||||
static_assert(std::is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
||||
const bool less = v[0][0][0] < ValueT(0);
|
||||
@@ -363,7 +363,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mVal);
|
||||
@@ -370,7 +370,7 @@
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
||||
{
|
||||
return ijk == mPos ? mVal[0][0][0] : BaseT::mAcc.getValue(ijk);
|
||||
}
|
||||
@@ -377,7 +377,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::gradient(xyz, mVal);
|
||||
@@ -393,7 +393,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -406,7 +406,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -418,7 +418,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
auto lerp = [](ValueT a, ValueT b, RealT w) { return a + ValueT(w) * (b - a); };
|
||||
|
||||
@@ -463,7 +463,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
||||
+inline __hostdev__ Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -473,7 +473,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -510,7 +510,7 @@
|
||||
}; // TriquadraticSamplerBase
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
||||
+__hostdev__ void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
||||
{
|
||||
CoordT p(ijk[0] - 1, 0, 0);
|
||||
for (int dx = 0; dx < 3; ++dx, ++p[0]) {
|
||||
@@ -526,7 +526,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
||||
+__hostdev__ typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
||||
{
|
||||
auto kernel = [](const ValueT* value, double weight)->ValueT {
|
||||
return weight * (weight * (0.5f * (value[0] + value[2]) - value[1]) +
|
||||
@@ -545,7 +545,7 @@
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
||||
+__hostdev__ bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
||||
{
|
||||
static_assert(std::is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
||||
const bool less = v[0][0][0] < ValueT(0);
|
||||
@@ -624,7 +624,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mVal);
|
||||
@@ -631,7 +631,7 @@
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
||||
{
|
||||
return ijk == mPos ? mVal[1][1][1] : BaseT::mAcc.getValue(ijk);
|
||||
}
|
||||
@@ -646,7 +646,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -657,7 +657,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[3][3][3];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -667,7 +667,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[3][3][3];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -710,7 +710,7 @@
|
||||
}; // TricubicSampler
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
||||
+__hostdev__ void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
||||
{
|
||||
auto fetch = [&](int i, int j, int k) -> ValueT& { return C[((i + 1) << 4) + ((j + 1) << 2) + k + 1]; };
|
||||
|
||||
@@ -929,7 +929,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mC);
|
||||
@@ -937,7 +937,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
@@ -1,35 +1,16 @@
|
||||
diff -Naur openvdb-8.0.0/cmake/FindIlmBase.cmake openvdb/cmake/FindIlmBase.cmake
|
||||
--- openvdb-8.0.0/cmake/FindIlmBase.cmake 2020-12-24 10:13:14 -0700
|
||||
+++ openvdb/cmake/FindIlmBase.cmake 2021-02-05 12:07:49 -0700
|
||||
@@ -217,6 +217,12 @@
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
|
||||
endif()
|
||||
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES "${_IlmBase_Version_Suffix}.lib")
|
||||
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||
+ "_s.lib"
|
||||
+ )
|
||||
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||
+ "_s_d.lib"
|
||||
+ )
|
||||
else()
|
||||
if(ILMBASE_USE_STATIC_LIBS)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
||||
diff -Naur openvdb-8.0.0/cmake/FindOpenEXR.cmake openvdb/cmake/FindOpenEXR.cmake
|
||||
--- openvdb-8.0.0/cmake/FindOpenEXR.cmake 2020-12-24 10:13:14 -0700
|
||||
+++ openvdb/cmake/FindOpenEXR.cmake 2021-02-05 12:23:39 -0700
|
||||
@@ -210,6 +210,12 @@
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
|
||||
endif()
|
||||
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES "${_OpenEXR_Version_Suffix}.lib")
|
||||
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||
+ "_s.lib"
|
||||
+ )
|
||||
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||
+ "_s_d.lib"
|
||||
+ )
|
||||
else()
|
||||
if(OPENEXR_USE_STATIC_LIBS)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
||||
diff -ur openvdb-9.0.0/cmake/FindTBB.cmake openvdb/cmake/FindTBB.cmake
|
||||
--- openvdb-9.0.0/cmake/FindTBB.cmake 2021-10-30 03:55:40.000000000 +0100
|
||||
+++ openvdb/cmake/FindTBB.cmake 2022-03-31 11:33:15.592329750 +0100
|
||||
@@ -252,7 +252,8 @@
|
||||
set(_TBB_LIB_NAME "${_TBB_LIB_NAME}${TBB_DEBUG_SUFFIX}")
|
||||
endif()
|
||||
|
||||
- find_library(Tbb_${COMPONENT}_LIBRARY_${BUILD_TYPE} ${_TBB_LIB_NAME}
|
||||
+ find_library(Tbb_${COMPONENT}_LIBRARY_${BUILD_TYPE}
|
||||
+ NAMES ${_TBB_LIB_NAME} ${_TBB_LIB_NAME}_static
|
||||
${_FIND_TBB_ADDITIONAL_OPTIONS}
|
||||
PATHS ${_TBB_LIBRARYDIR_SEARCH_DIRS}
|
||||
PATH_SUFFIXES ${CMAKE_INSTALL_LIBDIR} lib64 lib
|
||||
diff -Naur openvdb-8.0.0/openvdb/openvdb/CMakeLists.txt openvdb/openvdb/openvdb/CMakeLists.txt
|
||||
--- openvdb-8.0.0/openvdb/openvdb/CMakeLists.txt 2020-12-24 10:13:14 -0700
|
||||
+++ openvdb/openvdb/openvdb/CMakeLists.txt 2021-02-05 11:18:33 -0700
|
||||
@@ -118,3 +99,321 @@ diff -Naur openvdb-8.0.0/openvdb/openvdb/version.rc.in openvdb/openvdb/openvdb/v
|
||||
+
|
||||
+ END
|
||||
+END
|
||||
diff --git a/nanovdb/nanovdb/NanoVDB.h b/nanovdb/nanovdb/NanoVDB.h
|
||||
index cc2e54b77..703d2eabc 100644
|
||||
--- a/nanovdb/nanovdb/NanoVDB.h
|
||||
+++ b/nanovdb/nanovdb/NanoVDB.h
|
||||
@@ -161,8 +161,8 @@ typedef unsigned long long uint64_t;
|
||||
|
||||
#endif // __CUDACC_RTC__
|
||||
|
||||
-#ifdef __CUDACC__
|
||||
-// Only define __hostdev__ when using NVIDIA CUDA compiler
|
||||
+#if defined(__CUDACC__) || defined(__HIP__)
|
||||
+// Only define __hostdev__ when using NVIDIA CUDA or HIP compiler
|
||||
#define __hostdev__ __host__ __device__
|
||||
#else
|
||||
#define __hostdev__
|
||||
@@ -611,7 +611,7 @@ struct Delta<double>
|
||||
/// Maximum floating-point values
|
||||
template<typename T>
|
||||
struct Maximum;
|
||||
-#ifdef __CUDA_ARCH__
|
||||
+#if defined(__CUDA_ARCH__) || defined(__HIP__)
|
||||
template<>
|
||||
struct Maximum<int>
|
||||
{
|
||||
@@ -1176,10 +1176,10 @@ using Vec3f = Vec3<float>;
|
||||
using Vec3i = Vec3<int>;
|
||||
|
||||
/// @brief Return a single precision floating-point vector of this coordinate
|
||||
-Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
||||
+__hostdev__ inline Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
||||
|
||||
/// @brief Return a double precision floating-point vector of this coordinate
|
||||
-Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
||||
+__hostdev__ inline Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
||||
|
||||
// ----------------------------> Vec4 <--------------------------------------
|
||||
|
||||
@@ -2042,7 +2042,7 @@ struct Map
|
||||
}; // Map
|
||||
|
||||
template<typename Mat4T>
|
||||
-void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
||||
+__hostdev__ void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
||||
{
|
||||
float * mf = mMatF, *vf = mVecF;
|
||||
float* mif = mInvMatF;
|
||||
@@ -2486,7 +2486,7 @@ class Grid : private GridData
|
||||
}; // Class Grid
|
||||
|
||||
template<typename TreeT>
|
||||
-int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
||||
+__hostdev__ int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
||||
{
|
||||
for (uint32_t i = 0, n = this->blindDataCount(); i < n; ++i)
|
||||
if (this->blindMetaData(i).mSemantic == semantic)
|
||||
@@ -2671,7 +2671,7 @@ class Tree : private TreeData<RootT::LEVEL>
|
||||
}; // Tree class
|
||||
|
||||
template<typename RootT>
|
||||
-void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
||||
+__hostdev__ void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
||||
{
|
||||
min = this->root().minimum();
|
||||
max = this->root().maximum();
|
||||
@@ -3880,7 +3880,7 @@ class LeafNode : private LeafData<BuildT, CoordT, MaskT, Log2Dim>
|
||||
}; // LeafNode class
|
||||
|
||||
template<typename ValueT, typename CoordT, template<uint32_t> class MaskT, uint32_t LOG2DIM>
|
||||
-inline void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
||||
+__hostdev__ inline void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
||||
{
|
||||
static_assert(LOG2DIM == 3, "LeafNode::updateBBox: only supports LOGDIM = 3!");
|
||||
if (!this->isActive()) return;
|
||||
diff --git a/nanovdb/nanovdb/util/SampleFromVoxels.h b/nanovdb/nanovdb/util/SampleFromVoxels.h
|
||||
index 852123dac..e779d66cf 100644
|
||||
--- a/nanovdb/nanovdb/util/SampleFromVoxels.h
|
||||
+++ b/nanovdb/nanovdb/util/SampleFromVoxels.h
|
||||
@@ -22,7 +22,7 @@
|
||||
#define NANOVDB_SAMPLE_FROM_VOXELS_H_HAS_BEEN_INCLUDED
|
||||
|
||||
// Only define __hostdev__ when compiling as NVIDIA CUDA
|
||||
-#ifdef __CUDACC__
|
||||
+#if defined(__CUDACC__) || defined(__HIP__)
|
||||
#define __hostdev__ __host__ __device__
|
||||
#else
|
||||
#include <cmath> // for floor
|
||||
@@ -136,7 +136,7 @@ class SampleFromVoxels<TreeOrAccT, 0, false>
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
||||
{
|
||||
const CoordT ijk = Round<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -147,7 +147,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
||||
{
|
||||
if (ijk != mPos) {
|
||||
mPos = ijk;
|
||||
@@ -158,7 +158,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
||||
{
|
||||
return mAcc.getValue(Round<CoordT>(xyz));
|
||||
}
|
||||
@@ -195,7 +195,7 @@ class TrilinearSampler
|
||||
}; // TrilinearSamplerBase
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
||||
+__hostdev__ void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
||||
{
|
||||
v[0][0][0] = mAcc.getValue(ijk); // i, j, k
|
||||
|
||||
@@ -224,7 +224,7 @@ void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) co
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
{
|
||||
#if 0
|
||||
auto lerp = [](ValueT a, ValueT b, ValueT w){ return fma(w, b-a, a); };// = w*(b-a) + a
|
||||
@@ -239,7 +239,7 @@ typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
{
|
||||
static_assert(is_floating_point<ValueT>::value, "TrilinearSampler::gradient requires a floating-point type");
|
||||
#if 0
|
||||
@@ -270,7 +270,7 @@ Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(con
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
||||
{
|
||||
static_assert(is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
||||
const bool less = v[0][0][0] < ValueT(0);
|
||||
@@ -363,21 +363,21 @@ class SampleFromVoxels<TreeOrAccT, 1, true> : public TrilinearSampler<TreeOrAccT
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mVal);
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
||||
{
|
||||
return ijk == mPos ? mVal[0][0][0] : BaseT::mAcc.getValue(ijk);
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::gradient(xyz, mVal);
|
||||
@@ -393,7 +393,7 @@ __hostdev__ bool SampleFromVoxels<TreeOrAccT, 1, true>::zeroCrossing(Vec3T<RealT
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -406,7 +406,7 @@ void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -418,7 +418,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator(
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
auto lerp = [](ValueT a, ValueT b, RealT w) { return a + ValueT(w) * (b - a); };
|
||||
|
||||
@@ -463,7 +463,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator(
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -473,7 +473,7 @@ inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, fal
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -510,7 +510,7 @@ class TriquadraticSampler
|
||||
}; // TriquadraticSamplerBase
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
||||
+__hostdev__ void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
||||
{
|
||||
CoordT p(ijk[0] - 1, 0, 0);
|
||||
for (int dx = 0; dx < 3; ++dx, ++p[0]) {
|
||||
@@ -526,7 +526,7 @@ void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
||||
+__hostdev__ typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
||||
{
|
||||
auto kernel = [](const ValueT* value, double weight)->ValueT {
|
||||
return weight * (weight * (0.5f * (value[0] + value[2]) - value[1]) +
|
||||
@@ -545,7 +545,7 @@ typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
||||
+__hostdev__ bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
||||
{
|
||||
static_assert(is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
||||
const bool less = v[0][0][0] < ValueT(0);
|
||||
@@ -624,14 +624,14 @@ class SampleFromVoxels<TreeOrAccT, 2, true> : public TriquadraticSampler<TreeOrA
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mVal);
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
||||
{
|
||||
return ijk == mPos ? mVal[1][1][1] : BaseT::mAcc.getValue(ijk);
|
||||
}
|
||||
@@ -646,7 +646,7 @@ __hostdev__ bool SampleFromVoxels<TreeOrAccT, 2, true>::zeroCrossing(Vec3T<RealT
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -657,7 +657,7 @@ void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[3][3][3];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -667,7 +667,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator(
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[3][3][3];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -710,7 +710,7 @@ class TricubicSampler
|
||||
}; // TricubicSampler
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
||||
+__hostdev__ void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
||||
{
|
||||
auto fetch = [&](int i, int j, int k) -> ValueT& { return C[((i + 1) << 4) + ((j + 1) << 2) + k + 1]; };
|
||||
|
||||
@@ -929,7 +929,7 @@ class SampleFromVoxels<TreeOrAccT, 3, true> : public TricubicSampler<TreeOrAccT>
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mC);
|
||||
@@ -937,7 +937,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
|
||||
|
@@ -48,25 +48,6 @@ diff -Naur org/CMakeLists.txt external_osl/CMakeLists.txt
|
||||
|
||||
set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem")
|
||||
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 990f50d69..46ef7351d 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -252,11 +252,9 @@ install (EXPORT OSL_EXPORTED_TARGETS
|
||||
FILE ${OSL_TARGETS_EXPORT_NAME}
|
||||
NAMESPACE ${PROJECT_NAME}::)
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
-osl_add_all_tests()
|
||||
-
|
||||
+if (${PROJECT_NAME}_BUILD_TESTS AND NOT ${PROJECT_NAME}_IS_SUBPROJECT)
|
||||
+ osl_add_all_tests()
|
||||
+endif ()
|
||||
|
||||
if (NOT ${PROJECT_NAME}_IS_SUBPROJECT)
|
||||
include (packaging)
|
||||
diff -Naur external_osl_orig/src/cmake/externalpackages.cmake external_osl/src/cmake/externalpackages.cmake
|
||||
--- external_osl_orig/src/cmake/externalpackages.cmake 2021-06-01 13:44:18 -0600
|
||||
+++ external_osl/src/cmake/externalpackages.cmake 2021-06-28 07:44:32 -0600
|
||||
|
@@ -10,217 +10,22 @@ diff -x .git -ur usd.orig/cmake/defaults/Packages.cmake external_usd/cmake/defau
|
||||
add_definitions(${TBB_DEFINITIONS})
|
||||
|
||||
# --math
|
||||
diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros/Public.cmake
|
||||
--- external_usd_base/cmake/macros/Public.cmake 2019-10-24 14:39:53 -0600
|
||||
+++ external_usd/cmake/macros/Public.cmake 2020-01-11 13:33:29 -0700
|
||||
@@ -996,6 +996,12 @@
|
||||
foreach(lib ${PXR_OBJECT_LIBS})
|
||||
string(TOUPPER ${lib} uppercaseName)
|
||||
list(APPEND exports "${uppercaseName}_EXPORTS=1")
|
||||
+ # When building for blender, we do NOT want to export all symbols on windows.
|
||||
+ # This is a dirty hack, but USD makes it impossible to do the right thing
|
||||
+ # with the default options exposed.
|
||||
+ if (WIN32)
|
||||
+ list(APPEND exports "PXR_STATIC=1")
|
||||
+ endif()
|
||||
endforeach()
|
||||
foreach(lib ${PXR_OBJECT_LIBS})
|
||||
set(objects "${objects};\$<TARGET_OBJECTS:${lib}>")
|
||||
diff -ru USD-20.11/pxr/base/tf/pxrLZ4/lz4.cpp external_usd/pxr/base/tf/pxrLZ4/lz4.cpp
|
||||
--- USD-20.11/pxr/base/tf/pxrLZ4/lz4.cpp 2020-10-14 19:25:19.000000000 +0100
|
||||
+++ external_usd/pxr/base/tf/pxrLZ4/lz4.cpp 2021-02-09 09:28:51.496190085 +0000
|
||||
@@ -614,6 +614,15 @@
|
||||
/*-************************************
|
||||
* Internal Definitions used in Tests
|
||||
**************************************/
|
||||
+
|
||||
+/*******************************************************************
|
||||
+ * Disabled in Blender. The BLOSC library also exposes these
|
||||
+ * functions, and this causes 'duplicate symbol' linker errors.
|
||||
+ *
|
||||
+ * This problem has been reported upstream at
|
||||
+ * https://github.com/PixarAnimationStudios/USD/issues/1447
|
||||
+ *
|
||||
+ *******************************************************************
|
||||
#if defined (__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -627,6 +636,7 @@
|
||||
#if defined (__cplusplus)
|
||||
}
|
||||
#endif
|
||||
+********************************************************************/
|
||||
|
||||
/*-******************************
|
||||
* Compression functions
|
||||
|
||||
From 442d087962f762deeb8b6e49a0955753fcf9aeb9 Mon Sep 17 00:00:00 2001
|
||||
From: Tsahi Zidenberg <tsahee@amazon.com>
|
||||
Date: Sun, 15 Nov 2020 15:18:24 +0000
|
||||
Subject: [PATCH 1/2] stackTrace: support aarch64/linux
|
||||
|
||||
stacktrace calls syscall directly via assembler. Create compatible
|
||||
aarch64 code.
|
||||
---
|
||||
pxr/base/arch/stackTrace.cpp | 30 ++++++++++++++++++++++++------
|
||||
1 file changed, 24 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/pxr/base/arch/stackTrace.cpp b/pxr/base/arch/stackTrace.cpp
|
||||
index dcc1dfd46..c11aabeb1 100644
|
||||
--- a/pxr/base/arch/stackTrace.cpp
|
||||
+++ b/pxr/base/arch/stackTrace.cpp
|
||||
@@ -583,7 +583,6 @@ nonLockingLinux__execve (const char *file,
|
||||
char *const argv[],
|
||||
char *const envp[])
|
||||
{
|
||||
-#if defined(ARCH_BITS_64)
|
||||
/*
|
||||
* We make a direct system call here, because we can't find an
|
||||
* execve which corresponds with the non-locking fork we call
|
||||
@@ -594,7 +593,27 @@ nonLockingLinux__execve (const char *file,
|
||||
* hangs in a threaded app. (We use the non-locking fork to get
|
||||
* around problems with forking when we have had memory
|
||||
* corruption.) whew.
|
||||
- *
|
||||
+ */
|
||||
+
|
||||
+ unsigned long result;
|
||||
+
|
||||
+#if defined (__aarch64__)
|
||||
+ {
|
||||
+ register long __file_result asm ("x0") = (long)file;
|
||||
+ register char* const* __argv asm ("x1") = argv;
|
||||
+ register char* const* __envp asm ("x2") = envp;
|
||||
+ register long __num_execve asm ("x8") = 221;
|
||||
+ __asm__ __volatile__ (
|
||||
+ "svc 0"
|
||||
+ : "=r" (__file_result)
|
||||
+ : "r"(__num_execve), "r" (__file_result), "r" (__argv), "r" (__envp)
|
||||
+ : "memory"
|
||||
+ );
|
||||
+ result = __file_result;
|
||||
+ }
|
||||
+#elif defined(ARCH_CPU_INTEL) && defined(ARCH_BITS_64)
|
||||
+
|
||||
+ /*
|
||||
* %rdi, %rsi, %rdx, %rcx, %r8, %r9 are args 0-5
|
||||
* syscall clobbers %rcx and %r11
|
||||
*
|
||||
@@ -603,7 +622,6 @@ nonLockingLinux__execve (const char *file,
|
||||
* constraints to gcc.
|
||||
*/
|
||||
diff -Naur usd_orig/cmake/defaults/msvcdefaults.cmake external_usd/cmake/defaults/msvcdefaults.cmake
|
||||
--- usd_orig/cmake/defaults/msvcdefaults.cmake 2022-02-18 14:49:09 -0700
|
||||
+++ external_usd/cmake/defaults/msvcdefaults.cmake 2022-03-14 11:41:50 -0600
|
||||
@@ -120,9 +120,6 @@
|
||||
# for all translation units.
|
||||
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /bigobj")
|
||||
|
||||
- unsigned long result;
|
||||
__asm__ __volatile__ (
|
||||
"mov %0, %%rdi \n\t"
|
||||
"mov %%rcx, %%rsi \n\t"
|
||||
@@ -614,6 +632,9 @@ nonLockingLinux__execve (const char *file,
|
||||
: "0" (file), "c" (argv), "d" (envp)
|
||||
: "memory", "cc", "r11"
|
||||
);
|
||||
+#else
|
||||
+#error Unknown architecture
|
||||
+#endif
|
||||
|
||||
if (result >= 0xfffffffffffff000) {
|
||||
errno = -result;
|
||||
@@ -621,9 +642,6 @@ nonLockingLinux__execve (const char *file,
|
||||
}
|
||||
|
||||
return result;
|
||||
-#else
|
||||
-#error Unknown architecture
|
||||
-#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
From a1dffe02519bb3c6ccbbe8c6c58304da5db98995 Mon Sep 17 00:00:00 2001
|
||||
From: Tsahi Zidenberg <tsahee@amazon.com>
|
||||
Date: Sun, 15 Nov 2020 15:22:52 +0000
|
||||
Subject: [PATCH 2/2] timing: support aarch64/linux
|
||||
|
||||
The aarch64 arch-timer is directly accessible to userspace via two
|
||||
registers:
|
||||
CNTVCT_EL0 - holds the current counter value
|
||||
CNTFRQ_EL0 - holds the counter frequency (in Hz)
|
||||
---
|
||||
pxr/base/arch/timing.cpp | 6 ++++++
|
||||
pxr/base/arch/timing.h | 6 +++++-
|
||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/pxr/base/arch/timing.cpp b/pxr/base/arch/timing.cpp
|
||||
index 27ad58fed..9022950c1 100644
|
||||
--- a/pxr/base/arch/timing.cpp
|
||||
+++ b/pxr/base/arch/timing.cpp
|
||||
@@ -59,6 +59,11 @@ ARCH_HIDDEN
|
||||
void
|
||||
Arch_InitTickTimer()
|
||||
{
|
||||
+#ifdef __aarch64__
|
||||
+ uint64_t counter_hz;
|
||||
+ __asm __volatile("mrs %0, CNTFRQ_EL0" : "=&r" (counter_hz));
|
||||
+ Arch_NanosecondsPerTick = double(1e9) / double(counter_hz);
|
||||
+#else
|
||||
// NOTE: Normally ifstream would be cleaner, but it causes crashes when
|
||||
// used in conjunction with DSOs and the Intel Compiler.
|
||||
FILE *in;
|
||||
@@ -135,6 +140,7 @@ Arch_InitTickTimer()
|
||||
}
|
||||
|
||||
Arch_NanosecondsPerTick = double(1e9) / double(cpuHz);
|
||||
+#endif
|
||||
}
|
||||
#elif defined(ARCH_OS_WINDOWS)
|
||||
|
||||
diff --git a/pxr/base/arch/timing.h b/pxr/base/arch/timing.h
|
||||
index 67ec0d15f..6dc3e85a0 100644
|
||||
--- a/pxr/base/arch/timing.h
|
||||
+++ b/pxr/base/arch/timing.h
|
||||
@@ -36,7 +36,7 @@
|
||||
/// \addtogroup group_arch_SystemFunctions
|
||||
///@{
|
||||
|
||||
-#if defined(ARCH_OS_LINUX)
|
||||
+#if defined(ARCH_OS_LINUX) && defined(ARCH_CPU_INTEL)
|
||||
#include <x86intrin.h>
|
||||
#elif defined(ARCH_OS_DARWIN)
|
||||
#include <mach/mach_time.h>
|
||||
@@ -69,6 +69,10 @@ ArchGetTickTime()
|
||||
#elif defined(ARCH_CPU_INTEL)
|
||||
// On Intel we'll use the rdtsc instruction.
|
||||
return __rdtsc();
|
||||
+#elif defined (__aarch64__)
|
||||
+ uint64_t result;
|
||||
+ __asm __volatile("mrs %0, CNTVCT_EL0" : "=&r" (result));
|
||||
+ return result;
|
||||
#else
|
||||
#error Unknown architecture.
|
||||
#endif
|
||||
|
||||
diff --git a/pxr/base/arch/demangle.cpp b/pxr/base/arch/demangle.cpp
|
||||
index 67ec0d15f..6dc3e85a0 100644
|
||||
--- a/pxr/base/arch/demangle.cpp
|
||||
+++ b/pxr/base/arch/demangle.cpp
|
||||
@@ -36,6 +36,7 @@
|
||||
#if (ARCH_COMPILER_GCC_MAJOR == 3 && ARCH_COMPILER_GCC_MINOR >= 1) || \
|
||||
ARCH_COMPILER_GCC_MAJOR > 3 || defined(ARCH_COMPILER_CLANG)
|
||||
#define _AT_LEAST_GCC_THREE_ONE_OR_CLANG
|
||||
+#include <cxxabi.h>
|
||||
#endif
|
||||
|
||||
PXR_NAMESPACE_OPEN_SCOPE
|
||||
@@ -138,7 +139,6 @@
|
||||
#endif
|
||||
|
||||
#if defined(_AT_LEAST_GCC_THREE_ONE_OR_CLANG)
|
||||
-#include <cxxabi.h>
|
||||
|
||||
/*
|
||||
* This routine doesn't work when you get to gcc3.4.
|
||||
-# Enable PDB generation.
|
||||
-set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /Zi")
|
||||
-
|
||||
# Enable multiprocessor builds.
|
||||
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /MP")
|
||||
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /Gm-")
|
||||
|
||||
diff --git a/pxr/base/work/singularTask.h b/pxr/base/work/singularTask.h
|
||||
index 67ec0d15f..6dc3e85a0 100644
|
||||
--- a/pxr/base/work/singularTask.h
|
||||
+++ b/pxr/base/work/singularTask.h
|
||||
@@ -120,7 +120,7 @@
|
||||
@@ -232,3 +37,66 @@ index 67ec0d15f..6dc3e85a0 100644
|
||||
do { _fn(); } while (
|
||||
!count.compare_exchange_strong(old, 0));
|
||||
});
|
||||
|
||||
diff --git a/pxr/usd/sdr/shaderMetadataHelpers.h b/pxr/usd/sdr/shaderMetadataHelpers.h
|
||||
--- a/pxr/usd/sdr/shaderMetadataHelpers.h
|
||||
+++ b/pxr/usd/sdr/shaderMetadataHelpers.h
|
||||
@@ -32,6 +32,8 @@
|
||||
#include "pxr/base/tf/token.h"
|
||||
#include "pxr/usd/sdr/declare.h"
|
||||
|
||||
+#include <limits>
|
||||
+
|
||||
PXR_NAMESPACE_OPEN_SCOPE
|
||||
|
||||
/// \namespace ShaderMetadataHelpers
|
||||
|
||||
diff --git a/pxr/base/arch/timing.h b/pxr/base/arch/timing.h
|
||||
index 517561f..fda5a1f 100644
|
||||
--- a/pxr/base/arch/timing.h
|
||||
+++ b/pxr/base/arch/timing.h
|
||||
@@ -91,6 +91,10 @@ ArchGetTickTime()
|
||||
inline uint64_t
|
||||
ArchGetStartTickTime()
|
||||
{
|
||||
+ // BLENDER: avoid using rdtsc instruction that is not supported on older CPUs.
|
||||
+ return ArchGetTickTime();
|
||||
+
|
||||
+#if 0
|
||||
uint64_t t;
|
||||
#if defined (ARCH_OS_DARWIN)
|
||||
return ArchGetTickTime();
|
||||
@@ -123,6 +127,7 @@ ArchGetStartTickTime()
|
||||
#error "Unsupported architecture."
|
||||
#endif
|
||||
return t;
|
||||
+#endif
|
||||
}
|
||||
|
||||
/// Get a "stop" tick time for measuring an interval of time. See
|
||||
@@ -132,6 +137,10 @@ ArchGetStartTickTime()
|
||||
inline uint64_t
|
||||
ArchGetStopTickTime()
|
||||
{
|
||||
+ // BLENDER: avoid using rdtsc instruction that is not supported on older CPUs.
|
||||
+ return ArchGetTickTime();
|
||||
+
|
||||
+#if 0
|
||||
uint64_t t;
|
||||
#if defined (ARCH_OS_DARWIN)
|
||||
return ArchGetTickTime();
|
||||
@@ -162,11 +171,11 @@ ArchGetStopTickTime()
|
||||
#error "Unsupported architecture."
|
||||
#endif
|
||||
return t;
|
||||
+#endif
|
||||
}
|
||||
|
||||
-#if defined (doxygen) || \
|
||||
- (!defined(ARCH_OS_DARWIN) && defined(ARCH_CPU_INTEL) && \
|
||||
- (defined(ARCH_COMPILER_CLANG) || defined(ARCH_COMPILER_GCC)))
|
||||
+// BLENDER: avoid using rdtsc instruction that is not supported on older CPUs.
|
||||
+#if 0
|
||||
|
||||
/// A simple timer class for measuring an interval of time using the
|
||||
/// ArchTickTimer facilities.
|
||||
|
@@ -46,6 +46,18 @@ if "%3" == "debug" set CMAKE_DEBUG_OPTIONS=-DWITH_OPTIMIZED_DEBUG=Off
|
||||
set dobuild=1
|
||||
if "%4" == "nobuild" set dobuild=0
|
||||
|
||||
REM If Python is be available certain deps may try to
|
||||
REM to use this over the version we build, to prevent that
|
||||
REM make sure pythonw is NOT in the path. We look for pythonw.exe
|
||||
REM since windows apparently ships a python.exe that just opens up
|
||||
REM the windows store but does not ship any actual python files that
|
||||
REM could cause issues.
|
||||
for %%X in (pythonw.exe) do (set PYTHONW=%%~$PATH:X)
|
||||
if EXIST "%PYTHONW%" (
|
||||
echo PYTHON found at %PYTHONW% dependencies cannot be build with python available in the path
|
||||
goto exit
|
||||
)
|
||||
|
||||
set SOURCE_DIR=%~dp0\..
|
||||
set BUILD_DIR=%cd%\build
|
||||
set HARVEST_DIR=%BUILD_DIR%\output
|
||||
@@ -98,8 +110,8 @@ echo %DATE% %TIME% : Start > %StatusFile%
|
||||
cmake -G "%CMAKE_BUILDER%" %CMAKE_BUILD_ARCH% -Thost=x64 %SOURCE_DIR% -DPACKAGE_DIR=%BUILD_DIR%/packages -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DBUILD_MODE=Release -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/
|
||||
echo %DATE% %TIME% : Release Configuration done >> %StatusFile%
|
||||
if "%dobuild%" == "1" (
|
||||
msbuild /m "ll.vcxproj" /p:Configuration=Release /fl /flp:logfile=BlenderDeps_llvm.log;Verbosity=normal
|
||||
msbuild /m "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal
|
||||
msbuild /m:1 "ll.vcxproj" /p:Configuration=Release /fl /flp:logfile=BlenderDeps_llvm.log;Verbosity=normal
|
||||
msbuild /m:1 "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal
|
||||
echo %DATE% %TIME% : Release Build done >> %StatusFile%
|
||||
cmake --build . --target Harvest_Release_Results > Harvest_Release.txt
|
||||
)
|
||||
@@ -111,8 +123,8 @@ cd %Staging%\%BuildDir%%ARCH%D
|
||||
cmake -G "%CMAKE_BUILDER%" %CMAKE_BUILD_ARCH% -Thost=x64 %SOURCE_DIR% -DPACKAGE_DIR=%BUILD_DIR%/packages -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DCMAKE_BUILD_TYPE=Debug -DBUILD_MODE=Debug -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/ %CMAKE_DEBUG_OPTIONS%
|
||||
echo %DATE% %TIME% : Debug Configuration done >> %StatusFile%
|
||||
if "%dobuild%" == "1" (
|
||||
msbuild /m "ll.vcxproj" /p:Configuration=Debug /fl /flp:logfile=BlenderDeps_llvm.log;;Verbosity=normal
|
||||
msbuild /m "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal
|
||||
msbuild /m:1 "ll.vcxproj" /p:Configuration=Debug /fl /flp:logfile=BlenderDeps_llvm.log;;Verbosity=normal
|
||||
msbuild /m:1 "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal
|
||||
echo %DATE% %TIME% : Debug Build done >> %StatusFile%
|
||||
cmake --build . --target Harvest_Debug_Results> Harvest_Debug.txt
|
||||
)
|
||||
|
@@ -85,9 +85,9 @@ STRING(REGEX REPLACE "([0-9]+)[.]([0-9]+).*" "\\1_\\2" _openexr_libs_ver ${OPENE
|
||||
IF(OPENEXR_VERSION VERSION_GREATER_EQUAL "3.0.0")
|
||||
SET(_openexr_FIND_COMPONENTS
|
||||
Iex
|
||||
IlmThread
|
||||
OpenEXR
|
||||
OpenEXRCore
|
||||
IlmThread
|
||||
)
|
||||
ELSE()
|
||||
SET(_openexr_FIND_COMPONENTS
|
||||
|
@@ -175,7 +175,9 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonLibsUnix DEFAULT_MSG
|
||||
IF(PYTHONLIBSUNIX_FOUND)
|
||||
# Assign cache items
|
||||
SET(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR} ${PYTHON_INCLUDE_CONFIG_DIR})
|
||||
SET(PYTHON_LIBRARIES ${PYTHON_LIBRARY})
|
||||
IF(NOT WITH_PYTHON_MODULE)
|
||||
SET(PYTHON_LIBRARIES ${PYTHON_LIBRARY})
|
||||
ENDIF()
|
||||
|
||||
FIND_FILE(PYTHON_SITE_PACKAGES
|
||||
NAMES
|
||||
|
@@ -32,9 +32,12 @@ FIND_PATH(USD_INCLUDE_DIR
|
||||
DOC "Universal Scene Description (USD) header files"
|
||||
)
|
||||
|
||||
# Since USD 21.11 the libraries are prefixed with "usd_", i.e. "libusd_m.a" became "libusd_usd_m.a".
|
||||
# See https://github.com/PixarAnimationStudios/USD/blob/release/CHANGELOG.md#2111---2021-11-01
|
||||
FIND_LIBRARY(USD_LIBRARY
|
||||
NAMES
|
||||
usd_m usd_ms
|
||||
usd_usd_m usd_usd_ms usd_m usd_ms
|
||||
${PXR_LIB_PREFIX}usd
|
||||
NAMES_PER_DIR
|
||||
HINTS
|
||||
${_usd_SEARCH_DIRS}
|
||||
@@ -61,6 +64,7 @@ ENDIF()
|
||||
MARK_AS_ADVANCED(
|
||||
USD_INCLUDE_DIR
|
||||
USD_LIBRARY_DIR
|
||||
USD_LIBRARY
|
||||
)
|
||||
|
||||
UNSET(_usd_SEARCH_DIRS)
|
||||
|
82
build_files/cmake/Modules/FindWebP.cmake
Normal file
82
build_files/cmake/Modules/FindWebP.cmake
Normal file
@@ -0,0 +1,82 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright 2022 Blender Foundation.
|
||||
|
||||
# - Find WebP library
|
||||
# Find the native WebP includes and library
|
||||
# This module defines
|
||||
# WEBP_INCLUDE_DIRS, where to find WebP headers, Set when WebP is found.
|
||||
# WEBP_LIBRARIES, libraries to link against to use WebP.
|
||||
# WEBP_ROOT_DIR, The base directory to search for WebP.
|
||||
# This can also be an environment variable.
|
||||
# WEBP_FOUND, If false, do not try to use WebP.
|
||||
#
|
||||
# also defined, but not for general use are
|
||||
# WEBP_LIBRARY, where to find the WEBP library.
|
||||
|
||||
# If WEBP_ROOT_DIR was defined in the environment, use it.
|
||||
IF(NOT WEBP_ROOT_DIR AND NOT $ENV{WEBP_ROOT_DIR} STREQUAL "")
|
||||
SET(WEBP_ROOT_DIR $ENV{WEBP_ROOT_DIR})
|
||||
ENDIF()
|
||||
|
||||
SET(_webp_SEARCH_DIRS
|
||||
${WEBP_ROOT_DIR}
|
||||
/opt/lib/webp
|
||||
)
|
||||
|
||||
FIND_PATH(WEBP_INCLUDE_DIR
|
||||
NAMES
|
||||
webp/types.h
|
||||
HINTS
|
||||
${_webp_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
)
|
||||
|
||||
SET(_webp_FIND_COMPONENTS
|
||||
webp
|
||||
webpmux
|
||||
webpdemux
|
||||
)
|
||||
|
||||
SET(_webp_LIBRARIES)
|
||||
FOREACH(COMPONENT ${_webp_FIND_COMPONENTS})
|
||||
STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
|
||||
|
||||
FIND_LIBRARY(WEBP_${UPPERCOMPONENT}_LIBRARY
|
||||
NAMES
|
||||
${COMPONENT}
|
||||
NAMES_PER_DIR
|
||||
HINTS
|
||||
${_webp_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
lib64 lib lib/static
|
||||
)
|
||||
LIST(APPEND _webp_LIBRARIES "${WEBP_${UPPERCOMPONENT}_LIBRARY}")
|
||||
ENDFOREACH()
|
||||
|
||||
IF(${WEBP_WEBP_LIBRARY_NOTFOUND})
|
||||
set(WEBP_FOUND FALSE)
|
||||
ELSE()
|
||||
# handle the QUIETLY and REQUIRED arguments and set WEBP_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(WebP DEFAULT_MSG _webp_LIBRARIES WEBP_INCLUDE_DIR)
|
||||
|
||||
IF(WEBP_FOUND)
|
||||
get_filename_component(WEBP_LIBRARY_DIR ${WEBP_WEBP_LIBRARY} DIRECTORY)
|
||||
SET(WEBP_INCLUDE_DIRS ${WEBP_INCLUDE_DIR})
|
||||
SET(WEBP_LIBRARIES ${_webp_LIBRARIES})
|
||||
ELSE()
|
||||
SET(WEBPL_PUGIXML_FOUND FALSE)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
WEBP_INCLUDE_DIR
|
||||
WEBP_LIBRARY_DIR
|
||||
|
||||
# Generated names.
|
||||
WEBP_WEBPDEMUX_LIBRARY
|
||||
WEBP_WEBPMUX_LIBRARY
|
||||
WEBP_WEBP_LIBRARY
|
||||
)
|
@@ -202,9 +202,9 @@ def parm_size(node_child):
|
||||
|
||||
# NOT PERFECT CODE, EXTRACT SIZE FROM TOKENS
|
||||
if len(tokens) >= 3: # foo [ 1 ]
|
||||
if ((tokens[-3].kind == TokenKind.PUNCTUATION and tokens[-3].spelling == "[") and
|
||||
(tokens[-2].kind == TokenKind.LITERAL and tokens[-2].spelling.isdigit()) and
|
||||
(tokens[-1].kind == TokenKind.PUNCTUATION and tokens[-1].spelling == "]")):
|
||||
if ((tokens[-3].kind == TokenKind.PUNCTUATION and tokens[-3].spelling == "[") and
|
||||
(tokens[-2].kind == TokenKind.LITERAL and tokens[-2].spelling.isdigit()) and
|
||||
(tokens[-1].kind == TokenKind.PUNCTUATION and tokens[-1].spelling == "]")):
|
||||
# ---
|
||||
return int(tokens[-2].spelling)
|
||||
return -1
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
"""
|
||||
Example linux usage
|
||||
python3 ~/blender-git/blender/build_files/cmake/cmake_netbeans_project.py ~/blender-git/cmake
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
r"""
|
||||
Example Linux usage:
|
||||
python ~/blender-git/blender/build_files/cmake/cmake_qtcreator_project.py --build-dir ~/blender-git/cmake
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
import project_source_info
|
||||
import subprocess
|
||||
import sys
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
import project_source_info
|
||||
import subprocess
|
||||
import sys
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
CHECKER_IGNORE_PREFIX = [
|
||||
"extern",
|
||||
"intern/moto",
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
CHECKER_IGNORE_PREFIX = [
|
||||
"extern",
|
||||
"intern/moto",
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
CHECKER_IGNORE_PREFIX = [
|
||||
"extern",
|
||||
"intern/moto",
|
||||
|
@@ -30,6 +30,7 @@ set(WITH_IMAGE_HDR ON CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_OPENEXR ON CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_OPENJPEG ON CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_TIFF ON CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_WEBP ON CACHE BOOL "" FORCE)
|
||||
set(WITH_INPUT_NDOF ON CACHE BOOL "" FORCE)
|
||||
set(WITH_INPUT_IME ON CACHE BOOL "" FORCE)
|
||||
set(WITH_INTERNATIONAL ON CACHE BOOL "" FORCE)
|
||||
|
@@ -34,8 +34,12 @@ set(WITH_IMAGE_HDR OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_OPENEXR OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_OPENJPEG OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_TIFF OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_WEBP OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_INPUT_NDOF OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_INTERNATIONAL OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_IO_STL OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_IO_WAVEFRONT_OBJ OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_IO_GPENCIL OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_JACK OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_LIBMV OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_LLVM OFF CACHE BOOL "" FORCE)
|
||||
|
@@ -31,6 +31,7 @@ set(WITH_IMAGE_HDR ON CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_OPENEXR ON CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_OPENJPEG ON CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_TIFF ON CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_WEBP ON CACHE BOOL "" FORCE)
|
||||
set(WITH_INPUT_NDOF ON CACHE BOOL "" FORCE)
|
||||
set(WITH_INPUT_IME ON CACHE BOOL "" FORCE)
|
||||
set(WITH_INTERNATIONAL ON CACHE BOOL "" FORCE)
|
||||
|
@@ -879,7 +879,7 @@ function(delayed_install
|
||||
destination)
|
||||
|
||||
foreach(f ${files})
|
||||
if(IS_ABSOLUTE ${f})
|
||||
if(IS_ABSOLUTE ${f} OR "${base}" STREQUAL "")
|
||||
set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${f})
|
||||
else()
|
||||
set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${base}/${f})
|
||||
|
@@ -106,8 +106,8 @@ if(WIN32)
|
||||
set(CPACK_WIX_LIGHT_EXTRA_FLAGS -dcl:medium)
|
||||
endif()
|
||||
|
||||
set(CPACK_PACKAGE_EXECUTABLES "blender-launcher" "blender")
|
||||
set(CPACK_CREATE_DESKTOP_LINKS "blender-launcher" "blender")
|
||||
set(CPACK_PACKAGE_EXECUTABLES "blender-launcher" "Blender")
|
||||
set(CPACK_CREATE_DESKTOP_LINKS "blender-launcher" "Blender")
|
||||
|
||||
include(CPack)
|
||||
|
||||
|
@@ -71,6 +71,7 @@ set(CMAKE_PREFIX_PATH ${LIB_SUBDIRS})
|
||||
# Find precompiled libraries, and avoid system or user-installed ones.
|
||||
|
||||
if(EXISTS ${LIBDIR})
|
||||
include(platform_old_libs_update)
|
||||
without_system_libs_begin()
|
||||
endif()
|
||||
|
||||
@@ -214,7 +215,12 @@ if(WITH_SDL)
|
||||
find_package(SDL2)
|
||||
set(SDL_INCLUDE_DIR ${SDL2_INCLUDE_DIRS})
|
||||
set(SDL_LIBRARY ${SDL2_LIBRARIES})
|
||||
string(APPEND PLATFORM_LINKFLAGS " -framework ForceFeedback")
|
||||
string(APPEND PLATFORM_LINKFLAGS " -framework ForceFeedback -framework GameController")
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
# The minimum macOS version of the libraries makes it so this is included in SDL on arm64
|
||||
# but not x86_64.
|
||||
string(APPEND PLATFORM_LINKFLAGS " -framework CoreHaptics")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(PNG_ROOT ${LIBDIR}/png)
|
||||
@@ -232,6 +238,15 @@ if(WITH_IMAGE_TIFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_WEBP)
|
||||
set(WEBP_ROOT_DIR ${LIBDIR}/webp)
|
||||
find_package(WebP)
|
||||
if(NOT WEBP_FOUND)
|
||||
message(WARNING "WebP not found, disabling WITH_IMAGE_WEBP")
|
||||
set(WITH_IMAGE_WEBP OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_BOOST)
|
||||
set(Boost_NO_BOOST_CMAKE ON)
|
||||
set(BOOST_ROOT ${LIBDIR}/boost)
|
||||
|
46
build_files/cmake/platform/platform_old_libs_update.cmake
Normal file
46
build_files/cmake/platform/platform_old_libs_update.cmake
Normal file
@@ -0,0 +1,46 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2022 Blender Foundation. All rights reserved.
|
||||
|
||||
# Auto update existing CMake caches for new libraries
|
||||
|
||||
function(unset_cache_variables pattern)
|
||||
get_cmake_property(_cache_variables CACHE_VARIABLES)
|
||||
foreach (_cache_variable ${_cache_variables})
|
||||
if("${_cache_variable}" MATCHES "${pattern}")
|
||||
unset(${_cache_variable} CACHE)
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
# Detect update from 3.1 to 3.2 libs.
|
||||
if(UNIX AND
|
||||
DEFINED OPENEXR_VERSION AND
|
||||
OPENEXR_VERSION VERSION_LESS "3.0.0" AND
|
||||
EXISTS ${LIBDIR}/imath)
|
||||
message(STATUS "Auto updating CMake configuration for Blender 3.2 libraries")
|
||||
|
||||
unset_cache_variables("^OPENIMAGEIO")
|
||||
unset_cache_variables("^OPENEXR")
|
||||
unset_cache_variables("^IMATH")
|
||||
unset_cache_variables("^PNG")
|
||||
unset_cache_variables("^USD")
|
||||
unset_cache_variables("^WEBP")
|
||||
unset_cache_variables("^NANOVDB")
|
||||
endif()
|
||||
|
||||
# Automatically set WebP on/off depending if libraries are available.
|
||||
if(EXISTS ${LIBDIR}/webp)
|
||||
if(WITH_OPENIMAGEIO)
|
||||
set(WITH_IMAGE_WEBP ON CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
else()
|
||||
set(WITH_IMAGE_WEBP OFF)
|
||||
endif()
|
||||
|
||||
# NanoVDB moved into openvdb.
|
||||
if(UNIX AND DEFINED NANOVDB_INCLUDE_DIR)
|
||||
if(NOT EXISTS ${NANOVDB_INCLUDE_DIR} AND
|
||||
EXISTS ${LIBDIR}/openvdb/include/nanovdb)
|
||||
unset_cache_variables("^NANOVDB")
|
||||
endif()
|
||||
endif()
|
@@ -45,6 +45,9 @@ if(EXISTS ${LIBDIR})
|
||||
# which is a part of OpenCollada. They have different ABI, and we
|
||||
# do need to use the official one.
|
||||
set(CMAKE_PREFIX_PATH ${LIBDIR}/zlib ${LIB_SUBDIRS})
|
||||
|
||||
include(platform_old_libs_update)
|
||||
|
||||
set(WITH_STATIC_LIBS ON)
|
||||
# OpenMP usually can't be statically linked into shared libraries,
|
||||
# due to not being compiled with position independent code.
|
||||
@@ -368,6 +371,15 @@ if(WITH_PUGIXML)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_WEBP)
|
||||
set(WEBP_ROOT_DIR ${LIBDIR}/webp)
|
||||
find_package_wrapper(WebP)
|
||||
if(NOT WEBP_FOUND)
|
||||
set(WITH_IMAGE_WEBP OFF)
|
||||
message(WARNING "WebP not found, disabling WITH_IMAGE_WEBP")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
find_package_wrapper(OpenImageIO)
|
||||
set(OPENIMAGEIO_LIBRARIES
|
||||
@@ -386,6 +398,9 @@ if(WITH_OPENIMAGEIO)
|
||||
if(WITH_IMAGE_OPENEXR)
|
||||
list(APPEND OPENIMAGEIO_LIBRARIES "${OPENEXR_LIBRARIES}")
|
||||
endif()
|
||||
if(WITH_IMAGE_WEBP)
|
||||
list(APPEND OPENIMAGEIO_LIBRARIES "${WEBP_LIBRARIES}")
|
||||
endif()
|
||||
|
||||
if(NOT OPENIMAGEIO_FOUND)
|
||||
set(WITH_OPENIMAGEIO OFF)
|
||||
@@ -858,7 +873,7 @@ endif()
|
||||
# If atomic operations are possible without libatomic then linker flags are left as-is.
|
||||
function(CONFIGURE_ATOMIC_LIB_IF_NEEDED)
|
||||
# Source which is used to enforce situation when software emulation of atomics is required.
|
||||
# Assume that using 64bit integer gives a definitive asnwer (as in, if 64bit atomic operations
|
||||
# Assume that using 64bit integer gives a definitive answer (as in, if 64bit atomic operations
|
||||
# are possible using assembly/intrinsics 8, 16, and 32 bit operations will also be possible.
|
||||
set(_source
|
||||
"#include <atomic>
|
||||
|
@@ -39,12 +39,12 @@ if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set(WITH_WINDOWS_STRIPPED_PDB OFF)
|
||||
endif()
|
||||
else()
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.28.29921) # MSVC 2019 16.9.16
|
||||
if(WITH_BLENDER AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.28.29921) # MSVC 2019 16.9.16
|
||||
message(FATAL_ERROR "Compiler is unsupported, MSVC 2019 16.9.16 or newer is required for building blender.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT WITH_PYTHON_MODULE)
|
||||
if(WITH_BLENDER AND NOT WITH_PYTHON_MODULE)
|
||||
set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT blender)
|
||||
endif()
|
||||
|
||||
@@ -104,7 +104,7 @@ string(APPEND CMAKE_MODULE_LINKER_FLAGS " /SAFESEH:NO /ignore:4099")
|
||||
list(APPEND PLATFORM_LINKLIBS
|
||||
ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 Comctl32 version
|
||||
advapi32 shfolder shell32 ole32 oleaut32 uuid psapi Dbghelp Shlwapi
|
||||
pathcch Shcore
|
||||
pathcch Shcore Dwmapi
|
||||
)
|
||||
|
||||
if(WITH_INPUT_IME)
|
||||
@@ -238,7 +238,6 @@ else()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED LIBDIR)
|
||||
|
||||
# Setup 64bit and 64bit windows systems
|
||||
if(CMAKE_CL_64)
|
||||
message(STATUS "64 bit compiler detected.")
|
||||
@@ -252,6 +251,9 @@ if(NOT DEFINED LIBDIR)
|
||||
elseif(MSVC_VERSION GREATER 1919)
|
||||
message(STATUS "Visual Studio 2019 detected.")
|
||||
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc15)
|
||||
elseif(MSVC_VERSION GREATER 1909)
|
||||
message(STATUS "Visual Studio 2017 detected.")
|
||||
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc15)
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
|
||||
@@ -260,6 +262,8 @@ if(NOT EXISTS "${LIBDIR}/")
|
||||
message(FATAL_ERROR "\n\nWindows requires pre-compiled libs at: '${LIBDIR}'. Please run `make update` in the blender source folder to obtain them.")
|
||||
endif()
|
||||
|
||||
include(platform_old_libs_update)
|
||||
|
||||
if(CMAKE_GENERATOR MATCHES "^Visual Studio.+" AND # Only supported in the VS IDE
|
||||
MSVC_VERSION GREATER_EQUAL 1924 AND # Supported for 16.4+
|
||||
WITH_CLANG_TIDY # And Clang Tidy needs to be on
|
||||
@@ -300,9 +304,8 @@ set(ZLIB_INCLUDE_DIR ${LIBDIR}/zlib/include)
|
||||
set(ZLIB_LIBRARY ${LIBDIR}/zlib/lib/libz_st.lib)
|
||||
set(ZLIB_DIR ${LIBDIR}/zlib)
|
||||
|
||||
windows_find_package(zlib) # we want to find before finding things that depend on it like png
|
||||
windows_find_package(png)
|
||||
|
||||
windows_find_package(ZLIB) # we want to find before finding things that depend on it like png
|
||||
windows_find_package(PNG)
|
||||
if(NOT PNG_FOUND)
|
||||
warn_hardcoded_paths(libpng)
|
||||
set(PNG_PNG_INCLUDE_DIR ${LIBDIR}/png/include)
|
||||
@@ -313,9 +316,9 @@ if(NOT PNG_FOUND)
|
||||
endif()
|
||||
|
||||
set(JPEG_NAMES ${JPEG_NAMES} libjpeg)
|
||||
windows_find_package(jpeg REQUIRED)
|
||||
windows_find_package(JPEG REQUIRED)
|
||||
if(NOT JPEG_FOUND)
|
||||
warn_hardcoded_paths(jpeg)
|
||||
warn_hardcoded_paths(libjpeg)
|
||||
set(JPEG_INCLUDE_DIR ${LIBDIR}/jpeg/include)
|
||||
set(JPEG_LIBRARIES ${LIBDIR}/jpeg/lib/libjpeg.lib)
|
||||
endif()
|
||||
@@ -333,7 +336,7 @@ set(FREETYPE_LIBRARIES
|
||||
${LIBDIR}/brotli/lib/brotlidec-static.lib
|
||||
${LIBDIR}/brotli/lib/brotlicommon-static.lib
|
||||
)
|
||||
windows_find_package(freetype REQUIRED)
|
||||
windows_find_package(Freetype REQUIRED)
|
||||
|
||||
if(WITH_FFTW3)
|
||||
set(FFTW3 ${LIBDIR}/fftw3)
|
||||
@@ -342,6 +345,21 @@ if(WITH_FFTW3)
|
||||
set(FFTW3_LIBPATH ${FFTW3}/lib)
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_WEBP)
|
||||
windows_find_package(WebP)
|
||||
if(NOT WEBP_FOUND)
|
||||
if(EXISTS ${LIBDIR}/webp)
|
||||
set(WEBP_INCLUDE_DIRS ${LIBDIR}/webp/include)
|
||||
set(WEBP_ROOT_DIR ${LIBDIR}/webp)
|
||||
set(WEBP_LIBRARIES ${LIBDIR}/webp/lib/webp.lib ${LIBDIR}/webp/lib/webpdemux.lib ${LIBDIR}/webp/lib/webpmux.lib)
|
||||
set(WEBP_FOUND ON)
|
||||
else()
|
||||
message(STATUS "WITH_IMAGE_WEBP is ON but WEBP libraries are not found, setting WITH_IMAGE_WEBP=OFF")
|
||||
set(WITH_IMAGE_WEBP OFF)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_OPENCOLLADA)
|
||||
set(OPENCOLLADA ${LIBDIR}/opencollada)
|
||||
|
||||
@@ -389,9 +407,9 @@ if(WITH_CODEC_FFMPEG)
|
||||
${LIBDIR}/ffmpeg/include
|
||||
${LIBDIR}/ffmpeg/include/msvc
|
||||
)
|
||||
windows_find_package(FFMPEG)
|
||||
if(NOT FFMPEG_FOUND)
|
||||
warn_hardcoded_paths(ffmpeg)
|
||||
windows_find_package(FFmpeg)
|
||||
if(NOT FFmpeg_FOUND)
|
||||
warn_hardcoded_paths(FFmpeg)
|
||||
set(FFMPEG_LIBRARIES
|
||||
${LIBDIR}/ffmpeg/lib/avcodec.lib
|
||||
${LIBDIR}/ffmpeg/lib/avformat.lib
|
||||
@@ -403,27 +421,60 @@ if(WITH_CODEC_FFMPEG)
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_OPENEXR)
|
||||
# Imath and OpenEXR have a single combined build option and include and library variables
|
||||
# used by the rest of the build system.
|
||||
set(IMATH_ROOT_DIR ${LIBDIR}/imath)
|
||||
set(IMATH_VERSION "3.14")
|
||||
windows_find_package(IMATH REQUIRED)
|
||||
if(NOT IMATH_FOUND)
|
||||
set(IMATH ${LIBDIR}/imath)
|
||||
set(IMATH_INCLUDE_DIR ${IMATH}/include)
|
||||
set(IMATH_INCLUDE_DIRS ${IMATH_INCLUDE_DIR} ${IMATH}/include/Imath)
|
||||
set(IMATH_LIBPATH ${IMATH}/lib)
|
||||
set(IMATH_LIBRARIES
|
||||
optimized ${IMATH_LIBPATH}/Imath_s.lib
|
||||
debug ${IMATH_LIBPATH}/Imath_s_d.lib
|
||||
)
|
||||
endif()
|
||||
set(OPENEXR_ROOT_DIR ${LIBDIR}/openexr)
|
||||
set(OPENEXR_VERSION "2.1")
|
||||
set(OPENEXR_VERSION "3.14")
|
||||
windows_find_package(OPENEXR REQUIRED)
|
||||
if(NOT OPENEXR_FOUND)
|
||||
if(NOT OpenEXR_FOUND)
|
||||
warn_hardcoded_paths(OpenEXR)
|
||||
set(OPENEXR ${LIBDIR}/openexr)
|
||||
set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
|
||||
set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR}/include/OpenEXR)
|
||||
set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${IMATH_INCLUDE_DIRS} ${OPENEXR}/include/OpenEXR)
|
||||
set(OPENEXR_LIBPATH ${OPENEXR}/lib)
|
||||
set(OPENEXR_LIBRARIES
|
||||
optimized ${OPENEXR_LIBPATH}/Iex_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/Half_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/IlmImf_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/Imath_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/IlmThread_s.lib
|
||||
debug ${OPENEXR_LIBPATH}/Iex_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/Half_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/IlmImf_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/Imath_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/IlmThread_s_d.lib
|
||||
)
|
||||
# Check if the 3.x library name exists
|
||||
# if not assume this is a 2.x library folder
|
||||
if(EXISTS "${OPENEXR_LIBPATH}/OpenEXR_s.lib")
|
||||
set(OPENEXR_LIBRARIES
|
||||
optimized ${OPENEXR_LIBPATH}/Iex_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/IlmThread_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/OpenEXR_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/OpenEXRCore_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/OpenEXRUtil_s.lib
|
||||
debug ${OPENEXR_LIBPATH}/Iex_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/IlmThread_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/OpenEXR_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/OpenEXRCore_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/OpenEXRUtil_s_d.lib
|
||||
${IMATH_LIBRARIES}
|
||||
)
|
||||
else()
|
||||
set(OPENEXR_LIBRARIES
|
||||
optimized ${OPENEXR_LIBPATH}/Iex_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/Half_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/IlmImf_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/Imath_s.lib
|
||||
optimized ${OPENEXR_LIBPATH}/IlmThread_s.lib
|
||||
debug ${OPENEXR_LIBPATH}/Iex_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/Half_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/IlmImf_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/Imath_s_d.lib
|
||||
debug ${OPENEXR_LIBPATH}/IlmThread_s_d.lib
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -489,8 +540,14 @@ if(WITH_BOOST)
|
||||
if(NOT BOOST_VERSION)
|
||||
message(FATAL_ERROR "Unable to determine Boost version")
|
||||
endif()
|
||||
set(BOOST_POSTFIX "vc141-mt-x64-${BOOST_VERSION}.lib")
|
||||
set(BOOST_DEBUG_POSTFIX "vc141-mt-gd-x64-${BOOST_VERSION}.lib")
|
||||
set(BOOST_POSTFIX "vc142-mt-x64-${BOOST_VERSION}.lib")
|
||||
set(BOOST_DEBUG_POSTFIX "vc142-mt-gd-x64-${BOOST_VERSION}.lib")
|
||||
if(NOT EXISTS ${BOOST_LIBPATH}/libboost_date_time-${BOOST_POSTFIX})
|
||||
# If the new library names do not exist fall back to the old ones
|
||||
# to ease the transition period between the libs.
|
||||
set(BOOST_POSTFIX "vc141-mt-x64-${BOOST_VERSION}.lib")
|
||||
set(BOOST_DEBUG_POSTFIX "vc141-mt-gd-x64-${BOOST_VERSION}.lib")
|
||||
endif()
|
||||
set(BOOST_LIBRARIES
|
||||
optimized ${BOOST_LIBPATH}/libboost_date_time-${BOOST_POSTFIX}
|
||||
optimized ${BOOST_LIBPATH}/libboost_filesystem-${BOOST_POSTFIX}
|
||||
@@ -520,18 +577,20 @@ if(WITH_BOOST)
|
||||
set(BOOST_LIBRARIES ${Boost_LIBRARIES})
|
||||
set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS})
|
||||
endif()
|
||||
|
||||
set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
|
||||
endif()
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
windows_find_package(OpenImageIO)
|
||||
set(OPENIMAGEIO ${LIBDIR}/OpenImageIO)
|
||||
set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
|
||||
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
|
||||
set(OIIO_OPTIMIZED optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO.lib optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util.lib)
|
||||
set(OIIO_DEBUG debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_d.lib debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util_d.lib)
|
||||
set(OPENIMAGEIO_LIBRARIES ${OIIO_OPTIMIZED} ${OIIO_DEBUG})
|
||||
|
||||
if(NOT OpenImageIO_FOUND)
|
||||
set(OPENIMAGEIO ${LIBDIR}/OpenImageIO)
|
||||
set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
|
||||
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
|
||||
set(OIIO_OPTIMIZED optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO.lib optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util.lib)
|
||||
set(OIIO_DEBUG debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_d.lib debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util_d.lib)
|
||||
set(OPENIMAGEIO_LIBRARIES ${OIIO_OPTIMIZED} ${OIIO_DEBUG})
|
||||
endif()
|
||||
set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0")
|
||||
set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe")
|
||||
add_definitions(-DOIIO_STATIC_DEFINE)
|
||||
@@ -565,35 +624,49 @@ if(WITH_LLVM)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENCOLORIO)
|
||||
set(OPENCOLORIO ${LIBDIR}/OpenColorIO)
|
||||
set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
|
||||
set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib)
|
||||
set(OPENCOLORIO_LIBRARIES
|
||||
optimized ${OPENCOLORIO_LIBPATH}/OpenColorIO.lib
|
||||
optimized ${OPENCOLORIO_LIBPATH}/libyaml-cpp.lib
|
||||
optimized ${OPENCOLORIO_LIBPATH}/libexpatMD.lib
|
||||
optimized ${OPENCOLORIO_LIBPATH}/pystring.lib
|
||||
debug ${OPENCOLORIO_LIBPATH}/OpencolorIO_d.lib
|
||||
debug ${OPENCOLORIO_LIBPATH}/libyaml-cpp_d.lib
|
||||
debug ${OPENCOLORIO_LIBPATH}/libexpatdMD.lib
|
||||
debug ${OPENCOLORIO_LIBPATH}/pystring_d.lib
|
||||
)
|
||||
windows_find_package(OpenColorIO)
|
||||
if(NOT OpenColorIO_FOUND)
|
||||
set(OPENCOLORIO ${LIBDIR}/OpenColorIO)
|
||||
set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
|
||||
set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib)
|
||||
set(OPENCOLORIO_LIBRARIES
|
||||
optimized ${OPENCOLORIO_LIBPATH}/OpenColorIO.lib
|
||||
optimized ${OPENCOLORIO_LIBPATH}/libyaml-cpp.lib
|
||||
optimized ${OPENCOLORIO_LIBPATH}/libexpatMD.lib
|
||||
optimized ${OPENCOLORIO_LIBPATH}/pystring.lib
|
||||
debug ${OPENCOLORIO_LIBPATH}/OpencolorIO_d.lib
|
||||
debug ${OPENCOLORIO_LIBPATH}/libyaml-cpp_d.lib
|
||||
debug ${OPENCOLORIO_LIBPATH}/libexpatdMD.lib
|
||||
debug ${OPENCOLORIO_LIBPATH}/pystring_d.lib
|
||||
)
|
||||
endif()
|
||||
set(OPENCOLORIO_DEFINITIONS "-DOpenColorIO_SKIP_IMPORTS")
|
||||
endif()
|
||||
|
||||
if(WITH_OPENVDB)
|
||||
set(OPENVDB ${LIBDIR}/openVDB)
|
||||
set(OPENVDB_LIBPATH ${OPENVDB}/lib)
|
||||
set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include)
|
||||
set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug ${OPENVDB_LIBPATH}/openvdb_d.lib )
|
||||
windows_find_package(OpenVDB)
|
||||
if(NOT OpenVDB_FOUND)
|
||||
set(OPENVDB ${LIBDIR}/openVDB)
|
||||
set(OPENVDB_LIBPATH ${OPENVDB}/lib)
|
||||
set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include)
|
||||
set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug ${OPENVDB_LIBPATH}/openvdb_d.lib )
|
||||
endif()
|
||||
set(OPENVDB_DEFINITIONS -DNOMINMAX -D_USE_MATH_DEFINES)
|
||||
endif()
|
||||
|
||||
if(WITH_NANOVDB)
|
||||
set(NANOVDB ${LIBDIR}/nanoVDB)
|
||||
set(NANOVDB ${LIBDIR}/openvdb)
|
||||
set(NANOVDB_INCLUDE_DIR ${NANOVDB}/include)
|
||||
if(NOT EXISTS "${NANOVDB_INCLUDE_DIR}/nanovdb")
|
||||
# When not found, could be an older lib folder with where nanovdb
|
||||
# had its own lib folder, to ease the transition period, fall back
|
||||
# to that copy if the copy in openvdb is not found.
|
||||
set(NANOVDB ${LIBDIR}/nanoVDB)
|
||||
set(NANOVDB_INCLUDE_DIR ${NANOVDB}/include)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
if(WITH_OPENIMAGEDENOISE)
|
||||
set(OPENIMAGEDENOISE ${LIBDIR}/OpenImageDenoise)
|
||||
set(OPENIMAGEDENOISE_LIBPATH ${LIBDIR}/OpenImageDenoise/lib)
|
||||
@@ -619,26 +692,34 @@ endif()
|
||||
|
||||
if(WITH_IMAGE_OPENJPEG)
|
||||
set(OPENJPEG ${LIBDIR}/openjpeg)
|
||||
set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.3)
|
||||
set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.4)
|
||||
if(NOT EXISTS "${OPENJPEG_INCLUDE_DIRS}")
|
||||
# when not found, could be an older lib folder with openjpeg 2.3
|
||||
# to ease the transition period, fall back if 2.4 is not found.
|
||||
set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.3)
|
||||
endif()
|
||||
set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/openjp2.lib)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENSUBDIV)
|
||||
set(OPENSUBDIV_INCLUDE_DIRS ${LIBDIR}/opensubdiv/include)
|
||||
set(OPENSUBDIV_LIBPATH ${LIBDIR}/opensubdiv/lib)
|
||||
set(OPENSUBDIV_LIBRARIES
|
||||
optimized ${OPENSUBDIV_LIBPATH}/osdCPU.lib
|
||||
optimized ${OPENSUBDIV_LIBPATH}/osdGPU.lib
|
||||
debug ${OPENSUBDIV_LIBPATH}/osdCPU_d.lib
|
||||
debug ${OPENSUBDIV_LIBPATH}/osdGPU_d.lib
|
||||
)
|
||||
set(OPENSUBDIV_HAS_OPENMP TRUE)
|
||||
set(OPENSUBDIV_HAS_TBB FALSE)
|
||||
set(OPENSUBDIV_HAS_OPENCL TRUE)
|
||||
set(OPENSUBDIV_HAS_CUDA FALSE)
|
||||
set(OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK TRUE)
|
||||
set(OPENSUBDIV_HAS_GLSL_COMPUTE TRUE)
|
||||
windows_find_package(OpenSubdiv)
|
||||
if(NOT OpenSubdiv_FOUND)
|
||||
set(OPENSUBDIV ${LIBDIR}/opensubdiv)
|
||||
set(OPENSUBDIV_INCLUDE_DIRS ${OPENSUBDIV}/include)
|
||||
set(OPENSUBDIV_LIBPATH ${OPENSUBDIV}/lib)
|
||||
set(OPENSUBDIV_LIBRARIES
|
||||
optimized ${OPENSUBDIV_LIBPATH}/osdCPU.lib
|
||||
optimized ${OPENSUBDIV_LIBPATH}/osdGPU.lib
|
||||
debug ${OPENSUBDIV_LIBPATH}/osdCPU_d.lib
|
||||
debug ${OPENSUBDIV_LIBPATH}/osdGPU_d.lib
|
||||
)
|
||||
set(OPENSUBDIV_HAS_OPENMP TRUE)
|
||||
set(OPENSUBDIV_HAS_TBB FALSE)
|
||||
set(OPENSUBDIV_HAS_OPENCL TRUE)
|
||||
set(OPENSUBDIV_HAS_CUDA FALSE)
|
||||
set(OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK TRUE)
|
||||
set(OPENSUBDIV_HAS_GLSL_COMPUTE TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_SDL)
|
||||
@@ -659,12 +740,15 @@ if(WITH_SYSTEM_AUDASPACE)
|
||||
endif()
|
||||
|
||||
if(WITH_TBB)
|
||||
set(TBB_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbb.lib debug ${LIBDIR}/tbb/lib/tbb_debug.lib)
|
||||
set(TBB_INCLUDE_DIR ${LIBDIR}/tbb/include)
|
||||
set(TBB_INCLUDE_DIRS ${TBB_INCLUDE_DIR})
|
||||
if(WITH_TBB_MALLOC_PROXY)
|
||||
set(TBB_MALLOC_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbbmalloc.lib debug ${LIBDIR}/tbb/lib/tbbmalloc_debug.lib)
|
||||
add_definitions(-DWITH_TBB_MALLOC)
|
||||
windows_find_package(TBB)
|
||||
if(NOT TBB_FOUND)
|
||||
set(TBB_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbb.lib debug ${LIBDIR}/tbb/lib/tbb_debug.lib)
|
||||
set(TBB_INCLUDE_DIR ${LIBDIR}/tbb/include)
|
||||
set(TBB_INCLUDE_DIRS ${TBB_INCLUDE_DIR})
|
||||
if(WITH_TBB_MALLOC_PROXY)
|
||||
set(TBB_MALLOC_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbbmalloc.lib debug ${LIBDIR}/tbb/lib/tbbmalloc_debug.lib)
|
||||
add_definitions(-DWITH_TBB_MALLOC)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -683,7 +767,6 @@ if(WITH_OPENAL)
|
||||
else()
|
||||
set(OPENAL_LIBRARY ${OPENAL_LIBPATH}/wrap_oal.lib)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
if(WITH_CODEC_SNDFILE)
|
||||
@@ -728,7 +811,7 @@ endif()
|
||||
|
||||
if(WITH_CYCLES AND WITH_CYCLES_EMBREE)
|
||||
windows_find_package(Embree)
|
||||
if(NOT EMBREE_FOUND)
|
||||
if(NOT Embree_FOUND)
|
||||
set(EMBREE_INCLUDE_DIRS ${LIBDIR}/embree/include)
|
||||
set(EMBREE_LIBRARIES
|
||||
optimized ${LIBDIR}/embree/lib/embree3.lib
|
||||
@@ -756,11 +839,17 @@ endif()
|
||||
if(WITH_USD)
|
||||
windows_find_package(USD)
|
||||
if(NOT USD_FOUND)
|
||||
set(USD_FOUND ON)
|
||||
set(USD_INCLUDE_DIRS ${LIBDIR}/usd/include)
|
||||
set(USD_RELEASE_LIB ${LIBDIR}/usd/lib/libusd_m.lib)
|
||||
set(USD_DEBUG_LIB ${LIBDIR}/usd/lib/libusd_m_d.lib)
|
||||
set(USD_RELEASE_LIB ${LIBDIR}/usd/lib/usd_usd_m.lib)
|
||||
set(USD_DEBUG_LIB ${LIBDIR}/usd/lib/usd_usd_m_d.lib)
|
||||
set(USD_LIBRARY_DIR ${LIBDIR}/usd/lib)
|
||||
# Older USD had different filenames, if the new ones are
|
||||
# not found see if the older ones exist, to ease the
|
||||
# transition period while landing libs.
|
||||
if(NOT EXISTS "${USD_RELEASE_LIB}")
|
||||
set(USD_RELEASE_LIB ${LIBDIR}/usd/lib/libusd_m.lib)
|
||||
set(USD_DEBUG_LIB ${LIBDIR}/usd/lib/libusd_m_d.lib)
|
||||
endif()
|
||||
set(USD_LIBRARIES
|
||||
debug ${USD_DEBUG_LIB}
|
||||
optimized ${USD_RELEASE_LIB}
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
"""
|
||||
Module for accessing project file data for Blender.
|
||||
|
||||
@@ -170,7 +168,7 @@ def cmake_advanced_info() -> Union[Tuple[List[str], List[Tuple[str, str]]], Tupl
|
||||
project_path = create_eclipse_project()
|
||||
|
||||
if not exists(project_path):
|
||||
print("Generating Eclipse Prokect File Failed: %r not found" % project_path)
|
||||
print("Generating Eclipse Project File Failed: %r not found" % project_path)
|
||||
return None, None
|
||||
|
||||
from xml.dom.minidom import parse
|
||||
|
@@ -1,7 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
__all__ = (
|
||||
"build_info",
|
||||
"SOURCE_DIR",
|
||||
@@ -114,12 +112,11 @@ def makefile_log() -> List[str]:
|
||||
print("Can't execute process")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
while process.poll():
|
||||
time.sleep(1)
|
||||
|
||||
# We know this is always true based on the input arguments to `Popen`.
|
||||
stdout: IO[bytes] = process.stdout # type: ignore
|
||||
stdout: IO[bytes] = process.stdout # type: ignore
|
||||
|
||||
out = stdout.read()
|
||||
stdout.close()
|
||||
@@ -210,7 +207,7 @@ def build_defines_as_source() -> str:
|
||||
)
|
||||
|
||||
# We know this is always true based on the input arguments to `Popen`.
|
||||
stdout: IO[bytes] = process.stdout # type: ignore
|
||||
stdout: IO[bytes] = process.stdout # type: ignore
|
||||
|
||||
return cast(str, stdout.read().strip().decode('ascii'))
|
||||
|
||||
@@ -228,7 +225,7 @@ def build_defines_as_args() -> List[str]:
|
||||
def queue_processes(
|
||||
process_funcs: Sequence[Tuple[Callable[..., subprocess.Popen[Any]], Tuple[Any, ...]]],
|
||||
*,
|
||||
job_total: int =-1,
|
||||
job_total: int = -1,
|
||||
sleep: float = 0.1,
|
||||
) -> None:
|
||||
""" Takes a list of function arg pairs, each function must return a process
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
@@ -143,8 +143,8 @@ def packages_path(current_directory: Path, cli_args: Any) -> Optional[Path]:
|
||||
|
||||
return Path(relpath)
|
||||
|
||||
|
||||
### Manifest creation
|
||||
# -----------------------------------------------------------------------------
|
||||
# Manifest creation
|
||||
|
||||
|
||||
def create_manifest(
|
||||
@@ -195,7 +195,8 @@ def packages_to_manifest(outfile: TextIO, packages_dir: Path) -> None:
|
||||
print(path, file=outfile)
|
||||
|
||||
|
||||
### Higher-level functions
|
||||
# -----------------------------------------------------------------------------
|
||||
# Higher-level functions
|
||||
|
||||
|
||||
def create_tarball(
|
||||
@@ -249,7 +250,8 @@ def cleanup(manifest: Path) -> None:
|
||||
print("OK")
|
||||
|
||||
|
||||
## Low-level commands
|
||||
# -----------------------------------------------------------------------------
|
||||
# Low-level commands
|
||||
|
||||
|
||||
def git_ls_files(directory: Path = Path(".")) -> Iterable[Path]:
|
||||
@@ -265,7 +267,7 @@ def git_ls_files(directory: Path = Path(".")) -> Iterable[Path]:
|
||||
yield path
|
||||
|
||||
|
||||
def git_command(*cli_args: Union[bytes, str, Path] ) -> Iterable[str]:
|
||||
def git_command(*cli_args: Union[bytes, str, Path]) -> Iterable[str]:
|
||||
"""Generator, yields lines of output from a Git command."""
|
||||
command = ("git", *cli_args)
|
||||
|
||||
|
@@ -129,6 +129,7 @@ def svn_update(args, release_version):
|
||||
call(svn_non_interactive + ["switch", svn_url + dirname, dirpath], exit_on_error=False)
|
||||
call(svn_non_interactive + ["update", dirpath])
|
||||
|
||||
|
||||
# Test if git repo can be updated.
|
||||
def git_update_skip(args, check_remote_exists=True):
|
||||
if make_utils.command_missing(args.git_command):
|
||||
|
@@ -47,8 +47,10 @@ def check_output(cmd, exit_on_error=True):
|
||||
|
||||
|
||||
def git_branch_exists(git_command, branch):
|
||||
return call([git_command, "rev-parse", "--verify", branch], exit_on_error=False, silent=True) == 0 or \
|
||||
call([git_command, "rev-parse", "--verify", "remotes/origin/" + branch], exit_on_error=False, silent=True) == 0
|
||||
return (
|
||||
call([git_command, "rev-parse", "--verify", branch], exit_on_error=False, silent=True) == 0 or
|
||||
call([git_command, "rev-parse", "--verify", "remotes/origin/" + branch], exit_on_error=False, silent=True) == 0
|
||||
)
|
||||
|
||||
|
||||
def git_branch(git_command):
|
||||
|
@@ -3,13 +3,10 @@ for %%X in (svn.exe) do (set SVN=%%~$PATH:X)
|
||||
for %%X in (cmake.exe) do (set CMAKE=%%~$PATH:X)
|
||||
for %%X in (ctest.exe) do (set CTEST=%%~$PATH:X)
|
||||
for %%X in (git.exe) do (set GIT=%%~$PATH:X)
|
||||
REM For python, default on 39 but if that does not exist also check
|
||||
REM the 310,311 and 312 folders to see if those are there, it checks
|
||||
REM this far ahead to ensure good lib folder compatiblity in the future.
|
||||
set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
|
||||
if EXIST %PYTHON% (
|
||||
goto detect_python_done
|
||||
)
|
||||
REM For python, default on 310 but if that does not exist also check
|
||||
REM the 311, 312 and finally 39 folders to see if those are there, it checks
|
||||
REM this far ahead to ensure good lib folder compatibility in the future
|
||||
REM it falls back to 3.9 just incase it is a very old lib folder.
|
||||
set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\310\bin\python.exe
|
||||
if EXIST %PYTHON% (
|
||||
goto detect_python_done
|
||||
@@ -22,6 +19,10 @@ set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\312\bin\python.exe
|
||||
if EXIST %PYTHON% (
|
||||
goto detect_python_done
|
||||
)
|
||||
set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
|
||||
if EXIST %PYTHON% (
|
||||
goto detect_python_done
|
||||
)
|
||||
|
||||
if NOT EXIST %PYTHON% (
|
||||
echo Warning: Python not found, there is likely an issue with the library folder
|
||||
|
@@ -378,7 +378,8 @@ def usage():
|
||||
|
||||
def main():
|
||||
|
||||
import os, os.path
|
||||
import os
|
||||
import os.path
|
||||
|
||||
try:
|
||||
bpy = __import__('bpy')
|
||||
@@ -410,7 +411,7 @@ def main():
|
||||
# read blend header from blend file
|
||||
log.info("2: read file:")
|
||||
|
||||
if not dir in sys.path:
|
||||
if dir not in sys.path:
|
||||
sys.path.append(dir)
|
||||
import BlendFileReader
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Doxyfile 1.9.1
|
||||
# Doxyfile 1.9.3
|
||||
|
||||
# This file describes the settings to be used by the documentation system
|
||||
# doxygen (www.doxygen.org) for a project.
|
||||
@@ -38,7 +38,7 @@ PROJECT_NAME = Blender
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = V3.2
|
||||
PROJECT_NUMBER = V3.3
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
@@ -93,14 +93,6 @@ ALLOW_UNICODE_NAMES = NO
|
||||
|
||||
OUTPUT_LANGUAGE = English
|
||||
|
||||
# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all
|
||||
# documentation generated by doxygen is written. Doxygen will use this
|
||||
# information to generate all generated output in the proper direction.
|
||||
# Possible values are: None, LTR, RTL and Context.
|
||||
# The default value is: None.
|
||||
|
||||
OUTPUT_TEXT_DIRECTION = None
|
||||
|
||||
# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
|
||||
# descriptions after the members that are listed in the file and class
|
||||
# documentation (similar to Javadoc). Set to NO to disable this.
|
||||
@@ -258,16 +250,16 @@ TAB_SIZE = 4
|
||||
# the documentation. An alias has the form:
|
||||
# name=value
|
||||
# For example adding
|
||||
# "sideeffect=@par Side Effects:\n"
|
||||
# "sideeffect=@par Side Effects:^^"
|
||||
# will allow you to put the command \sideeffect (or @sideeffect) in the
|
||||
# documentation, which will result in a user-defined paragraph with heading
|
||||
# "Side Effects:". You can put \n's in the value part of an alias to insert
|
||||
# newlines (in the resulting output). You can put ^^ in the value part of an
|
||||
# alias to insert a newline as if a physical newline was in the original file.
|
||||
# When you need a literal { or } or , in the value part of an alias you have to
|
||||
# escape them by means of a backslash (\), this can lead to conflicts with the
|
||||
# commands \{ and \} for these it is advised to use the version @{ and @} or use
|
||||
# a double escape (\\{ and \\})
|
||||
# "Side Effects:". Note that you cannot put \n's in the value part of an alias
|
||||
# to insert newlines (in the resulting output). You can put ^^ in the value part
|
||||
# of an alias to insert a newline as if a physical newline was in the original
|
||||
# file. When you need a literal { or } or , in the value part of an alias you
|
||||
# have to escape them by means of a backslash (\), this can lead to conflicts
|
||||
# with the commands \{ and \} for these it is advised to use the version @{ and
|
||||
# @} or use a double escape (\\{ and \\})
|
||||
|
||||
ALIASES =
|
||||
|
||||
@@ -312,8 +304,8 @@ OPTIMIZE_OUTPUT_SLICE = NO
|
||||
# extension. Doxygen has a built-in mapping, but you can override or extend it
|
||||
# using this tag. The format is ext=language, where ext is a file extension, and
|
||||
# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
|
||||
# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL,
|
||||
# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
|
||||
# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice,
|
||||
# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
|
||||
# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
|
||||
# tries to guess whether the code is fixed or free formatted code, this is the
|
||||
# default for Fortran type files). For instance to make doxygen treat .inc files
|
||||
@@ -466,7 +458,7 @@ LOOKUP_CACHE_SIZE = 3
|
||||
# than 0 to get more control over the balance between CPU load and processing
|
||||
# speed. At this moment only the input processing can be done using multiple
|
||||
# threads. Since this is still an experimental feature the default is set to 1,
|
||||
# which efficively disables parallel processing. Please report any issues you
|
||||
# which effectively disables parallel processing. Please report any issues you
|
||||
# encounter. Generating dot graphs in parallel is controlled by the
|
||||
# DOT_NUM_THREADS setting.
|
||||
# Minimum value: 0, maximum value: 32, default value: 1.
|
||||
@@ -610,6 +602,12 @@ HIDE_SCOPE_NAMES = NO
|
||||
|
||||
HIDE_COMPOUND_REFERENCE= NO
|
||||
|
||||
# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class
|
||||
# will show which file needs to be included to use the class.
|
||||
# The default value is: YES.
|
||||
|
||||
SHOW_HEADERFILE = YES
|
||||
|
||||
# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
|
||||
# the files that are included by a file in the documentation of that file.
|
||||
# The default value is: YES.
|
||||
@@ -767,7 +765,8 @@ FILE_VERSION_FILTER =
|
||||
# output files in an output format independent way. To create the layout file
|
||||
# that represents doxygen's defaults, run doxygen with the -l option. You can
|
||||
# optionally specify a file name after the option, if omitted DoxygenLayout.xml
|
||||
# will be used as the name of the layout file.
|
||||
# will be used as the name of the layout file. See also section "Changing the
|
||||
# layout of pages" for information.
|
||||
#
|
||||
# Note that if you run doxygen from a directory containing a file called
|
||||
# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
|
||||
@@ -813,18 +812,26 @@ WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = NO
|
||||
|
||||
# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
|
||||
# potential errors in the documentation, such as not documenting some parameters
|
||||
# in a documented function, or documenting parameters that don't exist or using
|
||||
# markup commands wrongly.
|
||||
# potential errors in the documentation, such as documenting some parameters in
|
||||
# a documented function twice, or documenting parameters that don't exist or
|
||||
# using markup commands wrongly.
|
||||
# The default value is: YES.
|
||||
|
||||
WARN_IF_DOC_ERROR = YES
|
||||
|
||||
# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete
|
||||
# function parameter documentation. If set to NO, doxygen will accept that some
|
||||
# parameters have no documentation without warning.
|
||||
# The default value is: YES.
|
||||
|
||||
WARN_IF_INCOMPLETE_DOC = YES
|
||||
|
||||
# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
|
||||
# are documented, but have no documentation for their parameters or return
|
||||
# value. If set to NO, doxygen will only warn about wrong or incomplete
|
||||
# parameter documentation, but not about the absence of documentation. If
|
||||
# EXTRACT_ALL is set to YES then this flag will automatically be disabled.
|
||||
# value. If set to NO, doxygen will only warn about wrong parameter
|
||||
# documentation, but not about the absence of documentation. If EXTRACT_ALL is
|
||||
# set to YES then this flag will automatically be disabled. See also
|
||||
# WARN_IF_INCOMPLETE_DOC
|
||||
# The default value is: NO.
|
||||
|
||||
WARN_NO_PARAMDOC = NO
|
||||
@@ -850,7 +857,10 @@ WARN_FORMAT = "$file:$line: $text"
|
||||
|
||||
# The WARN_LOGFILE tag can be used to specify a file to which warning and error
|
||||
# messages should be written. If left blank the output is written to standard
|
||||
# error (stderr).
|
||||
# error (stderr). In case the file specified cannot be opened for writing the
|
||||
# warning and error messages are written to standard error. When as file - is
|
||||
# specified the warning and error messages are written to standard output
|
||||
# (stdout).
|
||||
|
||||
WARN_LOGFILE =
|
||||
|
||||
@@ -894,10 +904,10 @@ INPUT_ENCODING = UTF-8
|
||||
#
|
||||
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
|
||||
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
|
||||
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
|
||||
# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment),
|
||||
# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl,
|
||||
# *.ucf, *.qsf and *.ice.
|
||||
# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml,
|
||||
# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C
|
||||
# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd,
|
||||
# *.vhdl, *.ucf, *.qsf and *.ice.
|
||||
|
||||
FILE_PATTERNS =
|
||||
|
||||
@@ -939,7 +949,7 @@ EXCLUDE_PATTERNS = .svn \
|
||||
# (namespaces, classes, functions, etc.) that should be excluded from the
|
||||
# output. The symbol name can be a fully qualified name, a word, or if the
|
||||
# wildcard * is used, a substring. Examples: ANamespace, AClass,
|
||||
# AClass::ANamespace, ANamespace::*Test
|
||||
# ANamespace::AClass, ANamespace::*Test
|
||||
#
|
||||
# Note that the wildcards are matched against the file with absolute path, so to
|
||||
# exclude all test directories use the pattern */test/*
|
||||
@@ -1224,7 +1234,7 @@ HTML_EXTRA_FILES =
|
||||
|
||||
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
|
||||
# will adjust the colors in the style sheet and background images according to
|
||||
# this color. Hue is specified as an angle on a colorwheel, see
|
||||
# this color. Hue is specified as an angle on a color-wheel, see
|
||||
# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
|
||||
# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
|
||||
# purple, and 360 is red again.
|
||||
@@ -1234,7 +1244,7 @@ HTML_EXTRA_FILES =
|
||||
HTML_COLORSTYLE_HUE = 220
|
||||
|
||||
# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
|
||||
# in the HTML output. For a value of 0 the output will use grayscales only. A
|
||||
# in the HTML output. For a value of 0 the output will use gray-scales only. A
|
||||
# value of 255 will produce the most vivid colors.
|
||||
# Minimum value: 0, maximum value: 255, default value: 100.
|
||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||
@@ -1316,6 +1326,13 @@ GENERATE_DOCSET = NO
|
||||
|
||||
DOCSET_FEEDNAME = "Doxygen generated docs"
|
||||
|
||||
# This tag determines the URL of the docset feed. A documentation feed provides
|
||||
# an umbrella under which multiple documentation sets from a single provider
|
||||
# (such as a company or product suite) can be grouped.
|
||||
# This tag requires that the tag GENERATE_DOCSET is set to YES.
|
||||
|
||||
DOCSET_FEEDURL =
|
||||
|
||||
# This tag specifies a string that should uniquely identify the documentation
|
||||
# set bundle. This should be a reverse domain-name style string, e.g.
|
||||
# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
|
||||
@@ -1341,8 +1358,12 @@ DOCSET_PUBLISHER_NAME = Publisher
|
||||
# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
|
||||
# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
|
||||
# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
|
||||
# (see:
|
||||
# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows.
|
||||
# on Windows. In the beginning of 2021 Microsoft took the original page, with
|
||||
# a.o. the download links, offline the HTML help workshop was already many years
|
||||
# in maintenance mode). You can download the HTML help workshop from the web
|
||||
# archives at Installation executable (see:
|
||||
# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo
|
||||
# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe).
|
||||
#
|
||||
# The HTML Help Workshop contains a compiler that can convert all HTML output
|
||||
# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
|
||||
@@ -1501,16 +1522,28 @@ DISABLE_INDEX = NO
|
||||
# to work a browser that supports JavaScript, DHTML, CSS and frames is required
|
||||
# (i.e. any modern browser). Windows users are probably better off using the
|
||||
# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
|
||||
# further fine-tune the look of the index. As an example, the default style
|
||||
# sheet generated by doxygen has an example that shows how to put an image at
|
||||
# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
|
||||
# the same information as the tab index, you could consider setting
|
||||
# DISABLE_INDEX to YES when enabling this option.
|
||||
# further fine tune the look of the index (see "Fine-tuning the output"). As an
|
||||
# example, the default style sheet generated by doxygen has an example that
|
||||
# shows how to put an image at the root of the tree instead of the PROJECT_NAME.
|
||||
# Since the tree basically has the same information as the tab index, you could
|
||||
# consider setting DISABLE_INDEX to YES when enabling this option.
|
||||
# The default value is: NO.
|
||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||
|
||||
GENERATE_TREEVIEW = NO
|
||||
|
||||
# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the
|
||||
# FULL_SIDEBAR option determines if the side bar is limited to only the treeview
|
||||
# area (value NO) or if it should extend to the full height of the window (value
|
||||
# YES). Setting this to YES gives a layout similar to
|
||||
# https://docs.readthedocs.io with more room for contents, but less room for the
|
||||
# project logo, title, and description. If either GENERATE_TREEVIEW or
|
||||
# DISABLE_INDEX is set to NO, this option has no effect.
|
||||
# The default value is: NO.
|
||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||
|
||||
FULL_SIDEBAR = NO
|
||||
|
||||
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
|
||||
# doxygen will group on one line in the generated HTML documentation.
|
||||
#
|
||||
@@ -1535,6 +1568,13 @@ TREEVIEW_WIDTH = 246
|
||||
|
||||
EXT_LINKS_IN_WINDOW = NO
|
||||
|
||||
# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email
|
||||
# addresses.
|
||||
# The default value is: YES.
|
||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||
|
||||
OBFUSCATE_EMAILS = YES
|
||||
|
||||
# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg
|
||||
# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see
|
||||
# https://inkscape.org) to generate formulas as SVG images instead of PNGs for
|
||||
@@ -1583,11 +1623,29 @@ FORMULA_MACROFILE =
|
||||
|
||||
USE_MATHJAX = NO
|
||||
|
||||
# With MATHJAX_VERSION it is possible to specify the MathJax version to be used.
|
||||
# Note that the different versions of MathJax have different requirements with
|
||||
# regards to the different settings, so it is possible that also other MathJax
|
||||
# settings have to be changed when switching between the different MathJax
|
||||
# versions.
|
||||
# Possible values are: MathJax_2 and MathJax_3.
|
||||
# The default value is: MathJax_2.
|
||||
# This tag requires that the tag USE_MATHJAX is set to YES.
|
||||
|
||||
MATHJAX_VERSION = MathJax_2
|
||||
|
||||
# When MathJax is enabled you can set the default output format to be used for
|
||||
# the MathJax output. See the MathJax site (see:
|
||||
# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details.
|
||||
# the MathJax output. For more details about the output format see MathJax
|
||||
# version 2 (see:
|
||||
# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3
|
||||
# (see:
|
||||
# http://docs.mathjax.org/en/latest/web/components/output.html).
|
||||
# Possible values are: HTML-CSS (which is slower, but has the best
|
||||
# compatibility), NativeMML (i.e. MathML) and SVG.
|
||||
# compatibility. This is the name for Mathjax version 2, for MathJax version 3
|
||||
# this will be translated into chtml), NativeMML (i.e. MathML. Only supported
|
||||
# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This
|
||||
# is the name for Mathjax version 3, for MathJax version 2 this will be
|
||||
# translated into HTML-CSS) and SVG.
|
||||
# The default value is: HTML-CSS.
|
||||
# This tag requires that the tag USE_MATHJAX is set to YES.
|
||||
|
||||
@@ -1600,15 +1658,21 @@ MATHJAX_FORMAT = HTML-CSS
|
||||
# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
|
||||
# Content Delivery Network so you can quickly see the result without installing
|
||||
# MathJax. However, it is strongly recommended to install a local copy of
|
||||
# MathJax from https://www.mathjax.org before deployment.
|
||||
# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2.
|
||||
# MathJax from https://www.mathjax.org before deployment. The default value is:
|
||||
# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2
|
||||
# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3
|
||||
# This tag requires that the tag USE_MATHJAX is set to YES.
|
||||
|
||||
MATHJAX_RELPATH = http://www.mathjax.org/mathjax
|
||||
|
||||
# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
|
||||
# extension names that should be enabled during MathJax rendering. For example
|
||||
# for MathJax version 2 (see
|
||||
# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions):
|
||||
# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
|
||||
# For example for MathJax version 3 (see
|
||||
# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html):
|
||||
# MATHJAX_EXTENSIONS = ams
|
||||
# This tag requires that the tag USE_MATHJAX is set to YES.
|
||||
|
||||
MATHJAX_EXTENSIONS =
|
||||
@@ -1788,29 +1852,31 @@ PAPER_TYPE = a4
|
||||
|
||||
EXTRA_PACKAGES =
|
||||
|
||||
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
|
||||
# generated LaTeX document. The header should contain everything until the first
|
||||
# chapter. If it is left blank doxygen will generate a standard header. See
|
||||
# section "Doxygen usage" for information on how to let doxygen write the
|
||||
# default header to a separate file.
|
||||
# The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for
|
||||
# the generated LaTeX document. The header should contain everything until the
|
||||
# first chapter. If it is left blank doxygen will generate a standard header. It
|
||||
# is highly recommended to start with a default header using
|
||||
# doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty
|
||||
# and then modify the file new_header.tex. See also section "Doxygen usage" for
|
||||
# information on how to generate the default header that doxygen normally uses.
|
||||
#
|
||||
# Note: Only use a user-defined header if you know what you are doing! The
|
||||
# following commands have a special meaning inside the header: $title,
|
||||
# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
|
||||
# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
|
||||
# string, for the replacement values of the other commands the user is referred
|
||||
# to HTML_HEADER.
|
||||
# Note: Only use a user-defined header if you know what you are doing!
|
||||
# Note: The header is subject to change so you typically have to regenerate the
|
||||
# default header when upgrading to a newer version of doxygen. The following
|
||||
# commands have a special meaning inside the header (and footer): For a
|
||||
# description of the possible markers and block names see the documentation.
|
||||
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
||||
|
||||
LATEX_HEADER =
|
||||
|
||||
# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
|
||||
# generated LaTeX document. The footer should contain everything after the last
|
||||
# chapter. If it is left blank doxygen will generate a standard footer. See
|
||||
# The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for
|
||||
# the generated LaTeX document. The footer should contain everything after the
|
||||
# last chapter. If it is left blank doxygen will generate a standard footer. See
|
||||
# LATEX_HEADER for more information on how to generate a default footer and what
|
||||
# special commands can be used inside the footer.
|
||||
#
|
||||
# Note: Only use a user-defined footer if you know what you are doing!
|
||||
# special commands can be used inside the footer. See also section "Doxygen
|
||||
# usage" for information on how to generate the default footer that doxygen
|
||||
# normally uses. Note: Only use a user-defined footer if you know what you are
|
||||
# doing!
|
||||
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
||||
|
||||
LATEX_FOOTER =
|
||||
@@ -1855,8 +1921,7 @@ USE_PDFLATEX = NO
|
||||
|
||||
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
|
||||
# command to the generated LaTeX files. This will instruct LaTeX to keep running
|
||||
# if errors occur, instead of asking the user for help. This option is also used
|
||||
# when generating formulas in HTML.
|
||||
# if errors occur, instead of asking the user for help.
|
||||
# The default value is: NO.
|
||||
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
||||
|
||||
@@ -1869,16 +1934,6 @@ LATEX_BATCHMODE = NO
|
||||
|
||||
LATEX_HIDE_INDICES = NO
|
||||
|
||||
# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
|
||||
# code with syntax highlighting in the LaTeX output.
|
||||
#
|
||||
# Note that which sources are shown also depends on other settings such as
|
||||
# SOURCE_BROWSER.
|
||||
# The default value is: NO.
|
||||
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
||||
|
||||
LATEX_SOURCE_CODE = NO
|
||||
|
||||
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
|
||||
# bibliography, e.g. plainnat, or ieeetr. See
|
||||
# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
|
||||
@@ -1959,16 +2014,6 @@ RTF_STYLESHEET_FILE =
|
||||
|
||||
RTF_EXTENSIONS_FILE =
|
||||
|
||||
# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
|
||||
# with syntax highlighting in the RTF output.
|
||||
#
|
||||
# Note that which sources are shown also depends on other settings such as
|
||||
# SOURCE_BROWSER.
|
||||
# The default value is: NO.
|
||||
# This tag requires that the tag GENERATE_RTF is set to YES.
|
||||
|
||||
RTF_SOURCE_CODE = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
@@ -2065,15 +2110,6 @@ GENERATE_DOCBOOK = NO
|
||||
|
||||
DOCBOOK_OUTPUT = docbook
|
||||
|
||||
# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
|
||||
# program listings (including syntax highlighting and cross-referencing
|
||||
# information) to the DOCBOOK output. Note that enabling this will significantly
|
||||
# increase the size of the DOCBOOK output.
|
||||
# The default value is: NO.
|
||||
# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
|
||||
|
||||
DOCBOOK_PROGRAMLISTING = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
@@ -2254,15 +2290,6 @@ EXTERNAL_PAGES = YES
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
|
||||
# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
|
||||
# NO turns the diagrams off. Note that this option also works with HAVE_DOT
|
||||
# disabled, but it is recommended to install and use dot, since it yields more
|
||||
# powerful graphs.
|
||||
# The default value is: YES.
|
||||
|
||||
CLASS_DIAGRAMS = NO
|
||||
|
||||
# You can include diagrams made with dia in doxygen documentation. Doxygen will
|
||||
# then run dia to produce the diagram and insert it in the documentation. The
|
||||
# DIA_PATH tag allows you to specify the directory where the dia binary resides.
|
||||
@@ -2319,13 +2346,16 @@ DOT_FONTSIZE = 10
|
||||
|
||||
DOT_FONTPATH =
|
||||
|
||||
# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
|
||||
# each documented class showing the direct and indirect inheritance relations.
|
||||
# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
|
||||
# If the CLASS_GRAPH tag is set to YES (or GRAPH) then doxygen will generate a
|
||||
# graph for each documented class showing the direct and indirect inheritance
|
||||
# relations. In case HAVE_DOT is set as well dot will be used to draw the graph,
|
||||
# otherwise the built-in generator will be used. If the CLASS_GRAPH tag is set
|
||||
# to TEXT the direct and indirect inheritance relations will be shown as texts /
|
||||
# links.
|
||||
# Possible values are: NO, YES, TEXT and GRAPH.
|
||||
# The default value is: YES.
|
||||
# This tag requires that the tag HAVE_DOT is set to YES.
|
||||
|
||||
CLASS_GRAPH = YES
|
||||
CLASS_GRAPH = TEXT
|
||||
|
||||
# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
|
||||
# graph for each documented class showing the direct and indirect implementation
|
||||
@@ -2452,6 +2482,13 @@ GRAPHICAL_HIERARCHY = YES
|
||||
|
||||
DIRECTORY_GRAPH = YES
|
||||
|
||||
# The DIR_GRAPH_MAX_DEPTH tag can be used to limit the maximum number of levels
|
||||
# of child directories generated in directory dependency graphs by dot.
|
||||
# Minimum value: 1, maximum value: 25, default value: 1.
|
||||
# This tag requires that the tag DIRECTORY_GRAPH is set to YES.
|
||||
|
||||
DIR_GRAPH_MAX_DEPTH = 1
|
||||
|
||||
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
|
||||
# generated by dot. For an explanation of the image formats see the section
|
||||
# output formats in the documentation of the dot tool (Graphviz (see:
|
||||
@@ -2505,10 +2542,10 @@ MSCFILE_DIRS =
|
||||
DIAFILE_DIRS =
|
||||
|
||||
# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
|
||||
# path where java can find the plantuml.jar file. If left blank, it is assumed
|
||||
# PlantUML is not used or called during a preprocessing step. Doxygen will
|
||||
# generate a warning when it encounters a \startuml command in this case and
|
||||
# will not generate output for the diagram.
|
||||
# path where java can find the plantuml.jar file or to the filename of jar file
|
||||
# to be used. If left blank, it is assumed PlantUML is not used or called during
|
||||
# a preprocessing step. Doxygen will generate a warning when it encounters a
|
||||
# \startuml command in this case and will not generate output for the diagram.
|
||||
|
||||
PLANTUML_JAR_PATH =
|
||||
|
||||
@@ -2570,6 +2607,8 @@ DOT_MULTI_TARGETS = YES
|
||||
# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
|
||||
# explaining the meaning of the various boxes and arrows in the dot generated
|
||||
# graphs.
|
||||
# Note: This tag requires that UML_LOOK isn't set, i.e. the doxygen internal
|
||||
# graphical representation for inheritance and collaboration diagrams is used.
|
||||
# The default value is: YES.
|
||||
# This tag requires that the tag HAVE_DOT is set to YES.
|
||||
|
||||
@@ -2578,8 +2617,8 @@ GENERATE_LEGEND = YES
|
||||
# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate
|
||||
# files that are used to generate the various graphs.
|
||||
#
|
||||
# Note: This setting is not only used for dot files but also for msc and
|
||||
# plantuml temporary files.
|
||||
# Note: This setting is not only used for dot files but also for msc temporary
|
||||
# files.
|
||||
# The default value is: YES.
|
||||
|
||||
DOT_CLEANUP = YES
|
||||
|
502
doc/license/LGPL2.1-license.txt
Normal file
502
doc/license/LGPL2.1-license.txt
Normal file
@@ -0,0 +1,502 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
@@ -5,5 +5,6 @@ BSD-2-Clause BSD-2-Clause-license.txt https://spdx.org/licenses/BS
|
||||
BSD-3-Clause BSD-3-Clause-license.txt https://spdx.org/licenses/BSD-3-Clause.html
|
||||
GPL-2.0-or-later GPL-license.txt https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
GPL-3.0-or-later GPL3-license.txt https://spdx.org/licenses/GPL-3.0-or-later.html
|
||||
LGPL-2.1-or-later LGPL2.1-license.txt https://spdx.org/licenses/LGPL-2.1-or-later.html
|
||||
MIT MIT-license.txt https://spdx.org/licenses/MIT.html
|
||||
Zlib Zlib-license.txt https://spdx.org/licenses/Zlib.html
|
||||
|
@@ -11,12 +11,9 @@ where <path-to-blender> is the path to the Blender executable,
|
||||
and <output-filename> is where to write the generated man page.
|
||||
'''
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
|
||||
from typing import (
|
||||
@@ -104,10 +101,10 @@ blender \- a full-featured 3D application''')
|
||||
.PP
|
||||
.B blender
|
||||
is a full-featured 3D application. It supports the entirety of the 3D pipeline - '''
|
||||
'''modeling, rigging, animation, simulation, rendering, compositing, motion tracking, and video editing.
|
||||
'''modeling, rigging, animation, simulation, rendering, compositing, motion tracking, and video editing.
|
||||
|
||||
Use Blender to create 3D images and animations, films and commercials, content for games, '''
|
||||
r'''architectural and industrial visualizations, and scientific visualizations.
|
||||
r'''architectural and industrial visualizations, and scientific visualizations.
|
||||
|
||||
https://www.blender.org''')
|
||||
|
||||
|
@@ -11,6 +11,7 @@ import queue
|
||||
|
||||
execution_queue = queue.Queue()
|
||||
|
||||
|
||||
# This function can safely be called in another thread.
|
||||
# The function will be executed when the timer runs the next time.
|
||||
def run_in_main_thread(function):
|
||||
|
@@ -9,7 +9,7 @@ operator in the different part of the user interface.
|
||||
The context overrides are passed as a dictionary, with keys matching the context
|
||||
member names in bpy.context.
|
||||
For example to override ``bpy.context.active_object``,
|
||||
you would pass ``{'active_object': object}``.
|
||||
you would pass ``{'active_object': object}`` to :class:`bpy.types.Context.temp_override`.
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -17,8 +17,10 @@ you would pass ``{'active_object': object}``.
|
||||
(otherwise, you'll have to find and gather all needed data yourself).
|
||||
"""
|
||||
|
||||
# remove all objects in scene rather than the selected ones
|
||||
# Remove all objects in scene rather than the selected ones.
|
||||
import bpy
|
||||
override = bpy.context.copy()
|
||||
override['selected_objects'] = list(bpy.context.scene.objects)
|
||||
bpy.ops.object.delete(override)
|
||||
from bpy import context
|
||||
override = context.copy()
|
||||
override["selected_objects"] = list(context.scene.objects)
|
||||
with context.temp_override(**override):
|
||||
bpy.ops.object.delete()
|
||||
|
@@ -1,17 +1,16 @@
|
||||
"""
|
||||
It is also possible to run an operator in a particular part of the user
|
||||
interface. For this we need to pass the window, screen, area and sometimes
|
||||
a region.
|
||||
interface. For this we need to pass the window, area and sometimes a region.
|
||||
"""
|
||||
|
||||
# maximize 3d view in all windows
|
||||
# Maximize 3d view in all windows.
|
||||
import bpy
|
||||
from bpy import context
|
||||
|
||||
for window in bpy.context.window_manager.windows:
|
||||
for window in context.window_manager.windows:
|
||||
screen = window.screen
|
||||
|
||||
for area in screen.areas:
|
||||
if area.type == 'VIEW_3D':
|
||||
override = {'window': window, 'screen': screen, 'area': area}
|
||||
bpy.ops.screen.screen_full_area(override)
|
||||
with context.temp_override(window=window, area=area):
|
||||
bpy.ops.screen.screen_full_area()
|
||||
break
|
||||
|
@@ -33,6 +33,11 @@ There are 3 optional positional arguments (documented in detail below).
|
||||
bpy.ops.test.operator(override_context, execution_context, undo)
|
||||
|
||||
- override_context - ``dict`` type.
|
||||
|
||||
.. deprecated:: 3.2
|
||||
|
||||
:class:`bpy.types.Context.temp_override` should be used instead of this argument.
|
||||
|
||||
- execution_context - ``str`` (enum).
|
||||
- undo - ``bool`` type.
|
||||
|
||||
|
@@ -4,6 +4,7 @@ the middle of updating the armature without having to update dependencies
|
||||
after each change, by manually carrying updated matrices in a recursive walk.
|
||||
"""
|
||||
|
||||
|
||||
def set_pose_matrices(obj, matrix_map):
|
||||
"Assign pose space matrices of all bones at once, ignoring constraints."
|
||||
|
||||
@@ -11,7 +12,7 @@ def set_pose_matrices(obj, matrix_map):
|
||||
if pbone.name in matrix_map:
|
||||
matrix = matrix_map[pbone.name]
|
||||
|
||||
## Instead of:
|
||||
# # Instead of:
|
||||
# pbone.matrix = matrix
|
||||
# bpy.context.view_layer.update()
|
||||
|
||||
|
19
doc/python_api/examples/bpy.types.Context.temp_override.1.py
Normal file
19
doc/python_api/examples/bpy.types.Context.temp_override.1.py
Normal file
@@ -0,0 +1,19 @@
|
||||
"""
|
||||
Overriding the context can be used to temporarily activate another ``window`` / ``area`` & ``region``,
|
||||
as well as other members such as the ``active_object`` or ``bone``.
|
||||
|
||||
Notes:
|
||||
|
||||
- When overriding window, area and regions: the arguments must be consistent,
|
||||
so any region argument that's passed in must be contained by the current area or the area passed in.
|
||||
The same goes for the area needing to be contained in the current window.
|
||||
|
||||
- Temporary context overrides may be nested, when this is done, members will be added to the existing overrides.
|
||||
|
||||
- Context members are restored outside the scope of the context-manager.
|
||||
The only exception to this is when the data is no longer available.
|
||||
|
||||
In the event windowing data was removed (for example), the state of the context is left as-is.
|
||||
While this isn't likely to happen, explicit window operation such as closing windows or loading a new file
|
||||
remove the windowing data that was set before the temporary context was created.
|
||||
"""
|
15
doc/python_api/examples/bpy.types.Context.temp_override.2.py
Normal file
15
doc/python_api/examples/bpy.types.Context.temp_override.2.py
Normal file
@@ -0,0 +1,15 @@
|
||||
"""
|
||||
Overriding the context can be useful to set the context after loading files
|
||||
(which would otherwise by None). For example:
|
||||
"""
|
||||
|
||||
import bpy
|
||||
from bpy import context
|
||||
|
||||
# Reload the current file and select all.
|
||||
bpy.ops.wm.open_mainfile(filepath=bpy.data.filepath)
|
||||
window = context.window_manager.windows[0]
|
||||
with context.temp_override(window=window):
|
||||
bpy.ops.mesh.primitive_uv_sphere_add()
|
||||
# The context override is needed so it's possible to set edit-mode.
|
||||
bpy.ops.object.mode_set(mode='EDIT')
|
16
doc/python_api/examples/bpy.types.Context.temp_override.3.py
Normal file
16
doc/python_api/examples/bpy.types.Context.temp_override.3.py
Normal file
@@ -0,0 +1,16 @@
|
||||
"""
|
||||
This example shows how it's possible to add an object to the scene in another window.
|
||||
"""
|
||||
import bpy
|
||||
from bpy import context
|
||||
|
||||
win_active = context.window
|
||||
win_other = None
|
||||
for win_iter in context.window_manager.windows:
|
||||
if win_iter != win_active:
|
||||
win_other = win_iter
|
||||
break
|
||||
|
||||
# Add cube in the other window.
|
||||
with context.temp_override(window=win_other):
|
||||
bpy.ops.mesh.primitive_cube_add()
|
46
doc/python_api/examples/bpy.types.Image.py
Normal file
46
doc/python_api/examples/bpy.types.Image.py
Normal file
@@ -0,0 +1,46 @@
|
||||
"""
|
||||
Image Data
|
||||
++++++++++
|
||||
|
||||
The Image data-block is a shallow wrapper around image or video file(s)
|
||||
(on disk, as packed data, or generated).
|
||||
|
||||
All actual data like the pixel buffer, size, resolution etc. is
|
||||
cached in an :class:`imbuf.types.ImBuf` image buffer (or several buffers
|
||||
in some cases, like UDIM textures, multi-views, animations...).
|
||||
|
||||
Several properties and functions of the Image data-block are then actually
|
||||
using/modifying its image buffer, and not the Image data-block itself.
|
||||
|
||||
.. warning::
|
||||
|
||||
One key limitation is that image buffers are not shared between different
|
||||
Image data-blocks, and they are not duplicated when copying an image.
|
||||
|
||||
So until a modified image buffer is saved on disk, duplicating its Image
|
||||
data-block will not propagate the underlying buffer changes to the new Image.
|
||||
|
||||
|
||||
This example script generates an Image data-block with a given size,
|
||||
change its first pixel, rescale it, and duplicates the image.
|
||||
|
||||
The duplicated image still has the same size and colors as the original image
|
||||
at its creation, all editing in the original image's buffer is 'lost' in its copy.
|
||||
"""
|
||||
|
||||
import bpy
|
||||
|
||||
image_src = bpy.data.images.new('src', 1024, 102)
|
||||
print(image_src.size)
|
||||
print(image_src.pixels[0:4])
|
||||
|
||||
image_src.scale(1024, 720)
|
||||
image_src.pixels[0:4] = (0.5, 0.5, 0.5, 0.5)
|
||||
image_src.update()
|
||||
print(image_src.size)
|
||||
print(image_src.pixels[0:4])
|
||||
|
||||
image_dest = image_src.copy()
|
||||
image_dest.update()
|
||||
print(image_dest.size)
|
||||
print(image_dest.pixels[0:4])
|
@@ -42,10 +42,12 @@ class SimpleMouseOperator(bpy.types.Operator):
|
||||
self.y = event.mouse_y
|
||||
return self.execute(context)
|
||||
|
||||
# Only needed if you want to add into a dynamic menu
|
||||
|
||||
# Only needed if you want to add into a dynamic menu.
|
||||
def menu_func(self, context):
|
||||
self.layout.operator(SimpleMouseOperator.bl_idname, text="Simple Mouse Operator")
|
||||
|
||||
|
||||
# Register and add to the view menu (required to also use F3 search "Simple Mouse Operator" for quick access)
|
||||
bpy.utils.register_class(SimpleMouseOperator)
|
||||
bpy.types.VIEW3D_MT_view.append(menu_func)
|
||||
|
@@ -37,7 +37,7 @@ class ExportSomeData(bpy.types.Operator):
|
||||
return {'RUNNING_MODAL'}
|
||||
|
||||
|
||||
# Only needed if you want to add into a dynamic menu
|
||||
# Only needed if you want to add into a dynamic menu.
|
||||
def menu_func(self, context):
|
||||
self.layout.operator_context = 'INVOKE_DEFAULT'
|
||||
self.layout.operator(ExportSomeData.bl_idname, text="Text Export Operator")
|
||||
|
@@ -27,7 +27,8 @@ class DialogOperator(bpy.types.Operator):
|
||||
wm = context.window_manager
|
||||
return wm.invoke_props_dialog(self)
|
||||
|
||||
# Only needed if you want to add into a dynamic menu
|
||||
|
||||
# Only needed if you want to add into a dynamic menu.
|
||||
def menu_func(self, context):
|
||||
self.layout.operator(DialogOperator.bl_idname, text="Dialog Operator")
|
||||
|
||||
|
@@ -41,11 +41,13 @@ class CustomDrawOperator(bpy.types.Operator):
|
||||
|
||||
col.prop(self, "my_string")
|
||||
|
||||
# Only needed if you want to add into a dynamic menu
|
||||
|
||||
# Only needed if you want to add into a dynamic menu.
|
||||
def menu_func(self, context):
|
||||
self.layout.operator(CustomDrawOperator.bl_idname, text="Custom Draw Operator")
|
||||
|
||||
# Register and add to the object menu (required to also use F3 search "Custom Draw Operator" for quick access)
|
||||
|
||||
# Register and add to the object menu (required to also use F3 search "Custom Draw Operator" for quick access).
|
||||
bpy.utils.register_class(CustomDrawOperator)
|
||||
bpy.types.VIEW3D_MT_object.append(menu_func)
|
||||
|
||||
|
@@ -55,11 +55,13 @@ class ModalOperator(bpy.types.Operator):
|
||||
context.window_manager.modal_handler_add(self)
|
||||
return {'RUNNING_MODAL'}
|
||||
|
||||
# Only needed if you want to add into a dynamic menu
|
||||
|
||||
# Only needed if you want to add into a dynamic menu.
|
||||
def menu_func(self, context):
|
||||
self.layout.operator(ModalOperator.bl_idname, text="Modal Operator")
|
||||
|
||||
# Register and add to the object menu (required to also use F3 search "Modal Operator" for quick access)
|
||||
|
||||
# Register and add to the object menu (required to also use F3 search "Modal Operator" for quick access).
|
||||
bpy.utils.register_class(ModalOperator)
|
||||
bpy.types.VIEW3D_MT_object.append(menu_func)
|
||||
|
||||
|
@@ -31,10 +31,12 @@ class SearchEnumOperator(bpy.types.Operator):
|
||||
context.window_manager.invoke_search_popup(self)
|
||||
return {'RUNNING_MODAL'}
|
||||
|
||||
# Only needed if you want to add into a dynamic menu
|
||||
|
||||
# Only needed if you want to add into a dynamic menu.
|
||||
def menu_func(self, context):
|
||||
self.layout.operator(SearchEnumOperator.bl_idname, text="Search Enum Operator")
|
||||
|
||||
|
||||
# Register and add to the object menu (required to also use F3 search "Search Enum Operator" for quick access)
|
||||
bpy.utils.register_class(SearchEnumOperator)
|
||||
bpy.types.VIEW3D_MT_object.append(menu_func)
|
||||
|
@@ -22,13 +22,15 @@ class HelloWorldOperator(bpy.types.Operator):
|
||||
print("Hello World")
|
||||
return {'FINISHED'}
|
||||
|
||||
# Only needed if you want to add into a dynamic menu
|
||||
|
||||
# Only needed if you want to add into a dynamic menu.
|
||||
def menu_func(self, context):
|
||||
self.layout.operator(HelloWorldOperator.bl_idname, text="Hello World Operator")
|
||||
|
||||
# Register and add to the view menu (required to also use F3 search "Hello World Operator" for quick access)
|
||||
|
||||
# Register and add to the view menu (required to also use F3 search "Hello World Operator" for quick access).
|
||||
bpy.utils.register_class(HelloWorldOperator)
|
||||
bpy.types.VIEW3D_MT_view.append(menu_func)
|
||||
|
||||
# test call to the newly defined operator
|
||||
# Test call to the newly defined operator.
|
||||
bpy.ops.wm.hello_world()
|
||||
|
@@ -41,7 +41,7 @@ class MATERIAL_UL_matslots_example(bpy.types.UIList):
|
||||
else:
|
||||
layout.label(text="", translate=False, icon_value=icon)
|
||||
# 'GRID' layout type should be as compact as possible (typically a single icon!).
|
||||
elif self.layout_type in {'GRID'}:
|
||||
elif self.layout_type == 'GRID':
|
||||
layout.alignment = 'CENTER'
|
||||
layout.label(text="", icon_value=icon)
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user