README.md 6.12 KB
Newer Older
1
2
3
4
<div>
<center><h1>Maçon le l'espace</h1></center>
</div>

5
<div><center><a href="https://youtu.be/Bezg7UYlQkA?list=PLwg0gkr8hTmXBe0G7GkteWBA462lpuQYG
6
" target="_blank"><img src="http://img.youtube.com/vi/qBFl-uu-lHs/0.jpg"
7
8
 alt="wxCppPy démonstration" width="480" height="360" border="10" /></a></center></div>

9
## Présentation
10
11
12

Maçon de l'espace alias [Ma](https://framagit.org/Suryavarman/ma) est un projet écrit en c++ et python.

13
14
L'objectif est de créer un éditeur d'applications 3D simple qui permet d'interfacer différents moteurs 3D tel que Ogre3D
et Pand3D.
15

16
La version du projet en est encore au stade d'alpha. 
17

18
## Feuille de route
19

Pierre Pontier's avatar
Pierre Pontier committed
20
### Premier cycle:
21
22

- [x] ~~Via une interface C++, créer une communication entre wxWidgets C++ et wxPython.~~ [pybind11](https://github.com/pybind/pybind11)
Pierre Pontier's avatar
Pierre Pontier committed
23
- [x] ~~Créer les scriptes nécessaires pour installer correctement les dépendances~~ ( [CppClay](https://sourceforge.net/projects/cppclay/), [pybind11](https://github.com/pybind/pybind11), [wxWidgets3](http://wxwidgets.org/),  [wxPython4](https://github.com/wxWidgets/Phoenix), [Criterion](https://github.com/Snaipe/Criterion) ) ~~et l'environnement virtuel python.~~
Pierre Pontier's avatar
Pierre Pontier committed
24
- [x] ~~Créer une struture de données C++/Python.~~ [API::Item](https://framagit.org/Suryavarman/ma/-/blob/master/code/API/include/API/Item.h) /[APIPy::PyItem](https://framagit.org/Suryavarman/ma/-/blob/master/code/API_Py/src/PyItem.cpp)
25
26
27
28
- [ ] Mettre en place le gestionnaire de ressources.
- [ ] Mettre en place l'undo/redo.
- [ ] Mettre en place le système d'interface unique de rendu 3D avec [Ogre](https://www.ogre3d.org/), [Panda](https://www.panda3d.org/) et [Cycle](https://www.cycles-renderer.org/).
- [ ] Mettre en place la sauvegarde d'un projet Ma.
Pierre Pontier's avatar
Pierre Pontier committed
29
- [ ] Générer une application à partir d'un projet Ma.
Pierre Pontier's avatar
Pierre Pontier committed
30
- [ ] Mettre en place le Multi-langues [Application non anglaise](https://docs.wxwidgets.org/3.0/overview_nonenglish.html) / [wxConvAUto](https://docs.wxwidgets.org/3.0/classwx_conv_auto.html) [wxMBConv](https://docs.wxwidgets.org/3.0/classwx_m_b_conv.html) / [ISO/IEC 8859-15:1999](https://en.wikipedia.org/wiki/ISO/IEC_8859-15)
31
32
33
34
35
- [ ] Ne plus utiliser CppClay
- [ ] Installation pour Windows
- [ ] Installation pour MacOS
- [ ] Mettre en place l'écriture de scripts en C++.

Pierre Pontier's avatar
Pierre Pontier committed
36
### Second cycle:
37

38
- [ ] Mettre en place les tests unitaires python pour le projet API_Py
39
- [ ] Faire une belle interface
40
- [ ] Multi-thread
41
- [ ] Simplifier l'api python ex: root.m_Current.SetItem(item) deviendrait root.m_Current = item
42
43
- [ ] …

44
## Prérequis
45
46

- [CodeBlock](http://www.codeblocks.org/)
47
48
49
- [python 3](https://www.python.org/)
- [Ogre 3D](https://www.ogre3d.org/)
- [Panda 3D](https://www.panda3d.org/)
50

51
52
Vous trouverez la liste des dépendances en fonction de votre système 
(ubuntu ou mageia pour le moment)
53

54
`Ma/dependencies/dependencies_*.cfg`
55

56
##### Python
57

58
`pip install wget`
59

60
##### Linux:
61

62
63
64
65
66
67
`gtk-3.0`
`glib-2.0`
`pango-1.0`
`cairo`
`gdk-pixbuf-2.0`
`atk-1.0`
68

69
##### Mageia:
70

71
- `su`
72
73
74
- ```
  urpmi python3-pip lib64openssl-devel lib64freeglut-devel lib64freeglut3 lib64mesaegl1-devel lib64gstreamer1.0-devel lib64gtk+3_0 lib64gtk+3.0-devel lib64jpeg-devel lib64notify-devel lib64png-devel lib64sdl2.0-devel lib64sm-devel lib64tiff-devel lib64webkit2gtk4.0_37 lib64xtst-devel
  ```
75
76
77
78
  
  <!-- - `urpmi sslh` -->
  
  <!-- - `systemctl restart sslh.service` -->
79
80
- `exit`
- `pip3 install --user wget`
81

82
##### Ubuntu:
83
84

- `sudo apt install uuid-dev`
85

86
- `sudo pip3 install wget`
87

88
- `sudo apt install libssl-dev`
89

90
- WxPython dependencies
91
92
  
  ```
93
    dpkg-dev  
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
    build-essential
    python3.7-dev and libpython3.7-dev # use appropriate Python version here
    freeglut3-dev
    libgl1-mesa-dev
    libglu1-mesa-dev
    libgstreamer-plugins-base1.0-dev
    libgtk-3-dev
    libjpeg-dev
    libnotify-dev
    libpng-dev
    libsdl2-dev
    libsm-dev
    libtiff-dev
    libwebkit2gtk-4.0-dev
    libxtst-dev
109
  ```
110

111
## Installation
112

113
Dans le répertoire Ma/dependencies/ exécutez :
114
115
116
117
118
119
120

- `install_dependencies.py`
  
  et suivez les instructions. 
  
  Lors de la première phase, celle qui consiste à créer l'environnement python3, je recommande de choisir l'option : 

121
- Compiler les sources de python3.x (x >= 7).
122

123
124
- Compiler wxPython depuis le dépôt github.
  
125
  Une fois les dépendances installées:
126

127
- Editer/corriger le fichier `M`a/dependencies/dependencies.cfg`.
128

129
- Copier la librairie dynamique libpython3.xx.so.x.x dans le dossier `Ma/code/GUI`.
130

131
- Vous pouvez ouvrir le projet Codeblocks: `Ma/code/Maçon de l'espace` et le compiler.
132

133
## Quelques liens
134

135
- [c++11/14/17](https://fr.cppreference.com/w/cpp)
136

137
- [pybind11](https://github.com/pybind/pybind11)
138

139
- [CppClay](https://sourceforge.net/projects/cppclay/)
140

141
- [wxWidgets 3](http://wxwidgets.org/)
142

143
- [python 3](https://www.python.org/)
144

145
- [wxPython 4](https://github.com/wxWidgets/Phoenix)
146

147
- [CodeBlock](http://www.codeblocks.org/)
148

149
## Les erreurs à l'installation des dépendences
150
151

### pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
152

153
Essayer d'installer libssl ou openssll, sinon installer un environnement virtuel au lieu de recompiler python.
154

155
### Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(161, '[SSL: LIBRARY_HAS_NO_CIPHERS] library has no ciphers (_ssl.c:3014)'))': /simple/numpy/
156

157
158
159
Le système ne possède peut-être pas le service ssl d'activé. Vous pouvez essayer d'installer la librairie manquante et
le recompiler python ou de réienstaller l'environnement python mais cette fois ci au lieu de compiler python générer
un environnement virtuel de python.
160

161
### [Errno 2] No such file or directory: 'sip/cpp/_core.sbf'
162

163
164
165
166
167
Lors de la compilation le processus doit placer des fichiers dans le dossier sip. Si les sous dossiers de sip ne
contiennent que des fichiers «lisez-moi» alors sip n'a pas été généré. Peut être cela vient de la compilation de python,
où il aurait fallu le compiler avec l'option --enable-shared, si vous avez compiler python à l'aide du scipt
install_py_env.py l'option est activée. Le problème n'est donc pas lié à cette option de compliation de python.

168
169
170
### Plus d'informations:

[Mastodon](https://mamot.fr/@Suryavarman)