Compare commits
578 Commits
main/gingo
...
merge/2021
Author | SHA1 | Date |
---|---|---|
Nuno Gonçalves (Ulukyn) | 05555015ea | 3 years ago |
Nuno Gonçalves (Ulukyn) | a8a0d9162e | 3 years ago |
Nimetu | 31a454b21d | 3 years ago |
Meubli | 4924b3563e | 3 years ago |
Nuno | 03b66c18d4 | 3 years ago |
kaetemi | 8775656c3c | 3 years ago |
kaetemi | a9654bd0b4 | 3 years ago |
kaetemi | 3ec625265e | 3 years ago |
kaetemi | a001eac5ad | 3 years ago |
kaetemi | 56008be890 | 3 years ago |
kaetemi | 7127f9f5f4 | 3 years ago |
kaetemi | ca9729b2a0 | 3 years ago |
kaetemi | 671d8bb286 | 3 years ago |
kaetemi | 939836b5bb | 3 years ago |
kaetemi | 088171a589 | 3 years ago |
kaetemi | a81fcd105a | 3 years ago |
kaetemi | 6a7bcf771d | 3 years ago |
kaetemi | bdbd12c625 | 3 years ago |
kaetemi | 549b2b0f22 | 3 years ago |
kaetemi | de7b301af9 | 3 years ago |
kaetemi | 9466258fa8 | 3 years ago |
kaetemi | 996f6c218e | 3 years ago |
kaetemi | 70aecc79c1 | 3 years ago |
kaetemi | 1e923d03ee | 3 years ago |
kaetemi | 41b4ec6bf3 | 3 years ago |
kaetemi | cee0f53c1d | 3 years ago |
kaetemi | 1b162fb3ae | 3 years ago |
Nimetu | 959f7cfbe8 | 3 years ago |
kaetemi | 1c035401c6 | 3 years ago |
Jan Boon | 60cabbe8ee | 3 years ago |
kaetemi | 1eec1fe31e | 3 years ago |
planetmaker | 1f856ecd8e | 3 years ago |
kaetemi | ac9e8f4f5e | 3 years ago |
kaetemi | 33a8128cfc | 4 years ago |
kaetemi | d465191e96 | 4 years ago |
kaetemi | fdc0af158c | 4 years ago |
kaetemi | 5a34b3dc59 | 4 years ago |
kaetemi | 03270f330f | 4 years ago |
kaetemi | 3fbb3242ee | 4 years ago |
kaetemi | 1dd98445ca | 4 years ago |
kaetemi | d607dec79e | 4 years ago |
kaetemi | df69ff8507 | 4 years ago |
kaetemi | efd2dea7e4 | 4 years ago |
kaetemi | bc5d0fae17 | 4 years ago |
kaetemi | 9bd90c47c4 | 4 years ago |
kaetemi | 010c2c84eb | 4 years ago |
kaetemi | 838a362fad | 4 years ago |
kaetemi | 48548c99b8 | 4 years ago |
kaetemi | 34e079c020 | 4 years ago |
kaetemi | 144ebe7f72 | 4 years ago |
kaetemi | 5ef4a97c8a | 4 years ago |
kaetemi | 62ed0d6de9 | 4 years ago |
kaetemi | 7ecc87e3ed | 4 years ago |
kaetemi | 1df9e53dd5 | 4 years ago |
kaetemi | a8f147231d | 4 years ago |
kaetemi | f73be89553 | 4 years ago |
kaetemi | 5a090b2943 | 4 years ago |
kaetemi | 190057b11b | 4 years ago |
kaetemi | 03b9e1f44f | 4 years ago |
kaetemi | 93dc106d95 | 4 years ago |
kaetemi | 5fc80fca13 | 4 years ago |
kaetemi | 3aeef70db8 | 4 years ago |
kaetemi | c71980df2e | 4 years ago |
kaetemi | 34bb64cea7 | 4 years ago |
kaetemi | fe9d945265 | 4 years ago |
kaetemi | 725206c678 | 4 years ago |
kaetemi | 43716f30fb | 4 years ago |
kaetemi | 5117fd742b | 4 years ago |
kaetemi | d79f103525 | 4 years ago |
kaetemi | 151f5270bc | 4 years ago |
kaetemi | be7ee784ec | 4 years ago |
kaetemi | 3d174a1294 | 4 years ago |
kaetemi | 7a6227efcc | 4 years ago |
kaetemi | fd14ad6c94 | 4 years ago |
kaetemi | c4025de222 | 4 years ago |
kaetemi | 5346d2b15e | 4 years ago |
kaetemi | 3cf8ca0959 | 4 years ago |
kaetemi | 68eb9149df | 4 years ago |
kaetemi | 0115e0b745 | 4 years ago |
kaetemi | e0e85d0100 | 4 years ago |
kaetemi | e3ac824104 | 4 years ago |
kaetemi | 56c3248198 | 4 years ago |
kaetemi | 6cabc38192 | 4 years ago |
kaetemi | 3a2c47ac5a | 4 years ago |
kaetemi | d9ac7b70a8 | 4 years ago |
kaetemi | c41cdd76ff | 4 years ago |
kaetemi | ec63cdc818 | 4 years ago |
kaetemi | d235885d70 | 4 years ago |
kaetemi | ef4fb03143 | 4 years ago |
kaetemi | cf2bf5629f | 4 years ago |
kaetemi | ec6b13a88b | 4 years ago |
kaetemi | 2889e81d63 | 4 years ago |
kaetemi | 678d888b5c | 4 years ago |
kaetemi | 6a79a5bf0f | 4 years ago |
kaetemi | b4638c7969 | 4 years ago |
kaetemi | 4028534f2a | 4 years ago |
kaetemi | a3dea88eb1 | 4 years ago |
kaetemi | b1733439d0 | 4 years ago |
kaetemi | c919b1891b | 4 years ago |
kaetemi | 5df65ae36e | 4 years ago |
kaetemi | 56beb7e214 | 4 years ago |
kaetemi | dea792a3f7 | 4 years ago |
kaetemi | c5ccd66749 | 4 years ago |
kaetemi | ff971efc42 | 4 years ago |
kaetemi | 85d1180719 | 4 years ago |
kaetemi | 4d65d5c459 | 4 years ago |
kaetemi | 6f2cd1fa1b | 4 years ago |
kaetemi | 23b188cadc | 4 years ago |
kaetemi | 4fb55a86d3 | 4 years ago |
kaetemi | 3be4999816 | 4 years ago |
kaetemi | d08547121f | 4 years ago |
kaetemi | 0483474ea0 | 4 years ago |
kaetemi | 7f8d286bc5 | 4 years ago |
kaetemi | 2ecaf3ecd9 | 4 years ago |
kaetemi | 7a95ff23f3 | 4 years ago |
kaetemi | cb47713119 | 4 years ago |
kaetemi | 8adf8e228a | 4 years ago |
kaetemi | 7e7494f897 | 4 years ago |
kaetemi | 9cf4677005 | 4 years ago |
kaetemi | 8f40fdb7b4 | 4 years ago |
kaetemi | 7709977b48 | 4 years ago |
kaetemi | 25b403556f | 4 years ago |
kaetemi | 77e69856d4 | 4 years ago |
kaetemi | b6e79ee3e1 | 4 years ago |
kaetemi | 0a1689ae10 | 4 years ago |
kaetemi | cda6770adb | 4 years ago |
kaetemi | d9b59c1fdc | 4 years ago |
kaetemi | 5a8fa2052b | 4 years ago |
kaetemi | 31f31e6d69 | 4 years ago |
kaetemi | 187ef3af19 | 4 years ago |
kaetemi | 880f850be7 | 4 years ago |
kaetemi | 0fe48635f5 | 4 years ago |
kaetemi | 59b5d1228f | 4 years ago |
kaetemi | b594606862 | 4 years ago |
kaetemi | 10fc562e07 | 4 years ago |
kaetemi | 7175e7f9ed | 4 years ago |
kaetemi | a5d0f904a4 | 4 years ago |
kaetemi | 45668dcbfe | 4 years ago |
kaetemi | 614da137ac | 4 years ago |
kaetemi | 1d06892f16 | 4 years ago |
kaetemi | 08c094e957 | 4 years ago |
kaetemi | 681f133400 | 4 years ago |
kaetemi | cac99dc9ab | 4 years ago |
kaetemi | d30a80acea | 4 years ago |
kaetemi | 486af5ec85 | 4 years ago |
kaetemi | 9230eb1621 | 4 years ago |
kaetemi | 08a28193b4 | 4 years ago |
kaetemi | 8ad0536eed | 4 years ago |
kaetemi | 211d4d276d | 4 years ago |
kaetemi | 378bef8db3 | 4 years ago |
kaetemi | e9080405fc | 4 years ago |
kaetemi | 090ff7d509 | 4 years ago |
kaetemi | 39190cde60 | 4 years ago |
kaetemi | db211ffff7 | 4 years ago |
kaetemi | c3dcdd25de | 4 years ago |
kaetemi | 3b993c6cda | 4 years ago |
kaetemi | bc9d15a149 | 4 years ago |
kaetemi | e067e0eeeb | 4 years ago |
kaetemi | 7873a839ef | 4 years ago |
kaetemi | 3352401f24 | 4 years ago |
kaetemi | 549a015847 | 4 years ago |
kaetemi | fb1557c08e | 4 years ago |
kaetemi | a3626de8bb | 4 years ago |
kaetemi | 0045696546 | 4 years ago |
kaetemi | a5dd6aa857 | 4 years ago |
kaetemi | 5da1678357 | 4 years ago |
kaetemi | 694338302e | 4 years ago |
kaetemi | 5b22e0950a | 4 years ago |
kaetemi | 20ed0a4412 | 4 years ago |
kaetemi | c8ecf0a756 | 4 years ago |
kaetemi | d07e219439 | 4 years ago |
kaetemi | 92bfb0aafb | 4 years ago |
kaetemi | 4407fc2970 | 4 years ago |
kaetemi | 3f63f27143 | 4 years ago |
kaetemi | cb9094f091 | 4 years ago |
kaetemi | 30117e92be | 4 years ago |
kaetemi | b9de2e99a3 | 4 years ago |
kaetemi | 77f92c72a9 | 4 years ago |
kaetemi | b33ff3cb93 | 4 years ago |
kaetemi | da9c5173a6 | 4 years ago |
kaetemi | 3ec5a87d40 | 4 years ago |
kaetemi | 2cd2b9502f | 4 years ago |
kaetemi | 88e2ebd31c | 4 years ago |
kaetemi | 492865deed | 4 years ago |
kaetemi | a1023f923f | 4 years ago |
kaetemi | ce8acd4ca2 | 4 years ago |
kaetemi | 9d722bb70f | 4 years ago |
kaetemi | 59c1c340b8 | 4 years ago |
kaetemi | 43af8e6695 | 4 years ago |
kaetemi | f128e0807c | 4 years ago |
kaetemi | 8cecbb4a7d | 4 years ago |
kaetemi | feb7e7a812 | 4 years ago |
kaetemi | 8b6c3276e4 | 4 years ago |
kaetemi | deb1c7c131 | 4 years ago |
kaetemi | fc3f0355a5 | 4 years ago |
kaetemi | 578cef6c85 | 4 years ago |
kaetemi | 413ca990d0 | 4 years ago |
kaetemi | 37d52231ef | 4 years ago |
kaetemi | f8cb53bfd8 | 4 years ago |
kaetemi | 90225d0011 | 4 years ago |
kaetemi | e08079fe5f | 4 years ago |
kaetemi | a188c6b38a | 4 years ago |
kaetemi | 3f0bacd374 | 4 years ago |
kaetemi | f9b7dbd4cb | 4 years ago |
kaetemi | 449c90a4b0 | 4 years ago |
kaetemi | dba5d1a1ca | 4 years ago |
kaetemi | bce886595e | 4 years ago |
kaetemi | e97cf09e04 | 4 years ago |
kaetemi | dbe34b0c8f | 4 years ago |
kaetemi | 7a647ab76d | 4 years ago |
kaetemi | 113f3f97d7 | 4 years ago |
kaetemi | 28fd4d9011 | 4 years ago |
kaetemi | fdbe73937a | 4 years ago |
kaetemi | d58854ab33 | 4 years ago |
kaetemi | b4b701f90e | 4 years ago |
Xtarsia | 35f30e566b | 4 years ago |
kaetemi | c341631dbf | 4 years ago |
kaetemi | 59ee36332c | 4 years ago |
kaetemi | 45bc21e5c9 | 4 years ago |
kaetemi | cf16ec5c44 | 4 years ago |
kaetemi | 817ca5bf2b | 4 years ago |
kaetemi | 7eeb845768 | 4 years ago |
kaetemi | 6d975e9879 | 4 years ago |
kaetemi | 305ed94561 | 4 years ago |
kaetemi | ebc220fedb | 4 years ago |
kaetemi | a7e880e724 | 4 years ago |
Xtarsia | 607b708465 | 4 years ago |
kaetemi | 144088af13 | 4 years ago |
kaetemi | 6dfff83589 | 4 years ago |
kaetemi | b5f320af33 | 4 years ago |
kaetemi | d1769c586f | 4 years ago |
kaetemi | 68b0fbeae8 | 4 years ago |
kaetemi | 879b792c6a | 4 years ago |
kaetemi | 431b1140e9 | 4 years ago |
kaetemi | 6f2e45d352 | 4 years ago |
kaetemi | 4169349166 | 4 years ago |
kaetemi | c624984da1 | 4 years ago |
kaetemi | b96d96f004 | 4 years ago |
kaetemi | 3609d6369a | 4 years ago |
kaetemi | 46541a700c | 4 years ago |
kaetemi | 8d4c0d0ef1 | 4 years ago |
kaetemi | be11ae1fb6 | 4 years ago |
kaetemi | f203559ecb | 4 years ago |
kaetemi | be28e102ec | 4 years ago |
kaetemi | d512d10f18 | 4 years ago |
kaetemi | 24ceb5df04 | 4 years ago |
kaetemi | bd0c694970 | 4 years ago |
kaetemi | 5769a3599e | 4 years ago |
kaetemi | 176e0975f6 | 4 years ago |
kaetemi | 7c4a2f857d | 4 years ago |
kaetemi | bc3a602ebc | 4 years ago |
kaetemi | 9eb7481c06 | 4 years ago |
kaetemi | 66debd7ebe | 4 years ago |
kaetemi | f0430ec8ad | 4 years ago |
kaetemi | caa4eea391 | 4 years ago |
kaetemi | 3604088713 | 4 years ago |
kaetemi | cd4b746bfa | 4 years ago |
kaetemi | 60f61caa2c | 4 years ago |
kaetemi | a5e9542f2f | 4 years ago |
kaetemi | 7b1136ff0b | 4 years ago |
kaetemi | abd5c38a80 | 4 years ago |
kaetemi | 2a37a76cb5 | 4 years ago |
kaetemi | 4c701386f4 | 4 years ago |
kaetemi | e9feca648a | 4 years ago |
kaetemi | 4ae411968e | 4 years ago |
kaetemi | aa2574e10a | 4 years ago |
kaetemi | a2c7c4dc25 | 4 years ago |
kaetemi | 29f313853d | 4 years ago |
kaetemi | 625d269c11 | 4 years ago |
kaetemi | dc12e2dea3 | 4 years ago |
kaetemi | ae1f4d2df3 | 4 years ago |
Xtarsia | dac3cc2292 | 4 years ago |
kaetemi | 9883454926 | 4 years ago |
kaetemi | b89441d673 | 4 years ago |
kaetemi | 35e18597ee | 4 years ago |
kaetemi | 6787bbf378 | 4 years ago |
kaetemi | a3e762f401 | 4 years ago |
kaetemi | 380722e2e6 | 4 years ago |
kaetemi | d11936a035 | 4 years ago |
kaetemi | c791fe5742 | 4 years ago |
Xtarsia | 5de288a2e7 | 4 years ago |
kaetemi | c08163dcb6 | 4 years ago |
kaetemi | ea6ba2ec97 | 4 years ago |
kaetemi | 9c6918d448 | 4 years ago |
kaetemi | 9cc899a3a6 | 4 years ago |
kaetemi | e773027c6d | 4 years ago |
kaetemi | 3e675b1422 | 4 years ago |
kaetemi | 5934147d9e | 4 years ago |
Xtarsia | 4ca95e1188 | 4 years ago |
kaetemi | 0499fce27d | 4 years ago |
kaetemi | 2295769ad5 | 4 years ago |
kaetemi | 1cfe858588 | 4 years ago |
kaetemi | 374601e8d1 | 4 years ago |
kaetemi | d86c000de2 | 4 years ago |
kaetemi | fa086ea4b9 | 4 years ago |
kaetemi | dcf242c3b1 | 4 years ago |
kaetemi | d31eb606eb | 4 years ago |
kaetemi | 46020d345c | 4 years ago |
kaetemi | 2b2b0a7d48 | 4 years ago |
Xtarsia | 277a854f8d | 4 years ago |
kaetemi | 52c7c16f69 | 4 years ago |
kaetemi | 92ee96a783 | 4 years ago |
kaetemi | b61ad76ac2 | 4 years ago |
Xtarsia | 7a9accde11 | 4 years ago |
kaetemi | d0f9685ee8 | 4 years ago |
Xtarsia | a2b68113ec | 4 years ago |
kaetemi | ec4e2e188e | 4 years ago |
kaetemi | 9580bd5ec0 | 4 years ago |
kaetemi | d2900df0f6 | 4 years ago |
kaetemi | ae876e481a | 4 years ago |
kaetemi | 8594b479e2 | 4 years ago |
Jan Boon | fbab39451f | 4 years ago |
kaetemi | 05501cf30b | 4 years ago |
kaetemi | 357bb28ef2 | 4 years ago |
kaetemi | 5056d3a72a | 4 years ago |
kaetemi | 91a44fd5b5 | 4 years ago |
kaetemi | a51597cf0b | 4 years ago |
kaetemi | f5553dfb59 | 4 years ago |
kaetemi | b4dc60f163 | 4 years ago |
kaetemi | 2859693c1e | 4 years ago |
kaetemi | 6853098df9 | 4 years ago |
kaetemi | c71f516ed2 | 4 years ago |
kaetemi | ccb141672f | 4 years ago |
kaetemi | 4a7a153a3e | 4 years ago |
kaetemi | e3ec67a698 | 4 years ago |
kaetemi | 505e13cd1e | 4 years ago |
Xtarsia | 14a0c5d471 | 4 years ago |
kaetemi | 7a035466da | 5 years ago |
kaetemi | 64fd9f0b78 | 5 years ago |
kaetemi | a7933bc818 | 5 years ago |
kaetemi | 669237dbae | 5 years ago |
kaetemi | a606684e34 | 5 years ago |
kaetemi | 4b4c14dabf | 5 years ago |
kaetemi | 7e232462d0 | 5 years ago |
kaetemi | 09cb0ea5d0 | 5 years ago |
kaetemi | f5eae12b80 | 5 years ago |
kaetemi | 1452a6ba6d | 5 years ago |
kaetemi | a6713b14a6 | 5 years ago |
kaetemi | b505ff9e13 | 5 years ago |
kaetemi | 154ae55165 | 5 years ago |
kaetemi | ada4e5bfbf | 5 years ago |
kaetemi | fb3e97db1d | 5 years ago |
kaetemi | 61974ec15c | 5 years ago |
kaetemi | af6c6b64c3 | 5 years ago |
kaetemi | 0528df7f0b | 5 years ago |
kaetemi | 18d2e393cf | 5 years ago |
kaetemi | 3da77ce061 | 5 years ago |
kaetemi | 90e1297c1d | 5 years ago |
kaetemi | 90931485ba | 5 years ago |
kaetemi | 195e9b1439 | 5 years ago |
kaetemi | 0f50806927 | 5 years ago |
kaetemi | 7d01d8411d | 5 years ago |
kaetemi | c1a3008ca0 | 5 years ago |
kaetemi | 3f39669c9a | 5 years ago |
kaetemi | 51ec683eea | 5 years ago |
kaetemi | ddc9cdabc4 | 5 years ago |
kaetemi | 324c69c8cc | 5 years ago |
kaetemi | 05fdc723f1 | 5 years ago |
Jan Boon | 4a55facb0c | 5 years ago |
kaetemi | def3d25249 | 5 years ago |
kaetemi | f32a5d95d4 | 5 years ago |
kaetemi | 5f3675446c | 5 years ago |
kaetemi | f39a7fe349 | 5 years ago |
kaetemi | 3117c55424 | 5 years ago |
Jan Boon | 185d71365e | 5 years ago |
kaetemi | 02c40934ef | 5 years ago |
kaetemi | f892608865 | 5 years ago |
Jan Boon | 9d1545bbe2 | 5 years ago |
kaetemi | 71a22b43db | 5 years ago |
kaetemi | 5a543239bb | 5 years ago |
Jan Boon | 6cdee90e4e | 5 years ago |
kaetemi | 17d91ad243 | 5 years ago |
kaetemi | 33bf80a3c7 | 5 years ago |
Jan Boon | 1f7fca7df3 | 5 years ago |
Jan Boon | a964da41f7 | 5 years ago |
kaetemi | a900a45153 | 5 years ago |
kaetemi | 0cfe43aa26 | 5 years ago |
kaetemi | 3e7035c6dd | 5 years ago |
kaetemi | ea021e1d96 | 5 years ago |
kaetemi | 55c3939789 | 5 years ago |
kaetemi | 7a71caca6e | 5 years ago |
kaetemi | 9dc0020b61 | 5 years ago |
kaetemi | c7b27c8d70 | 5 years ago |
kaetemi | 6c6a83bc5d | 5 years ago |
Jan Boon | 93f6770fe4 | 5 years ago |
Jan Boon | a94094f865 | 5 years ago |
Jan Boon | 746f033b5c | 5 years ago |
Jan Boon | 5d7e4a921f | 5 years ago |
Jan Boon | f48f4d4555 | 5 years ago |
Jan Boon | 31e1cd6feb | 5 years ago |
Jan Boon | 107728c944 | 5 years ago |
kaetemi | 4053220060 | 5 years ago |
kaetemi | 525db6976a | 5 years ago |
kaetemi | f344c0568c | 5 years ago |
kaetemi | 2d32bc2371 | 5 years ago |
kaetemi | 9d89d3dfca | 5 years ago |
kaetemi | 024447d9fb | 5 years ago |
kaetemi | d496d54ac4 | 5 years ago |
kaetemi | aec03f6234 | 5 years ago |
kaetemi | 1dce83d279 | 5 years ago |
kaetemi | 774b91df9c | 5 years ago |
kaetemi | d5b959db7e | 5 years ago |
kaetemi | b547fd62cb | 5 years ago |
kaetemi | eecd6f1f2c | 5 years ago |
kaetemi | 3f982c2214 | 5 years ago |
kaetemi | b232d0026a | 5 years ago |
kaetemi | be32f02a76 | 5 years ago |
Jan Boon | 48bc27c1e3 | 5 years ago |
kaetemi | 38a7b763d0 | 5 years ago |
kaetemi | f18f4196b4 | 5 years ago |
kaetemi | 35a9e747f7 | 5 years ago |
kaetemi | 8f1d0ebf23 | 5 years ago |
kaetemi | dabf75dbcf | 5 years ago |
kaetemi | a722988987 | 5 years ago |
kaetemi | c914e6fdf6 | 5 years ago |
kaetemi | ad4290f2c9 | 5 years ago |
kaetemi | 739730127d | 5 years ago |
kaetemi | 2cb353438b | 5 years ago |
kaetemi | 46786a1185 | 5 years ago |
kaetemi | 8daffed6c2 | 5 years ago |
kaetemi | 2a917ede27 | 5 years ago |
Jan Boon | 31a819f254 | 5 years ago |
kaetemi | ad15ada3ef | 5 years ago |
kaetemi | 2927b3dfb9 | 5 years ago |
kaetemi | e0a14d79ac | 5 years ago |
kaetemi | ba3c008767 | 5 years ago |
kaetemi | 8c6677dba6 | 5 years ago |
kaetemi | b6dbb65918 | 5 years ago |
Jan Boon | 4d742741d1 | 5 years ago |
kaetemi | 8dd7c52f8a | 5 years ago |
kaetemi | fcfc86c83e | 5 years ago |
kaetemi | f36c979c2e | 5 years ago |
kaetemi | 8bcccefd11 | 5 years ago |
kaetemi | 71c7e31806 | 5 years ago |
kaetemi | 6d5eb14d4f | 5 years ago |
kaetemi | 52d8304659 | 5 years ago |
kaetemi | 3cfedfcf9a | 5 years ago |
kaetemi | 0b47322d6c | 5 years ago |
kaetemi | bfed12711d | 5 years ago |
kaetemi | 84e924b496 | 5 years ago |
kaetemi | 613bb7ccd0 | 5 years ago |
kaetemi | 623ffc6be7 | 5 years ago |
kaetemi | 319ad4b0bf | 5 years ago |
kaetemi | de6eae7e0f | 5 years ago |
kaetemi | b159620fcc | 5 years ago |
kaetemi | 0e08489315 | 5 years ago |
kaetemi | 2ad9e1c78a | 5 years ago |
kaetemi | 8d7ce91b56 | 5 years ago |
kaetemi | 2d1d9c1b0b | 5 years ago |
kaetemi | 85e7b594c6 | 5 years ago |
kaetemi | f980988ae4 | 5 years ago |
kaetemi | ee8ccf13b7 | 5 years ago |
kaetemi | 8895eb88d6 | 5 years ago |
kaetemi | 679c7d7ac3 | 5 years ago |
kaetemi | ba6378e07c | 5 years ago |
kaetemi | b06b0fb08c | 5 years ago |
kaetemi | 81176f102f | 5 years ago |
Jan Boon | 2ad1b76886 | 5 years ago |
Jan Boon | b0fdfaeca9 | 5 years ago |
kaetemi | 4c7c240775 | 5 years ago |
kaetemi | ff87af8423 | 5 years ago |
kaetemi | afee5db9e2 | 5 years ago |
kaetemi | 0bae206bb2 | 5 years ago |
kaetemi | c57c9a1cf6 | 5 years ago |
Jan Boon | 0c8e9f7640 | 5 years ago |
kaetemi | 2b80ec75a9 | 5 years ago |
kaetemi | 0a2ce3c522 | 5 years ago |
kaetemi | 4ca10eb38c | 5 years ago |
kaetemi | 636d8dae55 | 5 years ago |
kaetemi | ecc2085b70 | 5 years ago |
kaetemi | 9b9829a6ab | 5 years ago |
kaetemi | 916be9833c | 5 years ago |
kaetemi | bb3f4052a7 | 5 years ago |
kaetemi | 439cae285d | 5 years ago |
Nimetu | ddd0a7507e | 5 years ago |
kaetemi | c54897bd4f | 5 years ago |
kaetemi | 94ad75bb72 | 5 years ago |
kaetemi | 6ed45fef0b | 5 years ago |
kaetemi | 85c9d4e4b6 | 5 years ago |
kaetemi | 7ac4eb3097 | 5 years ago |
kaetemi | 2f29d03d86 | 5 years ago |
kaetemi | f64ba76bfc | 5 years ago |
kaetemi | aa2386151f | 5 years ago |
kaetemi | 7505fae6d1 | 5 years ago |
kaetemi | f7bdd7ecd7 | 5 years ago |
kaetemi | d70c4a215d | 5 years ago |
kaetemi | 71a412c698 | 5 years ago |
kaetemi | 98a41b75bd | 5 years ago |
kaetemi | a86fb4e195 | 5 years ago |
kaetemi | 3ff031b5ff | 5 years ago |
Nimetu | 249ce945f1 | 5 years ago |
Nimetu | a6a8cb99f5 | 5 years ago |
ulukyn | f11bc06541 | 6 years ago |
Nimetu | 460eb92969 | 5 years ago |
Nimetu | ae68b543b8 | 5 years ago |
Inky | a5a6c321af | 6 years ago |
Inky | 89fa8ca0ac | 6 years ago |
Inky | 9c82a0436f | 6 years ago |
Inky | fb60e00acc | 6 years ago |
Inky | 0a48c4a6e3 | 6 years ago |
Nimetu | 1eb1b118f3 | 6 years ago |
Nimetu | 3b0324ad08 | 6 years ago |
Inky | 4baed9c664 | 6 years ago |
Inky | 41c3d0cbe0 | 6 years ago |
Inky | ccfffe0a8c | 6 years ago |
Inky | 17b96e4819 | 6 years ago |
Inky | 00d31f09c6 | 6 years ago |
ulukyn | 89c22b04a2 | 6 years ago |
ulukyn | cf4cb55f3e | 6 years ago |
ulukyn | 1b19cb4809 | 6 years ago |
Inky | fe4c58df42 | 6 years ago |
ulukyn | 498c02fa4d | 6 years ago |
ulukyn | a7e75b1c6c | 6 years ago |
Inky | d73ea16682 | 6 years ago |
Inky | 64987e8ed6 | 6 years ago |
Inky | 7230a84031 | 6 years ago |
Inky | 36918ac919 | 6 years ago |
Inky | 0683604ada | 6 years ago |
Inky | 038a3bca96 | 6 years ago |
Nimetu | a3bdd3dda5 | 6 years ago |
Inky | 4121a61c85 | 6 years ago |
Inky | 2f2329c67f | 6 years ago |
ulukyn | 9780decca0 | 6 years ago |
Inky | cad47321a3 | 6 years ago |
Inky | 417865bb3a | 6 years ago |
Ulukyn | 36036faffd | 6 years ago |
ulukyn | c0037fc55a | 6 years ago |
Inky | f96289dfbe | 6 years ago |
Riasan | e794b5dd01 | 6 years ago |
ulukyn | 11132f08e6 | 6 years ago |
Riasan | 2d83507b55 | 6 years ago |
ulukyn | 0debc7e6d6 | 6 years ago |
ulukyn | 698c71f137 | 6 years ago |
ulukyn | dcf959fe3d | 6 years ago |
Nimetu | 892d11d2be | 6 years ago |
kervala | 8f61819d43 | 6 years ago |
ulukyn | 0e7380599e | 6 years ago |
kervala | cf1df3e4de | 6 years ago |
ulukyn | 4beecdc81b | 6 years ago |
ulukyn | 0b970371a3 | 6 years ago |
ulukyn | 48f3d3b244 | 6 years ago |
ulukyn | e9e2590d53 | 7 years ago |
ulukyn | f7f1a6035e | 7 years ago |
ulukyn | 4f75f92610 | 7 years ago |
ulukyn | a50bd10b84 | 7 years ago |
ulukyn | 57406f6a8c | 7 years ago |
ulukyn | 65acd3bf9d | 7 years ago |
ulukyn | 16ce2e454c | 7 years ago |
ulukyn | c7bdaf513c | 7 years ago |
ulukyn | 724158c74c | 7 years ago |
Nuno Gonçalves | ed798cb62a | 7 years ago |
ulukyn | 971287ae78 | 7 years ago |
ulukyn | c56d2e136d | 7 years ago |
ulukyn | 3652b23bbb | 7 years ago |
ulukyn | 8b1ead9e77 | 7 years ago |
ulukyn | 5d7c8777a1 | 7 years ago |
ulukyn | 1a52cc3cb1 | 7 years ago |
ulukyn | 0093170ee9 | 7 years ago |
ulukyn | 50d6ae91ae | 7 years ago |
ulukyn | af6975ae11 | 7 years ago |
ulukyn | 0b0b980510 | 7 years ago |
ulukyn | f917d22b71 | 7 years ago |
ulukyn | 61cee990fc | 7 years ago |
ulukyn | fd458d5751 | 7 years ago |
ulukyn@gmail.com | 5c41e79ce0 | 7 years ago |
Riasan | 0b27a27a4c | 7 years ago |
ulukyn@gmail.com | 4f33715b06 | 7 years ago |
ulukyn@gmail.com | b623bb11f5 | 7 years ago |
ulukyn@gmail.com | 3baf7fdb12 | 7 years ago |
ulukyn@gmail.com | 4c91c418d4 | 7 years ago |
ulukyn@gmail.com | 99a949b889 | 7 years ago |
kaetemi | 998daa5c56 | 10 years ago |
kaetemi | a3a347fab4 | 10 years ago |
kaetemi | ba42ed3320 | 10 years ago |
kaetemi | 1359bbf8c2 | 10 years ago |
kaetemi | 5d9f3ce668 | 10 years ago |
kaetemi | 9fec239dfb | 10 years ago |
kaetemi | 06e9d20850 | 10 years ago |
@ -0,0 +1,18 @@
|
||||
*.cpp ident
|
||||
*.h ident
|
||||
|
||||
# Set the default behavior, in case people don't have core.autocrlf set.
|
||||
* text=auto
|
||||
|
||||
# Explicitly declare text files you want to always be normalized and converted
|
||||
# to native line endings on checkout.
|
||||
*.c text
|
||||
*.h text
|
||||
*.cs text
|
||||
*.jade text
|
||||
*.json text
|
||||
*.js text
|
||||
*.css text
|
||||
*.htm text
|
||||
*.txt text
|
||||
*.sh text eol=lf
|
@ -1,28 +1,27 @@
|
||||
4eddbaff0c5e5d685db96ee3e8427aa0fd96ac83 ryzomcore/v0.8.0
|
||||
00d9b6e29e95f56785fbf85abe60afd34674f402 ryzomcore/v0.9.0
|
||||
79776c337176dd5b02e1a74fe5dfb703b91747aa ryzomcore/v0.9.1
|
||||
fedf2aa443d09707beed814b0f499c6a5519cc84 ryzomcore/v0.10.0
|
||||
edaa3624a56420b02ccc64c26059801a389927ee ryzomcore/v0.11.0
|
||||
e3fe4855f22c3e75722e015dc33c091c340b3ad7 ryzomcore/v0.11.1
|
||||
9e583b717fd63be0be9fd60b99087abf1691ea49 ryzomcore/v0.11.2
|
||||
bfe5628e14a024ba7ea32e4b326ae433a07856b9 ryzomcore/v0.11.3
|
||||
9a6120735daa97c96ac5d85ca35c7f21f607bd87 ryzomcore/v0.12.0
|
||||
3e17907af67e8d66d80e6b714707bbf912607f2a ryzom-patch-3.0.0
|
||||
153e0b605c9e0c83ba05b6428c62838b49cc84b2 ryzom-patch-3.0.1
|
||||
9d41f2994d44b9aad92b83f945f114e4b6bed44a ryzom-patch-3.0.2
|
||||
4300cc14aad098b1f86ea4c55577b7fa4a4cb5d2 ryzom-patch-3.1.0
|
||||
d4060f217f4f834cc62a33f2f1ccdf3c28298066 ryzom-patch-3.1.0-hotfix
|
||||
043aaeb3d8a2a54177581b57bda87a9deaad510e ryzom-patch-3.1.0-april_patch
|
||||
4036ecf59e83960f03acebc2089eb2ff5eeaed0a ryzom-patch-3.2.0
|
||||
18403bb9485da3d9742c6f007a16d5619ebfb196 ryzom-patch-3.2.1
|
||||
822ff8f8917ad66e09e2c21c983282f6f693b9f6 ryzom-patch-3.3.0
|
||||
00dde390a394fce9da06c2f3264140282158d39f ryzom-patch-3.3.0
|
||||
dcd4c4d161ef775136e18c7e8f5072b75dede27e ryzom-patch-3.3.1
|
||||
fc4be8ebec5ca754ef4453bc6a9faef90837c674 ryzom-patch-3.4.0
|
||||
70eba02e8eab6920586dbabf74e9e8180c729980 ryzom-patch-3.4.0 Steam Fix
|
||||
3941482843f9cd130cfc16634efc08d34a98ed35 ryzom-patch-3.4.0 Atysmas
|
||||
ecae9feb4cceb78103e5d7236caccaf450796cdb ryzom-patch-3.5.0
|
||||
95783afa226f241062134eb62f4323295d29ac84 ryzom-patch-3.5.0.9637
|
||||
2102fb276eb69d49ed4923042215312a63c47c08 Live-746
|
||||
8eb94c3549be898fdc4a7c6d791d2477bdc11a18 ryzomcore/v1.0.1
|
||||
3e92c7104c20d6bc6c2147b4b5fc289e8621d322 ryzomcore/v1.0.0
|
||||
4eddbaff0c5e5d685db96ee3e8427aa0fd96ac83 v0.8.0
|
||||
00d9b6e29e95f56785fbf85abe60afd34674f402 v0.9.0
|
||||
79776c337176dd5b02e1a74fe5dfb703b91747aa v0.9.1
|
||||
fedf2aa443d09707beed814b0f499c6a5519cc84 v0.10.0
|
||||
edaa3624a56420b02ccc64c26059801a389927ee v0.11.0
|
||||
e3fe4855f22c3e75722e015dc33c091c340b3ad7 v0.11.1
|
||||
9e583b717fd63be0be9fd60b99087abf1691ea49 v0.11.2
|
||||
bfe5628e14a024ba7ea32e4b326ae433a07856b9 v0.11.3
|
||||
9a6120735daa97c96ac5d85ca35c7f21f607bd87 v0.12.0
|
||||
3e92c7104c20d6bc6c2147b4b5fc289e8621d322 v1.0.0
|
||||
8eb94c3549be898fdc4a7c6d791d2477bdc11a18 v1.0.1
|
||||
3e17907af67e8d66d80e6b714707bbf912607f2a ryzom/3.0.0
|
||||
153e0b605c9e0c83ba05b6428c62838b49cc84b2 ryzom/3.0.1
|
||||
9d41f2994d44b9aad92b83f945f114e4b6bed44a ryzom/3.0.2
|
||||
4300cc14aad098b1f86ea4c55577b7fa4a4cb5d2 ryzom/3.1.0
|
||||
d4060f217f4f834cc62a33f2f1ccdf3c28298066 ryzom/3.1.0-hotfix
|
||||
043aaeb3d8a2a54177581b57bda87a9deaad510e ryzom/3.1.0-april_patch
|
||||
4036ecf59e83960f03acebc2089eb2ff5eeaed0a ryzom/3.2.0
|
||||
18403bb9485da3d9742c6f007a16d5619ebfb196 ryzom/3.2.1
|
||||
822ff8f8917ad66e09e2c21c983282f6f693b9f6 ryzom/3.3.0
|
||||
00dde390a394fce9da06c2f3264140282158d39f ryzom/3.3.0
|
||||
dcd4c4d161ef775136e18c7e8f5072b75dede27e ryzom/3.3.1
|
||||
fc4be8ebec5ca754ef4453bc6a9faef90837c674 ryzom/3.4.0
|
||||
70eba02e8eab6920586dbabf74e9e8180c729980 ryzom/3.4.0-steam_fix
|
||||
3941482843f9cd130cfc16634efc08d34a98ed35 ryzom/3.4.0-atysmas
|
||||
ecae9feb4cceb78103e5d7236caccaf450796cdb ryzom/3.5.0
|
||||
95783afa226f241062134eb62f4323295d29ac84 ryzom/3.5.0.9637
|
||||
|
@ -0,0 +1,99 @@
|
||||
# Locate Lua library
|
||||
# This module defines
|
||||
# LUA54_FOUND, if false, do not try to link to Lua
|
||||
# LUA_LIBRARIES
|
||||
# LUA_INCLUDE_DIR, where to find lua.h
|
||||
# LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8)
|
||||
#
|
||||
# Note that the expected include convention is
|
||||
# #include "lua.h"
|
||||
# and not
|
||||
# #include <lua/lua.h>
|
||||
# This is because, the lua location is not standardized and may exist
|
||||
# in locations other than lua/
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2007-2009 Kitware, Inc.
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
find_path(LUA_INCLUDE_DIR lua.h
|
||||
HINTS
|
||||
ENV LUA_DIR
|
||||
PATH_SUFFIXES include/lua54 include/lua5.4 include/lua-5.4 include/lua include
|
||||
PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/sw # Fink
|
||||
/opt/local # DarwinPorts
|
||||
/opt/csw # Blastwave
|
||||
/opt
|
||||
)
|
||||
|
||||
FIND_LIBRARY(LUA_LIBRARY
|
||||
NAMES lua54 lua5.4 lua-5.4 lua
|
||||
HINTS
|
||||
$ENV{LUA_DIR}
|
||||
PATH_SUFFIXES lib64 lib
|
||||
PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
)
|
||||
|
||||
FIND_LIBRARY(LUA_LIBRARY_DEBUG
|
||||
NAMES lua54-d lua5.4-d lua-5.4-d lua-d lua54d lua5.4d lua-5.4d luad
|
||||
HINTS
|
||||
$ENV{LUA_DIR}
|
||||
PATH_SUFFIXES lib64 lib
|
||||
PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
)
|
||||
|
||||
if(LUA_LIBRARY)
|
||||
# include the math library for Unix
|
||||
if(UNIX AND NOT APPLE AND NOT BEOS)
|
||||
find_library(LUA_MATH_LIBRARY m)
|
||||
set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries")
|
||||
# For Windows and Mac, don't need to explicitly include the math library
|
||||
else()
|
||||
if (LUA_LIBRARY_DEBUG)
|
||||
set( LUA_LIBRARIES optimized ${LUA_LIBRARY} debug ${LUA_LIBRARY_DEBUG} CACHE STRING "Lua Libraries")
|
||||
else()
|
||||
set( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h")
|
||||
file(STRINGS "${LUA_INCLUDE_DIR}/lua.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua .+\"")
|
||||
|
||||
string(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([^\"]+)\".*" "\\1" LUA_VERSION_STRING "${lua_version_str}")
|
||||
unset(lua_version_str)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua54
|
||||
REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
|
||||
VERSION_VAR LUA_VERSION_STRING)
|
||||
|
||||
mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_LIBRARY_DEBUG LUA_MATH_LIBRARY)
|
||||
|
@ -1,8 +0,0 @@
|
||||
# This file is parsed by HunterGate command
|
||||
|
||||
hunter_config(luabind
|
||||
VERSION 0.9.1
|
||||
URL "https://github.com/nimetu/luabind/tarball/2fa4606"
|
||||
SHA1 "3b4646bab9f0b2362d7b8d71d78e40deaf3cc747"
|
||||
)
|
||||
|
@ -1,537 +0,0 @@
|
||||
# Copyright (c) 2013-2019, Ruslan Baratov
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# This is a gate file to Hunter package manager.
|
||||
# Include this file using `include` command and add package you need, example:
|
||||
#
|
||||
# cmake_minimum_required(VERSION 3.2)
|
||||
#
|
||||
# include("cmake/HunterGate.cmake")
|
||||
# HunterGate(
|
||||
# URL "https://github.com/path/to/hunter/archive.tar.gz"
|
||||
# SHA1 "798501e983f14b28b10cda16afa4de69eee1da1d"
|
||||
# )
|
||||
#
|
||||
# project(MyProject)
|
||||
#
|
||||
# hunter_add_package(Foo)
|
||||
# hunter_add_package(Boo COMPONENTS Bar Baz)
|
||||
#
|
||||
# Projects:
|
||||
# * https://github.com/hunter-packages/gate/
|
||||
# * https://github.com/ruslo/hunter
|
||||
|
||||
option(HUNTER_ENABLED "Enable Hunter package manager support" ON)
|
||||
|
||||
if(HUNTER_ENABLED)
|
||||
if(CMAKE_VERSION VERSION_LESS "3.2")
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"At least CMake version 3.2 required for Hunter dependency management."
|
||||
" Update CMake or set HUNTER_ENABLED to OFF."
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(CMakeParseArguments) # cmake_parse_arguments
|
||||
|
||||
option(HUNTER_STATUS_PRINT "Print working status" ON)
|
||||
option(HUNTER_STATUS_DEBUG "Print a lot info" OFF)
|
||||
option(HUNTER_TLS_VERIFY "Enable/disable TLS certificate checking on downloads" ON)
|
||||
set(HUNTER_ROOT "" CACHE FILEPATH "Override the HUNTER_ROOT.")
|
||||
|
||||
set(HUNTER_ERROR_PAGE "https://hunter.readthedocs.io/en/latest/reference/errors")
|
||||
|
||||
function(hunter_gate_status_print)
|
||||
if(HUNTER_STATUS_PRINT OR HUNTER_STATUS_DEBUG)
|
||||
foreach(print_message ${ARGV})
|
||||
message(STATUS "[hunter] ${print_message}")
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_status_debug)
|
||||
if(HUNTER_STATUS_DEBUG)
|
||||
foreach(print_message ${ARGV})
|
||||
string(TIMESTAMP timestamp)
|
||||
message(STATUS "[hunter *** DEBUG *** ${timestamp}] ${print_message}")
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_error_page error_page)
|
||||
message("------------------------------ ERROR ------------------------------")
|
||||
message(" ${HUNTER_ERROR_PAGE}/${error_page}.html")
|
||||
message("-------------------------------------------------------------------")
|
||||
message("")
|
||||
message(FATAL_ERROR "")
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_internal_error)
|
||||
message("")
|
||||
foreach(print_message ${ARGV})
|
||||
message("[hunter ** INTERNAL **] ${print_message}")
|
||||
endforeach()
|
||||
message("[hunter ** INTERNAL **] [Directory:${CMAKE_CURRENT_LIST_DIR}]")
|
||||
message("")
|
||||
hunter_gate_error_page("error.internal")
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_fatal_error)
|
||||
cmake_parse_arguments(hunter "" "ERROR_PAGE" "" "${ARGV}")
|
||||
if("${hunter_ERROR_PAGE}" STREQUAL "")
|
||||
hunter_gate_internal_error("Expected ERROR_PAGE")
|
||||
endif()
|
||||
message("")
|
||||
foreach(x ${hunter_UNPARSED_ARGUMENTS})
|
||||
message("[hunter ** FATAL ERROR **] ${x}")
|
||||
endforeach()
|
||||
message("[hunter ** FATAL ERROR **] [Directory:${CMAKE_CURRENT_LIST_DIR}]")
|
||||
message("")
|
||||
hunter_gate_error_page("${hunter_ERROR_PAGE}")
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_user_error)
|
||||
hunter_gate_fatal_error(${ARGV} ERROR_PAGE "error.incorrect.input.data")
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_self root version sha1 result)
|
||||
string(COMPARE EQUAL "${root}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("root is empty")
|
||||
endif()
|
||||
|
||||
string(COMPARE EQUAL "${version}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("version is empty")
|
||||
endif()
|
||||
|
||||
string(COMPARE EQUAL "${sha1}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("sha1 is empty")
|
||||
endif()
|
||||
|
||||
string(SUBSTRING "${sha1}" 0 7 archive_id)
|
||||
|
||||
if(EXISTS "${root}/cmake/Hunter")
|
||||
set(hunter_self "${root}")
|
||||
else()
|
||||
set(
|
||||
hunter_self
|
||||
"${root}/_Base/Download/Hunter/${version}/${archive_id}/Unpacked"
|
||||
)
|
||||
endif()
|
||||
|
||||
set("${result}" "${hunter_self}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# Set HUNTER_GATE_ROOT cmake variable to suitable value.
|
||||
function(hunter_gate_detect_root)
|
||||
# Check CMake variable
|
||||
if(HUNTER_ROOT)
|
||||
set(HUNTER_GATE_ROOT "${HUNTER_ROOT}" PARENT_SCOPE)
|
||||
hunter_gate_status_debug("HUNTER_ROOT detected by cmake variable")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Check environment variable
|
||||
if(DEFINED ENV{HUNTER_ROOT})
|
||||
set(HUNTER_GATE_ROOT "$ENV{HUNTER_ROOT}" PARENT_SCOPE)
|
||||
hunter_gate_status_debug("HUNTER_ROOT detected by environment variable")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Check HOME environment variable
|
||||
if(DEFINED ENV{HOME})
|
||||
set(HUNTER_GATE_ROOT "$ENV{HOME}/.hunter" PARENT_SCOPE)
|
||||
hunter_gate_status_debug("HUNTER_ROOT set using HOME environment variable")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Check SYSTEMDRIVE and USERPROFILE environment variable (windows only)
|
||||
if(WIN32)
|
||||
if(DEFINED ENV{SYSTEMDRIVE})
|
||||
set(HUNTER_GATE_ROOT "$ENV{SYSTEMDRIVE}/.hunter" PARENT_SCOPE)
|
||||
hunter_gate_status_debug(
|
||||
"HUNTER_ROOT set using SYSTEMDRIVE environment variable"
|
||||
)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(DEFINED ENV{USERPROFILE})
|
||||
set(HUNTER_GATE_ROOT "$ENV{USERPROFILE}/.hunter" PARENT_SCOPE)
|
||||
hunter_gate_status_debug(
|
||||
"HUNTER_ROOT set using USERPROFILE environment variable"
|
||||
)
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
hunter_gate_fatal_error(
|
||||
"Can't detect HUNTER_ROOT"
|
||||
ERROR_PAGE "error.detect.hunter.root"
|
||||
)
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_download dir)
|
||||
string(
|
||||
COMPARE
|
||||
NOTEQUAL
|
||||
"$ENV{HUNTER_DISABLE_AUTOINSTALL}"
|
||||
""
|
||||
disable_autoinstall
|
||||
)
|
||||
if(disable_autoinstall AND NOT HUNTER_RUN_INSTALL)
|
||||
hunter_gate_fatal_error(
|
||||
"Hunter not found in '${dir}'"
|
||||
"Set HUNTER_RUN_INSTALL=ON to auto-install it from '${HUNTER_GATE_URL}'"
|
||||
"Settings:"
|
||||
" HUNTER_ROOT: ${HUNTER_GATE_ROOT}"
|
||||
" HUNTER_SHA1: ${HUNTER_GATE_SHA1}"
|
||||
ERROR_PAGE "error.run.install"
|
||||
)
|
||||
endif()
|
||||
string(COMPARE EQUAL "${dir}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("Empty 'dir' argument")
|
||||
endif()
|
||||
|
||||
string(COMPARE EQUAL "${HUNTER_GATE_SHA1}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("HUNTER_GATE_SHA1 empty")
|
||||
endif()
|
||||
|
||||
string(COMPARE EQUAL "${HUNTER_GATE_URL}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("HUNTER_GATE_URL empty")
|
||||
endif()
|
||||
|
||||
set(done_location "${dir}/DONE")
|
||||
set(sha1_location "${dir}/SHA1")
|
||||
|
||||
set(build_dir "${dir}/Build")
|
||||
set(cmakelists "${dir}/CMakeLists.txt")
|
||||
|
||||
hunter_gate_status_debug("Locking directory: ${dir}")
|
||||
file(LOCK "${dir}" DIRECTORY GUARD FUNCTION)
|
||||
hunter_gate_status_debug("Lock done")
|
||||
|
||||
if(EXISTS "${done_location}")
|
||||
# while waiting for lock other instance can do all the job
|
||||
hunter_gate_status_debug("File '${done_location}' found, skip install")
|
||||
return()
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE "${build_dir}")
|
||||
file(REMOVE_RECURSE "${cmakelists}")
|
||||
|
||||
file(MAKE_DIRECTORY "${build_dir}") # check directory permissions
|
||||
|
||||
# Disabling languages speeds up a little bit, reduces noise in the output
|
||||
# and avoids path too long windows error
|
||||
file(
|
||||
WRITE
|
||||
"${cmakelists}"
|
||||
"cmake_minimum_required(VERSION 3.2)\n"
|
||||
"project(HunterDownload LANGUAGES NONE)\n"
|
||||
"include(ExternalProject)\n"
|
||||
"ExternalProject_Add(\n"
|
||||
" Hunter\n"
|
||||
" URL\n"
|
||||
" \"${HUNTER_GATE_URL}\"\n"
|
||||
" URL_HASH\n"
|
||||
" SHA1=${HUNTER_GATE_SHA1}\n"
|
||||
" DOWNLOAD_DIR\n"
|
||||
" \"${dir}\"\n"
|
||||
" TLS_VERIFY\n"
|
||||
" ${HUNTER_TLS_VERIFY}\n"
|
||||
" SOURCE_DIR\n"
|
||||
" \"${dir}/Unpacked\"\n"
|
||||
" CONFIGURE_COMMAND\n"
|
||||
" \"\"\n"
|
||||
" BUILD_COMMAND\n"
|
||||
" \"\"\n"
|
||||
" INSTALL_COMMAND\n"
|
||||
" \"\"\n"
|
||||
")\n"
|
||||
)
|
||||
|
||||
if(HUNTER_STATUS_DEBUG)
|
||||
set(logging_params "")
|
||||
else()
|
||||
set(logging_params OUTPUT_QUIET)
|
||||
endif()
|
||||
|
||||
hunter_gate_status_debug("Run generate")
|
||||
|
||||
# Need to add toolchain file too.
|
||||
# Otherwise on Visual Studio + MDD this will fail with error:
|
||||
# "Could not find an appropriate version of the Windows 10 SDK installed on this machine"
|
||||
if(EXISTS "${CMAKE_TOOLCHAIN_FILE}")
|
||||
get_filename_component(absolute_CMAKE_TOOLCHAIN_FILE "${CMAKE_TOOLCHAIN_FILE}" ABSOLUTE)
|
||||
set(toolchain_arg "-DCMAKE_TOOLCHAIN_FILE=${absolute_CMAKE_TOOLCHAIN_FILE}")
|
||||
else()
|
||||
# 'toolchain_arg' can't be empty
|
||||
set(toolchain_arg "-DCMAKE_TOOLCHAIN_FILE=")
|
||||
endif()
|
||||
|
||||
string(COMPARE EQUAL "${CMAKE_MAKE_PROGRAM}" "" no_make)
|
||||
if(no_make)
|
||||
set(make_arg "")
|
||||
else()
|
||||
# Test case: remove Ninja from PATH but set it via CMAKE_MAKE_PROGRAM
|
||||
set(make_arg "-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}")
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}"
|
||||
"-H${dir}"
|
||||
"-B${build_dir}"
|
||||
"-G${CMAKE_GENERATOR}"
|
||||
"${toolchain_arg}"
|
||||
${make_arg}
|
||||
WORKING_DIRECTORY "${dir}"
|
||||
RESULT_VARIABLE download_result
|
||||
${logging_params}
|
||||
)
|
||||
|
||||
if(NOT download_result EQUAL 0)
|
||||
hunter_gate_internal_error(
|
||||
"Configure project failed."
|
||||
"To reproduce the error run: ${CMAKE_COMMAND} -H${dir} -B${build_dir} -G${CMAKE_GENERATOR} ${toolchain_arg} ${make_arg}"
|
||||
"In directory ${dir}"
|
||||
)
|
||||
endif()
|
||||
|
||||
hunter_gate_status_print(
|
||||
"Initializing Hunter workspace (${HUNTER_GATE_SHA1})"
|
||||
" ${HUNTER_GATE_URL}"
|
||||
" -> ${dir}"
|
||||
)
|
||||
execute_process(
|
||||
COMMAND "${CMAKE_COMMAND}" --build "${build_dir}"
|
||||
WORKING_DIRECTORY "${dir}"
|
||||
RESULT_VARIABLE download_result
|
||||
${logging_params}
|
||||
)
|
||||
|
||||
if(NOT download_result EQUAL 0)
|
||||
hunter_gate_internal_error("Build project failed")
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE "${build_dir}")
|
||||
file(REMOVE_RECURSE "${cmakelists}")
|
||||
|
||||
file(WRITE "${sha1_location}" "${HUNTER_GATE_SHA1}")
|
||||
file(WRITE "${done_location}" "DONE")
|
||||
|
||||
hunter_gate_status_debug("Finished")
|
||||
endfunction()
|
||||
|
||||
# Must be a macro so master file 'cmake/Hunter' can
|
||||
# apply all variables easily just by 'include' command
|
||||
# (otherwise PARENT_SCOPE magic needed)
|
||||
macro(HunterGate)
|
||||
if(HUNTER_GATE_DONE)
|
||||
# variable HUNTER_GATE_DONE set explicitly for external project
|
||||
# (see `hunter_download`)
|
||||
set_property(GLOBAL PROPERTY HUNTER_GATE_DONE YES)
|
||||
endif()
|
||||
|
||||
# First HunterGate command will init Hunter, others will be ignored
|
||||
get_property(_hunter_gate_done GLOBAL PROPERTY HUNTER_GATE_DONE SET)
|
||||
|
||||
if(NOT HUNTER_ENABLED)
|
||||
# Empty function to avoid error "unknown function"
|
||||
function(hunter_add_package)
|
||||
endfunction()
|
||||
|
||||
set(
|
||||
_hunter_gate_disabled_mode_dir
|
||||
"${CMAKE_CURRENT_LIST_DIR}/cmake/Hunter/disabled-mode"
|
||||
)
|
||||
if(EXISTS "${_hunter_gate_disabled_mode_dir}")
|
||||
hunter_gate_status_debug(
|
||||
"Adding \"disabled-mode\" modules: ${_hunter_gate_disabled_mode_dir}"
|
||||
)
|
||||
list(APPEND CMAKE_PREFIX_PATH "${_hunter_gate_disabled_mode_dir}")
|
||||
endif()
|
||||
elseif(_hunter_gate_done)
|
||||
hunter_gate_status_debug("Secondary HunterGate (use old settings)")
|
||||
hunter_gate_self(
|
||||
"${HUNTER_CACHED_ROOT}"
|
||||
"${HUNTER_VERSION}"
|
||||
"${HUNTER_SHA1}"
|
||||
_hunter_self
|
||||
)
|
||||
include("${_hunter_self}/cmake/Hunter")
|
||||
else()
|
||||
set(HUNTER_GATE_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
string(COMPARE NOTEQUAL "${PROJECT_NAME}" "" _have_project_name)
|
||||
if(_have_project_name)
|
||||
hunter_gate_fatal_error(
|
||||
"Please set HunterGate *before* 'project' command. "
|
||||
"Detected project: ${PROJECT_NAME}"
|
||||
ERROR_PAGE "error.huntergate.before.project"
|
||||
)
|
||||
endif()
|
||||
|
||||
cmake_parse_arguments(
|
||||
HUNTER_GATE "LOCAL" "URL;SHA1;GLOBAL;FILEPATH" "" ${ARGV}
|
||||
)
|
||||
|
||||
string(COMPARE EQUAL "${HUNTER_GATE_SHA1}" "" _empty_sha1)
|
||||
string(COMPARE EQUAL "${HUNTER_GATE_URL}" "" _empty_url)
|
||||
string(
|
||||
COMPARE
|
||||
NOTEQUAL
|
||||
"${HUNTER_GATE_UNPARSED_ARGUMENTS}"
|
||||
""
|
||||
_have_unparsed
|
||||
)
|
||||
string(COMPARE NOTEQUAL "${HUNTER_GATE_GLOBAL}" "" _have_global)
|
||||
string(COMPARE NOTEQUAL "${HUNTER_GATE_FILEPATH}" "" _have_filepath)
|
||||
|
||||
if(_have_unparsed)
|
||||
hunter_gate_user_error(
|
||||
"HunterGate unparsed arguments: ${HUNTER_GATE_UNPARSED_ARGUMENTS}"
|
||||
)
|
||||
endif()
|
||||
if(_empty_sha1)
|
||||
hunter_gate_user_error("SHA1 suboption of HunterGate is mandatory")
|
||||
endif()
|
||||
if(_empty_url)
|
||||
hunter_gate_user_error("URL suboption of HunterGate is mandatory")
|
||||
endif()
|
||||
if(_have_global)
|
||||
if(HUNTER_GATE_LOCAL)
|
||||
hunter_gate_user_error("Unexpected LOCAL (already has GLOBAL)")
|
||||
endif()
|
||||
if(_have_filepath)
|
||||
hunter_gate_user_error("Unexpected FILEPATH (already has GLOBAL)")
|
||||
endif()
|
||||
endif()
|
||||
if(HUNTER_GATE_LOCAL)
|
||||
if(_have_global)
|
||||
hunter_gate_user_error("Unexpected GLOBAL (already has LOCAL)")
|
||||
endif()
|
||||
if(_have_filepath)
|
||||
hunter_gate_user_error("Unexpected FILEPATH (already has LOCAL)")
|
||||
endif()
|
||||
endif()
|
||||
if(_have_filepath)
|
||||
if(_have_global)
|
||||
hunter_gate_user_error("Unexpected GLOBAL (already has FILEPATH)")
|
||||
endif()
|
||||
if(HUNTER_GATE_LOCAL)
|
||||
hunter_gate_user_error("Unexpected LOCAL (already has FILEPATH)")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
hunter_gate_detect_root() # set HUNTER_GATE_ROOT
|
||||
|
||||
# Beautify path, fix probable problems with windows path slashes
|
||||
get_filename_component(
|
||||
HUNTER_GATE_ROOT "${HUNTER_GATE_ROOT}" ABSOLUTE
|
||||
)
|
||||
hunter_gate_status_debug("HUNTER_ROOT: ${HUNTER_GATE_ROOT}")
|
||||
if(NOT HUNTER_ALLOW_SPACES_IN_PATH)
|
||||
string(FIND "${HUNTER_GATE_ROOT}" " " _contain_spaces)
|
||||
if(NOT _contain_spaces EQUAL -1)
|
||||
hunter_gate_fatal_error(
|
||||
"HUNTER_ROOT (${HUNTER_GATE_ROOT}) contains spaces."
|
||||
"Set HUNTER_ALLOW_SPACES_IN_PATH=ON to skip this error"
|
||||
"(Use at your own risk!)"
|
||||
ERROR_PAGE "error.spaces.in.hunter.root"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
string(
|
||||
REGEX
|
||||
MATCH
|
||||
"[0-9]+\\.[0-9]+\\.[0-9]+[-_a-z0-9]*"
|
||||
HUNTER_GATE_VERSION
|
||||
"${HUNTER_GATE_URL}"
|
||||
)
|
||||
string(COMPARE EQUAL "${HUNTER_GATE_VERSION}" "" _is_empty)
|
||||
if(_is_empty)
|
||||
set(HUNTER_GATE_VERSION "unknown")
|
||||
endif()
|
||||
|
||||
hunter_gate_self(
|
||||
"${HUNTER_GATE_ROOT}"
|
||||
"${HUNTER_GATE_VERSION}"
|
||||
"${HUNTER_GATE_SHA1}"
|
||||
_hunter_self
|
||||
)
|
||||
|
||||
set(_master_location "${_hunter_self}/cmake/Hunter")
|
||||
if(EXISTS "${HUNTER_GATE_ROOT}/cmake/Hunter")
|
||||
# Hunter downloaded manually (e.g. by 'git clone')
|
||||
set(_unused "xxxxxxxxxx")
|
||||
set(HUNTER_GATE_SHA1 "${_unused}")
|
||||
set(HUNTER_GATE_VERSION "${_unused}")
|
||||
else()
|
||||
get_filename_component(_archive_id_location "${_hunter_self}/.." ABSOLUTE)
|
||||
set(_done_location "${_archive_id_location}/DONE")
|
||||
set(_sha1_location "${_archive_id_location}/SHA1")
|
||||
|
||||
# Check Hunter already downloaded by HunterGate
|
||||
if(NOT EXISTS "${_done_location}")
|
||||
hunter_gate_download("${_archive_id_location}")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${_done_location}")
|
||||
hunter_gate_internal_error("hunter_gate_download failed")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${_sha1_location}")
|
||||
hunter_gate_internal_error("${_sha1_location} not found")
|
||||
endif()
|
||||
file(READ "${_sha1_location}" _sha1_value)
|
||||
string(TOLOWER "${_sha1_value}" _sha1_value_lower)
|
||||
string(TOLOWER "${HUNTER_GATE_SHA1}" _HUNTER_GATE_SHA1_lower)
|
||||
string(COMPARE EQUAL "${_sha1_value_lower}" "${_HUNTER_GATE_SHA1_lower}" _is_equal)
|
||||
if(NOT _is_equal)
|
||||
hunter_gate_internal_error(
|
||||
"Short SHA1 collision:"
|
||||
" ${_sha1_value} (from ${_sha1_location})"
|
||||
" ${HUNTER_GATE_SHA1} (HunterGate)"
|
||||
)
|
||||
endif()
|
||||
if(NOT EXISTS "${_master_location}")
|
||||
hunter_gate_user_error(
|
||||
"Master file not found:"
|
||||
" ${_master_location}"
|
||||
"try to update Hunter/HunterGate"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
include("${_master_location}")
|
||||
set_property(GLOBAL PROPERTY HUNTER_GATE_DONE YES)
|
||||
endif()
|
||||
endmacro()
|
@ -1,120 +1,120 @@
|
||||
;--------------------------------
|
||||
;Include Modern UI
|
||||
!include "MUI2.nsh"
|
||||
|
||||
;--------------------------------
|
||||
;General
|
||||
!define Company "Winch Gate"
|
||||
!define GenericProduct "Ryzom"
|
||||
!define Product "Ryzom Installer"
|
||||
!define RegistryCat "HKCU"
|
||||
!define RegistryKey "Software\${Company}\${GenericProduct}"
|
||||
!define Executable "ryzom_installer_qt_r.exe"
|
||||
!define SrcDir "RyzomInstaller"
|
||||
!define Installer "ryzom_installer_windows.exe"
|
||||
|
||||
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
|
||||
;Unicode true
|
||||
|
||||
;New XP style
|
||||
XPStyle on
|
||||
|
||||
;Name and file
|
||||
Name "${Product}"
|
||||
OutFile "${Installer}"
|
||||
|
||||
;Default installation folder
|
||||
InstallDir "$LOCALAPPDATA\${GenericProduct}"
|
||||
|
||||
;Get installation folder from registry if available
|
||||
InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path"
|
||||
|
||||
;Request application privileges for Windows Vista
|
||||
RequestExecutionLevel user
|
||||
|
||||
;Best compression
|
||||
SetCompressor LZMA
|
||||
|
||||
; ???
|
||||
AllowSkipFiles on
|
||||
|
||||
;--------------------------------
|
||||
;Interface Settings
|
||||
|
||||
!define MUI_ICON "${SrcDir}\${GenericProduct}.ico"
|
||||
!define MUI_UNICON "${SrcDir}\${GenericProduct}.ico"
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||
!define MUI_ABORTWARNING
|
||||
|
||||
;Show all languages, despite user's codepage
|
||||
!define MUI_LANGDLL_ALLLANGUAGES
|
||||
|
||||
;--------------------------------
|
||||
;Language Selection Dialog Settings
|
||||
|
||||
;Remember the installer language
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}"
|
||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
|
||||
|
||||
;--------------------------------
|
||||
;Pages
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}"
|
||||
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
!insertmacro MUI_UNPAGE_WELCOME
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
!insertmacro MUI_UNPAGE_FINISH
|
||||
|
||||
;--------------------------------
|
||||
;Languages
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
||||
!insertmacro MUI_LANGUAGE "French"
|
||||
!insertmacro MUI_LANGUAGE "German"
|
||||
!insertmacro MUI_LANGUAGE "Spanish"
|
||||
|
||||
;--------------------------------
|
||||
;Reserve Files
|
||||
|
||||
;If you are using solid compression, files that are required before
|
||||
;the actual installation should be stored first in the data block,
|
||||
;because this will make your installer start faster.
|
||||
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
|
||||
;--------------------------------
|
||||
;Installer Sections
|
||||
|
||||
; ----------------------------------------
|
||||
; Default section
|
||||
Section
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
;Client, configuration and misc files
|
||||
File "${SrcDir}\${Executable}"
|
||||
File "${SrcDir}\msvcp120.dll"
|
||||
File "${SrcDir}\msvcr120.dll"
|
||||
|
||||
;Shortcut on desktop
|
||||
CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}"
|
||||
|
||||
;Store installation folder
|
||||
WriteRegStr "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path" $INSTDIR
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Installer Functions
|
||||
|
||||
Function .onInit
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
FunctionEnd
|
||||
;--------------------------------
|
||||
;Include Modern UI
|
||||
!include "MUI2.nsh"
|
||||
|
||||
;--------------------------------
|
||||
;General
|
||||
!define Company "Winch Gate"
|
||||
!define GenericProduct "Ryzom"
|
||||
!define Product "Ryzom Installer"
|
||||
!define RegistryCat "HKCU"
|
||||
!define RegistryKey "Software\${Company}\${GenericProduct}"
|
||||
!define Executable "ryzom_installer_qt_r.exe"
|
||||
!define SrcDir "RyzomInstaller"
|
||||
!define Installer "ryzom_installer_windows.exe"
|
||||
|
||||
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
|
||||
;Unicode true
|
||||
|
||||
;New XP style
|
||||
XPStyle on
|
||||
|
||||
;Name and file
|
||||
Name "${Product}"
|
||||
OutFile "${Installer}"
|
||||
|
||||
;Default installation folder
|
||||
InstallDir "$LOCALAPPDATA\${GenericProduct}"
|
||||
|
||||
;Get installation folder from registry if available
|
||||
InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path"
|
||||
|
||||
;Request application privileges for Windows Vista
|
||||
RequestExecutionLevel user
|
||||
|
||||
;Best compression
|
||||
SetCompressor LZMA
|
||||
|
||||
; ???
|
||||
AllowSkipFiles on
|
||||
|
||||
;--------------------------------
|
||||
;Interface Settings
|
||||
|
||||
!define MUI_ICON "${SrcDir}\${GenericProduct}.ico"
|
||||
!define MUI_UNICON "${SrcDir}\${GenericProduct}.ico"
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||
!define MUI_ABORTWARNING
|
||||
|
||||
;Show all languages, despite user's codepage
|
||||
!define MUI_LANGDLL_ALLLANGUAGES
|
||||
|
||||
;--------------------------------
|
||||
;Language Selection Dialog Settings
|
||||
|
||||
;Remember the installer language
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}"
|
||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
|
||||
|
||||
;--------------------------------
|
||||
;Pages
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}"
|
||||
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
!insertmacro MUI_UNPAGE_WELCOME
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
!insertmacro MUI_UNPAGE_FINISH
|
||||
|
||||
;--------------------------------
|
||||
;Languages
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
||||
!insertmacro MUI_LANGUAGE "French"
|
||||
!insertmacro MUI_LANGUAGE "German"
|
||||
!insertmacro MUI_LANGUAGE "Spanish"
|
||||
|
||||
;--------------------------------
|
||||
;Reserve Files
|
||||
|
||||
;If you are using solid compression, files that are required before
|
||||
;the actual installation should be stored first in the data block,
|
||||
;because this will make your installer start faster.
|
||||
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
|
||||
;--------------------------------
|
||||
;Installer Sections
|
||||
|
||||
; ----------------------------------------
|
||||
; Default section
|
||||
Section
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
;Client, configuration and misc files
|
||||
File "${SrcDir}\${Executable}"
|
||||
File "${SrcDir}\msvcp120.dll"
|
||||
File "${SrcDir}\msvcr120.dll"
|
||||
|
||||
;Shortcut on desktop
|
||||
CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}"
|
||||
|
||||
;Store installation folder
|
||||
WriteRegStr "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path" $INSTDIR
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Installer Functions
|
||||
|
||||
Function .onInit
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
FunctionEnd
|
||||
|
@ -1,298 +1,298 @@
|
||||
;--------------------------------
|
||||
;Include Modern UI
|
||||
!include "MUI2.nsh"
|
||||
|
||||
;--------------------------------
|
||||
;General
|
||||
!define Company "Nevrax"
|
||||
!define Product "Ryzom"
|
||||
!define Version "2.1.0"
|
||||
!define Patch "661"
|
||||
!define RegistryCat "HKLM"
|
||||
!define RegistryKey "Software\${Company}\${Product}"
|
||||
!define Executable "client_ryzom_rd.exe"
|
||||
!define DstDir "Output"
|
||||
!define SrcDir "Ryzom"
|
||||
!define Installer "ryzom_setup_${Patch}.exe"
|
||||
|
||||
;Registry key for uninstaller
|
||||
!define UninstallRegistryRoot "Software\Microsoft\Windows\CurrentVersion\Uninstall"
|
||||
!define UninstallRegistryKey "${UninstallRegistryRoot}\${Product}"
|
||||
|
||||
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
|
||||
Unicode true
|
||||
|
||||
;New XP style
|
||||
XPStyle on
|
||||
|
||||
;Name and file
|
||||
Name "${Product}"
|
||||
OutFile "${DstDir}\${Installer}"
|
||||
|
||||
;Default installation folder
|
||||
InstallDir "$PROGRAMFILES\${Product}"
|
||||
|
||||
;Get installation folder from registry if available
|
||||
InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${Product} Install Path"
|
||||
|
||||
;Request application privileges for Windows Vista
|
||||
RequestExecutionLevel admin
|
||||
|
||||
;Best compression
|
||||
SetCompressor LZMA
|
||||
|
||||
; ???
|
||||
AllowSkipFiles on
|
||||
|
||||
;--------------------------------
|
||||
;Variables
|
||||
|
||||
;Will be used later
|
||||
Var MUI_TEMP
|
||||
Var STARTMENU_FOLDER
|
||||
|
||||
;--------------------------------
|
||||
;Interface Settings
|
||||
|
||||
!define MUI_ICON "${SrcDir}\ryzom.ico"
|
||||
!define MUI_UNICON "${SrcDir}\ryzom.ico"
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||
!define MUI_ABORTWARNING
|
||||
|
||||
;Show all languages, despite user's codepage
|
||||
!define MUI_LANGDLL_ALLLANGUAGES
|
||||
|
||||
;--------------------------------
|
||||
;Language Selection Dialog Settings
|
||||
|
||||
;Remember the installer language
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}"
|
||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
|
||||
|
||||
;--------------------------------
|
||||
;Pages
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
|
||||
;Start Menu Folder Page Configuration
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${RegistryCat}"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${RegistryKey}"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
|
||||
|
||||
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}"
|
||||
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
!insertmacro MUI_UNPAGE_WELCOME
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
!insertmacro MUI_UNPAGE_FINISH
|
||||
|
||||
;--------------------------------
|
||||
;Languages
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
||||
!insertmacro MUI_LANGUAGE "French"
|
||||
!insertmacro MUI_LANGUAGE "German"
|
||||
;!insertmacro MUI_LANGUAGE "Spanish"
|
||||
|
||||
;--------------------------------
|
||||
;Reserve Files
|
||||
|
||||
;If you are using solid compression, files that are required before
|
||||
;the actual installation should be stored first in the data block,
|
||||
;because this will make your installer start faster.
|
||||
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
|
||||
;--------------------------------
|
||||
;Descriptions
|
||||
|
||||
;French
|
||||
LangString MSG_SUPPORT_URL_TITLE ${LANG_FRENCH} "Support"
|
||||
LangString MSG_SUPPORT_URL ${LANG_FRENCH} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=fr#1"
|
||||
LangString MSG_HOME_URL_TITLE ${LANG_FRENCH} "${Product} sur le Web"
|
||||
LangString MSG_HOME_URL ${LANG_FRENCH} "http://ryzom.fr"
|
||||
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_FRENCH} "Voulez-vous supprimer vos fichiers de sauvegarde ? Appuyer sur Oui pour effacer vos fichiers de sauvegarde."
|
||||
|
||||
;English
|
||||
LangString MSG_SUPPORT_URL_TITLE ${LANG_ENGLISH} "Support"
|
||||
LangString MSG_SUPPORT_URL ${LANG_ENGLISH} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=en#1"
|
||||
LangString MSG_HOME_URL_TITLE ${LANG_ENGLISH} "${Product} on the Web"
|
||||
LangString MSG_HOME_URL ${LANG_ENGLISH} "http://ryzom.com"
|
||||
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_ENGLISH} "Deleting Save Files? Click Yes to delete your own save files."
|
||||
|
||||
;German
|
||||
LangString MSG_SUPPORT_URL_TITLE ${LANG_GERMAN} "Support"
|
||||
LangString MSG_SUPPORT_URL ${LANG_GERMAN} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=de#1"
|
||||
LangString MSG_HOME_URL_TITLE ${LANG_GERMAN} "${Product} im Internet"
|
||||
LangString MSG_HOME_URL ${LANG_GERMAN} "http://ryzom.de"
|
||||
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_GERMAN} "Gespeicherte Dateien löschen? Klicke Ja um die eigenen Dateien zu löschen."
|
||||
|
||||
;--------------------------------
|
||||
;Installer Sections
|
||||
|
||||
!macro CreateInternetShortcut FILENAME URL ICONFILE
|
||||
WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
|
||||
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}"
|
||||
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "0"
|
||||
!macroend
|
||||
|
||||
; ----------------------------------------
|
||||
; Default section
|
||||
Section
|
||||
;Install for All Users
|
||||
SetShellVarContext all
|
||||
|
||||
;Game directories
|
||||
SetOutPath "$INSTDIR\cfg"
|
||||
File /r "${SrcDir}\cfg\*.*"
|
||||
|
||||
SetOutPath "$INSTDIR\data"
|
||||
File /r "${SrcDir}\data\*.*"
|
||||
|
||||
SetOutPath "$INSTDIR\examples"
|
||||
File /r "${SrcDir}\examples\*.*"
|
||||
|
||||
SetOutPath "$INSTDIR\user"
|
||||
File /r "${SrcDir}\user\*.*"
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
;Client, configuration and misc files
|
||||
File "${SrcDir}\client_default.cfg"
|
||||
File "${SrcDir}\${Executable}"
|
||||
File "${SrcDir}\configure.bat"
|
||||
File "${SrcDir}\d3dcompiler_43.dll"
|
||||
File "${SrcDir}\d3dx9_43.dll"
|
||||
File "${SrcDir}\fmod.dll"
|
||||
File "${SrcDir}\forum.url"
|
||||
File "${SrcDir}\launch.bat"
|
||||
File "${SrcDir}\msvcp100.dll"
|
||||
File "${SrcDir}\msvcr100.dll"
|
||||
File "${SrcDir}\nel_drv_direct3d_win_r.dll"
|
||||
File "${SrcDir}\nel_drv_fmod_win_r.dll"
|
||||
File "${SrcDir}\nel_drv_opengl_win_r.dll"
|
||||
File "${SrcDir}\ryzom.ico"
|
||||
File "${SrcDir}\ryzom.url"
|
||||
File "${SrcDir}\Ryzom6.ico"
|
||||
|
||||
;Create uninstaller
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
|
||||
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
|
||||
|
||||
;Create shortcuts in Start Menu
|
||||
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\${Product}.lnk" "$INSTDIR\${Executable}"
|
||||
|
||||
;Create URLs
|
||||
!insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\$(MSG_SUPPORT_URL_TITLE)" "$(MSG_SUPPORT_URL)" "$INSTDIR\ryzom.ico"
|
||||
!insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\$(MSG_HOME_URL_TITLE)" "$(MSG_HOME_URL)" "$INSTDIR\ryzom.ico"
|
||||
|
||||
!insertmacro MUI_STARTMENU_WRITE_END
|
||||
|
||||
;Shortcut on desktop
|
||||
CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}"
|
||||
|
||||
;Add/Remove Program entry
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayIcon" "$INSTDIR\${Executable},0"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayName" "${Product}"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayVersion" "${Version}"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "InstallLocation" "$INSTDIR"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "QuietUninstallString" '"$INSTDIR\Uninstall.exe" /S'
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "UninstallString" "$INSTDIR\Uninstall.exe"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "Publisher" "${Company}"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "HelpLink" "$(MSG_SUPPORT_URL)"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "URLInfoAbout" "$(MSG_HOME_URL)"
|
||||
|
||||
;Store installation folder
|
||||
WriteRegStr "${RegistryCat}" "${RegistryKey}" "${Product} Install Path" $INSTDIR
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Section
|
||||
Section "Uninstall"
|
||||
;Install for All Users
|
||||
SetShellVarContext all
|
||||
|
||||
;Game directories
|
||||
RMDir /r "$INSTDIR\cfg"
|
||||
RMDir /r "$INSTDIR\data"
|
||||
RMDir /r "$INSTDIR\examples"
|
||||
|
||||
;Temporary directories
|
||||
RMDir /r "$INSTDIR\cache"
|
||||
RMDir /r "$INSTDIR\unpack"
|
||||
|
||||
;Client, configuration and misc files
|
||||
Delete "$INSTDIR\client_default.cfg"
|
||||
Delete "$INSTDIR\${Executable}"
|
||||
Delete "$INSTDIR\configure.bat"
|
||||
Delete "$INSTDIR\d3dcompiler_43.dll"
|
||||
Delete "$INSTDIR\d3dx9_43.dll"
|
||||
Delete "$INSTDIR\fmod.dll"
|
||||
Delete "$INSTDIR\forum.url"
|
||||
Delete "$INSTDIR\launch.bat"
|
||||
Delete "$INSTDIR\msvcp100.dll"
|
||||
Delete "$INSTDIR\msvcr100.dll"
|
||||
Delete "$INSTDIR\nel_drv_direct3d_win_r.dll"
|
||||
Delete "$INSTDIR\nel_drv_fmod_win_r.dll"
|
||||
Delete "$INSTDIR\nel_drv_opengl_win_r.dll"
|
||||
Delete "$INSTDIR\ryzom.ico"
|
||||
Delete "$INSTDIR\ryzom.url"
|
||||
Delete "$INSTDIR\Ryzom6.ico"
|
||||
|
||||
;Delete uninstaller
|
||||
Delete "$INSTDIR\Uninstall.exe"
|
||||
|
||||
MessageBox MB_YESNO "$(MSG_CONFIRM_DELETE_BACKUPS)" IDNO DontDeleteMiscFiles
|
||||
|
||||
;Delete directory
|
||||
RMDir /r "$INSTDIR"
|
||||
|
||||
DontDeleteMiscFiles:
|
||||
|
||||
;Delete directory if empty
|
||||
RMDir "$INSTDIR"
|
||||
|
||||
;Delete all shortcuts
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||
|
||||
;Delete Start Menu shortcuts
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\${Product}.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_HOME_URL_TITLE).url"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_SUPPORT_URL_TITLE).url"
|
||||
RMDir /r /REBOOTOK "$SMPROGRAMS\$MUI_TEMP"
|
||||
|
||||
;Delete desktop shortcut
|
||||
Delete "$DESKTOP\${Product}.lnk"
|
||||
|
||||
;Delete registry
|
||||
DeleteRegKey /ifempty "${RegistryCat}" "${RegistryKey}"
|
||||
DeleteRegKey "${RegistryCat}" "${UninstallRegistryKey}"
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Installer Functions
|
||||
|
||||
Function .onInit
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
FunctionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Functions
|
||||
|
||||
Function un.onInit
|
||||
!insertmacro MUI_UNGETLANGUAGE
|
||||
FunctionEnd
|
||||
;--------------------------------
|
||||
;Include Modern UI
|
||||
!include "MUI2.nsh"
|
||||
|
||||
;--------------------------------
|
||||
;General
|
||||
!define Company "Nevrax"
|
||||
!define Product "Ryzom"
|
||||
!define Version "2.1.0"
|
||||
!define Patch "661"
|
||||
!define RegistryCat "HKLM"
|
||||
!define RegistryKey "Software\${Company}\${Product}"
|
||||
!define Executable "client_ryzom_rd.exe"
|
||||
!define DstDir "Output"
|
||||
!define SrcDir "Ryzom"
|
||||
!define Installer "ryzom_setup_${Patch}.exe"
|
||||
|
||||
;Registry key for uninstaller
|
||||
!define UninstallRegistryRoot "Software\Microsoft\Windows\CurrentVersion\Uninstall"
|
||||
!define UninstallRegistryKey "${UninstallRegistryRoot}\${Product}"
|
||||
|
||||
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
|
||||
Unicode true
|
||||
|
||||
;New XP style
|
||||
XPStyle on
|
||||
|
||||
;Name and file
|
||||
Name "${Product}"
|
||||
OutFile "${DstDir}\${Installer}"
|
||||
|
||||
;Default installation folder
|
||||
InstallDir "$PROGRAMFILES\${Product}"
|
||||
|
||||
;Get installation folder from registry if available
|
||||
InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${Product} Install Path"
|
||||
|
||||
;Request application privileges for Windows Vista
|
||||
RequestExecutionLevel admin
|
||||
|
||||
;Best compression
|
||||
SetCompressor LZMA
|
||||
|
||||
; ???
|
||||
AllowSkipFiles on
|
||||
|
||||
;--------------------------------
|
||||
;Variables
|
||||
|
||||
;Will be used later
|
||||
Var MUI_TEMP
|
||||
Var STARTMENU_FOLDER
|
||||
|
||||
;--------------------------------
|
||||
;Interface Settings
|
||||
|
||||
!define MUI_ICON "${SrcDir}\ryzom.ico"
|
||||
!define MUI_UNICON "${SrcDir}\ryzom.ico"
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||
!define MUI_ABORTWARNING
|
||||
|
||||
;Show all languages, despite user's codepage
|
||||
!define MUI_LANGDLL_ALLLANGUAGES
|
||||
|
||||
;--------------------------------
|
||||
;Language Selection Dialog Settings
|
||||
|
||||
;Remember the installer language
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}"
|
||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
|
||||
|
||||
;--------------------------------
|
||||
;Pages
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
|
||||
;Start Menu Folder Page Configuration
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${RegistryCat}"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${RegistryKey}"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
|
||||
|
||||
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}"
|
||||
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
!insertmacro MUI_UNPAGE_WELCOME
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
!insertmacro MUI_UNPAGE_FINISH
|
||||
|
||||
;--------------------------------
|
||||
;Languages
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
||||
!insertmacro MUI_LANGUAGE "French"
|
||||
!insertmacro MUI_LANGUAGE "German"
|
||||
;!insertmacro MUI_LANGUAGE "Spanish"
|
||||
|
||||
;--------------------------------
|
||||
;Reserve Files
|
||||
|
||||
;If you are using solid compression, files that are required before
|
||||
;the actual installation should be stored first in the data block,
|
||||
;because this will make your installer start faster.
|
||||
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
|
||||
;--------------------------------
|
||||
;Descriptions
|
||||
|
||||
;French
|
||||
LangString MSG_SUPPORT_URL_TITLE ${LANG_FRENCH} "Support"
|
||||
LangString MSG_SUPPORT_URL ${LANG_FRENCH} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=fr#1"
|
||||
LangString MSG_HOME_URL_TITLE ${LANG_FRENCH} "${Product} sur le Web"
|
||||
LangString MSG_HOME_URL ${LANG_FRENCH} "http://ryzom.fr"
|
||||
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_FRENCH} "Voulez-vous supprimer vos fichiers de sauvegarde ? Appuyer sur Oui pour effacer vos fichiers de sauvegarde."
|
||||
|
||||
;English
|
||||
LangString MSG_SUPPORT_URL_TITLE ${LANG_ENGLISH} "Support"
|
||||
LangString MSG_SUPPORT_URL ${LANG_ENGLISH} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=en#1"
|
||||
LangString MSG_HOME_URL_TITLE ${LANG_ENGLISH} "${Product} on the Web"
|
||||
LangString MSG_HOME_URL ${LANG_ENGLISH} "http://ryzom.com"
|
||||
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_ENGLISH} "Deleting Save Files? Click Yes to delete your own save files."
|
||||
|
||||
;German
|
||||
LangString MSG_SUPPORT_URL_TITLE ${LANG_GERMAN} "Support"
|
||||
LangString MSG_SUPPORT_URL ${LANG_GERMAN} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=de#1"
|
||||
LangString MSG_HOME_URL_TITLE ${LANG_GERMAN} "${Product} im Internet"
|
||||
LangString MSG_HOME_URL ${LANG_GERMAN} "http://ryzom.de"
|
||||
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_GERMAN} "Gespeicherte Dateien löschen? Klicke Ja um die eigenen Dateien zu löschen."
|
||||
|
||||
;--------------------------------
|
||||
;Installer Sections
|
||||
|
||||
!macro CreateInternetShortcut FILENAME URL ICONFILE
|
||||
WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
|
||||
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}"
|
||||
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "0"
|
||||
!macroend
|
||||
|
||||
; ----------------------------------------
|
||||
; Default section
|
||||
Section
|
||||
;Install for All Users
|
||||
SetShellVarContext all
|
||||
|
||||
;Game directories
|
||||
SetOutPath "$INSTDIR\cfg"
|
||||
File /r "${SrcDir}\cfg\*.*"
|
||||
|
||||
SetOutPath "$INSTDIR\data"
|
||||
File /r "${SrcDir}\data\*.*"
|
||||
|
||||
SetOutPath "$INSTDIR\examples"
|
||||
File /r "${SrcDir}\examples\*.*"
|
||||
|
||||
SetOutPath "$INSTDIR\user"
|
||||
File /r "${SrcDir}\user\*.*"
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
;Client, configuration and misc files
|
||||
File "${SrcDir}\client_default.cfg"
|
||||
File "${SrcDir}\${Executable}"
|
||||
File "${SrcDir}\configure.bat"
|
||||
File "${SrcDir}\d3dcompiler_43.dll"
|
||||
File "${SrcDir}\d3dx9_43.dll"
|
||||
File "${SrcDir}\fmod.dll"
|
||||
File "${SrcDir}\forum.url"
|
||||
File "${SrcDir}\launch.bat"
|
||||
File "${SrcDir}\msvcp100.dll"
|
||||
File "${SrcDir}\msvcr100.dll"
|
||||
File "${SrcDir}\nel_drv_direct3d_win_r.dll"
|
||||
File "${SrcDir}\nel_drv_fmod_win_r.dll"
|
||||
File "${SrcDir}\nel_drv_opengl_win_r.dll"
|
||||
File "${SrcDir}\ryzom.ico"
|
||||
File "${SrcDir}\ryzom.url"
|
||||
File "${SrcDir}\Ryzom6.ico"
|
||||
|
||||
;Create uninstaller
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
|
||||
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
|
||||
|
||||
;Create shortcuts in Start Menu
|
||||
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\${Product}.lnk" "$INSTDIR\${Executable}"
|
||||
|
||||
;Create URLs
|
||||
!insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\$(MSG_SUPPORT_URL_TITLE)" "$(MSG_SUPPORT_URL)" "$INSTDIR\ryzom.ico"
|
||||
!insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\$(MSG_HOME_URL_TITLE)" "$(MSG_HOME_URL)" "$INSTDIR\ryzom.ico"
|
||||
|
||||
!insertmacro MUI_STARTMENU_WRITE_END
|
||||
|
||||
;Shortcut on desktop
|
||||
CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}"
|
||||
|
||||
;Add/Remove Program entry
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayIcon" "$INSTDIR\${Executable},0"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayName" "${Product}"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayVersion" "${Version}"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "InstallLocation" "$INSTDIR"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "QuietUninstallString" '"$INSTDIR\Uninstall.exe" /S'
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "UninstallString" "$INSTDIR\Uninstall.exe"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "Publisher" "${Company}"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "HelpLink" "$(MSG_SUPPORT_URL)"
|
||||
WriteRegStr HKLM "${UninstallRegistryKey}" "URLInfoAbout" "$(MSG_HOME_URL)"
|
||||
|
||||
;Store installation folder
|
||||
WriteRegStr "${RegistryCat}" "${RegistryKey}" "${Product} Install Path" $INSTDIR
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Section
|
||||
Section "Uninstall"
|
||||
;Install for All Users
|
||||
SetShellVarContext all
|
||||
|
||||
;Game directories
|
||||
RMDir /r "$INSTDIR\cfg"
|
||||
RMDir /r "$INSTDIR\data"
|
||||
RMDir /r "$INSTDIR\examples"
|
||||
|
||||
;Temporary directories
|
||||
RMDir /r "$INSTDIR\cache"
|
||||
RMDir /r "$INSTDIR\unpack"
|
||||
|
||||
;Client, configuration and misc files
|
||||
Delete "$INSTDIR\client_default.cfg"
|
||||
Delete "$INSTDIR\${Executable}"
|
||||
Delete "$INSTDIR\configure.bat"
|
||||
Delete "$INSTDIR\d3dcompiler_43.dll"
|
||||
Delete "$INSTDIR\d3dx9_43.dll"
|
||||
Delete "$INSTDIR\fmod.dll"
|
||||
Delete "$INSTDIR\forum.url"
|
||||
Delete "$INSTDIR\launch.bat"
|
||||
Delete "$INSTDIR\msvcp100.dll"
|
||||
Delete "$INSTDIR\msvcr100.dll"
|
||||
Delete "$INSTDIR\nel_drv_direct3d_win_r.dll"
|
||||
Delete "$INSTDIR\nel_drv_fmod_win_r.dll"
|
||||
Delete "$INSTDIR\nel_drv_opengl_win_r.dll"
|
||||
Delete "$INSTDIR\ryzom.ico"
|
||||
Delete "$INSTDIR\ryzom.url"
|
||||
Delete "$INSTDIR\Ryzom6.ico"
|
||||
|
||||
;Delete uninstaller
|
||||
Delete "$INSTDIR\Uninstall.exe"
|
||||
|
||||
MessageBox MB_YESNO "$(MSG_CONFIRM_DELETE_BACKUPS)" IDNO DontDeleteMiscFiles
|
||||
|
||||
;Delete directory
|
||||
RMDir /r "$INSTDIR"
|
||||
|
||||
DontDeleteMiscFiles:
|
||||
|
||||
;Delete directory if empty
|
||||
RMDir "$INSTDIR"
|
||||
|
||||
;Delete all shortcuts
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||
|
||||
;Delete Start Menu shortcuts
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\${Product}.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_HOME_URL_TITLE).url"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_SUPPORT_URL_TITLE).url"
|
||||
RMDir /r /REBOOTOK "$SMPROGRAMS\$MUI_TEMP"
|
||||
|
||||
;Delete desktop shortcut
|
||||
Delete "$DESKTOP\${Product}.lnk"
|
||||
|
||||
;Delete registry
|
||||
DeleteRegKey /ifempty "${RegistryCat}" "${RegistryKey}"
|
||||
DeleteRegKey "${RegistryCat}" "${UninstallRegistryKey}"
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Installer Functions
|
||||
|
||||
Function .onInit
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
FunctionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Functions
|
||||
|
||||
Function un.onInit
|
||||
!insertmacro MUI_UNGETLANGUAGE
|
||||
FunctionEnd
|
||||
|
@ -1,94 +1,94 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Run all export processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all export processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||
sys.path.append("configuration")
|
||||
|
||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Export')
|
||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
if not args.includeproject == None and not args.excludeproject == None:
|
||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||
exit()
|
||||
|
||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||
exit()
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the export processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each project
|
||||
for projectName in ProjectsToProcess:
|
||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||
printLog(log, "PROJECT " + projectName)
|
||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||
os.chdir("processes")
|
||||
try:
|
||||
if not args.includeprocess == None:
|
||||
subprocess.call([ "python", "1_export.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "1_export.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
projectLog = open("processes/log.log", "r")
|
||||
projectLogData = projectLog.read()
|
||||
projectLog.close()
|
||||
log.write(projectLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
else:
|
||||
printLog(log, "IGNORE PROJECT " + projectName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("1_export.log"):
|
||||
os.remove("1_export.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_export.log")
|
||||
shutil.move("log.log", "1_export.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Run all export processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all export processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||
sys.path.append("configuration")
|
||||
|
||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Export')
|
||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
if not args.includeproject == None and not args.excludeproject == None:
|
||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||
exit()
|
||||
|
||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||
exit()
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the export processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each project
|
||||
for projectName in ProjectsToProcess:
|
||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||
printLog(log, "PROJECT " + projectName)
|
||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||
os.chdir("processes")
|
||||
try:
|
||||
if not args.includeprocess == None:
|
||||
subprocess.call([ "python", "1_export.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "1_export.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
projectLog = open("processes/log.log", "r")
|
||||
projectLogData = projectLog.read()
|
||||
projectLog.close()
|
||||
log.write(projectLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
else:
|
||||
printLog(log, "IGNORE PROJECT " + projectName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("1_export.log"):
|
||||
os.remove("1_export.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_export.log")
|
||||
shutil.move("log.log", "1_export.log")
|
||||
|
@ -1,94 +1,94 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Run all build processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all build processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||
sys.path.append("configuration")
|
||||
|
||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Build')
|
||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
if not args.includeproject == None and not args.excludeproject == None:
|
||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||
exit()
|
||||
|
||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||
exit()
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the build processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each project
|
||||
for projectName in ProjectsToProcess:
|
||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||
printLog(log, "PROJECT " + projectName)
|
||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||
os.chdir("processes")
|
||||
try:
|
||||
if not args.includeprocess == None:
|
||||
subprocess.call([ "python", "2_build.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "2_build.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
projectLog = open("processes/log.log", "r")
|
||||
projectLogData = projectLog.read()
|
||||
projectLog.close()
|
||||
log.write(projectLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
else:
|
||||
printLog(log, "IGNORE PROJECT " + projectName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("2_build.log"):
|
||||
os.remove("2_build.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_build.log")
|
||||
shutil.move("log.log", "2_build.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Run all build processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all build processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||
sys.path.append("configuration")
|
||||
|
||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Build')
|
||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
if not args.includeproject == None and not args.excludeproject == None:
|
||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||
exit()
|
||||
|
||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||
exit()
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the build processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each project
|
||||
for projectName in ProjectsToProcess:
|
||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||
printLog(log, "PROJECT " + projectName)
|
||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||
os.chdir("processes")
|
||||
try:
|
||||
if not args.includeprocess == None:
|
||||
subprocess.call([ "python", "2_build.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "2_build.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
projectLog = open("processes/log.log", "r")
|
||||
projectLogData = projectLog.read()
|
||||
projectLog.close()
|
||||
log.write(projectLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
else:
|
||||
printLog(log, "IGNORE PROJECT " + projectName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("2_build.log"):
|
||||
os.remove("2_build.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_build.log")
|
||||
shutil.move("log.log", "2_build.log")
|
||||
|
@ -1,94 +1,94 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Run all install processes
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all install processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||
sys.path.append("configuration")
|
||||
|
||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Install')
|
||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
if not args.includeproject == None and not args.excludeproject == None:
|
||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||
exit()
|
||||
|
||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||
exit()
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the install processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each project
|
||||
for projectName in ProjectsToProcess:
|
||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||
printLog(log, "PROJECT " + projectName)
|
||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||
os.chdir("processes")
|
||||
try:
|
||||
if not args.includeprocess == None:
|
||||
subprocess.call([ "python", "3_install.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "3_install.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
projectLog = open("processes/log.log", "r")
|
||||
projectLogData = projectLog.read()
|
||||
projectLog.close()
|
||||
log.write(projectLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
else:
|
||||
printLog(log, "IGNORE PROJECT " + projectName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("3_install.log"):
|
||||
os.remove("3_install.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_install.log")
|
||||
shutil.move("log.log", "3_install.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Run all install processes
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all install processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||
sys.path.append("configuration")
|
||||
|
||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Install')
|
||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
if not args.includeproject == None and not args.excludeproject == None:
|
||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||
exit()
|
||||
|
||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||
exit()
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the install processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each project
|
||||
for projectName in ProjectsToProcess:
|
||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||
printLog(log, "PROJECT " + projectName)
|
||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||
os.chdir("processes")
|
||||
try:
|
||||
if not args.includeprocess == None:
|
||||
subprocess.call([ "python", "3_install.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "3_install.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
projectLog = open("processes/log.log", "r")
|
||||
projectLogData = projectLog.read()
|
||||
projectLog.close()
|
||||
log.write(projectLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + projectName + "> " + str(e))
|
||||
else:
|
||||
printLog(log, "IGNORE PROJECT " + projectName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("3_install.log"):
|
||||
os.remove("3_install.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_install.log")
|
||||
shutil.move("log.log", "3_install.log")
|
||||
|
@ -1,181 +1,181 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 9_upload.py
|
||||
# \brief Upload data to servers
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Game data build pipeline.
|
||||
# Upload data to servers
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2011 Kaetemi
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
try:
|
||||
from upload import *
|
||||
except ImportError:
|
||||
# Not documenting this. Because we can.
|
||||
printLog(log, "ERROR Upload not configured, bye.")
|
||||
exit()
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Upload data to servers")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
# Not documenting this. Because we can.
|
||||
Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool)
|
||||
printLog(log, "PSFTP " + Psftp)
|
||||
|
||||
def downloadVersionTag(server, user, sshkey, dir):
|
||||
if os.path.isfile("upload.tag"):
|
||||
os.remove("upload.tag")
|
||||
if os.path.isfile("upload.batch"):
|
||||
os.remove("upload.batch")
|
||||
ub = open("upload.batch", "w")
|
||||
ub.write("cd " + dir + "\n")
|
||||
ub.write("get upload.tag upload.tag\n")
|
||||
ub.write("quit\n")
|
||||
ub.close()
|
||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||
os.remove("upload.batch")
|
||||
if os.path.isfile("upload.tag"):
|
||||
ft = open("upload.tag")
|
||||
result = float(ft.read()) # float, really
|
||||
ft.close()
|
||||
os.remove("upload.tag")
|
||||
printLog(log, "INFO Upload tag is " + str(result))
|
||||
return result
|
||||
else:
|
||||
printLog(log, "WARNING Upload tag not found, uploading everything")
|
||||
return 0
|
||||
|
||||
def isDirectoryNeeded(ft, dir):
|
||||
files = os.listdir(dir)
|
||||
for fileName in files:
|
||||
if isLegalFileName(fileName):
|
||||
fileFull = dir + "/" + fileName
|
||||
if os.path.isfile(fileFull):
|
||||
nftf = os.stat(fileFull).st_mtime
|
||||
if nftf > ft:
|
||||
return True
|
||||
elif os.path.isdir(fileFull):
|
||||
if isDirectoryNeeded(ft, fileFull):
|
||||
return True
|
||||
elif not os.path.isdir(fileFull):
|
||||
printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull)
|
||||
return False
|
||||
|
||||
def listDirectoryUpload(ft, ub, udb, dir):
|
||||
nft = 0
|
||||
files = os.listdir(dir)
|
||||
for fileName in files:
|
||||
if isLegalFileName(fileName):
|
||||
fileFull = dir + "/" + fileName
|
||||
if os.path.isfile(fileFull):
|
||||
nftf = os.stat(fileFull).st_mtime
|
||||
if nftf > ft:
|
||||
ub.write("put " + fileFull + " " + fileName + "\n")
|
||||
if nftf > nft:
|
||||
nft = nftf
|
||||
elif os.path.isdir(fileFull):
|
||||
if isDirectoryNeeded(ft, fileFull):
|
||||
udb.write("mkdir " + fileName + "\n")
|
||||
ub.write("cd " + fileName + "\n")
|
||||
udb.write("cd " + fileName + "\n")
|
||||
nft2 = listDirectoryUpload(ft, ub, udb, fileFull)
|
||||
if (nft2 > nft):
|
||||
nft = nft2
|
||||
ub.write("cd ..\n")
|
||||
udb.write("cd ..\n")
|
||||
elif not os.path.isdir(fileFull):
|
||||
printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull)
|
||||
return nft
|
||||
|
||||
def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd):
|
||||
ft = downloadVersionTag(server, user, sshkey, dir_to)
|
||||
if isDirectoryNeeded(ft, dir_from):
|
||||
if os.path.isfile("upload_dir.batch"):
|
||||
os.remove("upload_dir.batch")
|
||||
if os.path.isfile("upload.batch"):
|
||||
os.remove("upload.batch")
|
||||
udb = open("upload_dir.batch", "w")
|
||||
udb.write("cd " + dir_to + "\n")
|
||||
ub = open("upload.batch", "w")
|
||||
ub.write("cd " + dir_to + "\n")
|
||||
for ac in addcmd:
|
||||
ub.write(ac + "\n")
|
||||
ftn = listDirectoryUpload(ft, ub, udb, dir_from)
|
||||
if (ft > ftn):
|
||||
ftn = ft
|
||||
nft = open("upload.tag", "w")
|
||||
nft.write(str(ftn))
|
||||
nft.close()
|
||||
ub.write("put upload.tag upload.tag\n")
|
||||
ub.write("quit\n")
|
||||
ub.close()
|
||||
udb.write("quit\n")
|
||||
udb.close()
|
||||
subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ])
|
||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||
os.remove("upload_dir.batch")
|
||||
os.remove("upload.batch")
|
||||
os.remove("upload.tag")
|
||||
else:
|
||||
printLog(log, "SKIP " + dir_to)
|
||||
|
||||
printLog(log, ">>> Upload patch <<<")
|
||||
for target in UploadPatch:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_shard <<<")
|
||||
for target in UploadShard:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ])
|
||||
|
||||
printLog(log, ">>> Upload data_common <<<")
|
||||
for target in UploadCommon:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_leveldesign/leveldesign <<<")
|
||||
for target in UploadLeveldesign:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_leveldesign/primitives <<<")
|
||||
for target in UploadPrimitives:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ])
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("9_upload.log"):
|
||||
os.remove("9_upload.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_upload.log")
|
||||
shutil.move("log.log", "9_upload.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 9_upload.py
|
||||
# \brief Upload data to servers
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Game data build pipeline.
|
||||
# Upload data to servers
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2011 Kaetemi
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
try:
|
||||
from upload import *
|
||||
except ImportError:
|
||||
# Not documenting this. Because we can.
|
||||
printLog(log, "ERROR Upload not configured, bye.")
|
||||
exit()
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Upload data to servers")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
# Not documenting this. Because we can.
|
||||
Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool)
|
||||
printLog(log, "PSFTP " + Psftp)
|
||||
|
||||
def downloadVersionTag(server, user, sshkey, dir):
|
||||
if os.path.isfile("upload.tag"):
|
||||
os.remove("upload.tag")
|
||||
if os.path.isfile("upload.batch"):
|
||||
os.remove("upload.batch")
|
||||
ub = open("upload.batch", "w")
|
||||
ub.write("cd " + dir + "\n")
|
||||
ub.write("get upload.tag upload.tag\n")
|
||||
ub.write("quit\n")
|
||||
ub.close()
|
||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||
os.remove("upload.batch")
|
||||
if os.path.isfile("upload.tag"):
|
||||
ft = open("upload.tag")
|
||||
result = float(ft.read()) # float, really
|
||||
ft.close()
|
||||
os.remove("upload.tag")
|
||||
printLog(log, "INFO Upload tag is " + str(result))
|
||||
return result
|
||||
else:
|
||||
printLog(log, "WARNING Upload tag not found, uploading everything")
|
||||
return 0
|
||||
|
||||
def isDirectoryNeeded(ft, dir):
|
||||
files = os.listdir(dir)
|
||||
for fileName in files:
|
||||
if isLegalFileName(fileName):
|
||||
fileFull = dir + "/" + fileName
|
||||
if os.path.isfile(fileFull):
|
||||
nftf = os.stat(fileFull).st_mtime
|
||||
if nftf > ft:
|
||||
return True
|
||||
elif os.path.isdir(fileFull):
|
||||
if isDirectoryNeeded(ft, fileFull):
|
||||
return True
|
||||
elif not os.path.isdir(fileFull):
|
||||
printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull)
|
||||
return False
|
||||
|
||||
def listDirectoryUpload(ft, ub, udb, dir):
|
||||
nft = 0
|
||||
files = os.listdir(dir)
|
||||
for fileName in files:
|
||||
if isLegalFileName(fileName):
|
||||
fileFull = dir + "/" + fileName
|
||||
if os.path.isfile(fileFull):
|
||||
nftf = os.stat(fileFull).st_mtime
|
||||
if nftf > ft:
|
||||
ub.write("put " + fileFull + " " + fileName + "\n")
|
||||
if nftf > nft:
|
||||
nft = nftf
|
||||
elif os.path.isdir(fileFull):
|
||||
if isDirectoryNeeded(ft, fileFull):
|
||||
udb.write("mkdir " + fileName + "\n")
|
||||
ub.write("cd " + fileName + "\n")
|
||||
udb.write("cd " + fileName + "\n")
|
||||
nft2 = listDirectoryUpload(ft, ub, udb, fileFull)
|
||||
if (nft2 > nft):
|
||||
nft = nft2
|
||||
ub.write("cd ..\n")
|
||||
udb.write("cd ..\n")
|
||||
elif not os.path.isdir(fileFull):
|
||||
printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull)
|
||||
return nft
|
||||
|
||||
def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd):
|
||||
ft = downloadVersionTag(server, user, sshkey, dir_to)
|
||||
if isDirectoryNeeded(ft, dir_from):
|
||||
if os.path.isfile("upload_dir.batch"):
|
||||
os.remove("upload_dir.batch")
|
||||
if os.path.isfile("upload.batch"):
|
||||
os.remove("upload.batch")
|
||||
udb = open("upload_dir.batch", "w")
|
||||
udb.write("cd " + dir_to + "\n")
|
||||
ub = open("upload.batch", "w")
|
||||
ub.write("cd " + dir_to + "\n")
|
||||
for ac in addcmd:
|
||||
ub.write(ac + "\n")
|
||||
ftn = listDirectoryUpload(ft, ub, udb, dir_from)
|
||||
if (ft > ftn):
|
||||
ftn = ft
|
||||
nft = open("upload.tag", "w")
|
||||
nft.write(str(ftn))
|
||||
nft.close()
|
||||
ub.write("put upload.tag upload.tag\n")
|
||||
ub.write("quit\n")
|
||||
ub.close()
|
||||
udb.write("quit\n")
|
||||
udb.close()
|
||||
subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ])
|
||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||
os.remove("upload_dir.batch")
|
||||
os.remove("upload.batch")
|
||||
os.remove("upload.tag")
|
||||
else:
|
||||
printLog(log, "SKIP " + dir_to)
|
||||
|
||||
printLog(log, ">>> Upload patch <<<")
|
||||
for target in UploadPatch:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_shard <<<")
|
||||
for target in UploadShard:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ])
|
||||
|
||||
printLog(log, ">>> Upload data_common <<<")
|
||||
for target in UploadCommon:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_leveldesign/leveldesign <<<")
|
||||
for target in UploadLeveldesign:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_leveldesign/primitives <<<")
|
||||
for target in UploadPrimitives:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ])
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("9_upload.log"):
|
||||
os.remove("9_upload.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_upload.log")
|
||||
shutil.move("log.log", "9_upload.log")
|
||||
|
@ -1,74 +1,74 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file a1_worldedit_data.py
|
||||
# \brief Install worldedit data
|
||||
# \date 2014-09-10 14:01GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install worldedit data
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install worldedit data")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for ecosystem in WorldEditEcosystems:
|
||||
ecosystemName = ecosystem[0]
|
||||
srcZoneLigos = ExportBuildDirectory + "/ecosystems/" + ecosystemName + "/ligo_es/zoneligos/"
|
||||
dstZoneLigos = WorldEditInstallDirectory + "/" + ecosystemName + "/zoneligos/"
|
||||
mkPath(log, srcZoneLigos)
|
||||
mkPath(log, dstZoneLigos)
|
||||
copyFilesNoTreeIfNeeded(log, srcZoneLigos, dstZoneLigos)
|
||||
srcZoneBitmaps = DatabaseDirectory + "/landscape/ligo/" + ecosystemName + "/zonebitmaps/"
|
||||
dstZoneBitmaps = WorldEditInstallDirectory + "/" + ecosystemName + "/zonebitmaps/"
|
||||
mkPath(log, srcZoneBitmaps)
|
||||
mkPath(log, dstZoneBitmaps)
|
||||
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".png")
|
||||
dstCollisionMap = WorldEditInstallDirectory + "/" + ecosystemName + "/collisionmap/"
|
||||
mkPath(log, dstCollisionMap)
|
||||
for continentName in ecosystem[1]:
|
||||
srcCollisionMap = ExportBuildDirectory + "/continents/" + continentName + "/ai_wmap/"
|
||||
mkPath(log, srcCollisionMap)
|
||||
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".png")
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("a1_worldedit_data.log"):
|
||||
os.remove("a1_worldedit_data.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_worldedit_data.log")
|
||||
shutil.move("log.log", "a1_worldedit_data.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file a1_worldedit_data.py
|
||||
# \brief Install worldedit data
|
||||
# \date 2014-09-10 14:01GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install worldedit data
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install worldedit data")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for ecosystem in WorldEditEcosystems:
|
||||
ecosystemName = ecosystem[0]
|
||||
srcZoneLigos = ExportBuildDirectory + "/ecosystems/" + ecosystemName + "/ligo_es/zoneligos/"
|
||||
dstZoneLigos = WorldEditInstallDirectory + "/" + ecosystemName + "/zoneligos/"
|
||||
mkPath(log, srcZoneLigos)
|
||||
mkPath(log, dstZoneLigos)
|
||||
copyFilesNoTreeIfNeeded(log, srcZoneLigos, dstZoneLigos)
|
||||
srcZoneBitmaps = DatabaseDirectory + "/landscape/ligo/" + ecosystemName + "/zonebitmaps/"
|
||||
dstZoneBitmaps = WorldEditInstallDirectory + "/" + ecosystemName + "/zonebitmaps/"
|
||||
mkPath(log, srcZoneBitmaps)
|
||||
mkPath(log, dstZoneBitmaps)
|
||||
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".png")
|
||||
dstCollisionMap = WorldEditInstallDirectory + "/" + ecosystemName + "/collisionmap/"
|
||||
mkPath(log, dstCollisionMap)
|
||||
for continentName in ecosystem[1]:
|
||||
srcCollisionMap = ExportBuildDirectory + "/continents/" + continentName + "/ai_wmap/"
|
||||
mkPath(log, srcCollisionMap)
|
||||
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".png")
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("a1_worldedit_data.log"):
|
||||
os.remove("a1_worldedit_data.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_worldedit_data.log")
|
||||
shutil.move("log.log", "a1_worldedit_data.log")
|
||||
|
@ -1,15 +1,17 @@
|
||||
title Ryzom Core: 0_setup.py --noconf
|
||||
0_setup.py --noconf
|
||||
title Ryzom Core: 1_export.py
|
||||
1_export.py
|
||||
title Ryzom Core: 2_build.py
|
||||
2_build.py
|
||||
title Ryzom Core: 3_install.py
|
||||
3_install.py
|
||||
title Ryzom Core: a1_worldedit_data.py
|
||||
a1_worldedit_data.py
|
||||
title Ryzom Core: b1_client_dev.py
|
||||
b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py
|
||||
b2_shard_data.py
|
||||
title Ryzom Core: Ready
|
||||
title Ryzom Core: 0_setup.py --noconf
|
||||
python 0_setup.py --noconf
|
||||
title Ryzom Core: 1_export.py
|
||||
python 1_export.py
|
||||
title Ryzom Core: 2_build.py
|
||||
python 2_build.py
|
||||
title Ryzom Core: 3_install.py
|
||||
python 3_install.py
|
||||
title Ryzom Core: a1_worldedit_data.py
|
||||
python a1_worldedit_data.py
|
||||
title Ryzom Core: b1_client_dev.py
|
||||
python b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py
|
||||
python b2_shard_data.py
|
||||
title Ryzom Core: b3_shard_dev.py
|
||||
python b3_shard_dev.py
|
||||
title Ryzom Core: Ready
|
||||
|
@ -1,9 +1,11 @@
|
||||
title Ryzom Core: 3_install.py
|
||||
3_install.py
|
||||
title Ryzom Core: a1_worldedit_data.py
|
||||
a1_worldedit_data.py
|
||||
title Ryzom Core: b1_client_dev.py
|
||||
b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py
|
||||
b2_shard_data.py
|
||||
title Ryzom Core: Ready
|
||||
title Ryzom Core: 3_install.py
|
||||
python 3_install.py
|
||||
title Ryzom Core: a1_worldedit_data.py
|
||||
python a1_worldedit_data.py
|
||||
title Ryzom Core: b1_client_dev.py
|
||||
python b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py
|
||||
python b2_shard_data.py
|
||||
title Ryzom Core: b3_shard_dev.py
|
||||
python b3_shard_dev.py
|
||||
title Ryzom Core: Ready
|
||||
|
@ -1,93 +1,93 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file b2_shard_data.py
|
||||
# \brief Install shard data
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install shard data
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install shard data")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for dir in InstallShardDataDirectories:
|
||||
printLog(log, "SHARD PACKAGE " + dir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dir)
|
||||
printLog(log, "FROM " + dir)
|
||||
mkPath(log, InstallDirectory + "/" + dir)
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, ShardInstallDirectory + "/" + dir)
|
||||
for package in InstallShardDataFiles:
|
||||
dstDir = package[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, package[1])
|
||||
for multiDir in InstallShardDataMultiDirectories:
|
||||
dstDir = multiDir[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
for srcDir in multiDir[1]:
|
||||
printLog(log, "FROM " + srcDir)
|
||||
mkPath(log, InstallDirectory + "/" + srcDir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
for multiDir in InstallShardDataPrimitivesDirectories:
|
||||
dstDir = multiDir[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
for srcDir in multiDir[1]:
|
||||
printLog(log, "FROM PRIMITIVES " + srcDir)
|
||||
mkPath(log, PrimitivesDirectory + "/" + srcDir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
copyFilesNoTreeIfNeeded(log, PrimitivesDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
for execDir in InstallShardDataExecutables:
|
||||
dstDir = execDir[0]
|
||||
mkPath(log, LinuxServiceExecutableDirectory)
|
||||
mkPath(log, PatchmanCfgDefaultDirectory)
|
||||
mkPath(log, InstallDirectory)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
copyFileIfNeeded(log, LinuxServiceExecutableDirectory + "/" + execDir[1][1], ShardInstallDirectory + "/" + dstDir + "/" + execDir[1][0])
|
||||
copyFileListNoTreeIfNeeded(log, PatchmanCfgDefaultDirectory, ShardInstallDirectory + "/" + dstDir, execDir[2])
|
||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, execDir[3])
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("b2_shard_data.log"):
|
||||
os.remove("b2_shard_data.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_data.log")
|
||||
shutil.move("log.log", "b2_shard_data.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file b2_shard_data.py
|
||||
# \brief Install shard data
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install shard data
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install shard data")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for dir in InstallShardDataDirectories:
|
||||
printLog(log, "SHARD PACKAGE " + dir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dir)
|
||||
printLog(log, "FROM " + dir)
|
||||
mkPath(log, InstallDirectory + "/" + dir)
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, ShardInstallDirectory + "/" + dir)
|
||||
for package in InstallShardDataFiles:
|
||||
dstDir = package[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, package[1])
|
||||
for multiDir in InstallShardDataMultiDirectories:
|
||||
dstDir = multiDir[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
for srcDir in multiDir[1]:
|
||||
printLog(log, "FROM " + srcDir)
|
||||
mkPath(log, InstallDirectory + "/" + srcDir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
for multiDir in InstallShardDataPrimitivesDirectories:
|
||||
dstDir = multiDir[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
for srcDir in multiDir[1]:
|
||||
printLog(log, "FROM PRIMITIVES " + srcDir)
|
||||
mkPath(log, PrimitivesDirectory + "/" + srcDir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
copyFilesNoTreeIfNeeded(log, PrimitivesDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
for execDir in InstallShardDataExecutables:
|
||||
dstDir = execDir[0]
|
||||
mkPath(log, LinuxServiceExecutableDirectory)
|
||||
mkPath(log, PatchmanCfgDefaultDirectory)
|
||||
mkPath(log, InstallDirectory)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
copyFileIfNeeded(log, LinuxServiceExecutableDirectory + "/" + execDir[1][1], ShardInstallDirectory + "/" + dstDir + "/" + execDir[1][0])
|
||||
copyFileListNoTreeIfNeeded(log, PatchmanCfgDefaultDirectory, ShardInstallDirectory + "/" + dstDir, execDir[2])
|
||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, execDir[3])
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("b2_shard_data.log"):
|
||||
os.remove("b2_shard_data.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_data.log")
|
||||
shutil.move("log.log", "b2_shard_data.log")
|
||||
|
@ -0,0 +1,152 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file b2_shard_data.py
|
||||
# \brief Install shard data
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install shard data
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install to shard dev")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
PatchmanService = findTool(log, ToolDirectories, PatchmanServiceTool, ToolSuffix)
|
||||
printLog(log, "")
|
||||
|
||||
mkPath(log, ShardDevDirectory)
|
||||
mkPath(log, ShardDevDirectory + "/local")
|
||||
printLog(log, ">>> Generate shard dev local.cfg <<<")
|
||||
cfg = open(ShardDevDirectory + "/local.cfg", "w")
|
||||
cfg.write("WindowStyle = \"WIN\";\n")
|
||||
cfg.write("Paths += {\n")
|
||||
cfg.write(" \"" + ShardDevDirectory + "/local\",\n")
|
||||
cfg.write(" \"" + DataCommonDirectory + "\",\n")
|
||||
cfg.write(" \"" + DataShardDirectory + "\",\n")
|
||||
cfg.write(" \"" + LeveldesignDirectory + "\",\n")
|
||||
cfg.write(" \"" + WorldEditorFilesDirectory + "\",\n")
|
||||
for dir in InstallShardDataDirectories:
|
||||
mkPath(log, ShardInstallDirectory + "/" + dir)
|
||||
cfg.write(" \"" + ShardInstallDirectory + "/" + dir + "\",\n")
|
||||
for multiDir in InstallShardDataMultiDirectories:
|
||||
dstDir = multiDir[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
cfg.write(" \"" + ShardInstallDirectory + "/" + dstDir + "\",\n")
|
||||
cfg.write("};\n")
|
||||
cfg.write("RRDToolPath = \"..\\..\\..\\external\\rrdtool\\rrdtool.exe\";\n")
|
||||
cfg.write("StartCommands += {\n")
|
||||
cfg.write(" // \"gw_aes.transportRemove aes_l3c\",\n")
|
||||
cfg.write("};\n")
|
||||
cfg.write("NegFiltersWarning += {\n")
|
||||
cfg.write(" \"already inserted from\",\n")
|
||||
cfg.write("};\n")
|
||||
cfg.write("// Allow player to stay connected to FS when services go down\n")
|
||||
cfg.write("DontNeedBackend = 1;\n")
|
||||
cfg.flush()
|
||||
cfg.close()
|
||||
printLog(log, "")
|
||||
|
||||
if not os.path.exists(ShardDevDirectory + "/aes_state.txt"):
|
||||
printLog(log, ">>> Generate shard dev aes_state.txt <<<")
|
||||
f = open(ShardDevDirectory + "/aes_state.txt", "w")
|
||||
f.write("ShardOrders unifier so_autostart_off\n")
|
||||
f.write("ShardOrders mainland so_autostart_off\n")
|
||||
f.write("ShardOrders ring so_autostart_off\n")
|
||||
f.flush()
|
||||
f.close()
|
||||
printLog(log, "")
|
||||
|
||||
mkPath(log, ShardDevDirectory + "/ras")
|
||||
if not os.path.exists(ShardDevDirectory + "/ras/as_state.txt"):
|
||||
printLog(log, ">>> Generate shard dev as_state.txt <<<")
|
||||
f = open(ShardDevDirectory + "/ras/as_state.txt", "w")
|
||||
f.write("ShardOrders unifier so_autostart_off\n")
|
||||
f.write("ShardOrders mainland so_autostart_off\n")
|
||||
f.write("ShardOrders ring so_autostart_off\n")
|
||||
f.flush()
|
||||
f.close()
|
||||
printLog(log, "")
|
||||
|
||||
for execDir in InstallShardDataExecutables:
|
||||
dstDir = execDir[0]
|
||||
mkPath(log, PatchmanCfgDefaultDirectory)
|
||||
mkPath(log, InstallDirectory)
|
||||
mkPath(log, ShardDevDirectory + "/live/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
copyFileListNoTreeIfNeeded(log, PatchmanCfgDefaultDirectory, ShardDevDirectory + "/live/" + dstDir, execDir[2])
|
||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardDevDirectory + "/live/" + dstDir, execDir[3])
|
||||
for cfgName in execDir[2]:
|
||||
cfgPath = ShardDevDirectory + "/live/" + dstDir + "/" + cfgName
|
||||
found = False
|
||||
with open(cfgPath, "r") as f:
|
||||
for l in f:
|
||||
if "Paths += {" in l:
|
||||
found = True
|
||||
if not found:
|
||||
with open(cfgPath, "a") as cfg:
|
||||
cfg.write("\n")
|
||||
cfg.write("Paths += {\n")
|
||||
cfg.write(" \"" + ShardDevDirectory + "/live/" + dstDir + "\",\n")
|
||||
cfg.write("};\n")
|
||||
cfg.write("\n")
|
||||
cfg.flush()
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
if PatchmanService == "":
|
||||
toolLogFail(log, PatchmanServiceTool, ToolSuffix)
|
||||
else:
|
||||
mkPath(log, PatchmanDevDirectory)
|
||||
cwDir = os.getcwd().replace("\\", "/")
|
||||
os.chdir(PatchmanDevDirectory)
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
subprocess.call([ PatchmanService, "-C.", "-L." ])
|
||||
if os.path.isfile("log.log"):
|
||||
f = open("log.log", "r")
|
||||
for l in f:
|
||||
printLog(log, l.rstrip())
|
||||
f.close()
|
||||
os.chdir(cwDir)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("b3_shard_dev.log"):
|
||||
os.remove("b3_shard_dev.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_dev.log")
|
||||
shutil.move("log.log", "b3_shard_dev.log")
|
@ -1,11 +1,11 @@
|
||||
title Ryzom Core: 1_export.py (CHARACTERS)
|
||||
1_export.py -ipj common/characters common/characters_maps_hr
|
||||
title Ryzom Core: 2_build.py (CHARACTERS)
|
||||
2_build.py -ipj common/characters common/characters_maps_hr
|
||||
title Ryzom Core: 3_install.py (CHARACTERS)
|
||||
3_install.py -ipj common/characters common/characters_maps_hr
|
||||
title Ryzom Core: b1_client_dev.py (CHARACTERS)
|
||||
b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py (CHARACTERS)
|
||||
b2_shard_data.py
|
||||
title Ryzom Core: Ready (CHARACTERS)
|
||||
title Ryzom Core: 1_export.py (CHARACTERS)
|
||||
python 1_export.py -ipj common/characters common/characters_maps_hr
|
||||
title Ryzom Core: 2_build.py (CHARACTERS)
|
||||
python 2_build.py -ipj common/characters common/characters_maps_hr
|
||||
title Ryzom Core: 3_install.py (CHARACTERS)
|
||||
python 3_install.py -ipj common/characters common/characters_maps_hr
|
||||
title Ryzom Core: b1_client_dev.py (CHARACTERS)
|
||||
python b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py (CHARACTERS)
|
||||
python b2_shard_data.py
|
||||
title Ryzom Core: Ready (CHARACTERS)
|
||||
|
@ -1,86 +1,86 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file d2_client_install.py
|
||||
# \brief Install to client install
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install to client install
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install to client install")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for category in InstallClientData:
|
||||
printLog(log, "CATEGORY " + category["Name"])
|
||||
packExt = ".bnp"
|
||||
if (category["StreamedPackages"]):
|
||||
packExt = ".snp"
|
||||
if (category["UnpackTo"] != None):
|
||||
targetPath = ClientInstallDirectory
|
||||
if (category["UnpackTo"] != ""):
|
||||
targetPath += "/" + category["UnpackTo"]
|
||||
mkPath(log, targetPath)
|
||||
for package in category["Packages"]:
|
||||
printLog(log, "PACKAGE " + package[0])
|
||||
mkPath(log, InstallDirectory + "/" + package[0])
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
|
||||
else:
|
||||
sourcePath = ClientPatchDirectory + "/bnp"
|
||||
targetPath = ClientInstallDirectory + "/data"
|
||||
mkPath(log, targetPath)
|
||||
for package in category["Packages"]:
|
||||
printLog(log, "PACKAGE " + package[0])
|
||||
sourceBnp = sourcePath + "/" + package[0] + packExt
|
||||
targetBnp = targetPath + "/" + package[0] + packExt
|
||||
if (len(package[1]) > 0):
|
||||
sourceBnp = sourcePath + "/" + package[1][0]
|
||||
targetBnp = targetPath + "/" + package[1][0]
|
||||
printLog(log, "TARGET " + package[1][0])
|
||||
copyFileIfNeeded(log, sourceBnp, targetBnp)
|
||||
for ref in category["Refs"]:
|
||||
printLog(log, "REFERENCE " + ref)
|
||||
sourceRef = sourcePath + "/" + ref + "_.ref"
|
||||
targetRef = targetPath + "/" + ref + "_.ref"
|
||||
copyFileIfNeeded(log, sourceRef, targetRef)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("d2_client_install.log"):
|
||||
os.remove("d2_client_install.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_install.log")
|
||||
shutil.move("log.log", "d2_client_install.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file d2_client_install.py
|
||||
# \brief Install to client install
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install to client install
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install to client install")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for category in InstallClientData:
|
||||
printLog(log, "CATEGORY " + category["Name"])
|
||||
packExt = ".bnp"
|
||||
if (category["StreamedPackages"]):
|
||||
packExt = ".snp"
|
||||
if (category["UnpackTo"] != None):
|
||||
targetPath = ClientInstallDirectory
|
||||
if (category["UnpackTo"] != ""):
|
||||
targetPath += "/" + category["UnpackTo"]
|
||||
mkPath(log, targetPath)
|
||||
for package in category["Packages"]:
|
||||
printLog(log, "PACKAGE " + package[0])
|
||||
mkPath(log, InstallDirectory + "/" + package[0])
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
|
||||
else:
|
||||
sourcePath = ClientPatchDirectory + "/bnp"
|
||||
targetPath = ClientInstallDirectory + "/data"
|
||||
mkPath(log, targetPath)
|
||||
for package in category["Packages"]:
|
||||
printLog(log, "PACKAGE " + package[0])
|
||||
sourceBnp = sourcePath + "/" + package[0] + packExt
|
||||
targetBnp = targetPath + "/" + package[0] + packExt
|
||||
if (len(package[1]) > 0):
|
||||
sourceBnp = sourcePath + "/" + package[1][0]
|
||||
targetBnp = targetPath + "/" + package[1][0]
|
||||
printLog(log, "TARGET " + package[1][0])
|
||||
copyFileIfNeeded(log, sourceBnp, targetBnp)
|
||||
for ref in category["Refs"]:
|
||||
printLog(log, "REFERENCE " + ref)
|
||||
sourceRef = sourcePath + "/" + ref + "_.ref"
|
||||
targetRef = targetPath + "/" + ref + "_.ref"
|
||||
copyFileIfNeeded(log, sourceRef, targetRef)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("d2_client_install.log"):
|
||||
os.remove("d2_client_install.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_install.log")
|
||||
shutil.move("log.log", "d2_client_install.log")
|
||||
|
@ -1,13 +1,15 @@
|
||||
title Ryzom Core: 0_setup.py (EXECUTABLES)
|
||||
0_setup.py --noconf -ipj common/gamedev common/exedll common/cfg common/data_common
|
||||
title Ryzom Core: 1_export.py (EXECUTABLES)
|
||||
1_export.py -ipj common/gamedev common/exedll common/cfg common/data_common
|
||||
title Ryzom Core: 2_build.py (EXECUTABLES)
|
||||
2_build.py -ipj common/gamedev common/exedll common/cfg common/data_common
|
||||
title Ryzom Core: 3_install.py (EXECUTABLES)
|
||||
3_install.py -ipj common/gamedev common/exedll common/cfg common/data_common
|
||||
title Ryzom Core: b1_client_dev.py
|
||||
b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py
|
||||
b2_shard_data.py
|
||||
title Ryzom Core: Ready
|
||||
title Ryzom Core: 0_setup.py (EXECUTABLES)
|
||||
python 0_setup.py --noconf -ipj common/gamedev common/exedll common/cfg common/data_common
|
||||
title Ryzom Core: 1_export.py (EXECUTABLES)
|
||||
python 1_export.py -ipj common/gamedev common/exedll common/cfg common/data_common
|
||||
title Ryzom Core: 2_build.py (EXECUTABLES)
|
||||
python 2_build.py -ipj common/gamedev common/exedll common/cfg common/data_common
|
||||
title Ryzom Core: 3_install.py (EXECUTABLES)
|
||||
python 3_install.py -ipj common/gamedev common/exedll common/cfg common/data_common
|
||||
title Ryzom Core: b1_client_dev.py
|
||||
python b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py
|
||||
python b2_shard_data.py
|
||||
title Ryzom Core: b3_shard_dev.py
|
||||
python b3_shard_dev.py
|
||||
title Ryzom Core: Ready
|
||||
|
@ -1,32 +1,32 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file export_build_install.py
|
||||
# \brief Run all processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import shutil, subprocess
|
||||
|
||||
subprocess.call([ "python", "1_export.py" ])
|
||||
subprocess.call([ "python", "2_build.py" ])
|
||||
subprocess.call([ "python", "3_install.py" ])
|
||||
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file export_build_install.py
|
||||
# \brief Run all processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import shutil, subprocess
|
||||
|
||||
subprocess.call([ "python", "1_export.py" ])
|
||||
subprocess.call([ "python", "2_build.py" ])
|
||||
subprocess.call([ "python", "3_install.py" ])
|
||||
|
||||
|
@ -0,0 +1,11 @@
|
||||
title Ryzom Core: 1_export.py (FAUNA)
|
||||
python 1_export.py -ipj common/fauna
|
||||
title Ryzom Core: 2_build.py (FAUNA)
|
||||
python 2_build.py -ipj common/fauna
|
||||
title Ryzom Core: 3_install.py (FAUNA)
|
||||
python 3_install.py -ipj common/fauna
|
||||
title Ryzom Core: b1_client_dev.py (FAUNA)
|
||||
python b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py (FAUNA)
|
||||
python b2_shard_data.py
|
||||
title Ryzom Core: Ready (FAUNA)
|
@ -1,220 +1,220 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file directories.py
|
||||
# \brief Directories configuration
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# \date 2001-2005
|
||||
# \author Nevrax
|
||||
# Python port of game data build pipeline.
|
||||
# Directories configuration for '%PreGenEcosystemName%' ecosystem.
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
|
||||
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
||||
|
||||
EcosystemName = "%PreGenEcosystemName%"
|
||||
EcosystemPath = "ecosystems/" + EcosystemName
|
||||
CommonName = EcosystemName
|
||||
CommonPath = EcosystemPath
|
||||
|
||||
DatabaseRootName = "%PreGenDatabaseRootName%"
|
||||
DatabaseRootPath = "stuff/" + DatabaseRootName
|
||||
|
||||
|
||||
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
||||
|
||||
# Shape directories
|
||||
ShapeSourceDirectories = [ ]
|
||||
ShapeSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||
ShapeSourceDirectories += [ "landscape/ligo/" + EcosystemName + "/max" ]
|
||||
|
||||
# Maps directories
|
||||
MapSourceDirectories = [ ]
|
||||
MapSourceDirectories += [ DatabaseRootPath + "/decors/_textures" ]
|
||||
%PreGenMapSubdirectories%MapSourceDirectories += [ "landscape/microveget/" + EcosystemName + "" ]
|
||||
MapSourceDirectories += [ "landscape/water/meshes/" + EcosystemName + "" ]
|
||||
|
||||
MapUncompressedSourceDirectories = [ ]
|
||||
|
||||
# Tiles directories
|
||||
TilesSourceDirectories = [ ]
|
||||
%PreGenTileSourceDirectories%
|
||||
# Tiles root directory
|
||||
TileRootSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
||||
|
||||
# Displace directory
|
||||
DisplaceSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + "/displace"
|
||||
|
||||
# Do not use, needs to be removed and fixed in processes
|
||||
DisplaceSourceDirectories = [ ]
|
||||
DisplaceSourceDirectories += [ DisplaceSourceDirectory ]
|
||||
|
||||
# Bank directory
|
||||
BankSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
||||
|
||||
# Vegetable set directories
|
||||
VegetSetSourceDirectories = [ ]
|
||||
VegetSetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
||||
|
||||
# Veget directories
|
||||
VegetSourceDirectories = [ ]
|
||||
VegetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
||||
|
||||
# Ligo directories
|
||||
LigoBaseSourceDirectory = "landscape/ligo/" + EcosystemName
|
||||
LigoMaxSourceDirectory = LigoBaseSourceDirectory + "/max"
|
||||
|
||||
# Zone directories
|
||||
ZoneSourceDirectory = [ "landscape/zones/" + EcosystemName ] # For old snowballs style landscape when not using ligo
|
||||
|
||||
# Ig landscape directories
|
||||
IgLandSourceDirectory = "_invalid"
|
||||
|
||||
# Ig other directories
|
||||
IgOtherSourceDirectory = "_invalid"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimSourceDirectories = [ ]
|
||||
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||
|
||||
|
||||
# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
|
||||
|
||||
# Ig lookup directories used by rbank
|
||||
IgLookupDirectories = [ ]
|
||||
|
||||
# Shape lookup directories used by rbank
|
||||
ShapeLookupDirectories = [ ]
|
||||
ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
|
||||
ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
|
||||
|
||||
# Map lookup directories not yet used
|
||||
MapLookupDirectories = [ ]
|
||||
MapLookupDirectories += [ EcosystemPath + "/map_export" ]
|
||||
MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
|
||||
|
||||
|
||||
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||
|
||||
# Map directories
|
||||
MapExportDirectory = CommonPath + "/map_export"
|
||||
MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
|
||||
|
||||
# Shape directories
|
||||
ShapeTagExportDirectory = CommonPath + "/shape_tag"
|
||||
ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
|
||||
ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
|
||||
ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
|
||||
ShapeAnimExportDirectory = CommonPath + "/shape_anim"
|
||||
|
||||
# Smallbank directories
|
||||
SmallbankExportDirectory = CommonPath + "/smallbank"
|
||||
|
||||
# Tiles directories
|
||||
TilesExportDirectory = CommonPath + "/tiles"
|
||||
|
||||
# Tiles directories
|
||||
DisplaceExportDirectory = CommonPath + "/diplace"
|
||||
|
||||
# Veget directories
|
||||
VegetExportDirectory = CommonPath + "/veget"
|
||||
VegetTagExportDirectory = CommonPath + "/veget_tag"
|
||||
|
||||
# Veget Set directories
|
||||
VegetSetExportDirectory = CommonPath + "/veget_set"
|
||||
|
||||
# Ligo directories
|
||||
LigoEcosystemExportDirectory = CommonPath + "/ligo_es"
|
||||
LigoEcosystemIgExportDirectory = LigoEcosystemExportDirectory + "/igs"
|
||||
LigoEcosystemZoneExportDirectory = LigoEcosystemExportDirectory + "/zones"
|
||||
LigoEcosystemZoneLigoExportDirectory = LigoEcosystemExportDirectory + "/zoneligos"
|
||||
LigoEcosystemCmbExportDirectory = LigoEcosystemExportDirectory + "/cmb"
|
||||
LigoEcosystemTagExportDirectory = CommonPath + "/ligo_es_tag"
|
||||
|
||||
# Zone directories
|
||||
ZoneExportDirectory = CommonPath + "/zone"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimExportDirectory = CommonPath + "/pacs_prim"
|
||||
PacsPrimTagExportDirectory = CommonPath + "/pacs_prim_tag"
|
||||
|
||||
|
||||
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||
|
||||
# Map directories
|
||||
MapBuildDirectory = CommonPath + "/map"
|
||||
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||
MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
|
||||
MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
|
||||
MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
|
||||
MapTagBuildDirectory = CommonPath + "/map_tag"
|
||||
|
||||
# Shape directories
|
||||
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
|
||||
ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
|
||||
ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
|
||||
ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
|
||||
|
||||
# Farbank directories
|
||||
FarbankBuildDirectory = CommonPath + "/farbank"
|
||||
|
||||
# Ig directories ************** TODO CONFIRM IN IG BUILD PROCESS ************ FIX RBANK IF NEEDED ***********
|
||||
IgLandBuildDirectory = "_invalid"
|
||||
IgOtherBuildDirectory = "_invalid"
|
||||
|
||||
# Rbank directories
|
||||
RbankOutputBuildDirectory = "_invalid"
|
||||
|
||||
# Ligo directories
|
||||
|
||||
|
||||
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||
|
||||
# Map directory
|
||||
MapInstallDirectory = CommonName + "_maps"
|
||||
BitmapInstallDirectory = MapInstallDirectory
|
||||
|
||||
# Shape directory
|
||||
ShapeInstallDirectory = CommonName + "_shapes"
|
||||
|
||||
# Lightmap directory
|
||||
LightmapInstallDirectory = CommonName + "_lightmaps"
|
||||
|
||||
# Tile directory
|
||||
TilesInstallDirectory = CommonName + "_tiles"
|
||||
|
||||
# Displace directory
|
||||
DisplaceInstallDirectory = CommonName + "_displaces"
|
||||
|
||||
# Bank directory
|
||||
BankInstallDirectory = CommonName + "_bank"
|
||||
|
||||
# Vegetable set directory
|
||||
VegetSetInstallDirectory = CommonName + "_vegetable_sets"
|
||||
|
||||
# Vegetable shape directory
|
||||
VegetInstallDirectory = CommonName + "_vegetables"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimInstallDirectory = CommonName + "_pacs_prim"
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file directories.py
|
||||
# \brief Directories configuration
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# \date 2001-2005
|
||||
# \author Nevrax
|
||||
# Python port of game data build pipeline.
|
||||
# Directories configuration for '%PreGenEcosystemName%' ecosystem.
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
|
||||
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
||||
|
||||
EcosystemName = "%PreGenEcosystemName%"
|
||||
EcosystemPath = "ecosystems/" + EcosystemName
|
||||
CommonName = EcosystemName
|
||||
CommonPath = EcosystemPath
|
||||
|
||||
DatabaseRootName = "%PreGenDatabaseRootName%"
|
||||
DatabaseRootPath = "stuff/" + DatabaseRootName
|
||||
|
||||
|
||||
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
||||
|
||||
# Shape directories
|
||||
ShapeSourceDirectories = [ ]
|
||||
ShapeSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||
ShapeSourceDirectories += [ "landscape/ligo/" + EcosystemName + "/max" ]
|
||||
|
||||
# Maps directories
|
||||
MapSourceDirectories = [ ]
|
||||
MapSourceDirectories += [ DatabaseRootPath + "/decors/_textures" ]
|
||||
%PreGenMapSubdirectories%MapSourceDirectories += [ "landscape/microveget/" + EcosystemName + "" ]
|
||||
MapSourceDirectories += [ "landscape/water/meshes/" + EcosystemName + "" ]
|
||||
|
||||
MapUncompressedSourceDirectories = [ ]
|
||||
|
||||
# Tiles directories
|
||||
TilesSourceDirectories = [ ]
|
||||
%PreGenTileSourceDirectories%
|
||||
# Tiles root directory
|
||||
TileRootSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
||||
|
||||
# Displace directory
|
||||
DisplaceSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + "/displace"
|
||||
|
||||
# Do not use, needs to be removed and fixed in processes
|
||||
DisplaceSourceDirectories = [ ]
|
||||
DisplaceSourceDirectories += [ DisplaceSourceDirectory ]
|
||||
|
||||
# Bank directory
|
||||
BankSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
||||
|
||||
# Vegetable set directories
|
||||
VegetSetSourceDirectories = [ ]
|
||||
VegetSetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
||||
|
||||
# Veget directories
|
||||
VegetSourceDirectories = [ ]
|
||||
VegetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
||||
|
||||
# Ligo directories
|
||||
LigoBaseSourceDirectory = "landscape/ligo/" + EcosystemName
|
||||
LigoMaxSourceDirectory = LigoBaseSourceDirectory + "/max"
|
||||
|
||||
# Zone directories
|
||||
ZoneSourceDirectory = [ "landscape/zones/" + EcosystemName ] # For old snowballs style landscape when not using ligo
|
||||
|
||||
# Ig landscape directories
|
||||
IgLandSourceDirectory = "_invalid"
|
||||
|
||||
# Ig other directories
|
||||
IgOtherSourceDirectory = "_invalid"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimSourceDirectories = [ ]
|
||||
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||
|
||||
|
||||
# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
|
||||
|
||||
# Ig lookup directories used by rbank
|
||||
IgLookupDirectories = [ ]
|
||||
|
||||
# Shape lookup directories used by rbank
|
||||
ShapeLookupDirectories = [ ]
|
||||
ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
|
||||
ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
|
||||
|
||||
# Map lookup directories not yet used
|
||||
MapLookupDirectories = [ ]
|
||||
MapLookupDirectories += [ EcosystemPath + "/map_export" ]
|
||||
MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
|
||||
|
||||
|
||||
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||
|
||||
# Map directories
|
||||
MapExportDirectory = CommonPath + "/map_export"
|
||||
MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
|
||||
|
||||
# Shape directories
|
||||
ShapeTagExportDirectory = CommonPath + "/shape_tag"
|
||||
ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
|
||||
ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
|
||||
ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
|
||||
ShapeAnimExportDirectory = CommonPath + "/shape_anim"
|
||||
|
||||
# Smallbank directories
|
||||
SmallbankExportDirectory = CommonPath + "/smallbank"
|
||||
|
||||
# Tiles directories
|
||||
TilesExportDirectory = CommonPath + "/tiles"
|
||||
|
||||
# Tiles directories
|
||||
DisplaceExportDirectory = CommonPath + "/diplace"
|
||||
|
||||
# Veget directories
|
||||
VegetExportDirectory = CommonPath + "/veget"
|
||||
VegetTagExportDirectory = CommonPath + "/veget_tag"
|
||||
|
||||
# Veget Set directories
|
||||
VegetSetExportDirectory = CommonPath + "/veget_set"
|
||||
|
||||
# Ligo directories
|
||||
LigoEcosystemExportDirectory = CommonPath + "/ligo_es"
|
||||
LigoEcosystemIgExportDirectory = LigoEcosystemExportDirectory + "/igs"
|
||||
LigoEcosystemZoneExportDirectory = LigoEcosystemExportDirectory + "/zones"
|
||||
LigoEcosystemZoneLigoExportDirectory = LigoEcosystemExportDirectory + "/zoneligos"
|
||||
LigoEcosystemCmbExportDirectory = LigoEcosystemExportDirectory + "/cmb"
|
||||
LigoEcosystemTagExportDirectory = CommonPath + "/ligo_es_tag"
|
||||
|
||||
# Zone directories
|
||||
ZoneExportDirectory = CommonPath + "/zone"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimExportDirectory = CommonPath + "/pacs_prim"
|
||||
PacsPrimTagExportDirectory = CommonPath + "/pacs_prim_tag"
|
||||
|
||||
|
||||
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||
|
||||
# Map directories
|
||||
MapBuildDirectory = CommonPath + "/map"
|
||||
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||
MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
|
||||
MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
|
||||
MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
|
||||
MapTagBuildDirectory = CommonPath + "/map_tag"
|
||||
|
||||
# Shape directories
|
||||
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
|
||||
ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
|
||||
ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
|
||||
ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
|
||||
|
||||
# Farbank directories
|
||||
FarbankBuildDirectory = CommonPath + "/farbank"
|
||||
|
||||
# Ig directories ************** TODO CONFIRM IN IG BUILD PROCESS ************ FIX RBANK IF NEEDED ***********
|
||||
IgLandBuildDirectory = "_invalid"
|
||||
IgOtherBuildDirectory = "_invalid"
|
||||
|
||||
# Rbank directories
|
||||
RbankOutputBuildDirectory = "_invalid"
|
||||
|
||||
# Ligo directories
|
||||
|
||||
|
||||
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||
|
||||
# Map directory
|
||||
MapInstallDirectory = CommonName + "_maps"
|
||||
BitmapInstallDirectory = MapInstallDirectory
|
||||
|
||||
# Shape directory
|
||||
ShapeInstallDirectory = CommonName + "_shapes"
|
||||
|
||||
# Lightmap directory
|
||||
LightmapInstallDirectory = CommonName + "_lightmaps"
|
||||
|
||||
# Tile directory
|
||||
TilesInstallDirectory = CommonName + "_tiles"
|
||||
|
||||
# Displace directory
|
||||
DisplaceInstallDirectory = CommonName + "_displaces"
|
||||
|
||||
# Bank directory
|
||||
BankInstallDirectory = CommonName + "_bank"
|
||||
|
||||
# Vegetable set directory
|
||||
VegetSetInstallDirectory = CommonName + "_vegetable_sets"
|
||||
|
||||
# Vegetable shape directory
|
||||
VegetInstallDirectory = CommonName + "_vegetables"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimInstallDirectory = CommonName + "_pacs_prim"
|
||||
|
@ -1,122 +1,122 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file config.py
|
||||
# \brief Process configuration
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Process configuration for '%PreGenEcosystemName%' ecosystem.
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# *** PROCESS CONFIGURATION ***
|
||||
|
||||
# *** PROCESS CONFIG ***
|
||||
ProcessToComplete = [ ]
|
||||
ProcessToComplete += [ "shape" ]
|
||||
ProcessToComplete += [ "map" ]
|
||||
ProcessToComplete += [ "smallbank" ]
|
||||
ProcessToComplete += [ "farbank" ]
|
||||
ProcessToComplete += [ "tiles" ]
|
||||
ProcessToComplete += [ "displace" ]
|
||||
ProcessToComplete += [ "veget" ]
|
||||
ProcessToComplete += [ "vegetset" ]
|
||||
ProcessToComplete += [ "ligo" ]
|
||||
ProcessToComplete += [ "pacs_prim" ]
|
||||
|
||||
|
||||
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
||||
|
||||
EcosystemName = "%PreGenEcosystemName%"
|
||||
EcosystemPath = "ecosystems/" + EcosystemName
|
||||
CommonName = EcosystemName
|
||||
CommonPath = EcosystemPath
|
||||
|
||||
|
||||
# *** MAP EXPORT OPTIONS ***
|
||||
PanoplyFileList = [ ]
|
||||
HlsBankFileName = ""
|
||||
|
||||
# *** SHAPE EXPORT OPTIONS ***
|
||||
|
||||
# Compute lightmaps ?
|
||||
ShapeExportOptExportLighting = "%PreGenShapeExportOptExportLighting%"
|
||||
|
||||
# Cast shadow in lightmap ?
|
||||
ShapeExportOptShadow = "%PreGenShapeExportOptShadow%"
|
||||
|
||||
# Lighting limits. 0 : normal, 1 : soft shadows
|
||||
ShapeExportOptLightingLimit = %PreGenShapeExportOptLightingLimit%
|
||||
|
||||
# Lightmap lumel size
|
||||
ShapeExportOptLumelSize = "%PreGenShapeExportOptLumelSize%"
|
||||
|
||||
# Oversampling value. Can be 1, 2, 4 or 8
|
||||
ShapeExportOptOversampling = %PreGenShapeExportOptOversampling%
|
||||
|
||||
# Does the lightmap must be generated in 8 bits format ?
|
||||
ShapeExportOpt8BitsLightmap = "%PreGenShapeExportOpt8BitsLightmap%"
|
||||
|
||||
# Does the lightmaps export must generate logs ?
|
||||
ShapeExportOptLightmapLog = "%PreGenShapeExportOptLightmapLog%"
|
||||
|
||||
# Coarse mesh texture mul size
|
||||
TextureMulSizeValue = "%PreGenTextureMulSizeValue%"
|
||||
|
||||
ClodConfigFile = ""
|
||||
|
||||
# *** COARSE MESH TEXTURE NAME ***
|
||||
CoarseMeshTextureNames = [ ]
|
||||
%PreGenCoarseMeshTextureNames%
|
||||
# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
|
||||
MultipleTilesPostfix = [ ]
|
||||
%PreGenMultipleTilesPostfix%
|
||||
# *** BANK EXPORT OPTIONS ***
|
||||
|
||||
# Name of the tilebank to use
|
||||
BankTileBankName = EcosystemName
|
||||
|
||||
# *** RBANK EXPORT OPTIONS ***
|
||||
|
||||
# Output names
|
||||
RbankRbankName = "_invalid"
|
||||
|
||||
# *** LIGO OPTIONS ***
|
||||
|
||||
LigoExportLand = ""
|
||||
LigoExportOnePass = 0
|
||||
|
||||
# *** MAPS OPTIONS ***
|
||||
|
||||
ReduceBitmapFactor = 0
|
||||
# list all panoply files
|
||||
MapPanoplyFileList = None
|
||||
# name of the .hlsbank to build.
|
||||
MapHlsBankFileName = None
|
||||
|
||||
# *** SHAPE BUILD OPTIONS *
|
||||
|
||||
BuildShadowSkinEnabled = False
|
||||
ClodConfigFile = ""
|
||||
|
||||
# *** PACS_PRIM OPTIONS ***
|
||||
WantLandscapeColPrimPacsList = True
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file config.py
|
||||
# \brief Process configuration
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Process configuration for '%PreGenEcosystemName%' ecosystem.
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# *** PROCESS CONFIGURATION ***
|
||||
|
||||
# *** PROCESS CONFIG ***
|
||||
ProcessToComplete = [ ]
|
||||
ProcessToComplete += [ "shape" ]
|
||||
ProcessToComplete += [ "map" ]
|
||||
ProcessToComplete += [ "smallbank" ]
|
||||
ProcessToComplete += [ "farbank" ]
|
||||
ProcessToComplete += [ "tiles" ]
|
||||
ProcessToComplete += [ "displace" ]
|
||||
ProcessToComplete += [ "veget" ]
|
||||
ProcessToComplete += [ "vegetset" ]
|
||||
ProcessToComplete += [ "ligo" ]
|
||||
ProcessToComplete += [ "pacs_prim" ]
|
||||
|
||||
|
||||
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
||||
|
||||
EcosystemName = "%PreGenEcosystemName%"
|
||||
EcosystemPath = "ecosystems/" + EcosystemName
|
||||
CommonName = EcosystemName
|
||||
CommonPath = EcosystemPath
|
||||
|
||||
|
||||
# *** MAP EXPORT OPTIONS ***
|
||||
PanoplyFileList = [ ]
|
||||
HlsBankFileName = ""
|
||||
|
||||
# *** SHAPE EXPORT OPTIONS ***
|
||||
|
||||
# Compute lightmaps ?
|
||||
ShapeExportOptExportLighting = "%PreGenShapeExportOptExportLighting%"
|
||||
|
||||
# Cast shadow in lightmap ?
|
||||
ShapeExportOptShadow = "%PreGenShapeExportOptShadow%"
|
||||
|
||||
# Lighting limits. 0 : normal, 1 : soft shadows
|
||||
ShapeExportOptLightingLimit = %PreGenShapeExportOptLightingLimit%
|
||||
|
||||
# Lightmap lumel size
|
||||
ShapeExportOptLumelSize = "%PreGenShapeExportOptLumelSize%"
|
||||
|
||||
# Oversampling value. Can be 1, 2, 4 or 8
|
||||
ShapeExportOptOversampling = %PreGenShapeExportOptOversampling%
|
||||
|
||||
# Does the lightmap must be generated in 8 bits format ?
|
||||
ShapeExportOpt8BitsLightmap = "%PreGenShapeExportOpt8BitsLightmap%"
|
||||
|
||||
# Does the lightmaps export must generate logs ?
|
||||
ShapeExportOptLightmapLog = "%PreGenShapeExportOptLightmapLog%"
|
||||
|
||||
# Coarse mesh texture mul size
|
||||
TextureMulSizeValue = "%PreGenTextureMulSizeValue%"
|
||||
|
||||
ClodConfigFile = ""
|
||||
|
||||
# *** COARSE MESH TEXTURE NAME ***
|
||||
CoarseMeshTextureNames = [ ]
|
||||
%PreGenCoarseMeshTextureNames%
|
||||
# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
|
||||
MultipleTilesPostfix = [ ]
|
||||
%PreGenMultipleTilesPostfix%
|
||||
# *** BANK EXPORT OPTIONS ***
|
||||
|
||||
# Name of the tilebank to use
|
||||
BankTileBankName = EcosystemName
|
||||
|
||||
# *** RBANK EXPORT OPTIONS ***
|
||||
|
||||
# Output names
|
||||
RbankRbankName = "_invalid"
|
||||
|
||||
# *** LIGO OPTIONS ***
|
||||
|
||||
LigoExportLand = ""
|
||||
LigoExportOnePass = 0
|
||||
|
||||
# *** MAPS OPTIONS ***
|
||||
|
||||
ReduceBitmapFactor = 0
|
||||
# list all panoply files
|
||||
MapPanoplyFileList = None
|
||||
# name of the .hlsbank to build.
|
||||
MapHlsBankFileName = None
|
||||
|
||||
# *** SHAPE BUILD OPTIONS *
|
||||
|
||||
BuildShadowSkinEnabled = False
|
||||
ClodConfigFile = ""
|
||||
|
||||
# *** PACS_PRIM OPTIONS ***
|
||||
WantLandscapeColPrimPacsList = True
|
||||
|
@ -1,65 +1,65 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Run all setup processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all setup processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_all.log"):
|
||||
os.remove("generate_all.log")
|
||||
log = open("generate_all.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate all")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_simple_max_exporters.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_tagged_max_exporters.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_ecosystem_projects.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
log.close()
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Run all setup processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all setup processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_all.log"):
|
||||
os.remove("generate_all.log")
|
||||
log = open("generate_all.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate all")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_simple_max_exporters.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_tagged_max_exporters.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_ecosystem_projects.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
log.close()
|
||||
|
@ -1,278 +1,278 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file generate_ecosystem_projects.py
|
||||
# \brief Run all setup processes
|
||||
# \date 2010-09-02 10:36GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Generate ecosystem projects
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_ecosystem_projects.log"):
|
||||
os.remove("generate_ecosystem_projects.log")
|
||||
log = open("generate_ecosystem_projects.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate ecosystem projects")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/ecosystem_project_template"
|
||||
mkPath(log, templateDir)
|
||||
|
||||
os.chdir("..")
|
||||
|
||||
|
||||
# Scroll down to add an ecosystem.
|
||||
|
||||
|
||||
|
||||
DefaultShapeExportOptExportLighting = "true"
|
||||
DefaultShapeExportOptShadow = "true"
|
||||
DefaultShapeExportOptLightingLimit = "1"
|
||||
DefaultShapeExportOptLumelSize = "0.25"
|
||||
DefaultShapeExportOptOversampling = "1"
|
||||
DefaultShapeExportOpt8BitsLightmap = "true"
|
||||
DefaultShapeExportOptLightmapLog = "true"
|
||||
DefaultTextureMulSizeValue = "1.5"
|
||||
DefaultSeasonSuffixes = [ "sp" ] + [ "su" ] + [ "au" ] + [ "wi" ]
|
||||
DefaultMapSubdirectories = [ ]
|
||||
DefaultTileDirectories = [ ]
|
||||
|
||||
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = DefaultMapSubdirectories
|
||||
TileDirectories = DefaultTileDirectories
|
||||
|
||||
|
||||
PreGenDateTimeStamp = None
|
||||
PreGenEcosystemName = None
|
||||
PreGenDatabaseRootName = None
|
||||
PreGenCoarseMeshTextureNames = None
|
||||
PreGenMultipleTilesPostfix = None
|
||||
PreGenMapSubdirectories = None
|
||||
PreGenTileSourceDirectories = None
|
||||
|
||||
|
||||
def transformLine(line):
|
||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||
newline = newline.replace("%PreGenDateTimeStamp%", PreGenDateTimeStamp)
|
||||
|
||||
newline = newline.replace("%PreGenEcosystemName%", PreGenEcosystemName)
|
||||
newline = newline.replace("%PreGenDatabaseRootName%", PreGenDatabaseRootName)
|
||||
|
||||
newline = newline.replace("%PreGenCoarseMeshTextureNames%", PreGenCoarseMeshTextureNames)
|
||||
newline = newline.replace("%PreGenMultipleTilesPostfix%", PreGenMultipleTilesPostfix)
|
||||
newline = newline.replace("%PreGenMapSubdirectories%", PreGenMapSubdirectories)
|
||||
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
||||
|
||||
newline = newline.replace("%PreGenShapeExportOptExportLighting%", ShapeExportOptExportLighting)
|
||||
newline = newline.replace("%PreGenShapeExportOptShadow%", ShapeExportOptShadow)
|
||||
newline = newline.replace("%PreGenShapeExportOptLightingLimit%", ShapeExportOptLightingLimit)
|
||||
newline = newline.replace("%PreGenShapeExportOptLumelSize%", ShapeExportOptLumelSize)
|
||||
newline = newline.replace("%PreGenShapeExportOptOversampling%", ShapeExportOptOversampling)
|
||||
newline = newline.replace("%PreGenShapeExportOpt8BitsLightmap%", ShapeExportOpt8BitsLightmap)
|
||||
newline = newline.replace("%PreGenShapeExportOptLightmapLog%", ShapeExportOptLightmapLog)
|
||||
newline = newline.replace("%PreGenTextureMulSizeValue%", TextureMulSizeValue)
|
||||
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
||||
|
||||
return newline
|
||||
|
||||
def generateFile(sourceFile, destFile):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, "w")
|
||||
printLog(log, "WRITE " + destFile)
|
||||
for line in srcf:
|
||||
dstf.write(transformLine(line))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateEcosystem(ecosystemName, databaseRootName):
|
||||
global PreGenEcosystemName
|
||||
PreGenEcosystemName = ecosystemName
|
||||
global PreGenDatabaseRootName
|
||||
PreGenDatabaseRootName = databaseRootName
|
||||
global PreGenDateTimeStamp
|
||||
PreGenDateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
|
||||
global PreGenMultipleTilesPostfix
|
||||
PreGenMultipleTilesPostfix = ""
|
||||
global PreGenCoarseMeshTextureNames
|
||||
PreGenCoarseMeshTextureNames = ""
|
||||
global PreGenTileSourceDirectories
|
||||
PreGenTileSourceDirectories = ""
|
||||
for suffix in SeasonSuffixes:
|
||||
PreGenMultipleTilesPostfix += "MultipleTilesPostfix += [ \"_" + suffix + "\" ]\n"
|
||||
PreGenCoarseMeshTextureNames += "CoarseMeshTextureNames += [ \"nel_coarse_mesh_\" + EcosystemName + \"_" + suffix + "\" ]\n"
|
||||
for tiledir in TileDirectories:
|
||||
PreGenTileSourceDirectories += "TilesSourceDirectories += [ \"landscape/_texture_tiles/\" + EcosystemName + \"_" + suffix + "/" + tiledir + "\" ]\n"
|
||||
global PreGenMapSubdirectories
|
||||
PreGenMapSubdirectories = ""
|
||||
for subdir in MapSubdirectories:
|
||||
PreGenMapSubdirectories += "MapSourceDirectories += [ DatabaseRootPath + \"/decors/_textures/" + subdir + "\" ]\n"
|
||||
|
||||
destDir = WorkspaceDirectory + "/ecosystems/" + ecosystemName
|
||||
mkPath(log, destDir)
|
||||
|
||||
generateFile(templateDir + "/process.py", destDir + "/process.py")
|
||||
generateFile(templateDir + "/directories.py", destDir + "/directories.py")
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
# Add new ecosystems below this line.
|
||||
|
||||
|
||||
|
||||
# DESERT
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "1.5-marecage_profond" ]
|
||||
TileDirectories += [ "1-marecages" ]
|
||||
TileDirectories += [ "2-citees" ]
|
||||
TileDirectories += [ "3-fond_canyon" ]
|
||||
TileDirectories += [ "4.2-boisbandeclair" ]
|
||||
TileDirectories += [ "4.5-desert2boisbande" ]
|
||||
TileDirectories += [ "4-falaise_bois_bande" ]
|
||||
TileDirectories += [ "5-falaise_normales" ]
|
||||
TileDirectories += [ "6.5-desertalternatif" ]
|
||||
TileDirectories += [ "6-desert" ]
|
||||
TileDirectories += [ "7-routes" ]
|
||||
TileDirectories += [ "8-foretbrule" ]
|
||||
generateEcosystem("desert", "fyros")
|
||||
|
||||
|
||||
# JUNGLE
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "10-crevassejungle" ]
|
||||
TileDirectories += [ "11-paroisjungle" ]
|
||||
TileDirectories += [ "12-vasejungle" ]
|
||||
TileDirectories += [ "1-junglemousse" ]
|
||||
TileDirectories += [ "2-junglefeuilles" ]
|
||||
TileDirectories += [ "3-jungleherbesseche" ]
|
||||
TileDirectories += [ "4-jungleherbevieille" ]
|
||||
TileDirectories += [ "5-jungleterreaux" ]
|
||||
TileDirectories += [ "6-junglegoo" ]
|
||||
TileDirectories += [ "7-sciurejungle" ]
|
||||
TileDirectories += [ "8-terrejungle" ]
|
||||
TileDirectories += [ "9-falaisejungle" ]
|
||||
TileDirectories += [ "Transitions" ]
|
||||
generateEcosystem("jungle", "jungle")
|
||||
|
||||
|
||||
# PRIMES RACINES
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
MapSubdirectories += [ "batiments" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "PR-creux" ]
|
||||
TileDirectories += [ "PR-dome-moussu" ]
|
||||
TileDirectories += [ "PR-kitiniere" ]
|
||||
TileDirectories += [ "PR-mousse-licken" ]
|
||||
TileDirectories += [ "PR-mousse-spongieus" ]
|
||||
TileDirectories += [ "PR-parois" ]
|
||||
TileDirectories += [ "PR-sol-mousse" ]
|
||||
TileDirectories += [ "PR-souche" ]
|
||||
TileDirectories += [ "PR-stalagmite" ]
|
||||
TileDirectories += [ "PR-terre" ]
|
||||
TileDirectories += [ "aditif" ]
|
||||
generateEcosystem("primes_racines", "primes_racines")
|
||||
|
||||
|
||||
# LACUSTRE
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = "0"
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = "8"
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "1a-sable-marin" ]
|
||||
TileDirectories += [ "1-plages" ]
|
||||
TileDirectories += [ "2-iles" ]
|
||||
TileDirectories += [ "2-ilesa" ]
|
||||
TileDirectories += [ "2-iles-marines" ]
|
||||
TileDirectories += [ "3-fondmarin2plage" ]
|
||||
TileDirectories += [ "4-marecages" ]
|
||||
TileDirectories += [ "5-marecages" ]
|
||||
TileDirectories += [ "5-parois-marine" ]
|
||||
TileDirectories += [ "6-fond_marin" ]
|
||||
TileDirectories += [ "7-bassesiles" ]
|
||||
TileDirectories += [ "7-mousseter" ]
|
||||
TileDirectories += [ "7-racines" ]
|
||||
TileDirectories += [ "8-mousse_marine" ]
|
||||
TileDirectories += [ "constructible" ]
|
||||
generateEcosystem("lacustre", "tryker")
|
||||
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file generate_ecosystem_projects.py
|
||||
# \brief Run all setup processes
|
||||
# \date 2010-09-02 10:36GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Generate ecosystem projects
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_ecosystem_projects.log"):
|
||||
os.remove("generate_ecosystem_projects.log")
|
||||
log = open("generate_ecosystem_projects.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate ecosystem projects")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/ecosystem_project_template"
|
||||
mkPath(log, templateDir)
|
||||
|
||||
os.chdir("..")
|
||||
|
||||
|
||||
# Scroll down to add an ecosystem.
|
||||
|
||||
|
||||
|
||||
DefaultShapeExportOptExportLighting = "true"
|
||||
DefaultShapeExportOptShadow = "true"
|
||||
DefaultShapeExportOptLightingLimit = "1"
|
||||
DefaultShapeExportOptLumelSize = "0.25"
|
||||
DefaultShapeExportOptOversampling = "1"
|
||||
DefaultShapeExportOpt8BitsLightmap = "true"
|
||||
DefaultShapeExportOptLightmapLog = "true"
|
||||
DefaultTextureMulSizeValue = "1.5"
|
||||
DefaultSeasonSuffixes = [ "sp" ] + [ "su" ] + [ "au" ] + [ "wi" ]
|
||||
DefaultMapSubdirectories = [ ]
|
||||
DefaultTileDirectories = [ ]
|
||||
|
||||
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = DefaultMapSubdirectories
|
||||
TileDirectories = DefaultTileDirectories
|
||||
|
||||
|
||||
PreGenDateTimeStamp = None
|
||||
PreGenEcosystemName = None
|
||||
PreGenDatabaseRootName = None
|
||||
PreGenCoarseMeshTextureNames = None
|
||||
PreGenMultipleTilesPostfix = None
|
||||
PreGenMapSubdirectories = None
|
||||
PreGenTileSourceDirectories = None
|
||||
|
||||
|
||||
def transformLine(line):
|
||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||
newline = newline.replace("%PreGenDateTimeStamp%", PreGenDateTimeStamp)
|
||||
|
||||
newline = newline.replace("%PreGenEcosystemName%", PreGenEcosystemName)
|
||||
newline = newline.replace("%PreGenDatabaseRootName%", PreGenDatabaseRootName)
|
||||
|
||||
newline = newline.replace("%PreGenCoarseMeshTextureNames%", PreGenCoarseMeshTextureNames)
|
||||
newline = newline.replace("%PreGenMultipleTilesPostfix%", PreGenMultipleTilesPostfix)
|
||||
newline = newline.replace("%PreGenMapSubdirectories%", PreGenMapSubdirectories)
|
||||
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
||||
|
||||
newline = newline.replace("%PreGenShapeExportOptExportLighting%", ShapeExportOptExportLighting)
|
||||
newline = newline.replace("%PreGenShapeExportOptShadow%", ShapeExportOptShadow)
|
||||
newline = newline.replace("%PreGenShapeExportOptLightingLimit%", ShapeExportOptLightingLimit)
|
||||
newline = newline.replace("%PreGenShapeExportOptLumelSize%", ShapeExportOptLumelSize)
|
||||
newline = newline.replace("%PreGenShapeExportOptOversampling%", ShapeExportOptOversampling)
|
||||
newline = newline.replace("%PreGenShapeExportOpt8BitsLightmap%", ShapeExportOpt8BitsLightmap)
|
||||
newline = newline.replace("%PreGenShapeExportOptLightmapLog%", ShapeExportOptLightmapLog)
|
||||
newline = newline.replace("%PreGenTextureMulSizeValue%", TextureMulSizeValue)
|
||||
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
||||
|
||||
return newline
|
||||
|
||||
def generateFile(sourceFile, destFile):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, "w")
|
||||
printLog(log, "WRITE " + destFile)
|
||||
for line in srcf:
|
||||
dstf.write(transformLine(line))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateEcosystem(ecosystemName, databaseRootName):
|
||||
global PreGenEcosystemName
|
||||
PreGenEcosystemName = ecosystemName
|
||||
global PreGenDatabaseRootName
|
||||
PreGenDatabaseRootName = databaseRootName
|
||||
global PreGenDateTimeStamp
|
||||
PreGenDateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
|
||||
global PreGenMultipleTilesPostfix
|
||||
PreGenMultipleTilesPostfix = ""
|
||||
global PreGenCoarseMeshTextureNames
|
||||
PreGenCoarseMeshTextureNames = ""
|
||||
global PreGenTileSourceDirectories
|
||||
PreGenTileSourceDirectories = ""
|
||||
for suffix in SeasonSuffixes:
|
||||
PreGenMultipleTilesPostfix += "MultipleTilesPostfix += [ \"_" + suffix + "\" ]\n"
|
||||
PreGenCoarseMeshTextureNames += "CoarseMeshTextureNames += [ \"nel_coarse_mesh_\" + EcosystemName + \"_" + suffix + "\" ]\n"
|
||||
for tiledir in TileDirectories:
|
||||
PreGenTileSourceDirectories += "TilesSourceDirectories += [ \"landscape/_texture_tiles/\" + EcosystemName + \"_" + suffix + "/" + tiledir + "\" ]\n"
|
||||
global PreGenMapSubdirectories
|
||||
PreGenMapSubdirectories = ""
|
||||
for subdir in MapSubdirectories:
|
||||
PreGenMapSubdirectories += "MapSourceDirectories += [ DatabaseRootPath + \"/decors/_textures/" + subdir + "\" ]\n"
|
||||
|
||||
destDir = WorkspaceDirectory + "/ecosystems/" + ecosystemName
|
||||
mkPath(log, destDir)
|
||||
|
||||
generateFile(templateDir + "/process.py", destDir + "/process.py")
|
||||
generateFile(templateDir + "/directories.py", destDir + "/directories.py")
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
# Add new ecosystems below this line.
|
||||
|
||||
|
||||
|
||||
# DESERT
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "1.5-marecage_profond" ]
|
||||
TileDirectories += [ "1-marecages" ]
|
||||
TileDirectories += [ "2-citees" ]
|
||||
TileDirectories += [ "3-fond_canyon" ]
|
||||
TileDirectories += [ "4.2-boisbandeclair" ]
|
||||
TileDirectories += [ "4.5-desert2boisbande" ]
|
||||
TileDirectories += [ "4-falaise_bois_bande" ]
|
||||
TileDirectories += [ "5-falaise_normales" ]
|
||||
TileDirectories += [ "6.5-desertalternatif" ]
|
||||
TileDirectories += [ "6-desert" ]
|
||||
TileDirectories += [ "7-routes" ]
|
||||
TileDirectories += [ "8-foretbrule" ]
|
||||
generateEcosystem("desert", "fyros")
|
||||
|
||||
|
||||
# JUNGLE
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "10-crevassejungle" ]
|
||||
TileDirectories += [ "11-paroisjungle" ]
|
||||
TileDirectories += [ "12-vasejungle" ]
|
||||
TileDirectories += [ "1-junglemousse" ]
|
||||
TileDirectories += [ "2-junglefeuilles" ]
|
||||
TileDirectories += [ "3-jungleherbesseche" ]
|
||||
TileDirectories += [ "4-jungleherbevieille" ]
|
||||
TileDirectories += [ "5-jungleterreaux" ]
|
||||
TileDirectories += [ "6-junglegoo" ]
|
||||
TileDirectories += [ "7-sciurejungle" ]
|
||||
TileDirectories += [ "8-terrejungle" ]
|
||||
TileDirectories += [ "9-falaisejungle" ]
|
||||
TileDirectories += [ "Transitions" ]
|
||||
generateEcosystem("jungle", "jungle")
|
||||
|
||||
|
||||
# PRIMES RACINES
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
MapSubdirectories += [ "batiments" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "PR-creux" ]
|
||||
TileDirectories += [ "PR-dome-moussu" ]
|
||||
TileDirectories += [ "PR-kitiniere" ]
|
||||
TileDirectories += [ "PR-mousse-licken" ]
|
||||
TileDirectories += [ "PR-mousse-spongieus" ]
|
||||
TileDirectories += [ "PR-parois" ]
|
||||
TileDirectories += [ "PR-sol-mousse" ]
|
||||
TileDirectories += [ "PR-souche" ]
|
||||
TileDirectories += [ "PR-stalagmite" ]
|
||||
TileDirectories += [ "PR-terre" ]
|
||||
TileDirectories += [ "aditif" ]
|
||||
generateEcosystem("primes_racines", "primes_racines")
|
||||
|
||||
|
||||
# LACUSTRE
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = "0"
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = "8"
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "1a-sable-marin" ]
|
||||
TileDirectories += [ "1-plages" ]
|
||||
TileDirectories += [ "2-iles" ]
|
||||
TileDirectories += [ "2-ilesa" ]
|
||||
TileDirectories += [ "2-iles-marines" ]
|
||||
TileDirectories += [ "3-fondmarin2plage" ]
|
||||
TileDirectories += [ "4-marecages" ]
|
||||
TileDirectories += [ "5-marecages" ]
|
||||
TileDirectories += [ "5-parois-marine" ]
|
||||
TileDirectories += [ "6-fond_marin" ]
|
||||
TileDirectories += [ "7-bassesiles" ]
|
||||
TileDirectories += [ "7-mousseter" ]
|
||||
TileDirectories += [ "7-racines" ]
|
||||
TileDirectories += [ "8-mousse_marine" ]
|
||||
TileDirectories += [ "constructible" ]
|
||||
generateEcosystem("lacustre", "tryker")
|
||||
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
@ -1,100 +1,100 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Run all setup processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all setup processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_simple_max_exporters.log"):
|
||||
os.remove("generate_simple_max_exporters.log")
|
||||
log = open("generate_simple_max_exporters.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate simple max exporters")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
||||
newline = newline.replace("%PreGenProcessName%", processName)
|
||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||
return newline
|
||||
|
||||
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, writeMode)
|
||||
printLog(log, "WRITE " + destFile + " " + writeMode)
|
||||
for line in srcf:
|
||||
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateSimpleMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
maxscriptDir = processDir + "/maxscript"
|
||||
mkPath(log, maxscriptDir)
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/simple_max_exporter_template"
|
||||
mkPath(log, templateDir)
|
||||
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
||||
mkPath(log, scriptDir)
|
||||
|
||||
if not os.path.isfile(processDir + "/0_setup.py"):
|
||||
generateSimpleMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
generateSimpleMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateSimpleMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
if not os.path.isfile(processDir + "/2_build.py"):
|
||||
generateSimpleMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
if not os.path.isfile(processDir + "/3_install.py"):
|
||||
generateSimpleMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
generateSimpleMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateSimpleMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
|
||||
|
||||
generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelInstallDirectory")
|
||||
|
||||
generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtInstallDirectory")
|
||||
|
||||
generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneInstallDirectory")
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Run all setup processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all setup processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_simple_max_exporters.log"):
|
||||
os.remove("generate_simple_max_exporters.log")
|
||||
log = open("generate_simple_max_exporters.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate simple max exporters")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
||||
newline = newline.replace("%PreGenProcessName%", processName)
|
||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||
return newline
|
||||
|
||||
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, writeMode)
|
||||
printLog(log, "WRITE " + destFile + " " + writeMode)
|
||||
for line in srcf:
|
||||
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateSimpleMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
maxscriptDir = processDir + "/maxscript"
|
||||
mkPath(log, maxscriptDir)
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/simple_max_exporter_template"
|
||||
mkPath(log, templateDir)
|
||||
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
||||
mkPath(log, scriptDir)
|
||||
|
||||
if not os.path.isfile(processDir + "/0_setup.py"):
|
||||
generateSimpleMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
generateSimpleMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateSimpleMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
if not os.path.isfile(processDir + "/2_build.py"):
|
||||
generateSimpleMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
if not os.path.isfile(processDir + "/3_install.py"):
|
||||
generateSimpleMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
generateSimpleMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateSimpleMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
|
||||
|
||||
generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelInstallDirectory")
|
||||
|
||||
generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtInstallDirectory")
|
||||
|
||||
generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneInstallDirectory")
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
@ -1,120 +1,120 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Run all setup processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all setup processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_tagged_max_exporters.log"):
|
||||
os.remove("generate_tagged_max_exporters.log")
|
||||
log = open("generate_tagged_max_exporters.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate tagged max exporters")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/tagged_max_exporter_template"
|
||||
mkPath(log, templateDir)
|
||||
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
||||
mkPath(log, scriptDir)
|
||||
|
||||
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
||||
newline = newline.replace("%PreGenProcessName%", processName)
|
||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||
return newline
|
||||
|
||||
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, writeMode)
|
||||
printLog(log, "WRITE " + destFile + " " + writeMode)
|
||||
for line in srcf:
|
||||
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
maxscriptDir = processDir + "/maxscript"
|
||||
mkPath(log, maxscriptDir)
|
||||
generateTaggedMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateTaggedMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
def generateTaggedMaxScript(processName, fileExtension):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
|
||||
generateTaggedMaxScriptFile(processDir, processName, fileExtension, "_invalid", "_invalid", "_invalid", "_invalid", dateTimeStamp)
|
||||
|
||||
def generateTaggedMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
|
||||
if not os.path.isfile(processDir + "/0_setup.py"):
|
||||
generateTaggedMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
generateTaggedMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateTaggedMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
if not os.path.isfile(processDir + "/2_build.py"):
|
||||
generateTaggedMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
if not os.path.isfile(processDir + "/3_install.py"):
|
||||
generateTaggedMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
|
||||
|
||||
generateTaggedMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimTagExportDirectory", "PacsPrimInstallDirectory")
|
||||
|
||||
generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodInstallDirectory")
|
||||
|
||||
generateTaggedMaxScript("ig", "ig")
|
||||
|
||||
generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsInstallDirectory")
|
||||
|
||||
generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetInstallDirectory")
|
||||
|
||||
generateTaggedMaxScript("shape", "shape")
|
||||
|
||||
generateTaggedMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimTagExportDirectory", "AnimInstallDirectory")
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Run all setup processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all setup processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_tagged_max_exporters.log"):
|
||||
os.remove("generate_tagged_max_exporters.log")
|
||||
log = open("generate_tagged_max_exporters.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate tagged max exporters")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/tagged_max_exporter_template"
|
||||
mkPath(log, templateDir)
|
||||
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
||||
mkPath(log, scriptDir)
|
||||
|
||||
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
||||
newline = newline.replace("%PreGenProcessName%", processName)
|
||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||
return newline
|
||||
|
||||
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, writeMode)
|
||||
printLog(log, "WRITE " + destFile + " " + writeMode)
|
||||
for line in srcf:
|
||||
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
maxscriptDir = processDir + "/maxscript"
|
||||
mkPath(log, maxscriptDir)
|
||||
generateTaggedMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateTaggedMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
def generateTaggedMaxScript(processName, fileExtension):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
|
||||
generateTaggedMaxScriptFile(processDir, processName, fileExtension, "_invalid", "_invalid", "_invalid", "_invalid", dateTimeStamp)
|
||||
|
||||
def generateTaggedMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
|
||||
if not os.path.isfile(processDir + "/0_setup.py"):
|
||||
generateTaggedMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
generateTaggedMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
generateTaggedMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
if not os.path.isfile(processDir + "/2_build.py"):
|
||||
generateTaggedMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
if not os.path.isfile(processDir + "/3_install.py"):
|
||||
generateTaggedMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
|
||||
|
||||
generateTaggedMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimTagExportDirectory", "PacsPrimInstallDirectory")
|
||||
|
||||
generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodInstallDirectory")
|
||||
|
||||
generateTaggedMaxScript("ig", "ig")
|
||||
|
||||
generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsInstallDirectory")
|
||||
|
||||
generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetInstallDirectory")
|
||||
|
||||
generateTaggedMaxScript("shape", "shape")
|
||||
|
||||
generateTaggedMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimTagExportDirectory", "AnimInstallDirectory")
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
|
||||
# Remove bad file from previous script version
|
||||
listPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% + "/landscape_col_prim_pacs_list.txt"
|
||||
if os.path.isfile(listPath):
|
||||
os.remove(listPath)
|
||||
|
||||
|
||||
|
||||
# Remove bad file from previous script version
|
||||
listPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% + "/landscape_col_prim_pacs_list.txt"
|
||||
if os.path.isfile(listPath):
|
||||
os.remove(listPath)
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
|
||||
printLog(log, ">>> Export skel directly <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||
for dir in SkelSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + SkelExportDirectory, ".skel")
|
||||
|
||||
|
||||
|
||||
printLog(log, ">>> Export skel directly <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||
for dir in SkelSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + SkelExportDirectory, ".skel")
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
|
||||
printLog(log, ">>> Try to copy ligo zone if any <<<")
|
||||
printLog(log, "********************************")
|
||||
printLog(log, "******** TODO ********")
|
||||
printLog(log, "********************************")
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
|
||||
printLog(log, ">>> Try to copy ligo zone if any <<<")
|
||||
printLog(log, "********************************")
|
||||
printLog(log, "******** TODO ********")
|
||||
printLog(log, "********************************")
|
||||
printLog(log, "")
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue