Files
manigraph/README.md
2024-10-02 13:10:08 -06:00

107 lines
3.1 KiB
Markdown

# Manigraph: Graficadora de variedades
Diaz Camacho Pedro Emilio
# Resumen
manigraph es un graficador interactiva de variedades que lee archivos binarios, con la información de
una variedad multidimensional y grafica esta variedad en una proyección tridimensional.
# Dependencias
Para poder compilar el proyecto hace falta los siguientes pro.
## Programas
- `cc`: Cualquier compilador de C.
- `git`: Gestor de dependencias. (Opcional)
- `make`: Herramienta para compilar automáticamente. (Opcional)
## Librerías
- `openGL`: A cross-platform API for rendering 2D and 3D graphics. (no incluida)
- `glfw`: A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input.
- `cglm`: Highly Optimized 2D / 3D Graphics Math (glm) for C.
### Linux
Para compilar `glfw` en linux hacen falta las siguientes librerías según el caso. (no incluidas)
- `x11`: libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel
- `wayland`: libwayland-dev libxkbcommon-dev wayland-protocols
# Codigo fuente
Para adquirir el código fuente de manigraph se puede usar git o descargar manualmente los
archivos zip.
## git via https
Usando git se necesitan ejecutar los siguientes comándos en la terminal.
```
git clone https://gitea.adles.top/software/manigraph.git
cd manigraph
git submodule update --init --recursive
```
## zip files
Alternativamente se puede descargar el código fuente en formato zip usando las siguientes
direcciones y acomodando manualmente las carpetas de `glfw` y `cglm` en `ext/`.
- [manigraph](https://gitea.adles.top/software/manigraph/archive/main.zip)
- [glfw](https://github.com/glfw/glfw/archive/refs/heads/master.zip)
- [cglm](https://github.com/recp/cglm/archive/refs/heads/master.zip)
# Compilación
Para compilar manualmente el proyecto se puede usar `make` o ejecutar los comandos manualmente
en el código fuente de `manigraph`.
## Make
Los siguientes comandos sirven para compilar `manigraph` deacuerdo al sistema operativo.
```
make windows
make linux-x11
make linux-wayland
make cocoa
```
## Manualmente
se pueden compilar el proyecto manualmente sin necesidad del programa `make`.
### GLFW
Si tienes problemas compilando `GLFW` puedes checar su página web oficial
explicando el tema: [Compiling GLFW](https://www.glfw.org/docs/3.3/compile.html).
#### Windows
```
cc -fPIC -shared -D_GLFW_WIN32 -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o glfw.dll
```
#### Linux
```
cc -fPIC -shared -D_GLFW_X11 -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o libglfw.so
cc -fPIC -shared -D_GLFW_WAYLAND -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o libglfw.so
```
#### Mac
```
cc -fPIC -shared -D_GLFW_COCOA -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o libglfw.so
```
### Manigraph
#### Windows
```
cc -L. -lglfw -lGL -I ext/cglm/include/ -I ext/glfw/include/ src/*.c -o manigraph.exe
```
#### Linux
```
cc -L. -lglfw -lGL -I ext/cglm/include/ -I ext/glfw/include/ src/*.c -o manigraph
```
#### Mac
```
cc -L. -lglfw -framework GL -I ext/cglm/include/ -I ext/glfw/include/ src/*.c -o manigraph
```
# Ejecutar
En linux se puede ejecutar el programa sin instalar la llibreria de glfw usando:
## make
```
make run-linux
```
## manual
```
LD_LIBRARY_PATH=. ./manigraph
```