Compilar NAppGUI
En Inicio rápido ya vimos como compilar y ejecutar los ejemplos a partir del código fuente. Ahora nos enfocaremos en la instalación del SDK con el fin de empezar a crear nuestras propias aplicaciones. Sigue estos pasos para descargar, compilar e instalar la versión de enlace estático de las librerías.
|
git clone --depth 1 https://github.com/frang75/nappgui_src.git cd nappgui_src // Windows cmake -S . -B build -DNAPPGUI_DEMO=NO cmake --build build --config Release -j 4 cmake --install build --config Release --prefix C:/nappgui // macOS cmake -G Xcode -S . -B build -DNAPPGUI_DEMO=NO cmake --build build --config Release -j 4 cmake --install build --config Release --prefix /usr/local/nappgui // Linux cmake -S . -B build -DCMAKE_BUILD_TYPE=Release cmake --build build -j 4 cmake --install build --config Release --prefix /usr/local/nappgui |
Si prefieres generar NAppGUI en modo de enlace dinámico (.dll, .so, .dylib), sigue estas indicaciones.
|
git clone --depth 1 https://github.com/frang75/nappgui_src.git cd nappgui_src // Windows cmake -S . -B build -DNAPPGUI_DEMO=NO -DNAPPGUI_SHARED=YES cmake --build build --config Release -j 4 cmake --install build --config Release --prefix C:/nappgui // macOS cmake -G Xcode -S . -B build -DNAPPGUI_DEMO=NO -DNAPPGUI_SHARED=YES cmake --build build --config Release -j 4 cmake --install build --config Release --prefix /usr/local/nappgui // Linux cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DNAPPGUI_SHARED=YES cmake --build build -j 4 cmake --install build --config Release --prefix /usr/local/nappgui |
Si utilizas NAppGUi en modo DLL deberás asegurar que tus futuras aplicaciones encuentren las librerías, actualizando la variable PATH
de cada sistema.
- En Windows, añade a la variable de entorno
PATH
el directorio/bin
de la instalación. P.e.C:\nappgui\bin
. - En Linux:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH$:/usr/local/nappgui/bin
. - En macOS:
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH$:/usr/local/nappgui/bin
.
1. Opciones de configuración
Inicialmente, CMake debe preparar los proyectos de compilación. En Generadores, compiladores e IDEs dispondrás de información más exhaustiva sobre las particularidades de cada plataforma.
|
cmake -G [Generator] -S [SourceDir] -B [BuildDir] [Options] |
-G
: Generadores CMake. Si se omite, se utilizará el valor deCMAKE_GENERATOR
o uno por defecto.-S
: Directorio donde se encuentra el archivoCMakeLists.txt
de NAppGUI.-B
: Directorio donde se generarán los proyectos de compilación y binarios.-DNAPPGUI_DEMO=NO
: No genera las aplicaciones de ejemplo. Tan solo las librerías esenciales del SDK.-DCMAKE_BUILD_TYPE=Release
: En generadores mono-configuración, pe. Unix Makefiles, configura para compilar en modo release. Admite también Debug (por defecto).-DNAPPGUI_SHARED=YES
: Genera librerías de enlace dinámico (.dll, .so, .dylib), en lugar de enlace estático (por defecto).
2. Opciones de compilación
Una vez generados los scripts en el paso anterior, lanzamos la compilación mediante CMake.
|
cmake --build [BuildDir] --config [Debug|Release] -j [NumProcs] |
--build
: Directorio donde se encuentran los proyectos de compilación (parámetro-B
de la configuración).--config
: En generadores multi-configuración, pe. Visual Studio, indica que configuración compilar (Debug o Release).-j
: Número de procesos o hilos concurrentes de compilación.
Tras la compilación tendremos en [BuildDir]/[Debug|Release]/bin
los ejecutables y librerías dinámicas. En /lib
las librerías estáticas.
3. Empaquetado e instalación
Tras la compilación empaquetamos los binarios y cabeceras con el fin de tenerlos disponibles a la hora de crear nuestras propias aplicaciones.
|
cmake --install [BuildDir] --config [Debug|Release] --prefix [PackagePath] |
--install
: Directorio donde se encuentran los binarios (parámetro-B
de la configuración).--config
: Configuración a empaquetar (Debug o Release).--prefix
: Directorio destino de la instalación. Si se omite, CMake utilizará los directorios de sistema por defecto:/usr/local
en UNIX oC:/Program Files/${PROJECT_NAME}
en Windows.
Para instalar en los directorios de sistema (sin el --prefix
), es posible que tengamos que ejecutar cmake --install en modo administrador.
En la ruta de destino tendremos esta estructura de archivos y directorios:
|
nappgui ├── bin │ ├── nrc ├── inc │ ├── core │ │ ├── array.h │ │ ├── arrpt.h │ │ ├── ... │ ├── draw2d │ │ ├── color.h │ │ ├── dctx.h │ │ ├── ... │ ├── geom2d │ │ ├── box2d.h │ │ ├── box2d.hpp │ │ ├── ... │ ├── gui │ │ ├── button.h │ │ ├── cell.h │ │ ├── ... │ ├── inet │ │ ├── base64.h │ │ ├── httpreq.h │ │ ├── ... │ ├── nappgui.h │ ├── osapp │ │ ├── osapp.def │ │ ├── osapp.h │ │ ├── ... │ ├── osbs │ │ ├── bfile.h │ │ ├── bmutex.h │ │ ├── ... │ ├── osgui │ │ ├── osbutton.h │ │ ├── oscombo.h │ │ ├── ... │ ├── sewer │ │ ├── arch.hxx │ │ ├── blib.h │ │ ├── ... ├── lib │ ├── libcore.a │ ├── libdraw2d.a │ ├── libgeom2d.a │ ├── libgui.a │ ├── libinet.a │ ├── libosapp.a │ ├── libosbs.a │ ├── libosgui.a │ ├── libsewer.a └── prj ├── CMakeTarget.cmake ├── ... └── version.txt |