SDK Multiplataforma en C logo

SDK Multiplataforma en C

Integración con GitHub

❮ Anterior
Siguiente ❯

En un entorno de trabajo multiplataforma, nuestro código se va a ir moviendo entre diferentes máquinas y compiladores, lo que hace casi imprescindible utilizar un sistema de control de versiones para automatizar la tarea. A día de hoy existen varias soluciones y multitud de portales web que nos permiten alojar nuestros proyectos. Nos centraremos aquí en el tándem Git/GitHub y veremos como sincronizar nuestros repositorios privados con el de NAppGUI con el fin de contar siempre con la última versión publicada del SDK.

Si prefieres no utilizar Git, puedes saltar directamente al apartado Instalación manual. Si utilizas Git pero no GitHub, te servirá como recordatorio todo lo que veamos aquí cambiando, claro está, las URL de los repositorios remotos.

1. Crear un repositorio

El primer paso es crear un nuevo repositorio para alojar tus proyectos. Accede a tu cuenta GitHub y hazlo, es sencillo. Si lo defines como Private solo tendrán acceso a él las personas que tú indiques. Por el momento no añadas el README, ni .gitignore ni licencia (Figura 1). Tras aceptar, GitHub te mostrará la URL de tu repositorio (Figura 2), que necesitaremos posteriormente para enlazar la máquina local.

Página de creación de repositorios en GitHub.
Figura 1: Creación de un nuevo repositorio en GitHub.
URL mostrada por GitHub tras crear un nuevo repositorio.
Figura 2: Url del repositorio recién creado.

2. Subir tu proyecto a GitHub

Si has seguido los pasos de Inicio rápido y Crear nueva aplicación ahora tendrás en tu máquina Windows una carpeta C:\nappgui_sdk con tu primera aplicación MyNewApp y varios ejemplos que vienen "de serie" con el SDK. Para empezar, comprueba el estado de tu repositorio local con git status.

C:\nappgui_sdk
 
git status

On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   src/CMakeLists.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        src/myapp/

no changes added to commit (use "git add" and/or "git commit -a")

Lo que indica que has modificado CMakeLists.txt y que existe una carpeta (src/myapp del nuevo proyecto) que todavía no está bajo control de versiones. Si, efectivamente, al hacer git clone creaste una copia local del repositorio de NAppGUI por lo que desde el primer momento tienes tu proyecto auditado por Git. Lo que debes hacer ahora es añadir un vínculo con el repositorio de GitHub que acabas de crear. Para ello deberás utilizar el comando git remote.

C:\nappgui_sdk
 
git remote add myrepo https://github.com/your_user/your_repo.git

En este momento tu carpeta local tiene dos conexiones con repositorios remotos (Figura 3): La primera (denominada origin) con NAppGUI fruto del git clone y la segunda (myrepo) con tu propio repositorio, que aún está vacío. Lo puedes ver con git remote -v

C:\nappgui_sdk
 
git remote -v

myrepo  https://github.com/your_user/your_repo.git (fetch)
myrepo  https://github.com/your_user/your_repo.git (push)
origin  https://github.com/frang75/nappgui.git (fetch)
origin  https://github.com/frang75/nappgui.git (push)
Esquema de conexiones con repositorios GitHub.
Figura 3: Conexiones remotas de tu máquina principal (Windows).

Pues ahora, tan solo tienes que añadir los nuevos cambios al repositorio local:

C:\nappgui_sdk
 
git add .
git commit -m "MyNewApp first version"

[master 536bb09] MyNewApp first version
 9 files changed, 92 insertions(+)
 create mode 100644 src/myapp/CMakeLists.txt
 create mode 100644 src/myapp/mynewapp.c
 create mode 100644 src/myapp/res/banner.bmp
 create mode 100644 src/myapp/res/license.txt
 create mode 100644 src/myapp/res/logo.icns
 create mode 100644 src/myapp/res/logo256.ico
 create mode 100644 src/myapp/res/logo48.ico
 create mode 100644 src/myapp/res/pack.txt

