[Buildroot] [PATCH v2] add QWT library: Qt Widgets for Technical Applications

Peter Korsgaard jacmet at uclibc.org
Sun Aug 7 07:36:41 UTC 2011


>>>>> "Ivan" == Ivan Kuten <ivan.kuten at promwad.com> writes:

Hi,

 Ivan> Signed-off-by: Ivan Kuten <ivan.kuten at promwad.com>
 Ivan> ---
 Ivan> :100644 100644 7112e05... e442e09... M	package/Config.in
 Ivan> :000000 100644 0000000... c927a7b... A	package/qwt/Config.in
 Ivan> :000000 100644 0000000... 2f25cc4... A	package/qwt/qwt.mk
 Ivan>  package/Config.in     |    1 +
 Ivan>  package/qwt/Config.in |   10 ++++++++++
 Ivan>  package/qwt/qwt.mk    |   44 ++++++++++++++++++++++++++++++++++++++++++++
 Ivan>  3 files changed, 55 insertions(+), 0 deletions(-)

 Ivan> diff --git a/package/Config.in b/package/Config.in
 Ivan> index 7112e05..e442e09 100644
 Ivan> --- a/package/Config.in
 Ivan> +++ b/package/Config.in
 Ivan> @@ -293,6 +293,7 @@ source "package/libsvgtiny/Config.in"
 Ivan>  source "package/libungif/Config.in"
 Ivan>  source "package/pango/Config.in"
 Ivan>  source "package/pixman/Config.in"
 Ivan> +source "package/qwt/Config.in"

Sorry, I didn't got to reply on Thomas' mail before you reposted, but I
prefer to keep this together with qt as it is very qt dependent (just
like we do for all the xorg stuff).

 Ivan>  source "package/tiff/Config.in"
 Ivan>  source "package/webkit/Config.in"
 Ivan>  endmenu
 Ivan> diff --git a/package/qwt/Config.in b/package/qwt/Config.in
 Ivan> new file mode 100644
 Ivan> index 0000000..c927a7b
 Ivan> --- /dev/null
 Ivan> +++ b/package/qwt/Config.in
 Ivan> @@ -0,0 +1,10 @@
 Ivan> +comment "Qwt requires Qt to be installed"
 Ivan> +	depends on !BR2_PACKAGE_QT
 Ivan> +

If you put it right after qt you can drop this.


 Ivan> +menuconfig BR2_PACKAGE_QWT

should be config.

 Ivan> +	bool "qwt"
 Ivan> +	depends on BR2_PACKAGE_QT
 Ivan> +	help
 Ivan> +	  Qt Widgets for Technical Applications
 Ivan> +
 Ivan> +	  http://qwt.sourceforge.net/

I don't know anything about qwt, but a colleague of mine did a qwt
package some time ago, which I haven't had time to cleanup and commit
yet, but he had options plot, widgets, svgitem and mathml. Some of these
require specific qt options to be enabled (like QT_SVG).

 Ivan> diff --git a/package/qwt/qwt.mk b/package/qwt/qwt.mk
 Ivan> new file mode 100644
 Ivan> index 0000000..2f25cc4
 Ivan> --- /dev/null
 Ivan> +++ b/package/qwt/qwt.mk
 Ivan> @@ -0,0 +1,44 @@
 Ivan> +#############################################################
 Ivan> +#
 Ivan> +# QWT
 Ivan> +#
 Ivan> +#############################################################
 Ivan> +QWT_VERSION = 6.0.0
 Ivan> +QWT_SOURCE = qwt-$(QWT_VERSION).tar.bz2
 Ivan> +QWT_SITE = https://sourceforge.net/projects/qwt/files/qwt/$(QWT_VERSION)/
 Ivan> +QWT_INSTALL_STAGING = YES
 Ivan> +QWT_DEPENDENCIES = qt
 Ivan> +QWT_CONFIG_FILE = qwt.pro

