# Sis file creation | |
GENERATE_SIS_TARGETS = false | |
contains(TEMPLATE, app): GENERATE_SIS_TARGETS = true | |
else:!equals(DEPLOYMENT, default_deployment) { | |
for(dep_item, $$list($$DEPLOYMENT)) { | |
dep_item_sources = $$eval($${dep_item}.sources) | |
!isEmpty(dep_item_sources): GENERATE_SIS_TARGETS = true | |
} | |
} | |
equals(GENERATE_SIS_TARGETS, true) { | |
baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET)) | |
template_pkg_target.target = $${baseTarget}_template.pkg | |
template_pkg_target.depends += $$_PRO_FILE_ | |
template_pkg_target.commands = $(MAKE) -f $(MAKEFILE) qmake | |
installer_pkg_target.target = $${baseTarget}_installer.pkg | |
installer_pkg_target.depends += $$_PRO_FILE_ | |
installer_pkg_target.commands = $(MAKE) -f $(MAKEFILE) qmake | |
stub_pkg_target.target = $${baseTarget}_stub.pkg | |
stub_pkg_target.depends += $$_PRO_FILE_ | |
stub_pkg_target.commands = $(MAKE) -f $(MAKEFILE) qmake | |
QMAKE_EXTRA_TARGETS += template_pkg_target installer_pkg_target stub_pkg_target | |
qtPrepareTool(QMAKE_CREATEPACKAGE, createpackage) | |
symbian-abld|symbian-sbsv2 { | |
symbian-sbsv2 { | |
CONVERT_GCCE_PARAM = -g | |
} else { | |
CONVERT_GCCE_PARAM = | |
} | |
make_cache_name = .make.cache | |
sis_target.target = sis | |
sis_target.commands = $(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 \ | |
) \ | |
) | |
sis_target.depends += $${baseTarget}_template.pkg | |
ok_sis_target.target = ok_sis | |
ok_sis_target.commands = $$QMAKE_CREATEPACKAGE $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) $${baseTarget}_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 $$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 \ | |
) \ | |
) | |
unsigned_sis_target.depends += $${baseTarget}_template.pkg | |
ok_unsigned_sis_target.target = ok_unsigned_sis | |
ok_unsigned_sis_target.commands = $$QMAKE_CREATEPACKAGE $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg $(QT_SIS_TARGET) | |
target_sis_target.target = $${baseTarget}.sis | |
target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis | |
# The installer_sis target has dependency to sis target, so it will regenerate sis package. | |
# To create smart installer wrapper for for an existing sis package, use ok_installer_sis target directly. | |
installer_sis_target.target = installer_sis | |
installer_sis_target.commands = $(MAKE) -f $(MAKEFILE) ok_installer_sis | |
installer_sis_target.depends = $${baseTarget}_installer.pkg sis | |
ok_installer_sis_target.target = ok_installer_sis | |
ok_installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \ | |
$(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE) | |
ok_installer_sis_target.depends = $${baseTarget}_installer.pkg | |
unsigned_installer_sis_target.target = unsigned_installer_sis | |
unsigned_installer_sis_target.commands = $(MAKE) -f $(MAKEFILE) ok_unsigned_installer_sis | |
unsigned_installer_sis_target.depends = $${baseTarget}_installer.pkg unsigned_sis | |
ok_unsigned_installer_sis_target.target = ok_unsigned_installer_sis | |
ok_unsigned_installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) -o $${baseTarget}_installer.pkg | |
ok_unsigned_installer_sis_target.depends = $${baseTarget}_installer.pkg | |
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 $$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 \ | |
) \ | |
) | |
stub_sis_target.depends += $${baseTarget}_stub.pkg | |
ok_stub_sis_target.target = ok_stub_sis | |
ok_stub_sis_target.commands = $$QMAKE_CREATEPACKAGE -s $(QT_SIS_OPTIONS) $${baseTarget}_stub.pkg \ | |
$(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE) | |
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 \ | |
unsigned_installer_sis_target \ | |
ok_unsigned_installer_sis_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 QT_SIS_TARGET ?= $(QT_SIS_TARGET) >> $$make_cache_name | |
QMAKE_EXTRA_TARGETS += store_build_target | |
} | |
} else { | |
sis_destdir = $$DESTDIR | |
isEmpty(sis_destdir):sis_destdir = . | |
!equals(TARGET, "$$baseTarget"):sis_destdir = $$sis_destdir/$$dirname(TARGET) | |
sis_target.target = sis | |
sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \ | |
- $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE) | |
sis_target.depends = first $${baseTarget}_template.pkg | |
unsigned_sis_target.target = unsigned_sis | |
unsigned_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg | |
unsigned_sis_target.depends = first $${baseTarget}_template.pkg | |
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 = $(MAKE) -f $(MAKEFILE) ok_installer_sis | |
installer_sis_target.depends = $${baseTarget}_installer.pkg sis | |
ok_installer_sis_target.target = ok_installer_sis | |
ok_installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \ | |
$(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE) | |
ok_installer_sis_target.depends = $${baseTarget}_installer.pkg | |
unsigned_installer_sis_target.target = unsigned_installer_sis | |
unsigned_installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) -o $${baseTarget}_installer.pkg | |
unsigned_installer_sis_target.depends = $${baseTarget}_installer.pkg unsigned_sis | |
!isEmpty(sis_destdir):!equals(sis_destdir, "."):!equals(sis_destdir, "./") { | |
sis_target.commands += && $$QMAKE_MOVE $${baseTarget}.sis $$sis_destdir | |
unsigned_sis_target.commands += && $$QMAKE_MOVE $${baseTarget}_unsigned.sis $$sis_destdir | |
installer_sis_target.commands += && $$QMAKE_MOVE $${baseTarget}_installer.sis $$sis_destdir | |
unsigned_installer_sis_target.commands += && $$QMAKE_MOVE $${baseTarget}_unsigned_installer.sis $$sis_destdir | |
} | |
QMAKE_EXTRA_TARGETS += sis_target \ | |
unsigned_sis_target \ | |
target_sis_target \ | |
installer_sis_target \ | |
ok_installer_sis_target \ | |
unsigned_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. | |
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. | |
# 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 | |
} | |
} |