mkspecs/features/sis_targets.prf
changeset 30 5dc02b23752f
child 33 3e2da88830cd
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
       
     1 # Sis file creation
       
     2 contains(TEMPLATE, app)|!count(DEPLOYMENT, 1) {
       
     3     symbian-abld|symbian-sbsv2 {
       
     4         sis_destdir =
       
     5         make_cache_name = .make.cache
       
     6         sis_target.target = sis
       
     7         sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
       
     8                                   $(if $(wildcard $$make_cache_name), \
       
     9                                       $(MAKE) -f $(MAKEFILE) ok_sis MAKEFILES=$$make_cache_name \
       
    10                                   , \
       
    11                                       $(if $(QT_SIS_TARGET), \
       
    12                                           $(MAKE) -f $(MAKEFILE) ok_sis \
       
    13                                       , \
       
    14                                           $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
       
    15                                       ) \
       
    16                                   ) \
       
    17                               , \
       
    18                                   $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
       
    19                               )
       
    20 
       
    21         ok_sis_target.target = ok_sis
       
    22         ok_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $$basename(TARGET)_template.pkg \
       
    23                                      $(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
       
    24 
       
    25         target_sis_target.target = $${sis_destdir}$${TARGET}.sis
       
    26         target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
       
    27 
       
    28         installer_sis_target.target = installer_sis
       
    29         installer_sis_target.commands = $(if $(wildcard $$basename(TARGET)_installer.pkg), \
       
    30                                             $(MAKE) -f $(MAKEFILE) ok_installer_sis \
       
    31                                         , \
       
    32                                             $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
       
    33                                         )
       
    34         installer_sis_target.depends = $${sis_destdir}$${TARGET}.sis
       
    35 
       
    36         ok_installer_sis_target.target = ok_installer_sis
       
    37         ok_installer_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $$basename(TARGET)_installer.pkg - \
       
    38                                                $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
       
    39 
       
    40         fail_sis_nopkg_target.target = fail_sis_nopkg
       
    41         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)"
       
    42 
       
    43         fail_sis_nocache_target.target = fail_sis_nocache
       
    44         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)"
       
    45 
       
    46         stub_sis_target.target = stub_sis
       
    47         stub_sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
       
    48                                        $(if $(wildcard $$make_cache_name), \
       
    49                                            $(MAKE) -f $(MAKEFILE) ok_stub_sis MAKEFILES=$$make_cache_name \
       
    50                                        , \
       
    51                                            $(if $(QT_SIS_TARGET), \
       
    52                                                $(MAKE) -f $(MAKEFILE) ok_stub_sis \
       
    53                                            , \
       
    54                                                $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
       
    55                                            ) \
       
    56                                        ) \
       
    57                                    , \
       
    58                                        $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
       
    59                                    )
       
    60 
       
    61         ok_stub_sis_target.target = ok_stub_sis
       
    62         ok_stub_sis_target.commands = createpackage.bat -s $(QT_SIS_OPTIONS) $$basename(TARGET)_stub.pkg \
       
    63                                           $(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
       
    64 
       
    65         QMAKE_EXTRA_TARGETS += sis_target \
       
    66                                ok_sis_target \
       
    67                                target_sis_target \
       
    68                                installer_sis_target \
       
    69                                ok_installer_sis_target \
       
    70                                fail_sis_nopkg_target \
       
    71                                fail_sis_nocache_target \
       
    72                                stub_sis_target \
       
    73                                ok_stub_sis_target
       
    74         # Sbsv2 has its own store_build target which is using flms.
       
    75         !symbian-sbsv2 {
       
    76             contains(QMAKE_HOST.os, "Windows") {
       
    77                 shellFixedHash = $${LITERAL_HASH}
       
    78             } else {
       
    79                 shellFixedHash = \\$${LITERAL_HASH}
       
    80             }
       
    81             store_build_target.target = store_build
       
    82             store_build_target.commands = \
       
    83                   @echo $${shellFixedHash} ============================================================================== > $$make_cache_name \
       
    84                 && echo $${shellFixedHash}   This file is generated by make and should not be modified by the user >> $$make_cache_name \
       
    85                 && echo $${shellFixedHash}  Name        : $$make_cache_name >> $$make_cache_name \
       
    86                 && echo $${shellFixedHash}  Part of     : lineedits >> $$make_cache_name \
       
    87                 && echo $${shellFixedHash}  Description : This file is used to cache last build target for >> $$make_cache_name \
       
    88                 && echo $${shellFixedHash}                make sis target. >> $$make_cache_name \
       
    89                 && echo $${shellFixedHash}  Version     :  >> $$make_cache_name \
       
    90                 && echo $${shellFixedHash} >> $$make_cache_name \
       
    91                 && echo $${shellFixedHash} ============================================================================== >> $$make_cache_name \
       
    92                 && echo. >> $$make_cache_name \
       
    93                 && echo QT_SIS_TARGET ?= $(QT_SIS_TARGET) >> $$make_cache_name
       
    94 
       
    95             QMAKE_EXTRA_TARGETS += store_build_target
       
    96         }
       
    97     } else {
       
    98         sis_destdir = $$DESTDIR
       
    99         !isEmpty(sis_destdir):!contains(sis_destdir, "[/\\]$"):sis_destdir = $${sis_destdir}/
       
   100         contains(QMAKE_HOST.os, "Windows"):sis_destdir = $$replace(sis_destdir, "/", "\\")
       
   101 
       
   102         sis_target.target = sis
       
   103         sis_target.commands = createpackage $(QT_SIS_OPTIONS) $$basename(TARGET)_template.pkg \
       
   104                                   - $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
       
   105         sis_target.depends = first
       
   106 
       
   107         target_sis_target.target = $${sis_destdir}$${TARGET}.sis
       
   108         target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
       
   109 
       
   110         installer_sis_target.target = installer_sis
       
   111         installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) $$basename(TARGET)_installer.pkg - \
       
   112                                             $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
       
   113         installer_sis_target.depends = $${sis_destdir}$${TARGET}.sis
       
   114 
       
   115         !isEmpty(DESTDIR) {
       
   116             sis_target.commands += && $$QMAKE_MOVE $$basename(TARGET).sis $$DESTDIR
       
   117             installer_sis_target.commands += && $$QMAKE_MOVE $$basename(TARGET).sis $$DESTDIR
       
   118         }
       
   119 
       
   120         QMAKE_EXTRA_TARGETS += sis_target \
       
   121                                target_sis_target \
       
   122                                installer_sis_target
       
   123     }
       
   124 } else {
       
   125     contains(TEMPLATE, subdirs) {
       
   126         # Enable recursive sis target.
       
   127         sis_target.CONFIG = recursive
       
   128         sis_target.recurse = $$SUBDIRS
       
   129     } else {
       
   130         # Make sure we build everything, since other sis targets in a recursive invocation
       
   131         # may depend on them, even if this one is empty.
       
   132         sis_target.depends = first
       
   133     }
       
   134     sis_target.commands =
       
   135     sis_target.target = sis
       
   136     QMAKE_EXTRA_TARGETS += sis_target
       
   137 }
       
   138 
       
   139 QMAKE_DISTCLEAN += $${sis_destdir}$${TARGET}.sis