mkspecs/features/sis_targets.prf
changeset 33 3e2da88830cd
parent 30 5dc02b23752f
child 37 758a864f9613
equal deleted inserted replaced
30:5dc02b23752f 33:3e2da88830cd
     1 # Sis file creation
     1 # Sis file creation
     2 contains(TEMPLATE, app)|!count(DEPLOYMENT, 1) {
     2 GENERATE_SIS_TARGETS = false
       
     3 
       
     4 contains(TEMPLATE, app): GENERATE_SIS_TARGETS = true
       
     5 else:!equals(DEPLOYMENT, default_deployment) {
       
     6     for(dep_item, $$list($$DEPLOYMENT)) {
       
     7         eval(dep_item_sources = $${dep_item}.sources)
       
     8         !isEmpty(dep_item_sources): GENERATE_SIS_TARGETS = true
       
     9     }
       
    10 }
       
    11 
       
    12 equals(GENERATE_SIS_TARGETS, true) {
     3     symbian-abld|symbian-sbsv2 {
    13     symbian-abld|symbian-sbsv2 {
     4         sis_destdir =
    14         sis_destdir =
     5         make_cache_name = .make.cache
    15         make_cache_name = .make.cache
     6         sis_target.target = sis
    16         sis_target.target = sis
     7         sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
    17         sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
    19                               )
    29                               )
    20 
    30 
    21         ok_sis_target.target = ok_sis
    31         ok_sis_target.target = ok_sis
    22         ok_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $$basename(TARGET)_template.pkg \
    32         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)
    33                                      $(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
       
    34 
       
    35         unsigned_sis_target.target = unsigned_sis
       
    36         unsigned_sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
       
    37                                   $(if $(wildcard $$make_cache_name), \
       
    38                                       $(MAKE) -f $(MAKEFILE) ok_unsigned_sis MAKEFILES=$$make_cache_name \
       
    39                                   , \
       
    40                                       $(if $(QT_SIS_TARGET), \
       
    41                                           $(MAKE) -f $(MAKEFILE) ok_unsigned_sis \
       
    42                                       , \
       
    43                                           $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
       
    44                                       ) \
       
    45                                   ) \
       
    46                               , \
       
    47                                   $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
       
    48                               )
       
    49 
       
    50         ok_unsigned_sis_target.target = ok_unsigned_sis
       
    51         ok_unsigned_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) -o $$basename(TARGET)_template.pkg $(QT_SIS_TARGET)
    24 
    52 
    25         target_sis_target.target = $${sis_destdir}$${TARGET}.sis
    53         target_sis_target.target = $${sis_destdir}$${TARGET}.sis
    26         target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
    54         target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
    27 
    55 
    28         installer_sis_target.target = installer_sis
    56         installer_sis_target.target = installer_sis
    62         ok_stub_sis_target.commands = createpackage.bat -s $(QT_SIS_OPTIONS) $$basename(TARGET)_stub.pkg \
    90         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)
    91                                           $(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
    64 
    92 
    65         QMAKE_EXTRA_TARGETS += sis_target \
    93         QMAKE_EXTRA_TARGETS += sis_target \
    66                                ok_sis_target \
    94                                ok_sis_target \
       
    95                                unsigned_sis_target \
       
    96                                ok_unsigned_sis_target \
    67                                target_sis_target \
    97                                target_sis_target \
    68                                installer_sis_target \
    98                                installer_sis_target \
    69                                ok_installer_sis_target \
    99                                ok_installer_sis_target \
    70                                fail_sis_nopkg_target \
   100                                fail_sis_nopkg_target \
    71                                fail_sis_nocache_target \
   101                                fail_sis_nocache_target \
    94 
   124 
    95             QMAKE_EXTRA_TARGETS += store_build_target
   125             QMAKE_EXTRA_TARGETS += store_build_target
    96         }
   126         }
    97     } else {
   127     } else {
    98         sis_destdir = $$DESTDIR
   128         sis_destdir = $$DESTDIR
    99         !isEmpty(sis_destdir):!contains(sis_destdir, "[/\\]$"):sis_destdir = $${sis_destdir}/
   129         isEmpty(sis_destdir):sis_destdir = .
   100         contains(QMAKE_HOST.os, "Windows"):sis_destdir = $$replace(sis_destdir, "/", "\\")
   130         baseTarget = $$basename(TARGET)
       
   131         !equals(TARGET, "$$baseTarget"):sis_destdir = $$sis_destdir/$$dirname(TARGET)
   101 
   132 
   102         sis_target.target = sis
   133         sis_target.target = sis
   103         sis_target.commands = createpackage $(QT_SIS_OPTIONS) $$basename(TARGET)_template.pkg \
   134         sis_target.commands = createpackage $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \
   104                                   - $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
   135                                   - $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
   105         sis_target.depends = first
   136         sis_target.depends = first
   106 
   137 
   107         target_sis_target.target = $${sis_destdir}$${TARGET}.sis
   138         unsigned_sis_target.target = unsigned_sis
       
   139         unsigned_sis_target.commands = createpackage $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg
       
   140         unsigned_sis_target.depends = first
       
   141 
       
   142         target_sis_target.target = $${sis_destdir}/$${baseTarget}.sis
   108         target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
   143         target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
   109 
   144 
   110         installer_sis_target.target = installer_sis
   145         installer_sis_target.target = installer_sis
   111         installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) $$basename(TARGET)_installer.pkg - \
   146         installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
   112                                             $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
   147                                             $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
   113         installer_sis_target.depends = $${sis_destdir}$${TARGET}.sis
   148         installer_sis_target.depends = $${sis_destdir}/$${baseTarget}.sis
   114 
   149 
   115         !isEmpty(DESTDIR) {
   150         !isEmpty(sis_destdir):!equals(sis_destdir, "."):!equals(sis_destdir, "./") {
   116             sis_target.commands += && $$QMAKE_MOVE $$basename(TARGET).sis $$DESTDIR
   151             sis_target.commands += && $$QMAKE_MOVE $${baseTarget}.sis $$sis_destdir
   117             installer_sis_target.commands += && $$QMAKE_MOVE $$basename(TARGET).sis $$DESTDIR
   152             installer_sis_target.commands += && $$QMAKE_MOVE $${baseTarget}.sis $$sis_destdir
   118         }
   153         }
   119 
   154 
   120         QMAKE_EXTRA_TARGETS += sis_target \
   155         QMAKE_EXTRA_TARGETS += sis_target \
       
   156                                unsigned_sis_target \
   121                                target_sis_target \
   157                                target_sis_target \
   122                                installer_sis_target
   158                                installer_sis_target
       
   159 
       
   160         QMAKE_DISTCLEAN += $${sis_destdir}/$${baseTarget}.sis
   123     }
   161     }
       
   162 
       
   163     deploy_target.target = deploy
       
   164     contains(QMAKE_HOST.os, "Windows") {
       
   165         deploy_target.depends = sis
       
   166         deploy_target.commands = call $$target_sis_target.target
       
   167     } else {
       
   168         deploy_target.commands = @echo Deployment not supported in this environment
       
   169     }
       
   170     QMAKE_EXTRA_TARGETS += deploy_target
       
   171 
   124 } else {
   172 } else {
   125     contains(TEMPLATE, subdirs) {
   173     contains(TEMPLATE, subdirs) {
   126         # Enable recursive sis target.
   174         # Enable recursive sis target.
   127         sis_target.CONFIG = recursive
   175         sis_target.CONFIG = recursive
   128         sis_target.recurse = $$SUBDIRS
   176         sis_target.recurse = $$SUBDIRS
   129     } else {
   177     } else {
   130         # Make sure we build everything, since other sis targets in a recursive invocation
   178         # Make sure we build everything, since other sis targets in a recursive invocation
   131         # may depend on them, even if this one is empty.
   179         # may depend on them, even if this one is empty.
   132         sis_target.depends = first
   180         # In abld/sbsv2, we assume that subdir has been built already, as all builds are recursive.
       
   181         !symbian-abld:!symbian-sbsv2: sis_target.depends = first
   133     }
   182     }
   134     sis_target.commands =
   183     sis_target.commands =
   135     sis_target.target = sis
   184     sis_target.target = sis
   136     QMAKE_EXTRA_TARGETS += sis_target
   185     QMAKE_EXTRA_TARGETS += sis_target
       
   186 
       
   187     symbian-abld {
       
   188         # Create dummy store_build target to avoid errors from .mk callbacks during build
       
   189         store_build_target.target = store_build
       
   190         QMAKE_EXTRA_TARGETS += store_build_target
       
   191     }
   137 }
   192 }
   138 
       
   139 QMAKE_DISTCLEAN += $${sis_destdir}$${TARGET}.sis