Cómo compilar la pizarra en windows

En este manual describo cómo compilar la pizarra en y para el sistema operativo windows 10. Pasos similares pueden usarse para compilar otras aplicaciones desarrolladas en rust con gtk para windows 10.

Lo escribí porque literalmente tuve que intentar este proceso (bajita la mano) un centenar de veces hasta que funcionó. Ojalá a alguien allá afuera le sea de utilidad.

Ingredientes

  1. Instalar windows. Se puede encontrar la ISO aquí.
  2. Instalar msys2. En la página hay instrucciones adicionales que seguir.
  3. Instalar python 3.6 (es la versión mencionada en https://github.com/wingtk/gvsbuild.git). Aquí hay que hacer una instalación personalizada y especificar que se instale en C:\Python36. La instalación debe ser para todos los usuarios y añadir python al PATH.
  4. Instalar git, especificar que se añada git al PATH.
  5. Instalar Visual Studio. Solamente seleccioné los componentes que vienen activados por defecto al seleccionar la opción de Herramientas de C++, lo cual me dio una descarga de ~7.8 Gb.
  6. Instalar rust. Lo que hice fue visitar https://rustup.rs y descargar el archivo rustup-init.exe y ejecutarlo. Usé las opciones por defecto. Este paso debe realizarse estrictamente después de la instalación de visual studio pues esta es requerida para instalar rust. Instaló el host triple: x86_64-pc-windows-msvc.

Instrucciones

Ahora lo que sigue es compilar GTK alv. Esto es necesario para poder enlazar las dependencias que tiene la pizarra con gtk. Este comando va a tomar algún tiempo, déjalo corriendo y ve a ver la trilogía del señor de los anillos versión para coleccionistas. La compilación necesita de la red y he notado que en ocasiones pareciera detenerse, si eso pasa basta con darle <Enter> a la consola en la que está corriendo para que continúe.

A partir de aquí todo lo ejecuté en un powershell.

git clone https://github.com/wingtk/gvsbuild.git C:\gtk-build\gvsbuild
cd C:\gtk-build\gvsbuild
python .\build.py build -p=x64 --vs-ver=16 --msys-dir=C:\msys64 -k --enable-gi gtk3 gdk-pixbuf librsvg adwaita-icon-theme

Hecho esto podemos proceder a clonar el repositorio de la pizarra en algún lugar y a compilarlo. Esto ya debe ser fácil de hacer:

git clone --recurse-submodules https://gitlab.com/categulario/pizarra-gtk.git
cd pizarra-gtk
$Env:PATH += ";C:\gtk-build\gtk\x64\release\bin"
cargo run --release

Si llegaste hasta aquí entonces debes ver una bonita ventana más o menos funcional de la pizarra en windows.

Instalador

  1. Primero hay que habilitar .Net Framework 3.5. Se puede hacer en Configuraciones > Aplicaciones > Aplicaciones y Características > Características opcionales > Más características de windows y seleccionar el checkbox de .Net Framework 3.5.
  2. Descargar wix. Yo usé la versión 3.11.2.

Será necesario instalar cargo-wix la primera vez:

cargo install cargo-wix

Y ahora puedes construir el instalador:

cargo wix --nocapture

Lo puedes encontrar dentro de la carpeta target/wix.

Listo!

Para repetir

Obviamente cuando ya está hecho el setup no es necesario repetir todos los pasos, basta con esto:

$Env:PATH += ";C:\gtk-build\gtk\x64\release\bin"
cargo build --release
cargo wix --nocapture