qt5base-lts/mkspecs/features/symbian/sis_targets.prf
Miikka Heikkinen b2c43d5a84 Fix "make sis" for projects that have empty OBJECTS_DIR
Temp directory for packagaging got created to system root if
OBJECTS_DIR was empty. Fixed it to use '.' instead in those cases.

Reviewed-by: Janne Koskinen
(cherry picked from commit 930db5826ff2c02d54f2851494000c5fab97da54)
2011-05-10 12:54:45 +02:00

231 lines
12 KiB
Plaintext

# Sis file creation
GENERATE_SIS_TARGETS = false
contains(TEMPLATE, app): GENERATE_SIS_TARGETS = true
else:!equals(DEPLOYMENT, default_deployment) {
for(dep_item, $$list($$DEPLOYMENT)) {
### Qt 5: remove .sources, inconsistent with INSTALLS
dep_item_sources = $$eval($${dep_item}.files) $$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)
sis_objects_dir = $$OBJECTS_DIR
isEmpty(sis_objects_dir):sis_objects_dir = .
CREATEPACKAGE_DIR = $$sis_objects_dir/createpackage_tmp
QMAKE_CLEAN += $$CREATEPACKAGE_DIR/*
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 -t $$CREATEPACKAGE_DIR $(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 -t $$CREATEPACKAGE_DIR $(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 -t $$CREATEPACKAGE_DIR $(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 -t $$CREATEPACKAGE_DIR $(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 -t $$CREATEPACKAGE_DIR -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
QMAKE_CLEAN += $$make_cache_name
}
} 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 -t $$CREATEPACKAGE_DIR $(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 -t $$CREATEPACKAGE_DIR $(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 -t $$CREATEPACKAGE_DIR $(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 -t $$CREATEPACKAGE_DIR $(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
}
}