summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPasi Pentikainen <pasi.a.pentikainen@nokia.com>2011-12-01 16:22:30 +0200
committerPasi Pentikainen <pasi.a.pentikainen@nokia.com>2011-12-02 16:50:31 +0200
commit500297890de63c1ecec5c16511b80a788f6812f1 (patch)
treeb790a1967feeb03a9116515d8ee63eca78a742d1
parent8932a8942d6a35917fc7a083efc043db1764bcec (diff)
ServiceFW Symbian ROM DB creation fix
Move the Service Framework ROM DB creation into FINAL phase of raptor extension, so that 1) there is just one export even if multiple packages are adding to DB, and 2) the DB creation is done on single step to prevent any parallel build issues. Reviewed-by: Aapo Haapanen Task-number: ou1cimx1#933912
-rw-r--r--features/mkservicedb/bld.inf11
-rw-r--r--features/mkservicedb/qtmobilitydb.flm47
-rw-r--r--features/mkservicedb/qtmobilitydb.meta3
-rw-r--r--features/mkservicedb/qtmobilitydb.xml (renamed from features/qtservice.xml)5
-rw-r--r--features/qtservice.flm50
-rw-r--r--features/qtservice.prf14
-rw-r--r--package_definition.xml3
-rw-r--r--src/s60installs/deviceconfiguration/bld.inf2
8 files changed, 69 insertions, 66 deletions
diff --git a/features/mkservicedb/bld.inf b/features/mkservicedb/bld.inf
new file mode 100644
index 0000000000..64cb2330bd
--- /dev/null
+++ b/features/mkservicedb/bld.inf
@@ -0,0 +1,11 @@
+PRJ_EXPORTS
+
+qtmobilitydb.flm /epoc32/tools/makefile_templates/qt/
+qtmobilitydb.meta /epoc32/tools/makefile_templates/qt/
+qtmobilitydb.xml /epoc32/tools/makefile_templates/qt/
+
+
+PRJ_EXTENSIONS
+
+START EXTENSION qt/qtmobilitydb
+END \ No newline at end of file
diff --git a/features/mkservicedb/qtmobilitydb.flm b/features/mkservicedb/qtmobilitydb.flm
new file mode 100644
index 0000000000..14fa1f0f2f
--- /dev/null
+++ b/features/mkservicedb/qtmobilitydb.flm
@@ -0,0 +1,47 @@
+# /****************************************************************************
+# **
+# ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+# **
+# ****************************************************************************/
+
+# FLM to be used for registering/unregistering QtServiceFW services build time
+SFWTOOL := $(EPOCROOT)/epoc32/tools/servicedbgen$(DOTEXE)
+
+#choose target database to deal with
+ifeq ($(PLATFORM), WINSCW)
+QTSERVICE_TARGET := -twinscw
+DES_DIR := $(EPOCROOT)/epoc32/winscw/c/private/2002AC7F/des
+DBFILENAME := $(EPOCROOT)/epoc32/winscw/c/private/2002AC7F/QtServiceFramework_4.8_system.db
+else
+ifeq ($(PLATFORM), ARMV5)
+QTSERVICE_TARGET := -tarmv5
+DES_DIR := $(EPOCROOT)/epoc32/data/z/private/2002AC7F/des
+DBFILENAME := $(EPOCROOT)/epoc32/data/z/private/2002AC7F/QtServiceFramework_4.8_system.db
+else
+QTSERVICE_TARGET := -tall
+DES_DIR := $(EPOCROOT)/epoc32/data/z/private/2002AC7F/des
+DBFILENAME := $(EPOCROOT)/epoc32/data/z/private/2002AC7F/QtServiceFramework_4.8_system.db
+endif
+endif
+
+define handle_service
+
+# Files named as init_*.xml need the -i flag, others do not
+FINAL::
+ $(call startrule,add_services,FORCESUCCESS) \
+ $(foreach file,$(filter init_%,$(notdir $(wildcard $(DES_DIR)/*.xml))), \
+ $(SFWTOOL) $(QTSERVICE_TARGET) -i add $(DES_DIR)/$(file); ) \
+ $(foreach file,$(filter-out init_%,$(notdir $(wildcard $(DES_DIR)/*.xml))), \
+ $(SFWTOOL) $(QTSERVICE_TARGET) add $(DES_DIR)/$(file); ) \
+ $(call endrule,add_services)
+endef
+
+SINGLETON:=done_$(call sanitise,$(DES_DIR))
+
+ifeq ($($(SINGLETON)),)
+$(SINGLETON):=1
+$(eval $(handle_service))
+$(eval $(call raptor_release,$(DBFILENAME),WHATMAKEFILE))
+$(eval $(call raptor_clean,$(DBFILENAME),WHATMAKEFILE))
+endif
+
diff --git a/features/mkservicedb/qtmobilitydb.meta b/features/mkservicedb/qtmobilitydb.meta
new file mode 100644
index 0000000000..889a078abe
--- /dev/null
+++ b/features/mkservicedb/qtmobilitydb.meta
@@ -0,0 +1,3 @@
+platform win32
+makefile gnumake
+techstream qt
diff --git a/features/qtservice.xml b/features/mkservicedb/qtmobilitydb.xml
index 2e467cda28..6af45a9012 100644
--- a/features/qtservice.xml
+++ b/features/mkservicedb/qtmobilitydb.xml
@@ -5,9 +5,6 @@
<!-- Tools interfaces -->
- <interface name="qt.qtservice" extends="Symbian.UserFLM" flm="qtservice.flm">
- <param name='QTSERVICE_DESCRIPTOR' default='' />
- <param name='QTSERVICE_INITIALIZE' default='' />
- </interface>
+ <interface name="qt.qtmobilitydb" extends="Symbian.UserFLM" flm="qtmobilitydb.flm"/>
</build>
diff --git a/features/qtservice.flm b/features/qtservice.flm
deleted file mode 100644
index 9d3ae40905..0000000000
--- a/features/qtservice.flm
+++ /dev/null
@@ -1,50 +0,0 @@
-# /****************************************************************************
-# **
-# ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-# ** Contact:
-# **
-# ****************************************************************************/
-
-# FLM to be used for registering/unregistering QtServiceFW services build time
-SFWTOOL := $(EPOCROOT)/epoc32/tools/servicedbgen$(DOTEXE)
-
-#choose target database to deal with
-ifeq ($(PLATFORM), WINSCW)
-QTSERVICE_TARGET := -twinscw
-DES_PATH := ${EPOCROOT}/epoc32/winscw/c/private/2002AC7F/des/$(QTSERVICE_DESCRIPTOR)
-RELEASEABLES := ${EPOCROOT}/epoc32/winscw/c/private/2002AC7F/QtServiceFramework_4.8_system.db
-else
-ifeq ($(PLATFORM), ARMV5)
-QTSERVICE_TARGET := -tarmv5
-DES_PATH := $(EPOCROOT)/epoc32/data/z/private/2002AC7F/des/$(QTSERVICE_DESCRIPTOR)
-RELEASEABLES := $(EPOCROOT)/epoc32/data/z/private/2002AC7F/QtServiceFramework_4.8_system.db
-else
-QTSERVICE_TARGET := -tall
-DES_PATH := $(EPOCROOT)/epoc32/data/z/private/2002AC7F/des/$(QTSERVICE_DESCRIPTOR)
-RELEASEABLES := $(EPOCROOT)/epoc32/data/z/private/2002AC7F/QtServiceFramework_4.8_system.db
-endif
-endif
-
-define handle_service
-
-MAKEFILE::
- $(call startrule,add_service,FORCESUCCESS) \
- $(SFWTOOL) $(QTSERVICE_TARGET) $(QTSERVICE_INITIALIZE) add $(DES_PATH) \
- $(call endrule,add_service)
-
-CLEAN::
- $(call startrule,remove_service,FORCESUCCESS) \
- $(SFWTOOL) $(QTSERVICE_TARGET) $(QTSERVICE_INITIALIZE) remove $(DES_PATH) \
- $(call endrule,remove_service)
-
-endef
-
-SINGLETON:=done_$(call sanitise,$(DES_PATH))
-
-ifeq ($($(SINGLETON)),)
-$(SINGLETON):=1
-$(eval $(handle_service))
-# this is going to cause some problems when several component are trying to register to the db...
-$(eval $(call whatmacro,$(RELEASEABLES),WHATMAKEFILE))
-endif
-
diff --git a/features/qtservice.prf b/features/qtservice.prf
index ed7f522440..00999f1144 100644
--- a/features/qtservice.prf
+++ b/features/qtservice.prf
@@ -11,26 +11,20 @@ symbian {
QTC_COMMAND = add
contains(QTSERVICE.INITIALIZE, yes) {
QTSERVICE_INITIALIZE = -i
+
+ #raptor uses filename for determining the usage of -i
+ symbian-sbsv2:QTSERVICE_INITIALIZE_PREFIX=init_
}
#deploy descriptor file to service framework server's private folder
#so batch mode tool execution can include the service
qtservice_descriptors = $$QTSERVICE.DESCRIPTOR
for(descriptor, qtservice_descriptors) {
- BASENAME = $$basename(descriptor)
+ BASENAME = $${QTSERVICE_INITIALIZE_PREFIX}$$basename(descriptor)
BLD_INF_RULES.prj_exports += "$$descriptor /epoc32/winscw/c/private/2002AC7F/des/$$BASENAME"
BLD_INF_RULES.prj_exports += "$$descriptor /epoc32/data/z/private/2002AC7F/des/$$BASENAME"
}
- symbian-sbsv2{
- sfwextension = \
- "START EXTENSION qt/qtservice" \
- "OPTION QTSERVICE_DESCRIPTOR $$basename(QTSERVICE.DESCRIPTOR)" \
- "OPTION QTSERVICE_INITIALIZE $$QTSERVICE_INITIALIZE" \
- "END"
- BLD_INF_RULES.prj_extensions += sfwextension
- }
-
symbian-abld{
DUMMY = qtservice.out
qtc.output = $$DUMMY
diff --git a/package_definition.xml b/package_definition.xml
index 253e748657..413858c010 100644
--- a/package_definition.xml
+++ b/package_definition.xml
@@ -8,6 +8,9 @@
<component id="qtmobility_build" name="Qt Mobility Build" introduced="^4" filter="s60">
<unit bldFile="." qt:proFile="qtmobility.pro"/>
</component>
+ <component id="qtmobility_mkservicedb" name="Qt Mobility create registry" introduced="^4" filter="s60">
+ <unit bldFile="features/mkservicedb" />
+ </component>
</collection>
<collection id="qtmobility_demos" name="Qt Mobility Demos" level="app">
<component id="qtmobility_demos_build" name="Qt Mobility Demos Build" filter="s60,test,qtmobilitydemos,build_as_app" introduced="^4">
diff --git a/src/s60installs/deviceconfiguration/bld.inf b/src/s60installs/deviceconfiguration/bld.inf
index 3cf99b3683..da9bf20557 100644
--- a/src/s60installs/deviceconfiguration/bld.inf
+++ b/src/s60installs/deviceconfiguration/bld.inf
@@ -41,8 +41,6 @@ qtmobility.sisx CRML_EXPORT_PATH(../content/sis/,uda_content)
qtmobility_stub.sis /epoc32/data/z/system/install/qtmobility_stub.sis
../../../bin/servicedbgen.exe /epoc32/tools/servicedbgen.exe
-../../../features/qtservice.xml /epoc32/tools/makefile_templates/qt/qtservice.xml
-../../../features/qtservice.flm /epoc32/tools/makefile_templates/qt/qtservice.flm
../../../features/qtservice.prf /epoc32/tools/qt/mkspecs/features/symbian/qtservice.prf
PRJ_MMPFILES