~bdrung/mozilla-devscripts/lintian

« back to all changes in this revision

Viewing changes to src/xpi.mk

  • Committer: Alexander Sack
  • Date: 2009-07-26 22:28:57 UTC
  • Revision ID: asac@ubuntu.com-20090726222857-rmhqxnbjga1k79iz
  - add automatic xpi depends .substvars feature based on smart parsing
    of install.rdf and checking min/maxVersion for each target application;
    extensions can now use ${xpi:Depends} to get the right dependencies added;
    the version/package/targetAppId mapping information is currently maintained
    in src/xpi.mk itself - thx to Benjamin Drung <bdrung@ubuntu.com> for this      
    - update src/xpi.mk

Show diffs side-by-side

added added

removed removed

Lines of Context:
62
62
#               your code to MOZ_XPI_MOZILLA_EXTRA_DIRS
63
63
#
64
64
 
 
65
# data for XPI_DEPENDS/CHECK_VERSION magic - targetApplication to package mapping
 
66
target_packages_{ec8030f7-c20a-464f-9b0e-13a3a9e97384}_3.0 := abrowser-3.0 firefox-3.0 iceweasel
 
67
target_packages_{ec8030f7-c20a-464f-9b0e-13a3a9e97384}_3.5 := abrowser-3.5 firefox-3.5 iceweasel
 
68
target_packages_{ec8030f7-c20a-464f-9b0e-13a3a9e97384}_3.6 := abrowser-3.6 firefox-3.6
 
69
target_packages_{3550f703-e582-4d05-9a08-453d09bdfdc6}_2.0 := icedove thunderbird
 
70
 
 
71
# data for XPI_DEPENDS/CHECK_VERSION magic - targetApplication versions
 
72
target_versions_{ec8030f7-c20a-464f-9b0e-13a3a9e97384} := 3.0 3.5 3.6
 
73
target_versions_{3550f703-e582-4d05-9a08-453d09bdfdc6} := 2.0
 
74
 
 
75
# data for XPI_DEPENDS/CHECK_VERSION magic - targetApplication min-/maxVersions
 
76
# FIXME: find a way to get this information
 
77
target_maxVersion_{ec8030f7-c20a-464f-9b0e-13a3a9e97384} := 3.6a1pre
 
78
target_minVersion_{ec8030f7-c20a-464f-9b0e-13a3a9e97384} := 2.0
 
79
target_maxVersion_{3550f703-e582-4d05-9a08-453d09bdfdc6} := 3.0b3pre
 
80
target_minVersion_{3550f703-e582-4d05-9a08-453d09bdfdc6} := 2.0
 
81
 
 
82
# TODO: Use correct comparison
 
83
CHECK_VERSION = $(shell dpkg --compare-versions $(target_minVersion_$(1)) le $(2) && dpkg --compare-versions $(2) le $(target_maxVersion_$(1)) && echo $(target_packages_$(1)_$(2)))
 
84
 
65
85
MOZ_XPI_BUILD_COMMAND ?= med-xpi-pack $(CURDIR) $(MOZ_EXTENSION_PKG).xpi;
66
86
 
 
87
XPI_DEPENDS = $(sort $(foreach id,$(call XPI_TARGET_EMIDs,$(TEMPDIR)), \
 
88
        $(foreach version,$(target_versions_$(id)),$(call CHECK_VERSION,$(id),$(version)))))
 
89
 
67
90
TEMPDIR := temp-xpi-unpacked
68
91
 
69
92
ifneq (,$(MOZ_XPI_FILE))
122
145
stamp-extension-install: stamp-unzip-$(XPI_BASE_FILE) stamp-install-$(XPI_BASE_FILE)
123
146
        touch $@
124
147
 
 
148
stamp-xpi-depends:
 
149
        if test -f debian/$(MOZ_EXTENSION_PKG).substvars; then grep -v ^xpi:Depends= debian/$(MOZ_EXTENSION_PKG).substvars > debian/$(MOZ_EXTENSION_PKG).substvars~; fi
 
150
        echo "xpi:Depends=$(XPI_DEPENDS)" | sed "s/ / | /g" >> debian/$(MOZ_EXTENSION_PKG).substvars~
 
151
        mv debian/$(MOZ_EXTENSION_PKG).substvars~ debian/$(MOZ_EXTENSION_PKG).substvars
 
152
        touch $@
125
153
 
126
154
# only attempt to do things if a pkg was provided; otherwise error out
127
155
ifneq (,$(MOZ_EXTENSION_PKG))
128
 
xpi-install: stamp-extension-install
 
156
xpi-install: stamp-extension-install stamp-xpi-depends
129
157
 
130
158
xpi-clean:
131
159
        dh_clean -p$(MOZ_EXTENSION_PKG)