Gidrek

Compilar Raylib en macOS desde el código fuente

Vamos a instalar raylib en mac desde los repositorios, así vas a poder tener el código más actualizado si es no lo quieres instalar desde homebrew, otra ventaja es que al instalar desde el repositorio puedes pasarle los parámetros que deseses por si quieres usar SDL o el nuevo render por software u optimizarlo.

Estos parámetros lo puedes ver en la documentación, por ahora vamos a instalarlo con los parámetros más comunes, pero puedes experimentar con varias opciones.

Prerequisitos

Primero que nada, necesitamos las herramientas de Xcode para compilar, no es necesario que descargues XCode, pero si que instales las herramientas de Xcode Command Line Tool

xcode-select --install

Ahora, debemos descargar cmake, aunque lo más sencillo es hacerlo por medio de homebrew, que de igual manera nos va a servir para otras instalaciones, también podemos instalar raylib con homebrew, pero nosotros lo vamos a compilar por lo que ya te dije.

Si vamos a https://brew.sh/ nos indicará las instrucciones.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Una vez hecho esto, debemos agregar homebrew a nuestro path, así que editemos el archivo .zshrc , que puedes abrilo con vim: vim .zshrc u o tro editor que desees, ahí pon el siguiente export al final del documento.

export PATH=.:$HOME/.local/bin:/opt/homebrew/bin:/usr/local/bin:$PATH

Con esto agregamos al path los directorios más comunes de código.

Reiniciamos la terminal para instalar cmake

brew install cmake

Ahora si, ya estamos listo para compilar raylib.

Compilar raylib

Primero debemos bajar el repositorio, en alguna carpeta que queramos.

git clone https://github.com/raysan5/raylib.git
cd raylib
git checkout 6.0   # cambia al tag que necesites o te puedes quedar en main

Ya que tenemos el código, vamos a compilar con cmake

mkdir build && cd build

cmake .. \
  -DCMAKE_BUILD_TYPE=Debug \
  -DBUILD_SHARED_LIBS=OFF \
  -DCMAKE_INSTALL_PREFIX=/usr/local

make -j$(sysctl -n hw.logicalcpu)
sudo make install

Primero creamos la carpeta de build y nos pasamos a la carpeta, hacemos el cmake con los parámetros que necesitamos, aquí podemos ver todas las opciones que le podemos pasar: https://github.com/raysan5/raylib/wiki/CMake-Build-Options

La parte que dice make -j$(sysctl -n hw.logicalcpu) es para compilar usando todos los cores de nuestra CPU y tarde menos, y al final instalamos en /usr/local que es el parámetro que le pasamos.

Esto instala en:

Archivo Destino
Header raylib.h /usr/local/include/
Librería libraylib.a /usr/local/lib/
CMake config /usr/local/lib/cmake/raylib/

Y podemos verificar la instalación

ls /usr/local/include/raylib.h
ls /usr/local/lib/libraylib.a

Probar raylib

Ahora vamos a hacer un pequeño demo para ver si lo que hemos hecho funciona. En esta ocasión usaré Visual Studio Code ya que es el más común.

Creamos un folder y ahí crea un archivo main.cpp y escribimos el código de los ejemplos de raylib.

#include <raylib.h>


int main()
{
    const int screenWidth = 800;
    const int screenHeight = 450;

    InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window");
    SetTargetFPS(60);

    while (!WindowShouldClose())
    {
        BeginDrawing();

        ClearBackground(RAYWHITE);
        DrawText("Congrats! You created your second window!", 190, 200, 20, LIGHTGRAY);

        EndDrawing();
    }

    CloseWindow();
}


Y creamos un archivo Makefile

build:
	clang -g -O0 main.cpp -o game \
		-lraylib \
		-framework OpenGL \
		-framework Cocoa \
		-framework IOKit \
		-framework CoreAudio \
		-framework CoreVideo

run:
	./game

clean:
	rm game

Esto nos va a ayudar a compilar. Ahora simplemente podemos hacer make en la terminal, en la carpeta donde está el código, y compilará el juego, y luego make run para correr el ejemplo, pero vamos a hacer uso de Visual Studio para que podamos usar el debugger y así hacer breakpoints y ver qué pasa con nuestro código.

Crea una carpeta llamado .vscode (no te olvides del punto) y crea dos archivos, uno llamado launch.json y otro tasks.json . En el archivo launch.json escribe lo siguiente:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/game",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb",
            "preLaunchTask": "build-debug"
        }

    ]
}

Y en el tasks.json vas poner lo siguiente

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build-debug",
            "type": "shell",
            "command": "make",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": ["$gcc"]
        }
    ]
}

Y ahora puedes correrlo con F5 , si quieres probar el debugger, pon un break point y así vas a ver si funciona.

Con todo esto, ya tienes listo para poder programar con raylib.