SDK Multiplataforma en C logo

SDK Multiplataforma en C

Compilar NAppGUI

❮ Anterior
Siguiente ❯

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 de CMAKE_GENERATOR o uno por defecto.
  • -S: Directorio donde se encuentra el archivo CMakeLists.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 o C:/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
❮ Anterior
Siguiente ❯