Esta plantilla de repositorio debería permitir un inicio rápido y sin complicaciones de tu próximo proyecto de SFML utilizando CMake. Gracias a la naturaleza de plantillas de GitHub, puedes bifurcar este repositorio sin heredar su historial de Git.
La plantilla comienza siendo muy básica, pero podría recibir características adicionales con el tiempo:
- Script básico de CMake para construir tu proyecto y enlazar SFML en cualquier sistema operativo.
- Script básico de GitHub Actions para todas las plataformas principales.
-
Sigue las instrucciones anteriores sobre cómo usar la función de plantilla de proyectos de GitHub para crear tu propio proyecto.
-
Abre CMakeLists.txt. Renombra el proyecto y el ejecutable con el nombre que desees. Los nombres del proyecto y del ejecutable no tienen que coincidir.
-
Si usas Linux, instala las dependencias de SFML usando el gestor de paquetes de tu sistema. En Ubuntu y otras distribuciones basadas en Debian, puedes usar los siguientes comandos:
sudo apt update sudo apt install \ libxrandr-dev \ libxcursor-dev \ libudev-dev \ libfreetype-dev \ libopenal-dev \ libflac-dev \ libvorbis-dev \ libgl1-mesa-dev \ libegl1-mesa-dev
-
Configura y construye tu proyecto. La mayoría de los IDE populares admiten proyectos de CMake con muy poco esfuerzo de tu parte.
- VS Code a través de la extensión CMake
- Visual Studio
- CLion
- Qt Creator
Usar CMake desde la línea de comandos también es directo.
Para un generador de configuración única (típicamente el caso en Linux y macOS):
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release cmake --build build
Para un generador de configuración múltiple (típicamente el caso en Windows):
cmake -S . -B build cmake --build build --config Release
-
¡Disfruta!
SFML se encuentra a través del módulo FetchContent de CMake. FetchContent descarga automáticamente SFML desde GitHub y lo construye junto con tu propio código. Más allá de la conveniencia de no tener que instalar SFML tú mismo, esto garantiza la compatibilidad ABI y simplifica cosas como especificar bibliotecas estáticas versus compartidas.
Modificar la versión de SFML que deseas es tan fácil como cambiar el argumento GIT_TAG
. Actualmente utiliza la última versión en desarrollo de SFML 2 a través de la etiqueta 2.6.x
. Si te sientes aventurero y quieres probar SFML 3, usa la etiqueta master
. ¡Ten cuidado, esto requiere cambiar tu código para adaptarlo a la API modificada! Las amables personas en la comunidad de SFML pueden ayudarte con esa transición y los errores que puedas encontrar en el camino.
Modificar opciones de CMake agregándolas como parámetros de configuración (con una bandera -D
) o modificando el contenido de CMakeCache.txt y reconstruyendo.
Por defecto, SFML construye bibliotecas compartidas y este valor por defecto se hereda en tu proyecto. La opción BUILD_SHARED_LIBS
de CMake te permite elegir bibliotecas estáticas o compartidas para todo el proyecto.
Consulta la variedad de opciones CMAKE_<LANG>_COMPILER
. En particular, querrás modificar CMAKE_CXX_COMPILER
para que apunte al compilador de C++ que deseas utilizar.
CMake abstrae los flags de optimización específicos a través de la opción CMAKE_BUILD_TYPE
. Por defecto, este proyecto recomienda compilaciones Release
que habilitan optimizaciones. Otros tipos de compilación incluyen compilaciones Debug
que habilitan símbolos de depuración pero deshabilitan las optimizaciones. Si estás utilizando un generador de configuración múltiple (como suele ser el caso en Windows), puedes modificar la opción CMAKE_CONFIGURATION_TYPES
.
Si bien CMake intentará seleccionar un generador adecuado por defecto, algunos sistemas ofrecen una variedad de generadores para elegir. Ubuntu, por ejemplo, ofrece Makefiles y Ninja como dos opciones potenciales. Para obtener una lista de generadores, haz clic aquí. Para modificar el generador que estás utilizando, debes reconfigurar tu proyecto proporcionando una bandera -G
con un valor correspondiente al generador que deseas. No puedes simplemente modificar una entrada en el archivo CMakeCache.txt a diferencia de las opciones anteriores. Luego puedes reconstruir tu proyecto con este nuevo generador.
Aquí tienes algunos recursos útiles si deseas aprender más sobre CMake:
- Cómo Usar CMake Sin el Dolor Agonizante - Parte 1
- Cómo Usar CMake Sin el Dolor Agonizante - Parte 2
- Serie de YouTube Mejor CMake por Jefferon Amstutz
El código fuente tiene licencia dual bajo Dominio Público y MIT, elige la que prefieras.