4 votos

Usar Makefile al compilar el complemento QGIS

Estoy tratando de aprender cómo crear plugins de QGIS (utilizando Erik Westra del libro la Construcción de Aplicaciones de Mapeo con QGIS), pero estoy atascado en cómo utilizar hacer y Makefile. Me estoy quedando esta en Windows.

He creado el siguiente fichero Makefile:

PLUGINNAME = geometryInfo
PY_FILES = __init__.py geometryInfo.py 
EXTRAS = metadata.txt icon.png
UI_FILES = 
RESOURCE_FILES = resources.py

default: compile

compile: $(UI_FILES) $(RESOURCE_FILES)

%.py : %.qrc
    pyrcc4 -o $@ $<

%.py : %.ui
    pyuic4 -o $@ $<  

deploy: compile
    mkdir -p $(HOME)/.qgis2/python/plugins/$(PLUGINNAME)
    cp -vf $(PY_FILES) $(HOME)/.qgis2/python/plugins/$(PLUGINNAME)
    cp -vf $(UI_FILES) $(HOME)/.qgis2/python/plugins/$(PLUGINNAME)
    cp -vf $(RESOURCE_FILES) $(HOME)/.qgis2/python/plugins/$(PLUGINNAME)
    cp -vf $(EXTRAS) $(HOME)/.qgis2/python/plugins/$(PLUGINNAME)

clean:
    rm $(UI_FILES) $(RESOURCE_FILES)

Westra del libro dice a 'teclear make implementar en la línea de comandos'. Me he dado cuenta que necesito descargar un 'hacer' solicitud de este, y de haber descargado GnuWin, y añadido a mi camino como C:\Program Files (x86)\GnuWin32\bin.

Pero esto arroja errores.

En primer lugar, puedo conseguir

pyrcc4 -o resources.py resources.qrc
process_begin: CreateProcess(NULL, pyrcc4 -o resources.py resources.qrc, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [resources.py] Error 2

No puedo superar esto si puedo crear resources.py manualmente (¿pero no es eso lo que el Makefile se debe hacer)?

Entonces, me sale:

mkdir -p /.qgis2/python/plugins/geometryInfo
The syntax of the command is incorrect.
make: *** [deploy] Error 1

No puedo superar que por el cambio de las barras alrededor de a \, y tomando -p (que Windows no reconoce). A continuación, se va a crear el directorio (pero sólo una vez - si lo intento una segunda vez, se queja de que el directorio ya existe).

La siguiente línea es cp -vf $(PY_FILES) $(HOME)/.qgis2/python/plugins/$(PLUGINNAME). No le gusta que ... quizás debería cambiar el código para Windows como 'copia' en lugar de 'cp'?

Pero si estoy completamente re-escrito en el fichero Makefile y ejecución de la mitad de los procesos de forma manual, no puedo dejar de pensar que estoy en el camino equivocado.

Cómo debo correr el hacer deploy de comandos cuando se utiliza Windows?

1voto

Martin Puntos 511

Por lo que parece funciona si:

  1. Descargar Hacer 3.81 de GnuWin
  2. Establecer una ruta para Hacer en mis variables de entorno
  3. Descargar Cygwin, y el uso que se ejecute hacer (Gracias, iant)
  4. Eliminar todas las referencias a UI_FILES de mi Makefile, porque me había dejado UI_FILES en blanco y que estaba causando errores (falta el archivo de destino operando después de 'C:/Users/Steve/.qgis2/python/plugins/geometryInfo')
  5. Introduzca la ruta de acceso completa a pyrcc4 en mi Makefile

El Makefile es ahora:

PLUGINNAME = geometryInfo
PY_FILES = __init__.py geometryInfo.py 
EXTRAS = metadata.txt icon.png
RESOURCE_FILES = resources.py
TARGET = C:/Users/Steve/.qgis2/python/plugins/$(PLUGINNAME)

default: compile

compile: $(RESOURCE_FILES)

%.py : %.qrc
    C:/OSGeo4W64/bin/pyrcc4 -o $@ $<

deploy: compile
    mkdir -p $(TARGET)
    cp -vf $(PY_FILES) $(TARGET)
    cp -vf $(RESOURCE_FILES) $(TARGET)
    cp -vf $(EXTRAS) $(TARGET)

clean:
    rm $(RESOURCE_FILES)

No puedo dejar de pensar que me he excesivamente complicado esto de alguna manera!

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X