It seems you only use this variable once, so just drop it.

 Ivan> +
 Ivan> +define QWT_CONFIGURE_CMDS
 Ivan> +     $(QT_QMAKE) $(@D)/$(QWT_CONFIG_FILE)
 Ivan> +     $(SED) 's/+= QwtSvg/-= QwtSvg/' $(@D)/qwtconfig.pri
 Ivan> +     $(SED) 's/+= QwtDesigner/-= QwtDesigner/' $(@D)/qwtconfig.pri
 Ivan> +     $(SED) 's/+= QwtMathML/-= QwtMathML/' $(@D)/qwtconfig.pri
 Ivan> +endef

The other patch would also use the debug/shared library options of Qt to
build with/without debug / shared library.

FYI, here's his patch:

diff -urpN buildroot/package/qwt/Config.in buildroot-work/package/qwt/Config.in
--- buildroot/package/qwt/Config.in	1970-01-01 01:00:00.000000000 +0100
+++ buildroot-work/package/qwt/Config.in	2010-08-23 16:34:18.000000000 +0200
@@ -0,0 +1,65 @@
+menuconfig BR2_PACKAGE_QWT
+	bool "Qwt"
+	depends on BR2_PACKAGE_QT
+	help
+	  Qt widgets for technical applications
+
+	  http://qwt.sourceforge.net/
+
+if BR2_PACKAGE_QWT
+
+config BR2_PACKAGE_QWT_DEBUG
+	bool "Compile with debug support"
+	help
+	  If unsure, say N.
+
+choice
+	prompt "Library type"
+	default BR2_PACKAGE_QWT_STATIC if BR2_PACKAGE_QT_STATIC
+	default BR2_PACKAGE_QWT_SHARED if BR2_PACKAGE_QT_SHARED
+	help
+	  Selects the library type: Shared or Static
+
+config BR2_PACKAGE_QWT_SHARED
+	bool "Shared library"
+	help
+	  Create and use shared Qwt libraries.
+	  If you have multiple programs that depend on Qwt or intend to use
+	  plugins, say Y.
+
+config BR2_PACKAGE_QWT_STATIC
+	bool "Static Library"
+	help
+	  Create and use static Qwt libraries.
+	  If you don't have multiple programs on the target that depends on
+	  Qt, then this will save you quite some of storage space.
+	  If unsure, say Y.
+
+endchoice
+
+config BR2_PACKAGE_QWT_PLOT
+	bool "Plots"
+	help
+	  Includes all kinds of graph and plotting widgets.
+
+config BR2_PACKAGE_QWT_WIDGETS
+	bool "Widgets"
+	help
+	  Includes all kinds of add-on widgets such as dials, compasses,
+	  knobs, wheels, sliders, thermos, ...
+
+config BR2_PACKAGE_QWT_SVGITEM
+	bool "SVG Item"
+	select BR2_PACKAGE_QWT_PLOT
+	select BR2_PACKAGE_QT_XML
+	select BR2_PACKAGE_QT_SVG
+	help
+	  Add support to display svg images on the plot canvas.
+
+config BR2_PACKAGE_QWT_MATHML
+	bool "Math ML support"
+	select BR2_PACKAGE_QWT_PLOT
+	help
+	  Add support for MathML in Qwt.
+
+endif # BR2_PACKAGE_QWT
diff -urpN buildroot/package/qwt/qwt.mk buildroot-work/package/qwt/qwt.mk
--- buildroot/package/qwt/qwt.mk	1970-01-01 01:00:00.000000000 +0100
+++ buildroot-work/package/qwt/qwt.mk	2010-08-23 12:01:23.000000000 +0200
@@ -0,0 +1,105 @@
+######################################################################
+#
+# Qwt - Qt Widgets for Technical Application
+# http://qwt.sourceforge.net/
+######################################################################
+
+QWT_VERSION:=5.2.1
+QWT_SOURCE:=qwt-$(QWT_VERSION).tar.bz2
+QWT_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/project/qwt/qwt/$(QWT_VERSION)/
+QWT_CAT:=$(BZCAT)
+QWT_TARGET_DIR:=$(BUILD_DIR)/qwt-$(QWT_VERSION)/src
+
+QWT_CONFIGURE:=#empty
+
+
+# Configuration options
+ifeq ($(BR2_PACKAGE_QWT_DEBUG),y)
+QWT_CONFIGURE+= CONFIG+=debug
+endif
+
+ifeq ($(BR2_PACKAGE_QWT_SHARED),y)
+QWT_CONFIGURE+= CONFIG+=QwtDll
+endif
+
+ifeq ($(BR2_PACKAGE_QWT_PLOT),y)
+QWT_CONFIGURE += CONFIG+=QwtPlot
+endif
+
+ifeq ($(BR2_PACKAGE_QWT_WIDGETS),y)
+QWT_CONFIGURE += CONFIG+=QwtWidgets
+endif
+
+ifeq ($(BR2_PACKAGE_QWT_SVGITEM),y)
+QWT_CONFIGURE += CONFIG+=QwtSVGItem
+endif
+
+ifeq ($(BR2_PACKAGE_QWT_MATHML),y)
+QWT_CONFIGURE += CONFIG+=QwtMathML
+endif
+
+
+QWT_PROJECT_FILE:=$(QWT_TARGET_DIR)/src.pro
+QWT_QMAKE_SPEC:=$(QT_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QT_EMB_PLATFORM)-g++
+
+# Variable for other Qt applications to use
+QWT_QMAKE:=$(STAGING_DIR)/usr/bin/qmake
+
+
+$(DL_DIR)/$(QWT_SOURCE):
+	$(call DOWNLOAD,$(QWT_SITE),$(QWT_SOURCE))
+
+qwt-source: $(DL_DIR)/$(QWT_SOURCE)
+
+$(QWT_TARGET_DIR)/.unpacked: $(DL_DIR)/$(QWT_SOURCE)
+	$(QWT_CAT) $(DL_DIR)/$(QWT_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+	touch $@
+
+$(QWT_TARGET_DIR)/.configured: $(QWT_TARGET_DIR)/.unpacked
+	$(QWT_QMAKE) $(QWT_PROJECT_FILE) -spec $(QWT_QMAKE_SPEC) -r $(QWT_CONFIGURE) -o $(QWT_TARGET_DIR)/Makefile
+	touch $@
+
+$(QWT_TARGET_DIR)/.compiled: $(QWT_TARGET_DIR)/.configured
+	$(MAKE) -C $(QWT_TARGET_DIR)
+	touch $@
+
+$(QWT_TARGET_DIR)/.installed: $(QWT_TARGET_DIR)/.compiled
+	mkdir -p $(STAGING_DIR)/usr/include/qwt
+	cp -dpf $(QWT_TARGET_DIR)/*.h $(STAGING_DIR)/usr/include/qwt
+	touch $@
+
+$(STAGING_DIR)/usr/lib/libqwt.a: $(QWT_TARGET_DIR)/.installed
+	cp -dpf $(QWT_TARGET_DIR)/../lib/libqwt.a $(STAGING_DIR)/usr/lib
+
+$(TARGET_DIR)/usr/lib/libqwt.so: $(QWT_TARGET_DIR)/.installed
+	cp -dpf $(QWT_TARGET_DIR)/../lib/libqwt.so* $(STAGING_DIR)/usr/lib/
+	cp -dpf $(QWT_TARGET_DIR)/../lib/libqwt.so* $(TARGET_DIR)/usr/lib/
+	-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libqwt.so.*
+
+
+ifeq ($(BR2_PACKAGE_QWT_SHARED),y)
+qwt: $(TARGET_DIR)/usr/lib/libqwt.so
+else
+qwt: $(STAGING_DIR)/usr/lib/libqwt.a
+endif
+
+
+qwt-clean:
+	-$(MAKE) -C $(QWT_TARGET_DIR) clean
+	-rm -rf $(STAGING_DIR)/usr/include/qwt
+	-rm $(TARGET_DIR)/usr/lib/libqwt.so.*
+ifeq ($(BR2_PACKAGE_QWT_SHARED),y)
+	-rm $(TARGET_DIR)/usr/lib/libqwt.so.*
+endif
+
+qwt-dirclean:
+	rm -rf $(QWT_TARGET_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(BR2_PACKAGE_QWT),y)
+TARGETS+=qwt
+endif

-- 
Bye, Peter Korsgaard



More information about the buildroot mailing list