[Buildroot] [PATCH] Add package Marble
Jeremie Scheer
jeremie.scheer at armadeus.com
Wed Mar 26 14:07:23 UTC 2014
Hi Julien,
On 03/05/2014 11:54 AM, Julien Boibessot wrote:
> Hello Jérémie,
>
> On 03/04/2014 02:35 PM, jeremie.scheer at armadeus.com wrote:
>> From: Jeremie Scheer <jeremie.scheer at armadeus.com>
>>
>>
>> Signed-off-by: Jeremie Scheer <jeremie.scheer at armadeus.com>
>> ---
>> package/Config.in | 3 +-
>> package/marble/Config.in | 145 ++++++++++++++++++++++++++++
>> package/marble/marble.mk | 238 ++++++++++++++++++++++++++++++++++++++++++++++
>> 3 files changed, 385 insertions(+), 1 deletion(-)
>> create mode 100644 package/marble/Config.in
>> create mode 100644 package/marble/marble.mk
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index 417c9b8..19a48a4 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -199,8 +199,9 @@ source "package/sdl_sound/Config.in"
>> source "package/sdl_ttf/Config.in"
>>
>> comment "Other GUIs"
>> -source "package/efl/Config.in"
>> +source "package/marble/Config.in"
>> source "package/qt/Config.in"
>> +source "package/efl/Config.in"
> why move EFL stuff ?
The problem is that what is put after Qt package in the menu config
file, with the flag BR2_PACKAGE_QT, is placed inside Qt menu.
So I've put package EFL between Qt package and other packages that
depends on Qt, and that fixes the problem.
>
>>
>> if BR2_PACKAGE_QT
>> comment "QT libraries and helper libraries"
>> diff --git a/package/marble/Config.in b/package/marble/Config.in
>> new file mode 100644
>> index 0000000..282ed34
>> --- /dev/null
>> +++ b/package/marble/Config.in
>> @@ -0,0 +1,145 @@
>> +comment "Marble needs Qt to be installed"
>> + depends on !BR2_PACKAGE_QT
>> +
>> +menuconfig BR2_PACKAGE_MARBLE
>> + bool "KDE Marble"
>> + depends on BR2_PACKAGE_QT
>> + select BR2_PACKAGE_QT_SCRIPT
>> + select BR2_PACKAGE_QT_SVG
>> + select BR2_PACKAGE_QT_WEBKIT
>> + select BR2_PACKAGE_QT_XML
>> + help
>> + Compile & install KDE Marble for
>> + geolocalization applications.
>> +
> Remove "Compile & install" and be more accurate on Marble purpose + add
> the website please.
>
>> +if BR2_PACKAGE_MARBLE
>> +
>> +config BR2_PACKAGE_MARBLE_BINARY
>> + bool "Marble binary"
>> + help
>> + Install Marble binary on target
> why this option ?
Marble is a library for Qt, but it can also be used as a stand-alone
application. For this, Marble binary can be useful.
>
>> +
>> +config BR2_PACKAGE_MARBLE_AUDIO
>> + bool "Audio files"
>> + help
>> + Install audio files on target
>> +
> option description is not user friendly, "install audio files" would be
> better I think.
> "on target" is not needed in help
>
>> +config BR2_PACKAGE_MARBLE_BITMAPS
>> + bool "Bitmaps"
>> + help
>> + Install bitmaps on target
>> +
> idem
>
>> +config BR2_PACKAGE_MARBLE_FLAGS
>> + bool "Flags"
>> + help
>> + Install flags on target
>> +
> idem, what are "Flags" ?
These are country flags.
>
>> +menu "Maps"
>> +
>> +menu "Earth maps"
>> +
>> +config BR2_PACKAGE_MARBLE_BLUEMARBLE
>> + bool "Bluemarble"
>> + help
>> + Install Bluemarble map on target
>> +
> "on target" not needed in help
>
>> +config BR2_PACKAGE_MARBLE_CITYLIGHTS
>> + bool "Citylights"
>> + help
>> + Install Citylights map on target
>> +
> idem
>> +config BR2_PACKAGE_MARBLE_CLOUDS
>> + bool "Clouds"
>> + help
>> + Install Clouds map on target
>> +
> idem
>> +config BR2_PACKAGE_MARBLE_HILLSHADING
>> + bool "Hillshading"
>> + help
>> + Install Hillshading map on target
>> +
> idem
>> +config BR2_PACKAGE_MARBLE_OPENSTREETMAP
>> + bool "OpenStreetMap"
>> + help
>> + Install Openstreetmap map on target
>> +
> idem
>> +config BR2_PACKAGE_MARBLE_PLAIN
>> + bool "Plain"
>> + help
>> + Install Plain map on target
>> +
> idem
>> +config BR2_PACKAGE_MARBLE_PRECIP_DEC
>> + bool "December precipitations"
>> + help
>> + Install December precipitation map on target
>> +
> idem
>> +config BR2_PACKAGE_MARBLE_PRECIP_JULY
>> + bool "July precipitations"
>> + help
>> + Install July precipitation map on target
>> +
> idem
>> +config BR2_PACKAGE_MARBLE_SCHAGEN
>> + bool "Schagen 1689"
>> + help
>> + Install Schagen 1689 map on target
>> +
> idem
>> +config BR2_PACKAGE_MARBLE_SRTM
>> + bool "SRTM"
>> + help
>> + Install SRTM map on target
>> +
> idem
>> +config BR2_PACKAGE_MARBLE_SRTM2
>> + bool "SRTM 2"
>> + help
>> + Install SRTM 2 map on target
>> +
> idem
>> +config BR2_PACKAGE_MARBLE_TEMP_DEC
>> + bool "December temperatures"
>> + help
>> + Install December temperature map on target
>> +
> idem
>> +config BR2_PACKAGE_MARBLE_TEMP_JULY
>> + bool "July temperatures"
>> + help
>> + Install July temperature map on target
>> +
> idem
>> +endmenu #Earth maps
>> +
>> +menu "Moon maps"
>> +
>> +config BR2_PACKAGE_MARBLE_CLEMENTINE
>> + bool "Clementine"
>> + help
>> + Install Clementine map on target
>> +
>> +endmenu #Moon maps
>> +
>> +endmenu #Maps
>> +
>> +config BR2_PACKAGE_MARBLE_MWDBII
>> + bool "MWDBII files"
>> + help
>> + Install MWDBII files on target
> idem + be more verbose in help
>> +
>> +config BR2_PACKAGE_MARBLE_PLACEMARKS
>> + bool "Placemarks"
>> + help
>> + Install placemarks on target
> idem
>> +
>> +config BR2_PACKAGE_MARBLE_STARS
>> + bool "Stars"
>> + help
>> + Install star data on target
> idem
>> +
>> +config BR2_PACKAGE_MARBLE_SVG
>> + bool "SVG files"
>> + help
>> + Install SVG files on target
> idem
>> +
>> +config BR2_PACKAGE_MARBLE_WEATHER
>> + bool "Weather data"
>> + help
>> + Install weather data on target
> idem
>> +
>> +endif #BR2_PACKAGE_MARBLE
>> +
>> diff --git a/package/marble/marble.mk b/package/marble/marble.mk
>> new file mode 100644
>> index 0000000..54d1c0e
>> --- /dev/null
>> +++ b/package/marble/marble.mk
>> @@ -0,0 +1,238 @@
>> +#############################################################
> 80 x #
>> +#
>> +# KDE Marble
> lower cases
>> +#
>> +#############################################################
>> +MARBLE_VERSION = 88ba87c90195dede8594375b2f81c9d926db3924
>> +MARBLE_SOURCE = marble-$(MARBLE_VERSION)-source.tar.gz
>> +MARBLE_SITE = git://anongit.kde.org/marble.git
>> +MARBLE_SITE_METHOD = git
> I think it's redundant with MARBLE_SITE
Yes, I will remove it.
>
>> +
>> +MARBLE_DEPENDENCIES = qt
>> +
>> +MARBLE_CONF_OPT += -DQTONLY=ON
>> +MARBLE_CONF_OPT += -DTILES_AT_COMPILETIME=OFF
>> +
>> +define MARBLE_CONFIGURE_CMDS
>> + (cd $(@D) && \
>> + rm -f CMakeCache.txt && \
> indentation
>> + $(HOST_DIR)/usr/bin/cmake $(@D) \
>> + -DCMAKE_TOOLCHAIN_FILE="$(BASE_DIR)/host/usr/share/buildroot/toolchainfile.cmake" \
>> + $(MARBLE_CONF_OPT) \
>> + )
> cmake infrastructure doesn't already handle that ?
When this patch was made, Buildroot's cmake compilation didn't handle
it, but it seems that now that is correctly done. So I will remove this
define.
>
>> +endef
>> +
>> +define MARBLE_BUILD_CMDS
>> + $(MAKE) -C $(@D)
>> +endef
> cmake infrastructure doesn't already handle that ?
Same as Marble configure command.
>> +
>> +MARBLE_INSTALL_STAGING = YES
>> +
>> +define MARBLE_CLEAN_TARGET_INSTALL
>> + rm -rf $(TARGET_DIR)/usr/local/share/marble/data/*
>> + rm -rf $(TARGET_DIR)/usr/local/include/marble
>> + rm -rf $(TARGET_DIR)/usr/local/bin/marble
>> +endef
> cf remark on the hooks below...
>
>> +
>> +define MARBLE_INSTALL_BINARY
>> + cp -rf $(STAGING_DIR)/usr/local/bin/marble $(TARGET_DIR)/usr/local/bin
>> +endef
>> +
>> +define MARBLE_INSTALL_AUDIO_FILES
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/audio $(TARGET_DIR)/usr/local/share/marble/data
>> +endef
>> +
>> +define MARBLE_INSTALL_BITMAPS
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/bitmaps $(TARGET_DIR)/usr/local/share/marble/data
>> +endef
>> +
>> +define MARBLE_INSTALL_FLAGS
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/flags $(TARGET_DIR)/usr/local/share/marble/data
>> +endef
>> +
>> +define MARBLE_INSTALL_BLUEMARBLE_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/bluemarble $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_CITYLIGHTS_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/citylights $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_CLOUDS_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/clouds $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_HILLSHADING_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/hillshading $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_OPENSTREETMAP_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/openstreetmap $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_PLAIN_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/plain $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_PRECIP_DEC_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/precip-dec $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_PRECIP_JULY_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/precip-july $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_SCHAGEN_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/schagen1689 $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_SRTM_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/srtm $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_SRTM2_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/srtm2 $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_TEMP_DEC_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/temp-dec $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_TEMP_JULY_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/earth/temp-july $(TARGET_DIR)/usr/local/share/marble/data/maps/earth
>> +endef
>> +
>> +define MARBLE_INSTALL_CLEMENTINE_MAP
>> + mkdir -p $(TARGET_DIR)/usr/local/share/marble/data/maps/moon
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/maps/moon/clementine $(TARGET_DIR)/usr/local/share/marble/data/maps/moon
>> +endef
>> +
>> +define MARBLE_INSTALL_MWDBII_FILES
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/mwdbii $(TARGET_DIR)/usr/local/share/marble/data
>> +endef
>> +
>> +define MARBLE_INSTALL_PLACEMARKS
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/placemarks $(TARGET_DIR)/usr/local/share/marble/data
>> +endef
>> +
>> +define MARBLE_INSTALL_STARS_DATA
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/stars $(TARGET_DIR)/usr/local/share/marble/data
>> +endef
>> +
>> +define MARBLE_INSTALL_SVG
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/svg $(TARGET_DIR)/usr/local/share/marble/data
>> +endef
>> +
>> +define MARBLE_INSTALL_WEATHER_DATA
>> + cp -rf $(STAGING_DIR)/usr/local/share/marble/data/weather $(TARGET_DIR)/usr/local/share/marble/data
>> +endef
>> +
>> +
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_CLEAN_TARGET_INSTALL
>> +
> set the hooks just after the define please
>
>> +ifeq ($(BR2_PACKAGE_MARBLE_BINARY),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_BINARY
>> +endif
> merge the hook with the define please, and put all inside ifeq
>
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_AUDIO),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_AUDIO_FILES
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_BITMAPS),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_BITMAPS
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_FLAGS),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_FLAGS
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_BLUEMARBLE),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_BLUEMARBLE_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_CITYLIGHTS),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_CITYLIGHTS_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_CLOUDS),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_CLOUDS_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_HILLSHADING),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_HILLSHADING_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_OPENSTREETMAP),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_OPENSTREETMAP_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_PLAIN),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_PLAIN_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_PRECIP_DEC),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_PRECIP_DEC_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_PRECIP_JULY),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_PRECIP_JULY_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_SCHAGEN),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_SCHAGEN_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_SRTM),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_SRTM_MAP
>> +endif
> pfff... idem... :-)
> no idea how to factorize that ??
>
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_SRTM2),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_SRTM2_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_TEMP_DEC),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_TEMP_DEC_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_TEMP_JULY),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_TEMP_JULY_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_CLEMENTINE),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_CLEMENTINE_MAP
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_MWDBII),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_MWDBII_FILES
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_PLACEMARKS),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_PLACEMARKS
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_STARS),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_STARS_DATA
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_SVG),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_SVG
>> +endif
> idem
>> +
>> +ifeq ($(BR2_PACKAGE_MARBLE_WEATHER),y)
>> +MARBLE_POST_INSTALL_TARGET_HOOKS += MARBLE_INSTALL_WEATHER_DATA
>> +endif
> idem
>> +
>> +$(eval $(cmake-package))
> Regards,
> Julien
>
--
Jérémie Scheer
Software Engineer
Tel: +33 (0)9 72 29 41 44
Fax: +33 (0)9 72 28 79 26
Armadeus Systems - A new vision of the embedded world
http://www.armadeus.com
More information about the buildroot
mailing list