Compare commits
653 Commits
main/gingo
...
core4
Author | SHA1 | Date |
---|---|---|
nimetu | 62742dceca | 3 years ago |
nimetu | 1b386dd648 | 3 years ago |
nimetu | 853e19cd64 | 3 years ago |
nimetu | a04956989a | 3 years ago |
nimetu | 4fa80a0aec | 3 years ago |
nimetu | b184192bc2 | 3 years ago |
nimetu | 95d1295553 | 3 years ago |
nimetu | 4c3cae63d4 | 3 years ago |
nimetu | 0118e8d622 | 3 years ago |
nimetu | 513712be02 | 3 years ago |
Nimetu | fd4d3e0c34 | 3 years ago |
Nimetu | f36450d815 | 3 years ago |
Nimetu | db526ef68b | 3 years ago |
nimetu | d752c914f5 | 3 years ago |
kaetemi | a6139ade22 | 3 years ago |
kaetemi | 5b85b4e837 | 3 years ago |
kaetemi | 01881d26c3 | 3 years ago |
Jan Boon | 1138817a50 | 3 years ago |
Jan Boon | 439eb542e6 | 3 years ago |
Jan Boon | c9f9717e1f | 3 years ago |
Jan Boon | 016a1bc890 | 3 years ago |
Jan Boon | 5d5e5a7e8a | 3 years ago |
kaetemi | 8f9429a03d | 3 years ago |
kaetemi | 2f1ce0af64 | 3 years ago |
kaetemi | 66cb51f57a | 3 years ago |
kaetemi | 1fb977f16b | 3 years ago |
kaetemi | 1e1689ab43 | 3 years ago |
kaetemi | 19b194804c | 3 years ago |
kaetemi | 5ee73e2275 | 3 years ago |
kaetemi | 2d7a602e79 | 3 years ago |
kaetemi | cad53befd9 | 3 years ago |
kaetemi | c484af60fe | 3 years ago |
nimetu | 4a34909459 | 3 years ago |
nimetu | 401d2cbc3a | 3 years ago |
kaetemi | 53892c7f7e | 3 years ago |
nimetu | 3f1f46bc7d | 3 years ago |
nimetu | 7878e13602 | 3 years ago |
nimetu | d2376f0203 | 3 years ago |
nimetu | dc9ab8ec79 | 3 years ago |
nimetu | 4a4e626f56 | 3 years ago |
nimetu | 1652ac8f1c | 3 years ago |
nimetu | 8436aa794e | 3 years ago |
nimetu | cbd0cf5955 | 3 years ago |
nimetu | 99ce0247cc | 3 years ago |
kaetemi | 0ee1536340 | 3 years ago |
Jan Boon | 6bc45e5bbd | 3 years ago |
Nimetu | 2bf12a9a92 | 3 years ago |
nimetu | dfbef3e5b5 | 3 years ago |
nimetu | 1a552078a1 | 3 years ago |
Nimetu | e1139b7e8d | 3 years ago |
Nimetu | 6727dc00ec | 3 years ago |
Nimetu | de1dba32a2 | 3 years ago |
Nimetu | f13c49219e | 3 years ago |
Nimetu | ba003ee45d | 3 years ago |
Nimetu | d46de81fc6 | 3 years ago |
Nimetu | c0a3338029 | 3 years ago |
Nimetu | 4cf5e4f674 | 3 years ago |
Nimetu | cbcf6b0854 | 3 years ago |
kaetemi | 83feb670eb | 3 years ago |
kaetemi | 194edc2606 | 3 years ago |
Nimetu | 50147b3361 | 3 years ago |
Nimetu | 50c4dba593 | 3 years ago |
Nimetu | 81212fd728 | 3 years ago |
Nimetu | 640f91c2a0 | 3 years ago |
Nimetu | a087eacc22 | 3 years ago |
Nimetu | 5731ad6b3e | 3 years ago |
Nimetu | f4726d6964 | 3 years ago |
Nimetu | a356abdd7c | 3 years ago |
Nimetu | ee219b7e5e | 3 years ago |
kaetemi | 5c074ccc8e | 3 years ago |
Nuno | e3c5606baf | 3 years ago |
Nuno | 0063396369 | 3 years ago |
kaetemi | 415fe11606 | 3 years ago |
Nuno | ccef75cdf3 | 3 years ago |
Nuno | 92186cf142 | 3 years ago |
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 | 3 years ago |
kaetemi | d465191e96 | 3 years ago |
kaetemi | fdc0af158c | 3 years ago |
kaetemi | 5a34b3dc59 | 3 years ago |
kaetemi | 03270f330f | 3 years ago |
kaetemi | 3fbb3242ee | 3 years ago |
kaetemi | 1dd98445ca | 3 years ago |
kaetemi | d607dec79e | 3 years ago |
kaetemi | df69ff8507 | 3 years ago |
kaetemi | efd2dea7e4 | 3 years ago |
kaetemi | bc5d0fae17 | 3 years ago |
kaetemi | 9bd90c47c4 | 3 years ago |
kaetemi | 010c2c84eb | 3 years ago |
kaetemi | 838a362fad | 3 years ago |
kaetemi | 48548c99b8 | 3 years ago |
kaetemi | 34e079c020 | 3 years ago |
kaetemi | 144ebe7f72 | 3 years ago |
kaetemi | 5ef4a97c8a | 3 years ago |
kaetemi | 62ed0d6de9 | 3 years ago |
kaetemi | 7ecc87e3ed | 3 years ago |
kaetemi | 1df9e53dd5 | 3 years ago |
kaetemi | a8f147231d | 3 years ago |
kaetemi | f73be89553 | 3 years ago |
kaetemi | 5a090b2943 | 3 years ago |
kaetemi | 190057b11b | 3 years ago |
kaetemi | 03b9e1f44f | 3 years ago |
kaetemi | 93dc106d95 | 3 years ago |
kaetemi | 5fc80fca13 | 3 years ago |
kaetemi | 3aeef70db8 | 3 years ago |
kaetemi | c71980df2e | 3 years ago |
kaetemi | 34bb64cea7 | 3 years ago |
kaetemi | fe9d945265 | 3 years ago |
kaetemi | 725206c678 | 3 years ago |
kaetemi | 43716f30fb | 3 years ago |
kaetemi | 5117fd742b | 3 years ago |
kaetemi | d79f103525 | 3 years ago |
kaetemi | 151f5270bc | 3 years ago |
kaetemi | be7ee784ec | 3 years ago |
kaetemi | 3d174a1294 | 3 years ago |
kaetemi | 7a6227efcc | 3 years ago |
kaetemi | fd14ad6c94 | 3 years ago |
kaetemi | c4025de222 | 3 years ago |
kaetemi | 5346d2b15e | 3 years ago |
kaetemi | 3cf8ca0959 | 3 years ago |
kaetemi | 68eb9149df | 3 years ago |
kaetemi | 0115e0b745 | 3 years ago |
kaetemi | e0e85d0100 | 3 years ago |
kaetemi | e3ac824104 | 3 years ago |
kaetemi | 56c3248198 | 3 years ago |
kaetemi | 6cabc38192 | 3 years ago |
kaetemi | 3a2c47ac5a | 3 years ago |
kaetemi | d9ac7b70a8 | 3 years ago |
kaetemi | c41cdd76ff | 3 years ago |
kaetemi | ec63cdc818 | 3 years ago |
kaetemi | d235885d70 | 3 years ago |
kaetemi | ef4fb03143 | 3 years ago |
kaetemi | cf2bf5629f | 3 years ago |
kaetemi | ec6b13a88b | 3 years ago |
kaetemi | 2889e81d63 | 3 years ago |
kaetemi | 678d888b5c | 3 years ago |
kaetemi | 6a79a5bf0f | 3 years ago |
kaetemi | b4638c7969 | 3 years ago |
kaetemi | 4028534f2a | 3 years ago |
kaetemi | a3dea88eb1 | 3 years ago |
kaetemi | b1733439d0 | 3 years ago |
kaetemi | c919b1891b | 3 years ago |
kaetemi | 5df65ae36e | 3 years ago |
kaetemi | 56beb7e214 | 3 years ago |
kaetemi | dea792a3f7 | 3 years ago |
kaetemi | c5ccd66749 | 3 years ago |
kaetemi | ff971efc42 | 3 years ago |
kaetemi | 85d1180719 | 3 years ago |
kaetemi | 4d65d5c459 | 3 years ago |
kaetemi | 6f2cd1fa1b | 3 years ago |
kaetemi | 23b188cadc | 3 years ago |
kaetemi | 4fb55a86d3 | 3 years ago |
kaetemi | 3be4999816 | 3 years ago |
kaetemi | d08547121f | 3 years ago |
kaetemi | 0483474ea0 | 3 years ago |
kaetemi | 7f8d286bc5 | 3 years ago |
kaetemi | 2ecaf3ecd9 | 3 years ago |
kaetemi | 7a95ff23f3 | 3 years ago |
kaetemi | cb47713119 | 3 years ago |
kaetemi | 8adf8e228a | 3 years ago |
kaetemi | 7e7494f897 | 3 years ago |
kaetemi | 9cf4677005 | 3 years ago |
kaetemi | 8f40fdb7b4 | 3 years ago |
kaetemi | 7709977b48 | 3 years ago |
kaetemi | 25b403556f | 3 years ago |
kaetemi | 77e69856d4 | 3 years ago |
kaetemi | b6e79ee3e1 | 3 years ago |
kaetemi | 0a1689ae10 | 3 years ago |
kaetemi | cda6770adb | 3 years ago |
kaetemi | d9b59c1fdc | 3 years ago |
kaetemi | 5a8fa2052b | 3 years ago |
kaetemi | 31f31e6d69 | 3 years ago |
kaetemi | 187ef3af19 | 3 years ago |
kaetemi | 880f850be7 | 3 years ago |
kaetemi | 0fe48635f5 | 3 years ago |
kaetemi | 59b5d1228f | 3 years ago |
kaetemi | b594606862 | 3 years ago |
kaetemi | 10fc562e07 | 3 years ago |
kaetemi | 7175e7f9ed | 3 years ago |
kaetemi | a5d0f904a4 | 3 years ago |
kaetemi | 45668dcbfe | 3 years ago |
kaetemi | 614da137ac | 3 years ago |
kaetemi | 1d06892f16 | 3 years ago |
kaetemi | 08c094e957 | 3 years ago |
kaetemi | 681f133400 | 3 years ago |
kaetemi | cac99dc9ab | 3 years ago |
kaetemi | d30a80acea | 3 years ago |
kaetemi | 486af5ec85 | 3 years ago |
kaetemi | 9230eb1621 | 3 years ago |
kaetemi | 08a28193b4 | 3 years ago |
kaetemi | 8ad0536eed | 3 years ago |
kaetemi | 211d4d276d | 3 years ago |
kaetemi | 378bef8db3 | 3 years ago |
kaetemi | e9080405fc | 3 years ago |
kaetemi | 090ff7d509 | 3 years ago |
kaetemi | 39190cde60 | 3 years ago |
kaetemi | db211ffff7 | 3 years ago |
kaetemi | c3dcdd25de | 3 years ago |
kaetemi | 3b993c6cda | 3 years ago |
kaetemi | bc9d15a149 | 3 years ago |
kaetemi | e067e0eeeb | 3 years ago |
kaetemi | 7873a839ef | 3 years ago |
kaetemi | 3352401f24 | 3 years ago |
kaetemi | 549a015847 | 3 years ago |
kaetemi | fb1557c08e | 3 years ago |
kaetemi | a3626de8bb | 3 years ago |
kaetemi | 0045696546 | 3 years ago |
kaetemi | a5dd6aa857 | 3 years ago |
kaetemi | 5da1678357 | 3 years ago |
kaetemi | 694338302e | 3 years ago |
kaetemi | 5b22e0950a | 3 years ago |
kaetemi | 20ed0a4412 | 3 years ago |
kaetemi | c8ecf0a756 | 3 years ago |
kaetemi | d07e219439 | 3 years ago |
kaetemi | 92bfb0aafb | 3 years ago |
kaetemi | 4407fc2970 | 3 years ago |
kaetemi | 3f63f27143 | 3 years ago |
kaetemi | cb9094f091 | 3 years ago |
kaetemi | 30117e92be | 3 years ago |
kaetemi | b9de2e99a3 | 3 years ago |
kaetemi | 77f92c72a9 | 3 years ago |
kaetemi | b33ff3cb93 | 3 years ago |
kaetemi | da9c5173a6 | 3 years ago |
kaetemi | 3ec5a87d40 | 3 years ago |
kaetemi | 2cd2b9502f | 3 years ago |
kaetemi | 88e2ebd31c | 3 years ago |
kaetemi | 492865deed | 3 years ago |
kaetemi | a1023f923f | 3 years ago |
kaetemi | ce8acd4ca2 | 3 years ago |
kaetemi | 9d722bb70f | 3 years ago |
kaetemi | 59c1c340b8 | 3 years ago |
kaetemi | 43af8e6695 | 3 years ago |
kaetemi | f128e0807c | 3 years ago |
kaetemi | 8cecbb4a7d | 3 years ago |
kaetemi | feb7e7a812 | 3 years ago |
kaetemi | 8b6c3276e4 | 3 years ago |
kaetemi | deb1c7c131 | 3 years ago |
kaetemi | fc3f0355a5 | 3 years ago |
kaetemi | 578cef6c85 | 3 years ago |
kaetemi | 413ca990d0 | 3 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 | 6 years ago |
ulukyn | f7f1a6035e | 6 years ago |
ulukyn | 4f75f92610 | 6 years ago |
ulukyn | a50bd10b84 | 6 years ago |
ulukyn | 57406f6a8c | 6 years ago |
ulukyn | 65acd3bf9d | 6 years ago |
ulukyn | 16ce2e454c | 6 years ago |
ulukyn | c7bdaf513c | 6 years ago |
ulukyn | 724158c74c | 6 years ago |
Nuno Gonçalves | ed798cb62a | 6 years ago |
ulukyn | 971287ae78 | 7 years ago |
ulukyn | c56d2e136d | 6 years ago |
ulukyn | 3652b23bbb | 6 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
|
4eddbaff0c5e5d685db96ee3e8427aa0fd96ac83 v0.8.0
|
||||||
00d9b6e29e95f56785fbf85abe60afd34674f402 ryzomcore/v0.9.0
|
00d9b6e29e95f56785fbf85abe60afd34674f402 v0.9.0
|
||||||
79776c337176dd5b02e1a74fe5dfb703b91747aa ryzomcore/v0.9.1
|
79776c337176dd5b02e1a74fe5dfb703b91747aa v0.9.1
|
||||||
fedf2aa443d09707beed814b0f499c6a5519cc84 ryzomcore/v0.10.0
|
fedf2aa443d09707beed814b0f499c6a5519cc84 v0.10.0
|
||||||
edaa3624a56420b02ccc64c26059801a389927ee ryzomcore/v0.11.0
|
edaa3624a56420b02ccc64c26059801a389927ee v0.11.0
|
||||||
e3fe4855f22c3e75722e015dc33c091c340b3ad7 ryzomcore/v0.11.1
|
e3fe4855f22c3e75722e015dc33c091c340b3ad7 v0.11.1
|
||||||
9e583b717fd63be0be9fd60b99087abf1691ea49 ryzomcore/v0.11.2
|
9e583b717fd63be0be9fd60b99087abf1691ea49 v0.11.2
|
||||||
bfe5628e14a024ba7ea32e4b326ae433a07856b9 ryzomcore/v0.11.3
|
bfe5628e14a024ba7ea32e4b326ae433a07856b9 v0.11.3
|
||||||
9a6120735daa97c96ac5d85ca35c7f21f607bd87 ryzomcore/v0.12.0
|
9a6120735daa97c96ac5d85ca35c7f21f607bd87 v0.12.0
|
||||||
3e17907af67e8d66d80e6b714707bbf912607f2a ryzom-patch-3.0.0
|
3e92c7104c20d6bc6c2147b4b5fc289e8621d322 v1.0.0
|
||||||
153e0b605c9e0c83ba05b6428c62838b49cc84b2 ryzom-patch-3.0.1
|
8eb94c3549be898fdc4a7c6d791d2477bdc11a18 v1.0.1
|
||||||
9d41f2994d44b9aad92b83f945f114e4b6bed44a ryzom-patch-3.0.2
|
3e17907af67e8d66d80e6b714707bbf912607f2a ryzom/3.0.0
|
||||||
4300cc14aad098b1f86ea4c55577b7fa4a4cb5d2 ryzom-patch-3.1.0
|
153e0b605c9e0c83ba05b6428c62838b49cc84b2 ryzom/3.0.1
|
||||||
d4060f217f4f834cc62a33f2f1ccdf3c28298066 ryzom-patch-3.1.0-hotfix
|
9d41f2994d44b9aad92b83f945f114e4b6bed44a ryzom/3.0.2
|
||||||
043aaeb3d8a2a54177581b57bda87a9deaad510e ryzom-patch-3.1.0-april_patch
|
4300cc14aad098b1f86ea4c55577b7fa4a4cb5d2 ryzom/3.1.0
|
||||||
4036ecf59e83960f03acebc2089eb2ff5eeaed0a ryzom-patch-3.2.0
|
d4060f217f4f834cc62a33f2f1ccdf3c28298066 ryzom/3.1.0-hotfix
|
||||||
18403bb9485da3d9742c6f007a16d5619ebfb196 ryzom-patch-3.2.1
|
043aaeb3d8a2a54177581b57bda87a9deaad510e ryzom/3.1.0-april_patch
|
||||||
822ff8f8917ad66e09e2c21c983282f6f693b9f6 ryzom-patch-3.3.0
|
4036ecf59e83960f03acebc2089eb2ff5eeaed0a ryzom/3.2.0
|
||||||
00dde390a394fce9da06c2f3264140282158d39f ryzom-patch-3.3.0
|
18403bb9485da3d9742c6f007a16d5619ebfb196 ryzom/3.2.1
|
||||||
dcd4c4d161ef775136e18c7e8f5072b75dede27e ryzom-patch-3.3.1
|
822ff8f8917ad66e09e2c21c983282f6f693b9f6 ryzom/3.3.0
|
||||||
fc4be8ebec5ca754ef4453bc6a9faef90837c674 ryzom-patch-3.4.0
|
00dde390a394fce9da06c2f3264140282158d39f ryzom/3.3.0
|
||||||
70eba02e8eab6920586dbabf74e9e8180c729980 ryzom-patch-3.4.0 Steam Fix
|
dcd4c4d161ef775136e18c7e8f5072b75dede27e ryzom/3.3.1
|
||||||
3941482843f9cd130cfc16634efc08d34a98ed35 ryzom-patch-3.4.0 Atysmas
|
fc4be8ebec5ca754ef4453bc6a9faef90837c674 ryzom/3.4.0
|
||||||
ecae9feb4cceb78103e5d7236caccaf450796cdb ryzom-patch-3.5.0
|
70eba02e8eab6920586dbabf74e9e8180c729980 ryzom/3.4.0-steam_fix
|
||||||
95783afa226f241062134eb62f4323295d29ac84 ryzom-patch-3.5.0.9637
|
3941482843f9cd130cfc16634efc08d34a98ed35 ryzom/3.4.0-atysmas
|
||||||
2102fb276eb69d49ed4923042215312a63c47c08 Live-746
|
ecae9feb4cceb78103e5d7236caccaf450796cdb ryzom/3.5.0
|
||||||
8eb94c3549be898fdc4a7c6d791d2477bdc11a18 ryzomcore/v1.0.1
|
95783afa226f241062134eb62f4323295d29ac84 ryzom/3.5.0.9637
|
||||||
3e92c7104c20d6bc6c2147b4b5fc289e8621d322 ryzomcore/v1.0.0
|
|
||||||
|
@ -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,7 +1,63 @@
|
|||||||
# Ryzom Core [![Build Status](https://travis-ci.org/ryzom/ryzomcore.svg)](https://travis-ci.org/ryzom/ryzomcore)
|
# Ryzom Core [![Build Status](https://dev.azure.com/ryzom/ryzomcore/_apis/build/status/ryzom.ryzomcore?branchName=core4)](https://dev.azure.com/ryzom/ryzomcore/_build)
|
||||||
|
|
||||||
Ryzom Core is the open-source project related to Ryzom Game. Written in C++, Ryzom Core contains the whole code (client, server, tools) used to make the commercial MMORPG Ryzom. Ryzom Core is a toolkit for the development of massively multiplayer online universes. It provides the base technologies and a set of development methodologies for the development of both client and server code.
|
Ryzom Core is the open-source project related to Ryzom Game. Written in C++, Ryzom Core contains the whole code (client, server, tools) used to make the commercial MMORPG Ryzom. Ryzom Core is a toolkit for the development of massively multiplayer online universes. It provides the base technologies and a set of development methodologies for the development of both client and server code.
|
||||||
|
|
||||||
|
Ryzom Core is open source and released under the terms of the GNU Affero General Public License 3.0 (GNU/AGPLv3) for the source code. The art assets are dual-licenced under the Creative Commons Attributions-ShareAlike 3.0 (CC-BY-SA) and Free Art License 1.3 (FAL 1.3).
|
||||||
|
|
||||||
|
* Wiki: https://wiki.ryzom.dev/
|
||||||
|
* IRC: https://freegamedev.net/irc/#ryzom
|
||||||
|
* Discord: https://discord.gg/xjSBVkSmCy
|
||||||
|
|
||||||
Ryzom Core is open source and released under the terms of the GNU Affero General Public License 3.0 (GNU/AGPLv3) for the source code and the Creative Commons Attributions-ShareAlike 3.0 (CC-BY-SA) for the art assets. Which means you can create your own game using Ryzom Core, for more information on doing so check out Creating Your Own Game Using Ryzom Core.
|
## About the community
|
||||||
|
|
||||||
|
We are a passionate group of gamers, and open-source aficionados. Many of us fell in love with the original vision and promise of the Saga of Ryzom, or the ideals of open source. For some the game was once our home, or still is. To others, it was an introduction to the open-source software world. We work on Ryzom Core because we care for the things we love, and the friendships we've made over the years.
|
||||||
|
|
||||||
|
The Ryzom Core repository is maintained by the community independently. It is not officially affiliated with the commercial game, nor with Winch Gate Ltd. See the History section on why.
|
||||||
|
|
||||||
|
## Support development
|
||||||
|
|
||||||
|
We are happy to work on this project in our free time. If you would like to contribute to the project financially, you can support us and our loved ones through any of the following links.
|
||||||
|
|
||||||
|
* [![Sponsor](https://img.shields.io/github/sponsors/kaetemi?style=social)]( https://github.com/sponsors/kaetemi) Jan Boon (Kaetemi), Polyverse OÜ. — Goes towards the Ryzom Core servers, and open-source development.
|
||||||
|
|
||||||
|
If you're a regular source code or game asset contributor to the open-source project, feel free to add yourself to this list.
|
||||||
|
|
||||||
|
## Project history
|
||||||
|
|
||||||
|
The Saga of Ryzom was originally developed by Nevrax. A small game development company with a visionary creative direction.
|
||||||
|
|
||||||
|
Several founders and developers of the company at the time were open-source aficionados. The ideal in their minds was to fully open source the game. Unfortunately, the investors thought differently and never fully bought into the open-source model. Only the engine was released at the time.
|
||||||
|
|
||||||
|
This gave birth to the NeL project. The Nevrax Library. While there was public interest in the engine, the lack of commitment to open source by the company made it difficult for independent contributors to work on the project.
|
||||||
|
|
||||||
|
When Nevrax eventually went bankrupt, they were initially bought out by Gameforge. A subsidiary called Gameforge France was formed to work on Ryzom.
|
||||||
|
|
||||||
|
A community-led [Virtual Citizenship Association (VCA)]( https://web.archive.org/web/20080905175524/https://www.virtualcitizenship.org/), raising over € 170,000 in pledges, failed to win the bid. The open-source NeL community was later abandoned by Gameforge once Ryzom eventually fell into oblivion, and revived itself as the OpenNeL project. After Gameforge failed to fully pay for the bankruptcy deal, and some hush-hush behind the backs of the community-led VCA, the ownership was transferred back to the liquidator and onto Winch Gate Properties Limited.
|
||||||
|
|
||||||
|
Fortunately, thanks to the efforts of original Nevrax employees, and key members of OpenNeL, the new owner showed some goodwill towards the open source community, and the full game client and server, as well as a substantial amount of graphics assets, were released as open source.
|
||||||
|
|
||||||
|
With the promise of the game becoming an open source project, they worked together with the OpenNeL community, which renamed to Ryzom Core in order to advertise the game better. In practice, the commercial game servers were being developed on a private repository. Beyond bug fixes and enhancements to the client, the community had zero input. New features that required server modifications were disallowed. The collaboration was doomed to fail.
|
||||||
|
|
||||||
|
The Ryzom Core community was backstabbed and slowly ignored by the new owner. A new Ryzom Forge project was launched behind closed doors, that claimed to make community contributions easier. Yet closing off development almost entirely to outsiders. No attempt was made by the new owner at fully committing to an open-source development model.
|
||||||
|
|
||||||
|
New features on the commercial game developed by the Ryzom Forge team are primarily web applications using the in-game browser, circumventing the AGPLv3. Furthermore, the Ryzom Forge team had at one point updated their private server repository to link the binaries to the game engine on the public repository. This in violation of the AGPLv3 license on community contributions, forcing their hand to make their private server fork public. The web apps remain closed source. The team also shut down the Ryzom Ring player scenario tools on the official servers, in favor of closed source web-based tools that are exclusive to the official event team.
|
||||||
|
|
||||||
|
As the commercial game owners historically, and still, have been a poorly committed and unreliable partner to running this as a truly open-source project, Ryzom Core is currently an independent community project, and is committed to remain that way and protect the rights of independent contributors.
|
||||||
|
|
||||||
|
## Copyright and contributions
|
||||||
|
|
||||||
|
All original source code is copyright (C) 2001-2022 Winch Gate Property Limited. The commercial game's official Git repositories are hosted on GitLab at https://gitlab.com/ryzom.
|
||||||
|
|
||||||
|
The NeL Sound driver for XAudio2 is copyright (C) 2008-2014 Jan BOON <jan.boon@kaetemi.be>.
|
||||||
|
|
||||||
|
Other community contributions and modifications are copyright their respective authors. Consult the OpenNeL SVN and the Ryzom Core Git repository histories for more details.
|
||||||
|
|
||||||
|
The source code in this repository is licensed under the AGPLv3, unless specified otherwise. Likewise, by committing to this repository, you agree to license your modifications under the AGPLv3. You retain all copyright over your work (\*). As such, you have the option to additionally dual-license your fully-owned contributions under any other license. Configuration files are implied to be public domain samples, as they may contain sensitive data in a production environment.
|
||||||
|
|
||||||
|
(\*) If, and only if, you have signed a CTA (part of the NDA, copyright and ownership - your contract may vary) with Winch Gate Ltd., your contributions, along with any other creations related to Ryzom, fall under that contract and will be copyright Winch Gate Ltd. instead (\*\*). As per your contract, your contributions are licensed back to you under the AGPLv3. You retain the moral rights to your work. These are non-transferable rights, which permit you to assert your authorship and be credited for your contributions. You should exercise this right.
|
||||||
|
|
||||||
|
(\*\*) If you live in a legislation where contractual copyright assignments without employment or commercial transaction are unenforceable (e.g. Belgium), and you are not being paid by Winch Gate Ltd. for your current work, the CTA is null and void, and you retain full copyright ownership over your contributions. Consult a lawyer to assert your rights. Don't give them away.
|
||||||
|
|
||||||
|
To comply with the AGPLv3 license, section 5(a), names of the contributors who own the copyrights to modifications will be added to the copyright notice in source files on a periodic basis. You may follow the existing format if you wish to do this yourself.
|
||||||
|
|
||||||
|
The removal of any valid copyright notice is a violation of the AGPLv3 license.
|
||||||
|
@ -1,120 +1,120 @@
|
|||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Include Modern UI
|
;Include Modern UI
|
||||||
!include "MUI2.nsh"
|
!include "MUI2.nsh"
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;General
|
;General
|
||||||
!define Company "Winch Gate"
|
!define Company "Winch Gate"
|
||||||
!define GenericProduct "Ryzom"
|
!define GenericProduct "Ryzom"
|
||||||
!define Product "Ryzom Installer"
|
!define Product "Ryzom Installer"
|
||||||
!define RegistryCat "HKCU"
|
!define RegistryCat "HKCU"
|
||||||
!define RegistryKey "Software\${Company}\${GenericProduct}"
|
!define RegistryKey "Software\${Company}\${GenericProduct}"
|
||||||
!define Executable "ryzom_installer_qt_r.exe"
|
!define Executable "ryzom_installer_qt_r.exe"
|
||||||
!define SrcDir "RyzomInstaller"
|
!define SrcDir "RyzomInstaller"
|
||||||
!define Installer "ryzom_installer_windows.exe"
|
!define Installer "ryzom_installer_windows.exe"
|
||||||
|
|
||||||
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
|
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
|
||||||
;Unicode true
|
;Unicode true
|
||||||
|
|
||||||
;New XP style
|
;New XP style
|
||||||
XPStyle on
|
XPStyle on
|
||||||
|
|
||||||
;Name and file
|
;Name and file
|
||||||
Name "${Product}"
|
Name "${Product}"
|
||||||
OutFile "${Installer}"
|
OutFile "${Installer}"
|
||||||
|
|
||||||
;Default installation folder
|
;Default installation folder
|
||||||
InstallDir "$LOCALAPPDATA\${GenericProduct}"
|
InstallDir "$LOCALAPPDATA\${GenericProduct}"
|
||||||
|
|
||||||
;Get installation folder from registry if available
|
;Get installation folder from registry if available
|
||||||
InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path"
|
InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path"
|
||||||
|
|
||||||
;Request application privileges for Windows Vista
|
;Request application privileges for Windows Vista
|
||||||
RequestExecutionLevel user
|
RequestExecutionLevel user
|
||||||
|
|
||||||
;Best compression
|
;Best compression
|
||||||
SetCompressor LZMA
|
SetCompressor LZMA
|
||||||
|
|
||||||
; ???
|
; ???
|
||||||
AllowSkipFiles on
|
AllowSkipFiles on
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Interface Settings
|
;Interface Settings
|
||||||
|
|
||||||
!define MUI_ICON "${SrcDir}\${GenericProduct}.ico"
|
!define MUI_ICON "${SrcDir}\${GenericProduct}.ico"
|
||||||
!define MUI_UNICON "${SrcDir}\${GenericProduct}.ico"
|
!define MUI_UNICON "${SrcDir}\${GenericProduct}.ico"
|
||||||
!define MUI_HEADERIMAGE
|
!define MUI_HEADERIMAGE
|
||||||
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional
|
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional
|
||||||
!define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
!define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||||
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||||
!define MUI_ABORTWARNING
|
!define MUI_ABORTWARNING
|
||||||
|
|
||||||
;Show all languages, despite user's codepage
|
;Show all languages, despite user's codepage
|
||||||
!define MUI_LANGDLL_ALLLANGUAGES
|
!define MUI_LANGDLL_ALLLANGUAGES
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Language Selection Dialog Settings
|
;Language Selection Dialog Settings
|
||||||
|
|
||||||
;Remember the installer language
|
;Remember the installer language
|
||||||
!define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}"
|
!define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}"
|
||||||
!define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}"
|
!define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}"
|
||||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
|
!define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Pages
|
;Pages
|
||||||
!insertmacro MUI_PAGE_WELCOME
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
!insertmacro MUI_PAGE_DIRECTORY
|
!insertmacro MUI_PAGE_DIRECTORY
|
||||||
!insertmacro MUI_PAGE_INSTFILES
|
!insertmacro MUI_PAGE_INSTFILES
|
||||||
|
|
||||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}"
|
!define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}"
|
||||||
|
|
||||||
!insertmacro MUI_PAGE_FINISH
|
!insertmacro MUI_PAGE_FINISH
|
||||||
|
|
||||||
!insertmacro MUI_UNPAGE_WELCOME
|
!insertmacro MUI_UNPAGE_WELCOME
|
||||||
!insertmacro MUI_UNPAGE_CONFIRM
|
!insertmacro MUI_UNPAGE_CONFIRM
|
||||||
!insertmacro MUI_UNPAGE_INSTFILES
|
!insertmacro MUI_UNPAGE_INSTFILES
|
||||||
!insertmacro MUI_UNPAGE_FINISH
|
!insertmacro MUI_UNPAGE_FINISH
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Languages
|
;Languages
|
||||||
|
|
||||||
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
||||||
!insertmacro MUI_LANGUAGE "French"
|
!insertmacro MUI_LANGUAGE "French"
|
||||||
!insertmacro MUI_LANGUAGE "German"
|
!insertmacro MUI_LANGUAGE "German"
|
||||||
!insertmacro MUI_LANGUAGE "Spanish"
|
!insertmacro MUI_LANGUAGE "Spanish"
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Reserve Files
|
;Reserve Files
|
||||||
|
|
||||||
;If you are using solid compression, files that are required before
|
;If you are using solid compression, files that are required before
|
||||||
;the actual installation should be stored first in the data block,
|
;the actual installation should be stored first in the data block,
|
||||||
;because this will make your installer start faster.
|
;because this will make your installer start faster.
|
||||||
|
|
||||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Installer Sections
|
;Installer Sections
|
||||||
|
|
||||||
; ----------------------------------------
|
; ----------------------------------------
|
||||||
; Default section
|
; Default section
|
||||||
Section
|
Section
|
||||||
SetOutPath "$INSTDIR"
|
SetOutPath "$INSTDIR"
|
||||||
|
|
||||||
;Client, configuration and misc files
|
;Client, configuration and misc files
|
||||||
File "${SrcDir}\${Executable}"
|
File "${SrcDir}\${Executable}"
|
||||||
File "${SrcDir}\msvcp120.dll"
|
File "${SrcDir}\msvcp120.dll"
|
||||||
File "${SrcDir}\msvcr120.dll"
|
File "${SrcDir}\msvcr120.dll"
|
||||||
|
|
||||||
;Shortcut on desktop
|
;Shortcut on desktop
|
||||||
CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}"
|
CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}"
|
||||||
|
|
||||||
;Store installation folder
|
;Store installation folder
|
||||||
WriteRegStr "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path" $INSTDIR
|
WriteRegStr "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path" $INSTDIR
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Installer Functions
|
;Installer Functions
|
||||||
|
|
||||||
Function .onInit
|
Function .onInit
|
||||||
!insertmacro MUI_LANGDLL_DISPLAY
|
!insertmacro MUI_LANGDLL_DISPLAY
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,298 +1,298 @@
|
|||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Include Modern UI
|
;Include Modern UI
|
||||||
!include "MUI2.nsh"
|
!include "MUI2.nsh"
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;General
|
;General
|
||||||
!define Company "Nevrax"
|
!define Company "Nevrax"
|
||||||
!define Product "Ryzom"
|
!define Product "Ryzom"
|
||||||
!define Version "2.1.0"
|
!define Version "2.1.0"
|
||||||
!define Patch "661"
|
!define Patch "661"
|
||||||
!define RegistryCat "HKLM"
|
!define RegistryCat "HKLM"
|
||||||
!define RegistryKey "Software\${Company}\${Product}"
|
!define RegistryKey "Software\${Company}\${Product}"
|
||||||
!define Executable "client_ryzom_rd.exe"
|
!define Executable "client_ryzom_rd.exe"
|
||||||
!define DstDir "Output"
|
!define DstDir "Output"
|
||||||
!define SrcDir "Ryzom"
|
!define SrcDir "Ryzom"
|
||||||
!define Installer "ryzom_setup_${Patch}.exe"
|
!define Installer "ryzom_setup_${Patch}.exe"
|
||||||
|
|
||||||
;Registry key for uninstaller
|
;Registry key for uninstaller
|
||||||
!define UninstallRegistryRoot "Software\Microsoft\Windows\CurrentVersion\Uninstall"
|
!define UninstallRegistryRoot "Software\Microsoft\Windows\CurrentVersion\Uninstall"
|
||||||
!define UninstallRegistryKey "${UninstallRegistryRoot}\${Product}"
|
!define UninstallRegistryKey "${UninstallRegistryRoot}\${Product}"
|
||||||
|
|
||||||
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
|
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
|
||||||
Unicode true
|
Unicode true
|
||||||
|
|
||||||
;New XP style
|
;New XP style
|
||||||
XPStyle on
|
XPStyle on
|
||||||
|
|
||||||
;Name and file
|
;Name and file
|
||||||
Name "${Product}"
|
Name "${Product}"
|
||||||
OutFile "${DstDir}\${Installer}"
|
OutFile "${DstDir}\${Installer}"
|
||||||
|
|
||||||
;Default installation folder
|
;Default installation folder
|
||||||
InstallDir "$PROGRAMFILES\${Product}"
|
InstallDir "$PROGRAMFILES\${Product}"
|
||||||
|
|
||||||
;Get installation folder from registry if available
|
;Get installation folder from registry if available
|
||||||
InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${Product} Install Path"
|
InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${Product} Install Path"
|
||||||
|
|
||||||
;Request application privileges for Windows Vista
|
;Request application privileges for Windows Vista
|
||||||
RequestExecutionLevel admin
|
RequestExecutionLevel admin
|
||||||
|
|
||||||
;Best compression
|
;Best compression
|
||||||
SetCompressor LZMA
|
SetCompressor LZMA
|
||||||
|
|
||||||
; ???
|
; ???
|
||||||
AllowSkipFiles on
|
AllowSkipFiles on
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Variables
|
;Variables
|
||||||
|
|
||||||
;Will be used later
|
;Will be used later
|
||||||
Var MUI_TEMP
|
Var MUI_TEMP
|
||||||
Var STARTMENU_FOLDER
|
Var STARTMENU_FOLDER
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Interface Settings
|
;Interface Settings
|
||||||
|
|
||||||
!define MUI_ICON "${SrcDir}\ryzom.ico"
|
!define MUI_ICON "${SrcDir}\ryzom.ico"
|
||||||
!define MUI_UNICON "${SrcDir}\ryzom.ico"
|
!define MUI_UNICON "${SrcDir}\ryzom.ico"
|
||||||
!define MUI_HEADERIMAGE
|
!define MUI_HEADERIMAGE
|
||||||
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional
|
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional
|
||||||
!define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
!define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||||
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
|
||||||
!define MUI_ABORTWARNING
|
!define MUI_ABORTWARNING
|
||||||
|
|
||||||
;Show all languages, despite user's codepage
|
;Show all languages, despite user's codepage
|
||||||
!define MUI_LANGDLL_ALLLANGUAGES
|
!define MUI_LANGDLL_ALLLANGUAGES
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Language Selection Dialog Settings
|
;Language Selection Dialog Settings
|
||||||
|
|
||||||
;Remember the installer language
|
;Remember the installer language
|
||||||
!define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}"
|
!define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}"
|
||||||
!define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}"
|
!define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}"
|
||||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
|
!define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Pages
|
;Pages
|
||||||
!insertmacro MUI_PAGE_WELCOME
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
!insertmacro MUI_PAGE_DIRECTORY
|
!insertmacro MUI_PAGE_DIRECTORY
|
||||||
|
|
||||||
;Start Menu Folder Page Configuration
|
;Start Menu Folder Page Configuration
|
||||||
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${RegistryCat}"
|
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${RegistryCat}"
|
||||||
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${RegistryKey}"
|
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${RegistryKey}"
|
||||||
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
|
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
|
||||||
|
|
||||||
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
|
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
|
||||||
|
|
||||||
!insertmacro MUI_PAGE_INSTFILES
|
!insertmacro MUI_PAGE_INSTFILES
|
||||||
|
|
||||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}"
|
!define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}"
|
||||||
|
|
||||||
!insertmacro MUI_PAGE_FINISH
|
!insertmacro MUI_PAGE_FINISH
|
||||||
|
|
||||||
!insertmacro MUI_UNPAGE_WELCOME
|
!insertmacro MUI_UNPAGE_WELCOME
|
||||||
!insertmacro MUI_UNPAGE_CONFIRM
|
!insertmacro MUI_UNPAGE_CONFIRM
|
||||||
!insertmacro MUI_UNPAGE_INSTFILES
|
!insertmacro MUI_UNPAGE_INSTFILES
|
||||||
!insertmacro MUI_UNPAGE_FINISH
|
!insertmacro MUI_UNPAGE_FINISH
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Languages
|
;Languages
|
||||||
|
|
||||||
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
||||||
!insertmacro MUI_LANGUAGE "French"
|
!insertmacro MUI_LANGUAGE "French"
|
||||||
!insertmacro MUI_LANGUAGE "German"
|
!insertmacro MUI_LANGUAGE "German"
|
||||||
;!insertmacro MUI_LANGUAGE "Spanish"
|
;!insertmacro MUI_LANGUAGE "Spanish"
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Reserve Files
|
;Reserve Files
|
||||||
|
|
||||||
;If you are using solid compression, files that are required before
|
;If you are using solid compression, files that are required before
|
||||||
;the actual installation should be stored first in the data block,
|
;the actual installation should be stored first in the data block,
|
||||||
;because this will make your installer start faster.
|
;because this will make your installer start faster.
|
||||||
|
|
||||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Descriptions
|
;Descriptions
|
||||||
|
|
||||||
;French
|
;French
|
||||||
LangString MSG_SUPPORT_URL_TITLE ${LANG_FRENCH} "Support"
|
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_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_TITLE ${LANG_FRENCH} "${Product} sur le Web"
|
||||||
LangString MSG_HOME_URL ${LANG_FRENCH} "http://ryzom.fr"
|
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."
|
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_FRENCH} "Voulez-vous supprimer vos fichiers de sauvegarde ? Appuyer sur Oui pour effacer vos fichiers de sauvegarde."
|
||||||
|
|
||||||
;English
|
;English
|
||||||
LangString MSG_SUPPORT_URL_TITLE ${LANG_ENGLISH} "Support"
|
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_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_TITLE ${LANG_ENGLISH} "${Product} on the Web"
|
||||||
LangString MSG_HOME_URL ${LANG_ENGLISH} "http://ryzom.com"
|
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."
|
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_ENGLISH} "Deleting Save Files? Click Yes to delete your own save files."
|
||||||
|
|
||||||
;German
|
;German
|
||||||
LangString MSG_SUPPORT_URL_TITLE ${LANG_GERMAN} "Support"
|
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_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_TITLE ${LANG_GERMAN} "${Product} im Internet"
|
||||||
LangString MSG_HOME_URL ${LANG_GERMAN} "http://ryzom.de"
|
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."
|
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_GERMAN} "Gespeicherte Dateien löschen? Klicke Ja um die eigenen Dateien zu löschen."
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Installer Sections
|
;Installer Sections
|
||||||
|
|
||||||
!macro CreateInternetShortcut FILENAME URL ICONFILE
|
!macro CreateInternetShortcut FILENAME URL ICONFILE
|
||||||
WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
|
WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
|
||||||
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}"
|
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}"
|
||||||
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "0"
|
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "0"
|
||||||
!macroend
|
!macroend
|
||||||
|
|
||||||
; ----------------------------------------
|
; ----------------------------------------
|
||||||
; Default section
|
; Default section
|
||||||
Section
|
Section
|
||||||
;Install for All Users
|
;Install for All Users
|
||||||
SetShellVarContext all
|
SetShellVarContext all
|
||||||
|
|
||||||
;Game directories
|
;Game directories
|
||||||
SetOutPath "$INSTDIR\cfg"
|
SetOutPath "$INSTDIR\cfg"
|
||||||
File /r "${SrcDir}\cfg\*.*"
|
File /r "${SrcDir}\cfg\*.*"
|
||||||
|
|
||||||
SetOutPath "$INSTDIR\data"
|
SetOutPath "$INSTDIR\data"
|
||||||
File /r "${SrcDir}\data\*.*"
|
File /r "${SrcDir}\data\*.*"
|
||||||
|
|
||||||
SetOutPath "$INSTDIR\examples"
|
SetOutPath "$INSTDIR\examples"
|
||||||
File /r "${SrcDir}\examples\*.*"
|
File /r "${SrcDir}\examples\*.*"
|
||||||
|
|
||||||
SetOutPath "$INSTDIR\user"
|
SetOutPath "$INSTDIR\user"
|
||||||
File /r "${SrcDir}\user\*.*"
|
File /r "${SrcDir}\user\*.*"
|
||||||
|
|
||||||
SetOutPath "$INSTDIR"
|
SetOutPath "$INSTDIR"
|
||||||
|
|
||||||
;Client, configuration and misc files
|
;Client, configuration and misc files
|
||||||
File "${SrcDir}\client_default.cfg"
|
File "${SrcDir}\client_default.cfg"
|
||||||
File "${SrcDir}\${Executable}"
|
File "${SrcDir}\${Executable}"
|
||||||
File "${SrcDir}\configure.bat"
|
File "${SrcDir}\configure.bat"
|
||||||
File "${SrcDir}\d3dcompiler_43.dll"
|
File "${SrcDir}\d3dcompiler_43.dll"
|
||||||
File "${SrcDir}\d3dx9_43.dll"
|
File "${SrcDir}\d3dx9_43.dll"
|
||||||
File "${SrcDir}\fmod.dll"
|
File "${SrcDir}\fmod.dll"
|
||||||
File "${SrcDir}\forum.url"
|
File "${SrcDir}\forum.url"
|
||||||
File "${SrcDir}\launch.bat"
|
File "${SrcDir}\launch.bat"
|
||||||
File "${SrcDir}\msvcp100.dll"
|
File "${SrcDir}\msvcp100.dll"
|
||||||
File "${SrcDir}\msvcr100.dll"
|
File "${SrcDir}\msvcr100.dll"
|
||||||
File "${SrcDir}\nel_drv_direct3d_win_r.dll"
|
File "${SrcDir}\nel_drv_direct3d_win_r.dll"
|
||||||
File "${SrcDir}\nel_drv_fmod_win_r.dll"
|
File "${SrcDir}\nel_drv_fmod_win_r.dll"
|
||||||
File "${SrcDir}\nel_drv_opengl_win_r.dll"
|
File "${SrcDir}\nel_drv_opengl_win_r.dll"
|
||||||
File "${SrcDir}\ryzom.ico"
|
File "${SrcDir}\ryzom.ico"
|
||||||
File "${SrcDir}\ryzom.url"
|
File "${SrcDir}\ryzom.url"
|
||||||
File "${SrcDir}\Ryzom6.ico"
|
File "${SrcDir}\Ryzom6.ico"
|
||||||
|
|
||||||
;Create uninstaller
|
;Create uninstaller
|
||||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||||
|
|
||||||
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
|
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
|
||||||
|
|
||||||
;Create shortcuts in Start Menu
|
;Create shortcuts in Start Menu
|
||||||
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
|
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
|
||||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
||||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\${Product}.lnk" "$INSTDIR\${Executable}"
|
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\${Product}.lnk" "$INSTDIR\${Executable}"
|
||||||
|
|
||||||
;Create URLs
|
;Create URLs
|
||||||
!insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\$(MSG_SUPPORT_URL_TITLE)" "$(MSG_SUPPORT_URL)" "$INSTDIR\ryzom.ico"
|
!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 CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\$(MSG_HOME_URL_TITLE)" "$(MSG_HOME_URL)" "$INSTDIR\ryzom.ico"
|
||||||
|
|
||||||
!insertmacro MUI_STARTMENU_WRITE_END
|
!insertmacro MUI_STARTMENU_WRITE_END
|
||||||
|
|
||||||
;Shortcut on desktop
|
;Shortcut on desktop
|
||||||
CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}"
|
CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}"
|
||||||
|
|
||||||
;Add/Remove Program entry
|
;Add/Remove Program entry
|
||||||
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayIcon" "$INSTDIR\${Executable},0"
|
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayIcon" "$INSTDIR\${Executable},0"
|
||||||
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayName" "${Product}"
|
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayName" "${Product}"
|
||||||
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayVersion" "${Version}"
|
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayVersion" "${Version}"
|
||||||
WriteRegStr HKLM "${UninstallRegistryKey}" "InstallLocation" "$INSTDIR"
|
WriteRegStr HKLM "${UninstallRegistryKey}" "InstallLocation" "$INSTDIR"
|
||||||
WriteRegStr HKLM "${UninstallRegistryKey}" "QuietUninstallString" '"$INSTDIR\Uninstall.exe" /S'
|
WriteRegStr HKLM "${UninstallRegistryKey}" "QuietUninstallString" '"$INSTDIR\Uninstall.exe" /S'
|
||||||
WriteRegStr HKLM "${UninstallRegistryKey}" "UninstallString" "$INSTDIR\Uninstall.exe"
|
WriteRegStr HKLM "${UninstallRegistryKey}" "UninstallString" "$INSTDIR\Uninstall.exe"
|
||||||
WriteRegStr HKLM "${UninstallRegistryKey}" "Publisher" "${Company}"
|
WriteRegStr HKLM "${UninstallRegistryKey}" "Publisher" "${Company}"
|
||||||
WriteRegStr HKLM "${UninstallRegistryKey}" "HelpLink" "$(MSG_SUPPORT_URL)"
|
WriteRegStr HKLM "${UninstallRegistryKey}" "HelpLink" "$(MSG_SUPPORT_URL)"
|
||||||
WriteRegStr HKLM "${UninstallRegistryKey}" "URLInfoAbout" "$(MSG_HOME_URL)"
|
WriteRegStr HKLM "${UninstallRegistryKey}" "URLInfoAbout" "$(MSG_HOME_URL)"
|
||||||
|
|
||||||
;Store installation folder
|
;Store installation folder
|
||||||
WriteRegStr "${RegistryCat}" "${RegistryKey}" "${Product} Install Path" $INSTDIR
|
WriteRegStr "${RegistryCat}" "${RegistryKey}" "${Product} Install Path" $INSTDIR
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Uninstaller Section
|
;Uninstaller Section
|
||||||
Section "Uninstall"
|
Section "Uninstall"
|
||||||
;Install for All Users
|
;Install for All Users
|
||||||
SetShellVarContext all
|
SetShellVarContext all
|
||||||
|
|
||||||
;Game directories
|
;Game directories
|
||||||
RMDir /r "$INSTDIR\cfg"
|
RMDir /r "$INSTDIR\cfg"
|
||||||
RMDir /r "$INSTDIR\data"
|
RMDir /r "$INSTDIR\data"
|
||||||
RMDir /r "$INSTDIR\examples"
|
RMDir /r "$INSTDIR\examples"
|
||||||
|
|
||||||
;Temporary directories
|
;Temporary directories
|
||||||
RMDir /r "$INSTDIR\cache"
|
RMDir /r "$INSTDIR\cache"
|
||||||
RMDir /r "$INSTDIR\unpack"
|
RMDir /r "$INSTDIR\unpack"
|
||||||
|
|
||||||
;Client, configuration and misc files
|
;Client, configuration and misc files
|
||||||
Delete "$INSTDIR\client_default.cfg"
|
Delete "$INSTDIR\client_default.cfg"
|
||||||
Delete "$INSTDIR\${Executable}"
|
Delete "$INSTDIR\${Executable}"
|
||||||
Delete "$INSTDIR\configure.bat"
|
Delete "$INSTDIR\configure.bat"
|
||||||
Delete "$INSTDIR\d3dcompiler_43.dll"
|
Delete "$INSTDIR\d3dcompiler_43.dll"
|
||||||
Delete "$INSTDIR\d3dx9_43.dll"
|
Delete "$INSTDIR\d3dx9_43.dll"
|
||||||
Delete "$INSTDIR\fmod.dll"
|
Delete "$INSTDIR\fmod.dll"
|
||||||
Delete "$INSTDIR\forum.url"
|
Delete "$INSTDIR\forum.url"
|
||||||
Delete "$INSTDIR\launch.bat"
|
Delete "$INSTDIR\launch.bat"
|
||||||
Delete "$INSTDIR\msvcp100.dll"
|
Delete "$INSTDIR\msvcp100.dll"
|
||||||
Delete "$INSTDIR\msvcr100.dll"
|
Delete "$INSTDIR\msvcr100.dll"
|
||||||
Delete "$INSTDIR\nel_drv_direct3d_win_r.dll"
|
Delete "$INSTDIR\nel_drv_direct3d_win_r.dll"
|
||||||
Delete "$INSTDIR\nel_drv_fmod_win_r.dll"
|
Delete "$INSTDIR\nel_drv_fmod_win_r.dll"
|
||||||
Delete "$INSTDIR\nel_drv_opengl_win_r.dll"
|
Delete "$INSTDIR\nel_drv_opengl_win_r.dll"
|
||||||
Delete "$INSTDIR\ryzom.ico"
|
Delete "$INSTDIR\ryzom.ico"
|
||||||
Delete "$INSTDIR\ryzom.url"
|
Delete "$INSTDIR\ryzom.url"
|
||||||
Delete "$INSTDIR\Ryzom6.ico"
|
Delete "$INSTDIR\Ryzom6.ico"
|
||||||
|
|
||||||
;Delete uninstaller
|
;Delete uninstaller
|
||||||
Delete "$INSTDIR\Uninstall.exe"
|
Delete "$INSTDIR\Uninstall.exe"
|
||||||
|
|
||||||
MessageBox MB_YESNO "$(MSG_CONFIRM_DELETE_BACKUPS)" IDNO DontDeleteMiscFiles
|
MessageBox MB_YESNO "$(MSG_CONFIRM_DELETE_BACKUPS)" IDNO DontDeleteMiscFiles
|
||||||
|
|
||||||
;Delete directory
|
;Delete directory
|
||||||
RMDir /r "$INSTDIR"
|
RMDir /r "$INSTDIR"
|
||||||
|
|
||||||
DontDeleteMiscFiles:
|
DontDeleteMiscFiles:
|
||||||
|
|
||||||
;Delete directory if empty
|
;Delete directory if empty
|
||||||
RMDir "$INSTDIR"
|
RMDir "$INSTDIR"
|
||||||
|
|
||||||
;Delete all shortcuts
|
;Delete all shortcuts
|
||||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||||
|
|
||||||
;Delete Start Menu shortcuts
|
;Delete Start Menu shortcuts
|
||||||
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
||||||
Delete "$SMPROGRAMS\$MUI_TEMP\${Product}.lnk"
|
Delete "$SMPROGRAMS\$MUI_TEMP\${Product}.lnk"
|
||||||
Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_HOME_URL_TITLE).url"
|
Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_HOME_URL_TITLE).url"
|
||||||
Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_SUPPORT_URL_TITLE).url"
|
Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_SUPPORT_URL_TITLE).url"
|
||||||
RMDir /r /REBOOTOK "$SMPROGRAMS\$MUI_TEMP"
|
RMDir /r /REBOOTOK "$SMPROGRAMS\$MUI_TEMP"
|
||||||
|
|
||||||
;Delete desktop shortcut
|
;Delete desktop shortcut
|
||||||
Delete "$DESKTOP\${Product}.lnk"
|
Delete "$DESKTOP\${Product}.lnk"
|
||||||
|
|
||||||
;Delete registry
|
;Delete registry
|
||||||
DeleteRegKey /ifempty "${RegistryCat}" "${RegistryKey}"
|
DeleteRegKey /ifempty "${RegistryCat}" "${RegistryKey}"
|
||||||
DeleteRegKey "${RegistryCat}" "${UninstallRegistryKey}"
|
DeleteRegKey "${RegistryCat}" "${UninstallRegistryKey}"
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Installer Functions
|
;Installer Functions
|
||||||
|
|
||||||
Function .onInit
|
Function .onInit
|
||||||
!insertmacro MUI_LANGDLL_DISPLAY
|
!insertmacro MUI_LANGDLL_DISPLAY
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Uninstaller Functions
|
;Uninstaller Functions
|
||||||
|
|
||||||
Function un.onInit
|
Function un.onInit
|
||||||
!insertmacro MUI_UNGETLANGUAGE
|
!insertmacro MUI_UNGETLANGUAGE
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,94 +1,94 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Run all export processes
|
# \brief Run all export processes
|
||||||
# \date 2009-02-18 09:22GMT
|
# \date 2009-02-18 09:22GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all export processes
|
# Run all export processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
sys.path.append("configuration")
|
sys.path.append("configuration")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Export')
|
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Export')
|
||||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if not args.includeproject == None and not args.excludeproject == None:
|
if not args.includeproject == None and not args.excludeproject == None:
|
||||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite_local import *
|
from buildsite_local import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
sys.path.append(WorkspaceDirectory)
|
sys.path.append(WorkspaceDirectory)
|
||||||
from projects import *
|
from projects import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Run the export processes")
|
printLog(log, "--- Run the export processes")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
# For each project
|
# For each project
|
||||||
for projectName in ProjectsToProcess:
|
for projectName in ProjectsToProcess:
|
||||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||||
printLog(log, "PROJECT " + projectName)
|
printLog(log, "PROJECT " + projectName)
|
||||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||||
os.chdir("processes")
|
os.chdir("processes")
|
||||||
try:
|
try:
|
||||||
if not args.includeprocess == None:
|
if not args.includeprocess == None:
|
||||||
subprocess.call([ "python", "1_export.py", "--includeprocess" ] + args.includeprocess)
|
subprocess.call([ "python", "1_export.py", "--includeprocess" ] + args.includeprocess)
|
||||||
elif not args.excludeprocess == None:
|
elif not args.excludeprocess == None:
|
||||||
subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess)
|
subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess)
|
||||||
else:
|
else:
|
||||||
subprocess.call([ "python", "1_export.py" ])
|
subprocess.call([ "python", "1_export.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
try:
|
try:
|
||||||
projectLog = open("processes/log.log", "r")
|
projectLog = open("processes/log.log", "r")
|
||||||
projectLogData = projectLog.read()
|
projectLogData = projectLog.read()
|
||||||
projectLog.close()
|
projectLog.close()
|
||||||
log.write(projectLogData)
|
log.write(projectLogData)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
else:
|
else:
|
||||||
printLog(log, "IGNORE PROJECT " + projectName)
|
printLog(log, "IGNORE PROJECT " + projectName)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("1_export.log"):
|
if os.path.isfile("1_export.log"):
|
||||||
os.remove("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.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_export.log")
|
||||||
shutil.move("log.log", "1_export.log")
|
shutil.move("log.log", "1_export.log")
|
||||||
|
@ -1,94 +1,94 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 2_build.py
|
# \file 2_build.py
|
||||||
# \brief Run all build processes
|
# \brief Run all build processes
|
||||||
# \date 2009-02-18 09:22GMT
|
# \date 2009-02-18 09:22GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all build processes
|
# Run all build processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
sys.path.append("configuration")
|
sys.path.append("configuration")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Build')
|
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Build')
|
||||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if not args.includeproject == None and not args.excludeproject == None:
|
if not args.includeproject == None and not args.excludeproject == None:
|
||||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite_local import *
|
from buildsite_local import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
sys.path.append(WorkspaceDirectory)
|
sys.path.append(WorkspaceDirectory)
|
||||||
from projects import *
|
from projects import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Run the build processes")
|
printLog(log, "--- Run the build processes")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
# For each project
|
# For each project
|
||||||
for projectName in ProjectsToProcess:
|
for projectName in ProjectsToProcess:
|
||||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||||
printLog(log, "PROJECT " + projectName)
|
printLog(log, "PROJECT " + projectName)
|
||||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||||
os.chdir("processes")
|
os.chdir("processes")
|
||||||
try:
|
try:
|
||||||
if not args.includeprocess == None:
|
if not args.includeprocess == None:
|
||||||
subprocess.call([ "python", "2_build.py", "--includeprocess" ] + args.includeprocess)
|
subprocess.call([ "python", "2_build.py", "--includeprocess" ] + args.includeprocess)
|
||||||
elif not args.excludeprocess == None:
|
elif not args.excludeprocess == None:
|
||||||
subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess)
|
subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess)
|
||||||
else:
|
else:
|
||||||
subprocess.call([ "python", "2_build.py" ])
|
subprocess.call([ "python", "2_build.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
try:
|
try:
|
||||||
projectLog = open("processes/log.log", "r")
|
projectLog = open("processes/log.log", "r")
|
||||||
projectLogData = projectLog.read()
|
projectLogData = projectLog.read()
|
||||||
projectLog.close()
|
projectLog.close()
|
||||||
log.write(projectLogData)
|
log.write(projectLogData)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
else:
|
else:
|
||||||
printLog(log, "IGNORE PROJECT " + projectName)
|
printLog(log, "IGNORE PROJECT " + projectName)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("2_build.log"):
|
if os.path.isfile("2_build.log"):
|
||||||
os.remove("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.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_build.log")
|
||||||
shutil.move("log.log", "2_build.log")
|
shutil.move("log.log", "2_build.log")
|
||||||
|
@ -1,94 +1,94 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Run all install processes
|
# \brief Run all install processes
|
||||||
# \date 2009-02-18 16:19GMT
|
# \date 2009-02-18 16:19GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all install processes
|
# Run all install processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
sys.path.append("configuration")
|
sys.path.append("configuration")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Install')
|
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Install')
|
||||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if not args.includeproject == None and not args.excludeproject == None:
|
if not args.includeproject == None and not args.excludeproject == None:
|
||||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite_local import *
|
from buildsite_local import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
sys.path.append(WorkspaceDirectory)
|
sys.path.append(WorkspaceDirectory)
|
||||||
from projects import *
|
from projects import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Run the install processes")
|
printLog(log, "--- Run the install processes")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
# For each project
|
# For each project
|
||||||
for projectName in ProjectsToProcess:
|
for projectName in ProjectsToProcess:
|
||||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||||
printLog(log, "PROJECT " + projectName)
|
printLog(log, "PROJECT " + projectName)
|
||||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||||
os.chdir("processes")
|
os.chdir("processes")
|
||||||
try:
|
try:
|
||||||
if not args.includeprocess == None:
|
if not args.includeprocess == None:
|
||||||
subprocess.call([ "python", "3_install.py", "--includeprocess" ] + args.includeprocess)
|
subprocess.call([ "python", "3_install.py", "--includeprocess" ] + args.includeprocess)
|
||||||
elif not args.excludeprocess == None:
|
elif not args.excludeprocess == None:
|
||||||
subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess)
|
subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess)
|
||||||
else:
|
else:
|
||||||
subprocess.call([ "python", "3_install.py" ])
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
try:
|
try:
|
||||||
projectLog = open("processes/log.log", "r")
|
projectLog = open("processes/log.log", "r")
|
||||||
projectLogData = projectLog.read()
|
projectLogData = projectLog.read()
|
||||||
projectLog.close()
|
projectLog.close()
|
||||||
log.write(projectLogData)
|
log.write(projectLogData)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
else:
|
else:
|
||||||
printLog(log, "IGNORE PROJECT " + projectName)
|
printLog(log, "IGNORE PROJECT " + projectName)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("3_install.log"):
|
if os.path.isfile("3_install.log"):
|
||||||
os.remove("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.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_install.log")
|
||||||
shutil.move("log.log", "3_install.log")
|
shutil.move("log.log", "3_install.log")
|
||||||
|
@ -1,181 +1,181 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 9_upload.py
|
# \file 9_upload.py
|
||||||
# \brief Upload data to servers
|
# \brief Upload data to servers
|
||||||
# \date 2009-02-18 16:19GMT
|
# \date 2009-02-18 16:19GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Game data build pipeline.
|
# Game data build pipeline.
|
||||||
# Upload data to servers
|
# Upload data to servers
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2011 Kaetemi
|
# Copyright (C) 2011 Kaetemi
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("configuration")
|
sys.path.append("configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite_local import *
|
from buildsite_local import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from upload import *
|
from upload import *
|
||||||
except ImportError:
|
except ImportError:
|
||||||
# Not documenting this. Because we can.
|
# Not documenting this. Because we can.
|
||||||
printLog(log, "ERROR Upload not configured, bye.")
|
printLog(log, "ERROR Upload not configured, bye.")
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
sys.path.append(WorkspaceDirectory)
|
sys.path.append(WorkspaceDirectory)
|
||||||
from projects import *
|
from projects import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Upload data to servers")
|
printLog(log, "--- Upload data to servers")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
# Not documenting this. Because we can.
|
# Not documenting this. Because we can.
|
||||||
Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool)
|
Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool)
|
||||||
printLog(log, "PSFTP " + Psftp)
|
printLog(log, "PSFTP " + Psftp)
|
||||||
|
|
||||||
def downloadVersionTag(server, user, sshkey, dir):
|
def downloadVersionTag(server, user, sshkey, dir):
|
||||||
if os.path.isfile("upload.tag"):
|
if os.path.isfile("upload.tag"):
|
||||||
os.remove("upload.tag")
|
os.remove("upload.tag")
|
||||||
if os.path.isfile("upload.batch"):
|
if os.path.isfile("upload.batch"):
|
||||||
os.remove("upload.batch")
|
os.remove("upload.batch")
|
||||||
ub = open("upload.batch", "w")
|
ub = open("upload.batch", "w")
|
||||||
ub.write("cd " + dir + "\n")
|
ub.write("cd " + dir + "\n")
|
||||||
ub.write("get upload.tag upload.tag\n")
|
ub.write("get upload.tag upload.tag\n")
|
||||||
ub.write("quit\n")
|
ub.write("quit\n")
|
||||||
ub.close()
|
ub.close()
|
||||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||||
os.remove("upload.batch")
|
os.remove("upload.batch")
|
||||||
if os.path.isfile("upload.tag"):
|
if os.path.isfile("upload.tag"):
|
||||||
ft = open("upload.tag")
|
ft = open("upload.tag")
|
||||||
result = float(ft.read()) # float, really
|
result = float(ft.read()) # float, really
|
||||||
ft.close()
|
ft.close()
|
||||||
os.remove("upload.tag")
|
os.remove("upload.tag")
|
||||||
printLog(log, "INFO Upload tag is " + str(result))
|
printLog(log, "INFO Upload tag is " + str(result))
|
||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
printLog(log, "WARNING Upload tag not found, uploading everything")
|
printLog(log, "WARNING Upload tag not found, uploading everything")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def isDirectoryNeeded(ft, dir):
|
def isDirectoryNeeded(ft, dir):
|
||||||
files = os.listdir(dir)
|
files = os.listdir(dir)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if isLegalFileName(fileName):
|
if isLegalFileName(fileName):
|
||||||
fileFull = dir + "/" + fileName
|
fileFull = dir + "/" + fileName
|
||||||
if os.path.isfile(fileFull):
|
if os.path.isfile(fileFull):
|
||||||
nftf = os.stat(fileFull).st_mtime
|
nftf = os.stat(fileFull).st_mtime
|
||||||
if nftf > ft:
|
if nftf > ft:
|
||||||
return True
|
return True
|
||||||
elif os.path.isdir(fileFull):
|
elif os.path.isdir(fileFull):
|
||||||
if isDirectoryNeeded(ft, fileFull):
|
if isDirectoryNeeded(ft, fileFull):
|
||||||
return True
|
return True
|
||||||
elif not os.path.isdir(fileFull):
|
elif not os.path.isdir(fileFull):
|
||||||
printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull)
|
printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def listDirectoryUpload(ft, ub, udb, dir):
|
def listDirectoryUpload(ft, ub, udb, dir):
|
||||||
nft = 0
|
nft = 0
|
||||||
files = os.listdir(dir)
|
files = os.listdir(dir)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if isLegalFileName(fileName):
|
if isLegalFileName(fileName):
|
||||||
fileFull = dir + "/" + fileName
|
fileFull = dir + "/" + fileName
|
||||||
if os.path.isfile(fileFull):
|
if os.path.isfile(fileFull):
|
||||||
nftf = os.stat(fileFull).st_mtime
|
nftf = os.stat(fileFull).st_mtime
|
||||||
if nftf > ft:
|
if nftf > ft:
|
||||||
ub.write("put " + fileFull + " " + fileName + "\n")
|
ub.write("put " + fileFull + " " + fileName + "\n")
|
||||||
if nftf > nft:
|
if nftf > nft:
|
||||||
nft = nftf
|
nft = nftf
|
||||||
elif os.path.isdir(fileFull):
|
elif os.path.isdir(fileFull):
|
||||||
if isDirectoryNeeded(ft, fileFull):
|
if isDirectoryNeeded(ft, fileFull):
|
||||||
udb.write("mkdir " + fileName + "\n")
|
udb.write("mkdir " + fileName + "\n")
|
||||||
ub.write("cd " + fileName + "\n")
|
ub.write("cd " + fileName + "\n")
|
||||||
udb.write("cd " + fileName + "\n")
|
udb.write("cd " + fileName + "\n")
|
||||||
nft2 = listDirectoryUpload(ft, ub, udb, fileFull)
|
nft2 = listDirectoryUpload(ft, ub, udb, fileFull)
|
||||||
if (nft2 > nft):
|
if (nft2 > nft):
|
||||||
nft = nft2
|
nft = nft2
|
||||||
ub.write("cd ..\n")
|
ub.write("cd ..\n")
|
||||||
udb.write("cd ..\n")
|
udb.write("cd ..\n")
|
||||||
elif not os.path.isdir(fileFull):
|
elif not os.path.isdir(fileFull):
|
||||||
printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull)
|
printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull)
|
||||||
return nft
|
return nft
|
||||||
|
|
||||||
def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd):
|
def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd):
|
||||||
ft = downloadVersionTag(server, user, sshkey, dir_to)
|
ft = downloadVersionTag(server, user, sshkey, dir_to)
|
||||||
if isDirectoryNeeded(ft, dir_from):
|
if isDirectoryNeeded(ft, dir_from):
|
||||||
if os.path.isfile("upload_dir.batch"):
|
if os.path.isfile("upload_dir.batch"):
|
||||||
os.remove("upload_dir.batch")
|
os.remove("upload_dir.batch")
|
||||||
if os.path.isfile("upload.batch"):
|
if os.path.isfile("upload.batch"):
|
||||||
os.remove("upload.batch")
|
os.remove("upload.batch")
|
||||||
udb = open("upload_dir.batch", "w")
|
udb = open("upload_dir.batch", "w")
|
||||||
udb.write("cd " + dir_to + "\n")
|
udb.write("cd " + dir_to + "\n")
|
||||||
ub = open("upload.batch", "w")
|
ub = open("upload.batch", "w")
|
||||||
ub.write("cd " + dir_to + "\n")
|
ub.write("cd " + dir_to + "\n")
|
||||||
for ac in addcmd:
|
for ac in addcmd:
|
||||||
ub.write(ac + "\n")
|
ub.write(ac + "\n")
|
||||||
ftn = listDirectoryUpload(ft, ub, udb, dir_from)
|
ftn = listDirectoryUpload(ft, ub, udb, dir_from)
|
||||||
if (ft > ftn):
|
if (ft > ftn):
|
||||||
ftn = ft
|
ftn = ft
|
||||||
nft = open("upload.tag", "w")
|
nft = open("upload.tag", "w")
|
||||||
nft.write(str(ftn))
|
nft.write(str(ftn))
|
||||||
nft.close()
|
nft.close()
|
||||||
ub.write("put upload.tag upload.tag\n")
|
ub.write("put upload.tag upload.tag\n")
|
||||||
ub.write("quit\n")
|
ub.write("quit\n")
|
||||||
ub.close()
|
ub.close()
|
||||||
udb.write("quit\n")
|
udb.write("quit\n")
|
||||||
udb.close()
|
udb.close()
|
||||||
subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ])
|
subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ])
|
||||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||||
os.remove("upload_dir.batch")
|
os.remove("upload_dir.batch")
|
||||||
os.remove("upload.batch")
|
os.remove("upload.batch")
|
||||||
os.remove("upload.tag")
|
os.remove("upload.tag")
|
||||||
else:
|
else:
|
||||||
printLog(log, "SKIP " + dir_to)
|
printLog(log, "SKIP " + dir_to)
|
||||||
|
|
||||||
printLog(log, ">>> Upload patch <<<")
|
printLog(log, ">>> Upload patch <<<")
|
||||||
for target in UploadPatch:
|
for target in UploadPatch:
|
||||||
uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ])
|
uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ])
|
||||||
|
|
||||||
printLog(log, ">>> Upload data_shard <<<")
|
printLog(log, ">>> Upload data_shard <<<")
|
||||||
for target in UploadShard:
|
for target in UploadShard:
|
||||||
uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ])
|
uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ])
|
||||||
|
|
||||||
printLog(log, ">>> Upload data_common <<<")
|
printLog(log, ">>> Upload data_common <<<")
|
||||||
for target in UploadCommon:
|
for target in UploadCommon:
|
||||||
uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ])
|
uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ])
|
||||||
|
|
||||||
printLog(log, ">>> Upload data_leveldesign/leveldesign <<<")
|
printLog(log, ">>> Upload data_leveldesign/leveldesign <<<")
|
||||||
for target in UploadLeveldesign:
|
for target in UploadLeveldesign:
|
||||||
uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ])
|
uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ])
|
||||||
|
|
||||||
printLog(log, ">>> Upload data_leveldesign/primitives <<<")
|
printLog(log, ">>> Upload data_leveldesign/primitives <<<")
|
||||||
for target in UploadPrimitives:
|
for target in UploadPrimitives:
|
||||||
uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ])
|
uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ])
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("9_upload.log"):
|
if os.path.isfile("9_upload.log"):
|
||||||
os.remove("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.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_upload.log")
|
||||||
shutil.move("log.log", "9_upload.log")
|
shutil.move("log.log", "9_upload.log")
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue