1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- // -*- mode:doc; -*-
- // vim: set syntax=asciidoc:
- === Infrastructure for QMake-based packages
- [[qmake-package-tutorial]]
- ==== +qmake-package+ tutorial
- First, let's see how to write a +.mk+ file for a QMake-based package, with
- an example :
- ------------------------
- 01: ################################################################################
- 02: #
- 03: # libfoo
- 04: #
- 05: ################################################################################
- 06:
- 07: LIBFOO_VERSION = 1.0
- 08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
- 09: LIBFOO_SITE = http://www.foosoftware.org/download
- 10: LIBFOO_CONF_OPTS = QT_CONFIG+=bar QT_CONFIG-=baz
- 11: LIBFOO_DEPENDENCIES = bar
- 12:
- 13: $(eval $(qmake-package))
- ------------------------
- On line 7, we declare the version of the package.
- On line 8 and 9, we declare the name of the tarball (xz-ed tarball
- recommended) and the location of the tarball on the Web. Buildroot
- will automatically download the tarball from this location.
- On line 10, we tell Buildroot what options to enable for libfoo.
- On line 11, we tell Buildroot the dependencies of libfoo.
- Finally, on line line 13, we invoke the +qmake-package+
- macro that generates all the Makefile rules that actually allows the
- package to be built.
- [[qmake-package-reference]]
- ==== +qmake-package+ reference
- The main macro of the QMake package infrastructure is +qmake-package+.
- It is similar to the +generic-package+ macro.
- Just like the generic infrastructure, the QMake infrastructure works
- by defining a number of variables before calling the +qmake-package+
- macro.
- All the package metadata information variables that exist in the
- xref:generic-package-reference[generic package infrastructure] also
- exist in the QMake infrastructure.
- A few additional variables, specific to the QMake infrastructure, can
- also be defined.
- * +LIBFOO_CONF_ENV+, to specify additional environment variables to
- pass to the +qmake+ script for the configuration step. By default, empty.
- * +LIBFOO_CONF_OPTS+, to specify additional options to pass to the
- +qmake+ script for the configuration step. By default, empty.
- * +LIBFOO_MAKE_ENV+, to specify additional environment variables to the
- +make+ command during the build and install steps. By default, empty.
- * +LIBFOO_MAKE_OPTS+, to specify additional targets to pass to the
- +make+ command during the build step. By default, empty.
- * +LIBFOO_INSTALL_STAGING_OPTS+, to specify additional targets to pass
- to the +make+ command during the staging installation step. By default,
- +install+.
- * +LIBFOO_INSTALL_TARGET_OPTS+, to specify additional targets to pass
- to the +make+ command during the target installation step. By default,
- +install+.
- * +LIBFOO_SYNC_QT_HEADERS+, to run syncqt.pl before qmake. Some packages
- need this to have a properly populated include directory before
- running the build.
|