Compare commits
2978 Commits
particle-s
...
eevee-moti
Author | SHA1 | Date | |
---|---|---|---|
d8f46a4452 | |||
a737ca11e1 | |||
92520f1791 | |||
fd14d1cceb | |||
6a1a894df1 | |||
a809631ff2 | |||
f12fe3c23e | |||
16595b9ea1 | |||
5549fa5466 | |||
f79856f9fb | |||
24d39620fb | |||
c02baf8b50 | |||
c73ee8d998 | |||
c98f92f998 | |||
4f9d1a5765 | |||
526e8a3da1 | |||
a03ebe9431 | |||
a61ba6c73d | |||
33359237fe | |||
3d18bd5c51 | |||
49af2f85c3 | |||
a364032dff | |||
e44045745d | |||
e22098616c | |||
![]() |
ed00b5def6 | ||
8ac06377a5 | |||
a0c947ed4c | |||
9385d887d1 | |||
95aa8ffed5 | |||
665acd2903 | |||
f028760b83 | |||
3f648f5b42 | |||
e43a948a2c | |||
e916817520 | |||
cc064acf0f | |||
a76fc2f7ed | |||
2c463a8250 | |||
0439094105 | |||
bfa5eceb89 | |||
faf5f7b63d | |||
63930c41bc | |||
0621c13b3e | |||
14bd92b12f | |||
91462fbb31 | |||
4f314ee5b9 | |||
eee35ebdfb | |||
b05fa123d7 | |||
5fab2ce500 | |||
e7744caf64 | |||
474b288933 | |||
20658e6a29 | |||
4b39de677d | |||
84d4447bc5 | |||
4c172f7ca6 | |||
2d695367a7 | |||
a9dfad831b | |||
b0ac7a89b0 | |||
9b784668ae | |||
74ec37b70c | |||
1d0017089c | |||
3ea04d3e11 | |||
6fe32d7fd6 | |||
d62bbf4079 | |||
93c8955a72 | |||
a58dc25b07 | |||
cc26041d36 | |||
a7ea07c677 | |||
0852d13bbd | |||
044b824c9d | |||
eda58c47b8 | |||
4fefe3ac3b | |||
a71f073dfb | |||
75ce20a000 | |||
0ca0ad5318 | |||
84a0a6d16c | |||
f367f1e5a5 | |||
00f8cfd4ac | |||
d12f6a90b1 | |||
d4315040ad | |||
146473f083 | |||
82f51fe913 | |||
df50104e1c | |||
fc8a7a44b2 | |||
edb4e553f5 | |||
2d1b560a4e | |||
a4bb4b6e65 | |||
48ca66cfe7 | |||
46e0ec05ef | |||
63a40ed422 | |||
d3f83d9f95 | |||
d1932a8ed6 | |||
819ebc9901 | |||
cb9de95d61 | |||
77789a1904 | |||
075156de9f | |||
69b67d4f07 | |||
53d1a729cc | |||
ee64b595da | |||
e1cc9aa7f2 | |||
b37fca650e | |||
0cb59866af | |||
4622434c34 | |||
![]() |
84a5bd9135 | ||
4e9efa80ca | |||
9d75f23566 | |||
37d68871b7 | |||
c23b1de2cf | |||
3ffb52d114 | |||
b7150183e7 | |||
75008dc4b9 | |||
8522b429b5 | |||
5620a09e0d | |||
f7c0f1b8b8 | |||
7d2b4ae9c6 | |||
128296129a | |||
74b0713d8a | |||
874a078d86 | |||
d68e29b62c | |||
9bb7d6ed68 | |||
d8678e02ec | |||
50258d55e7 | |||
7a0ad20e5f | |||
1355d9cc8c | |||
f88d59ecf8 | |||
0c4bc09092 | |||
70a27d0a63 | |||
f326b6a18e | |||
8ded0dd4d5 | |||
e5062a775e | |||
13aa113d7d | |||
9f7d84b656 | |||
0a907657d4 | |||
b5846ebce7 | |||
6f96dfabe5 | |||
bf4198cdaf | |||
e3396d8bfc | |||
d8876e78a1 | |||
1c189aa70a | |||
335c1e48ee | |||
4f4141c8f4 | |||
6e53b28898 | |||
e54fb1b819 | |||
826769d1c7 | |||
34b4dca9f1 | |||
0e040ef3fb | |||
f71a2fc6c3 | |||
460c1d8e20 | |||
4d168e0b8c | |||
1f6d1213d2 | |||
11ba9eec70 | |||
917ab4fbf9 | |||
c175ff19d8 | |||
f50222ba2e | |||
b4ef87afb6 | |||
24904301e5 | |||
112c86fd5d | |||
281319653e | |||
ccbf858bb8 | |||
00961d062a | |||
dc6cee4724 | |||
8f25cfdbfd | |||
3e07d958f1 | |||
561a81eb24 | |||
f6524032ca | |||
a7de01aaa9 | |||
5f7007a962 | |||
1626c526f8 | |||
ab2b9821fc | |||
eb31037503 | |||
01132d4a83 | |||
5ff8a2ca0e | |||
b8afd4e8bb | |||
f0f666541e | |||
959267ffcc | |||
766b3037eb | |||
ee4732ca22 | |||
ce9a64c454 | |||
a99a8061ae | |||
6c6658ccc0 | |||
aed11c673e | |||
03a693922d | |||
5198cb1813 | |||
6c114a139b | |||
033b6a7fb4 | |||
9b3fda0357 | |||
a5e56efc98 | |||
18b57d3e2c | |||
9a3d54943a | |||
1800127355 | |||
cf3e617913 | |||
125acdf933 | |||
0eb969dd99 | |||
1d066050b6 | |||
5146034aa9 | |||
![]() |
7bd73f562a | ||
f5781384ae | |||
a39cc5ae4d | |||
b74cc23dc4 | |||
fc672ce8e2 | |||
60b8db587f | |||
f0047e6754 | |||
0f1361bbc3 | |||
5340556710 | |||
7949953b1e | |||
a77350cce2 | |||
69c9204026 | |||
26fb0d4258 | |||
c3e88fdd03 | |||
a943b65f1b | |||
4df20c058d | |||
2ee95e91f7 | |||
70ad18b94d | |||
b91b90f0dd | |||
b16a85fe0b | |||
9b099c8612 | |||
4e70e0e384 | |||
846dde590f | |||
0f64de6b9b | |||
e9659d0e6e | |||
859505a3da | |||
1270984e13 | |||
b77834ceb1 | |||
a8afe509da | |||
0ee98c654e | |||
abeda01ac6 | |||
67b17684e6 | |||
ff5d24f8be | |||
f797a5406d | |||
a6cd77bad1 | |||
0a41a85bf3 | |||
b78fb8b987 | |||
74fa600ede | |||
d850daf416 | |||
43294e5f49 | |||
60a786e711 | |||
5ed2ed28ab | |||
dc69747f72 | |||
e4e8259d39 | |||
2396daf921 | |||
a1d55bdd53 | |||
473aaa389c | |||
56da8dae67 | |||
0e6c648f3f | |||
7d32a259bf | |||
1c5479167f | |||
48075b2c05 | |||
ce7409fd13 | |||
5e55153c89 | |||
191edd224a | |||
f2d5c53966 | |||
e8b8e16b24 | |||
fe6be70875 | |||
e3a32a22bf | |||
0aa2c10ad1 | |||
8b347fc2cd | |||
fd63220a35 | |||
9e96c6d054 | |||
b2d1c4873f | |||
c7329da14b | |||
0b28f0410c | |||
b168c255aa | |||
ba5b303c88 | |||
1d72fc5a1a | |||
d71f9b9886 | |||
f2a0532111 | |||
15ed2f841c | |||
caca3d9c97 | |||
c7a2ed69be | |||
c604d2762f | |||
733a3e3a70 | |||
3da4724f72 | |||
fd061f61c7 | |||
3b4ef08d68 | |||
41866070d3 | |||
953c232db3 | |||
e8592a0412 | |||
10b34ad697 | |||
5837de6879 | |||
7534bbfa34 | |||
1438c1cfd5 | |||
30395a491f | |||
c7c3908b8e | |||
0f32029522 | |||
78017916f7 | |||
465a9f65de | |||
1a23b0be97 | |||
f9892bd6cf | |||
244ed645e0 | |||
fe13f3db81 | |||
67a617e196 | |||
7aa47083d0 | |||
![]() |
e723ec04fb | ||
67b10fcc22 | |||
b94ab93dfb | |||
a4e0bccb87 | |||
0849af4591 | |||
86385d7ebd | |||
bd68312cb6 | |||
2cdfc1b4af | |||
fc1bb36668 | |||
26aa64b688 | |||
ef0ff4aaf2 | |||
dbb1f56e55 | |||
de9c04c287 | |||
51cd6d22c5 | |||
15a24f3d7f | |||
![]() |
211b6c29f7 | ||
96eab08755 | |||
b2dcff4c21 | |||
054923c860 | |||
47bdb28841 | |||
91cc1f38ae | |||
866e067d65 | |||
4184371fb0 | |||
df17ee202b | |||
![]() |
82e3bd4bbb | ||
![]() |
3c9f80c898 | ||
![]() |
dc8475ec6a | ||
cda1540858 | |||
![]() |
3384bb2c66 | ||
0e14eb7b31 | |||
75015f27ba | |||
d4f1efad00 | |||
3e4c8d48aa | |||
55f8758b87 | |||
59bfcd8c5d | |||
9b0543389b | |||
6f21137722 | |||
53cb1a32db | |||
3b6e223a03 | |||
f0df4d6c35 | |||
2749e6a639 | |||
2004f9a342 | |||
45b5f4e3df | |||
a5e9f024f2 | |||
2e52b3206c | |||
650dedfd10 | |||
a1f9eebc0b | |||
47eccac21c | |||
ee4bafc63a | |||
beef67d1df | |||
ea92f8207a | |||
e391b3e0fb | |||
a87eee65fc | |||
7fc0053c27 | |||
85098bdb89 | |||
071cc71fb0 | |||
dcdbcf1ec1 | |||
![]() |
ffb3365fb2 | ||
0465086223 | |||
52cc412e0f | |||
572c472754 | |||
4153606edd | |||
b08caeb92b | |||
ca09625dcc | |||
417ebc3845 | |||
bd3ab27410 | |||
1743326889 | |||
cdf0d95a50 | |||
6a70d7e09f | |||
9d9f35d946 | |||
5ef44dd83f | |||
9713df4e92 | |||
2c204432df | |||
e69f70e11f | |||
50994eace6 | |||
b18c2a3c41 | |||
eba3aa1837 | |||
b82cb0ad32 | |||
38cfcdd51b | |||
cb59ef1032 | |||
![]() |
0749cff957 | ||
![]() |
752139556f | ||
![]() |
bf34b0c8f4 | ||
0a00fbd265 | |||
21443056b7 | |||
43ec8c287f | |||
cecda64e2e | |||
bdda53fdb2 | |||
074d469165 | |||
ae2f21f378 | |||
ea516bed72 | |||
6aef27602a | |||
b724922f1a | |||
428c0f9ad5 | |||
c6957e50e8 | |||
81f817e7b4 | |||
17d8e7f833 | |||
de6c935261 | |||
![]() |
9c410c77eb | ||
59e793d3bd | |||
a8907e409a | |||
![]() |
c7280ce65b | ||
7881c251f3 | |||
![]() |
389d550412 | ||
18cda8be87 | |||
98c301d25e | |||
f58e76119a | |||
4f3e686cad | |||
8b63c6241d | |||
1d4bae8566 | |||
3778f168f6 | |||
5c54a609a9 | |||
91fb07f361 | |||
3cce8afe2c | |||
b0038b8d73 | |||
45dbc38a8b | |||
8d670546f9 | |||
31cf87a29e | |||
19f3f6cd85 | |||
c204e3348c | |||
9936e23b85 | |||
10966926ce | |||
520f08aa56 | |||
49bd44f5c8 | |||
81c33f0ba7 | |||
c71be9a552 | |||
946ae26349 | |||
c315e56434 | |||
89cd9f110b | |||
d4483b6d15 | |||
f18ed7ad89 | |||
![]() |
b5cfb23fa7 | ||
![]() |
adf9ff6359 | ||
![]() |
42dcb1090b | ||
![]() |
102a7ae2d9 | ||
![]() |
95e3356a27 | ||
d0e028a78e | |||
d5a92b188b | |||
fcccee0c33 | |||
14af27e63d | |||
4cb883b6b2 | |||
6f1056ae63 | |||
ba711824b3 | |||
347c191292 | |||
9d725fc0cf | |||
ec26260132 | |||
515e8e4f7c | |||
55598269d2 | |||
a574478d90 | |||
3d014fa815 | |||
63bcee81f6 | |||
2ee94c954d | |||
a9689737b3 | |||
664c608fb7 | |||
691a1e3357 | |||
![]() |
907cab45ff | ||
c93a88413d | |||
![]() |
43853d0528 | ||
![]() |
a86b5df005 | ||
![]() |
67795c90fc | ||
d1bc233ffe | |||
1d2b89304a | |||
![]() |
582d3153a1 | ||
7022c73249 | |||
8ec59757d1 | |||
654fde2dd2 | |||
e115b7b06d | |||
5510d5825b | |||
d1f4adab24 | |||
dbdb8a3355 | |||
5ec18ae4ab | |||
2deb6c5177 | |||
![]() |
1be79dc2a0 | ||
![]() |
155cd03599 | ||
![]() |
b8bcbaaf0e | ||
![]() |
82cbf93f20 | ||
![]() |
6cbb56418f | ||
![]() |
a099478cad | ||
3923062d13 | |||
a9073ccb68 | |||
ff1040c6fe | |||
59b730b643 | |||
c7a7dc743d | |||
bf690ecd39 | |||
68d6b73fde | |||
1335f2d272 | |||
806db47fd8 | |||
3d2f143000 | |||
4ddb7a33a4 | |||
5c8ccad652 | |||
122cb1aea8 | |||
16943c0146 | |||
d35a33ef72 | |||
cdcbcca25e | |||
d7282537f0 | |||
80d6421f28 | |||
0b793514fa | |||
79e529c5ec | |||
7e80aa7ca6 | |||
735119dd0f | |||
49c295813b | |||
28d9368538 | |||
efa4ae17f0 | |||
8cd17a9529 | |||
42cb1e3a2c | |||
c971731b8f | |||
38b50fe393 | |||
15bcfc5b19 | |||
12c42738f3 | |||
8e9fdd2f31 | |||
a444400900 | |||
1e0de7c2ea | |||
6a8193e505 | |||
ece54172d0 | |||
16aef5dc4a | |||
ad4cef38e3 | |||
614d70a87d | |||
717d968fb9 | |||
5d8515ed86 | |||
b5ef644ef6 | |||
444ca1a117 | |||
39cf673132 | |||
98197343e8 | |||
be03a756e5 | |||
0ff665e4ce | |||
4886a704b3 | |||
6fc9d106ad | |||
0d089ce881 | |||
4ab36c4393 | |||
57aae2a355 | |||
c81a5f58f8 | |||
67fe31d751 | |||
7c0bea0d65 | |||
![]() |
e490dc4346 | ||
bab5fbb66c | |||
1c3b2b5dd8 | |||
![]() |
ecc15c55d4 | ||
7836242065 | |||
355d129965 | |||
1f7a791a53 | |||
2e73e1390e | |||
7ed7901c00 | |||
43af0f4d16 | |||
6c1cf395f2 | |||
a739dc67ef | |||
e5458fa4e5 | |||
a8551f93e6 | |||
f772a4b8fa | |||
eb5422828a | |||
5171d86806 | |||
![]() |
de257b6366 | ||
00674c12cc | |||
18f33f293b | |||
9aea7dc7c6 | |||
9b0f65c4a6 | |||
5f63344e84 | |||
a2baf50242 | |||
1f223b9a1f | |||
78eae89c39 | |||
a1c9d42584 | |||
4102e7ed81 | |||
d8733539b7 | |||
f3cf29ac96 | |||
4114e89020 | |||
14b1c55e11 | |||
299682bde7 | |||
d3275178fe | |||
35bd596876 | |||
2299f6b5a7 | |||
e790f1a8dc | |||
23520cbd13 | |||
2a692e05c8 | |||
13e17cbd47 | |||
b44c3ac1e9 | |||
4835a09bb1 | |||
13b10ab852 | |||
fc2bb44e94 | |||
5a1ab3e9ae | |||
825d5c9992 | |||
2dd6d0ce4b | |||
49f59092e7 | |||
ecc395e473 | |||
77fdd189e4 | |||
495a98d623 | |||
4e8693ffcd | |||
5254ffa17b | |||
39aa122a0e | |||
4a9a8611f2 | |||
4464a9425b | |||
c19cc7ef81 | |||
6fbeded285 | |||
31cb4133b9 | |||
52c356c199 | |||
396bf6ca78 | |||
6d4dc22e17 | |||
28d81f7b24 | |||
9f1f7ba2bb | |||
f53ae843b3 | |||
ce0db0d329 | |||
2ba3214a21 | |||
7a51eb5340 | |||
219ce574b5 | |||
1b06d5742e | |||
ec0ba8e3b5 | |||
026eba8523 | |||
8b849f39e8 | |||
849f5bee19 | |||
b01d2ea72a | |||
e0ff032711 | |||
7a37db6125 | |||
deaff945d0 | |||
df8cbdc696 | |||
a8a6b3627a | |||
0270941b70 | |||
7e9480b6cd | |||
dc3f404a70 | |||
3c40d2485f | |||
1a60aba46f | |||
d65f60764b | |||
baa1886791 | |||
9ef272bae3 | |||
87e9557cd1 | |||
60bed34f16 | |||
1c467d77de | |||
528f0b95c4 | |||
41bb0548b0 | |||
9b9f84b317 | |||
5a842b3412 | |||
c15bb3b55f | |||
ffcb87813b | |||
dc429d5910 | |||
31f3e9082a | |||
f274b8c102 | |||
0700521833 | |||
5db2d9c82b | |||
f13b687551 | |||
0d0df683d9 | |||
6b8555e01c | |||
8e4c74292a | |||
f43bb98646 | |||
22462fed00 | |||
525fc36a80 | |||
2ddd9813ef | |||
157b9e78a4 | |||
93f60a4da5 | |||
f5cd06ed45 | |||
1f34a34fa5 | |||
6f8d99322c | |||
041e440649 | |||
b4613e0bca | |||
08c1f5bf33 | |||
86fa8dc7f7 | |||
ece8ecb4dd | |||
![]() |
e8dd8c2829 | ||
f27e122d95 | |||
e8209c36e6 | |||
45f17e10ec | |||
a958725f81 | |||
3bc15c097c | |||
43d33b3626 | |||
98689f51c0 | |||
cbd4b8ebb0 | |||
c75a665c44 | |||
06860ba29b | |||
a76e804309 | |||
1633a65d41 | |||
![]() |
0236863c6d | ||
920b698746 | |||
8ddcc7fd51 | |||
69e331201e | |||
![]() |
59aed2a255 | ||
f990b42504 | |||
f5c682045d | |||
4066c921fb | |||
c4edc6f3f7 | |||
a1a333a1e9 | |||
fbbc0229b8 | |||
b87d81be96 | |||
fe739f8c26 | |||
ce6fd6b6a2 | |||
![]() |
42f8d52401 | ||
3aacd8a4ab | |||
1b994a37f4 | |||
8f21f867e7 | |||
70c483e7db | |||
3cb6efd3ab | |||
1f6ef73f98 | |||
c732edbaa4 | |||
ce74df6248 | |||
7e4654e4ce | |||
df14b11526 | |||
a39ca327bc | |||
de7d32bb7d | |||
2fe615ab9f | |||
8a8c61190b | |||
0c9e73845c | |||
03d8783db0 | |||
376b69cbff | |||
2efd00d4d2 | |||
d15efbdc56 | |||
850fbe8547 | |||
c13bf40ab1 | |||
0ff663b6fc | |||
8d648e0972 | |||
fcfb87def9 | |||
f66bfb5a86 | |||
bbef6fe336 | |||
8ecfa6a828 | |||
b4a6418e2b | |||
522e6c0c06 | |||
8a0840b0ee | |||
af3a55bb1b | |||
71fa460145 | |||
6d7dc2265f | |||
8bff3ec76b | |||
600fd1c6f0 | |||
29afadcb15 | |||
b9aa2acecd | |||
e2b87aabb6 | |||
1c79484d53 | |||
3a284a37fd | |||
ee44283393 | |||
2059b30ee2 | |||
4d613018ee | |||
e2d961809b | |||
140935ee7e | |||
e4e31e4f14 | |||
93b5682444 | |||
e15ffc0c54 | |||
796412dca0 | |||
8fe448b44d | |||
ccf43fe605 | |||
aa0e98d707 | |||
b44101950d | |||
c1545c9a9d | |||
717577d5fc | |||
e1050fb395 | |||
9897ef6a20 | |||
22c30219e7 | |||
d33c27d68b | |||
3a5a158362 | |||
707a4c355f | |||
eb57377f12 | |||
7d3bf5166d | |||
578b0c00ca | |||
3360db83c4 | |||
db6e267bfc | |||
ec86db82b0 | |||
5fe7605f3d | |||
f69ecce14b | |||
a296dff2c8 | |||
31137004ae | |||
bfdfa35e6e | |||
aa02a05bc7 | |||
dfe8195dfe | |||
8f050b6825 | |||
499c0229f7 | |||
4f622c9a08 | |||
e610964e89 | |||
183ba284f2 | |||
120e9924c1 | |||
33fc42bd65 | |||
5ca8875f69 | |||
3bced3b306 | |||
5267ce8e03 | |||
59cfb20fa1 | |||
8d63d7337c | |||
20c30534aa | |||
42d77fbea1 | |||
8e0a57f9bd | |||
c554f4e14f | |||
13125e0948 | |||
a5a069c272 | |||
0a19b8a5b4 | |||
a3bdbb5e5b | |||
d6cc16831a | |||
5201bc9dd4 | |||
e73d7d27dc | |||
7bb3d9787e | |||
61280e5af3 | |||
fa270a37e8 | |||
a4cbacacbf | |||
08b4faef01 | |||
a6c0874355 | |||
059f79bdd7 | |||
cfb7664d5b | |||
dd62d95687 | |||
7fcf2e7d4a | |||
813ff8913b | |||
338abd6f68 | |||
0c20fce2f2 | |||
![]() |
03fa66d274 | ||
46c35dc283 | |||
a95afed6de | |||
9ccc73ade8 | |||
![]() |
9ac4e4a1c7 | ||
cc485191e4 | |||
a6646fb0d0 | |||
8c4965f86d | |||
14278cd932 | |||
eb1cb7cb81 | |||
30cbbccc60 | |||
22998abe92 | |||
675ba2073d | |||
325307d82b | |||
4fa1fc29bd | |||
e5c5e25c68 | |||
82bda82ec4 | |||
25dea3e65e | |||
10528a5cd4 | |||
24e5c64ea2 | |||
cddfa7a449 | |||
b96ccb5126 | |||
f89b89fa7f | |||
291136eece | |||
888427cabb | |||
fc06c248ed | |||
ac8b36535e | |||
5fa58fb8a2 | |||
1151bcd53d | |||
f557198540 | |||
15bf81268c | |||
1afa97d547 | |||
7bd07c9f5a | |||
ff7a30d928 | |||
79a48c5676 | |||
7c9c8cee7b | |||
393050e8e5 | |||
497cd3d7dd | |||
c4ee94328f | |||
0bdb827bdf | |||
e0ae229acb | |||
afbe71342b | |||
06c57d3e7a | |||
8f10f9d5dc | |||
ae97a7ac10 | |||
38a8d3aff1 | |||
46a4a53824 | |||
35f9c3b9a4 | |||
20b94257dc | |||
31fc01eecb | |||
9bc7ea5496 | |||
fa116a9bbe | |||
2ad5131f77 | |||
22f68f85a4 | |||
54665233eb | |||
151fb62190 | |||
0d57ab611c | |||
6eb00fb02e | |||
0bd7e202fb | |||
cb8d8335b2 | |||
19413c4a82 | |||
48a5b1664a | |||
27cac4a102 | |||
121b2c0424 | |||
dcf67fdf7f | |||
27b23148fa | |||
6ede93bab3 | |||
18dd289e1a | |||
80b340b034 | |||
b487ef6116 | |||
b75ce05c3b | |||
b1492b76ba | |||
9796cb1661 | |||
f3edff2d7d | |||
005d04e145 | |||
a432cb2ad9 | |||
008e964940 | |||
470ed9f074 | |||
04d15f1625 | |||
52d8b3a014 | |||
a4b2734fe2 | |||
68ba154869 | |||
fd8d2ceafe | |||
815ffaa6c1 | |||
98e18c41b6 | |||
2a3797b109 | |||
ff144edd8c | |||
218579fa53 | |||
cfea716128 | |||
41825c7e0d | |||
9af72792a3 | |||
5c5a638b57 | |||
dde7a762c3 | |||
fe257cc384 | |||
a975cb9207 | |||
0abe5936b7 | |||
eaf7d36d66 | |||
d9773edaa3 | |||
3ff8ca60e9 | |||
e5ace51295 | |||
e1c2eba4de | |||
abcb23f5a3 | |||
a8fc3c88ef | |||
7ff933089a | |||
c44d6fb987 | |||
0055aa994d | |||
a952f8dab0 | |||
001d70eb2b | |||
ecec6547c7 | |||
9632a06201 | |||
b14243be77 | |||
0f2c7f3864 | |||
0541906162 | |||
363f18c8b5 | |||
1cad0a627e | |||
d6e0b55b1c | |||
a269761ec1 | |||
b67f649077 | |||
266caa1820 | |||
998e26704b | |||
fe0036c586 | |||
2b36cf3118 | |||
86580c437b | |||
03659c2cf9 | |||
a5d394fad2 | |||
0a32f6c868 | |||
3a14c011f9 | |||
04517ee936 | |||
0ae64a9945 | |||
5f95912afc | |||
7049d2dc58 | |||
547f50b5e0 | |||
6398892121 | |||
f1cb11f0fa | |||
19d822c677 | |||
e60560bda0 | |||
559a8886d6 | |||
20c25bffda | |||
656692913b | |||
3c0fd51cf4 | |||
6a850f3cc8 | |||
c361f911f9 | |||
191c562f98 | |||
4ce1829289 | |||
c880e54a95 | |||
8d918fe0f2 | |||
f716bb3b71 | |||
516e1b4031 | |||
2efe77ca51 | |||
![]() |
3ced9c1c72 | ||
6716baa1f7 | |||
4ac748c099 | |||
5f31e5031c | |||
cc3d3a453e | |||
![]() |
33ce0cb5a1 | ||
461fee5328 | |||
5940485369 | |||
16d8a683be | |||
ea84c12a2b | |||
72492eb2a2 | |||
dc4983dfdd | |||
78e3b7c28d | |||
fa23e313f1 | |||
e585257063 | |||
bd80c21635 | |||
![]() |
b7386c66f9 | ||
ada03e8673 | |||
0909b564a9 | |||
c233271b0b | |||
97f50c71b9 | |||
fc4f2571ba | |||
a260d1cd69 | |||
16b9841fc1 | |||
236794d07a | |||
![]() |
7965c735f1 | ||
![]() |
c9360b239b | ||
08ac4d3d71 | |||
36d9f7e375 | |||
![]() |
eb23b39b7f | ||
![]() |
80fffba132 | ||
a88316b4a6 | |||
![]() |
7d38f50367 | ||
975c45df9a | |||
![]() |
f17e7e0b62 | ||
b0686af32b | |||
5d2e54af37 | |||
21e5a72798 | |||
13769bcbe5 | |||
9ebb3a386e | |||
fee46615f4 | |||
e22ea3dc0e | |||
de6a866114 | |||
0892ce85b2 | |||
cdc7a93c36 | |||
1cbc3a8f2b | |||
0cd9b1243c | |||
95a47ff226 | |||
1fadda344c | |||
4341b5b2fe | |||
27ef012ac7 | |||
db1099c0ae | |||
ec324d8741 | |||
879032d2ab | |||
2c61b7f354 | |||
88841559de | |||
e2eb47191d | |||
bd18ffe1f8 | |||
c8060a78fd | |||
a53917152e | |||
bd3c842c56 | |||
d62c98a02d | |||
b369d46eb7 | |||
71298a1da9 | |||
5ee71320c6 | |||
7b688a6b04 | |||
fd025b0b7a | |||
891b91928a | |||
16cc424bc5 | |||
2bc5c18714 | |||
5e96c43854 | |||
4da3044abc | |||
e4890fa564 | |||
c0e1bd815b | |||
58cc5c8573 | |||
3a896bb373 | |||
658b254e3e | |||
73f38f8db0 | |||
9ac5413ac0 | |||
c9048441f5 | |||
91ecab5000 | |||
2b5e301ea4 | |||
5445353095 | |||
95583a398c | |||
5b043b0724 | |||
c7f74863dd | |||
3a1426afbd | |||
e7d5e16af1 | |||
facc9bc878 | |||
5159b8e1ea | |||
54ea356240 | |||
4e32398668 | |||
ed4647b5d7 | |||
9db08b77e4 | |||
498bd0772e | |||
cbcc15bdaf | |||
2afb597572 | |||
b55c78a289 | |||
23fd95458c | |||
0790d90d02 | |||
2843af9357 | |||
099dd0690c | |||
61a3d55d06 | |||
eb27595ac4 | |||
6fbb01e641 | |||
cda25f8f38 | |||
d8274efcdb | |||
79511fca20 | |||
7415855042 | |||
adcc81341d | |||
e8e003ee8b | |||
8799fbbef8 | |||
7ff47680c6 | |||
3edfe352ee | |||
0e0ebdb65c | |||
75d0287cee | |||
8f4f3cce03 | |||
13130ca293 | |||
429841e5fd | |||
9253386dcb | |||
05dd9ca06c | |||
ce35cfd208 | |||
bf0a554114 | |||
f9d0f59bed | |||
50ef801a79 | |||
75e989dab6 | |||
5b86fe6f33 | |||
613715a994 | |||
be69f23b68 | |||
5873bd82da | |||
4930eb15f7 | |||
5ca1eb96c7 | |||
829dce524d | |||
a5eee1f935 | |||
bfdb27f494 | |||
80953aed33 | |||
122a3169e2 | |||
289242fef9 | |||
36e3847093 | |||
fc59febb1b | |||
94b9141c95 | |||
fc62a3366c | |||
13d0f74b80 | |||
8ce0c9111d | |||
5fd64c014f | |||
9996688b71 | |||
70b73732fe | |||
b1b93c2ef1 | |||
ef6610dec5 | |||
1606e732c2 | |||
ac1a6565df | |||
33f9fe3c62 | |||
f24e9bb038 | |||
be4b3c64ad | |||
25c67a65d6 | |||
8da7ab11cf | |||
fd271b6b24 | |||
c7651be1e1 | |||
dbc13a37ca | |||
08b4c9a815 | |||
82e8df01ac | |||
1b289029bb | |||
94cbfb71bc | |||
65574463fa | |||
e5bb02aaa4 | |||
f7715b3337 | |||
4d8ec4439f | |||
94934199e7 | |||
03727082e9 | |||
65381e220e | |||
2b7741003e | |||
973ab436f0 | |||
fffcb6e480 | |||
94734d6454 | |||
07fc240d72 | |||
06763eace7 | |||
cfbcc94451 | |||
0c1b1e734e | |||
a50c131a0d | |||
2008bcb0bb | |||
390d27548c | |||
e0b5a20231 | |||
f1f3381873 | |||
d896df3ccd | |||
c1d8eb01c5 | |||
f20133aeec | |||
![]() |
24140444f2 | ||
![]() |
849672a991 | ||
859eee7e15 | |||
21fdd00108 | |||
bbb5fa2a16 | |||
eaa21df505 | |||
![]() |
750b370c25 | ||
bff679f8f9 | |||
9947b1fda6 | |||
8770f35305 | |||
5852f97dc2 | |||
1e12468b84 | |||
542ff416e2 | |||
a692418bc2 | |||
8956e9e5f6 | |||
9618875b96 | |||
a116912fd6 | |||
e10eaaad13 | |||
acd5f5285e | |||
4deea4f4c5 | |||
b026965f80 | |||
508124b5be | |||
3c56746863 | |||
dfbb3d82f7 | |||
365e9cb6aa | |||
a1363f74bf | |||
e3861b949a | |||
15e71781b9 | |||
4e1a6b48e7 | |||
6f5bc1fc2b | |||
249ccab111 | |||
ccf97e1013 | |||
e407fdd9c4 | |||
bdcf2083a3 | |||
d63956d0e5 | |||
870e081bcd | |||
af8bd43e35 | |||
![]() |
27e3361eb5 | ||
![]() |
4d677ec90d | ||
8c6391a9b3 | |||
86a16e7381 | |||
76c64af00c | |||
815855b91b | |||
267e4d130a | |||
3d3a75fc2a | |||
ced4dfa349 | |||
a1593fa05b | |||
e82d8c60f0 | |||
![]() |
9a7c4e2d44 | ||
672a0af081 | |||
38732c74fc | |||
de53c039ad | |||
067587c51b | |||
1a382d0579 | |||
668867558e | |||
d6f48e21fc | |||
0e41305344 | |||
364780bce5 | |||
63849aac95 | |||
e3673fd869 | |||
f4d65b0d6e | |||
6222a9bf27 | |||
9bda322468 | |||
0461727553 | |||
51ac411ce8 | |||
4816b1f11d | |||
eaee2b4119 | |||
78296366df | |||
a1b3effd55 | |||
76e56e2ba7 | |||
f2178b7f97 | |||
633fee72d5 | |||
9be28095cb | |||
9b02415ec8 | |||
d06384aa41 | |||
00e99959d3 | |||
904249b4f3 | |||
6f985574b7 | |||
0d0dcfd643 | |||
2d30c4a35b | |||
e517734708 | |||
7d8c5d5623 | |||
be3c0862ba | |||
883dfda024 | |||
96f305c63d | |||
a1c2441390 | |||
cc1fb9d177 | |||
fc0842593f | |||
d359a84430 | |||
385559843e | |||
ebbaae625f | |||
![]() |
ce76e17584 | ||
470cdeeae0 | |||
ac9fe9c2c1 | |||
163f21db8c | |||
c3570ab51d | |||
d931981d24 | |||
f9d9bf41f6 | |||
18f833be29 | |||
d9a9e64e8c | |||
163a48f203 | |||
298356a9c0 | |||
32f7495e5a | |||
c532c6c109 | |||
fc3cc2ca3a | |||
3daf1b151b | |||
f10fb04162 | |||
b1c4db1fbe | |||
a2f4d7b8a3 | |||
2bb9a465e6 | |||
b4d50d3f07 | |||
34792f5e81 | |||
21dd3524c0 | |||
eefa82a022 | |||
7f5570ceff | |||
2a8ba9c08e | |||
7a4e045d8f | |||
c6cda3c09c | |||
e6dd29ce6e | |||
933c721ccb | |||
4d5af14852 | |||
04c04b6f4d | |||
05fafb05b1 | |||
b5eeef834f | |||
2f63e47931 | |||
5473f0c49d | |||
ab122c73ba | |||
6400f54b4c | |||
b09189500d | |||
95f8f321b6 | |||
339c3e3473 | |||
cb8a197bc7 | |||
e39878b90e | |||
c59c318f33 | |||
82704ac3ed | |||
daf10d17f4 | |||
74c01afe22 | |||
7181342e62 | |||
d8c3aad800 | |||
b571516237 | |||
9b7754883b | |||
![]() |
1c0e22b982 | ||
![]() |
ed1fb242a8 | ||
![]() |
6e0540671c | ||
850a539c90 | |||
45adcc51b2 | |||
b9491476e5 | |||
8d1e3594fe | |||
18dbc8f5c1 | |||
4f846d9d2a | |||
2a2aa6abd0 | |||
45a77ba09d | |||
3fed85f9d2 | |||
ebd7e87f33 | |||
![]() |
04a3bdcc52 | ||
a834c819ee | |||
b1374a8ce9 | |||
1dced6d814 | |||
5cb143cc4c | |||
d2ee2abde7 | |||
05da8132d8 | |||
b0f3a53989 | |||
786ff13540 | |||
9605c26166 | |||
a5ffc6309e | |||
3bc3b58e4c | |||
43f601f1c4 | |||
c57f65c088 | |||
![]() |
668dd146f6 | ||
969d6b157e | |||
0f0f06645f | |||
b9bb752e0e | |||
5461c7526a | |||
578e976710 | |||
11d440f1a2 | |||
f90c93b2c3 | |||
7043f8b815 | |||
6fdbe25094 | |||
c98240139e | |||
09603401ca | |||
f14319e2d7 | |||
c0bbf1553f | |||
6fe3bbed34 | |||
61d35c06a1 | |||
9959322d6e | |||
4dc124f642 | |||
c6aa014d3a | |||
8b74d6673a | |||
![]() |
4af9578ab7 | ||
b0d6b03763 | |||
c0798cad02 | |||
c036ef1369 | |||
39ea222339 | |||
84eaaad94c | |||
c9ff8b5cd6 | |||
527c81c6f8 | |||
e6fab27d6a | |||
9d8a583482 | |||
9535dbcee0 | |||
e7470c9dbe | |||
bb7a23bdff | |||
d97c83712c | |||
4e5a328e55 | |||
c54ced9f55 | |||
be498a21ed | |||
c4d50b9ed4 | |||
da48defcfa | |||
db09b57d4e | |||
65194dc71a | |||
f55e92107a | |||
8217fba8c5 | |||
9b8e0c6d0f | |||
75be3bc4b9 | |||
36ad59b550 | |||
d8133b3eb9 | |||
ac6be6759e | |||
375a50dad9 | |||
8b5868cc15 | |||
1771c7e441 | |||
0c8b872188 | |||
41da5df29b | |||
4a38a12024 | |||
673f44fa16 | |||
1222f561a2 | |||
7b35a9818c | |||
df16c23832 | |||
0c928087a3 | |||
ba43c2a040 | |||
d8011902f4 | |||
133c2381ec | |||
b3553c0961 | |||
37182c369a | |||
194070e6f4 | |||
0a1fbfee2b | |||
31ba186983 | |||
079fc65e0a | |||
19ea4ba9c5 | |||
d1226a6d9d | |||
6ea71cb104 | |||
838e1f248d | |||
9adb81f584 | |||
9eb46d6c29 | |||
2addc868de | |||
411c5238a2 | |||
88b9505b84 | |||
fdebdfa320 | |||
a9ef6d5ad7 | |||
b048272825 | |||
b84c380aaa | |||
000fdd8a6e | |||
7b9d6ef2b6 | |||
33bdd91fb8 | |||
70fe988dc4 | |||
82f9ed9305 | |||
99ee1de094 | |||
57cfa8e2d0 | |||
331bf04fad | |||
bbfae8f184 | |||
a577291b03 | |||
ff8288ad1e | |||
fe891d581d | |||
2b7d5caae8 | |||
1a6119c8e4 | |||
6a0cb48149 | |||
a6380d063f | |||
ccaab72685 | |||
![]() |
5366eb89c6 | ||
0d65520f05 | |||
d388c1c524 | |||
76be35efb2 | |||
b64fdbfb98 | |||
6408cd00c5 | |||
7df51ca11a | |||
5ef94c9c41 | |||
1623fdb3bc | |||
719cff1414 | |||
cfdff4fb63 | |||
03b911dd87 | |||
e590199949 | |||
92d62148be | |||
c06a40006d | |||
83304e4c22 | |||
7212dbd7be | |||
bba11c68c4 | |||
447a7f510e | |||
433eaffd55 | |||
805a78e396 | |||
06839379c5 | |||
![]() |
51aa0ea58f | ||
87602d886f | |||
![]() |
98990f6ba4 | ||
b52b5e15af | |||
9ca78c9bcc | |||
eddddceb8e | |||
716638458d | |||
57d1db27c7 | |||
5b6ee80351 | |||
9c2c697011 | |||
b22abd112d | |||
60741cfe18 | |||
b83a8d6fc4 | |||
f651548c2e | |||
75370684fa | |||
b523911e86 | |||
4cc8123377 | |||
2188175891 | |||
d49b148459 | |||
185e1d5395 | |||
ae049a6c6a | |||
aa72e3abf9 | |||
28bdf669a9 | |||
d7d140ec7f | |||
9a4844cfdb | |||
d1c0d77e18 | |||
![]() |
b2d850efc0 | ||
e28d2e5184 | |||
7ded7610ce | |||
47fea20dc8 | |||
d602af73d3 | |||
aff5e18adb | |||
ff1174e52c | |||
a6fbd4c9c8 | |||
b7117b5728 | |||
f7d98d3582 | |||
635754a876 | |||
5ee1c7f695 | |||
0cb53d4740 | |||
7a809a7504 | |||
4d790516fb | |||
03f4d20bcf | |||
![]() |
99cb6dbe65 | ||
1d63db2044 | |||
1960b8a361 | |||
713ad9d971 | |||
d8abef6d7c | |||
f90a716e68 | |||
![]() |
8e08d80e52 | ||
d44f323df5 | |||
38456d3e82 | |||
31d3f034ab | |||
4612ca3ede | |||
f4b020eec3 | |||
f5237f7704 | |||
21485e94aa | |||
c4a850b7c2 | |||
e7e6b02ed9 | |||
713b4c10a6 | |||
134619fabb | |||
f28875a998 | |||
d4c547b7bd | |||
6a7e9f2b76 | |||
dc0a564c06 | |||
9ee7fc15af | |||
4d63dfca4c | |||
6121c28501 | |||
7163e159c5 | |||
ea77584d36 | |||
41b45d9159 | |||
ae98a033c8 | |||
79269e4237 | |||
36bf067ddc | |||
7f4c4011ce | |||
328da12598 | |||
2b094be949 | |||
02c77e4e5c | |||
070bf01d37 | |||
52186a39af | |||
e1d4c3bc36 | |||
040e98dfc9 | |||
d8a3f3595a | |||
a18ad3c3b6 | |||
66e70fe299 | |||
00e0034b13 | |||
cd833d8879 | |||
d07dab0d61 | |||
a54c1f1e77 | |||
7f5367eaae | |||
080732ae5c | |||
b7bcd0a87c | |||
0ddf5860f5 | |||
6c4ef6159c | |||
0cfd2d6f4b | |||
c57e4418bb | |||
980cebc459 | |||
157f836493 | |||
2845b232a7 | |||
657188c1a2 | |||
08048f7cce | |||
fed5e0ca04 | |||
e07b245fe1 | |||
cedf9f5cb7 | |||
9a9ecad65f | |||
afeddd42e6 | |||
3af52c6ec3 | |||
839fe335d2 | |||
1e58255c40 | |||
![]() |
b3ac6d1348 | ||
770605312f | |||
601a1a3fda | |||
21ef8c4d44 | |||
af835ee6f8 | |||
3ea67e08fe | |||
cec9dbc997 | |||
05274ca829 | |||
d66aa52528 | |||
b443e1b7d4 | |||
4d06c1c25b | |||
44ac789a3a | |||
cdd980cd56 | |||
d366658d2d | |||
c1e6865ee3 | |||
67bd6bbcdd | |||
05283f8c96 | |||
7dfa1b18c1 | |||
7bc4a436a0 | |||
475bd6b829 | |||
a72eed7dd5 | |||
c05ef1459c | |||
d575b72c16 | |||
69e8de434f | |||
6278b48ea1 | |||
37e08e526c | |||
9f090bac5c | |||
1c7317a6da | |||
9c65ac7311 | |||
7d85b6431f | |||
2c60221080 | |||
20100009f6 | |||
7d1bb2edfd | |||
8da80e7771 | |||
2db4a5bb9f | |||
2580fa1602 | |||
6cab53eaaa | |||
b21a3e7702 | |||
a7bd835644 | |||
![]() |
b9f422c4be | ||
18e9626e41 | |||
4adc68bdf8 | |||
9c2715ffda | |||
7acc8a5a92 | |||
0372121e17 | |||
a66162e1f6 | |||
3afa2e94ba | |||
90f01d5048 | |||
c7144d780d | |||
64e242244d | |||
4f639b893b | |||
612757b524 | |||
a8d684d87f | |||
ef1187387b | |||
e78470d954 | |||
33017e9529 | |||
fd0cb58122 | |||
133bf05b18 | |||
84e40ee846 | |||
6830307b94 | |||
ad01bab6c3 | |||
15081cf6df | |||
7951ec2641 | |||
ea75701529 | |||
a1b1f2acd4 | |||
94c514cf34 | |||
![]() |
af876b12f1 | ||
5f3990d69a | |||
fbae4c5ba3 | |||
0a7dd1ec49 | |||
a4df7f78a8 | |||
61f0941321 | |||
b0f207db15 | |||
5559edf3c7 | |||
995611640e | |||
4119e9c60b | |||
4fd005fefb | |||
6842958c9b | |||
b6592c83b5 | |||
8f289196cf | |||
7c782b8f27 | |||
536055e1ee | |||
3d7ac7feba | |||
b1037aa88f | |||
3c858246cd | |||
f346fd3212 | |||
7300e8a9fe | |||
fc1ea38c63 | |||
![]() |
bb1e794d58 | ||
![]() |
0da05720de | ||
![]() |
54eb701978 | ||
490c32c425 | |||
13abd3784a | |||
d0d16eb7d3 | |||
![]() |
8a94903c09 | ||
0edf3f5680 | |||
c13ad410a6 | |||
576ecbd694 | |||
dea1c1b9eb | |||
a2de3d86de | |||
066b0248df | |||
05b94c9c54 | |||
8d8414cd21 | |||
f418eddf8e | |||
e54a206e15 | |||
78887318e2 | |||
53106934f9 | |||
2b95f2439e | |||
4ab85a3380 | |||
5d14463e1a | |||
c5f4d5e448 | |||
1f2b1d520f | |||
ebe0d7ca5e | |||
62f6255b47 | |||
fd10ac9aca | |||
a8441fc900 | |||
be5c9d45bd | |||
be00902082 | |||
246d59ff0f | |||
47ae0affc8 | |||
69b6c89842 | |||
ed32afd962 | |||
4542b50afc | |||
0de591ac39 | |||
1625b7c37c | |||
c2bf0c1d54 | |||
e8d3996e67 | |||
b0b6fb8a93 | |||
a8e89db291 | |||
9b56b2b2b9 | |||
d4ffd1d91f | |||
c1e4b369b0 | |||
001629a362 | |||
d2aa4ada50 | |||
d428cca124 | |||
9667f89e82 | |||
af0a042da7 | |||
826f6dd9ee | |||
d712f1f83a | |||
d0ff3434cf | |||
54e1b63567 | |||
ed4f33a7bd | |||
8f5a4a4da3 | |||
7d98dfd6bb | |||
0fbcb824d0 | |||
c03b6f6f0b | |||
40f2c92460 | |||
2467f4df79 | |||
53de2c3e4f | |||
5e04548500 | |||
869472b3f0 | |||
3b47f335c6 | |||
1fce2ea743 | |||
694c0547c2 | |||
6524aaf685 | |||
5afba30c69 | |||
1c84cd8198 | |||
a0652430d0 | |||
35ecfefaec | |||
8f51f60948 | |||
3a0af215b9 | |||
614621747e | |||
68cfce1519 | |||
8dedbb1747 | |||
6c0ddf1110 | |||
b900a5e452 | |||
6489f5a8ec | |||
83d9ba341e | |||
b785feb3d7 | |||
e812512e1d | |||
5491c045af | |||
101ec2f3b8 | |||
c3accabef9 | |||
c632396733 | |||
f6f4ab3ebf | |||
a68bd94d11 | |||
f7753bf97f | |||
6f8d5eaa28 | |||
d17b371a83 | |||
c3d8fa1301 | |||
821316b034 | |||
22cf2572d9 | |||
0dfe30502a | |||
f9649e2bf1 | |||
f5b540593c | |||
de168b4115 | |||
878cd0e124 | |||
cdc399a055 | |||
45f8d1783b | |||
cf5147f69f | |||
138b0c970e | |||
0fe3e38b57 | |||
07ed64aae6 | |||
f148bd3795 | |||
6485d8b78a | |||
fdea3dd7e7 | |||
d19277c72f | |||
650f9cfe93 | |||
abdd4117b1 | |||
40e9dc638b | |||
06e3df4ce4 | |||
5cae44ef6d | |||
912ac457a6 | |||
9000ec3013 | |||
6a1056c6a8 | |||
28f7c80c46 | |||
6c9bebd827 | |||
a0fe22095e | |||
8d5ae15040 | |||
a47a975a55 | |||
6c9a882340 | |||
e5052e8bde | |||
9aeb475e99 | |||
c69a047b90 | |||
![]() |
aa09a46fd7 | ||
dfe22c2900 | |||
470f17f21c | |||
bc83fc9c04 | |||
b2cc2dda9c | |||
aba78caa11 | |||
8eeae02cb0 | |||
c7991bcefc | |||
3542c5eb72 | |||
21f811cb6d | |||
1998154ff4 | |||
0faeca806c | |||
f7374737ef | |||
13e3a1c532 | |||
8845b27dce | |||
bc3aab3fa5 | |||
93e193399d | |||
38f4b95635 | |||
29e9506a7f | |||
3059353b38 | |||
0e52b91f97 | |||
805c52b1fd | |||
b08e18ff36 | |||
2d6ad88466 | |||
23919d2275 | |||
6505dd1985 | |||
ec14bee20d | |||
2de0cc5adc | |||
b4993a9032 | |||
f4ee9643ad | |||
![]() |
ad23b1e91d | ||
a93ed3bcb7 | |||
9528fa2c46 | |||
6f598ecc1a | |||
81d29a9f61 | |||
5fed9ac9b5 | |||
1c86912068 | |||
06a2ae281b | |||
c73d6162be | |||
49a29c9c76 | |||
a02da85b55 | |||
55a2682348 | |||
9618bd9202 | |||
be7c51d076 | |||
749181ff4d | |||
e9c9e1c2c7 | |||
f0e8965090 | |||
ce82e9e64a | |||
c334020d8f | |||
838d452843 | |||
584f112548 | |||
3135791395 | |||
![]() |
7865185d98 | ||
665bf41f3c | |||
d1da2f0b9e | |||
7ff0f896e8 | |||
8dbbac43bb | |||
dcb45992bf | |||
aa2544793d | |||
b78f2675d7 | |||
915866f0d9 | |||
9f7bea6e83 | |||
e7acf17b74 | |||
8759813abd | |||
2b2d3c14fe | |||
8d53e59e32 | |||
1b01d10998 | |||
67593a41dd | |||
25e774422c | |||
bc71074d0a | |||
0247ee5f53 | |||
eb4e3bbe68 | |||
5f5ec7b0ed | |||
005bba2a81 | |||
0e7871f9c3 | |||
0e6c56760c | |||
2a96e8be39 | |||
9d3b1d361d | |||
23bb42a06e | |||
b293517d7b | |||
30bfa991f8 | |||
9776b8a05e | |||
![]() |
28f667c7c4 | ||
7e72b74713 | |||
44a386b88c | |||
65aaa13a00 | |||
![]() |
35cbf3b5dc | ||
251234ad43 | |||
d290bdd42a | |||
a331d79900 | |||
76c1a91cfa | |||
6c4a7e0ac3 | |||
c1c97c3d4a | |||
2816b22b38 | |||
1760b8c59f | |||
d7f05fd445 | |||
5cc7e2ae16 | |||
![]() |
a39a6517af | ||
a0a59972e7 | |||
3cd147b49f | |||
1f1520a045 | |||
89d49ae218 | |||
221a7002a9 | |||
bfdcb6bed6 | |||
1c62ba80b1 | |||
101f00e696 | |||
a444c7e0e2 | |||
d809a0260e | |||
fda754145a | |||
62103e7d42 | |||
746684519b | |||
f96a689b3b | |||
![]() |
8fd9516a71 | ||
0fe8239470 | |||
a6c14faa06 | |||
76b3aac802 | |||
59d7fbb052 | |||
156319d2b3 | |||
842e817bf7 | |||
c3994aa443 | |||
f2acfb460f | |||
b7d603b41c | |||
cad1ddc1e8 | |||
2fc8daff10 | |||
a2f075b996 | |||
75ded99ff9 | |||
23c52d9584 | |||
e491573060 | |||
1f232e9ae9 | |||
f915549ee7 | |||
4ffa5e5703 | |||
398d0bf57e | |||
7fc60bff14 | |||
219049bb3b | |||
20614d331d | |||
6adb254bb0 | |||
d923fb784f | |||
74fcb531de | |||
27941b027b | |||
795a874d0b | |||
c565d0764f | |||
a250be980a | |||
96825403a6 | |||
95a018aa32 | |||
c87dd76937 | |||
493c623b13 | |||
adc6659de5 | |||
40d90456ea | |||
f8ca1da138 | |||
1b7ceb0aff | |||
53ff71725a | |||
b6279b7415 | |||
e77821eeca | |||
774b61189c | |||
841b0c2bf5 | |||
42224bf623 | |||
03faffa10b | |||
f1f68b3f9a | |||
19c7ef3067 | |||
cbd6c5735d | |||
0f0436c15e | |||
ab93e568eb | |||
0733bd0d64 | |||
27e39cc533 | |||
9029690a5d | |||
b374fcc98f | |||
8cb10c124e | |||
67ddf68dd9 | |||
e9bf624a49 | |||
db600fd639 | |||
2a68b41b7d | |||
e22e766cf8 | |||
81bb2a143c | |||
dac6091207 | |||
0438944b34 | |||
e3d575b376 | |||
d34c5eec19 | |||
![]() |
79a58eef05 | ||
a1420da027 | |||
a9dd6d004b | |||
816597d6da | |||
8a506b9660 | |||
dcb443416e | |||
7ef2dd8424 | |||
675d42dfc3 | |||
737a4309e8 | |||
cdd406f4bd | |||
13876d50ce | |||
3ea4d3dc07 | |||
70a6c737ec | |||
3468434b6b | |||
90d3fe1e4d | |||
ec263547b5 | |||
![]() |
5d9d246851 | ||
![]() |
502b8e0f08 | ||
a703bbb4d7 | |||
ef19cd395f | |||
0301aff285 | |||
e322f7a3a2 | |||
002752f021 | |||
1685f5824d | |||
bc0ed16537 | |||
d409ce1593 | |||
32cd853294 | |||
f0221ff667 | |||
e0d7b6c78d | |||
e08ac50a5c | |||
851baa40a1 | |||
03a931a876 | |||
ed8184cff0 | |||
3b0d86d8b1 | |||
e9a3a1afd1 | |||
f49ffd7f1c | |||
11a6d840da | |||
![]() |
eb46b55e56 | ||
4dc534aa04 | |||
f250b1f5a0 | |||
ec574b5b09 | |||
b79a5bdd5a | |||
8f86da71fe | |||
fe513a5b61 | |||
7af84255c7 | |||
debd8aab4a | |||
f83ccbc673 | |||
549b854187 | |||
7d1c7a6485 | |||
![]() |
5fb4ff7711 | ||
![]() |
69a2af7e84 | ||
![]() |
b9ec9afce1 | ||
7de86ad61f | |||
0f6044610f | |||
d9db8f8b7c | |||
e21fdfc8e4 | |||
d6de81eed6 | |||
![]() |
54736d5058 | ||
![]() |
9ca1b721b4 | ||
8fcbbcf2e6 | |||
6547d9d3e2 | |||
![]() |
c1edbe7917 | ||
![]() |
bdf260a1b8 | ||
![]() |
04828b7d99 | ||
69419b5f00 | |||
ad3bcee081 | |||
![]() |
51e73e9956 | ||
530008df1d | |||
e17bee5b7f | |||
44b9f6a888 | |||
5e05db3419 | |||
0d4eefd231 | |||
1bb241437c | |||
92113e2da7 | |||
af91bbc221 | |||
e74535df08 | |||
04f006ea9e | |||
47f46637be | |||
7dd8c889f1 | |||
f881ff129f | |||
f12589d335 | |||
bb9a282c7e | |||
21c658b718 | |||
bf49bb354f | |||
7fbd9b67af | |||
e90d8422d0 | |||
65f674b570 | |||
dc66fa5c9c | |||
d4ead6e639 | |||
00466e756e | |||
7bfb7450a2 | |||
de47bf69da | |||
b800a05c55 | |||
693b88f152 | |||
![]() |
50dd876fbf | ||
2ed2dd7b13 | |||
![]() |
cc9bee9162 | ||
![]() |
35b1cc806f | ||
b07e8a24f5 | |||
6e272b9ba4 | |||
![]() |
47084bac9f | ||
e6d9d5dcc1 | |||
571646ebc1 | |||
3bef5d15d8 | |||
0fa7e1efbe | |||
b2c2d7b7f1 | |||
9e0b44aae9 | |||
5f059c8751 | |||
9ce83acba4 | |||
ad317a5ffd | |||
![]() |
5cf7283342 | ||
c19f37764d | |||
2e75172c45 | |||
2ec6eca518 | |||
e63d5f40ee | |||
71a333f56e | |||
68ba6378b5 | |||
c456671b53 | |||
0c9e47705d | |||
bbf1c83370 | |||
5081556bb5 | |||
5cabf1301a | |||
![]() |
77ca5ab6b0 | ||
5b79e0b80e | |||
e2003d9212 | |||
f16fcb5bd5 | |||
3651ebb1db | |||
0a747cd4e3 | |||
aeb42cf8ab | |||
ddfec08514 | |||
85de07e64c | |||
5cc7036aa3 | |||
b0350d8310 | |||
a8d139ca20 | |||
![]() |
4f9a56cbc4 | ||
d6cefef98f | |||
d216a0b505 | |||
475d7d073a | |||
ab8e7ffc64 | |||
9a7f5f1bb4 | |||
9c5b054206 | |||
0b86943641 | |||
03dda57678 | |||
da48a8ef50 | |||
d3cda49d14 | |||
337a7ed292 | |||
![]() |
1a3928f33c | ||
5ebbd8f672 | |||
d85e2beb67 | |||
d7273f087d | |||
![]() |
054950def9 | ||
![]() |
f3433fcd3b | ||
07bb7206c2 | |||
78f56d5582 | |||
![]() |
862ec82942 | ||
bf68e1a547 | |||
464752876f | |||
a7df9d6cdd | |||
98abcfdb9d | |||
a6d8f6c0f3 | |||
a8bd385a5d | |||
17da3b5d82 | |||
80255e67e3 | |||
36746474fd | |||
b5e277ed05 | |||
ee5cec4a50 | |||
bd59781c66 | |||
7aef17d361 | |||
417f0d720b | |||
ed58e3656a | |||
7b9a6f823b | |||
2f2fb4453f | |||
f9f6042bcf | |||
16fd236e14 | |||
19352bca16 | |||
7df787b2c1 | |||
1239cab11f | |||
74fa8787d8 | |||
c13aa95eda | |||
cc53c9e476 | |||
8360bfb75c | |||
f405934fe3 | |||
d41d4d0593 | |||
4a6f715421 | |||
2328599e97 | |||
b0f229dd27 | |||
020d1e23ae | |||
34b28850bf | |||
91d7f5d246 | |||
fd487b1f4e | |||
ff2c67d7e8 | |||
c2cb87f897 | |||
a1ddb63329 | |||
7cafdc57e0 | |||
ea5a2efb57 | |||
![]() |
ea3e0b3e8c | ||
![]() |
d571d615a5 | ||
![]() |
3d8c57f4da | ||
![]() |
4e4bf241c8 | ||
c43473e884 | |||
![]() |
d478cc71dd | ||
a3c1605581 | |||
57468ae37e | |||
b0d565e5b6 | |||
35861a49ee | |||
bd45ec0b06 | |||
1c58311440 | |||
056ebb56b1 | |||
1ec2f8d1f2 | |||
161c13e12b | |||
1ee3def5d3 | |||
9d0f452076 | |||
a2243f1b51 | |||
968619d036 | |||
53981c7fb6 | |||
7b4b07a7dd | |||
6b58571813 | |||
c5ed2eb95e | |||
02598e629e | |||
3a5c16f1c9 | |||
1de5cb6a31 | |||
3a65397473 | |||
5e0465e4ec | |||
4a83832120 | |||
ea78f9922e | |||
5892622d68 | |||
ee43cf5722 | |||
6feeede47f | |||
58e20b432a | |||
aaaa0a43af | |||
e953ada0bb | |||
c786f95871 | |||
7bc99fdb32 | |||
826e4ba99c | |||
d2a07c7b78 | |||
44e5f7a8cf | |||
c75aaf5329 | |||
624b231ec4 | |||
0aac74f18f | |||
c4def7992b | |||
9fca9b9953 | |||
49deda4ca2 | |||
cdbb61704d | |||
ffe599b4bd | |||
284d28acbc | |||
17193f6c76 | |||
a1eb5ec81c | |||
7c4391e6aa | |||
d14e768069 | |||
d54757e389 | |||
4e7c65035b | |||
e9b4d2ca68 | |||
10f0e003a9 | |||
e05552f7c4 | |||
29b87b5615 | |||
71a52bbe2a | |||
60d873bd22 | |||
71b1ee940b | |||
![]() |
c544df997e | ||
![]() |
95f51bb01d | ||
3d439aa29b | |||
5dde5dd44e | |||
7e93d4eea3 | |||
2903fb6929 | |||
9ddbb03861 | |||
ded7af53b4 | |||
c03e5e7830 | |||
cc0819aee1 | |||
ccaf6c7404 | |||
5d3c7d1218 | |||
f9c05f3fc0 | |||
2fc30978bc | |||
2a2d0d463a | |||
480ff89bf7 | |||
999134b7ca | |||
f1bf7bfa1b | |||
6526c3ced8 | |||
0ca5b7b69b | |||
d0d20de183 | |||
0e7599bc15 | |||
0d0036cb53 | |||
43cc2f3195 | |||
9d4300b0c6 | |||
bae1c243ce | |||
f1573731bc | |||
3e8a818419 | |||
9fe0505db0 | |||
93806ba82b | |||
505a19ed75 | |||
e455536943 | |||
a702b095a1 | |||
fe98d8c0ea | |||
6fa904765a | |||
8cd42410c5 | |||
7c0e285948 | |||
17931f3b51 | |||
f2f30db98d | |||
d38023f2f3 | |||
82774a9d24 | |||
d138cbfb47 | |||
b0c1184875 | |||
200cc531bd | |||
cfc8d73546 | |||
63922c5056 | |||
70b061b4fd | |||
bfdc42d990 | |||
d1011c9e64 | |||
3208454aa8 | |||
33ab613655 | |||
49289f31ff | |||
d8b0b8d3db | |||
ad85989a3f | |||
cff49e625f | |||
905c0269f3 | |||
![]() |
1a69384e76 | ||
80513d8574 | |||
82a8da0ec3 | |||
10c2254d41 | |||
7ec59cc7b7 | |||
b5253159b6 | |||
736f9f5a69 | |||
cecb25273e | |||
fe7ea8a24c | |||
a2a70cfc41 | |||
9aad06db88 | |||
973e1f9d9a | |||
05dcb007e1 | |||
600a627f6e | |||
04fe37f931 | |||
71e543c68b | |||
b18608f3e9 | |||
09071e2799 | |||
eae40c6c76 | |||
d52326bab3 | |||
c154f265de | |||
6f4dbb661f | |||
c4ba0d1508 | |||
75f6e6b39e | |||
6eb409bb9c | |||
12628e0794 | |||
![]() |
b8d9b5e331 | ||
34465a7fb0 | |||
868d4526a8 | |||
343a874831 | |||
9672605938 | |||
5159ba6b33 | |||
2aa938b0ae | |||
1f745e2c72 | |||
e276558a50 | |||
b75a7c2f8f | |||
e6c732e0cb | |||
7c88968c89 | |||
3dad6294da | |||
f868d51bdd | |||
009dde69cd | |||
6cc4c68dad | |||
43f748a32f | |||
b26bebd59f | |||
88362565f6 | |||
f5e4f20dc1 | |||
fa8a3c8f26 | |||
7bffdab93c | |||
53d029d6da | |||
782e6ea4ed | |||
1c3ded12f4 | |||
06cb321f33 | |||
3ebebe62d7 | |||
a9963669f9 | |||
c4374bc919 | |||
25b2b6724d | |||
f047d47e24 | |||
5e176d67e1 | |||
d66519f197 | |||
d31f79a9bc | |||
1f065df03e | |||
ec351c7a65 | |||
e0dc4130fd | |||
358f8b484f | |||
e24553ca0f | |||
8d63135da3 | |||
254748c3e7 | |||
4f509db181 | |||
33a622cbf4 | |||
e790aa1f19 | |||
27b9f1f626 | |||
ee0d91df5d | |||
9532ce4605 | |||
80280acc93 | |||
ca0dcd830c | |||
186ac84210 | |||
60ff3a7daf | |||
f8c4f5e308 | |||
029a714fc7 | |||
59e001cbf6 | |||
![]() |
2ad0ae8dad | ||
7952274cf0 | |||
60d3a801db | |||
29eb891658 | |||
9bcc83a5d6 | |||
8d116e9956 | |||
b157abebe5 | |||
b7868c0b89 | |||
6a1f0c1eaa | |||
2d39e46f84 | |||
9b0d72aa3d | |||
18fc4155fd | |||
0213d9f865 | |||
bcd3c3cb57 | |||
91604279c9 | |||
f9f0f44be8 | |||
e819f67500 | |||
bd6abacc04 | |||
74b5e5f6e1 | |||
da3cb514e5 | |||
c42e68c484 | |||
a83ad13c49 | |||
7ebb1f2ff3 | |||
5de40f4838 | |||
52f8ba66cb | |||
536142e12f | |||
0062813c73 | |||
5b88ab25bd | |||
6c036a65c9 | |||
38685b5a39 | |||
1c1a14dcdf | |||
f149d5e4b2 | |||
afe707cc3a | |||
b0bd9b4c70 | |||
39684e4554 | |||
17a409e223 | |||
b74e388617 | |||
155f917403 | |||
d8217ec6d0 | |||
039d619c76 | |||
24f8c8491d | |||
c1722a3a8c | |||
61f9bbbdea | |||
07add4b485 | |||
0f5c94bbd1 | |||
b555b8dedc | |||
899bfdc412 | |||
22677d8e1d | |||
f4982b555c | |||
2e60226f23 | |||
91b334b2f2 | |||
248873603f | |||
4c40468856 | |||
2c9e27f209 | |||
100896e080 | |||
6428da84ed | |||
af1e3b0270 | |||
9371c051b1 | |||
6f15bc3b52 | |||
1280f3c0ae | |||
a2d19c1f78 | |||
57d8bde088 | |||
a6a9a12e8f | |||
ef7229d69a | |||
cf258b02f4 | |||
d6e0d27816 | |||
3351a2655d | |||
513885a991 | |||
15cb567c8e | |||
6462ea2a8d | |||
7b347b225a | |||
ec3da20896 | |||
9ccaf9899e | |||
e252d2c990 | |||
6b24f7d87c | |||
086bfffe74 | |||
6c48a36962 | |||
a103d09df4 | |||
7d59f84708 | |||
b023c91118 | |||
bf3b0db785 | |||
0b57ecc665 | |||
a022cb8f62 | |||
bd74f5f7ab | |||
![]() |
5b8b6b4c1e | ||
![]() |
d8e2cc9f4d | ||
![]() |
a3d5b949d2 | ||
c6143da27c | |||
![]() |
fc37318fe7 | ||
![]() |
e8dd6128b5 | ||
b9faf53182 | |||
424fed3cc7 | |||
aec9e0e1b6 | |||
d5163e06c3 | |||
ac02c702e5 | |||
a24f52c51c | |||
a882debee0 | |||
7dbf7255c2 | |||
bdec24b40d | |||
10bd3fb4cb | |||
79b391f3a0 | |||
![]() |
e0030d53bc | ||
1f949121cd | |||
90aa771b30 | |||
d85026db15 | |||
a7110618ff | |||
![]() |
0c0170f77a | ||
9120191fe2 | |||
4c0cca78eb | |||
015c084bda | |||
7eacda5a2b | |||
0db055338a | |||
671d811323 | |||
![]() |
0a02c288aa | ||
![]() |
2632ba6703 | ||
31bd8e6bf3 | |||
7fd71c1694 | |||
70f56167d0 | |||
8a62fa9855 | |||
25e8550739 | |||
5ce41e6f57 | |||
![]() |
6e505a45a1 | ||
1bb7d42cf6 | |||
da91329291 | |||
b498edb189 | |||
e7af825ded | |||
![]() |
bd86edf116 | ||
![]() |
ba1f7acc3f | ||
3441862c96 | |||
96b3463e25 | |||
ff62481f65 | |||
d0b0a0a894 | |||
6eb1004d50 | |||
3b59c11182 | |||
95247b4b14 | |||
03ac301102 | |||
e1ee4dff8d | |||
c8b85d32c5 | |||
ed86f3edb6 | |||
5c74b0964b | |||
2f149ebbe9 | |||
![]() |
f1fb3eb975 | ||
![]() |
d663c9d8da | ||
![]() |
fcd6fac0a7 | ||
![]() |
02518be634 | ||
5cf6689019 | |||
b7666f27d3 | |||
![]() |
a921a4daad | ||
56e0249489 | |||
afb1a64ccb | |||
![]() |
d1972e50cb | ||
839f0cfa41 | |||
86c61ce64f | |||
58ea0d93f1 | |||
48ea173a7d | |||
99530ef4ed | |||
![]() |
a218be3080 | ||
a0437c3f73 | |||
f5ac118fb3 | |||
e000dcb849 | |||
458f50ba73 | |||
83947ea253 | |||
c286fa309e | |||
32bb848838 | |||
c32cf06e42 | |||
4ff3d5aded | |||
![]() |
7ed3ebbc6e | ||
![]() |
2e8fb95e7c | ||
0545a84729 | |||
![]() |
1ca1744c29 | ||
1b1c683f74 | |||
622e1591da | |||
a093112696 | |||
bd2b1a67a7 | |||
08b9b95147 | |||
90e8f94558 | |||
671b6d41c4 | |||
ef2bde11d2 | |||
a22471f1d1 | |||
f9590c8eaa | |||
c547d431eb | |||
e8dd96516c | |||
03b2fc1a61 | |||
fd262d3196 | |||
09b8cdb25e | |||
b2f04fce2d | |||
bae9553848 | |||
![]() |
eca52402bc | ||
b2b6099666 | |||
e990e55eba | |||
a9394aa48e | |||
38b211b581 | |||
0a34e5b300 | |||
33da997193 | |||
52cff88f72 | |||
a8e749f624 | |||
ffd26b420c | |||
7354f07ead | |||
ba8d819c9b | |||
366cb3a059 | |||
99e693d126 | |||
d554cf8dd9 | |||
6681a33a6f | |||
acd84ab105 | |||
d751491489 | |||
59aaba739d | |||
68e341e9d5 | |||
9070999c21 | |||
f48d15a861 | |||
e5f7b31dd4 | |||
04ab677761 | |||
035a3760af | |||
b4c05a9c89 | |||
567212c343 | |||
1587eb16d8 | |||
4c57f07a0f | |||
2bc791437e | |||
c3764fe1e8 | |||
188ccfb0dd | |||
e1c7549ac9 | |||
8e8fdf875d | |||
![]() |
27f29cdfba | ||
394a1373a0 | |||
bb26c1359e | |||
![]() |
26ef4fa85e | ||
f3ea8cd608 | |||
5801a016d4 | |||
2bec6f1f06 | |||
f8a4fb43fb | |||
266d243d8d | |||
d5c177bc90 | |||
a40f2c30ff | |||
7ac5c5b08c | |||
d626ced6f1 | |||
28c3d952db | |||
b67b414a85 | |||
b759857825 | |||
![]() |
88adfc7e54 | ||
28827b62f7 | |||
02f7a6b2bd | |||
ed44bb902d | |||
a6dd22d431 | |||
579447bd89 | |||
![]() |
6e4eb2be28 | ||
cd02495479 | |||
3d3a91103b | |||
![]() |
bb19d96bc5 | ||
15b0c76480 | |||
c46dcdf887 | |||
94b8166a8b | |||
d0d251b53b | |||
9c280630c9 | |||
cda81d5a4d | |||
e9629e3cfd | |||
1b5b6a5da8 | |||
765c82e92d | |||
b701af328a | |||
ed386507e1 | |||
58ac113b76 | |||
24b27ea231 | |||
![]() |
c95b522856 | ||
88a86c025c | |||
![]() |
241248223a | ||
![]() |
ee4645207f | ||
f9855800e0 | |||
7192a1bca3 | |||
0b116a84c9 | |||
6a5bd812b5 | |||
64982e213f | |||
bceb91ffd2 | |||
0710fb724b | |||
46c0da6e69 | |||
0c571db4ad | |||
95b6090afc | |||
ad7bb8e42c | |||
1e4f6b231c | |||
9e8afa8817 | |||
1e8dfe79c6 | |||
c589fdc8db | |||
44c6b6615b | |||
3033b2a044 | |||
ada28d3c65 | |||
c0544eedc6 | |||
0dbbb2eabf | |||
d924e31b42 | |||
a22cd6b6a9 | |||
9607e54985 | |||
3d9d132ccd | |||
a696053545 | |||
6777956005 | |||
db65a6e0fb | |||
0127e8522a | |||
36b55bee42 | |||
27553a2e4e | |||
d931aacef6 | |||
6cbf342cbb | |||
db4d264e70 | |||
3bab9b4868 | |||
b8574c7e56 | |||
86cc29d0cf | |||
![]() |
8ba9efb7d8 | ||
4fc45c7a2b | |||
cb560c01b6 | |||
85dc8d7477 | |||
35e3abb912 | |||
d2c3544c5c | |||
![]() |
45dbe0be69 | ||
![]() |
f974bf2cba | ||
a1322d7c95 | |||
![]() |
83f171b626 | ||
![]() |
c8b611b67f | ||
![]() |
da019efde9 | ||
817c38f715 | |||
4b74b35322 | |||
12b621059a | |||
0b7854323d | |||
e1b2ded7b2 | |||
3be7d74cba | |||
689606887f | |||
89b0465136 | |||
2be14e0ec4 | |||
2982c9ba0a | |||
9ace7e2439 | |||
42012493a8 | |||
91c1759956 | |||
cc516b82ef | |||
885caa4535 | |||
e793a47efb | |||
ccb731f2dd | |||
317a9cf835 | |||
6e39445f80 | |||
e839a25651 | |||
7e9575f7a1 | |||
b49dbb635a | |||
53674fb255 | |||
9dfc480ad1 | |||
ffb95baebe | |||
2d1cce8331 | |||
008aaaa378 | |||
![]() |
473316e246 | ||
![]() |
fd48ff1296 | ||
![]() |
fe045b2b77 | ||
d68d1da1f3 | |||
f4a60fd85c | |||
326ce2d625 | |||
07c4c86049 | |||
b62e1146e1 | |||
014e569258 | |||
ed4c47632f | |||
5bf09bbcdf | |||
f3e7c1e8c8 | |||
![]() |
f70241deba | ||
271231f58e | |||
348d2fa09e | |||
c8b4b4c0fa | |||
99be00fdb1 | |||
1935cd4027 | |||
a12ae67cf7 | |||
c102dfd43d | |||
6bfe7c7a02 | |||
9a116c7c2d | |||
ac74a843d2 | |||
1a502097c7 | |||
c9c08dc7c8 | |||
805c4ab6bc | |||
efb53f5181 | |||
b88ca3e6d1 | |||
9e382dd2a3 | |||
237ef0dcc7 | |||
7bde3f63dd | |||
19df67cd75 | |||
82fc81816e | |||
efdc93fcc6 | |||
52c0742560 | |||
d8897bed99 | |||
0af739ae8a | |||
e843d4e438 | |||
b81b127928 | |||
dd416681fb | |||
406026abba | |||
c3651adf89 | |||
7537cad576 | |||
![]() |
1162ba206d | ||
9d20f170c7 | |||
994eb1ec17 | |||
006025ead0 | |||
fd53b72871 | |||
b0a1cf2c9a | |||
8dcfd392e4 | |||
12720d8b9b | |||
35019443c0 | |||
084bf7daee | |||
82c51d0edb | |||
7ba403dc94 | |||
dc2df8307f | |||
406bfd4304 | |||
c9a8de1d70 | |||
3af51cacbf | |||
a7c660fe61 | |||
e09f0caff3 | |||
![]() |
ba3d49225c | ||
f1eb86c458 | |||
bf9c4af9bb | |||
07d5b8b023 | |||
6a0ddb4bb1 | |||
f958560a99 | |||
1504cb26b0 | |||
2518f60109 | |||
964375e36a | |||
![]() |
d374237d43 | ||
24e44143a1 | |||
628d799c85 | |||
c76d390c92 | |||
bf5151b2d2 | |||
a45c34ae8e | |||
17abae45f1 | |||
20456b52b4 | |||
b852db57ba | |||
![]() |
9ce3890950 | ||
8cb463f4ff | |||
3c1433b6f3 | |||
b2851dbe78 | |||
54c8770692 | |||
0b7841679e | |||
b02a25b7e1 | |||
055863d9c1 | |||
20d7c04305 | |||
7f3e84deb5 | |||
2ba3e6a02e | |||
90ce708ef0 | |||
b87997f59b | |||
ab430cfdfe | |||
67307e72ea | |||
47af235ba9 | |||
120a38ccbe | |||
e42f61dda8 | |||
bab0fd1308 | |||
e4077ea69d | |||
7941ea02f8 | |||
ba26adee0c | |||
f0856b1fda | |||
215e474a99 | |||
20f6700c88 | |||
d89e5fcaef | |||
37e7e1e77c | |||
a69c364746 | |||
5a664c6e98 | |||
35a29befb3 | |||
7df435325b | |||
01377fd229 | |||
868573451f | |||
f06a6e92bc | |||
![]() |
ac1dcdbf06 | ||
7a19a99675 | |||
cebff2ff30 | |||
7a7b392b54 | |||
22925d0dd3 | |||
8022fc3220 | |||
e53e17b8d6 | |||
b435bd2f31 | |||
59f5194265 | |||
b8feef59c8 | |||
5029b97d02 | |||
ecfb89280e | |||
37419bb3f6 | |||
4be4c06671 | |||
80edc0e972 | |||
aa60b9338a | |||
b037816980 | |||
4031d8bcb7 | |||
a210b8297f | |||
a816a067ed | |||
b7160f2f0a | |||
94bad2f30d | |||
cc53900baf | |||
428e65256e | |||
b8211a4d7c | |||
466171d0ef | |||
d50d410a70 | |||
bb89cc51ec | |||
f0b0524c5f | |||
117ccb56ad | |||
4b38eac4da | |||
60e3f690cb | |||
626b2bd071 | |||
acab745078 | |||
5260aaf3b1 | |||
7d56c425f8 | |||
dc99c3532a | |||
ebf3c87912 | |||
5ad16e6a11 | |||
4e26afe0ae | |||
110a35ef5a | |||
de30fda04e | |||
67704cb8aa | |||
6bcb6a0ea6 | |||
be76a37c91 | |||
5593efec01 | |||
93ac4709eb | |||
525bd62557 | |||
bc0a0cdf17 | |||
b0a1af4eb1 | |||
f36d98bb1d | |||
8622372256 | |||
48e0af52e6 | |||
4326d162ba | |||
![]() |
9075ec8269 | ||
db4298c6be | |||
cb19bb7f57 | |||
cf9b3310c0 | |||
91ca3c3c0b | |||
1ca582c651 | |||
3652870483 | |||
de9c7bae7b | |||
df032580c1 | |||
![]() |
54743dbf09 | ||
1f0b21e713 | |||
fa823f0af8 | |||
69eaa19340 | |||
b0271c6e40 | |||
53c03d4679 | |||
9dcd6ba3eb | |||
88fd2b1dd5 | |||
088b92b92c | |||
472534d16e | |||
2050baa139 | |||
c1290a1d1f | |||
649fdc7938 | |||
11e4827738 | |||
4669dfe2cc | |||
38ba022858 | |||
741888ce08 | |||
26bea849cf | |||
75be60a667 | |||
f130c5ddb6 | |||
5c427f4b17 | |||
63ee3db961 | |||
5929dd7129 | |||
85ea7dfc54 | |||
fe5933a972 | |||
37a07f812b | |||
16ed7aebf2 | |||
6c707aad6a | |||
4ba6a00afc | |||
8363e10ccc | |||
21f016f010 | |||
456595fd39 | |||
0c0895e3e6 | |||
d4d9ded09b | |||
![]() |
6ce709dceb | ||
1aebcdbb3a | |||
74855969e7 | |||
8751af6d19 | |||
27e0998a8a | |||
72461c09b4 | |||
372dcacbe4 | |||
e6d0a438ab | |||
6cf4861c3a | |||
d8aa613d94 | |||
ec3eeee46b | |||
5a169ae2f3 | |||
21821601f2 | |||
cbb854a98f | |||
33c6b269d1 | |||
12e64e5ec1 | |||
366d951b0c | |||
e9220d5cd0 | |||
![]() |
19b46b2fca | ||
200695dd89 | |||
a9c0ad53e2 | |||
a54e17e52d | |||
7dd0be9554 | |||
c476c36e40 | |||
f01bc597a8 | |||
9910803574 | |||
9ef7759bf0 | |||
e1698e3750 | |||
6a632f11c8 | |||
b198cef89f | |||
![]() |
b9f6d033be | ||
e1e772a802 | |||
c4beb518de | |||
![]() |
c8acb6dd6c | ||
f3a33a9298 | |||
4bee1e1c8c | |||
836b99ce49 | |||
6eeaecdd67 | |||
5cb2861420 | |||
68c0d77b0c | |||
8820ab41bd | |||
8b2072868d | |||
796683db8e | |||
b70a13fb66 | |||
476c0eab4a | |||
e1b70e9f9c | |||
f2c64517b5 | |||
d195deef5c | |||
![]() |
d0618570eb | ||
1c9829f351 | |||
15983243a4 | |||
4184f890fd | |||
f9cca12886 | |||
9c5a120ba2 | |||
fa09b900c2 | |||
0f1f751785 | |||
a6d7280b8e | |||
7c027f9480 | |||
be20bf2fc0 | |||
1619a5d8e9 | |||
dc8bb3f3a0 | |||
b37482bc3d | |||
e06888cf89 | |||
d55231e5a1 | |||
a52f6d7a31 | |||
a801487ef5 | |||
ca717f0489 | |||
212660f467 | |||
85cdf9a1b9 | |||
![]() |
915998111b | ||
982b498c22 | |||
dc3ff1db3f | |||
9f48852ba4 | |||
1aa7c4c28a | |||
![]() |
811569dc11 | ||
7b8ac04d86 | |||
5aa54207e1 | |||
5184328991 | |||
94a5b7a2e2 | |||
163e6b348f | |||
71712d828d | |||
c971e812d5 | |||
bf1b323b15 | |||
ec9b836d3b | |||
fbe81db29a | |||
9c5522f7c8 | |||
0133d66ada | |||
![]() |
4652f23fa3 | ||
84b94f9e7b | |||
![]() |
04e9ba7169 | ||
![]() |
2d8d30e17b | ||
![]() |
848a4f002d | ||
18e3615a68 | |||
0dfb4ac1ff | |||
e702c9a700 | |||
0030e6a2fc | |||
503d5c0c65 | |||
c65b9fb825 | |||
6eb76f6430 | |||
a540d16ee8 | |||
1131e33026 | |||
![]() |
a468368540 | ||
be2e41c397 | |||
6472a721f0 | |||
b080de79db | |||
e672cf11c3 | |||
3e9dbe7f62 | |||
c010290e75 | |||
214cc3c245 | |||
32fc22db56 | |||
![]() |
07bdbeda84 | ||
![]() |
aca222c3da | ||
![]() |
bada2dcafd | ||
![]() |
6f4612a7cc | ||
![]() |
da101eddef | ||
![]() |
8bc8713beb | ||
![]() |
58e6306b15 | ||
![]() |
5543572cd2 | ||
![]() |
1276380fd2 | ||
![]() |
3923738c8f | ||
324e24ee38 | |||
81c18c2507 | |||
29b405a327 | |||
3912a2a227 | |||
4d0d43ce8e | |||
dab1d14a51 | |||
6965bcc0c9 | |||
d43fbbb307 | |||
29f3af9527 | |||
dcb9312687 | |||
93f6369573 |
@@ -132,9 +132,7 @@ PenaltyBreakAssignment: 100
|
||||
|
||||
AllowShortFunctionsOnASingleLine: None
|
||||
|
||||
# Disable for now since it complicates initial migration tests,
|
||||
# TODO: look into enabling this in the future.
|
||||
SortIncludes: false
|
||||
SortIncludes: true
|
||||
|
||||
# Don't right align escaped newlines to the right because we have a wide default
|
||||
AlignEscapedNewlines: DontAlign
|
||||
@@ -193,6 +191,7 @@ ForEachMacros:
|
||||
- FOREACH_MAIN_ID_BEGIN
|
||||
- FOREACH_MAIN_LISTBASE_BEGIN
|
||||
- FOREACH_MAIN_LISTBASE_ID_BEGIN
|
||||
- FOREACH_MESH_BUFFER_CACHE
|
||||
- FOREACH_NODETREE_BEGIN
|
||||
- FOREACH_OBJECT_BEGIN
|
||||
- FOREACH_OBJECT_FLAG_BEGIN
|
||||
@@ -215,6 +214,7 @@ ForEachMacros:
|
||||
- GHASH_ITER_INDEX
|
||||
- GPU_SELECT_LOAD_IF_PICKSEL_LIST
|
||||
- GP_EDITABLE_STROKES_BEGIN
|
||||
- GP_EVALUATED_STROKES_BEGIN
|
||||
- GSET_FOREACH_BEGIN
|
||||
- GSET_ITER
|
||||
- GSET_ITER_INDEX
|
||||
@@ -238,7 +238,6 @@ ForEachMacros:
|
||||
- LISTBASE_FOREACH_BACKWARD
|
||||
- LISTBASE_FOREACH_MUTABLE
|
||||
- LISTBASE_FOREACH_BACKWARD_MUTABLE
|
||||
- MAN2D_ITER_AXES_BEGIN
|
||||
- MAN_ITER_AXES_BEGIN
|
||||
- NODE_INSTANCE_HASH_ITER
|
||||
- NODE_SOCKET_TYPES_BEGIN
|
||||
@@ -246,13 +245,22 @@ ForEachMacros:
|
||||
- NODE_TYPES_BEGIN
|
||||
- PIXEL_LOOPER_BEGIN
|
||||
- PIXEL_LOOPER_BEGIN_CHANNELS
|
||||
- RENDER_PASS_ITER_BEGIN
|
||||
- RNA_BEGIN
|
||||
- RNA_PROP_BEGIN
|
||||
- RNA_STRUCT_BEGIN
|
||||
- RNA_STRUCT_BEGIN_SKIP_RNA_TYPE
|
||||
- SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN
|
||||
- SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN
|
||||
- SEQP_BEGIN
|
||||
- SEQ_BEGIN
|
||||
- SURFACE_QUAD_ITER_BEGIN
|
||||
- foreach
|
||||
- ED_screen_areas_iter
|
||||
- SLOT_PROBING_BEGIN
|
||||
- SET_SLOT_PROBING_BEGIN
|
||||
- MAP_SLOT_PROBING_BEGIN
|
||||
- VECTOR_SET_SLOT_PROBING_BEGIN
|
||||
|
||||
# Use once we bump the minimum version to version 8.
|
||||
# # Without this string literals that in-line 'STRINGIFY' behave strangely (a bug?).
|
||||
|
@@ -138,11 +138,6 @@ get_blender_version()
|
||||
#-----------------------------------------------------------------------------
|
||||
# Options
|
||||
|
||||
# First platform specific non-cached vars
|
||||
if(UNIX AND NOT (APPLE OR HAIKU))
|
||||
set(WITH_X11 ON)
|
||||
endif()
|
||||
|
||||
# Blender internal features
|
||||
option(WITH_BLENDER "Build blender (disable to build only the blender player)" ON)
|
||||
mark_as_advanced(WITH_BLENDER)
|
||||
@@ -186,8 +181,7 @@ if(APPLE)
|
||||
option(WITH_XR_OPENXR "Enable VR features through the OpenXR specification" OFF)
|
||||
mark_as_advanced(WITH_XR_OPENXR)
|
||||
else()
|
||||
# Disabled until there's more than just the build system stuff. Should be enabled soon.
|
||||
option(WITH_XR_OPENXR "Enable VR features through the OpenXR specification" OFF)
|
||||
option(WITH_XR_OPENXR "Enable VR features through the OpenXR specification" ON)
|
||||
endif()
|
||||
|
||||
# Compositor
|
||||
@@ -208,7 +202,15 @@ mark_as_advanced(WITH_GHOST_DEBUG)
|
||||
option(WITH_GHOST_SDL "Enable building Blender against SDL for windowing rather than the native APIs" OFF)
|
||||
mark_as_advanced(WITH_GHOST_SDL)
|
||||
|
||||
if(WITH_X11)
|
||||
if(UNIX AND NOT (APPLE OR HAIKU))
|
||||
option(WITH_GHOST_X11 "Enable building Blender against X11 for windowing" ON)
|
||||
mark_as_advanced(WITH_GHOST_X11)
|
||||
|
||||
option(WITH_GHOST_WAYLAND "Enable building Blender against Wayland for windowing (under development)" OFF)
|
||||
mark_as_advanced(WITH_GHOST_WAYLAND)
|
||||
endif()
|
||||
|
||||
if(WITH_GHOST_X11)
|
||||
option(WITH_GHOST_XDND "Enable drag'n'drop support on X11 using XDND protocol" ON)
|
||||
endif()
|
||||
|
||||
@@ -233,7 +235,7 @@ if(UNIX AND NOT APPLE)
|
||||
mark_as_advanced(WITH_OPENMP_STATIC)
|
||||
endif()
|
||||
|
||||
if(WITH_X11)
|
||||
if(WITH_GHOST_X11)
|
||||
option(WITH_X11_XINPUT "Enable X11 Xinput (tablet support and unicode input)" ON)
|
||||
option(WITH_X11_XF86VMODE "Enable X11 video mode switching" ON)
|
||||
option(WITH_X11_XFIXES "Enable X11 XWayland cursor warping workaround" ON)
|
||||
@@ -279,7 +281,7 @@ option(WITH_ALEMBIC "Enable Alembic Support" ON)
|
||||
option(WITH_ALEMBIC_HDF5 "Enable Legacy Alembic Support (not officially supported)" OFF)
|
||||
|
||||
# Universal Scene Description support
|
||||
option(WITH_USD "Enable Universal Scene Description (USD) Support" OFF)
|
||||
option(WITH_USD "Enable Universal Scene Description (USD) Support" ON)
|
||||
|
||||
# 3D format support
|
||||
# Disable opencollada when we don't have precompiled libs
|
||||
@@ -320,6 +322,14 @@ mark_as_advanced(WITH_SYSTEM_GLOG)
|
||||
# Freestyle
|
||||
option(WITH_FREESTYLE "Enable Freestyle (advanced edges rendering)" ON)
|
||||
|
||||
# New object types
|
||||
option(WITH_NEW_OBJECT_TYPES "Enable new hair and pointcloud objects (use for development only, don't save in files)" OFF)
|
||||
mark_as_advanced(WITH_NEW_OBJECT_TYPES)
|
||||
|
||||
# New simulation data block
|
||||
option(WITH_NEW_SIMULATION_TYPE "Enable simulation data block (use for development only, don't save in files)" OFF)
|
||||
mark_as_advanced(WITH_NEW_SIMULATION_TYPE)
|
||||
|
||||
# Misc
|
||||
if(WIN32)
|
||||
option(WITH_INPUT_IME "Enable Input Method Editor (IME) for complex Asian character input" ON)
|
||||
@@ -426,6 +436,8 @@ endif()
|
||||
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)
|
||||
set(TEST_PYTHON_EXE "" CACHE PATH "Python executable to run unit tests")
|
||||
mark_as_advanced(TEST_PYTHON_EXE)
|
||||
|
||||
# Documentation
|
||||
if(UNIX AND NOT APPLE)
|
||||
@@ -466,6 +478,8 @@ endif()
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
option(WITH_LINKER_GOLD "Use ld.gold linker which is usually faster than ld.bfd" ON)
|
||||
mark_as_advanced(WITH_LINKER_GOLD)
|
||||
option(WITH_LINKER_LLD "Use ld.lld linker which is usually faster than ld.gold" OFF)
|
||||
mark_as_advanced(WITH_LINKER_LLD)
|
||||
endif()
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
@@ -529,6 +543,15 @@ if(WIN32)
|
||||
option(WITH_WINDOWS_BUNDLE_CRT "Bundle the C runtime for install free distribution." ON)
|
||||
mark_as_advanced(WITH_WINDOWS_BUNDLE_CRT)
|
||||
|
||||
option(WITH_WINDOWS_SCCACHE "Use sccache to speed up builds (Ninja builder only)" OFF)
|
||||
mark_as_advanced(WITH_WINDOWS_SCCACHE)
|
||||
|
||||
option(WITH_WINDOWS_PDB "Generate a pdb file for client side stacktraces" ON)
|
||||
mark_as_advanced(WITH_WINDOWS_PDB)
|
||||
|
||||
option(WITH_WINDOWS_STRIPPED_PDB "Use a stripped PDB file" On)
|
||||
mark_as_advanced(WITH_WINDOWS_STRIPPED_PDB)
|
||||
|
||||
endif()
|
||||
|
||||
# The following only works with the Ninja generator in CMake >= 3.0.
|
||||
@@ -605,12 +628,6 @@ if(WITH_PYTHON_MODULE AND WITH_PYTHON_INSTALL)
|
||||
message(FATAL_ERROR "WITH_PYTHON_MODULE requires WITH_PYTHON_INSTALL to be OFF")
|
||||
endif()
|
||||
|
||||
|
||||
# may as well build python module without a UI
|
||||
if(WITH_PYTHON_MODULE)
|
||||
set(WITH_HEADLESS ON)
|
||||
endif()
|
||||
|
||||
if(NOT WITH_PYTHON)
|
||||
set(WITH_CYCLES OFF)
|
||||
set(WITH_DRACO OFF)
|
||||
@@ -630,9 +647,10 @@ set_and_warn_dependency(WITH_BOOST WITH_OPENVDB OFF)
|
||||
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)
|
||||
|
||||
if(WITH_BOOST AND NOT (WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
|
||||
WITH_OPENVDB OR WITH_OPENCOLORIO OR WITH_USD))
|
||||
WITH_OPENVDB OR WITH_OPENCOLORIO OR WITH_USD OR WITH_ALEMBIC))
|
||||
message(STATUS "No dependencies need 'WITH_BOOST' forcing WITH_BOOST=OFF")
|
||||
set(WITH_BOOST OFF)
|
||||
endif()
|
||||
@@ -674,13 +692,15 @@ if(WITH_INSTALL_PORTABLE)
|
||||
endif()
|
||||
|
||||
if(WITH_GHOST_SDL OR WITH_HEADLESS)
|
||||
set(WITH_X11 OFF)
|
||||
set(WITH_GHOST_WAYLAND OFF)
|
||||
set(WITH_GHOST_X11 OFF)
|
||||
set(WITH_X11_XINPUT OFF)
|
||||
set(WITH_X11_XF86VMODE OFF)
|
||||
set(WITH_X11_XFIXES OFF)
|
||||
set(WITH_X11_ALPHA OFF)
|
||||
set(WITH_GHOST_XDND OFF)
|
||||
set(WITH_INPUT_IME OFF)
|
||||
set(WITH_XR_OPENXR OFF)
|
||||
endif()
|
||||
|
||||
if(WITH_CPU_SSE)
|
||||
@@ -1713,6 +1733,7 @@ if(FIRST_RUN)
|
||||
info_cfg_option(WITH_ALEMBIC)
|
||||
info_cfg_option(WITH_QUADRIFLOW)
|
||||
info_cfg_option(WITH_USD)
|
||||
info_cfg_option(WITH_TBB)
|
||||
|
||||
info_cfg_text("Compiler Options:")
|
||||
info_cfg_option(WITH_BUILDINFO)
|
||||
|
56
GNUmakefile
56
GNUmakefile
@@ -32,6 +32,7 @@ Convenience Targets
|
||||
* debug: Build a debug binary.
|
||||
* full: Enable all supported dependencies & options.
|
||||
* lite: Disable non essential features for a smaller binary and faster build.
|
||||
* release Complete build with all options enabled including CUDA and Optix, matching the releases on blender.org
|
||||
* headless: Build without an interface (renderfarm or server automation).
|
||||
* cycles: Build Cycles standalone only, without Blender.
|
||||
* bpy: Build as a python module which can be loaded from python directly.
|
||||
@@ -71,17 +72,6 @@ Testing Targets
|
||||
which are tagged to use the stricter formatting
|
||||
* test_deprecated:
|
||||
Checks for deprecation tags in our code which may need to be removed
|
||||
* test_style_c:
|
||||
Checks C/C++ conforms with blenders style guide:
|
||||
https://wiki.blender.org/wiki/Source/Code_Style
|
||||
* test_style_c_qtc:
|
||||
Same as test_style but outputs QtCreator tasks format
|
||||
* test_style_osl:
|
||||
Checks OpenShadingLanguage conforms with blenders style guide:
|
||||
https://wiki.blender.org/wiki/Source/Code_Style
|
||||
* test_style_osl_qtc:
|
||||
Checks OpenShadingLanguage conforms with blenders style guide:
|
||||
https://wiki.blender.org/wiki/Source/Code_Style
|
||||
|
||||
Static Source Code Checking
|
||||
Not associated with building Blender.
|
||||
@@ -218,6 +208,10 @@ ifneq "$(findstring lite, $(MAKECMDGOALS))" ""
|
||||
BUILD_DIR:=$(BUILD_DIR)_lite
|
||||
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_lite.cmake" $(CMAKE_CONFIG_ARGS)
|
||||
endif
|
||||
ifneq "$(findstring release, $(MAKECMDGOALS))" ""
|
||||
BUILD_DIR:=$(BUILD_DIR)_release
|
||||
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_release.cmake" $(CMAKE_CONFIG_ARGS)
|
||||
endif
|
||||
ifneq "$(findstring cycles, $(MAKECMDGOALS))" ""
|
||||
BUILD_DIR:=$(BUILD_DIR)_cycles
|
||||
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/cycles_standalone.cmake" $(CMAKE_CONFIG_ARGS)
|
||||
@@ -328,6 +322,7 @@ all: .FORCE
|
||||
debug: all
|
||||
full: all
|
||||
lite: all
|
||||
release: all
|
||||
cycles: all
|
||||
headless: all
|
||||
bpy: all
|
||||
@@ -402,45 +397,6 @@ test_cmake: .FORCE
|
||||
test_deprecated: .FORCE
|
||||
$(PYTHON) tests/check_deprecated.py
|
||||
|
||||
test_style_c: .FORCE
|
||||
# run our own checks on C/C++ style
|
||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/source/tools/check_source/check_style_c.py" \
|
||||
"$(BLENDER_DIR)/source/blender" \
|
||||
"$(BLENDER_DIR)/source/creator" \
|
||||
--no-length-check
|
||||
|
||||
test_style_c_qtc: .FORCE
|
||||
# run our own checks on C/C++ style
|
||||
USE_QTC_TASK=1 \
|
||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/source/tools/check_source/check_style_c.py" \
|
||||
"$(BLENDER_DIR)/source/blender" \
|
||||
"$(BLENDER_DIR)/source/creator" \
|
||||
--no-length-check \
|
||||
> \
|
||||
"$(BLENDER_DIR)/test_style.tasks"
|
||||
@echo "written: test_style.tasks"
|
||||
|
||||
|
||||
test_style_osl: .FORCE
|
||||
# run our own checks on C/C++ style
|
||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/source/tools/check_source/check_style_c.py" \
|
||||
"$(BLENDER_DIR)/intern/cycles/kernel/shaders" \
|
||||
"$(BLENDER_DIR)/release/scripts/templates_osl"
|
||||
|
||||
|
||||
test_style_osl_qtc: .FORCE
|
||||
# run our own checks on C/C++ style
|
||||
USE_QTC_TASK=1 \
|
||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/source/tools/check_source/check_style_c.py" \
|
||||
"$(BLENDER_DIR)/intern/cycles/kernel/shaders" \
|
||||
"$(BLENDER_DIR)/release/scripts/templates_osl" \
|
||||
> \
|
||||
"$(BLENDER_DIR)/test_style.tasks"
|
||||
@echo "written: test_style.tasks"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Project Files
|
||||
|
@@ -130,7 +130,6 @@ if(NOT WIN32 OR ENABLE_MINGW64)
|
||||
include(cmake/vpx.cmake)
|
||||
include(cmake/x264.cmake)
|
||||
include(cmake/xvidcore.cmake)
|
||||
include(cmake/faad.cmake)
|
||||
include(cmake/ffmpeg.cmake)
|
||||
include(cmake/fftw.cmake)
|
||||
include(cmake/sndfile.cmake)
|
||||
|
@@ -38,6 +38,7 @@ set(ALEMBIC_EXTRA_ARGS
|
||||
-DBoost_DEBUG=ON
|
||||
-DBOOST_ROOT=${LIBDIR}/boost
|
||||
-DBoost_NO_SYSTEM_PATHS=ON
|
||||
-DBoost_NO_BOOST_CMAKE=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}
|
||||
|
@@ -25,6 +25,8 @@ if(UNIX AND NOT APPLE)
|
||||
set(BZIP2_CFLAGS "-fPIC -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64")
|
||||
set(BZIP2_CONFIGURE_ENV ${BZIP2_CONFIGURE_ENV} && export LDFLAGS=${BZIP2_LDFLAGS} && export CFLAGS=${BZIP2_CFLAGS}
|
||||
&& export PREFIX=${BZIP2_PREFIX})
|
||||
else()
|
||||
set(BZIP2_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_bzip2
|
||||
|
@@ -26,10 +26,20 @@ set(EMBREE_EXTRA_ARGS
|
||||
-DEMBREE_RAY_MASK=ON
|
||||
-DEMBREE_FILTER_FUNCTION=ON
|
||||
-DEMBREE_BACKFACE_CULLING=OFF
|
||||
-DEMBREE_TASKING_SYSTEM=INTERNAL
|
||||
-DEMBREE_MAX_ISA=AVX2
|
||||
-DEMBREE_TASKING_SYSTEM=TBB
|
||||
-DEMBREE_TBB_ROOT=${LIBDIR}/tbb
|
||||
-DTBB_STATIC_LIB=${TBB_STATIC_LIBRARY}
|
||||
)
|
||||
|
||||
if(TBB_STATIC_LIBRARY)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
-DEMBREE_TBB_LIBRARY_NAME=tbb_static
|
||||
-DEMBREE_TBBMALLOC_LIBRARY_NAME=tbbmalloc_static
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(EMBREE_BUILD_DIR ${BUILD_MODE}/)
|
||||
else()
|
||||
@@ -44,6 +54,12 @@ ExternalProject_Add(external_embree
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/embree
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_embree
|
||||
external_tbb
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
|
@@ -1,40 +0,0 @@
|
||||
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# ***** END GPL LICENSE BLOCK *****
|
||||
|
||||
set(FAAD_EXTRA_ARGS)
|
||||
|
||||
if(WIN32)
|
||||
set(FAAD_EXTRA_CONFIGURE "utils\\win32\\ac2ver.exe" "faad2" "configure.ac" > libfaad\\win32_ver.h)
|
||||
else()
|
||||
set(FAAD_EXTRA_CONFIGURE echo .)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_faad
|
||||
URL ${FAAD_URI}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH MD5=${FAAD_HASH}
|
||||
PREFIX ${BUILD_DIR}/faad
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && ${FAAD_EXTRA_CONFIGURE} && ${CONFIGURE_COMMAND} --disable-shared --enable-static --prefix=${LIBDIR}/faad
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && make -j${MAKE_THREADS}
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && make install
|
||||
INSTALL_DIR ${LIBDIR}/faad
|
||||
)
|
||||
|
||||
if(MSVC)
|
||||
set_target_properties(external_faad PROPERTIES FOLDER Mingw)
|
||||
endif()
|
@@ -127,7 +127,6 @@ endif()
|
||||
add_dependencies(
|
||||
external_ffmpeg
|
||||
external_zlib
|
||||
external_faad
|
||||
external_openjpeg
|
||||
external_xvidcore
|
||||
external_x264
|
||||
|
@@ -19,8 +19,12 @@
|
||||
set(FFTW_EXTRA_ARGS)
|
||||
|
||||
if(WIN32)
|
||||
set(FFTW3_ENV set CFLAGS=-fno-stack-check -fno-stack-protector -mno-stack-arg-probe -fno-lto &&)
|
||||
set(FFTW3_PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/fftw3/src/external_fftw3 < ${PATCH_DIR}/fftw3.diff)
|
||||
set(FFTW_EXTRA_ARGS --disable-static --enable-shared)
|
||||
set(FFTW_INSTALL install-strip)
|
||||
else()
|
||||
set(FFTW_EXTRA_ARGS --enable-static)
|
||||
set(FFTW_INSTALL install)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_fftw3
|
||||
@@ -28,10 +32,10 @@ ExternalProject_Add(external_fftw3
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH MD5=${FFTW_HASH}
|
||||
PREFIX ${BUILD_DIR}/fftw3
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && ${FFTW3_ENV} cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && ${CONFIGURE_COMMAND} --enable-static --prefix=${mingw_LIBDIR}/fftw3
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && ${CONFIGURE_COMMAND} ${FFTW_EXTRA_ARGS} --prefix=${mingw_LIBDIR}/fftw3
|
||||
PATCH_COMMAND ${FFTW3_PATCH_COMMAND}
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && make -j${MAKE_THREADS}
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && make install
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && make ${FFTW_INSTALL}
|
||||
INSTALL_DIR ${LIBDIR}/fftw3
|
||||
)
|
||||
|
||||
@@ -39,7 +43,8 @@ if(MSVC)
|
||||
set_target_properties(external_fftw3 PROPERTIES FOLDER Mingw)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_fftw3 after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/lib/libfftw3.a ${HARVEST_TARGET}/fftw3/lib/libfftw.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/lib/libfftw3.dll.a ${HARVEST_TARGET}/fftw3/lib/libfftw.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/bin/libfftw3-3.dll ${HARVEST_TARGET}/fftw3/lib/libfftw3-3.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/include/fftw3.h ${HARVEST_TARGET}/fftw3/include/fftw3.h
|
||||
DEPENDEES install
|
||||
)
|
||||
|
@@ -31,10 +31,6 @@ if(BUILD_MODE STREQUAL Release)
|
||||
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/ &&
|
||||
# OpenImageIO
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/include ${HARVEST_TARGET}/OpenImageIO/include &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/lib ${HARVEST_TARGET}/OpenImageIO/lib &&
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/idiff.exe ${HARVEST_TARGET}/OpenImageIO/bin/idiff.exe &&
|
||||
# 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/ &&
|
||||
@@ -44,10 +40,6 @@ if(BUILD_MODE STREQUAL Release)
|
||||
# glew-> opengl
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/glew/lib/libglew32.lib ${HARVEST_TARGET}/opengl/lib/glew.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/glew/include/ ${HARVEST_TARGET}/opengl/include/ &&
|
||||
# sndfile
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/lib/libsndfile.dll.a ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.lib &&
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/bin/libsndfile-1.dll ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.dll &&
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/include/sndfile.h ${HARVEST_TARGET}/sndfile/include/sndfile.h &&
|
||||
# tiff
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiff.lib ${HARVEST_TARGET}/tiff/lib/libtiff.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/ &&
|
||||
@@ -59,9 +51,7 @@ endif()
|
||||
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
add_custom_target(Harvest_Debug_Results
|
||||
# OpenImageIO
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib &&
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib &&
|
||||
COMMAND
|
||||
# hdf5
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hdf5/lib ${HARVEST_TARGET}/hdf5/lib &&
|
||||
DEPENDS Package_Python
|
||||
@@ -162,7 +152,7 @@ harvest(opensubdiv/lib opensubdiv/lib "*.a")
|
||||
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
||||
harvest(openvdb/lib openvdb/lib "*.a")
|
||||
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
|
||||
harvest(xr_openxr_sdk/lib xr_openxr_sdk/src/loader "*.a")
|
||||
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
||||
harvest(osl/bin osl/bin "oslc")
|
||||
harvest(osl/include osl/include "*.h")
|
||||
harvest(osl/lib osl/lib "*.a")
|
||||
|
@@ -18,7 +18,7 @@
|
||||
|
||||
if(WIN32)
|
||||
# cmake for windows
|
||||
set(JPEG_EXTRA_ARGS -DNASM=${NASM_PATH} -DWITH_JPEG8=ON -DCMAKE_DEBUG_POSTFIX=d)
|
||||
set(JPEG_EXTRA_ARGS -DNASM=${NASM_PATH} -DWITH_JPEG8=ON -DCMAKE_DEBUG_POSTFIX=d -DWITH_CRT_DLL=On)
|
||||
|
||||
ExternalProject_Add(external_jpeg
|
||||
URL ${JPEG_URI}
|
||||
@@ -42,20 +42,17 @@ if(WIN32)
|
||||
set(JPEG_LIBRARY jpeg-staticd${LIBEXT})
|
||||
endif()
|
||||
else(WIN32)
|
||||
# autoconf for unix
|
||||
if(APPLE)
|
||||
set(JPEG_EXTRA_ARGS --host x86_64-apple-darwin --with-jpeg8)
|
||||
else()
|
||||
set(JPEG_EXTRA_ARGS --with-jpeg8)
|
||||
endif()
|
||||
# cmake for unix
|
||||
set(JPEG_EXTRA_ARGS
|
||||
-DWITH_JPEG8=ON
|
||||
-DENABLE_STATIC=ON
|
||||
-DENABLE_SHARED=OFF
|
||||
-DCMAKE_INSTALL_LIBDIR=${LIBDIR}/jpg/lib)
|
||||
|
||||
ExternalProject_Add(external_jpeg
|
||||
URL ${JPEG_URI}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH MD5=${JPEG_HASH}
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && autoreconf -fiv && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/jpg NASM=yasm ${JPEG_EXTRA_ARGS}
|
||||
BUILD_IN_SOURCE 1
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} && make install
|
||||
PREFIX ${BUILD_DIR}/jpg
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/jpg
|
||||
|
@@ -52,7 +52,6 @@ if(BUILD_MODE STREQUAL Release)
|
||||
PREFIX ${BUILD_DIR}/openal
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openal ${DEFAULT_CMAKE_FLAGS} ${OPENAL_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/openal
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openal/src/external_openal < ${PATCH_DIR}/openal.diff
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
|
@@ -21,7 +21,7 @@ set(OIDN_EXTRA_ARGS
|
||||
-DWITH_EXAMPLE=OFF
|
||||
-DWITH_TEST=OFF
|
||||
-DTBB_ROOT=${LIBDIR}/tbb
|
||||
-DTBB_STATIC_LIB=ON
|
||||
-DTBB_STATIC_LIB=${TBB_STATIC_LIBRARY}
|
||||
-DOIDN_STATIC_LIB=ON
|
||||
)
|
||||
|
||||
|
@@ -32,7 +32,7 @@ endif()
|
||||
|
||||
if(WIN32)
|
||||
set(PNG_LIBNAME libpng16_static${LIBEXT})
|
||||
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse2 -DOPJ_STATIC=1)
|
||||
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse2)
|
||||
set(OPENJPEG_POSTFIX _msvc)
|
||||
else()
|
||||
set(PNG_LIBNAME libpng${LIBEXT})
|
||||
@@ -49,23 +49,17 @@ endif()
|
||||
|
||||
if(MSVC)
|
||||
set(OPENJPEG_FLAGS
|
||||
-DOPENJPEG_HOME=${LIBDIR}/openjpeg_msvc
|
||||
-DOPENJPEG_INCLUDE_DIR=${LIBDIR}/openjpeg_msvc/include/openjpeg-${OPENJPEG_SHORT_VERSION}
|
||||
-DOPENJPEG_LIBRARY=${LIBDIR}/openjpeg_msvc/lib/openjp2${LIBEXT}
|
||||
-DOPENJPEG_LIBRARY_DEBUG=${LIBDIR}/openjpeg_msvc/lib/openjp2${LIBEXT}
|
||||
-DOpenJpeg_ROOT=${LIBDIR}/openjpeg_msvc
|
||||
)
|
||||
else()
|
||||
set(OPENJPEG_FLAGS
|
||||
-DOPENJPEG_INCLUDE_DIR=${LIBDIR}/openjpeg/include/openjpeg-${OPENJPEG_SHORT_VERSION}
|
||||
-DOPENJPEG_LIBRARY=${LIBDIR}/openjpeg/lib/${OPENJPEG_LIBRARY}
|
||||
-DOpenJpeg_ROOT=${LIBDIR}/openjpeg
|
||||
)
|
||||
endif()
|
||||
|
||||
set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-DBUILDSTATIC=ON
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
${OPENIMAGEIO_LINKSTATIC}
|
||||
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/openexr/
|
||||
-DOPENEXR_ILMIMF_LIBRARIES=${LIBDIR}/openexr/lib/IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||
-DBoost_USE_MULTITHREADED=ON
|
||||
-DBoost_USE_STATIC_LIBS=ON
|
||||
@@ -73,7 +67,16 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-DBOOST_ROOT=${LIBDIR}/boost
|
||||
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
|
||||
-DBoost_NO_SYSTEM_PATHS=ON
|
||||
-DBoost_NO_BOOST_CMAKE=ON
|
||||
-OIIO_BUILD_CPP11=ON
|
||||
-DUSE_LIBSQUISH=OFF
|
||||
-DUSE_QT5=OFF
|
||||
-DUSE_NUKE=OFF
|
||||
-DUSE_OPENVDB=OFF
|
||||
-DUSE_BZIP2=OFF
|
||||
-DUSE_FREETYPE=OFF
|
||||
-DUSE_DCMTK=OFF
|
||||
-DUSE_LIBHEIF=OFF
|
||||
-DUSE_OPENGL=OFF
|
||||
-DUSE_TBB=OFF
|
||||
-DUSE_FIELD3D=OFF
|
||||
@@ -81,15 +84,12 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-DUSE_PYTHON=OFF
|
||||
-DUSE_GIF=OFF
|
||||
-DUSE_OPENCV=OFF
|
||||
-DUSE_OPENSSL=OFF
|
||||
-DUSE_OPENJPEG=ON
|
||||
-DUSE_FFMPEG=OFF
|
||||
-DUSE_PTEX=OFF
|
||||
-DUSE_FREETYPE=OFF
|
||||
-DUSE_LIBRAW=OFF
|
||||
-DUSE_PYTHON=OFF
|
||||
-DUSE_PYTHON3=OFF
|
||||
-DUSE_OCIO=OFF
|
||||
-DUSE_OPENCOLORIO=OFF
|
||||
-DUSE_WEBP=${WITH_WEBP}
|
||||
-DOIIO_BUILD_TOOLS=${OIIO_TOOLS}
|
||||
-DOIIO_BUILD_TESTS=OFF
|
||||
@@ -103,17 +103,13 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-DJPEG_LIBRARY=${LIBDIR}/jpg/lib/${JPEG_LIBRARY}
|
||||
-DJPEG_INCLUDE_DIR=${LIBDIR}/jpg/include
|
||||
${OPENJPEG_FLAGS}
|
||||
-DOCIO_PATH=${LIBDIR}/opencolorio/
|
||||
-DOpenEXR_USE_STATIC_LIBS=On
|
||||
-DOPENEXR_HOME=${LIBDIR}/openexr/
|
||||
-DILMBASE_INCLUDE_PATH=${LIBDIR}/openexr/
|
||||
-DILMBASE_PACKAGE_PREFIX=${LIBDIR}/openexr/
|
||||
-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_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DSTOP_ON_WARNING=OFF
|
||||
${WEBP_FLAGS}
|
||||
@@ -125,27 +121,38 @@ ExternalProject_Add(external_openimageio
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH MD5=${OPENIMAGEIO_HASH}
|
||||
PREFIX ${BUILD_DIR}/openimageio
|
||||
PATCH_COMMAND
|
||||
${PATCH_CMD} -p 0 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/src/include < ${PATCH_DIR}/openimageio_gdi.diff &&
|
||||
${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/openimageio_static_libs.diff
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/openimageio.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimageio ${DEFAULT_CMAKE_FLAGS} ${OPENIMAGEIO_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/openimageio
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_openimageio
|
||||
external_png external_zlib
|
||||
external_png
|
||||
external_zlib
|
||||
external_openexr
|
||||
external_jpeg
|
||||
external_boost
|
||||
external_tiff
|
||||
external_opencolorio
|
||||
external_openjpeg${OPENJPEG_POSTFIX}
|
||||
${WEBP_DEP}
|
||||
)
|
||||
if(NOT WIN32)
|
||||
add_dependencies(
|
||||
external_openimageio
|
||||
external_opencolorio_extra
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_openimageio after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/include ${HARVEST_TARGET}/OpenImageIO/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/lib ${HARVEST_TARGET}/OpenImageIO/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/idiff.exe ${HARVEST_TARGET}/OpenImageIO/bin/idiff.exe
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
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
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
@@ -36,7 +36,7 @@ if(WIN32)
|
||||
set(OPENSUBDIV_EXTRA_ARGS
|
||||
${OPENSUBDIV_EXTRA_ARGS}
|
||||
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
||||
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb_static.lib
|
||||
-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
|
||||
@@ -67,7 +67,7 @@ endif()
|
||||
ExternalProject_Add(external_opensubdiv
|
||||
URL ${OPENSUBDIV_URI}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH MD5=${OPENSUBDIV_Hash}
|
||||
URL_HASH MD5=${OPENSUBDIV_HASH}
|
||||
PREFIX ${BUILD_DIR}/opensubdiv
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opensubdiv -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${OPENSUBDIV_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/opensubdiv
|
||||
|
@@ -27,6 +27,7 @@ set(OPENVDB_EXTRA_ARGS
|
||||
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||
-DBOOST_ROOT=${LIBDIR}/boost
|
||||
-DBoost_NO_SYSTEM_PATHS=ON
|
||||
-DBoost_NO_BOOST_CMAKE=ON
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
-DBlosc_INCLUDE_DIR=${LIBDIR}/blosc/include/
|
||||
|
@@ -44,6 +44,7 @@ set(OSL_EXTRA_ARGS
|
||||
-DBOOST_ROOT=${LIBDIR}/boost
|
||||
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
|
||||
-DBoost_NO_SYSTEM_PATHS=ON
|
||||
-DBoost_NO_BOOST_CMAKE=ON
|
||||
-DLLVM_DIRECTORY=${LIBDIR}/llvm
|
||||
-DLLVM_INCLUDES=${LIBDIR}/llvm/include
|
||||
-DLLVM_LIB_DIR=${LIBDIR}/llvm/lib
|
||||
|
@@ -25,7 +25,7 @@ set(PNG_EXTRA_ARGS
|
||||
ExternalProject_Add(external_png
|
||||
URL ${PNG_URI}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH MD5=${PNG_HASH}
|
||||
URL_HASH SHA256=${PNG_HASH}
|
||||
PREFIX ${BUILD_DIR}/png
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/png ${DEFAULT_CMAKE_FLAGS} ${PNG_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/png
|
||||
|
@@ -24,7 +24,7 @@ if(WIN32)
|
||||
set(PTHREAD_CPPFLAGS "/I. /DHAVE_CONFIG_H ")
|
||||
endif()
|
||||
|
||||
set(PTHREADS_BUILD cd ${BUILD_DIR}/pthreads/src/external_pthreads/ && cd && nmake VC-static /e CPPFLAGS=${PTHREAD_CPPFLAGS} /e XLIBS=/NODEFAULTLIB:msvcr)
|
||||
set(PTHREADS_BUILD cd ${BUILD_DIR}/pthreads/src/external_pthreads/ && cd && nmake VC-static /e CPPFLAGS=${PTHREAD_CPPFLAGS})
|
||||
|
||||
ExternalProject_Add(external_pthreads
|
||||
URL ${PTHREADS_URI}
|
||||
@@ -32,6 +32,7 @@ if(WIN32)
|
||||
URL_HASH MD5=${PTHREADS_HASH}
|
||||
PREFIX ${BUILD_DIR}/pthreads
|
||||
CONFIGURE_COMMAND echo .
|
||||
PATCH_COMMAND COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/pthreads/src/external_pthreads < ${PATCH_DIR}/pthreads.diff
|
||||
BUILD_COMMAND ${PTHREADS_BUILD}
|
||||
INSTALL_COMMAND COMMAND
|
||||
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/libpthreadVC3${LIBEXT} ${LIBDIR}/pthreads/lib/pthreadVC3${LIBEXT} &&
|
||||
|
@@ -60,3 +60,14 @@ if(UNIX)
|
||||
external_flac
|
||||
)
|
||||
endif()
|
||||
|
||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||
ExternalProject_Add_Step(external_sndfile after_install
|
||||
COMMAND lib /def:${BUILD_DIR}/sndfile/src/external_sndfile/src/libsndfile-1.def /machine:x64 /out:${BUILD_DIR}/sndfile/src/external_sndfile/src/libsndfile-1.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/bin/libsndfile-1.dll ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/sndfile/src/external_sndfile/src/libsndfile-1.lib ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/include/sndfile.h ${HARVEST_TARGET}/sndfile/include/sndfile.h
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
@@ -20,8 +20,10 @@ if(WIN32)
|
||||
-DTBB_BUILD_SHARED=On
|
||||
-DTBB_BUILD_TBBMALLOC=On
|
||||
-DTBB_BUILD_TBBMALLOC_PROXY=On
|
||||
-DTBB_BUILD_STATIC=On
|
||||
-DTBB_BUILD_STATIC=Off
|
||||
)
|
||||
set(TBB_LIBRARY tbb)
|
||||
set(TBB_STATIC_LIBRARY Off)
|
||||
else()
|
||||
set(TBB_EXTRA_ARGS
|
||||
-DTBB_BUILD_SHARED=Off
|
||||
@@ -29,6 +31,8 @@ else()
|
||||
-DTBB_BUILD_TBBMALLOC_PROXY=Off
|
||||
-DTBB_BUILD_STATIC=On
|
||||
)
|
||||
set(TBB_LIBRARY tbb_static)
|
||||
set(TBB_STATIC_LIBRARY On)
|
||||
endif()
|
||||
|
||||
# CMake script for TBB from https://github.com/wjakob/tbb/blob/master/CMakeLists.txt
|
||||
@@ -46,7 +50,8 @@ ExternalProject_Add(external_tbb
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_tbb after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb.lib ${HARVEST_TARGET}/tbb/lib/tbb.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb.dll ${HARVEST_TARGET}/tbb/lib/tbb.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc.lib ${HARVEST_TARGET}/tbb/lib/tbbmalloc.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc.dll ${HARVEST_TARGET}/tbb/lib/tbbmalloc.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc_proxy.lib ${HARVEST_TARGET}/tbb/lib/tbbmalloc_proxy.lib
|
||||
@@ -57,7 +62,12 @@ if(WIN32)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_tbb after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb_debug.lib
|
||||
# findtbb.cmake in some deps *NEEDS* to find tbb.lib even if they are not going to use it
|
||||
# to make that test pass, we place a copy with the right name in the lib folder.
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_debug.lib ${LIBDIR}/tbb/lib/tbb.lib
|
||||
# Normal collection of build artifacts
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_debug.lib ${HARVEST_TARGET}/tbb/lib/debug/tbb_debug.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_debug.dll ${HARVEST_TARGET}/tbb/lib/debug/tbb_debug.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc_proxy.lib ${HARVEST_TARGET}/tbb/lib/tbbmalloc_proxy_debug.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc.dll ${HARVEST_TARGET}/tbb/lib/debug/tbbmalloc.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc_proxy.dll ${HARVEST_TARGET}/tbb/lib/debug/tbbmalloc_proxy.dll
|
||||
|
@@ -22,9 +22,11 @@ set(USD_EXTRA_ARGS
|
||||
-DBoost_USE_STATIC_LIBS=ON
|
||||
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||
-DBOOST_ROOT=${LIBDIR}/boost
|
||||
-DBoost_NO_SYSTEM_PATHS=ON
|
||||
-DBoost_NO_BOOST_CMAKE=ON
|
||||
-DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include
|
||||
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
|
||||
-DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
|
||||
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
|
||||
-DTbb_TBB_LIBRARY=${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.
|
||||
|
@@ -20,17 +20,17 @@ set(ZLIB_VERSION 1.2.11)
|
||||
set(ZLIB_URI https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz)
|
||||
set(ZLIB_HASH 1c9f62f0778697a09d36121ead88e08e)
|
||||
|
||||
set(OPENAL_VERSION 1.18.2)
|
||||
set(OPENAL_VERSION 1.20.1)
|
||||
set(OPENAL_URI http://openal-soft.org/openal-releases/openal-soft-${OPENAL_VERSION}.tar.bz2)
|
||||
set(OPENAL_HASH d4eeb0889812e2fdeaa1843523d76190)
|
||||
set(OPENAL_HASH 556695068ce8375b89986083d810fd35)
|
||||
|
||||
set(PNG_VERSION 1.6.35)
|
||||
set(PNG_VERSION 1.6.37)
|
||||
set(PNG_URI http://prdownloads.sourceforge.net/libpng/libpng-${PNG_VERSION}.tar.xz)
|
||||
set(PNG_HASH 678b7e696a62a193ed3503b04bf449d6)
|
||||
set(PNG_HASH 505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca)
|
||||
|
||||
set(JPEG_VERSION 1.5.3)
|
||||
set(JPEG_VERSION 2.0.4)
|
||||
set(JPEG_URI https://github.com/libjpeg-turbo/libjpeg-turbo/archive/${JPEG_VERSION}.tar.gz)
|
||||
set(JPEG_HASH 5b7549d440b86c98a517355c102d155e)
|
||||
set(JPEG_HASH 44c43e4a9fb352f47090804529317c88)
|
||||
|
||||
set(BOOST_VERSION 1.70.0)
|
||||
set(BOOST_VERSION_NODOTS 1_70_0)
|
||||
@@ -66,9 +66,9 @@ else()
|
||||
set(OPENEXR_VERSION_POSTFIX)
|
||||
endif()
|
||||
|
||||
set(FREETYPE_VERSION 2.10.1)
|
||||
set(FREETYPE_VERSION 2.10.2)
|
||||
set(FREETYPE_URI http://prdownloads.sourceforge.net/freetype/freetype-${FREETYPE_VERSION}.tar.gz)
|
||||
set(FREETYPE_HASH c50a3c9e5e62bdc938a6e1598a782947)
|
||||
set(FREETYPE_HASH b1cb620e4c875cd4d1bfa04945400945)
|
||||
|
||||
set(GLEW_VERSION 1.13.0)
|
||||
set(GLEW_URI http://prdownloads.sourceforge.net/glew/glew/${GLEW_VERSION}/glew-${GLEW_VERSION}.tgz)
|
||||
@@ -101,21 +101,21 @@ set(CUEW_GIT_UID 1744972026de9cf27c8a7dc39cf39cd83d5f922f)
|
||||
set(CUEW_URI https://github.com/CudaWrangler/cuew/archive/${CUEW_GIT_UID}.zip)
|
||||
set(CUEW_HASH 86760d62978ebfd96cd93f5aa1abaf4a)
|
||||
|
||||
set(OPENSUBDIV_VERSION v3_4_0_RC2)
|
||||
set(OPENSUBDIV_Hash f6a10ba9efaa82fde86fe65aad346319)
|
||||
set(OPENSUBDIV_VERSION v3_4_3)
|
||||
set(OPENSUBDIV_URI https://github.com/PixarAnimationStudios/OpenSubdiv/archive/${OPENSUBDIV_VERSION}.tar.gz)
|
||||
set(OPENSUBDIV_HASH 7bbfa275d021fb829e521df749160edb)
|
||||
|
||||
set(SDL_VERSION 2.0.8)
|
||||
set(SDL_VERSION 2.0.12)
|
||||
set(SDL_URI https://www.libsdl.org/release/SDL2-${SDL_VERSION}.tar.gz)
|
||||
set(SDL_HASH 3800d705cef742c6a634f202c37f263f)
|
||||
set(SDL_HASH 783b6f2df8ff02b19bb5ce492b99c8ff)
|
||||
|
||||
set(OPENCOLLADA_VERSION v1.6.68)
|
||||
set(OPENCOLLADA_URI https://github.com/KhronosGroup/OpenCOLLADA/archive/${OPENCOLLADA_VERSION}.tar.gz)
|
||||
set(OPENCOLLADA_HASH ee7dae874019fea7be11613d07567493)
|
||||
|
||||
set(OPENCOLORIO_VERSION 1.1.0)
|
||||
set(OPENCOLORIO_URI https://github.com/imageworks/OpenColorIO/archive/v${OPENCOLORIO_VERSION}.tar.gz)
|
||||
set(OPENCOLORIO_HASH 802d8f5b1d1fe316ec5f76511aa611b8)
|
||||
set(OPENCOLORIO_VERSION 1.1.1)
|
||||
set(OPENCOLORIO_URI https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/v${OPENCOLORIO_VERSION}.tar.gz)
|
||||
set(OPENCOLORIO_HASH 23d8b9ac81599305539a5a8674b94a3d)
|
||||
|
||||
set(LLVM_VERSION 9.0.1)
|
||||
set(LLVM_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz)
|
||||
@@ -127,17 +127,17 @@ set(CLANG_HASH 13468e4a44940efef1b75e8641752f90)
|
||||
set(OPENMP_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/openmp-${LLVM_VERSION}.src.tar.xz)
|
||||
set(OPENMP_HASH 6eade16057edbdecb3c4eef9daa2bfcf)
|
||||
|
||||
set(OPENIMAGEIO_VERSION 1.8.13)
|
||||
set(OPENIMAGEIO_VERSION 2.1.15.0)
|
||||
set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/Release-${OPENIMAGEIO_VERSION}.tar.gz)
|
||||
set(OPENIMAGEIO_HASH f5526c3c9878029ee900d84856683f93)
|
||||
set(OPENIMAGEIO_HASH f03aa5e3ac4795af04771ee4146e9832)
|
||||
|
||||
set(TIFF_VERSION 4.0.9)
|
||||
set(TIFF_VERSION 4.1.0)
|
||||
set(TIFF_URI http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz)
|
||||
set(TIFF_HASH 54bad211279cc93eb4fca31ba9bfdc79)
|
||||
set(TIFF_HASH 2165e7aba557463acc0664e71a3ed424)
|
||||
|
||||
set(OSL_VERSION 1.10.9)
|
||||
set(OSL_VERSION 1.10.10)
|
||||
set(OSL_URI https://github.com/imageworks/OpenShadingLanguage/archive/Release-${OSL_VERSION}.tar.gz)
|
||||
set(OSL_HASH a94f1e8506f7e8f5e993653de5c5fa00)
|
||||
set(OSL_HASH 00dec08a93c8084e53848b9ad047889f)
|
||||
|
||||
set(PYTHON_VERSION 3.7.4)
|
||||
set(PYTHON_SHORT_VERSION 3.7)
|
||||
@@ -146,8 +146,8 @@ set(PYTHON_URI https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTH
|
||||
set(PYTHON_HASH d33e4aae66097051c2eca45ee3604803)
|
||||
|
||||
set(TBB_VERSION 2019_U9)
|
||||
set(TBB_URI https://github.com/01org/tbb/archive/${TBB_VERSION}.tar.gz)
|
||||
set(TBB_HASH 584edbec127c508f2cd5b6e79ad200fc)
|
||||
set(TBB_URI https://github.com/oneapi-src/oneTBB/archive/${TBB_VERSION}.tar.gz)
|
||||
set(TBB_HASH 26263622e9187212ec240dcf01b66207)
|
||||
|
||||
set(OPENVDB_VERSION 7.0.0)
|
||||
set(OPENVDB_URI https://github.com/dreamworksanimation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
|
||||
@@ -168,9 +168,9 @@ set(LAME_VERSION 3.100)
|
||||
set(LAME_URI http://downloads.sourceforge.net/project/lame/lame/3.100/lame-${LAME_VERSION}.tar.gz)
|
||||
set(LAME_HASH 83e260acbe4389b54fe08e0bdbf7cddb)
|
||||
|
||||
set(OGG_VERSION 1.3.3)
|
||||
set(OGG_VERSION 1.3.4)
|
||||
set(OGG_URI http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz)
|
||||
set(OGG_HASH c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985)
|
||||
set(OGG_HASH fe5670640bd49e828d64d2879c31cb4dde9758681bb664f9bdbf159a01b0c76e)
|
||||
|
||||
set(VORBIS_VERSION 1.3.6)
|
||||
set(VORBIS_URI http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz)
|
||||
@@ -180,47 +180,41 @@ set(THEORA_VERSION 1.1.1)
|
||||
set(THEORA_URI http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.bz2)
|
||||
set(THEORA_HASH b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc)
|
||||
|
||||
set(FLAC_VERSION 1.3.2)
|
||||
set(FLAC_VERSION 1.3.3)
|
||||
set(FLAC_URI http://downloads.xiph.org/releases/flac/flac-${FLAC_VERSION}.tar.xz)
|
||||
set(FLAC_HASH 91cfc3ed61dc40f47f050a109b08610667d73477af6ef36dcad31c31a4a8d53f)
|
||||
set(FLAC_HASH 213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748)
|
||||
|
||||
set(VPX_VERSION 1.7.0)
|
||||
set(VPX_VERSION 1.8.2)
|
||||
set(VPX_URI https://github.com/webmproject/libvpx/archive/v${VPX_VERSION}/libvpx-v${VPX_VERSION}.tar.gz)
|
||||
set(VPX_HASH 1fec931eb5c94279ad219a5b6e0202358e94a93a90cfb1603578c326abfc1238)
|
||||
set(VPX_HASH 8735d9fcd1a781ae6917f28f239a8aa358ce4864ba113ea18af4bb2dc8b474ac)
|
||||
|
||||
set(OPUS_VERSION 1.3.1)
|
||||
set(OPUS_URI https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz)
|
||||
set(OPUS_HASH 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d)
|
||||
|
||||
set(X264_URI http://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20180811-2245-stable.tar.bz2)
|
||||
set(X264_HASH ae8a868a0e236a348b35d79f3ee80294b169d1195408b689f9851383661ed7aa)
|
||||
set(X264_URI https://code.videolan.org/videolan/x264/-/archive/master/x264-33f9e1474613f59392be5ab6a7e7abf60fa63622.tar.gz)
|
||||
set(X264_HASH 300dfb5b6c35722516f168868ce9419252a9e9eb77a05d82c9cede925b691bd6)
|
||||
|
||||
set(XVIDCORE_VERSION 1.3.5)
|
||||
set(XVIDCORE_URI http://downloads.xvid.org/downloads/xvidcore-${XVIDCORE_VERSION}.tar.gz)
|
||||
set(XVIDCORE_HASH 165ba6a2a447a8375f7b06db5a3c91810181f2898166e7c8137401d7fc894cf0)
|
||||
set(XVIDCORE_VERSION 1.3.7)
|
||||
set(XVIDCORE_URI https://downloads.xvid.com/downloads/xvidcore-${XVIDCORE_VERSION}.tar.gz)
|
||||
set(XVIDCORE_HASH abbdcbd39555691dd1c9b4d08f0a031376a3b211652c0d8b3b8aa9be1303ce2d)
|
||||
|
||||
# This has to be in sync with the version in blenders /extern folder.
|
||||
set(OPENJPEG_VERSION 2.3.0)
|
||||
set(OPENJPEG_VERSION 2.3.1)
|
||||
set(OPENJPEG_SHORT_VERSION 2.3)
|
||||
# Use slightly newer commit after release which includes a cmake fix
|
||||
set(OPENJPEG_URI https://github.com/uclouvain/openjpeg/archive/66297f07a43.zip)
|
||||
set(OPENJPEG_HASH 8242b18d908c7c42174e4231a741cfa7ce7c26b6ed5c9644feb9df7b3054310b)
|
||||
set(OPENJPEG_URI https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz)
|
||||
set(OPENJPEG_HASH 63f5a4713ecafc86de51bfad89cc07bb788e9bba24ebbf0c4ca637621aadb6a9)
|
||||
|
||||
set(FAAD_VERSION 2-2.8.8)
|
||||
set(FAAD_URI http://downloads.sourceforge.net/faac/faad${FAAD_VERSION}.tar.gz)
|
||||
set(FAAD_HASH 28f6116efdbe9378269f8a6221767d1f)
|
||||
|
||||
set(FFMPEG_VERSION 4.0.2)
|
||||
set(FFMPEG_VERSION 4.2.3)
|
||||
set(FFMPEG_URI http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2)
|
||||
set(FFMPEG_HASH 5576e8a22f80b6a336db39808f427cfb)
|
||||
set(FFMPEG_HASH 695fad11f3baf27784e24cb0e977b65a)
|
||||
|
||||
set(FFTW_VERSION 3.3.8)
|
||||
set(FFTW_URI http://www.fftw.org/fftw-${FFTW_VERSION}.tar.gz)
|
||||
set(FFTW_HASH 8aac833c943d8e90d51b697b27d4384d)
|
||||
|
||||
set(ICONV_VERSION 1.15)
|
||||
set(ICONV_VERSION 1.16)
|
||||
set(ICONV_URI http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV_VERSION}.tar.gz)
|
||||
set(ICONV_HASH ace8b5f2db42f7b3b3057585e80d9808)
|
||||
set(ICONV_HASH 7d2a800b952942bb2880efb00cfd524c)
|
||||
|
||||
set(LAPACK_VERSION 3.6.0)
|
||||
set(LAPACK_URI http://www.netlib.org/lapack/lapack-${LAPACK_VERSION}.tgz)
|
||||
@@ -267,9 +261,9 @@ set(LCMS_VERSION 2.9)
|
||||
set(LCMS_URI https://nchc.dl.sourceforge.net/project/lcms/lcms/${LCMS_VERSION}/lcms2-${LCMS_VERSION}.tar.gz)
|
||||
set(LCMS_HASH 8de1b7724f578d2995c8fdfa35c3ad0e)
|
||||
|
||||
set(PUGIXML_VERSION 1.9)
|
||||
set(PUGIXML_URI https://github.com/zeux/pugixml/archive/v1.9.tar.gz)
|
||||
set(PUGIXML_HASH 9346ca1dce2c48f1748c12fdac41a714)
|
||||
set(PUGIXML_VERSION 1.10)
|
||||
set(PUGIXML_URI https://github.com/zeux/pugixml/archive/v${PUGIXML_VERSION}.tar.gz)
|
||||
set(PUGIXML_HASH 0c208b0664c7fb822bf1b49ad035e8fd)
|
||||
|
||||
set(FLEXBISON_VERSION 2.5.5)
|
||||
set(FLEXBISON_URI http://prdownloads.sourceforge.net/winflexbison//win_flex_bison-2.5.5.zip)
|
||||
@@ -299,9 +293,9 @@ set(SQLITE_VERSION 3.24.0)
|
||||
set(SQLITE_URI https://www.sqlite.org/2018/sqlite-src-3240000.zip)
|
||||
set(SQLITE_HASH fb558c49ee21a837713c4f1e7e413309aabdd9c7)
|
||||
|
||||
set(EMBREE_VERSION 3.8.0)
|
||||
set(EMBREE_VERSION 3.10.0)
|
||||
set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip)
|
||||
set(EMBREE_HASH ac504d5426945fe25dec1267e0c39d52)
|
||||
set(EMBREE_HASH 4bbe29e7eaa46417efc75fc5f1e8eb87)
|
||||
|
||||
set(USD_VERSION 19.11)
|
||||
set(USD_URI https://github.com/PixarAnimationStudios/USD/archive/v${USD_VERSION}.tar.gz)
|
||||
@@ -319,6 +313,6 @@ set(MESA_VERSION 18.3.1)
|
||||
set(MESA_URI ftp://ftp.freedesktop.org/pub/mesa//mesa-${MESA_VERSION}.tar.xz)
|
||||
set(MESA_HASH d60828056d77bfdbae0970f9b15fb1be)
|
||||
|
||||
set(XR_OPENXR_SDK_VERSION 1.0.6)
|
||||
set(XR_OPENXR_SDK_VERSION 1.0.8)
|
||||
set(XR_OPENXR_SDK_URI https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_SDK_VERSION}.tar.gz)
|
||||
set(XR_OPENXR_SDK_HASH 21daea7c3bfec365298d779a0e19caa1)
|
||||
set(XR_OPENXR_SDK_HASH c6de63d2e0f9029aa58dfa97cad8ce07)
|
||||
|
@@ -18,9 +18,6 @@
|
||||
|
||||
if(WIN32)
|
||||
set(X264_EXTRA_ARGS --enable-win32thread --cross-prefix=${MINGW_HOST}- --host=${MINGW_HOST})
|
||||
set(X264_PATCH_CMD ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/x264/src/external_x264 < ${PATCH_DIR}/x264.diff)
|
||||
else()
|
||||
set(X264_PATCH_CMD echo .)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -29,7 +26,6 @@ ExternalProject_Add(external_x264
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH SHA256=${X264_HASH}
|
||||
PREFIX ${BUILD_DIR}/x264
|
||||
PATCH_COMMAND ${X264_PATCH_CMD}
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/x264/src/external_x264/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/x264
|
||||
--enable-static
|
||||
--enable-pic
|
||||
|
@@ -29,6 +29,8 @@ if(UNIX AND NOT APPLE)
|
||||
-DBUILD_WITH_WAYLAND_HEADERS=OFF
|
||||
-DBUILD_WITH_XCB_HEADERS=OFF
|
||||
-DBUILD_WITH_XLIB_HEADERS=ON
|
||||
-DBUILD_WITH_SYSTEM_JSONCPP=OFF
|
||||
-DCMAKE_CXX_FLAGS=-DDISABLE_STD_FILESYSTEM=1
|
||||
)
|
||||
endif()
|
||||
|
||||
|
@@ -53,15 +53,15 @@ getopt \
|
||||
--long source:,install:,tmp:,info:,threads:,help,show-deps,no-sudo,no-build,no-confirm,\
|
||||
with-all,with-opencollada,with-jack,with-embree,with-oidn,\
|
||||
ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,ver-openvdb:,ver-xr-openxr:,\
|
||||
force-all,force-python,force-numpy,force-boost,\
|
||||
force-all,force-python,force-numpy,force-boost,force-tbb,\
|
||||
force-ocio,force-openexr,force-oiio,force-llvm,force-osl,force-osd,force-openvdb,\
|
||||
force-ffmpeg,force-opencollada,force-alembic,force-embree,force-oidn,force-usd,\
|
||||
force-xr-openxr,\
|
||||
build-all,build-python,build-numpy,build-boost,\
|
||||
build-all,build-python,build-numpy,build-boost,build-tbb,\
|
||||
build-ocio,build-openexr,build-oiio,build-llvm,build-osl,build-osd,build-openvdb,\
|
||||
build-ffmpeg,build-opencollada,build-alembic,build-embree,build-oidn,build-usd,\
|
||||
build-xr-openxr,\
|
||||
skip-python,skip-numpy,skip-boost,\
|
||||
skip-python,skip-numpy,skip-boost,skip-tbb,\
|
||||
skip-ocio,skip-openexr,skip-oiio,skip-llvm,skip-osl,skip-osd,skip-openvdb,\
|
||||
skip-ffmpeg,skip-opencollada,skip-alembic,skip-embree,skip-oidn,skip-usd,\
|
||||
skip-xr-openxr \
|
||||
@@ -191,6 +191,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
||||
--build-boost
|
||||
Force the build of Boost.
|
||||
|
||||
--build-tbb
|
||||
Force the build of TBB.
|
||||
|
||||
--build-ocio
|
||||
Force the build of OpenColorIO.
|
||||
|
||||
@@ -255,6 +258,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
||||
--force-boost
|
||||
Force the rebuild of Boost.
|
||||
|
||||
--force-tbb
|
||||
Force the rebuild of TBB.
|
||||
|
||||
--force-ocio
|
||||
Force the rebuild of OpenColorIO.
|
||||
|
||||
@@ -312,6 +318,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
||||
--skip-boost
|
||||
Unconditionally skip Boost installation/building.
|
||||
|
||||
--skip-tbb
|
||||
Unconditionally skip TBB installation/building.
|
||||
|
||||
--skip-ocio
|
||||
Unconditionally skip OpenColorIO installation/building.
|
||||
|
||||
@@ -369,6 +378,7 @@ CLANG_FORMAT_VERSION_MIN="6.0"
|
||||
|
||||
PYTHON_VERSION="3.7.4"
|
||||
PYTHON_VERSION_MIN="3.7"
|
||||
PYTHON_VERSION_INSTALLED=$PYTHON_VERSION_MIN
|
||||
PYTHON_FORCE_BUILD=false
|
||||
PYTHON_FORCE_REBUILD=false
|
||||
PYTHON_SKIP=false
|
||||
@@ -385,6 +395,13 @@ BOOST_FORCE_BUILD=false
|
||||
BOOST_FORCE_REBUILD=false
|
||||
BOOST_SKIP=false
|
||||
|
||||
TBB_VERSION="2019"
|
||||
TBB_VERSION_UPDATE="_U9" # Used for source packages...
|
||||
TBB_VERSION_MIN="2018"
|
||||
TBB_FORCE_BUILD=false
|
||||
TBB_FORCE_REBUILD=false
|
||||
TBB_SKIP=false
|
||||
|
||||
OCIO_VERSION="1.1.0"
|
||||
OCIO_VERSION_MIN="1.0"
|
||||
OCIO_FORCE_BUILD=false
|
||||
@@ -420,7 +437,7 @@ OSL_FORCE_REBUILD=false
|
||||
OSL_SKIP=false
|
||||
|
||||
# OpenSubdiv needs to be compiled for now
|
||||
OSD_VERSION="3.4.0_RC2"
|
||||
OSD_VERSION="3.4.3"
|
||||
OSD_VERSION_MIN=$OSD_VERSION
|
||||
OSD_FORCE_BUILD=false
|
||||
OSD_FORCE_REBUILD=false
|
||||
@@ -452,7 +469,7 @@ OPENCOLLADA_FORCE_BUILD=false
|
||||
OPENCOLLADA_FORCE_REBUILD=false
|
||||
OPENCOLLADA_SKIP=false
|
||||
|
||||
EMBREE_VERSION="3.8.0"
|
||||
EMBREE_VERSION="3.10.0"
|
||||
EMBREE_FORCE_BUILD=false
|
||||
EMBREE_FORCE_REBUILD=false
|
||||
EMBREE_SKIP=false
|
||||
@@ -462,14 +479,14 @@ OIDN_FORCE_BUILD=false
|
||||
OIDN_FORCE_REBUILD=false
|
||||
OIDN_SKIP=false
|
||||
|
||||
FFMPEG_VERSION="4.0.2"
|
||||
FFMPEG_VERSION="4.2.3"
|
||||
FFMPEG_VERSION_MIN="2.8.4"
|
||||
FFMPEG_FORCE_BUILD=false
|
||||
FFMPEG_FORCE_REBUILD=false
|
||||
FFMPEG_SKIP=false
|
||||
_ffmpeg_list_sep=";"
|
||||
|
||||
XR_OPENXR_VERSION="1.0.6"
|
||||
XR_OPENXR_VERSION="1.0.8"
|
||||
XR_OPENXR_FORCE_BUILD=false
|
||||
XR_OPENXR_FORCE_REBUILD=false
|
||||
XR_OPENXR_SKIP=false
|
||||
@@ -653,6 +670,7 @@ while true; do
|
||||
PYTHON_FORCE_BUILD=true
|
||||
NUMPY_FORCE_BUILD=true
|
||||
BOOST_FORCE_BUILD=true
|
||||
TBB_FORCE_BUILD=true
|
||||
OCIO_FORCE_BUILD=true
|
||||
OPENEXR_FORCE_BUILD=true
|
||||
OIIO_FORCE_BUILD=true
|
||||
@@ -682,6 +700,9 @@ while true; do
|
||||
--build-boost)
|
||||
BOOST_FORCE_BUILD=true; shift; continue
|
||||
;;
|
||||
--build-tbb)
|
||||
TBB_FORCE_BUILD=true; shift; continue
|
||||
;;
|
||||
--build-ocio)
|
||||
OCIO_FORCE_BUILD=true; shift; continue
|
||||
;;
|
||||
@@ -728,6 +749,7 @@ while true; do
|
||||
PYTHON_FORCE_REBUILD=true
|
||||
NUMPY_FORCE_REBUILD=true
|
||||
BOOST_FORCE_REBUILD=true
|
||||
TBB_FORCE_REBUILD=true
|
||||
OCIO_FORCE_REBUILD=true
|
||||
OPENEXR_FORCE_REBUILD=true
|
||||
OIIO_FORCE_REBUILD=true
|
||||
@@ -755,6 +777,9 @@ while true; do
|
||||
--force-boost)
|
||||
BOOST_FORCE_REBUILD=true; shift; continue
|
||||
;;
|
||||
--force-tbb)
|
||||
TBB_FORCE_REBUILD=true; shift; continue
|
||||
;;
|
||||
--force-ocio)
|
||||
OCIO_FORCE_REBUILD=true; shift; continue
|
||||
;;
|
||||
@@ -806,6 +831,9 @@ while true; do
|
||||
--skip-boost)
|
||||
BOOST_SKIP=true; shift; continue
|
||||
;;
|
||||
--skip-tbb)
|
||||
TBB_SKIP=true; shift; continue
|
||||
;;
|
||||
--skip-ocio)
|
||||
OCIO_SKIP=true; shift; continue
|
||||
;;
|
||||
@@ -898,9 +926,12 @@ PYTHON_SOURCE=( "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHO
|
||||
NUMPY_SOURCE=( "https://github.com/numpy/numpy/releases/download/v$NUMPY_VERSION/numpy-$NUMPY_VERSION.tar.gz" )
|
||||
|
||||
_boost_version_nodots=`echo "$BOOST_VERSION" | sed -r 's/\./_/g'`
|
||||
BOOST_SOURCE=( "http://sourceforge.net/projects/boost/files/boost/$BOOST_VERSION/boost_$_boost_version_nodots.tar.bz2/download" )
|
||||
BOOST_SOURCE=( "https://dl.bintray.com/boostorg/release/$BOOST_VERSION/source/boost_$_boost_version_nodots.tar.bz2" )
|
||||
BOOST_BUILD_MODULES="--with-system --with-filesystem --with-thread --with-regex --with-locale --with-date_time --with-wave --with-iostreams --with-python --with-program_options"
|
||||
|
||||
TBB_SOURCE=( "https://github.com/oneapi-src/oneTBB/archive/$TBB_VERSION$TBB_VERSION_UPDATE.tar.gz" )
|
||||
TBB_SOURCE_CMAKE=( "https://raw.githubusercontent.com/wjakob/tbb/master/CMakeLists.txt" )
|
||||
|
||||
OCIO_USE_REPO=false
|
||||
OCIO_SOURCE=( "https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/v$OCIO_VERSION.tar.gz")
|
||||
#~ OCIO_SOURCE_REPO=( "https://github.com/imageworks/OpenColorIO.git" )
|
||||
@@ -999,7 +1030,7 @@ Those libraries should be available as packages in all recent distributions (opt
|
||||
* libjpeg, libpng, libtiff, [openjpeg2], [libopenal].
|
||||
* libx11, libxcursor, libxi, libxrandr, libxinerama (and other libx... as needed).
|
||||
* libsqlite3, libbz2, libssl, libfftw3, libxml2, libtinyxml, yasm, libyaml-cpp.
|
||||
* libsdl1.2, libglew, [libglewmx].\""
|
||||
* libsdl2, libglew, [libglewmx].\""
|
||||
|
||||
DEPS_SPECIFIC_INFO="\"BUILDABLE DEPENDENCIES:
|
||||
|
||||
@@ -1011,6 +1042,7 @@ You may also want to build them yourself (optional ones are [between brackets]):
|
||||
* Python $PYTHON_VERSION_MIN (from $PYTHON_SOURCE).
|
||||
* [NumPy $NUMPY_VERSION_MIN] (from $NUMPY_SOURCE).
|
||||
* Boost $BOOST_VERSION_MIN (from $BOOST_SOURCE, modules: $BOOST_BUILD_MODULES).
|
||||
* TBB $TBB_VERSION_MIN (from $TBB_SOURCE).
|
||||
* [FFMpeg $FFMPEG_VERSION_MIN (needs libvorbis, libogg, libtheora, libx264, libmp3lame, libxvidcore, libvpx, ...)] (from $FFMPEG_SOURCE).
|
||||
* [OpenColorIO $OCIO_VERSION_MIN] (from $OCIO_SOURCE).
|
||||
* ILMBase $OPENEXR_VERSION_MIN (from $OPENEXR_SOURCE).
|
||||
@@ -1248,8 +1280,10 @@ _update_deps_python() {
|
||||
clean_Python() {
|
||||
clean_Numpy
|
||||
_init_python
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_python
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_Python() {
|
||||
@@ -1289,7 +1323,7 @@ compile_Python() {
|
||||
|
||||
./configure --prefix=$_inst --libdir=$_inst/lib --enable-ipv6 \
|
||||
--enable-loadable-sqlite-extensions --with-dbmliborder=bdb \
|
||||
--with-computed-gotos --with-pymalloc
|
||||
--with-computed-gotos --with-pymalloc --enable-shared
|
||||
|
||||
make -j$THREADS && make install
|
||||
make clean
|
||||
@@ -1310,6 +1344,8 @@ compile_Python() {
|
||||
INFO "Own Python-$PYTHON_VERSION is up to date, nothing to do!"
|
||||
INFO "If you want to force rebuild of this lib, use the --force-python option."
|
||||
fi
|
||||
|
||||
run_ldconfig "python-$PYTHON_VERSION_MIN"
|
||||
}
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
@@ -1330,8 +1366,10 @@ _update_deps_numpy() {
|
||||
|
||||
clean_Numpy() {
|
||||
_init_numpy
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_numpy
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_Numpy() {
|
||||
@@ -1416,8 +1454,10 @@ _update_deps_boost() {
|
||||
|
||||
clean_Boost() {
|
||||
_init_boost
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_boost
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_Boost() {
|
||||
@@ -1482,6 +1522,130 @@ compile_Boost() {
|
||||
run_ldconfig "boost"
|
||||
}
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Build TBB
|
||||
|
||||
_init_tbb() {
|
||||
_src=$SRC/TBB-$TBB_VERSION
|
||||
_git=false
|
||||
_inst=$INST/tbb-$TBB_VERSION
|
||||
_inst_shortcut=$INST/tbb
|
||||
}
|
||||
|
||||
_update_deps_tbb() {
|
||||
OSD_FORCE_REBUILD=true
|
||||
OPENVDB_FORCE_REBUILD=true
|
||||
USD_FORCE_REBUILD=true
|
||||
EMBREE_FORCE_REBUILD=true
|
||||
OIDN_FORCE_REBUILD=true
|
||||
if [ "$_is_building" = true ]; then
|
||||
OSD_FORCE_BUILD=true
|
||||
OPENVDB_FORCE_BUILD=true
|
||||
USD_FORCE_BUILD=true
|
||||
EMBREE_FORCE_BUILD=true
|
||||
OIDN_FORCE_BUILD=true
|
||||
fi
|
||||
}
|
||||
|
||||
clean_TBB() {
|
||||
_init_tbb
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_tbb
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_TBB() {
|
||||
if [ "$NO_BUILD" = true ]; then
|
||||
WARNING "--no-build enabled, TBB will not be compiled!"
|
||||
return
|
||||
fi
|
||||
|
||||
# To be changed each time we make edits that would modify the compiled result!
|
||||
tbb_magic=0
|
||||
_init_tbb
|
||||
|
||||
# Clean install if needed!
|
||||
magic_compile_check tbb-$TBB_VERSION $tbb_magic
|
||||
if [ $? -eq 1 -o "$TBB_FORCE_REBUILD" = true ]; then
|
||||
clean_TBB
|
||||
fi
|
||||
|
||||
if [ ! -d $_inst ]; then
|
||||
INFO "Building TBB-$TBB_VERSION$TBB_VERSION_UPDATE"
|
||||
_is_building=true
|
||||
|
||||
# Rebuild dependencies as well!
|
||||
_update_deps_tbb
|
||||
|
||||
prepare_opt
|
||||
|
||||
if [ ! -d $_src ]; then
|
||||
INFO "Downloading TBB-$TBB_VERSION$TBB_VERSION_UPDATE"
|
||||
mkdir -p $SRC
|
||||
|
||||
download TBB_SOURCE[@] $_src.tar.gz
|
||||
INFO "Unpacking TBB-$TBB_VERSION$TBB_VERSION_UPDATE"
|
||||
tar -C $SRC --transform "s,(.*/?)oneTBB[^/]*(.*),\1TBB-$TBB_VERSION\2,x" \
|
||||
-xf $_src.tar.gz
|
||||
|
||||
INFO
|
||||
|
||||
# Super-hack: Add some cmake builder to tbb... since they don't even have an install target by default, sic.
|
||||
download TBB_SOURCE_CMAKE[@] $_src/CMakeLists.txt
|
||||
cp $_src/build/vs2013/version_string.ver $_src/build/version_string.ver.in
|
||||
fi
|
||||
|
||||
cd $_src
|
||||
|
||||
# Always refresh the whole build!
|
||||
if [ -d cmake_build ]; then
|
||||
rm -rf cmake_build
|
||||
fi
|
||||
mkdir cmake_build
|
||||
cd cmake_build
|
||||
|
||||
cmake_d="-D CMAKE_BUILD_TYPE=Release"
|
||||
cmake_d="$cmake_d -D CMAKE_PREFIX_PATH=$_inst"
|
||||
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
|
||||
cmake_d="$cmake_d -D TBB_BUILD_SHARED=ON"
|
||||
cmake_d="$cmake_d -D TBB_BUILD_STATIC=OFF"
|
||||
cmake_d="$cmake_d -D TBB_BUILD_TBBMALLOC=ON"
|
||||
cmake_d="$cmake_d -D TBB_BUILD_TBBMALLOC_PROXY=OFF"
|
||||
cmake_d="$cmake_d -D TBB_BUILD_TESTS=OFF"
|
||||
|
||||
if file /bin/cp | grep -q '32-bit'; then
|
||||
cflags="-fPIC -m32 -march=i686"
|
||||
else
|
||||
cflags="-fPIC"
|
||||
fi
|
||||
|
||||
cmake $cmake_d -D CMAKE_CXX_FLAGS="$cflags" -D CMAKE_EXE_LINKER_FLAGS="-lgcc_s -lgcc" ..
|
||||
|
||||
make -j$THREADS && make install
|
||||
|
||||
make clean
|
||||
|
||||
if [ -d $_inst ]; then
|
||||
_create_inst_shortcut
|
||||
else
|
||||
ERROR "TBB-$TBB_VERSION$TBB_VERSION_UPDATE failed to compile, exiting"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
magic_compile_set tbb-$TBB_VERSION $tbb_magic
|
||||
|
||||
cd $CWD
|
||||
INFO "Done compiling TBB-$TBB_VERSION$TBB_VERSION_UPDATE!"
|
||||
_is_building=false
|
||||
else
|
||||
INFO "Own TBB-$TBB_VERSION$TBB_VERSION_UPDATE is up to date, nothing to do!"
|
||||
INFO "If you want to force rebuild of this lib, use the --force-tbb option."
|
||||
fi
|
||||
|
||||
run_ldconfig "tbb"
|
||||
}
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Build OCIO
|
||||
|
||||
@@ -1502,8 +1666,10 @@ _update_deps_ocio() {
|
||||
|
||||
clean_OCIO() {
|
||||
_init_ocio
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_ocio
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_OCIO() {
|
||||
@@ -1615,7 +1781,7 @@ compile_OCIO() {
|
||||
_init_openexr() {
|
||||
_src=$SRC/OpenEXR-$OPENEXR_VERSION
|
||||
_git=false
|
||||
_inst=$_openexr_inst
|
||||
_inst=$INST/openexr-$OPENEXR_VERSION
|
||||
_inst_shortcut=$INST/openexr
|
||||
}
|
||||
|
||||
@@ -1630,8 +1796,10 @@ _update_deps_openexr() {
|
||||
|
||||
clean_OPENEXR() {
|
||||
_init_openexr
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_openexr
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_OPENEXR() {
|
||||
@@ -1649,7 +1817,6 @@ compile_OPENEXR() {
|
||||
clean_OPENEXR
|
||||
fi
|
||||
|
||||
_openexr_inst=$INST/openexr-$OPENEXR_VERSION
|
||||
PRINT ""
|
||||
_init_openexr
|
||||
|
||||
@@ -1695,7 +1862,7 @@ compile_OPENEXR() {
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_openexr_inst"
|
||||
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
|
||||
cmake_d="$cmake_d -D CMAKE_INSTALL_DOCDIR=/dev/null" # Hack, there is no option to disable that currently...
|
||||
cmake_d="$cmake_d -D BUILD_SHARED_LIBS=ON"
|
||||
cmake_d="$cmake_d -D BUILD_TESTING=OFF"
|
||||
@@ -1757,8 +1924,10 @@ _update_deps_oiio() {
|
||||
|
||||
clean_OIIO() {
|
||||
_init_oiio
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_oiio
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_OIIO() {
|
||||
@@ -1910,8 +2079,10 @@ _update_deps_llvm() {
|
||||
|
||||
clean_LLVM() {
|
||||
_init_llvm
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_llvm
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_LLVM() {
|
||||
@@ -2017,8 +2188,10 @@ _update_deps_osl() {
|
||||
|
||||
clean_OSL() {
|
||||
_init_osl
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_osl
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_OSL() {
|
||||
@@ -2160,8 +2333,10 @@ _update_deps_osd() {
|
||||
|
||||
clean_OSD() {
|
||||
_init_osd
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_osd
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_OSD() {
|
||||
@@ -2220,6 +2395,9 @@ compile_OSD() {
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
if [ -d $INST/tbb ]; then
|
||||
cmake_d="$cmake_d $cmake_d -D TBB_LOCATION=$INST/tbb"
|
||||
fi
|
||||
cmake_d="-D CMAKE_BUILD_TYPE=Release"
|
||||
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
|
||||
# ptex is only needed when nicholas bishop is ready
|
||||
@@ -2272,8 +2450,10 @@ _update_deps_blosc() {
|
||||
|
||||
clean_BLOSC() {
|
||||
_init_blosc
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_blosc
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_BLOSC() {
|
||||
@@ -2367,8 +2547,10 @@ _update_deps_openvdb() {
|
||||
|
||||
clean_OPENVDB() {
|
||||
_init_openvdb
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_openvdb
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_OPENVDB() {
|
||||
@@ -2427,6 +2609,9 @@ compile_OPENVDB() {
|
||||
if [ -d $INST/boost ]; then
|
||||
make_d="$make_d BOOST_INCL_DIR=$INST/boost/include BOOST_LIB_DIR=$INST/boost/lib"
|
||||
fi
|
||||
if [ -d $INST/tbb ]; then
|
||||
make_d="$make_d TBB_ROOT=$INST/tbb TBB_USE_STATIC_LIBS=OFF"
|
||||
fi
|
||||
|
||||
if [ "$_with_built_openexr" = true ]; then
|
||||
make_d="$make_d ILMBASE_INCL_DIR=$INST/openexr/include ILMBASE_LIB_DIR=$INST/openexr/lib"
|
||||
@@ -2480,8 +2665,10 @@ _update_deps_alembic() {
|
||||
|
||||
clean_ALEMBIC() {
|
||||
_init_alembic
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_alembic
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_ALEMBIC() {
|
||||
@@ -2583,8 +2770,10 @@ _update_deps_usd() {
|
||||
|
||||
clean_USD() {
|
||||
_init_usd
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_usd
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_USD() {
|
||||
@@ -2628,6 +2817,10 @@ compile_USD() {
|
||||
if [ -d $INST/boost ]; then
|
||||
cmake_d="$cmake_d $cmake_d -D BOOST_ROOT=$INST/boost"
|
||||
fi
|
||||
|
||||
if [ -d $INST/tbb ]; then
|
||||
cmake_d="$cmake_d $cmake_d -D TBB_ROOT_DIR=$INST/tbb"
|
||||
fi
|
||||
cmake_d="$cmake_d -DPXR_SET_INTERNAL_NAMESPACE=usdBlender"
|
||||
cmake_d="$cmake_d -DPXR_ENABLE_PYTHON_SUPPORT=OFF"
|
||||
cmake_d="$cmake_d -DPXR_BUILD_IMAGING=OFF"
|
||||
@@ -2652,7 +2845,7 @@ compile_USD() {
|
||||
|
||||
cd $CWD
|
||||
INFO "Done compiling USD-$USD_VERSION!"
|
||||
_is_building=true
|
||||
_is_building=false
|
||||
else
|
||||
INFO "Own USD-$USD_VERSION is up to date, nothing to do!"
|
||||
INFO "If you want to force rebuild of this lib, use the --force-usd option."
|
||||
@@ -2676,8 +2869,10 @@ _update_deps_collada() {
|
||||
|
||||
clean_OpenCOLLADA() {
|
||||
_init_opencollada
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_collada
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_OpenCOLLADA() {
|
||||
@@ -2780,8 +2975,10 @@ _update_deps_embree() {
|
||||
|
||||
clean_Embree() {
|
||||
_init_embree
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_embree
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_Embree() {
|
||||
@@ -2791,7 +2988,7 @@ compile_Embree() {
|
||||
fi
|
||||
|
||||
# To be changed each time we make edits that would modify the compiled results!
|
||||
embree_magic=9
|
||||
embree_magic=10
|
||||
_init_embree
|
||||
|
||||
# Clean install if needed!
|
||||
@@ -2845,9 +3042,13 @@ compile_Embree() {
|
||||
cmake_d="$cmake_d -D EMBREE_RAY_MASK=ON"
|
||||
cmake_d="$cmake_d -D EMBREE_FILTER_FUNCTION=ON"
|
||||
cmake_d="$cmake_d -D EMBREE_BACKFACE_CULLING=OFF"
|
||||
cmake_d="$cmake_d -D EMBREE_TASKING_SYSTEM=INTERNAL"
|
||||
cmake_d="$cmake_d -D EMBREE_MAX_ISA=AVX2"
|
||||
|
||||
cmake_d="$cmake_d -D EMBREE_TASKING_SYSTEM=TBB"
|
||||
if [ -d $INST/tbb ]; then
|
||||
make_d="$make_d EMBREE_TBB_ROOT=$INST/tbb"
|
||||
fi
|
||||
|
||||
cmake $cmake_d ../
|
||||
|
||||
make -j$THREADS && make install
|
||||
@@ -2887,8 +3088,10 @@ _update_deps_oidn() {
|
||||
|
||||
clean_oidn() {
|
||||
_init_oidn
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_oidn
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_OIDN() {
|
||||
@@ -2950,6 +3153,10 @@ compile_OIDN() {
|
||||
cmake_d="$cmake_d -D WITH_TEST=OFF"
|
||||
cmake_d="$cmake_d -D OIDN_STATIC_LIB=ON"
|
||||
|
||||
if [ -d $INST/tbb ]; then
|
||||
make_d="$make_d TBB_ROOT=$INST/tbb"
|
||||
fi
|
||||
|
||||
cmake $cmake_d ../
|
||||
|
||||
make -j$THREADS && make install
|
||||
@@ -2990,8 +3197,10 @@ _update_deps_ffmpeg() {
|
||||
|
||||
clean_FFmpeg() {
|
||||
_init_ffmpeg
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_ffmpeg
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_FFmpeg() {
|
||||
@@ -3117,8 +3326,10 @@ _update_deps_xr_openxr_sdk() {
|
||||
|
||||
clean_XR_OpenXR_SDK() {
|
||||
_init_xr_openxr_sdk
|
||||
_clean
|
||||
if [ -d $_inst ]; then
|
||||
_update_deps_xr_openxr_sdk
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_XR_OpenXR_SDK() {
|
||||
@@ -3128,11 +3339,11 @@ compile_XR_OpenXR_SDK() {
|
||||
fi
|
||||
|
||||
# To be changed each time we make edits that would modify the compiled result!
|
||||
xr_openxr_magic=0
|
||||
xr_openxr_magic=2
|
||||
_init_xr_openxr_sdk
|
||||
|
||||
# Clean install if needed!
|
||||
magic_compile_check xr-openxr-$OPENXR_VERSION $xr_openxr_magic
|
||||
magic_compile_check xr-openxr-$XR_OPENXR_VERSION $xr_openxr_magic
|
||||
if [ $? -eq 1 -o "$XR_OPENXR_FORCE_REBUILD" = true ]; then
|
||||
clean_XR_OpenXR_SDK
|
||||
fi
|
||||
@@ -3185,8 +3396,9 @@ compile_XR_OpenXR_SDK() {
|
||||
cmake_d="$cmake_d -D BUILD_WITH_WAYLAND_HEADERS=OFF"
|
||||
cmake_d="$cmake_d -D BUILD_WITH_XCB_HEADERS=OFF"
|
||||
cmake_d="$cmake_d -D BUILD_WITH_XLIB_HEADERS=ON"
|
||||
cmake_d="$cmake_d -D BUILD_WITH_SYSTEM_JSONCPP=OFF"
|
||||
|
||||
cmake $cmake_d ..
|
||||
cmake $cmake_d "-DCMAKE_CXX_FLAGS=-DDISABLE_STD_FILESYSTEM=1" ..
|
||||
|
||||
make -j$THREADS && make install
|
||||
make clean
|
||||
@@ -3308,11 +3520,11 @@ install_DEB() {
|
||||
THEORA_DEV="libtheora-dev"
|
||||
|
||||
_packages="gawk cmake cmake-curses-gui build-essential libjpeg-dev libpng-dev libtiff-dev \
|
||||
git libfreetype6-dev libx11-dev flex bison libtbb-dev libxxf86vm-dev \
|
||||
git libfreetype6-dev libx11-dev flex bison libxxf86vm-dev \
|
||||
libxcursor-dev libxi-dev wget libsqlite3-dev libxrandr-dev libxinerama-dev \
|
||||
libbz2-dev libncurses5-dev libssl-dev liblzma-dev libreadline-dev \
|
||||
libopenal-dev libglew-dev yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV \
|
||||
libsdl1.2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev libjemalloc-dev"
|
||||
libsdl2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev libjemalloc-dev"
|
||||
# libglewmx-dev (broken in deb testing currently...)
|
||||
|
||||
VORBIS_USE=true
|
||||
@@ -3463,9 +3675,11 @@ install_DEB() {
|
||||
INFO "Forced Python/NumPy building, as requested..."
|
||||
_do_compile_python=true
|
||||
else
|
||||
check_package_DEB python$PYTHON_VERSION_MIN-dev
|
||||
check_package_version_ge_DEB python3-dev $PYTHON_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
install_packages_DEB python$PYTHON_VERSION_MIN-dev
|
||||
PYTHON_VERSION_INSTALLED=$(echo `get_package_version_DEB python3-dev` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
|
||||
|
||||
install_packages_DEB python3-dev
|
||||
clean_Python
|
||||
PRINT ""
|
||||
if [ "$NUMPY_SKIP" = true ]; then
|
||||
@@ -3517,6 +3731,23 @@ install_DEB() {
|
||||
fi
|
||||
|
||||
|
||||
PRINT ""
|
||||
if [ "$TBB_SKIP" = true ]; then
|
||||
WARNING "Skipping TBB installation, as requested..."
|
||||
elif [ "$TBB_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced TBB building, as requested..."
|
||||
compile_TBB
|
||||
else
|
||||
check_package_version_ge_DEB libtbb-dev $TBB_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
install_packages_DEB libtbb-dev
|
||||
clean_TBB
|
||||
else
|
||||
compile_TBB
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
PRINT ""
|
||||
if [ "$OCIO_SKIP" = true ]; then
|
||||
WARNING "Skipping OpenColorIO installation, as requested..."
|
||||
@@ -3941,7 +4172,7 @@ install_RPM() {
|
||||
THEORA_DEV="libtheora-devel"
|
||||
|
||||
_packages="gcc gcc-c++ git make cmake tar bzip2 xz findutils flex bison \
|
||||
libtiff-devel libjpeg-devel libpng-devel sqlite-devel fftw-devel SDL-devel \
|
||||
libtiff-devel libjpeg-devel libpng-devel sqlite-devel fftw-devel SDL2-devel \
|
||||
libX11-devel libXi-devel libXcursor-devel libXrandr-devel libXinerama-devel \
|
||||
wget ncurses-devel readline-devel $OPENJPEG_DEV openal-soft-devel \
|
||||
glew-devel yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV patch \
|
||||
@@ -3953,7 +4184,7 @@ install_RPM() {
|
||||
THEORA_USE=true
|
||||
|
||||
if [ "$RPM" = "FEDORA" -o "$RPM" = "RHEL" ]; then
|
||||
_packages="$_packages freetype-devel tbb-devel"
|
||||
_packages="$_packages freetype-devel"
|
||||
|
||||
if [ "$WITH_JACK" = true ]; then
|
||||
_packages="$_packages jack-audio-connection-kit-devel"
|
||||
@@ -3994,17 +4225,6 @@ install_RPM() {
|
||||
PRINT ""
|
||||
install_packages_RPM $_packages
|
||||
|
||||
PRINT ""
|
||||
# Install TBB on openSUSE, from temporary repo
|
||||
check_package_RPM tbb-devel
|
||||
if [ $? -eq 0 ]; then
|
||||
install_packages_RPM tbb-devel
|
||||
else
|
||||
$SUDO zypper ar -f http://download.opensuse.org/repositories/devel:/libraries:/c_c++/openSUSE_$_suse_rel/devel:libraries:c_c++.repo
|
||||
$SUDO zypper -n --gpg-auto-import-keys install tbb-devel
|
||||
$SUDO zypper rr devel_libraries_c_c++
|
||||
fi
|
||||
|
||||
PRINT ""
|
||||
X264_DEV="libx264-devel"
|
||||
check_package_version_ge_RPM $X264_DEV $X264_VERSION_MIN
|
||||
@@ -4079,8 +4299,10 @@ install_RPM() {
|
||||
INFO "Forced Python/NumPy building, as requested..."
|
||||
_do_compile_python=true
|
||||
else
|
||||
check_package_version_match_RPM python3-devel $PYTHON_VERSION_MIN
|
||||
check_package_version_ge_RPM python3-devel $PYTHON_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
PYTHON_VERSION_INSTALLED=$(echo `get_package_version_RPM python3-devel` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
|
||||
|
||||
install_packages_RPM python3-devel
|
||||
clean_Python
|
||||
PRINT ""
|
||||
@@ -4140,6 +4362,23 @@ install_RPM() {
|
||||
fi
|
||||
|
||||
|
||||
PRINT ""
|
||||
if [ "$TBB_SKIP" = true ]; then
|
||||
WARNING "Skipping TBB installation, as requested..."
|
||||
elif [ "$TBB_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced TBB building, as requested..."
|
||||
compile_TBB
|
||||
else
|
||||
check_package_version_ge_RPM tbb-devel $TBB_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
install_packages_RPM tbb-devel
|
||||
clean_TBB
|
||||
else
|
||||
compile_TBB
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
PRINT ""
|
||||
if [ "$OCIO_SKIP" = true ]; then
|
||||
WARNING "Skipping OpenColorIO installation, as requested..."
|
||||
@@ -4496,7 +4735,7 @@ install_ARCH() {
|
||||
|
||||
_packages="$BASE_DEVEL git cmake \
|
||||
libxi libxcursor libxrandr libxinerama glew libpng libtiff wget openal \
|
||||
$OPENJPEG_DEV $VORBIS_DEV $OGG_DEV $THEORA_DEV yasm sdl fftw intel-tbb \
|
||||
$OPENJPEG_DEV $VORBIS_DEV $OGG_DEV $THEORA_DEV yasm sdl2 fftw \
|
||||
libxml2 yaml-cpp tinyxml python-requests jemalloc"
|
||||
|
||||
OPENJPEG_USE=true
|
||||
@@ -4587,6 +4826,8 @@ install_ARCH() {
|
||||
else
|
||||
check_package_version_ge_ARCH python $PYTHON_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
PYTHON_VERSION_INSTALLED=$(echo `get_package_version_ARCH python` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
|
||||
|
||||
install_packages_ARCH python
|
||||
clean_Python
|
||||
PRINT ""
|
||||
@@ -4635,6 +4876,23 @@ install_ARCH() {
|
||||
fi
|
||||
|
||||
|
||||
PRINT ""
|
||||
if [ "$TBB_SKIP" = true ]; then
|
||||
WARNING "Skipping TBB installation, as requested..."
|
||||
elif [ "$TBB_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced TBB building, as requested..."
|
||||
compile_TBB
|
||||
else
|
||||
check_package_version_ge_ARCH intel-tbb $TBB_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
install_packages_ARCH intel-tbb
|
||||
clean_TBB
|
||||
else
|
||||
compile_TBB
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
PRINT ""
|
||||
if [ "$OCIO_SKIP" = true ]; then
|
||||
WARNING "Skipping OpenColorIO installation, as requested..."
|
||||
@@ -4929,15 +5187,10 @@ install_OTHER() {
|
||||
fi
|
||||
|
||||
PRINT ""
|
||||
_do_compile_python=false
|
||||
if [ "$PYTHON_SKIP" = true ]; then
|
||||
WARNING "Skipping Python/NumPy installation, as requested..."
|
||||
elif [ "$PYTHON_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced Python/NumPy building, as requested..."
|
||||
_do_compile_python=true
|
||||
fi
|
||||
|
||||
if [ "$_do_compile_python" = true ]; then
|
||||
compile_Python
|
||||
PRINT ""
|
||||
if [ "$NUMPY_SKIP" = true ]; then
|
||||
@@ -4957,6 +5210,15 @@ install_OTHER() {
|
||||
fi
|
||||
|
||||
|
||||
PRINT ""
|
||||
if [ "$TBB_SKIP" = true ]; then
|
||||
WARNING "Skipping TBB installation, as requested..."
|
||||
elif [ "$TBB_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced TBB building, as requested..."
|
||||
compile_TBB
|
||||
fi
|
||||
|
||||
|
||||
PRINT ""
|
||||
if [ "$OCIO_SKIP" = true ]; then
|
||||
WARNING "Skipping OpenColorIO installation, as requested..."
|
||||
@@ -4986,16 +5248,10 @@ install_OTHER() {
|
||||
|
||||
PRINT ""
|
||||
have_llvm=false
|
||||
_do_compile_llvm=false
|
||||
if [ "$LLVM_SKIP" = true ]; then
|
||||
WARNING "Skipping LLVM installation, as requested (this also implies skipping OSL!)..."
|
||||
elif [ "$LLVM_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced LLVM building, as requested..."
|
||||
_do_compile_llvm=true
|
||||
fi
|
||||
|
||||
if [ "$_do_compile_llvm" = true ]; then
|
||||
PRINT ""
|
||||
compile_LLVM
|
||||
have_llvm=true
|
||||
LLVM_VERSION_FOUND=$LLVM_VERSION
|
||||
@@ -5003,15 +5259,10 @@ install_OTHER() {
|
||||
|
||||
|
||||
PRINT ""
|
||||
_do_compile_osl=false
|
||||
if [ "$OSL_SKIP" = true ]; then
|
||||
WARNING "Skipping OpenShadingLanguage installation, as requested..."
|
||||
elif [ "$OSL_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced OpenShadingLanguage building, as requested..."
|
||||
_do_compile_osl=true
|
||||
fi
|
||||
|
||||
if [ "$_do_compile_osl" = true ]; then
|
||||
if [ "$have_llvm" = true ]; then
|
||||
PRINT ""
|
||||
compile_OSL
|
||||
@@ -5022,66 +5273,40 @@ install_OTHER() {
|
||||
|
||||
|
||||
PRINT ""
|
||||
_do_compile_osd=false
|
||||
if [ "$OSD_SKIP" = true ]; then
|
||||
WARNING "Skipping OpenSubdiv installation, as requested..."
|
||||
elif [ "$OSD_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced OpenSubdiv building, as requested..."
|
||||
_do_compile_osd=true
|
||||
fi
|
||||
|
||||
if [ "$_do_compile_osd" = true ]; then
|
||||
PRINT ""
|
||||
compile_OSD
|
||||
fi
|
||||
|
||||
|
||||
if [ "$WITH_OPENCOLLADA" = true ]; then
|
||||
_do_compile_collada=false
|
||||
PRINT ""
|
||||
if [ "$OPENCOLLADA_SKIP" = true ]; then
|
||||
WARNING "Skipping OpenCOLLADA installation, as requested..."
|
||||
elif [ "$OPENCOLLADA_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced OpenCollada building, as requested..."
|
||||
_do_compile_collada=true
|
||||
fi
|
||||
|
||||
if [ "$_do_compile_collada" = true ]; then
|
||||
PRINT ""
|
||||
compile_OpenCOLLADA
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$WITH_EMBREE" = true ]; then
|
||||
_do_compile_embree=false
|
||||
PRINT ""
|
||||
if [ "$EMBREE_SKIP" = true ]; then
|
||||
WARNING "Skipping Embree installation, as requested..."
|
||||
elif [ "$EMBREE_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced Embree building, as requested..."
|
||||
_do_compile_embree=true
|
||||
fi
|
||||
|
||||
if [ "$_do_compile_embree" = true ]; then
|
||||
PRINT ""
|
||||
compile_Embree
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$WITH_OIDN" = true ]; then
|
||||
_do_compile_oidn=false
|
||||
PRINT ""
|
||||
if [ "$OIDN_SKIP" = true ]; then
|
||||
WARNING "Skipping OpenImgeDenoise installation, as requested..."
|
||||
elif [ "$OIDN_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced OpenImageDenoise building, as requested..."
|
||||
_do_compile_oidn=true
|
||||
else
|
||||
# No package currently!
|
||||
_do_compile_oidn=true
|
||||
fi
|
||||
|
||||
if [ "$_do_compile_oidn" = true ]; then
|
||||
compile_OIDN
|
||||
fi
|
||||
fi
|
||||
@@ -5100,9 +5325,6 @@ install_OTHER() {
|
||||
elif [ "$XR_OPENXR_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced OpenXR-SDK building, as requested..."
|
||||
compile_XR_OpenXR_SDK
|
||||
else
|
||||
# No package currently!
|
||||
compile_XR_OpenXR_SDK
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -5188,7 +5410,7 @@ print_info() {
|
||||
PRINT ""
|
||||
PRINT "If you're using CMake add this to your configuration flags:"
|
||||
|
||||
_buildargs="-U *SNDFILE* -U *PYTHON* -U *BOOST* -U *Boost*"
|
||||
_buildargs="-U *SNDFILE* -U PYTHON* -U *BOOST* -U *Boost* -U *TBB*"
|
||||
_buildargs="$_buildargs -U *OPENCOLORIO* -U *OPENEXR* -U *OPENIMAGEIO* -U *LLVM* -U *CYCLES*"
|
||||
_buildargs="$_buildargs -U *OPENSUBDIV* -U *OPENVDB* -U *COLLADA* -U *FFMPEG* -U *ALEMBIC* -U *USD*"
|
||||
|
||||
@@ -5196,11 +5418,11 @@ print_info() {
|
||||
PRINT " $_1"
|
||||
_buildargs="$_buildargs $_1"
|
||||
|
||||
_1="-D PYTHON_VERSION=$PYTHON_VERSION_MIN"
|
||||
_1="-D PYTHON_VERSION=$PYTHON_VERSION_INSTALLED"
|
||||
PRINT " $_1"
|
||||
_buildargs="$_buildargs $_1"
|
||||
if [ -d "$INST/python-$PYTHON_VERSION_MIN" ]; then
|
||||
_1="-D PYTHON_ROOT_DIR=$INST/python-$PYTHON_VERSION_MIN"
|
||||
if [ -d "$INST/python-$PYTHON_VERSION_INSTALLED" ]; then
|
||||
_1="-D PYTHON_ROOT_DIR=$INST/python-$PYTHON_VERSION_INSTALLED"
|
||||
PRINT " $_1"
|
||||
_buildargs="$_buildargs $_1"
|
||||
fi
|
||||
@@ -5213,6 +5435,12 @@ print_info() {
|
||||
_buildargs="$_buildargs $_1 $_2"
|
||||
fi
|
||||
|
||||
if [ -d $INST/tbb ]; then
|
||||
_1="-D TBB_ROOT_DIR=$INST/tbb"
|
||||
PRINT " $_1"
|
||||
_buildargs="$_buildargs $_1"
|
||||
fi
|
||||
|
||||
if [ "$OCIO_SKIP" = false ]; then
|
||||
_1="-D WITH_OPENCOLORIO=ON"
|
||||
PRINT " $_1"
|
||||
@@ -5351,6 +5579,11 @@ print_info() {
|
||||
_1="-D WITH_USD=ON"
|
||||
PRINT " $_1"
|
||||
_buildargs="$_buildargs $_1"
|
||||
if [ -d $INST/usd ]; then
|
||||
_1="-D USD_ROOT_DIR=$INST/usd"
|
||||
PRINT " $_1"
|
||||
_buildargs="$_buildargs $_1"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$NO_SYSTEM_GLEW" = true ]; then
|
||||
|
@@ -109,6 +109,9 @@ if (WIN32)
|
||||
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/src/tbbmalloc/${ARCH_PREFIX}-tbbmalloc-export.def
|
||||
COMMENT "Preprocessing tbbmalloc.def"
|
||||
)
|
||||
list(APPEND tbb_src ${CMAKE_CURRENT_SOURCE_DIR}/src/tbb/tbb_resource.rc)
|
||||
list(APPEND tbbmalloc_src ${CMAKE_CURRENT_SOURCE_DIR}/src/tbbmalloc/tbbmalloc.rc)
|
||||
list(APPEND tbbmalloc_proxy_src ${CMAKE_CURRENT_SOURCE_DIR}/src/tbbmalloc/tbbmalloc.rc)
|
||||
else()
|
||||
add_custom_command(OUTPUT tbb.def
|
||||
COMMAND ${CMAKE_CXX_COMPILER} -xc++ -E ${CMAKE_CURRENT_SOURCE_DIR}/src/tbb/${ARCH_PREFIX}-tbb-export.def -I ${CMAKE_CURRENT_SOURCE_DIR}/include -o tbb.def
|
||||
@@ -145,8 +148,12 @@ if (TBB_BUILD_SHARED)
|
||||
set_property(TARGET tbb APPEND PROPERTY LINK_FLAGS "-Wl,-version-script,${CMAKE_CURRENT_BINARY_DIR}/tbb.def")
|
||||
elseif(WIN32)
|
||||
set_property(TARGET tbb APPEND PROPERTY LINK_FLAGS "/DEF:${CMAKE_CURRENT_BINARY_DIR}/tbb.def")
|
||||
|
||||
endif()
|
||||
install(TARGETS tbb DESTINATION lib)
|
||||
if(WIN32)
|
||||
set_target_properties(tbb PROPERTIES OUTPUT_NAME "tbb$<$<CONFIG:Debug>:_debug>")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
@@ -196,7 +203,7 @@ if(TBB_BUILD_TBBMALLOC_PROXY)
|
||||
add_library(tbbmalloc_proxy SHARED ${tbbmalloc_proxy_src})
|
||||
set_property(TARGET tbbmalloc_proxy APPEND PROPERTY COMPILE_DEFINITIONS "__TBBMALLOC_BUILD=1")
|
||||
set_property(TARGET tbbmalloc_proxy APPEND_STRING PROPERTY COMPILE_FLAGS ${DISABLE_RTTI})
|
||||
link_libraries(tbbmalloc_proxy tbbmalloc)
|
||||
target_link_libraries(tbbmalloc_proxy tbbmalloc)
|
||||
install(TARGETS tbbmalloc_proxy DESTINATION lib)
|
||||
endif()
|
||||
endif()
|
||||
|
@@ -1,13 +0,0 @@
|
||||
diff -Naur external_openal_original/CMakeLists.txt external_openal/CMakeLists.txt
|
||||
--- external_openal_original/CMakeLists.txt 2016-01-24 20:12:39 -0700
|
||||
+++ external_openal/CMakeLists.txt 2018-06-02 12:16:52 -0600
|
||||
@@ -885,7 +885,8 @@
|
||||
OPTION(ALSOFT_REQUIRE_MMDEVAPI "Require MMDevApi backend" OFF)
|
||||
IF(HAVE_WINDOWS_H)
|
||||
# Check MMSystem backend
|
||||
- CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H -D_WIN32_WINNT=0x0502)
|
||||
+ set(CMAKE_REQUIRED_FLAGS "-D_WIN32_WINNT=0x0502")
|
||||
+ CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H)
|
||||
IF(HAVE_MMSYSTEM_H)
|
||||
CHECK_SHARED_FUNCTION_EXISTS(waveOutOpen "windows.h;mmsystem.h" winmm "" HAVE_LIBWINMM)
|
||||
IF(HAVE_LIBWINMM)
|
@@ -18,17 +18,6 @@ diff --git a/mkl-dnn/cmake/TBB.cmake b/mkl-dnn/cmake/TBB.cmake
|
||||
index 0711e699..c14210b6 100644
|
||||
--- a/mkl-dnn/cmake/TBB.cmake
|
||||
+++ b/mkl-dnn/cmake/TBB.cmake
|
||||
@@ -90,8 +90,8 @@ if(WIN32)
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
set(TBB_LIB_DIR ${TBB_ROOT}/lib/${TBB_ARCH}/${TBB_VCVER})
|
||||
- find_library(TBB_LIBRARY tbb PATHS ${TBB_LIB_DIR} ${TBB_ROOT}/lib NO_DEFAULT_PATH)
|
||||
- find_library(TBB_LIBRARY_MALLOC tbbmalloc PATHS ${TBB_LIB_DIR} ${TBB_ROOT}/lib NO_DEFAULT_PATH)
|
||||
+ find_library(TBB_LIBRARY tbb_static PATHS ${TBB_LIB_DIR} ${TBB_ROOT}/lib NO_DEFAULT_PATH)
|
||||
+ find_library(TBB_LIBRARY_MALLOC tbbmalloc_static PATHS ${TBB_LIB_DIR} ${TBB_ROOT}/lib NO_DEFAULT_PATH)
|
||||
endif()
|
||||
|
||||
else()
|
||||
@@ -138,13 +138,13 @@ else()
|
||||
set(TBB_LIBRARY_MALLOC TBB_LIBRARY_MALLOC-NOTFOUND)
|
||||
if(APPLE)
|
||||
|
36
build_files/build_environment/patches/openimageio.diff
Normal file
36
build_files/build_environment/patches/openimageio.diff
Normal file
@@ -0,0 +1,36 @@
|
||||
diff -Naur orig/CMakeLists.txt external_openimageio/CMakeLists.txt
|
||||
--- orig/CMakeLists.txt 2020-05-10 21:43:52 -0600
|
||||
+++ external_openimageio/CMakeLists.txt 2020-05-13 17:03:35 -0600
|
||||
@@ -170,7 +170,7 @@
|
||||
add_subdirectory (src/iinfo)
|
||||
add_subdirectory (src/maketx)
|
||||
add_subdirectory (src/oiiotool)
|
||||
- add_subdirectory (src/testtex)
|
||||
+ #add_subdirectory (src/testtex)
|
||||
add_subdirectory (src/iv)
|
||||
endif ()
|
||||
|
||||
diff -Naur orig/src/cmake/compiler.cmake external_openimageio/src/cmake/compiler.cmake
|
||||
--- orig/src/cmake/compiler.cmake 2020-05-10 21:43:52 -0600
|
||||
+++ external_openimageio/src/cmake/compiler.cmake 2020-05-13 17:02:54 -0600
|
||||
@@ -172,6 +172,7 @@
|
||||
add_definitions (-D_CRT_NONSTDC_NO_WARNINGS)
|
||||
add_definitions (-D_SCL_SECURE_NO_WARNINGS)
|
||||
add_definitions (-DJAS_WIN_MSVC_BUILD)
|
||||
+ add_definitions (-DOPJ_STATIC)
|
||||
endif (MSVC)
|
||||
|
||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD"
|
||||
diff -Naur orig/src/include/OpenImageIO/platform.h external_openimageio/src/include/OpenImageIO/platform.h
|
||||
--- orig/src/include/OpenImageIO/platform.h 2020-05-10 21:43:52 -0600
|
||||
+++ external_openimageio/src/include/OpenImageIO/platform.h 2020-05-13 17:04:36 -0600
|
||||
@@ -41,6 +41,9 @@
|
||||
# ifndef NOMINMAX
|
||||
# define NOMINMAX
|
||||
# endif
|
||||
+# ifndef NOGDI
|
||||
+# define NOGDI
|
||||
+# endif
|
||||
# include <windows.h>
|
||||
#endif
|
||||
|
@@ -1,26 +0,0 @@
|
||||
Index: OpenImageIO/osdep.h
|
||||
===================================================================
|
||||
--- OpenImageIO/osdep.h (revision 61595)
|
||||
+++ OpenImageIO/osdep.h (working copy)
|
||||
@@ -34,6 +34,7 @@
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# define VC_EXTRALEAN
|
||||
# define NOMINMAX
|
||||
+# define NOGDI
|
||||
# include <windows.h>
|
||||
#endif
|
||||
|
||||
Index: OpenImageIO/platform.h
|
||||
===================================================================
|
||||
--- OpenImageIO/platform.h (revision 61595)
|
||||
+++ OpenImageIO/platform.h (working copy)
|
||||
@@ -77,6 +77,9 @@
|
||||
# ifndef NOMINMAX
|
||||
# define NOMINMAX
|
||||
# endif
|
||||
+# ifndef NOGDI
|
||||
+# define NOGDI
|
||||
+# endif
|
||||
# include <windows.h>
|
||||
#endif
|
||||
|
@@ -1,22 +0,0 @@
|
||||
diff -Naur external_openimageio.orig/src/cmake/compiler.cmake external_openimageio/src/cmake/compiler.cmake
|
||||
--- external_openimageio.orig/src/cmake/compiler.cmake 2018-07-31 23:45:19 -0600
|
||||
+++ external_openimageio/src/cmake/compiler.cmake 2018-08-16 12:50:12 -0600
|
||||
@@ -152,6 +152,7 @@
|
||||
add_definitions (-D_CRT_NONSTDC_NO_WARNINGS)
|
||||
add_definitions (-D_SCL_SECURE_NO_WARNINGS)
|
||||
add_definitions (-DJAS_WIN_MSVC_BUILD)
|
||||
+ add_definitions (-DOPJ_STATIC)
|
||||
endif (MSVC)
|
||||
|
||||
# Use ccache if found
|
||||
--- external_openimageio.orig/CMakeLists.txt 2018-07-31 23:45:19 -0600
|
||||
+++ external_openimageio/CMakeLists.txt 2018-08-17 15:22:56 -0600
|
||||
@@ -169,7 +169,7 @@
|
||||
add_subdirectory (src/iinfo)
|
||||
add_subdirectory (src/maketx)
|
||||
add_subdirectory (src/oiiotool)
|
||||
- add_subdirectory (src/testtex)
|
||||
+# add_subdirectory (src/testtex)
|
||||
add_subdirectory (src/iv)
|
||||
endif ()
|
||||
|
@@ -48,3 +48,22 @@ diff -Naur OpenShadingLanguage-Release-1.9.9/src/liboslexec/llvm_util.cpp extern
|
||||
|
||||
size_t
|
||||
LLVM_Util::total_jit_memory_held ()
|
||||
diff -Naur OpenShadingLanguage-Release-1.9.9/CMakeLists.txt external_osl/CMakeLists.txt
|
||||
--- orig/CMakeLists.txt 2020-01-27 16:22:31 -0700
|
||||
+++ external_osl/CMakeLists.txt 2020-05-13 18:04:52 -0600
|
||||
@@ -102,10 +102,11 @@
|
||||
set (OPTIX_EXTRA_LIBS CACHE STRING "Extra lib targets needed for OptiX")
|
||||
set (CUDA_TARGET_ARCH "sm_35" CACHE STRING "CUDA GPU architecture (e.g. sm_35)")
|
||||
|
||||
-# set (USE_OIIO_STATIC ON CACHE BOOL "If OIIO is built static")
|
||||
-# if (USE_OIIO_STATIC)
|
||||
-# add_definitions ("-DOIIO_STATIC_BUILD=1")
|
||||
-# endif ()
|
||||
+set (USE_OIIO_STATIC ON CACHE BOOL "If OIIO is built static")
|
||||
+if (USE_OIIO_STATIC)
|
||||
+ add_definitions ("-DOIIO_STATIC_BUILD=1")
|
||||
+ add_definitions ("-DOIIO_STATIC_DEFINE=1")
|
||||
+endif ()
|
||||
|
||||
set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem")
|
||||
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
|
@@ -1,13 +1,12 @@
|
||||
--- pthread.h.orig 2012-05-26 22:16:45 -0600
|
||||
+++ pthread.h 2016-04-01 09:20:36 -0600
|
||||
@@ -109,6 +109,10 @@
|
||||
/* Include everything */
|
||||
#endif
|
||||
diff -Naur orig/Makefile external_pthreads/Makefile
|
||||
--- orig/Makefile 2018-08-08 04:47:40 -0600
|
||||
+++ external_pthreads/Makefile 2020-05-09 11:20:28 -0600
|
||||
@@ -185,7 +185,7 @@
|
||||
@ $(MAKE) /E /nologo XCFLAGS="/MTd" EHFLAGS="$(VSEFLAGSD) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_SEH pthreadVSE$(PTW32_VER_DEBUG).inlined_static_stamp
|
||||
|
||||
+#if _MSC_VER >= 1900
|
||||
+# define HAVE_STRUCT_TIMESPEC 1
|
||||
+#endif
|
||||
+
|
||||
#if defined(_UWIN)
|
||||
# define HAVE_STRUCT_TIMESPEC 1
|
||||
# define HAVE_SIGNAL_H 1
|
||||
VC-static:
|
||||
- @ $(MAKE) /E /nologo XCFLAGS="/MT" EHFLAGS="$(VCFLAGS) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER).inlined_static_stamp
|
||||
+ @ $(MAKE) /E /nologo XCFLAGS="/MD" EHFLAGS="$(VCFLAGS) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER).inlined_static_stamp
|
||||
|
||||
VC-static-debug:
|
||||
@ $(MAKE) /E /nologo XCFLAGS="/MTd" EHFLAGS="$(VCFLAGSD) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER_DEBUG).inlined_static_stamp
|
||||
|
@@ -1,22 +0,0 @@
|
||||
--- x264-snapshot-20180811-2245-stable\configure 2018-08-11 14:45:05 -0600
|
||||
+++ external_x264\configure 2018-08-11 23:51:35 -0600
|
||||
@@ -396,7 +396,7 @@
|
||||
# list of all preprocessor HAVE values we can define
|
||||
CONFIG_HAVE="MALLOC_H ALTIVEC ALTIVEC_H MMX ARMV6 ARMV6T2 NEON BEOSTHREAD POSIXTHREAD WIN32THREAD THREAD LOG2F SWSCALE \
|
||||
LAVF FFMS GPAC AVS GPL VECTOREXT INTERLACED CPU_COUNT OPENCL THP LSMASH X86_INLINE_ASM AS_FUNC INTEL_DISPATCHER \
|
||||
- MSA MMAP WINRT VSX ARM_INLINE_ASM STRTOK_R BITDEPTH8 BITDEPTH10"
|
||||
+ MSA MMAP WINRT VSX ARM_INLINE_ASM BITDEPTH8 BITDEPTH10"
|
||||
|
||||
# parse options
|
||||
|
||||
@@ -1071,10 +1071,6 @@
|
||||
define HAVE_LOG2F
|
||||
fi
|
||||
|
||||
-if cc_check 'string.h' '' 'strtok_r(0, 0, 0);' ; then
|
||||
- define HAVE_STRTOK_R
|
||||
-fi
|
||||
-
|
||||
if [ "$SYS" != "WINDOWS" ] && cpp_check "sys/mman.h unistd.h" "" "defined(MAP_PRIVATE)"; then
|
||||
define HAVE_MMAP
|
||||
fi
|
@@ -78,23 +78,22 @@ class VersionInfo:
|
||||
blender_h = os.path.join(builder.blender_dir, "source", "blender", "blenkernel", "BKE_blender_version.h")
|
||||
|
||||
version_number = int(self._parse_header_file(blender_h, 'BLENDER_VERSION'))
|
||||
self.version = "%d.%d" % (version_number // 100, version_number % 100)
|
||||
self.version_char = self._parse_header_file(blender_h, 'BLENDER_VERSION_CHAR')
|
||||
version_number_patch = int(self._parse_header_file(blender_h, 'BLENDER_VERSION_PATCH'))
|
||||
version_numbers = (version_number // 100, version_number % 100, version_number_patch)
|
||||
self.short_version = "%d.%02d" % (version_numbers[0], version_numbers[1])
|
||||
self.version = "%d.%02d.%d" % version_numbers
|
||||
self.version_cycle = self._parse_header_file(blender_h, 'BLENDER_VERSION_CYCLE')
|
||||
self.version_cycle_number = self._parse_header_file(blender_h, 'BLENDER_VERSION_CYCLE_NUMBER')
|
||||
self.hash = self._parse_header_file(buildinfo_h, 'BUILD_HASH')[1:-1]
|
||||
|
||||
if self.version_cycle == "release":
|
||||
# Final release
|
||||
self.full_version = self.version + self.version_char
|
||||
self.full_version = self.version
|
||||
self.is_development_build = False
|
||||
elif self.version_cycle == "rc":
|
||||
# Release candidate
|
||||
version_cycle = self.version_cycle + self.version_cycle_number
|
||||
if len(self.version_char) == 0:
|
||||
self.full_version = self.version + version_cycle
|
||||
else:
|
||||
self.full_version = self.version + self.version_char + '-' + version_cycle
|
||||
self.is_development_build = False
|
||||
else:
|
||||
# Development build
|
||||
|
@@ -7,9 +7,6 @@ message(STATUS "Building in CentOS 7 64bit environment")
|
||||
set(LIBDIR_NAME "linux_centos7_x86_64")
|
||||
set(WITH_CXX11_ABI OFF CACHE BOOL "" FORCE)
|
||||
|
||||
# Default to only build Blender
|
||||
set(WITH_BLENDER ON CACHE BOOL "" FORCE)
|
||||
|
||||
# ######## Linux-specific build options ########
|
||||
# Options which are specific to Linux-only platforms
|
||||
|
||||
@@ -20,12 +17,6 @@ set(WITH_DOC_MANPAGE OFF CACHE BOOL "" FORCE)
|
||||
|
||||
set(WITH_JACK_DYNLOAD ON CACHE BOOL "" FORCE)
|
||||
set(WITH_SDL_DYNLOAD ON CACHE BOOL "" FORCE)
|
||||
set(WITH_SYSTEM_GLEW OFF CACHE BOOL "" FORCE)
|
||||
|
||||
set(WITH_OPENMP_STATIC ON CACHE BOOL "" FORCE)
|
||||
|
||||
set(WITH_PYTHON_INSTALL_NUMPY ON CACHE BOOL "" FORCE)
|
||||
set(WITH_PYTHON_INSTALL_REQUESTS ON CACHE BOOL "" FORCE)
|
||||
|
||||
# ######## Release environment specific settings ########
|
||||
|
||||
@@ -33,13 +24,5 @@ set(LIBDIR "${CMAKE_CURRENT_LIST_DIR}/../../../../lib/${LIBDIR_NAME}" CACHE STRI
|
||||
|
||||
# Platform specific configuration, to ensure static linking against everything.
|
||||
|
||||
set(Boost_USE_STATIC_LIBS ON CACHE BOOL "" FORCE)
|
||||
|
||||
# We need to link OpenCOLLADA against PCRE library. Even though it is not installed
|
||||
# on /usr, we do not really care -- all we care is PCRE_FOUND be TRUE and its
|
||||
# library pointing to a valid one.
|
||||
set(PCRE_INCLUDE_DIR "/usr/include" CACHE STRING "" FORCE)
|
||||
set(PCRE_LIBRARY "${LIBDIR}/opencollada/lib/libpcre.a" CACHE STRING "" FORCE)
|
||||
|
||||
# Additional linking libraries
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-lrt -static-libstdc++ -no-pie" CACHE STRING "" FORCE)
|
||||
|
@@ -167,7 +167,7 @@ def pack_linux(builder):
|
||||
buildbot_utils.call(builder.command_prefix + ['strip', '--strip-all', blender_executable])
|
||||
|
||||
print("Stripping python...")
|
||||
py_target = os.path.join(builder.install_dir, info.version)
|
||||
py_target = os.path.join(builder.install_dir, info.short_version)
|
||||
buildbot_utils.call(builder.command_prefix + ['find', py_target, '-iname', '*.so', '-exec', 'strip', '-s', '{}', ';'])
|
||||
|
||||
# Construct package name
|
||||
|
@@ -49,7 +49,6 @@ if(NOT LLVM_ROOT_DIR)
|
||||
OUTPUT_VARIABLE LLVM_ROOT_DIR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(LLVM_ROOT_DIR ${LLVM_ROOT_DIR} CACHE PATH "Path to the LLVM installation")
|
||||
set(LLVM_INCLUDE_DIRS ${LLVM_ROOT_DIR}/include CACHE PATH "Path to the LLVM include directory")
|
||||
endif()
|
||||
if(NOT LLVM_LIBPATH)
|
||||
execute_process(COMMAND ${LLVM_CONFIG} --libdir
|
||||
|
@@ -104,6 +104,7 @@ FOREACH(COMPONENT ${_openexr_FIND_COMPONENTS})
|
||||
FIND_LIBRARY(OPENEXR_${UPPERCOMPONENT}_LIBRARY
|
||||
NAMES
|
||||
${COMPONENT}-${_openexr_libs_ver} ${COMPONENT}
|
||||
NAMES_PER_DIR
|
||||
HINTS
|
||||
${_openexr_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
|
@@ -95,7 +95,7 @@ FIND_LIBRARY(OPENIMAGEDENOISE_LIBRARY
|
||||
# handle the QUIETLY and REQUIRED arguments and set OPENIMAGEDENOISE_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENIMAGEDENOISE DEFAULT_MSG
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenImageDenoise DEFAULT_MSG
|
||||
OPENIMAGEDENOISE_LIBRARY OPENIMAGEDENOISE_INCLUDE_DIR)
|
||||
|
||||
IF(OPENIMAGEDENOISE_FOUND)
|
||||
|
@@ -43,6 +43,7 @@ FIND_PATH(USD_INCLUDE_DIR
|
||||
FIND_LIBRARY(USD_LIBRARY
|
||||
NAMES
|
||||
usd_m usd_ms
|
||||
NAMES_PER_DIR
|
||||
HINTS
|
||||
${_usd_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
|
@@ -66,6 +66,9 @@ macro(BLENDER_SRC_GTEST_EX)
|
||||
if(UNIX AND NOT APPLE)
|
||||
target_link_libraries(${TARGET_NAME} bf_intern_libc_compat)
|
||||
endif()
|
||||
if(WITH_TBB)
|
||||
target_link_libraries(${TARGET_NAME} ${TBB_LIBRARIES})
|
||||
endif()
|
||||
|
||||
get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
if(GENERATOR_IS_MULTI_CONFIG)
|
||||
|
@@ -52,6 +52,7 @@ set(WITH_OPENVDB OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_QUADRIFLOW OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_SDL OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_TBB OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_USD OFF CACHE BOOL "" FORCE)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(WITH_GHOST_XDND OFF CACHE BOOL "" FORCE)
|
||||
|
@@ -440,6 +440,14 @@ function(SETUP_LIBDIRS)
|
||||
link_directories(${HDF5_LIBPATH})
|
||||
endif()
|
||||
|
||||
if(WITH_GHOST_WAYLAND)
|
||||
link_directories(
|
||||
${wayland-client_LIBRARY_DIRS}
|
||||
${wayland-egl_LIBRARY_DIRS}
|
||||
${xkbcommon_LIBRARY_DIRS}
|
||||
${wayland-cursor_LIBRARY_DIRS})
|
||||
endif()
|
||||
|
||||
if(WIN32 AND NOT UNIX)
|
||||
link_directories(${PTHREADS_LIBPATH})
|
||||
endif()
|
||||
@@ -748,8 +756,7 @@ function(get_blender_version)
|
||||
# - BLENDER_VERSION (major.minor)
|
||||
# - BLENDER_VERSION_MAJOR
|
||||
# - BLENDER_VERSION_MINOR
|
||||
# - BLENDER_SUBVERSION (used for internal versioning mainly)
|
||||
# - BLENDER_VERSION_CHAR (a, b, c, ...or empty string)
|
||||
# - BLENDER_VERSION_PATCH
|
||||
# - BLENDER_VERSION_CYCLE (alpha, beta, rc, release)
|
||||
|
||||
# So cmake depends on BKE_blender.h, beware of inf-loops!
|
||||
@@ -759,25 +766,15 @@ function(get_blender_version)
|
||||
file(STRINGS ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h _contents REGEX "^#define[ \t]+BLENDER_.*$")
|
||||
|
||||
string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION[ \t]+([0-9]+).*" "\\1" _out_version "${_contents}")
|
||||
string(REGEX REPLACE ".*#define[ \t]+BLENDER_SUBVERSION[ \t]+([0-9]+).*" "\\1" _out_subversion "${_contents}")
|
||||
string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CHAR[ \t]+([a-z]+).*" "\\1" _out_version_char "${_contents}")
|
||||
string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_PATCH[ \t]+([0-9]+).*" "\\1" _out_version_patch "${_contents}")
|
||||
string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CYCLE[ \t]+([a-z]+).*" "\\1" _out_version_cycle "${_contents}")
|
||||
|
||||
if(NOT ${_out_version} MATCHES "[0-9]+")
|
||||
message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION")
|
||||
endif()
|
||||
|
||||
if(NOT ${_out_subversion} MATCHES "[0-9]+")
|
||||
message(FATAL_ERROR "Version parsing failed for BLENDER_SUBVERSION")
|
||||
endif()
|
||||
|
||||
# clumsy regex, only single char are ok but it could be unset
|
||||
|
||||
string(LENGTH "${_out_version_char}" _out_version_char_len)
|
||||
if(NOT _out_version_char_len EQUAL 1)
|
||||
set(_out_version_char "")
|
||||
elseif(NOT ${_out_version_char} MATCHES "[a-z]+")
|
||||
message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_CHAR")
|
||||
if(NOT ${_out_version_patch} MATCHES "[0-9]+")
|
||||
message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_PATCH")
|
||||
endif()
|
||||
|
||||
if(NOT ${_out_version_cycle} MATCHES "[a-z]+")
|
||||
@@ -787,23 +784,11 @@ function(get_blender_version)
|
||||
math(EXPR _out_version_major "${_out_version} / 100")
|
||||
math(EXPR _out_version_minor "${_out_version} % 100")
|
||||
|
||||
# for packaging, alpha to numbers
|
||||
string(COMPARE EQUAL "${_out_version_char}" "" _out_version_char_empty)
|
||||
if(${_out_version_char_empty})
|
||||
set(_out_version_char_index "0")
|
||||
else()
|
||||
set(_char_ls a b c d e f g h i j k l m n o p q r s t u v w x y z)
|
||||
list(FIND _char_ls ${_out_version_char} _out_version_char_index)
|
||||
math(EXPR _out_version_char_index "${_out_version_char_index} + 1")
|
||||
endif()
|
||||
|
||||
# output vars
|
||||
set(BLENDER_VERSION "${_out_version_major}.${_out_version_minor}" PARENT_SCOPE)
|
||||
set(BLENDER_VERSION_MAJOR "${_out_version_major}" PARENT_SCOPE)
|
||||
set(BLENDER_VERSION_MINOR "${_out_version_minor}" PARENT_SCOPE)
|
||||
set(BLENDER_SUBVERSION "${_out_subversion}" PARENT_SCOPE)
|
||||
set(BLENDER_VERSION_CHAR "${_out_version_char}" PARENT_SCOPE)
|
||||
set(BLENDER_VERSION_CHAR_INDEX "${_out_version_char_index}" PARENT_SCOPE)
|
||||
set(BLENDER_VERSION_PATCH "${_out_version_patch}" PARENT_SCOPE)
|
||||
set(BLENDER_VERSION_CYCLE "${_out_version_cycle}" PARENT_SCOPE)
|
||||
|
||||
endfunction()
|
||||
|
@@ -7,7 +7,7 @@ set(PROJECT_VENDOR "Blender Foundation")
|
||||
|
||||
set(MAJOR_VERSION ${BLENDER_VERSION_MAJOR})
|
||||
set(MINOR_VERSION ${BLENDER_VERSION_MINOR})
|
||||
set(PATCH_VERSION ${BLENDER_VERSION_CHAR_INDEX})
|
||||
set(PATCH_VERSION ${BLENDER_VERSION_PATCH})
|
||||
|
||||
set(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
|
||||
set(CPACK_PACKAGE_DESCRIPTION ${PROJECT_DESCRIPTION})
|
||||
|
@@ -222,12 +222,10 @@ if(WITH_OPENCOLLADA)
|
||||
-lMathMLSolver
|
||||
-lGeneratedSaxParser
|
||||
-lbuffer -lftoa -lUTF
|
||||
${OPENCOLLADA_LIBPATH}/libxml2.a
|
||||
)
|
||||
# PCRE is bundled with openCollada
|
||||
# set(PCRE ${LIBDIR}/pcre)
|
||||
# set(PCRE_LIBPATH ${PCRE}/lib)
|
||||
# PCRE and XML2 are bundled with OpenCollada.
|
||||
set(PCRE_LIBRARIES pcre)
|
||||
set(XML2_LIBRARIES xml2)
|
||||
endif()
|
||||
|
||||
if(WITH_SDL)
|
||||
@@ -449,7 +447,9 @@ if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
|
||||
# Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
|
||||
endif()
|
||||
# Get rid of eventually clashes, we export some symbols explicitly as local
|
||||
|
||||
# Avoid conflicts with Luxrender, and other plug-ins that may use the same
|
||||
# libraries as Blender with a different version or build options.
|
||||
set(PLATFORM_LINKFLAGS
|
||||
"${PLATFORM_LINKFLAGS} -Xlinker -unexported_symbols_list -Xlinker '${CMAKE_SOURCE_DIR}/source/creator/osx_locals.map'"
|
||||
)
|
||||
|
@@ -20,10 +20,6 @@
|
||||
|
||||
# Xcode and system configuration for Apple.
|
||||
|
||||
# require newer cmake on osx because of version handling,
|
||||
# older cmake cannot handle 2 digit subversion!
|
||||
cmake_minimum_required(VERSION 3.0.0)
|
||||
|
||||
if(NOT CMAKE_OSX_ARCHITECTURES)
|
||||
set(CMAKE_OSX_ARCHITECTURES x86_64 CACHE STRING
|
||||
"Choose the architecture you want to build Blender for: i386, x86_64 or ppc"
|
||||
@@ -45,53 +41,97 @@ execute_process(
|
||||
OUTPUT_VARIABLE XCODE_CHECK OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
string(REPLACE "/Contents/Developer" "" XCODE_BUNDLE ${XCODE_CHECK}) # truncate to bundlepath in any case
|
||||
|
||||
if(${CMAKE_GENERATOR} MATCHES "Xcode")
|
||||
if(NOT ${CMAKE_GENERATOR} MATCHES "Xcode")
|
||||
# Unix makefile generator does not fill XCODE_VERSION var, so we get it with a command.
|
||||
# Note that `xcodebuild -version` gives output in two lines: first line will include
|
||||
# Xcode version, second one will include build number. We are only interested in the
|
||||
# former one. Here is an example of the output:
|
||||
# Xcode 11.4
|
||||
# Build version 11E146
|
||||
# The expected XCODE_VERSION in this case is 11.4.
|
||||
|
||||
# earlier xcode has no bundled developer dir, no sense in getting xcode path from
|
||||
if(${XCODE_VERSION} VERSION_GREATER 4.2)
|
||||
# reduce to XCode name without dp extension
|
||||
string(SUBSTRING "${XCODE_CHECK}" 14 6 DP_NAME)
|
||||
if(${DP_NAME} MATCHES Xcode5)
|
||||
set(XCODE_VERSION 5)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
##### cmake incompatibility with xcode 4.3 and higher #####
|
||||
if(${XCODE_VERSION} MATCHES '') # cmake fails due looking for xcode in the wrong path, thus will be empty var
|
||||
message(FATAL_ERROR "Xcode 4.3 and higher must be used with cmake 2.8-8 or higher")
|
||||
endif()
|
||||
### end cmake incompatibility with xcode 4.3 and higher ###
|
||||
|
||||
if(${XCODE_VERSION} VERSION_EQUAL 4 OR ${XCODE_VERSION} VERSION_GREATER 4 AND ${XCODE_VERSION} VERSION_LESS 4.3)
|
||||
# Xcode 4 defaults to the Apple LLVM Compiler.
|
||||
# Override the default compiler selection because Blender only compiles with gcc up to xcode 4.2
|
||||
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
|
||||
message(STATUS "Setting compiler to: " ${CMAKE_XCODE_ATTRIBUTE_GCC_VERSION})
|
||||
endif()
|
||||
else() # unix makefile generator does not fill XCODE_VERSION var, so we get it with a command
|
||||
execute_process(COMMAND xcodebuild -version OUTPUT_VARIABLE XCODE_VERS_BUILD_NR)
|
||||
string(SUBSTRING "${XCODE_VERS_BUILD_NR}" 6 3 XCODE_VERSION) # truncate away build-nr
|
||||
|
||||
# Convert output to a single line by replacling newlines with spaces.
|
||||
# This is needed because regex replace can not operate through the newline character
|
||||
# and applies substitutions for each individual lines.
|
||||
string(REPLACE "\n" " " XCODE_VERS_BUILD_NR_SINGLE_LINE "${XCODE_VERS_BUILD_NR}")
|
||||
|
||||
string(REGEX REPLACE "(.*)Xcode ([0-9\\.]+).*" "\\2" XCODE_VERSION "${XCODE_VERS_BUILD_NR_SINGLE_LINE}")
|
||||
|
||||
unset(XCODE_VERS_BUILD_NR)
|
||||
unset(XCODE_VERS_BUILD_NR_SINGLE_LINE)
|
||||
endif()
|
||||
|
||||
message(STATUS "Detected OS X ${OSX_SYSTEM} and Xcode ${XCODE_VERSION} at ${XCODE_BUNDLE}")
|
||||
|
||||
if(${XCODE_VERSION} VERSION_LESS 4.3)
|
||||
# use guaranteed existing sdk
|
||||
set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk CACHE PATH "" FORCE)
|
||||
else()
|
||||
# Older Xcode versions had different approach to the directory hiearchy.
|
||||
# Require newer Xcode which is also have better chances of being able to compile with the
|
||||
# required deployment target.
|
||||
#
|
||||
# NOTE: Xcode version 8.2 is the latest one which runs on macOS 10.11.
|
||||
if(${XCODE_VERSION} VERSION_LESS 8.2)
|
||||
message(FATAL_ERROR "Only Xcode version 8.2 and newer is supported")
|
||||
endif()
|
||||
|
||||
# note: xcode-select path could be ambiguous,
|
||||
# cause /Applications/Xcode.app/Contents/Developer or /Applications/Xcode.app would be allowed
|
||||
# so i use a selfcomposed bundlepath here
|
||||
set(OSX_SYSROOT_PREFIX ${XCODE_BUNDLE}/Contents/Developer/Platforms/MacOSX.platform)
|
||||
message(STATUS "OSX_SYSROOT_PREFIX: " ${OSX_SYSROOT_PREFIX})
|
||||
set(OSX_DEVELOPER_PREFIX /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk) # use guaranteed existing sdk
|
||||
set(CMAKE_OSX_SYSROOT ${OSX_SYSROOT_PREFIX}/${OSX_DEVELOPER_PREFIX} CACHE PATH "" FORCE)
|
||||
|
||||
# Collect list of OSX system versions which will be used to detect path to corresponding SDK.
|
||||
# Start with macOS SDK version reported by xcodebuild and include possible extra ones.
|
||||
#
|
||||
# The reason for need of extra ones is because it's possible that xcodebuild will report
|
||||
# SDK version in the full manner (aka major.minor.patch), but the actual path will only
|
||||
# include major.minor.
|
||||
#
|
||||
# This happens, for example, on macOS Catalina 10.15.4 and Xcode 11.4: xcodebuild on this
|
||||
# system outputs "10.15.4", but the actual SDK path is MacOSX10.15.sdk.
|
||||
#
|
||||
# This should be safe from picking wrong SDK version because (a) xcodebuild reports full semantic
|
||||
# SDK version, so such SDK does exist on the system. And if it doesn't exist with full version
|
||||
# in the path, what SDK is in the major.minor folder then.
|
||||
set(OSX_SDK_TEST_VERSIONS ${OSX_SYSTEM})
|
||||
if(OSX_SYSTEM MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)")
|
||||
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1.\\2" OSX_SYSTEM_NO_PATCH "${OSX_SYSTEM}")
|
||||
list(APPEND OSX_SDK_TEST_VERSIONS ${OSX_SYSTEM_NO_PATCH})
|
||||
unset(OSX_SYSTEM_NO_PATCH)
|
||||
endif()
|
||||
|
||||
# Loop through all possible versions and pick the first one which resolves to a valid SDK path.
|
||||
set(OSX_SDK_PATH)
|
||||
set(OSX_SDK_FOUND FALSE)
|
||||
set(OSX_SDK_PREFIX ${OSX_SYSROOT_PREFIX}/Developer/SDKs)
|
||||
set(OSX_SDKROOT)
|
||||
foreach(OSX_SDK_VERSION ${OSX_SDK_TEST_VERSIONS})
|
||||
set(CURRENT_OSX_SDK_PATH "${OSX_SDK_PREFIX}/MacOSX${OSX_SDK_VERSION}.sdk")
|
||||
if(EXISTS ${CURRENT_OSX_SDK_PATH})
|
||||
set(OSX_SDK_PATH "${CURRENT_OSX_SDK_PATH}")
|
||||
set(OSX_SDKROOT macosx${OSX_SDK_VERSION})
|
||||
set(OSX_SDK_FOUND TRUE)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
unset(OSX_SDK_PREFIX)
|
||||
unset(OSX_SDK_TEST_VERSIONS)
|
||||
|
||||
if(NOT OSX_SDK_FOUND)
|
||||
message(FATAL_ERROR "Unable to find SDK for macOS version ${OSX_SYSTEM}")
|
||||
endif()
|
||||
|
||||
message(STATUS "Detected OSX_SYSROOT: ${OSX_SDK_PATH}")
|
||||
|
||||
set(CMAKE_OSX_SYSROOT ${OSX_SDK_PATH} CACHE PATH "" FORCE)
|
||||
unset(OSX_SDK_PATH)
|
||||
unset(OSX_SDK_FOUND)
|
||||
|
||||
if(${CMAKE_GENERATOR} MATCHES "Xcode")
|
||||
# to silence sdk not found warning, just overrides CMAKE_OSX_SYSROOT
|
||||
set(CMAKE_XCODE_ATTRIBUTE_SDKROOT macosx${OSX_SYSTEM})
|
||||
endif()
|
||||
set(CMAKE_XCODE_ATTRIBUTE_SDKROOT ${OSX_SDKROOT})
|
||||
endif()
|
||||
unset(OSX_SDKROOT)
|
||||
|
||||
# 10.11 is our min. target, if you use higher sdk, weak linking happens
|
||||
if(CMAKE_OSX_DEPLOYMENT_TARGET)
|
||||
|
@@ -57,6 +57,7 @@ if(EXISTS ${LIBDIR})
|
||||
set(BOOST_ROOT ${LIBDIR}/boost)
|
||||
set(BOOST_LIBRARYDIR ${LIBDIR}/boost/lib)
|
||||
set(Boost_NO_SYSTEM_PATHS ON)
|
||||
set(OPENEXR_ROOT_DIR ${LIBDIR}/openexr)
|
||||
endif()
|
||||
|
||||
if(WITH_STATIC_LIBS)
|
||||
@@ -195,8 +196,14 @@ endif()
|
||||
if(WITH_OPENCOLLADA)
|
||||
find_package_wrapper(OpenCOLLADA)
|
||||
if(OPENCOLLADA_FOUND)
|
||||
find_package_wrapper(XML2)
|
||||
if(WITH_STATIC_LIBS)
|
||||
# PCRE is bundled with OpenCollada without headers, so can't use
|
||||
# find_package reliably to detect it.
|
||||
set(PCRE_LIBRARIES ${LIBDIR}/opencollada/lib/libpcre.a)
|
||||
else()
|
||||
find_package_wrapper(PCRE)
|
||||
endif()
|
||||
find_package_wrapper(XML2)
|
||||
else()
|
||||
set(WITH_OPENCOLLADA OFF)
|
||||
endif()
|
||||
@@ -405,13 +412,6 @@ if(WITH_LLVM)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_LLVM OR WITH_SDL_DYNLOAD)
|
||||
# Fix for conflict with Mesa llvmpipe
|
||||
set(PLATFORM_LINKFLAGS
|
||||
"${PLATFORM_LINKFLAGS} -Wl,--version-script='${CMAKE_SOURCE_DIR}/source/creator/blender.map'"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENSUBDIV)
|
||||
find_package_wrapper(OpenSubdiv)
|
||||
|
||||
@@ -505,7 +505,27 @@ if(WITH_SYSTEM_AUDASPACE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_X11)
|
||||
if(WITH_GHOST_WAYLAND)
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(wayland-client REQUIRED wayland-client>=1.12)
|
||||
pkg_check_modules(wayland-egl REQUIRED wayland-egl)
|
||||
pkg_check_modules(wayland-scanner REQUIRED wayland-scanner)
|
||||
pkg_check_modules(xkbcommon REQUIRED xkbcommon)
|
||||
pkg_check_modules(wayland-cursor REQUIRED wayland-cursor)
|
||||
|
||||
set(WITH_GL_EGL ON)
|
||||
|
||||
if(WITH_GHOST_WAYLAND)
|
||||
list(APPEND PLATFORM_LINKLIBS
|
||||
${wayland-client_LIBRARIES}
|
||||
${wayland-egl_LIBRARIES}
|
||||
${xkbcommon_LIBRARIES}
|
||||
${wayland-cursor_LIBRARIES}
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_GHOST_X11)
|
||||
find_package(X11 REQUIRED)
|
||||
|
||||
find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${X11_INC_SEARCH_PATH})
|
||||
@@ -576,6 +596,19 @@ if(CMAKE_COMPILER_IS_GNUCC)
|
||||
unset(LD_VERSION)
|
||||
endif()
|
||||
|
||||
if(WITH_LINKER_LLD)
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_C_COMPILER} -fuse-ld=lld -Wl,--version
|
||||
ERROR_QUIET OUTPUT_VARIABLE LD_VERSION)
|
||||
if("${LD_VERSION}" MATCHES "LLD")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=lld")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=lld")
|
||||
else()
|
||||
message(STATUS "LLD linker isn't available, using the default system linker.")
|
||||
endif()
|
||||
unset(LD_VERSION)
|
||||
endif()
|
||||
|
||||
# CLang is the same as GCC for now.
|
||||
elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
|
||||
@@ -601,3 +634,16 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
|
||||
set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
|
||||
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel")
|
||||
endif()
|
||||
|
||||
# Avoid conflicts with Mesa llvmpipe, Luxrender, and other plug-ins that may
|
||||
# use the same libraries as Blender with a different version or build options.
|
||||
set(PLATFORM_LINKFLAGS
|
||||
"${PLATFORM_LINKFLAGS} -Wl,--version-script='${CMAKE_SOURCE_DIR}/source/creator/blender.map'"
|
||||
)
|
||||
|
||||
# Don't use position independent executable for portable install since file
|
||||
# browsers can't properly detect blender as an executable then. Still enabled
|
||||
# for non-portable installs as typically used by Linux distributions.
|
||||
if(WITH_INSTALL_PORTABLE)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -no-pie")
|
||||
endif()
|
||||
|
@@ -51,6 +51,10 @@ if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
endif()
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \"${CLANG_OPENMP_LIB}\"")
|
||||
endif()
|
||||
if(WITH_WINDOWS_STRIPPED_PDB)
|
||||
message(WARNING "stripped pdb not supported with clang, disabling..")
|
||||
set(WITH_WINDOWS_STRIPPED_PDB Off)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ${WINDOWS_USE_VISUAL_STUDIO_PROJECT_FOLDERS})
|
||||
@@ -107,12 +111,13 @@ endif()
|
||||
unset(_min_ver)
|
||||
|
||||
# needed for some MSVC installations
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO")
|
||||
# 4099 : PDB 'filename' was not found with 'object/library'
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO /ignore:4099")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO /ignore:4099")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO /ignore:4099")
|
||||
|
||||
list(APPEND PLATFORM_LINKLIBS
|
||||
ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 Comctl32
|
||||
ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 Comctl32 version
|
||||
advapi32 shfolder shell32 ole32 oleaut32 uuid psapi Dbghelp Shlwapi
|
||||
)
|
||||
|
||||
@@ -134,7 +139,12 @@ add_definitions(-D_ALLOW_KEYWORD_MACROS)
|
||||
# We want to support Windows 7 level ABI
|
||||
add_definitions(-D_WIN32_WINNT=0x601)
|
||||
include(build_files/cmake/platform/platform_win32_bundle_crt.cmake)
|
||||
remove_cc_flag("/MDd" "/MD")
|
||||
remove_cc_flag("/MDd" "/MD" "/Zi")
|
||||
|
||||
if(WITH_WINDOWS_PDB)
|
||||
set(PDB_INFO_OVERRIDE_FLAGS "/Z7")
|
||||
set(PDB_INFO_OVERRIDE_LINKER_FLAGS "/DEBUG /OPT:REF /OPT:ICF /INCREMENTAL:NO")
|
||||
endif()
|
||||
|
||||
if(MSVC_CLANG) # Clangs version of cl doesn't support all flags
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARN_FLAGS} /nologo /J /Gd /EHsc -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference ")
|
||||
@@ -151,27 +161,42 @@ if(MSVC_VERSION GREATER 1911 AND NOT MSVC_CLANG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:twoPhase-")
|
||||
endif()
|
||||
|
||||
if(WITH_WINDOWS_SCCACHE AND CMAKE_VS_MSBUILD_COMMAND)
|
||||
message(WARNING "Disabling sccache, sccache is not supported with msbuild")
|
||||
set(WITH_WINDOWS_SCCACHE Off)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd /ZI")
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MDd /ZI")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")
|
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MD")
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MD")
|
||||
set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} /MD")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MD")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /MD")
|
||||
if(WITH_WINDOWS_SCCACHE)
|
||||
set(CMAKE_C_COMPILER_LAUNCHER sccache)
|
||||
set(CMAKE_CXX_COMPILER_LAUNCHER sccache)
|
||||
set(SYMBOL_FORMAT /Z7)
|
||||
else()
|
||||
unset(CMAKE_C_COMPILER_LAUNCHER)
|
||||
unset(CMAKE_CXX_COMPILER_LAUNCHER)
|
||||
set(SYMBOL_FORMAT /ZI)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd ${SYMBOL_FORMAT}")
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MDd ${SYMBOL_FORMAT}")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD ${PDB_INFO_OVERRIDE_FLAGS}")
|
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MD ${PDB_INFO_OVERRIDE_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MD ${PDB_INFO_OVERRIDE_FLAGS}")
|
||||
set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} /MD ${PDB_INFO_OVERRIDE_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MD ${SYMBOL_FORMAT}")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /MD ${SYMBOL_FORMAT}")
|
||||
unset(SYMBOL_FORMAT)
|
||||
# JMC is available on msvc 15.8 (1915) and up
|
||||
if(MSVC_VERSION GREATER 1914 AND NOT MSVC_CLANG)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /JMC")
|
||||
endif()
|
||||
|
||||
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /SUBSYSTEM:CONSOLE /STACK:2097152 /INCREMENTAL:NO ")
|
||||
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /SUBSYSTEM:CONSOLE /STACK:2097152")
|
||||
set(PLATFORM_LINKFLAGS_RELEASE "/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib")
|
||||
set(PLATFORM_LINKFLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG} /IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcmtd.lib")
|
||||
|
||||
# Ignore meaningless for us linker warnings.
|
||||
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /ignore:4049 /ignore:4217 /ignore:4221")
|
||||
set(PLATFORM_LINKFLAGS_RELEASE "${PLATFORM_LINKFLAGS} ${PDB_INFO_OVERRIDE_LINKER_FLAGS}")
|
||||
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /ignore:4221")
|
||||
|
||||
if(CMAKE_CL_64)
|
||||
@@ -209,7 +234,7 @@ endif()
|
||||
|
||||
# Mark libdir as system headers with a lower warn level, to resolve some warnings
|
||||
# that we have very little control over
|
||||
if(MSVC_VERSION GREATER_EQUAL 1914 AND NOT MSVC_CLANG)
|
||||
if(MSVC_VERSION GREATER_EQUAL 1914 AND NOT MSVC_CLANG AND NOT WITH_WINDOWS_SCCACHE)
|
||||
add_compile_options(/experimental:external /external:templates- /external:I "${LIBDIR}" /external:W0)
|
||||
endif()
|
||||
|
||||
@@ -453,7 +478,7 @@ if(WITH_OPENIMAGEIO)
|
||||
set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0")
|
||||
set(OPENCOLORIO_DEFINITIONS "-DOCIO_STATIC_BUILD")
|
||||
set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe")
|
||||
add_definitions(-DOIIO_STATIC_BUILD)
|
||||
add_definitions(-DOIIO_STATIC_DEFINE)
|
||||
add_definitions(-DOIIO_NO_SSE=1)
|
||||
endif()
|
||||
|
||||
@@ -572,7 +597,7 @@ 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_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbb.lib debug ${LIBDIR}/tbb/lib/debug/tbb_debug.lib)
|
||||
set(TBB_INCLUDE_DIR ${LIBDIR}/tbb/include)
|
||||
set(TBB_INCLUDE_DIRS ${TBB_INCLUDE_DIR})
|
||||
if(WITH_TBB_MALLOC_PROXY)
|
||||
@@ -669,7 +694,7 @@ if(WITH_USD)
|
||||
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_LIBRARY_DIR ${LIBDIR}/usd/lib/usd)
|
||||
set(USD_LIBRARY_DIR ${LIBDIR}/usd/lib)
|
||||
set(USD_LIBRARIES
|
||||
debug ${USD_DEBUG_LIB}
|
||||
optimized ${USD_RELEASE_LIB}
|
||||
|
@@ -7,15 +7,14 @@ BASE_DIR="$PWD"
|
||||
|
||||
blender_srcdir=$(dirname -- $0)/../..
|
||||
blender_version=$(grep "BLENDER_VERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}')
|
||||
blender_version_char=$(grep "BLENDER_VERSION_CHAR\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}')
|
||||
blender_version_patch=$(grep "BLENDER_VERSION_PATCH\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}')
|
||||
blender_version_cycle=$(grep "BLENDER_VERSION_CYCLE\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}')
|
||||
blender_subversion=$(grep "BLENDER_SUBVERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}')
|
||||
|
||||
VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100).$blender_version_patch
|
||||
if [ "$blender_version_cycle" = "release" ] ; then
|
||||
VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)$blender_version_char
|
||||
SUBMODULE_EXCLUDE="^\(release/scripts/addons_contrib\)$"
|
||||
else
|
||||
VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)_$blender_subversion
|
||||
VERSION=$VERSION-$blender_version_cycle
|
||||
SUBMODULE_EXCLUDE="^$" # dummy regex
|
||||
fi
|
||||
|
||||
|
@@ -6,9 +6,6 @@ if %ERRORLEVEL% EQU 0 goto DetectionComplete
|
||||
call "%~dp0\detect_msvc2019.cmd"
|
||||
if %ERRORLEVEL% EQU 0 goto DetectionComplete
|
||||
|
||||
call "%~dp0\detect_msvc2015.cmd"
|
||||
if %ERRORLEVEL% EQU 0 goto DetectionComplete
|
||||
|
||||
echo Compiler Detection failed. Use verbose switch for more information.
|
||||
exit /b 1
|
||||
|
||||
|
@@ -2,6 +2,11 @@ set BUILD_GENERATOR_POST=
|
||||
set BUILD_PLATFORM_SELECT=
|
||||
set MSBUILD_PLATFORM=x64
|
||||
|
||||
if "%BUILD_WITH_SCCACHE%"=="1" (
|
||||
echo sccache is only supported with ninja as the build system.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if "%WITH_CLANG%"=="1" (
|
||||
set CLANG_CMAKE_ARGS=-T"llvm"
|
||||
if "%WITH_ASAN%"=="1" (
|
||||
|
@@ -6,6 +6,13 @@ if %ERRORLEVEL% NEQ 0 (
|
||||
|
||||
set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -G "Ninja" %TESTS_CMAKE_ARGS% -DCMAKE_BUILD_TYPE=%BUILD_TYPE%
|
||||
|
||||
if "%BUILD_WITH_SCCACHE%"=="1" (
|
||||
set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -DWITH_WINDOWS_SCCACHE=On
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Enabling sccache
|
||||
)
|
||||
)
|
||||
|
||||
if "%WITH_CLANG%" == "1" (
|
||||
set LLVM_DIR=
|
||||
for /F "usebackq skip=2 tokens=1-2*" %%A IN (`REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\LLVM\LLVM" /ve 2^>nul`) DO set LLVM_DIR=%%C
|
||||
|
@@ -1,3 +0,0 @@
|
||||
set BUILD_VS_VER=14
|
||||
set BUILD_VS_YEAR=2015
|
||||
call "%~dp0\detect_msvc_classic.cmd"
|
@@ -1,69 +0,0 @@
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Detecting msvc %BUILD_VS_YEAR%
|
||||
)
|
||||
set KEY_NAME="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\%BUILD_VS_VER%.0\Setup\VC"
|
||||
for /F "usebackq skip=2 tokens=1-2*" %%A IN (`REG QUERY %KEY_NAME% /v ProductDir 2^>nul`) DO set MSVC_VC_DIR=%%C
|
||||
if DEFINED MSVC_VC_DIR (
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Visual Studio %BUILD_VS_YEAR% on Win64 detected at "%MSVC_VC_DIR%"
|
||||
)
|
||||
goto msvc_detect_finally
|
||||
)
|
||||
|
||||
REM Check 32 bits
|
||||
set KEY_NAME="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\%BUILD_VS_VER%.0\Setup\VC"
|
||||
for /F "usebackq skip=2 tokens=1-2*" %%A IN (`REG QUERY %KEY_NAME% /v ProductDir 2^>nul`) DO set MSVC_VC_DIR=%%C
|
||||
if DEFINED MSVC_VC_DIR (
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Visual Studio %BUILD_VS_YEAR% on Win32 detected at "%MSVC_VC_DIR%"
|
||||
)
|
||||
goto msvc_detect_finally
|
||||
)
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Visual Studio %BUILD_VS_YEAR% not found.
|
||||
)
|
||||
goto FAIL
|
||||
:msvc_detect_finally
|
||||
set VCVARS=%MSVC_VC_DIR%\vcvarsall.bat
|
||||
if not exist "%VCVARS%" (
|
||||
echo "%VCVARS%" not found.
|
||||
goto FAIL
|
||||
)
|
||||
|
||||
call "%vcvars%" %BUILD_ARCH%
|
||||
|
||||
rem try msbuild
|
||||
msbuild /version > NUL
|
||||
if errorlevel 1 (
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Visual Studio %BUILD_VS_YEAR% msbuild not found
|
||||
)
|
||||
goto FAIL
|
||||
)
|
||||
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Visual Studio %BUILD_VS_YEAR% msbuild found
|
||||
)
|
||||
|
||||
REM try the c++ compiler
|
||||
cl 2> NUL 1>&2
|
||||
if errorlevel 1 (
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler not found
|
||||
)
|
||||
goto FAIL
|
||||
)
|
||||
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler found
|
||||
)
|
||||
goto DetectionComplete
|
||||
|
||||
:FAIL
|
||||
exit /b 1
|
||||
|
||||
:DetectionComplete
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Visual Studio %BUILD_VS_YEAR% Detected successfully
|
||||
)
|
||||
exit /b 0
|
@@ -27,7 +27,13 @@ if NOT "%verbose%" == "" (
|
||||
|
||||
if "%VS_InstallDir%"=="" (
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Visual Studio is detected but the "Desktop development with C++" workload has not been instlled
|
||||
echo.
|
||||
echo Visual Studio is detected but no suitable installation was found.
|
||||
echo.
|
||||
echo Check the "Desktop development with C++" workload has been installed.
|
||||
echo.
|
||||
echo If you are attempting to use either Visual Studio Preview version or the Visual C++ Build tools, Please see 'make help' on how to opt in to those toolsets.
|
||||
echo.
|
||||
goto FAIL
|
||||
)
|
||||
)
|
||||
|
@@ -66,8 +66,6 @@ if NOT "%1" == "" (
|
||||
) else if "%1" == "2019b" (
|
||||
set BUILD_VS_YEAR=2019
|
||||
set VSWHERE_ARGS=-products Microsoft.VisualStudio.Product.BuildTools
|
||||
) else if "%1" == "2015" (
|
||||
set BUILD_VS_YEAR=2015
|
||||
) else if "%1" == "packagename" (
|
||||
set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -DCPACK_OVERRIDE_PACKAGENAME="%2"
|
||||
shift /1
|
||||
@@ -88,6 +86,8 @@ if NOT "%1" == "" (
|
||||
set BUILD_UPDATE_ARGS="--no-libraries"
|
||||
) else if "%1" == "ninja" (
|
||||
SET BUILD_WITH_NINJA=1
|
||||
) else if "%1" == "sccache" (
|
||||
SET BUILD_WITH_SCCACHE=1
|
||||
) else if "%1" == "clean" (
|
||||
set MUST_CLEAN=1
|
||||
) else if "%1" == "verbose" (
|
||||
|
@@ -30,3 +30,4 @@ set WITH_PYDEBUG=
|
||||
set PYDEBUG_CMAKE_ARGS=
|
||||
set FORMAT=
|
||||
set TEST=
|
||||
set BUILD_WITH_SCCACHE=
|
||||
|
@@ -23,15 +23,17 @@ echo - with_tests ^(enable building unit tests^)
|
||||
echo - nobuildinfo ^(disable buildinfo^)
|
||||
echo - debug ^(Build an unoptimized debuggable build^)
|
||||
echo - packagename [newname] ^(override default cpack package name^)
|
||||
echo - buildir [newdir] ^(override default build folder^)
|
||||
echo - builddir [newdir] ^(override default build folder^)
|
||||
echo - 2017 ^(build with visual studio 2017^)
|
||||
echo - 2017pre ^(build with visual studio 2017 pre-release^)
|
||||
echo - 2017b ^(build with visual studio 2017 Build Tools^)
|
||||
echo - 2019 ^(build with visual studio 2019^)
|
||||
echo - 2019pre ^(build with visual studio 2019 pre-release^)
|
||||
echo - 2019b ^(build with visual studio 2019 Build Tools^)
|
||||
|
||||
echo.
|
||||
echo Experimental options
|
||||
echo - with_opengl_tests ^(enable both the render and draw opengl test suites^)
|
||||
echo - 2015 ^(build with visual studio 2015^)
|
||||
echo - clang ^(enable building with clang^)
|
||||
echo - asan ^(enable asan when building with clang^)
|
||||
echo - ninja ^(enable building with ninja instead of msbuild^)
|
||||
|
@@ -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 = "V2.83"
|
||||
PROJECT_NUMBER = "V2.90"
|
||||
|
||||
# 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
|
||||
@@ -51,7 +51,7 @@ PROJECT_BRIEF =
|
||||
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
|
||||
# the logo to the output directory.
|
||||
|
||||
PROJECT_LOGO = ../../release/freedesktop/icons/48x48/apps/blender.png
|
||||
PROJECT_LOGO = ../../release/freedesktop/icons/scalable/apps/blender.svg
|
||||
|
||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
|
||||
# into which the generated documentation will be written. If a relative path is
|
||||
@@ -1720,7 +1720,7 @@ COMPACT_LATEX = NO
|
||||
# The default value is: a4.
|
||||
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
||||
|
||||
PAPER_TYPE = a4wide
|
||||
PAPER_TYPE = a4
|
||||
|
||||
# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
|
||||
# that should be included in the LaTeX output. The package can be specified just
|
||||
|
@@ -2,20 +2,20 @@
|
||||
Basic Sound Playback
|
||||
++++++++++++++++++++
|
||||
|
||||
This script shows how to use the classes: :class:`Device`, :class:`Factory` and
|
||||
This script shows how to use the classes: :class:`Device`, :class:`Sound` and
|
||||
:class:`Handle`.
|
||||
"""
|
||||
import aud
|
||||
|
||||
device = aud.device()
|
||||
device = aud.Device()
|
||||
# load sound file (it can be a video file with audio)
|
||||
factory = aud.Factory('music.ogg')
|
||||
sound = aud.Sound('music.ogg')
|
||||
|
||||
# play the audio, this return a handle to control play/pause
|
||||
handle = device.play(factory)
|
||||
handle = device.play(sound)
|
||||
# if the audio is not too big and will be used often you can buffer it
|
||||
factory_buffered = aud.Factory.buffer(factory)
|
||||
handle_buffered = device.play(factory_buffered)
|
||||
sound_buffered = aud.Sound.buffer(sound)
|
||||
handle_buffered = device.play(sound_buffered)
|
||||
|
||||
# stop the sounds (otherwise they play until their ends)
|
||||
handle.stop()
|
||||
|
@@ -119,4 +119,24 @@ Examples
|
||||
To try these examples, just copy them into Blenders text editor and execute them.
|
||||
To keep the examples relatively small, they just register a draw function that can't easily be removed anymore.
|
||||
Blender has to be restarted in order to delete the draw handlers.
|
||||
|
||||
3D Lines with Single Color
|
||||
--------------------------
|
||||
"""
|
||||
|
||||
import bpy
|
||||
import gpu
|
||||
from gpu_extras.batch import batch_for_shader
|
||||
|
||||
coords = [(1, 1, 1), (-2, 0, 0), (-2, -1, 3), (0, 1, 1)]
|
||||
shader = gpu.shader.from_builtin('3D_UNIFORM_COLOR')
|
||||
batch = batch_for_shader(shader, 'LINES', {"pos": coords})
|
||||
|
||||
|
||||
def draw():
|
||||
shader.bind()
|
||||
shader.uniform_float("color", (1, 1, 0, 1))
|
||||
batch.draw(shader)
|
||||
|
||||
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')
|
||||
|
@@ -1,41 +1,65 @@
|
||||
"""
|
||||
Rendering the 3D View into a Texture
|
||||
------------------------------------
|
||||
Custom Shader for dotted 3D Line
|
||||
--------------------------------
|
||||
|
||||
The scene has to have a camera for this example to work.
|
||||
You could also make this independent of a specific camera,
|
||||
but Blender does not expose good functions to create view and projection matrices yet.
|
||||
In this example the arc length (distance to the first point on the line) is calculated in every vertex.
|
||||
Between the vertex and fragment shader that value is automatically interpolated
|
||||
for all points that will be visible on the screen.
|
||||
In the fragment shader the ``sin`` of the arc length is calculated.
|
||||
Based on the result a decision is made on whether the fragment should be drawn or not.
|
||||
"""
|
||||
import bpy
|
||||
import bgl
|
||||
import gpu
|
||||
from gpu_extras.presets import draw_texture_2d
|
||||
from random import random
|
||||
from mathutils import Vector
|
||||
from gpu_extras.batch import batch_for_shader
|
||||
|
||||
WIDTH = 512
|
||||
HEIGHT = 256
|
||||
vertex_shader = '''
|
||||
uniform mat4 u_ViewProjectionMatrix;
|
||||
|
||||
offscreen = gpu.types.GPUOffScreen(WIDTH, HEIGHT)
|
||||
in vec3 position;
|
||||
in float arcLength;
|
||||
|
||||
out float v_ArcLength;
|
||||
|
||||
void main()
|
||||
{
|
||||
v_ArcLength = arcLength;
|
||||
gl_Position = u_ViewProjectionMatrix * vec4(position, 1.0f);
|
||||
}
|
||||
'''
|
||||
|
||||
fragment_shader = '''
|
||||
uniform float u_Scale;
|
||||
|
||||
in float v_ArcLength;
|
||||
|
||||
void main()
|
||||
{
|
||||
if (step(sin(v_ArcLength * u_Scale), 0.5) == 1) discard;
|
||||
gl_FragColor = vec4(1.0);
|
||||
}
|
||||
'''
|
||||
|
||||
coords = [Vector((random(), random(), random())) * 5 for _ in range(5)]
|
||||
|
||||
arc_lengths = [0]
|
||||
for a, b in zip(coords[:-1], coords[1:]):
|
||||
arc_lengths.append(arc_lengths[-1] + (a - b).length)
|
||||
|
||||
shader = gpu.types.GPUShader(vertex_shader, fragment_shader)
|
||||
batch = batch_for_shader(
|
||||
shader, 'LINE_STRIP',
|
||||
{"position": coords, "arcLength": arc_lengths},
|
||||
)
|
||||
|
||||
|
||||
def draw():
|
||||
context = bpy.context
|
||||
scene = context.scene
|
||||
|
||||
view_matrix = scene.camera.matrix_world.inverted()
|
||||
|
||||
projection_matrix = scene.camera.calc_matrix_camera(
|
||||
context.evaluated_depsgraph_get(), x=WIDTH, y=HEIGHT)
|
||||
|
||||
offscreen.draw_view3d(
|
||||
scene,
|
||||
context.view_layer,
|
||||
context.space_data,
|
||||
context.region,
|
||||
view_matrix,
|
||||
projection_matrix)
|
||||
|
||||
bgl.glDisable(bgl.GL_DEPTH_TEST)
|
||||
draw_texture_2d(offscreen.color_texture, (10, 10), WIDTH, HEIGHT)
|
||||
shader.bind()
|
||||
matrix = bpy.context.region_data.perspective_matrix
|
||||
shader.uniform_float("u_ViewProjectionMatrix", matrix)
|
||||
shader.uniform_float("u_Scale", 10)
|
||||
batch.draw(shader)
|
||||
|
||||
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')
|
||||
|
@@ -1,65 +0,0 @@
|
||||
"""
|
||||
Custom Shader for dotted 3D Line
|
||||
--------------------------------
|
||||
|
||||
In this example the arc length (distance to the first point on the line) is calculated in every vertex.
|
||||
Between the vertex and fragment shader that value is automatically interpolated
|
||||
for all points that will be visible on the screen.
|
||||
In the fragment shader the ``sin`` of the arc length is calculated.
|
||||
Based on the result a decision is made on whether the fragment should be drawn or not.
|
||||
"""
|
||||
import bpy
|
||||
import gpu
|
||||
from random import random
|
||||
from mathutils import Vector
|
||||
from gpu_extras.batch import batch_for_shader
|
||||
|
||||
vertex_shader = '''
|
||||
uniform mat4 u_ViewProjectionMatrix;
|
||||
|
||||
in vec3 position;
|
||||
in float arcLength;
|
||||
|
||||
out float v_ArcLength;
|
||||
|
||||
void main()
|
||||
{
|
||||
v_ArcLength = arcLength;
|
||||
gl_Position = u_ViewProjectionMatrix * vec4(position, 1.0f);
|
||||
}
|
||||
'''
|
||||
|
||||
fragment_shader = '''
|
||||
uniform float u_Scale;
|
||||
|
||||
in float v_ArcLength;
|
||||
|
||||
void main()
|
||||
{
|
||||
if (step(sin(v_ArcLength * u_Scale), 0.5) == 1) discard;
|
||||
gl_FragColor = vec4(1.0);
|
||||
}
|
||||
'''
|
||||
|
||||
coords = [Vector((random(), random(), random())) * 5 for _ in range(5)]
|
||||
|
||||
arc_lengths = [0]
|
||||
for a, b in zip(coords[:-1], coords[1:]):
|
||||
arc_lengths.append(arc_lengths[-1] + (a - b).length)
|
||||
|
||||
shader = gpu.types.GPUShader(vertex_shader, fragment_shader)
|
||||
batch = batch_for_shader(
|
||||
shader, 'LINE_STRIP',
|
||||
{"position": coords, "arcLength": arc_lengths},
|
||||
)
|
||||
|
||||
|
||||
def draw():
|
||||
shader.bind()
|
||||
matrix = bpy.context.region_data.perspective_matrix
|
||||
shader.uniform_float("u_ViewProjectionMatrix", matrix)
|
||||
shader.uniform_float("u_Scale", 10)
|
||||
batch.draw(shader)
|
||||
|
||||
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')
|
@@ -1,19 +1,45 @@
|
||||
"""
|
||||
3D Lines with Single Color
|
||||
--------------------------
|
||||
Triangle with Custom Shader
|
||||
---------------------------
|
||||
"""
|
||||
import bpy
|
||||
import gpu
|
||||
from gpu_extras.batch import batch_for_shader
|
||||
|
||||
coords = [(1, 1, 1), (-2, 0, 0), (-2, -1, 3), (0, 1, 1)]
|
||||
shader = gpu.shader.from_builtin('3D_UNIFORM_COLOR')
|
||||
batch = batch_for_shader(shader, 'LINES', {"pos": coords})
|
||||
vertex_shader = '''
|
||||
uniform mat4 viewProjectionMatrix;
|
||||
|
||||
in vec3 position;
|
||||
out vec3 pos;
|
||||
|
||||
void main()
|
||||
{
|
||||
pos = position;
|
||||
gl_Position = viewProjectionMatrix * vec4(position, 1.0f);
|
||||
}
|
||||
'''
|
||||
|
||||
fragment_shader = '''
|
||||
uniform float brightness;
|
||||
|
||||
in vec3 pos;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = vec4(pos * brightness, 1.0);
|
||||
}
|
||||
'''
|
||||
|
||||
coords = [(1, 1, 1), (2, 0, 0), (-2, -1, 3)]
|
||||
shader = gpu.types.GPUShader(vertex_shader, fragment_shader)
|
||||
batch = batch_for_shader(shader, 'TRIS', {"position": coords})
|
||||
|
||||
|
||||
def draw():
|
||||
shader.bind()
|
||||
shader.uniform_float("color", (1, 1, 0, 1))
|
||||
matrix = bpy.context.region_data.perspective_matrix
|
||||
shader.uniform_float("viewProjectionMatrix", matrix)
|
||||
shader.uniform_float("brightness", 0.5)
|
||||
batch.draw(shader)
|
||||
|
||||
|
||||
|
@@ -1,45 +1,29 @@
|
||||
"""
|
||||
Triangle with Custom Shader
|
||||
---------------------------
|
||||
Wireframe Cube using Index Buffer
|
||||
---------------------------------
|
||||
"""
|
||||
import bpy
|
||||
import gpu
|
||||
from gpu_extras.batch import batch_for_shader
|
||||
|
||||
vertex_shader = '''
|
||||
uniform mat4 viewProjectionMatrix;
|
||||
coords = (
|
||||
(-1, -1, -1), (+1, -1, -1),
|
||||
(-1, +1, -1), (+1, +1, -1),
|
||||
(-1, -1, +1), (+1, -1, +1),
|
||||
(-1, +1, +1), (+1, +1, +1))
|
||||
|
||||
in vec3 position;
|
||||
out vec3 pos;
|
||||
indices = (
|
||||
(0, 1), (0, 2), (1, 3), (2, 3),
|
||||
(4, 5), (4, 6), (5, 7), (6, 7),
|
||||
(0, 4), (1, 5), (2, 6), (3, 7))
|
||||
|
||||
void main()
|
||||
{
|
||||
pos = position;
|
||||
gl_Position = viewProjectionMatrix * vec4(position, 1.0f);
|
||||
}
|
||||
'''
|
||||
|
||||
fragment_shader = '''
|
||||
uniform float brightness;
|
||||
|
||||
in vec3 pos;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = vec4(pos * brightness, 1.0);
|
||||
}
|
||||
'''
|
||||
|
||||
coords = [(1, 1, 1), (2, 0, 0), (-2, -1, 3)]
|
||||
shader = gpu.types.GPUShader(vertex_shader, fragment_shader)
|
||||
batch = batch_for_shader(shader, 'TRIS', {"position": coords})
|
||||
shader = gpu.shader.from_builtin('3D_UNIFORM_COLOR')
|
||||
batch = batch_for_shader(shader, 'LINES', {"pos": coords}, indices=indices)
|
||||
|
||||
|
||||
def draw():
|
||||
shader.bind()
|
||||
matrix = bpy.context.region_data.perspective_matrix
|
||||
shader.uniform_float("viewProjectionMatrix", matrix)
|
||||
shader.uniform_float("brightness", 0.5)
|
||||
shader.uniform_float("color", (1, 0, 0, 1))
|
||||
batch.draw(shader)
|
||||
|
||||
|
||||
|
@@ -1,30 +1,39 @@
|
||||
"""
|
||||
Wireframe Cube using Index Buffer
|
||||
---------------------------------
|
||||
Mesh with Random Vertex Colors
|
||||
------------------------------
|
||||
"""
|
||||
import bpy
|
||||
import gpu
|
||||
import bgl
|
||||
import numpy as np
|
||||
from random import random
|
||||
from gpu_extras.batch import batch_for_shader
|
||||
|
||||
coords = (
|
||||
(-1, -1, -1), (+1, -1, -1),
|
||||
(-1, +1, -1), (+1, +1, -1),
|
||||
(-1, -1, +1), (+1, -1, +1),
|
||||
(-1, +1, +1), (+1, +1, +1))
|
||||
mesh = bpy.context.active_object.data
|
||||
mesh.calc_loop_triangles()
|
||||
|
||||
indices = (
|
||||
(0, 1), (0, 2), (1, 3), (2, 3),
|
||||
(4, 5), (4, 6), (5, 7), (6, 7),
|
||||
(0, 4), (1, 5), (2, 6), (3, 7))
|
||||
vertices = np.empty((len(mesh.vertices), 3), 'f')
|
||||
indices = np.empty((len(mesh.loop_triangles), 3), 'i')
|
||||
|
||||
shader = gpu.shader.from_builtin('3D_UNIFORM_COLOR')
|
||||
batch = batch_for_shader(shader, 'LINES', {"pos": coords}, indices=indices)
|
||||
mesh.vertices.foreach_get(
|
||||
"co", np.reshape(vertices, len(mesh.vertices) * 3))
|
||||
mesh.loop_triangles.foreach_get(
|
||||
"vertices", np.reshape(indices, len(mesh.loop_triangles) * 3))
|
||||
|
||||
vertex_colors = [(random(), random(), random(), 1) for _ in range(len(mesh.vertices))]
|
||||
|
||||
shader = gpu.shader.from_builtin('3D_SMOOTH_COLOR')
|
||||
batch = batch_for_shader(
|
||||
shader, 'TRIS',
|
||||
{"pos": vertices, "color": vertex_colors},
|
||||
indices=indices,
|
||||
)
|
||||
|
||||
|
||||
def draw():
|
||||
shader.bind()
|
||||
shader.uniform_float("color", (1, 0, 0, 1))
|
||||
bgl.glEnable(bgl.GL_DEPTH_TEST)
|
||||
batch.draw(shader)
|
||||
bgl.glDisable(bgl.GL_DEPTH_TEST)
|
||||
|
||||
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')
|
||||
|
@@ -1,39 +1,26 @@
|
||||
"""
|
||||
Mesh with Random Vertex Colors
|
||||
------------------------------
|
||||
2D Rectangle
|
||||
------------
|
||||
"""
|
||||
import bpy
|
||||
import gpu
|
||||
import bgl
|
||||
import numpy as np
|
||||
from random import random
|
||||
from gpu_extras.batch import batch_for_shader
|
||||
|
||||
mesh = bpy.context.active_object.data
|
||||
mesh.calc_loop_triangles()
|
||||
vertices = (
|
||||
(100, 100), (300, 100),
|
||||
(100, 200), (300, 200))
|
||||
|
||||
vertices = np.empty((len(mesh.vertices), 3), 'f')
|
||||
indices = np.empty((len(mesh.loop_triangles), 3), 'i')
|
||||
indices = (
|
||||
(0, 1, 2), (2, 1, 3))
|
||||
|
||||
mesh.vertices.foreach_get(
|
||||
"co", np.reshape(vertices, len(mesh.vertices) * 3))
|
||||
mesh.loop_triangles.foreach_get(
|
||||
"vertices", np.reshape(indices, len(mesh.loop_triangles) * 3))
|
||||
|
||||
vertex_colors = [(random(), random(), random(), 1) for _ in range(len(mesh.vertices))]
|
||||
|
||||
shader = gpu.shader.from_builtin('3D_SMOOTH_COLOR')
|
||||
batch = batch_for_shader(
|
||||
shader, 'TRIS',
|
||||
{"pos": vertices, "color": vertex_colors},
|
||||
indices=indices,
|
||||
)
|
||||
shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
|
||||
batch = batch_for_shader(shader, 'TRIS', {"pos": vertices}, indices=indices)
|
||||
|
||||
|
||||
def draw():
|
||||
bgl.glEnable(bgl.GL_DEPTH_TEST)
|
||||
shader.bind()
|
||||
shader.uniform_float("color", (0, 0.5, 0.5, 1.0))
|
||||
batch.draw(shader)
|
||||
bgl.glDisable(bgl.GL_DEPTH_TEST)
|
||||
|
||||
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')
|
||||
|
@@ -1,25 +1,36 @@
|
||||
"""
|
||||
2D Rectangle
|
||||
------------
|
||||
2D Image
|
||||
--------
|
||||
|
||||
To use this example you have to provide an image that should be displayed.
|
||||
"""
|
||||
import bpy
|
||||
import gpu
|
||||
import bgl
|
||||
from gpu_extras.batch import batch_for_shader
|
||||
|
||||
vertices = (
|
||||
(100, 100), (300, 100),
|
||||
(100, 200), (300, 200))
|
||||
IMAGE_NAME = "Untitled"
|
||||
image = bpy.data.images[IMAGE_NAME]
|
||||
|
||||
indices = (
|
||||
(0, 1, 2), (2, 1, 3))
|
||||
shader = gpu.shader.from_builtin('2D_IMAGE')
|
||||
batch = batch_for_shader(
|
||||
shader, 'TRI_FAN',
|
||||
{
|
||||
"pos": ((100, 100), (200, 100), (200, 200), (100, 200)),
|
||||
"texCoord": ((0, 0), (1, 0), (1, 1), (0, 1)),
|
||||
},
|
||||
)
|
||||
|
||||
shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
|
||||
batch = batch_for_shader(shader, 'TRIS', {"pos": vertices}, indices=indices)
|
||||
if image.gl_load():
|
||||
raise Exception()
|
||||
|
||||
|
||||
def draw():
|
||||
bgl.glActiveTexture(bgl.GL_TEXTURE0)
|
||||
bgl.glBindTexture(bgl.GL_TEXTURE_2D, image.bindcode)
|
||||
|
||||
shader.bind()
|
||||
shader.uniform_float("color", (0, 0.5, 0.5, 1.0))
|
||||
shader.uniform_int("image", 0)
|
||||
batch.draw(shader)
|
||||
|
||||
|
||||
|
@@ -1,37 +1,86 @@
|
||||
"""
|
||||
2D Image
|
||||
--------
|
||||
Generate a texture using Offscreen Rendering
|
||||
--------------------------------------------
|
||||
|
||||
To use this example you have to provide an image that should be displayed.
|
||||
#. Create an :class:`gpu.types.GPUOffScreen` object.
|
||||
#. Draw some circles into it.
|
||||
#. Make a new shader for drawing a planar texture in 3D.
|
||||
#. Draw the generated texture using the new shader.
|
||||
"""
|
||||
import bpy
|
||||
import gpu
|
||||
import bgl
|
||||
from mathutils import Matrix
|
||||
from gpu_extras.batch import batch_for_shader
|
||||
from gpu_extras.presets import draw_circle_2d
|
||||
|
||||
IMAGE_NAME = "Untitled"
|
||||
image = bpy.data.images[IMAGE_NAME]
|
||||
# Create and fill offscreen
|
||||
##########################################
|
||||
|
||||
shader = gpu.shader.from_builtin('2D_IMAGE')
|
||||
offscreen = gpu.types.GPUOffScreen(512, 512)
|
||||
|
||||
with offscreen.bind():
|
||||
bgl.glClear(bgl.GL_COLOR_BUFFER_BIT)
|
||||
with gpu.matrix.push_pop():
|
||||
# reset matrices -> use normalized device coordinates [-1, 1]
|
||||
gpu.matrix.load_matrix(Matrix.Identity(4))
|
||||
gpu.matrix.load_projection_matrix(Matrix.Identity(4))
|
||||
|
||||
amount = 10
|
||||
for i in range(-amount, amount + 1):
|
||||
x_pos = i / amount
|
||||
draw_circle_2d((x_pos, 0.0), (1, 1, 1, 1), 0.5, 200)
|
||||
|
||||
|
||||
# Drawing the generated texture in 3D space
|
||||
#############################################
|
||||
|
||||
vertex_shader = '''
|
||||
uniform mat4 modelMatrix;
|
||||
uniform mat4 viewProjectionMatrix;
|
||||
|
||||
in vec2 position;
|
||||
in vec2 uv;
|
||||
|
||||
out vec2 uvInterp;
|
||||
|
||||
void main()
|
||||
{
|
||||
uvInterp = uv;
|
||||
gl_Position = viewProjectionMatrix * modelMatrix * vec4(position, 0.0, 1.0);
|
||||
}
|
||||
'''
|
||||
|
||||
fragment_shader = '''
|
||||
uniform sampler2D image;
|
||||
|
||||
in vec2 uvInterp;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = texture(image, uvInterp);
|
||||
}
|
||||
'''
|
||||
|
||||
shader = gpu.types.GPUShader(vertex_shader, fragment_shader)
|
||||
batch = batch_for_shader(
|
||||
shader, 'TRI_FAN',
|
||||
{
|
||||
"pos": ((100, 100), (200, 100), (200, 200), (100, 200)),
|
||||
"texCoord": ((0, 0), (1, 0), (1, 1), (0, 1)),
|
||||
"position": ((-1, -1), (1, -1), (1, 1), (-1, 1)),
|
||||
"uv": ((0, 0), (1, 0), (1, 1), (0, 1)),
|
||||
},
|
||||
)
|
||||
|
||||
if image.gl_load():
|
||||
raise Exception()
|
||||
|
||||
|
||||
def draw():
|
||||
bgl.glActiveTexture(bgl.GL_TEXTURE0)
|
||||
bgl.glBindTexture(bgl.GL_TEXTURE_2D, image.bindcode)
|
||||
bgl.glBindTexture(bgl.GL_TEXTURE_2D, offscreen.color_texture)
|
||||
|
||||
shader.bind()
|
||||
shader.uniform_int("image", 0)
|
||||
shader.uniform_float("modelMatrix", Matrix.Translation((1, 2, 3)) @ Matrix.Scale(3, 4))
|
||||
shader.uniform_float("viewProjectionMatrix", bpy.context.region_data.perspective_matrix)
|
||||
shader.uniform_float("image", 0)
|
||||
batch.draw(shader)
|
||||
|
||||
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')
|
||||
|
@@ -1,23 +1,28 @@
|
||||
"""
|
||||
Generate a texture using Offscreen Rendering
|
||||
--------------------------------------------
|
||||
Copy Offscreen Rendering result back to RAM
|
||||
-------------------------------------------
|
||||
|
||||
#. Create an :class:`gpu.types.GPUOffScreen` object.
|
||||
#. Draw some circles into it.
|
||||
#. Make a new shader for drawing a planar texture in 3D.
|
||||
#. Draw the generated texture using the new shader.
|
||||
This will create a new image with the given name.
|
||||
If it already exists, it will override the existing one.
|
||||
|
||||
Currently almost all of the execution time is spent in the last line.
|
||||
In the future this will hopefully be solved by implementing the Python buffer protocol
|
||||
for :class:`bgl.Buffer` and :class:`bpy.types.Image.pixels` (aka ``bpy_prop_array``).
|
||||
"""
|
||||
import bpy
|
||||
import gpu
|
||||
import bgl
|
||||
import random
|
||||
from mathutils import Matrix
|
||||
from gpu_extras.batch import batch_for_shader
|
||||
from gpu_extras.presets import draw_circle_2d
|
||||
|
||||
# Create and fill offscreen
|
||||
##########################################
|
||||
IMAGE_NAME = "Generated Image"
|
||||
WIDTH = 512
|
||||
HEIGHT = 512
|
||||
RING_AMOUNT = 10
|
||||
|
||||
offscreen = gpu.types.GPUOffScreen(512, 512)
|
||||
|
||||
offscreen = gpu.types.GPUOffScreen(WIDTH, HEIGHT)
|
||||
|
||||
with offscreen.bind():
|
||||
bgl.glClear(bgl.GL_COLOR_BUFFER_BIT)
|
||||
@@ -26,61 +31,20 @@ with offscreen.bind():
|
||||
gpu.matrix.load_matrix(Matrix.Identity(4))
|
||||
gpu.matrix.load_projection_matrix(Matrix.Identity(4))
|
||||
|
||||
amount = 10
|
||||
for i in range(-amount, amount + 1):
|
||||
x_pos = i / amount
|
||||
draw_circle_2d((x_pos, 0.0), (1, 1, 1, 1), 0.5, 200)
|
||||
for i in range(RING_AMOUNT):
|
||||
draw_circle_2d(
|
||||
(random.uniform(-1, 1), random.uniform(-1, 1)),
|
||||
(1, 1, 1, 1), random.uniform(0.1, 1), 20)
|
||||
|
||||
buffer = bgl.Buffer(bgl.GL_BYTE, WIDTH * HEIGHT * 4)
|
||||
bgl.glReadBuffer(bgl.GL_BACK)
|
||||
bgl.glReadPixels(0, 0, WIDTH, HEIGHT, bgl.GL_RGBA, bgl.GL_UNSIGNED_BYTE, buffer)
|
||||
|
||||
offscreen.free()
|
||||
|
||||
|
||||
# Drawing the generated texture in 3D space
|
||||
#############################################
|
||||
|
||||
vertex_shader = '''
|
||||
uniform mat4 modelMatrix;
|
||||
uniform mat4 viewProjectionMatrix;
|
||||
|
||||
in vec2 position;
|
||||
in vec2 uv;
|
||||
|
||||
out vec2 uvInterp;
|
||||
|
||||
void main()
|
||||
{
|
||||
uvInterp = uv;
|
||||
gl_Position = viewProjectionMatrix * modelMatrix * vec4(position, 0.0, 1.0);
|
||||
}
|
||||
'''
|
||||
|
||||
fragment_shader = '''
|
||||
uniform sampler2D image;
|
||||
|
||||
in vec2 uvInterp;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = texture(image, uvInterp);
|
||||
}
|
||||
'''
|
||||
|
||||
shader = gpu.types.GPUShader(vertex_shader, fragment_shader)
|
||||
batch = batch_for_shader(
|
||||
shader, 'TRI_FAN',
|
||||
{
|
||||
"position": ((-1, -1), (1, -1), (1, 1), (-1, 1)),
|
||||
"uv": ((0, 0), (1, 0), (1, 1), (0, 1)),
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
def draw():
|
||||
bgl.glActiveTexture(bgl.GL_TEXTURE0)
|
||||
bgl.glBindTexture(bgl.GL_TEXTURE_2D, offscreen.color_texture)
|
||||
|
||||
shader.bind()
|
||||
shader.uniform_float("modelMatrix", Matrix.Translation((1, 2, 3)) @ Matrix.Scale(3, 4))
|
||||
shader.uniform_float("viewProjectionMatrix", bpy.context.region_data.perspective_matrix)
|
||||
shader.uniform_float("image", 0)
|
||||
batch.draw(shader)
|
||||
|
||||
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')
|
||||
if not IMAGE_NAME in bpy.data.images:
|
||||
bpy.data.images.new(IMAGE_NAME, WIDTH, HEIGHT)
|
||||
image = bpy.data.images[IMAGE_NAME]
|
||||
image.scale(WIDTH, HEIGHT)
|
||||
image.pixels = [v / 255 for v in buffer]
|
||||
|
@@ -1,50 +1,41 @@
|
||||
"""
|
||||
Copy Offscreen Rendering result back to RAM
|
||||
-------------------------------------------
|
||||
Rendering the 3D View into a Texture
|
||||
------------------------------------
|
||||
|
||||
This will create a new image with the given name.
|
||||
If it already exists, it will override the existing one.
|
||||
|
||||
Currently almost all of the execution time is spent in the last line.
|
||||
In the future this will hopefully be solved by implementing the Python buffer protocol
|
||||
for :class:`bgl.Buffer` and :class:`bpy.types.Image.pixels` (aka ``bpy_prop_array``).
|
||||
The scene has to have a camera for this example to work.
|
||||
You could also make this independent of a specific camera,
|
||||
but Blender does not expose good functions to create view and projection matrices yet.
|
||||
"""
|
||||
import bpy
|
||||
import gpu
|
||||
import bgl
|
||||
import random
|
||||
from mathutils import Matrix
|
||||
from gpu_extras.presets import draw_circle_2d
|
||||
import gpu
|
||||
from gpu_extras.presets import draw_texture_2d
|
||||
|
||||
IMAGE_NAME = "Generated Image"
|
||||
WIDTH = 512
|
||||
HEIGHT = 512
|
||||
RING_AMOUNT = 10
|
||||
|
||||
HEIGHT = 256
|
||||
|
||||
offscreen = gpu.types.GPUOffScreen(WIDTH, HEIGHT)
|
||||
|
||||
with offscreen.bind():
|
||||
bgl.glClear(bgl.GL_COLOR_BUFFER_BIT)
|
||||
with gpu.matrix.push_pop():
|
||||
# reset matrices -> use normalized device coordinates [-1, 1]
|
||||
gpu.matrix.load_matrix(Matrix.Identity(4))
|
||||
gpu.matrix.load_projection_matrix(Matrix.Identity(4))
|
||||
|
||||
for i in range(RING_AMOUNT):
|
||||
draw_circle_2d(
|
||||
(random.uniform(-1, 1), random.uniform(-1, 1)),
|
||||
(1, 1, 1, 1), random.uniform(0.1, 1), 20)
|
||||
def draw():
|
||||
context = bpy.context
|
||||
scene = context.scene
|
||||
|
||||
buffer = bgl.Buffer(bgl.GL_BYTE, WIDTH * HEIGHT * 4)
|
||||
bgl.glReadBuffer(bgl.GL_BACK)
|
||||
bgl.glReadPixels(0, 0, WIDTH, HEIGHT, bgl.GL_RGBA, bgl.GL_UNSIGNED_BYTE, buffer)
|
||||
view_matrix = scene.camera.matrix_world.inverted()
|
||||
|
||||
offscreen.free()
|
||||
projection_matrix = scene.camera.calc_matrix_camera(
|
||||
context.evaluated_depsgraph_get(), x=WIDTH, y=HEIGHT)
|
||||
|
||||
offscreen.draw_view3d(
|
||||
scene,
|
||||
context.view_layer,
|
||||
context.space_data,
|
||||
context.region,
|
||||
view_matrix,
|
||||
projection_matrix)
|
||||
|
||||
bgl.glDisable(bgl.GL_DEPTH_TEST)
|
||||
draw_texture_2d(offscreen.color_texture, (10, 10), WIDTH, HEIGHT)
|
||||
|
||||
|
||||
if not IMAGE_NAME in bpy.data.images:
|
||||
bpy.data.images.new(IMAGE_NAME, WIDTH, HEIGHT)
|
||||
image = bpy.data.images[IMAGE_NAME]
|
||||
image.scale(WIDTH, HEIGHT)
|
||||
image.pixels = [v / 255 for v in buffer]
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Sphinx==1.8.5
|
||||
sphinx_rtd_theme==0.4.3
|
||||
Sphinx==3.0.3
|
||||
sphinx_rtd_theme==0.5.0rc1
|
||||
|
@@ -205,15 +205,15 @@ Support Overview
|
||||
|
||||
* - Usage
|
||||
- :class:`bpy.types.MeshPolygon`
|
||||
- :class:`bpy.types.MeshTessFace`
|
||||
- :class:`bpy.types.MeshLoopTriangle`
|
||||
- :class:`bmesh.types.BMFace`
|
||||
* - Import/Create
|
||||
- Poor *(inflexible)*
|
||||
- Good *(supported as upgrade path)*
|
||||
- Unusable *(read-only)*.
|
||||
- Best
|
||||
* - Manipulate
|
||||
- Poor *(inflexible)*
|
||||
- Poor *(loses ngons)*
|
||||
- Unusable *(read-only)*.
|
||||
- Best
|
||||
* - Export/Output
|
||||
- Good *(ngon support)*
|
||||
|
@@ -253,7 +253,13 @@ Registering a class with Blender results in the class definition being loaded in
|
||||
where it becomes available alongside existing functionality.
|
||||
|
||||
Once this class is loaded you can access it from :mod:`bpy.types`,
|
||||
using the bl_idname rather than the classes original name.
|
||||
using the ``bl_idname`` rather than the classes original name.
|
||||
|
||||
.. note::
|
||||
|
||||
There are some exceptions to this for class names which aren't guarantee to be unique.
|
||||
In this case use: :func:`bpy.types.Struct.bl_rna_get_subclass`.
|
||||
|
||||
|
||||
When loading a class, Blender performs sanity checks making sure all required properties and functions are found,
|
||||
that properties have the correct type, and that functions have the right number of arguments.
|
||||
|
@@ -403,32 +403,21 @@ MODULE_GROUPING = {
|
||||
|
||||
# -------------------------------BLENDER----------------------------------------
|
||||
|
||||
blender_version_strings = [str(v) for v in bpy.app.version]
|
||||
is_release = bpy.app.version_cycle in {"rc", "release"}
|
||||
|
||||
# converting bytes to strings, due to T30154
|
||||
BLENDER_REVISION = str(bpy.app.build_hash, 'utf_8')
|
||||
|
||||
if is_release:
|
||||
# '2.62a'
|
||||
BLENDER_VERSION_DOTS = ".".join(blender_version_strings[:2]) + bpy.app.version_char
|
||||
else:
|
||||
# '2.62.1'
|
||||
BLENDER_VERSION_DOTS = ".".join(blender_version_strings)
|
||||
# '2.83.0 Beta' or '2.83.0' or '2.83.1'
|
||||
BLENDER_VERSION_DOTS = bpy.app.version_string
|
||||
|
||||
if BLENDER_REVISION != "Unknown":
|
||||
# '2.62a SHA1' (release) or '2.62.1 SHA1' (non-release)
|
||||
# SHA1 Git hash
|
||||
BLENDER_VERSION_HASH = BLENDER_REVISION
|
||||
else:
|
||||
# Fallback: Should not be used
|
||||
BLENDER_VERSION_HASH = "Hash Unknown"
|
||||
|
||||
if is_release:
|
||||
# '2_62a_release'
|
||||
BLENDER_VERSION_PATH = "%s%s_release" % ("_".join(blender_version_strings[:2]), bpy.app.version_char)
|
||||
else:
|
||||
# '2_62_1'
|
||||
BLENDER_VERSION_PATH = "_".join(blender_version_strings)
|
||||
# '2_83'
|
||||
BLENDER_VERSION_PATH = "%d_%d" % (bpy.app.version[0], bpy.app.version[1])
|
||||
|
||||
# --------------------------DOWNLOADABLE FILES----------------------------------
|
||||
|
||||
@@ -492,6 +481,11 @@ if _BPY_PROP_COLLECTION_FAKE:
|
||||
else:
|
||||
_BPY_PROP_COLLECTION_ID = "collection"
|
||||
|
||||
if _BPY_STRUCT_FAKE:
|
||||
bpy_struct = bpy.types.bpy_struct
|
||||
else:
|
||||
bpy_struct = None
|
||||
|
||||
|
||||
def escape_rst(text):
|
||||
""" Escape plain text which may contain characters used by RST.
|
||||
@@ -512,7 +506,7 @@ def is_struct_seq(value):
|
||||
|
||||
|
||||
def undocumented_message(module_name, type_name, identifier):
|
||||
return "Undocumented `contribute <https://developer.blender.org/T51061>`"
|
||||
return "Undocumented, consider `contributing <https://developer.blender.org/T51061>`__."
|
||||
|
||||
|
||||
def range_str(val):
|
||||
@@ -694,11 +688,13 @@ def py_descr2sphinx(ident, fw, descr, module_name, type_name, identifier):
|
||||
doc = undocumented_message(module_name, type_name, identifier)
|
||||
|
||||
if type(descr) == GetSetDescriptorType:
|
||||
fw(ident + ".. attribute:: %s\n\n" % identifier)
|
||||
fw(ident + ".. attribute:: %s\n" % identifier)
|
||||
fw(ident + " :noindex:\n\n")
|
||||
write_indented_lines(ident + " ", fw, doc, False)
|
||||
fw("\n")
|
||||
elif type(descr) == MemberDescriptorType: # same as above but use 'data'
|
||||
fw(ident + ".. data:: %s\n\n" % identifier)
|
||||
fw(ident + ".. data:: %s\n" % identifier)
|
||||
fw(ident + " :noindex:\n\n")
|
||||
write_indented_lines(ident + " ", fw, doc, False)
|
||||
fw("\n")
|
||||
elif type(descr) in {MethodDescriptorType, ClassMethodDescriptorType}:
|
||||
@@ -738,11 +734,14 @@ def pyprop2sphinx(ident, fw, identifier, py_prop):
|
||||
'''
|
||||
# readonly properties use "data" directive, variables use "attribute" directive
|
||||
if py_prop.fset is None:
|
||||
fw(ident + ".. data:: %s\n\n" % identifier)
|
||||
fw(ident + ".. data:: %s\n" % identifier)
|
||||
fw(ident + " :noindex:\n\n")
|
||||
else:
|
||||
fw(ident + ".. attribute:: %s\n\n" % identifier)
|
||||
fw(ident + ".. attribute:: %s\n" % identifier)
|
||||
fw(ident + " :noindex:\n\n")
|
||||
write_indented_lines(ident + " ", fw, py_prop.__doc__)
|
||||
if py_prop.fset is None:
|
||||
fw("\n")
|
||||
fw(ident + " (readonly)\n\n")
|
||||
else:
|
||||
fw("\n")
|
||||
@@ -908,7 +907,8 @@ def pymodule2sphinx(basepath, module_name, module, title):
|
||||
elif issubclass(value_type, (bool, int, float, str, tuple)):
|
||||
# constant, not much fun we can do here except to list it.
|
||||
# TODO, figure out some way to document these!
|
||||
fw(".. data:: %s\n\n" % attribute)
|
||||
fw(".. data:: %s\n" % attribute)
|
||||
fw(" :noindex:\n\n")
|
||||
write_indented_lines(" ", fw, "constant value %s" % repr(value), False)
|
||||
fw("\n")
|
||||
else:
|
||||
@@ -1052,6 +1052,7 @@ context_type_map = {
|
||||
"selected_editable_fcurves": ("FCurve", True),
|
||||
"selected_editable_objects": ("Object", True),
|
||||
"selected_editable_sequences": ("Sequence", True),
|
||||
"selected_nla_strips": ("NlaStrip", True),
|
||||
"selected_nodes": ("Node", True),
|
||||
"selected_objects": ("Object", True),
|
||||
"selected_pose_bones": ("PoseBone", True),
|
||||
@@ -1073,6 +1074,7 @@ context_type_map = {
|
||||
"visible_pose_bones": ("PoseBone", True),
|
||||
"visible_fcurves": ("FCurve", True),
|
||||
"weight_paint_object": ("Object", False),
|
||||
"volume": ("Volume", False),
|
||||
"world": ("World", False),
|
||||
}
|
||||
|
||||
@@ -1114,7 +1116,8 @@ def pycontext2sphinx(basepath):
|
||||
|
||||
type_descr = prop.get_type_description(
|
||||
class_fmt=":class:`bpy.types.%s`", collection_id=_BPY_PROP_COLLECTION_ID)
|
||||
fw(".. data:: %s\n\n" % prop.identifier)
|
||||
fw(".. data:: %s\n" % prop.identifier)
|
||||
fw(" :noindex:\n\n")
|
||||
if prop.description:
|
||||
fw(" %s\n\n" % prop.description)
|
||||
|
||||
@@ -1159,7 +1162,8 @@ def pycontext2sphinx(basepath):
|
||||
i = 0
|
||||
while char_array[i] is not None:
|
||||
member = ctypes.string_at(char_array[i]).decode(encoding="ascii")
|
||||
fw(".. data:: %s\n\n" % member)
|
||||
fw(".. data:: %s\n" % member)
|
||||
fw(" :noindex:\n\n")
|
||||
member_type, is_seq = context_type_map[member]
|
||||
fw(" :type: %s :class:`bpy.types.%s`\n\n" % ("sequence of " if is_seq else "", member_type))
|
||||
unique.add(member)
|
||||
@@ -1303,7 +1307,7 @@ def pyrna2sphinx(basepath):
|
||||
|
||||
fw(title_string(title, "="))
|
||||
|
||||
fw(".. module:: %s\n\n" % struct_module_name)
|
||||
fw(".. module:: %s.%s\n\n" % (struct_module_name, struct_id))
|
||||
|
||||
# docs first?, ok
|
||||
write_example_ref("", fw, "%s.%s" % (struct_module_name, struct_id))
|
||||
@@ -1362,9 +1366,11 @@ def pyrna2sphinx(basepath):
|
||||
type_descr = prop.get_type_description(class_fmt=":class:`%s`", collection_id=_BPY_PROP_COLLECTION_ID)
|
||||
# readonly properties use "data" directive, variables properties use "attribute" directive
|
||||
if 'readonly' in type_descr:
|
||||
fw(" .. data:: %s\n\n" % prop.identifier)
|
||||
fw(" .. data:: %s\n" % prop.identifier)
|
||||
fw(" :noindex:\n\n")
|
||||
else:
|
||||
fw(" .. attribute:: %s\n\n" % prop.identifier)
|
||||
fw(" .. attribute:: %s\n" % prop.identifier)
|
||||
fw(" :noindex:\n\n")
|
||||
if prop.description:
|
||||
fw(" %s\n\n" % prop.description)
|
||||
|
||||
@@ -1441,7 +1447,7 @@ def pyrna2sphinx(basepath):
|
||||
|
||||
if _BPY_STRUCT_FAKE:
|
||||
descr_items = [
|
||||
(key, descr) for key, descr in sorted(bpy.types.Struct.__bases__[0].__dict__.items())
|
||||
(key, descr) for key, descr in sorted(bpy_struct.__dict__.items())
|
||||
if not key.startswith("__")
|
||||
]
|
||||
|
||||
@@ -1457,9 +1463,6 @@ def pyrna2sphinx(basepath):
|
||||
for identifier, py_prop in base.get_py_properties():
|
||||
lines.append(" * :class:`%s.%s`\n" % (base.identifier, identifier))
|
||||
|
||||
for identifier, py_prop in base.get_py_properties():
|
||||
lines.append(" * :class:`%s.%s`\n" % (base.identifier, identifier))
|
||||
|
||||
if lines:
|
||||
fw(".. rubric:: Inherited Properties\n\n")
|
||||
|
||||
@@ -1483,6 +1486,8 @@ def pyrna2sphinx(basepath):
|
||||
lines.append(" * :class:`%s.%s`\n" % (base.identifier, func.identifier))
|
||||
for identifier, py_func in base.get_py_functions():
|
||||
lines.append(" * :class:`%s.%s`\n" % (base.identifier, identifier))
|
||||
for identifier, py_func in base.get_py_c_functions():
|
||||
lines.append(" * :class:`%s.%s`\n" % (base.identifier, identifier))
|
||||
|
||||
if lines:
|
||||
fw(".. rubric:: Inherited Functions\n\n")
|
||||
@@ -1535,7 +1540,7 @@ def pyrna2sphinx(basepath):
|
||||
|
||||
fw(title_string(class_name, "="))
|
||||
|
||||
fw(".. module:: %s\n" % class_module_name)
|
||||
fw(".. module:: %s.%s\n" % (class_module_name, class_name))
|
||||
fw("\n")
|
||||
|
||||
if use_subclasses:
|
||||
@@ -1570,7 +1575,7 @@ def pyrna2sphinx(basepath):
|
||||
|
||||
# write fake classes
|
||||
if _BPY_STRUCT_FAKE:
|
||||
class_value = bpy.types.Struct.__bases__[0]
|
||||
class_value = bpy_struct
|
||||
fake_bpy_type(
|
||||
"bpy.types", class_value, _BPY_STRUCT_FAKE,
|
||||
"built-in base class for all classes in bpy.types.", use_subclasses=True,
|
||||
@@ -1710,7 +1715,7 @@ class PatchedPythonDomain(PythonDomain):
|
||||
|
||||
fw("def setup(app):\n")
|
||||
fw(" app.add_stylesheet('css/theme_overrides.css')\n")
|
||||
fw(" app.override_domain(PatchedPythonDomain)\n\n")
|
||||
fw(" app.add_domain(PatchedPythonDomain, override=True)\n\n")
|
||||
|
||||
file.close()
|
||||
|
||||
|
@@ -36,16 +36,10 @@ fi
|
||||
blender_srcdir=$(dirname -- $0)/../..
|
||||
blender_version_header="$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h"
|
||||
blender_version=$(grep "BLENDER_VERSION\s" "$blender_version_header" | awk '{print $3}')
|
||||
blender_version_char=$(grep "BLENDER_VERSION_CHAR\s" "$blender_version_header" | awk '{print $3}')
|
||||
blender_version_cycle=$(grep "BLENDER_VERSION_CYCLE\s" "$blender_version_header" | awk '{print $3}')
|
||||
blender_subversion=$(grep "BLENDER_SUBVERSION\s" "$blender_version_header" | awk '{print $3}')
|
||||
unset blender_version_header
|
||||
|
||||
if [ "$blender_version_cycle" = "release" ] ; then
|
||||
BLENDER_VERSION=$(expr $blender_version / 100)_$(expr $blender_version % 100)$blender_version_char"_release"
|
||||
else
|
||||
BLENDER_VERSION=$(expr $blender_version / 100)_$(expr $blender_version % 100)_$blender_subversion
|
||||
fi
|
||||
BLENDER_VERSION=$(expr $blender_version / 100)_$(expr $blender_version % 100)
|
||||
|
||||
SSH_UPLOAD_FULL=$SSH_UPLOAD/"blender_python_api_"$BLENDER_VERSION
|
||||
|
||||
|
@@ -127,11 +127,10 @@ def main():
|
||||
" f.write('%d\\n' % is_release)\n"
|
||||
" f.write('%d\\n' % is_beta)\n"
|
||||
" f.write('%s\\n' % branch)\n"
|
||||
" f.write('%d.%d%s\\n' % (bpy.app.version[0], bpy.app.version[1], bpy.app.version_char))\n"
|
||||
" f.write('%d.%d%s\\n' % (bpy.app.version[0], bpy.app.version[1], bpy.app.version_char)\n"
|
||||
" f.write('%d.%d\\n' % (bpy.app.version[0], bpy.app.version[1]))\n"
|
||||
" f.write('%d.%d\\n' % (bpy.app.version[0], bpy.app.version[1])\n"
|
||||
" if (is_release or is_beta) else '%s\\n' % branch)\n"
|
||||
" f.write('%d_%d%s_release' % (bpy.app.version[0], bpy.app.version[1], bpy.app.version_char)\n"
|
||||
" if is_release else '%d_%d_%d' % bpy.app.version)\n"
|
||||
" f.write('%d_%d' % (bpy.app.version[0], bpy.app.version[1]))\n"
|
||||
)
|
||||
get_ver_cmd = (args.blender, "--background", "-noaudio", "--factory-startup", "--python-exit-code", "1",
|
||||
"--python-expr", getver_script, "--", getver_file)
|
||||
|
2
extern/CMakeLists.txt
vendored
2
extern/CMakeLists.txt
vendored
@@ -72,7 +72,7 @@ if(WITH_CYCLES OR WITH_COMPOSITOR OR WITH_OPENSUBDIV)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_X11 AND WITH_GHOST_XDND)
|
||||
if(WITH_GHOST_X11 AND WITH_GHOST_XDND)
|
||||
add_subdirectory(xdnd)
|
||||
endif()
|
||||
|
||||
|
4
extern/audaspace/bindings/C/AUD_Device.cpp
vendored
4
extern/audaspace/bindings/C/AUD_Device.cpp
vendored
@@ -290,14 +290,14 @@ AUD_API AUD_Device* AUD_Device_getCurrent()
|
||||
return new AUD_Device(device);
|
||||
}
|
||||
|
||||
AUD_API void AUD_seekSynchronizer(AUD_Handle* handle, float time)
|
||||
AUD_API void AUD_seekSynchronizer(AUD_Handle* handle, double time)
|
||||
{
|
||||
auto synchronizer = DeviceManager::getDevice()->getSynchronizer();
|
||||
if(synchronizer)
|
||||
synchronizer->seek(*reinterpret_cast<std::shared_ptr<IHandle>*>(handle), time);
|
||||
}
|
||||
|
||||
AUD_API float AUD_getSynchronizerPosition(AUD_Handle* handle)
|
||||
AUD_API double AUD_getSynchronizerPosition(AUD_Handle* handle)
|
||||
{
|
||||
auto synchronizer = DeviceManager::getDevice()->getSynchronizer();
|
||||
if(synchronizer)
|
||||
|
4
extern/audaspace/bindings/C/AUD_Device.h
vendored
4
extern/audaspace/bindings/C/AUD_Device.h
vendored
@@ -221,14 +221,14 @@ extern AUD_API AUD_Device* AUD_Device_getCurrent();
|
||||
* \param handle Playback handle.
|
||||
* \param time Time in seconds to seek to.
|
||||
*/
|
||||
extern AUD_API void AUD_seekSynchronizer(AUD_Handle* handle, float time);
|
||||
extern AUD_API void AUD_seekSynchronizer(AUD_Handle* handle, double time);
|
||||
|
||||
/**
|
||||
* Returns the current sound scene playback time.
|
||||
* \param handle Playback handle.
|
||||
* \return The playback time in seconds.
|
||||
*/
|
||||
extern AUD_API float AUD_getSynchronizerPosition(AUD_Handle* handle);
|
||||
extern AUD_API double AUD_getSynchronizerPosition(AUD_Handle* handle);
|
||||
|
||||
/**
|
||||
* Starts the playback of jack transport if possible.
|
||||
|
@@ -101,14 +101,14 @@ AUD_API int AUD_DynamicMusic_pause(AUD_DynamicMusic* player)
|
||||
return (*player)->pause();
|
||||
}
|
||||
|
||||
AUD_API int AUD_DynamicMusic_seek(AUD_DynamicMusic* player, float position)
|
||||
AUD_API int AUD_DynamicMusic_seek(AUD_DynamicMusic* player, double position)
|
||||
{
|
||||
assert(player);
|
||||
|
||||
return (*player)->seek(position);
|
||||
}
|
||||
|
||||
AUD_API float AUD_DynamicMusic_getPosition(AUD_DynamicMusic* player)
|
||||
AUD_API double AUD_DynamicMusic_getPosition(AUD_DynamicMusic* player)
|
||||
{
|
||||
assert(player);
|
||||
|
||||
|
@@ -103,14 +103,14 @@ extern AUD_API int AUD_DynamicMusic_pause(AUD_DynamicMusic* player);
|
||||
* \param position The new position from which to play back, in seconds.
|
||||
* \return 0 if the seeking wasn't possible.
|
||||
*/
|
||||
extern AUD_API int AUD_DynamicMusic_seek(AUD_DynamicMusic* player, float position);
|
||||
extern AUD_API int AUD_DynamicMusic_seek(AUD_DynamicMusic* player, double position);
|
||||
|
||||
/**
|
||||
* Retrieves the position of the current scene of a dynamic music player.
|
||||
* \param player The DynamicMusic object.
|
||||
* \return The position of the current playing scene.
|
||||
*/
|
||||
extern AUD_API float AUD_DynamicMusic_getPosition(AUD_DynamicMusic* player);
|
||||
extern AUD_API double AUD_DynamicMusic_getPosition(AUD_DynamicMusic* player);
|
||||
|
||||
/**
|
||||
* Retrieves the volume of the current scene of a dynamic music player.
|
||||
|
4
extern/audaspace/bindings/C/AUD_Handle.cpp
vendored
4
extern/audaspace/bindings/C/AUD_Handle.cpp
vendored
@@ -259,13 +259,13 @@ AUD_API int AUD_Handle_setPitch(AUD_Handle* handle, float value)
|
||||
return (*handle)->setPitch(value);
|
||||
}
|
||||
|
||||
AUD_API float AUD_Handle_getPosition(AUD_Handle* handle)
|
||||
AUD_API double AUD_Handle_getPosition(AUD_Handle* handle)
|
||||
{
|
||||
assert(handle);
|
||||
return (*handle)->getPosition();
|
||||
}
|
||||
|
||||
AUD_API int AUD_Handle_setPosition(AUD_Handle* handle, float value)
|
||||
AUD_API int AUD_Handle_setPosition(AUD_Handle* handle, double value)
|
||||
{
|
||||
assert(handle);
|
||||
return (*handle)->seek(value);
|
||||
|
4
extern/audaspace/bindings/C/AUD_Handle.h
vendored
4
extern/audaspace/bindings/C/AUD_Handle.h
vendored
@@ -211,14 +211,14 @@ extern AUD_API int AUD_Handle_setPitch(AUD_Handle* handle, float value);
|
||||
* param handle The handle to get the position from.
|
||||
* return The position of the handle.
|
||||
*/
|
||||
extern AUD_API float AUD_Handle_getPosition(AUD_Handle* handle);
|
||||
extern AUD_API double AUD_Handle_getPosition(AUD_Handle* handle);
|
||||
|
||||
/**
|
||||
* Sets the position of a handle.
|
||||
* param handle The handle to set the position from.
|
||||
* param value The new position to set.
|
||||
*/
|
||||
extern AUD_API int AUD_Handle_setPosition(AUD_Handle* handle, float value);
|
||||
extern AUD_API int AUD_Handle_setPosition(AUD_Handle* handle, double value);
|
||||
|
||||
/**
|
||||
* Retrieves the relative of a handle.
|
||||
|
4
extern/audaspace/bindings/C/AUD_Sequence.cpp
vendored
4
extern/audaspace/bindings/C/AUD_Sequence.cpp
vendored
@@ -41,7 +41,7 @@ AUD_API void AUD_Sequence_free(AUD_Sound* sequence)
|
||||
delete sequence;
|
||||
}
|
||||
|
||||
AUD_API AUD_SequenceEntry* AUD_Sequence_add(AUD_Sound* sequence, AUD_Sound* sound, float begin, float end, float skip)
|
||||
AUD_API AUD_SequenceEntry* AUD_Sequence_add(AUD_Sound* sequence, AUD_Sound* sound, double begin, double end, double skip)
|
||||
{
|
||||
if(!sound)
|
||||
return new AUD_SequenceEntry(((Sequence *)sequence->get())->add(AUD_Sound(), begin, end, skip));
|
||||
@@ -160,7 +160,7 @@ AUD_API void AUD_Sequence_setSpeedOfSound(AUD_Sound* sequence, float value)
|
||||
|
||||
|
||||
|
||||
AUD_API void AUD_SequenceEntry_move(AUD_SequenceEntry* entry, float begin, float end, float skip)
|
||||
AUD_API void AUD_SequenceEntry_move(AUD_SequenceEntry* entry, double begin, double end, double skip)
|
||||
{
|
||||
(*entry)->move(begin, end, skip);
|
||||
}
|
||||
|
4
extern/audaspace/bindings/C/AUD_Sequence.h
vendored
4
extern/audaspace/bindings/C/AUD_Sequence.h
vendored
@@ -55,7 +55,7 @@ extern AUD_API void AUD_Sequence_free(AUD_Sound* sequence);
|
||||
* \param skip How much seconds should be skipped at the beginning.
|
||||
* \return The entry added.
|
||||
*/
|
||||
extern AUD_API AUD_SequenceEntry* AUD_Sequence_add(AUD_Sound* sequence, AUD_Sound* sound, float begin, float end, float skip);
|
||||
extern AUD_API AUD_SequenceEntry* AUD_Sequence_add(AUD_Sound* sequence, AUD_Sound* sound, double begin, double end, double skip);
|
||||
|
||||
/**
|
||||
* Removes an entry from the scene.
|
||||
@@ -167,7 +167,7 @@ extern AUD_API void AUD_Sequence_setSpeedOfSound(AUD_Sound* sequence, float valu
|
||||
* \param end The new end time or a negative value if unknown.
|
||||
* \param skip How many seconds to skip at the beginning.
|
||||
*/
|
||||
extern AUD_API void AUD_SequenceEntry_move(AUD_SequenceEntry* entry, float begin, float end, float skip);
|
||||
extern AUD_API void AUD_SequenceEntry_move(AUD_SequenceEntry* entry, double begin, double end, double skip);
|
||||
|
||||
/**
|
||||
* Writes animation data to a sequenced entry.
|
||||
|
4
extern/audaspace/bindings/C/AUD_Special.cpp
vendored
4
extern/audaspace/bindings/C/AUD_Special.cpp
vendored
@@ -175,7 +175,7 @@ static void pauseSound(AUD_Handle* handle)
|
||||
(*handle)->pause();
|
||||
}
|
||||
|
||||
AUD_API AUD_Handle* AUD_pauseAfter(AUD_Handle* handle, float seconds)
|
||||
AUD_API AUD_Handle* AUD_pauseAfter(AUD_Handle* handle, double seconds)
|
||||
{
|
||||
auto device = DeviceManager::getDevice();
|
||||
|
||||
@@ -336,7 +336,7 @@ AUD_API const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start
|
||||
}
|
||||
}
|
||||
|
||||
AUD_API AUD_Device* AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound* sequencer, float volume, float start)
|
||||
AUD_API AUD_Device* AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound* sequencer, float volume, double start)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
4
extern/audaspace/bindings/C/AUD_Special.h
vendored
4
extern/audaspace/bindings/C/AUD_Special.h
vendored
@@ -45,7 +45,7 @@ extern AUD_API float* AUD_readSoundBuffer(const char* filename, float low, float
|
||||
* \param seconds The time in seconds.
|
||||
* \return The silence handle.
|
||||
*/
|
||||
extern AUD_API AUD_Handle* AUD_pauseAfter(AUD_Handle* handle, float seconds);
|
||||
extern AUD_API AUD_Handle* AUD_pauseAfter(AUD_Handle* handle, double seconds);
|
||||
|
||||
/**
|
||||
* Reads a sound into a buffer for drawing at a specific sampling rate.
|
||||
@@ -101,7 +101,7 @@ extern AUD_API const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned in
|
||||
* \param start The start time of the mixdown in the sound scene.
|
||||
* \return The read device for the mixdown.
|
||||
*/
|
||||
extern AUD_API AUD_Device* AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound* sequencer, float volume, float start);
|
||||
extern AUD_API AUD_Device* AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound* sequencer, float volume, double start);
|
||||
|
||||
/**
|
||||
* Initializes audio routines (FFMPEG/JACK if it is enabled).
|
||||
|
1
extern/audaspace/bindings/doc/device.rst
vendored
1
extern/audaspace/bindings/doc/device.rst
vendored
@@ -4,4 +4,5 @@ Device
|
||||
.. currentmodule:: aud
|
||||
.. autoclass:: Device
|
||||
:members:
|
||||
:noindex:
|
||||
|
||||
|
1
extern/audaspace/bindings/doc/handle.rst
vendored
1
extern/audaspace/bindings/doc/handle.rst
vendored
@@ -4,4 +4,5 @@ Handle
|
||||
.. currentmodule:: aud
|
||||
.. autoclass:: Handle
|
||||
:members:
|
||||
:noindex:
|
||||
|
||||
|
3
extern/audaspace/bindings/doc/index.rst
vendored
3
extern/audaspace/bindings/doc/index.rst
vendored
@@ -7,6 +7,7 @@ Welcome to audaspace's documentation!
|
||||
=====================================
|
||||
|
||||
.. automodule:: aud
|
||||
:no-members:
|
||||
|
||||
This documentation is valid for both the Python and C bindings of audaspace. If you are looking for installation instructions check the `C++ API documentation <../index.html>`_. As C is not an object oriented language everything is accessible via functions where the first paramter is always the object. For methods these are named as ``AUD_ClassName_method()`` and properties are accessed via ``AUD_ClassName_property_get/set()``. Python users simply ``import aud`` to access the library.
|
||||
|
||||
@@ -18,7 +19,7 @@ This documentation is valid for both the Python and C bindings of audaspace. If
|
||||
Classes:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:maxdepth: 1
|
||||
|
||||
device
|
||||
sound
|
||||
|
1
extern/audaspace/bindings/doc/sequence.rst
vendored
1
extern/audaspace/bindings/doc/sequence.rst
vendored
@@ -4,4 +4,5 @@ Sequence
|
||||
.. currentmodule:: aud
|
||||
.. autoclass:: Sequence
|
||||
:members:
|
||||
:noindex:
|
||||
|
||||
|
@@ -4,4 +4,5 @@ Sequence Entry
|
||||
.. currentmodule:: aud
|
||||
.. autoclass:: SequenceEntry
|
||||
:members:
|
||||
:noindex:
|
||||
|
||||
|
1
extern/audaspace/bindings/doc/sound.rst
vendored
1
extern/audaspace/bindings/doc/sound.rst
vendored
@@ -4,4 +4,5 @@ Sound
|
||||
.. currentmodule:: aud
|
||||
.. autoclass:: Sound
|
||||
:members:
|
||||
:noindex:
|
||||
|
||||
|
128
extern/audaspace/bindings/doc/tutorials.rst
vendored
128
extern/audaspace/bindings/doc/tutorials.rst
vendored
@@ -4,35 +4,51 @@ Tutorials
|
||||
Introduction
|
||||
------------
|
||||
|
||||
The C and Python binding for audaspace were designed with simplicity in mind. This means however that to use the full capabilities of audaspace, there is no way around the C++ library.
|
||||
The C and Python binding for audaspace were designed with simplicity in mind.
|
||||
This means however that to use the full capabilities of audaspace,
|
||||
there is no way around the C++ library.
|
||||
|
||||
Simple Demo
|
||||
-----------
|
||||
|
||||
The **simple.py** example program contains all the basic building blocks for an application using audaspace. These building blocks are basically the classes :class:`aud.Device`, :class:`aud.Sound` and :class:`aud.Handle`.
|
||||
The **simple.py** example program contains all the basic
|
||||
building blocks for an application using audaspace.
|
||||
These building blocks are basically the classes :class:`aud.Device`,
|
||||
:class:`aud.Sound` and :class:`aud.Handle`.
|
||||
|
||||
We start with importing :mod:`aud` and :mod:`time` as the modules we need for our simple example.
|
||||
We start with importing :mod:`aud` and :mod:`time`
|
||||
as the modules we need for our simple example.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
#!/usr/bin/python
|
||||
import aud, time
|
||||
|
||||
The first step now is to open an output device and this can simply be done by allocating a :class:`aud.Device` object.
|
||||
The first step now is to open an output device and this
|
||||
can simply be done by allocating a :class:`aud.Device` object.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
device = aud.Device()
|
||||
|
||||
To create a sound we can choose to load one from a :func:`aud.Sound.file`, or we use one of our signal generators. We decide to do the latter and create a :func:`aud.Sound.sine` signal with a frequency of 440 Hz.
|
||||
To create a sound we can choose to load one from a :func:`aud.Sound.file`,
|
||||
or we use one of our signal generators. We decide to do the latter
|
||||
and create a :func:`aud.Sound.sine` signal with a frequency of 440 Hz.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
sine = aud.Sound.sine(440)
|
||||
|
||||
.. note:: At this point nothing is playing back yet, :class:`aud.Sound` objects are just descriptions of sounds.
|
||||
.. note:: At this point nothing is playing back yet,
|
||||
:class:`aud.Sound` objects are just descriptions of sounds.
|
||||
|
||||
However instead of a sine wave, we would like to have a square wave to produce a more retro gaming sound. We could of course use the :func:`aud.Sound.square` generator instead of sine, but we want to show how to apply effects, so we apply a :func:`aud.Sound.threshold` which makes a square wave out of our sine too, even if less efficient than directly generating the square wave.
|
||||
However instead of a sine wave, we would like to have a square wave
|
||||
to produce a more retro gaming sound. We could of course use the
|
||||
:func:`aud.Sound.square` generator instead of sine,
|
||||
but we want to show how to apply effects,
|
||||
so we apply a :func:`aud.Sound.threshold`
|
||||
which makes a square wave out of our sine too,
|
||||
even if less efficient than directly generating the square wave.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@@ -40,13 +56,19 @@ However instead of a sine wave, we would like to have a square wave to produce a
|
||||
|
||||
.. note:: The :class:`aud.Sound` class offers generator and effect functions.
|
||||
|
||||
The we can play our sound by calling the :func:`aud.Device.play` method of our device. This method returns a :class:`aud.Handle` which is used to control the playback of the sound.
|
||||
The we can play our sound by calling the
|
||||
:func:`aud.Device.play` method of our device.
|
||||
This method returns a :class:`aud.Handle`
|
||||
which is used to control the playback of the sound.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
handle = device.play(square)
|
||||
|
||||
Now if we do nothing else anymore the application will quit immediately, so we won't hear much of our square wave, so we decide to wait for three seconds before quitting the application by calling :func:`time.sleep`.
|
||||
Now if we do nothing else anymore the application will quit immediately,
|
||||
so we won't hear much of our square wave,
|
||||
so we decide to wait for three seconds before
|
||||
quitting the application by calling :func:`time.sleep`.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@@ -55,29 +77,47 @@ Now if we do nothing else anymore the application will quit immediately, so we w
|
||||
Audioplayer
|
||||
-----------
|
||||
|
||||
Now that we know the basics of audaspace, we can build our own music player easily by just slightly changing the previous program. The **player.py** example does exactly that, let's have a short look at the differences:
|
||||
Now that we know the basics of audaspace,
|
||||
we can build our own music player easily
|
||||
by just slightly changing the previous program.
|
||||
The **player.py** example does exactly that,
|
||||
let's have a short look at the differences:
|
||||
|
||||
Instead of creating a sine signal and thresholding it, we in fact use the :func:`aud.Sound.file` function to load a sound from a file. The filename we pass is the first command line argument our application got.
|
||||
Instead of creating a sine signal and thresholding it,
|
||||
we in fact use the :func:`aud.Sound.file` function to load a sound from a file.
|
||||
The filename we pass is the first command line argument our application got.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
sound = aud.Sound.file(sys.argv[1])
|
||||
|
||||
When the sound gets played back we now want to wait until the whole file has been played, so we use the :data:`aud.Handle.status` property to determine whether the sound finished playing.
|
||||
When the sound gets played back we now want to wait until
|
||||
the whole file has been played, so we use the :data:`aud.Handle.status`
|
||||
property to determine whether the sound finished playing.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
while handle.status:
|
||||
time.sleep(0.1)
|
||||
|
||||
We don't make any error checks if the user actually added a command line argument. As an exercise you could extend this program to play any number of command line supplied files in sequence.
|
||||
We don't make any error checks if the user actually added a command
|
||||
line argument. As an exercise you could extend this program to play
|
||||
any number of command line supplied files in sequence.
|
||||
|
||||
Siren
|
||||
-----
|
||||
|
||||
Let's get a little bit more complex. The **siren.py** example plays a generated siren sound that circles around your head. Depending on how many speakers you have and if the output device used supports the speaker setup, you will hear this effect. With stereo speakers you should at least hear some left-right-panning.
|
||||
Let's get a little bit more complex. The **siren.py** example
|
||||
plays a generated siren sound that circles around your head.
|
||||
Depending on how many speakers you have and if the output
|
||||
device used supports the speaker setup, you will hear this effect.
|
||||
With stereo speakers you should at least hear some left-right-panning.
|
||||
|
||||
We start off again with importing the modules we need and we also define some properties of our siren sound. We want it to consist of two sine sounds with different frequencies. We define a length for the sine sounds and how long a fade in/out should take. We also know already how to open a device.
|
||||
We start off again with importing the modules we need and
|
||||
we also define some properties of our siren sound.
|
||||
We want it to consist of two sine sounds with different frequencies.
|
||||
We define a length for the sine sounds and how long a fade in/out should take.
|
||||
We also know already how to open a device.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@@ -88,27 +128,35 @@ We start off again with importing the modules we need and we also define some pr
|
||||
|
||||
device = aud.Device()
|
||||
|
||||
The next thing to do is to define our sine waves and apply all the required effects. As each of the effect functions returns the corresponding sound, we can easily chain those calls together.
|
||||
The next thing to do is to define our sine waves and apply all the required effects.
|
||||
As each of the effect functions returns the corresponding sound,
|
||||
we can easily chain those calls together.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
high = aud.Sound.sine(880).limit(0, length).fadein(0, fadelength).fadeout(length - fadelength, length)
|
||||
low = aud.Sound.sine(700).limit(0, length).fadein(0, fadelength).fadeout(length - fadelength, length).volume(0.6)
|
||||
|
||||
The next step is to connect the two sines, which we do using the :func:`aud.Sound.join` function.
|
||||
The next step is to connect the two sines,
|
||||
which we do using the :func:`aud.Sound.join` function.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
sound = high.join(low)
|
||||
|
||||
The generated siren sound can now be played back and what we also do is to loop it. Therefore we set the :data:`aud.Handle.loop_count` to a negative value to loop forever.
|
||||
The generated siren sound can now be played back and what we also do is to loop it.
|
||||
Therefore we set the :data:`aud.Handle.loop_count` to a negative value to loop forever.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
handle = device.play(sound)
|
||||
handle.loop_count = -1
|
||||
|
||||
Now we use some timing code to make sure our demo runs for 10 seconds, but we also use the time to update the location of our playing sound, with the :data:`aud.Handle.location` property, which is a three dimensional vector. The trigonometic calculation based on the running time of the program keeps the sound on the XZ plane letting it follow a circle around us.
|
||||
Now we use some timing code to make sure our demo runs for 10 seconds,
|
||||
but we also use the time to update the location of our playing sound,
|
||||
with the :data:`aud.Handle.location` property, which is a three dimensional vector.
|
||||
The trigonometic calculation based on the running time of the program keeps
|
||||
the sound on the XZ plane letting it follow a circle around us.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@@ -119,33 +167,54 @@ Now we use some timing code to make sure our demo runs for 10 seconds, but we al
|
||||
|
||||
handle.location = [math.sin(angle), 0, -math.cos(angle)]
|
||||
|
||||
As an exercise you could try to let the sound come from the far left and go to the far right and a little bit in front of you within the 10 second runtime of the program. With this change you should be able to hear the volume of the sound change, depending on how far it is away from you. Updating the :data:`aud.Handle.velocity` property properly also enables the doppler effect. Compare your solution to the **siren2.py** demo.
|
||||
As an exercise you could try to let the sound come from the far left
|
||||
and go to the far right and a little bit in front of you within the
|
||||
10 second runtime of the program. With this change you should be able
|
||||
to hear the volume of the sound change, depending on how far it is away from you.
|
||||
Updating the :data:`aud.Handle.velocity` property properly also enables the doppler effect.
|
||||
Compare your solution to the **siren2.py** demo.
|
||||
|
||||
Tetris
|
||||
------
|
||||
|
||||
The **tetris.py** demo application shows an even more complex application which generates retro tetris music. Looking at the source code there should be nothing new here, again the functions used from audaspace are the same as in the previous examples. In the :func:`parseNote` function all single notes get joined which leads to a very long chain of sounds. If you think of :func:`aud.Sound.join` as a function that creates a binary tree with the two joined sounds as leaves then the :func:`parseNote` function creates a very unbalanced tree.
|
||||
The **tetris.py** demo application shows an even more
|
||||
complex application which generates retro tetris music.
|
||||
Looking at the source code there should be nothing new here,
|
||||
again the functions used from audaspace are the same as in the previous examples.
|
||||
In the :func:`parseNote` function all single notes get joined which leads
|
||||
to a very long chain of sounds. If you think of :func:`aud.Sound.join`
|
||||
as a function that creates a binary tree with the two joined sounds as
|
||||
leaves then the :func:`parseNote` function creates a very unbalanced tree.
|
||||
|
||||
Insted we could rewrite the code to use two other classes: :class:`aud.Sequence` and :class:`aud.SequenceEntry` to sequence the notes. The **tetris2.py** application does exactly that. Before the while loop we add a variable that stores the current position in the score and create a new :class:`aud.Sequence` object.
|
||||
Insted we could rewrite the code to use two other classes:
|
||||
:class:`aud.Sequence` and :class:`aud.SequenceEntry` to sequence the notes.
|
||||
The **tetris2.py** application does exactly that.
|
||||
Before the while loop we add a variable that stores the current position
|
||||
in the score and create a new :class:`aud.Sequence` object.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
position = 0
|
||||
sequence = aud.Sequence()
|
||||
|
||||
Then in the loop we can create the note simply by chaining the :func:`aud.Sound.square` generator and :func:`aud.Sound.fadein` and :func:`aud.Sound.fadeout` effects.
|
||||
Then in the loop we can create the note simply by chaining the
|
||||
:func:`aud.Sound.square` generator and :func:`aud.Sound.fadein`
|
||||
and :func:`aud.Sound.fadeout` effects.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
note = aud.Sound.square(freq, rate).fadein(0, fadelength).fadeout(length - fadelength, fadelength)
|
||||
|
||||
Now instead of using :func:`aud.Sound.limit` and :func:`aud.Sound.join` we simply add the sound to the sequence.
|
||||
Now instead of using :func:`aud.Sound.limit` and :func:`aud.Sound.join`
|
||||
we simply add the sound to the sequence.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
entry = sequence.add(note, position, position + length, 0)
|
||||
|
||||
The entry returned from the :func:`aud.Sequence.add` function is an object of the :class:`aud.SequenceEntry` class. We can use this entry to mute the note in case it's actually a pause.
|
||||
The entry returned from the :func:`aud.Sequence.add`
|
||||
function is an object of the :class:`aud.SequenceEntry` class.
|
||||
We can use this entry to mute the note in case it's actually a pause.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@@ -158,9 +227,14 @@ Lastly we have to update our position variable.
|
||||
|
||||
position += length
|
||||
|
||||
Now in **tetris2.py** we used the :data:`aud.SequenceEntry.muted` property to show how the :class:`aud.SequenceEntry` class can be used, but it would actually be smarter to not even create a note for pauses and just skip them. You can try to implement this as an exercise and then check out the solution in **tetris3.py**.
|
||||
Now in **tetris2.py** we used the :data:`aud.SequenceEntry.muted`
|
||||
property to show how the :class:`aud.SequenceEntry` class can be used,
|
||||
but it would actually be smarter to not even create a note for pauses and just skip them.
|
||||
You can try to implement this as an exercise and then check out the solution in **tetris3.py**.
|
||||
|
||||
Conclusion
|
||||
----------
|
||||
|
||||
We introduced all five currently available classes in the audaspace Python API. Of course all classes offer a lot more functions than have been used in these demo applications, check out the specific class documentation for more details.
|
||||
We introduced all five currently available classes in the audaspace Python API.
|
||||
Of course all classes offer a lot more functions than have been used in these demo applications,
|
||||
check out the specific class documentation for more details.
|
||||
|
24
extern/audaspace/bindings/python/PyDevice.cpp
vendored
24
extern/audaspace/bindings/python/PyDevice.cpp
vendored
@@ -124,14 +124,16 @@ Device_new(PyTypeObject* type, PyObject* args, PyObject* kwds)
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(M_aud_Device_lock_doc,
|
||||
"lock()\n\n"
|
||||
"Locks the device so that it's guaranteed, that no samples are "
|
||||
".. classmethod:: lock()\n\n"
|
||||
" Locks the device so that it's guaranteed, that no samples are\n"
|
||||
" read from the streams until :meth:`unlock` is called.\n"
|
||||
"This is useful if you want to do start/stop/pause/resume some "
|
||||
" This is useful if you want to do start/stop/pause/resume some\n"
|
||||
" sounds at the same time.\n\n"
|
||||
".. note:: The device has to be unlocked as often as locked to be "
|
||||
" .. note::\n\n"
|
||||
" The device has to be unlocked as often as locked to be\n"
|
||||
" able to continue playback.\n\n"
|
||||
".. warning:: Make sure the time between locking and unlocking is "
|
||||
" .. warning::\n\n"
|
||||
" Make sure the time between locking and unlocking is\n"
|
||||
" as short as possible to avoid clicks.");
|
||||
|
||||
static PyObject *
|
||||
@@ -150,13 +152,13 @@ Device_lock(Device* self)
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(M_aud_Device_play_doc,
|
||||
"play(sound, keep=False)\n\n"
|
||||
".. classmethod:: play(sound, keep=False)\n\n"
|
||||
" Plays a sound.\n\n"
|
||||
" :arg sound: The sound to play.\n"
|
||||
" :type sound: :class:`Sound`\n"
|
||||
" :arg keep: See :attr:`Handle.keep`.\n"
|
||||
" :type keep: bool\n"
|
||||
":return: The playback handle with which playback can be "
|
||||
" :return: The playback handle with which playback can be\n"
|
||||
" controlled with.\n"
|
||||
" :rtype: :class:`Handle`");
|
||||
|
||||
@@ -210,7 +212,7 @@ Device_play(Device* self, PyObject* args, PyObject* kwds)
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(M_aud_Device_stopAll_doc,
|
||||
"stopAll()\n\n"
|
||||
".. classmethod:: stopAll()\n\n"
|
||||
" Stops all playing and paused sounds.");
|
||||
|
||||
static PyObject *
|
||||
@@ -229,8 +231,8 @@ Device_stopAll(Device* self)
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(M_aud_Device_unlock_doc,
|
||||
"unlock()\n\n"
|
||||
"Unlocks the device after a lock call, see :meth:`lock` for "
|
||||
".. classmethod:: unlock()\n\n"
|
||||
" Unlocks the device after a lock call, see :meth:`lock` for\n"
|
||||
" details.");
|
||||
|
||||
static PyObject *
|
||||
@@ -284,7 +286,7 @@ Device_get_channels(Device* self, void* nothing)
|
||||
|
||||
PyDoc_STRVAR(M_aud_Device_distance_model_doc,
|
||||
"The distance model of the device.\n\n"
|
||||
".. seealso:: http://connect.creativelabs.com/openal/Documentation/OpenAL%201.1%20Specification.htm#_Toc199835864");
|
||||
".. seealso:: `OpenAL Documentation <https://www.openal.org/documentation/>`__");
|
||||
|
||||
static PyObject *
|
||||
Device_get_distance_model(Device* self, void* nothing)
|
||||
|
@@ -60,7 +60,7 @@ DynamicMusic_dealloc(DynamicMusicP* self)
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(M_aud_DynamicMusic_addScene_doc,
|
||||
"addScene(scene)\n\n"
|
||||
".. classmethod:: addScene(scene)\n\n"
|
||||
" Adds a new scene.\n\n"
|
||||
" :arg scene: The scene sound.\n"
|
||||
" :type scene: :class:`Sound`\n"
|
||||
@@ -90,7 +90,7 @@ DynamicMusic_addScene(DynamicMusicP* self, PyObject* args)
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(M_aud_DynamicMusic_addTransition_doc,
|
||||
"addTransition(ini, end, transition)\n\n"
|
||||
".. classmethod:: addTransition(ini, end, transition)\n\n"
|
||||
" Adds a new scene.\n\n"
|
||||
" :arg ini: the initial scene foor the transition.\n"
|
||||
" :type ini: int\n"
|
||||
@@ -125,7 +125,7 @@ DynamicMusic_addTransition(DynamicMusicP* self, PyObject* args)
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(M_aud_DynamicMusic_resume_doc,
|
||||
"resume()\n\n"
|
||||
".. classmethod:: resume()\n\n"
|
||||
" Resumes playback of the scene.\n\n"
|
||||
" :return: Whether the action succeeded.\n"
|
||||
" :rtype: bool");
|
||||
@@ -145,7 +145,7 @@ DynamicMusic_resume(DynamicMusicP* self)
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(M_aud_DynamicMusic_pause_doc,
|
||||
"pause()\n\n"
|
||||
".. classmethod:: pause()\n\n"
|
||||
" Pauses playback of the scene.\n\n"
|
||||
" :return: Whether the action succeeded.\n"
|
||||
" :rtype: bool");
|
||||
@@ -165,7 +165,7 @@ DynamicMusic_pause(DynamicMusicP* self)
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(M_aud_DynamicMusic_stop_doc,
|
||||
"stop()\n\n"
|
||||
".. classmethod:: stop()\n\n"
|
||||
" Stops playback of the scene.\n\n"
|
||||
" :return: Whether the action succeeded.\n"
|
||||
" :rtype: bool\n\n");
|
||||
@@ -228,9 +228,9 @@ PyDoc_STRVAR(M_aud_DynamicMusic_position_doc,
|
||||
static int
|
||||
DynamicMusic_set_position(DynamicMusicP* self, PyObject* args, void* nothing)
|
||||
{
|
||||
float position;
|
||||
double position;
|
||||
|
||||
if(!PyArg_Parse(args, "f:position", &position))
|
||||
if(!PyArg_Parse(args, "d:position", &position))
|
||||
return -1;
|
||||
|
||||
try
|
||||
@@ -252,7 +252,7 @@ DynamicMusic_get_position(DynamicMusicP* self, void* nothing)
|
||||
{
|
||||
try
|
||||
{
|
||||
return Py_BuildValue("f", (*reinterpret_cast<std::shared_ptr<aud::DynamicMusic>*>(self->dynamicMusic))->getPosition());
|
||||
return Py_BuildValue("d", (*reinterpret_cast<std::shared_ptr<aud::DynamicMusic>*>(self->dynamicMusic))->getPosition());
|
||||
}
|
||||
catch(aud::Exception& e)
|
||||
{
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user