Y subirlos a tu GitHub

C:\nappgui_sdk
 
git push myrepo

Enumerating objects: 2525, done.
Counting objects: 100% (2525/2525), done.
Delta compression using up to 8 threads.
Compressing objects: 100% (1097/1097), done.
Writing objects: 100% (2525/2525), 49.37 MiB | 1.31 MiB/s, done.
Total 2525 (delta 1356), reused 2517 (delta 1353)
remote: Resolving deltas: 100% (1356/1356), done.
To https://github.com/frang75/test2.git
 * [new branch]      master -> master

Si accedes a tu repositorio desde la Web de GitHub, verás que ya tienes tu proyecto a buen recaudo (Figura 4).

Estado de un repositorio GitHub, visto desde la interfaz web.
Figura 4: Tu copia local, ya alojada en GitHub.
El repositorio de NAppGUI es de solo lectura. Cualquier cambio que intentes publicar en él git push origin será rechazado.

3. Actualizar las copias de trabajo

Como tu nuevo repositorio ya contiene el proyecto y todo lo necesario para que compile en múltiples plataformas, puedes clonarlo desde cualquier máquina de tu red, bien sea un PC-Windows, macOS o PC-Linux.

Nueva máquina
 
git clone https://github.com/your_user/your_repo.git

No es necesario que todas las máquinas de tu red conserven una referencia remota con NAppGUI. Puedes mantener el vínculo en la máquina Windows para actualizar el SDK de forma cómoda. Las demás obtendrán los cambios desde tu repositorio privado. En este momento, cada máquina de tu red puede subir cambios al repositorio, de forma similar a la vista en la sección anterior:

Nueva máquina
 
git add .
git commit -m "New changes in project"
git push

Y para actualizar los cambios realizados por otros compañeros, utilizará git pull

Nueva máquina
 
git pull
Es muy importante que vuelvas a ejecutar CMake tras actualizar la copia local de cada máquina. Es posible que otros compañeros hayan añadido archivos, lo que obliga a recomputar la solución.

4. Actualizar el SDK NAppGUI

El repositorio de NAppGUI se está actualizando constantemente con nuevas funcionalidades y corrección de errores. Si quieres mantener tu proyecto a la última, puedes actualizar periódicamente:

C:\nappgui_sdk>
 
git pull origin
git push myrepo

Que actualiza desde NAppGUI y, posteriormente, lo sube a tu repositorio privado para que todas las máquinas tengan acceso a los cambios.


5. Instalación manual

En el caso que no quieras utilizar Git, no tener ningún vínculo con el repositorio de NAppGUI o eliminar archivos innecesarios podrás instalar el SDK de forma manual, siguiendo estos sencillos pasos:

  • Descargar el .ZIP del SDK desde la sección Download de nappgui.com. Contiene la misma estructura de directorios.
  • Puedes eliminar el README.md, si está incluido en el paquete.
  • Si quieres eliminar los proyectos de ejemplo, borra las carpetas /src/demo y /src/howto. Luego abre /src/CMakeLists.txt y elimina todas las líneas debajo del # NAppGUI Sources, que son las encargadas de generar las aplicaciones de ejemplo.

Y para actualizar el SDK una vez instalado:

  • Vuelve a descargar el .ZIP de la nueva versión y descomprímelo en una carpeta aparte.
  • Sustituye completamente las carpetas /inc, /lib y /prj de tu copia de trabajo por las del paquete nuevo.
  • Abre /src/CMakeLists.txt en tu copia local y sustituye las líneas bajo # NAppGUI Libraries por las de la nueva versión. Es muy probable que no hayan cambiado, pero compruébalo.
  • Vuelve a ejecutar CMake para que integre todos los cambios en tu solución.
❮ Anterior
Siguiente ❯