[Buildroot] [PATCH 1/1] qt5/qt53d: new package
Peter Seiderer
ps.report at gmx.net
Thu Dec 3 21:54:40 UTC 2015
Hello Jordon,
On Tue, 1 Dec 2015 14:12:36 +0800, Jordon Wu <jordon.wu at gmail.com> wrote:
> Signed-off-by: Jordon Wu <jordon.wu at gmail.com>
> ---
> package/qt5/Config.in | 1 +
> package/qt5/qt53d/Config.in | 22 ++++++++++++++++
> package/qt5/qt53d/qt53d.hash | 4 +++
> package/qt5/qt53d/qt53d.mk | 61 ++++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 88 insertions(+)
> create mode 100755 package/qt5/qt53d/Config.in
> create mode 100755 package/qt5/qt53d/qt53d.hash
> create mode 100755 package/qt5/qt53d/qt53d.mk
>
> diff --git a/package/qt5/Config.in b/package/qt5/Config.in
> index 22fd0c0..93936ae 100644
> --- a/package/qt5/Config.in
> +++ b/package/qt5/Config.in
> @@ -45,6 +45,7 @@ source "package/qt5/qt5webchannel/Config.in"
> source "package/qt5/qt5websockets/Config.in"
> source "package/qt5/qt5x11extras/Config.in"
> source "package/qt5/qt5xmlpatterns/Config.in"
> +source "package/qt5/qt53d/Config.in"
> comment "legacy compatibility"
> source "package/qt5/qt5quick1/Config.in"
> source "package/qt5/qt5script/Config.in"
> diff --git a/package/qt5/qt53d/Config.in b/package/qt5/qt53d/Config.in
> new file mode 100755
> index 0000000..e3080c9
> --- /dev/null
> +++ b/package/qt5/qt53d/Config.in
> @@ -0,0 +1,22 @@
> +config BR2_PACKAGE_QT53D
> + bool "qt53d"
> + select BR2_PACKAGE_QT5BASE
> + select BR2_PACKAGE_QT5BASE_GUI
> + select BR2_PACKAGE_QT5DECLARATIVE
> + select BR2_PACKAGE_QT5IMAGEFORMATS
Why select QT5IMAGEFORMATS? Qt3d compiles without it...
> + help
> + Qt is a cross-platform application and UI framework for
> + developers using C++.
> +
> + This package corresponds to the qt53d module.
> +
> + http://qt.io
> +
> +if BR2_PACKAGE_QT53D
> +
> +config BR2_PACKAGE_QT53D_EXAMPLES
> + bool "Compile and install examples (with code)"
> + help
> + If unsure, say N.
> +
> +endif
> diff --git a/package/qt5/qt53d/qt53d.hash b/package/qt5/qt53d/qt53d.hash
> new file mode 100755
> index 0000000..bb65454
> --- /dev/null
> +++ b/package/qt5/qt53d/qt53d.hash
> @@ -0,0 +1,4 @@
> +# Hashes from: http://download.qt.io/official_releases/qt/5.5/5.5.0/submodules/qt3d-opensource-src-5.5.0.tar.xz.mirrorlist
> +sha256 bf6c54fbb6f279e9bd6fd67f7faa8e61ac4273baa06a56f8946346adc8c3568e qt3d-opensource-src-5.5.0.tar.xz
> +sha1 dc76e83eaafd7c0edccd8557f03fbfd61ea68213 qt3d-opensource-src-5.5.0.tar.xz
> +md5 508c90c3a2a5f37f0f7c2dd696ab10f5 qt3d-opensource-src-5.5.0.tar.xz
I think one (strong) hash is enough?
> diff --git a/package/qt5/qt53d/qt53d.mk b/package/qt5/qt53d/qt53d.mk
> new file mode 100755
> index 0000000..8f64107
> --- /dev/null
> +++ b/package/qt5/qt53d/qt53d.mk
> @@ -0,0 +1,61 @@
> +################################################################################
> +#
> +# qt53d
> +#
> +################################################################################
> +
> +QT53D_VERSION = $(QT5_VERSION)
> +QT53D_SITE = $(QT5_SITE)
> +QT53D_SOURCE = qt3d-opensource-src-$(QT53D_VERSION).tar.xz
> +QT53D_DEPENDENCIES = qt5base qt5declarative qt5imageformats
> +QT53D_INSTALL_STAGING = YES
> +
> +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y)
> +QT53D_LICENSE = LGPLv2.1 with exception or LGPLv3
> +QT53D_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3
The qt3d source contains only the files LICENSE.LGPLv3 and LICENSE.GPL...
> +else
> +QT53D_LICENSE = Commercial license
> +QT53D_REDISTRIBUTE = NO
> +endif
> +
> +define QT53D_CONFIGURE_CMDS
> + (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake)
> +endef
> +
> +define QT53D_BUILD_CMDS
> + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
> + sub-src-all $(if $(BR2_PACKAGE_QT53D_EXAMPLES), sub-examples-all)
> +endef
> +
> +define QT53D_INSTALL_STAGING_CMDS
> + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
> + sub-src-install_subtargets $(if $(BR2_PACKAGE_QT53D_EXAMPLES), sub-examples-install_subtargets)
> + $(QT5_LA_PRL_FILES_FIXUP)
> +endef
> +
> +ifeq ($(BR2_STATIC_LIBS),)
> +
> +define QT53D_INSTALL_TARGET_LIBS
> + cp -dpf $(STAGING_DIR)/usr/lib/libQt53D*.so.* $(TARGET_DIR)/usr/lib
> +endef
> +
> +define QT53D_INSTALL_TARGET_PLUGINS
> + cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/* $(TARGET_DIR)/usr/lib/qt/plugins
> +endef
Why copy the complete plugins directory? Copying the only qt3d plugin would be enough (but
this one is not build because of the missing assimp library in buildroot)...
> +
> +ifeq ($(BR2_PACKAGE_QT53D_EXAMPLES),y)
> +define QT53D_INSTALL_TARGET_EXAMPLES
> + cp -dpfr $(STAGING_DIR)/usr/lib/qt/examples/qt3d $(TARGET_DIR)/usr/lib/qt/examples/
> +endef
> +endif
> +
> +endif
> +
> +define QT53D_INSTALL_TARGET_CMDS
> + cp -dpfr $(STAGING_DIR)/usr/qml $(TARGET_DIR)/usr
> + $(QT53D_INSTALL_TARGET_LIBS)
> + $(QT53D_INSTALL_TARGET_PLUGINS)
> + $(QT53D_INSTALL_TARGET_EXAMPLES)
> +endef
> +
> +$(eval $(generic-package))
I would prefer a follow up patch on my patch only adding the example configure option
(and maybe a second/third one adding the assimp library and enabling the assimp qt3d plugin)...
Regards,
Peter
More information about the buildroot
mailing list