mkspecs/features/sis_targets.prf
changeset 30 5dc02b23752f
child 33 3e2da88830cd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkspecs/features/sis_targets.prf	Tue Jul 06 15:10:48 2010 +0300
@@ -0,0 +1,139 @@
+# Sis file creation
+contains(TEMPLATE, app)|!count(DEPLOYMENT, 1) {
+    symbian-abld|symbian-sbsv2 {
+        sis_destdir =
+        make_cache_name = .make.cache
+        sis_target.target = sis
+        sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
+                                  $(if $(wildcard $$make_cache_name), \
+                                      $(MAKE) -f $(MAKEFILE) ok_sis MAKEFILES=$$make_cache_name \
+                                  , \
+                                      $(if $(QT_SIS_TARGET), \
+                                          $(MAKE) -f $(MAKEFILE) ok_sis \
+                                      , \
+                                          $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
+                                      ) \
+                                  ) \
+                              , \
+                                  $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
+                              )
+
+        ok_sis_target.target = ok_sis
+        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)
+
+        target_sis_target.target = $${sis_destdir}$${TARGET}.sis
+        target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
+
+        installer_sis_target.target = installer_sis
+        installer_sis_target.commands = $(if $(wildcard $$basename(TARGET)_installer.pkg), \
+                                            $(MAKE) -f $(MAKEFILE) ok_installer_sis \
+                                        , \
+                                            $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
+                                        )
+        installer_sis_target.depends = $${sis_destdir}$${TARGET}.sis
+
+        ok_installer_sis_target.target = ok_installer_sis
+        ok_installer_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $$basename(TARGET)_installer.pkg - \
+                                               $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
+
+        fail_sis_nopkg_target.target = fail_sis_nopkg
+        fail_sis_nopkg_target.commands = "$(error PKG file does not exist, 'sis' and 'installer_sis' target are only supported for executables or projects with DEPLOYMENT statement)"
+
+        fail_sis_nocache_target.target = fail_sis_nocache
+        fail_sis_nocache_target.commands = "$(error Project has to be built or QT_SIS_TARGET environment variable has to be set before calling 'SIS' target)"
+
+        stub_sis_target.target = stub_sis
+        stub_sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
+                                       $(if $(wildcard $$make_cache_name), \
+                                           $(MAKE) -f $(MAKEFILE) ok_stub_sis MAKEFILES=$$make_cache_name \
+                                       , \
+                                           $(if $(QT_SIS_TARGET), \
+                                               $(MAKE) -f $(MAKEFILE) ok_stub_sis \
+                                           , \
+                                               $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
+                                           ) \
+                                       ) \
+                                   , \
+                                       $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
+                                   )
+
+        ok_stub_sis_target.target = ok_stub_sis
+        ok_stub_sis_target.commands = createpackage.bat -s $(QT_SIS_OPTIONS) $$basename(TARGET)_stub.pkg \
+                                          $(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
+
+        QMAKE_EXTRA_TARGETS += sis_target \
+                               ok_sis_target \
+                               target_sis_target \
+                               installer_sis_target \
+                               ok_installer_sis_target \
+                               fail_sis_nopkg_target \
+                               fail_sis_nocache_target \
+                               stub_sis_target \
+                               ok_stub_sis_target
+        # Sbsv2 has its own store_build target which is using flms.
+        !symbian-sbsv2 {
+            contains(QMAKE_HOST.os, "Windows") {
+                shellFixedHash = $${LITERAL_HASH}
+            } else {
+                shellFixedHash = \\$${LITERAL_HASH}
+            }
+            store_build_target.target = store_build
+            store_build_target.commands = \
+                  @echo $${shellFixedHash} ============================================================================== > $$make_cache_name \
+                && echo $${shellFixedHash}   This file is generated by make and should not be modified by the user >> $$make_cache_name \
+                && echo $${shellFixedHash}  Name        : $$make_cache_name >> $$make_cache_name \
+                && echo $${shellFixedHash}  Part of     : lineedits >> $$make_cache_name \
+                && echo $${shellFixedHash}  Description : This file is used to cache last build target for >> $$make_cache_name \
+                && echo $${shellFixedHash}                make sis target. >> $$make_cache_name \
+                && echo $${shellFixedHash}  Version     :  >> $$make_cache_name \
+                && echo $${shellFixedHash} >> $$make_cache_name \
+                && echo $${shellFixedHash} ============================================================================== >> $$make_cache_name \
+                && echo. >> $$make_cache_name \
+                && echo QT_SIS_TARGET ?= $(QT_SIS_TARGET) >> $$make_cache_name
+
+            QMAKE_EXTRA_TARGETS += store_build_target
+        }
+    } else {
+        sis_destdir = $$DESTDIR
+        !isEmpty(sis_destdir):!contains(sis_destdir, "[/\\]$"):sis_destdir = $${sis_destdir}/
+        contains(QMAKE_HOST.os, "Windows"):sis_destdir = $$replace(sis_destdir, "/", "\\")
+
+        sis_target.target = sis
+        sis_target.commands = createpackage $(QT_SIS_OPTIONS) $$basename(TARGET)_template.pkg \
+                                  - $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
+        sis_target.depends = first
+
+        target_sis_target.target = $${sis_destdir}$${TARGET}.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 - \
+                                            $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
+        installer_sis_target.depends = $${sis_destdir}$${TARGET}.sis
+
+        !isEmpty(DESTDIR) {
+            sis_target.commands += && $$QMAKE_MOVE $$basename(TARGET).sis $$DESTDIR
+            installer_sis_target.commands += && $$QMAKE_MOVE $$basename(TARGET).sis $$DESTDIR
+        }
+
+        QMAKE_EXTRA_TARGETS += sis_target \
+                               target_sis_target \
+                               installer_sis_target
+    }
+} else {
+    contains(TEMPLATE, subdirs) {
+        # Enable recursive sis target.
+        sis_target.CONFIG = recursive
+        sis_target.recurse = $$SUBDIRS
+    } 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
+    }
+    sis_target.commands =
+    sis_target.target = sis
+    QMAKE_EXTRA_TARGETS += sis_target
+}
+
+QMAKE_DISTCLEAN += $${sis_destdir}$${TARGET}.sis