--- a/mkspecs/features/sis_targets.prf Tue Jul 06 15:10:48 2010 +0300
+++ b/mkspecs/features/sis_targets.prf Wed Aug 18 10:37:55 2010 +0300
@@ -1,5 +1,15 @@
# Sis file creation
-contains(TEMPLATE, app)|!count(DEPLOYMENT, 1) {
+GENERATE_SIS_TARGETS = false
+
+contains(TEMPLATE, app): GENERATE_SIS_TARGETS = true
+else:!equals(DEPLOYMENT, default_deployment) {
+ for(dep_item, $$list($$DEPLOYMENT)) {
+ eval(dep_item_sources = $${dep_item}.sources)
+ !isEmpty(dep_item_sources): GENERATE_SIS_TARGETS = true
+ }
+}
+
+equals(GENERATE_SIS_TARGETS, true) {
symbian-abld|symbian-sbsv2 {
sis_destdir =
make_cache_name = .make.cache
@@ -22,6 +32,24 @@
ok_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $$basename(TARGET)_template.pkg \
$(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
+ unsigned_sis_target.target = unsigned_sis
+ unsigned_sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
+ $(if $(wildcard $$make_cache_name), \
+ $(MAKE) -f $(MAKEFILE) ok_unsigned_sis MAKEFILES=$$make_cache_name \
+ , \
+ $(if $(QT_SIS_TARGET), \
+ $(MAKE) -f $(MAKEFILE) ok_unsigned_sis \
+ , \
+ $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
+ ) \
+ ) \
+ , \
+ $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
+ )
+
+ ok_unsigned_sis_target.target = ok_unsigned_sis
+ ok_unsigned_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) -o $$basename(TARGET)_template.pkg $(QT_SIS_TARGET)
+
target_sis_target.target = $${sis_destdir}$${TARGET}.sis
target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
@@ -64,6 +92,8 @@
QMAKE_EXTRA_TARGETS += sis_target \
ok_sis_target \
+ unsigned_sis_target \
+ ok_unsigned_sis_target \
target_sis_target \
installer_sis_target \
ok_installer_sis_target \
@@ -96,31 +126,49 @@
}
} else {
sis_destdir = $$DESTDIR
- !isEmpty(sis_destdir):!contains(sis_destdir, "[/\\]$"):sis_destdir = $${sis_destdir}/
- contains(QMAKE_HOST.os, "Windows"):sis_destdir = $$replace(sis_destdir, "/", "\\")
+ isEmpty(sis_destdir):sis_destdir = .
+ baseTarget = $$basename(TARGET)
+ !equals(TARGET, "$$baseTarget"):sis_destdir = $$sis_destdir/$$dirname(TARGET)
sis_target.target = sis
- sis_target.commands = createpackage $(QT_SIS_OPTIONS) $$basename(TARGET)_template.pkg \
+ sis_target.commands = createpackage $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \
- $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
sis_target.depends = first
- target_sis_target.target = $${sis_destdir}$${TARGET}.sis
+ unsigned_sis_target.target = unsigned_sis
+ unsigned_sis_target.commands = createpackage $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg
+ unsigned_sis_target.depends = first
+
+ target_sis_target.target = $${sis_destdir}/$${baseTarget}.sis
target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
installer_sis_target.target = installer_sis
- installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) $$basename(TARGET)_installer.pkg - \
+ installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
$(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
- installer_sis_target.depends = $${sis_destdir}$${TARGET}.sis
+ installer_sis_target.depends = $${sis_destdir}/$${baseTarget}.sis
- !isEmpty(DESTDIR) {
- sis_target.commands += && $$QMAKE_MOVE $$basename(TARGET).sis $$DESTDIR
- installer_sis_target.commands += && $$QMAKE_MOVE $$basename(TARGET).sis $$DESTDIR
+ !isEmpty(sis_destdir):!equals(sis_destdir, "."):!equals(sis_destdir, "./") {
+ sis_target.commands += && $$QMAKE_MOVE $${baseTarget}.sis $$sis_destdir
+ installer_sis_target.commands += && $$QMAKE_MOVE $${baseTarget}.sis $$sis_destdir
}
QMAKE_EXTRA_TARGETS += sis_target \
+ unsigned_sis_target \
target_sis_target \
installer_sis_target
+
+ QMAKE_DISTCLEAN += $${sis_destdir}/$${baseTarget}.sis
}
+
+ deploy_target.target = deploy
+ contains(QMAKE_HOST.os, "Windows") {
+ deploy_target.depends = sis
+ deploy_target.commands = call $$target_sis_target.target
+ } else {
+ deploy_target.commands = @echo Deployment not supported in this environment
+ }
+ QMAKE_EXTRA_TARGETS += deploy_target
+
} else {
contains(TEMPLATE, subdirs) {
# Enable recursive sis target.
@@ -129,11 +177,16 @@
} else {
# Make sure we build everything, since other sis targets in a recursive invocation
# may depend on them, even if this one is empty.
- sis_target.depends = first
+ # In abld/sbsv2, we assume that subdir has been built already, as all builds are recursive.
+ !symbian-abld:!symbian-sbsv2: sis_target.depends = first
}
sis_target.commands =
sis_target.target = sis
QMAKE_EXTRA_TARGETS += sis_target
+
+ symbian-abld {
+ # Create dummy store_build target to avoid errors from .mk callbacks during build
+ store_build_target.target = store_build
+ QMAKE_EXTRA_TARGETS += store_build_target
+ }
}
-
-QMAKE_DISTCLEAN += $${sis_destdir}$${TARGET}.sis