skins/AknSkinContent/group/skingenerator.flm
author Simon Howkins <simonh@symbian.org>
Wed, 03 Nov 2010 16:12:39 +0000
branchRCL_3
changeset 127 99f54a3c8e3f
parent 108 73fa3ba3e5e0
permissions -rw-r--r--
Removed '-' character which was interfering with the operation of the SKNMIFGUARD.

#
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
#
# Initial Contributors:
# Nokia Corporation - initial contribution.
#
# Contributors:
#
# Description:
#

# ============================================================================
# skingenerator.flm
# This flm will generate both .skn and also .mif files
#
# Header file exporting Function Like Makefile (FLM)
# The file destinations  relative to EPOCROOT
# ============================================================================

## Parameters that are expected
# AKNSSKINNAME
# AKNSSKINREALNAME
# AKNSSKINUID
# INPUTBMPS (to be specified in the bld.inf as 'no' if it doesn't has bmps as input); by default assumes that it uses bmps as input

CREATABLEPATHS:=
CLEANTARGETS:=
TARGETDIRS:=
RELEASEABLES:=

# Check if all the inputs are present
$(if $(AKNSSKINNAME),,$(error Must define AKNSSKINNAME))
$(if $(AKNSSKINREALNAME),,$(error Must define AKNSSKINREALNAME))
$(if $(AKNSSKINUID),,$(error Must define AKNSSKINUID))

# AKNSTARGETDIR    --> to copy .skn files
# AKNSBMPTARGETDIR --> to copy .mif/.mbm files
#MattD 20091208 - Would be prettier if I generated these, but I'm short on time...
AKNSTARGETDIR:=$(EPOCROOT)/epoc32/data/z/private/10207114/import/$(AKNSSKINUID)
AKNSTARGETDIR:=${AKNSTARGETDIR} $(EPOCROOT)/epoc32/release/winscw/udeb/z/private/10207114/import/$(AKNSSKINUID)
AKNSTARGETDIR:=${AKNSTARGETDIR} $(EPOCROOT)/epoc32/release/winscw/urel/z/private/10207114/import/$(AKNSSKINUID)

AKNSBMPTARGETDIR:=$(EPOCROOT)/epoc32/data/z/resource/skins/$(AKNSSKINUID)
AKNSBMPTARGETDIR:=${AKNSBMPTARGETDIR} $(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/skins/$(AKNSSKINUID)
AKNSBMPTARGETDIR:=${AKNSBMPTARGETDIR} $(EPOCROOT)/epoc32/release/winscw/urel/z/resource/skins/$(AKNSSKINUID)

CREATABLEPATHS:=$(AKNSTARGETDIR) $(AKNSBMPTARGETDIR)

# By default
#AKNSGENDIR:=
AKNSDATAGENDIR:=$(EPOCROOT)/epoc32/build/generated/skins/$(AKNSSKINNAME)/data
AKNSTARGETDIR:=$(subst //,/,$(AKNSTARGETDIR))
AKNSBMPTARGETDIR:=$(subst //,/,$(AKNSBMPTARGETDIR))
AKNSSRCDIR:=$(subst //,/,$(AKNSSRCDIR))
AKNSGENDIR:=$(subst //,/,$(AKNSGENDIR))
EPOCTOOLS:=$(subst //,/,$(EPOCTOOLS))

TARGETSKN:=$(subst //,/,$(patsubst %,%/$(notdir $(AKNSSKINREALNAME).skn),$(AKNSTARGETDIR)))
TARGETMIF:=$(subst //,/,$(patsubst %,%/$(notdir $(AKNSSKINREALNAME).mif),$(AKNSBMPTARGETDIR)))
TARGETMBM:=$(subst //,/,$(patsubst %,%/$(notdir $(AKNSSKINREALNAME).mbm),$(AKNSBMPTARGETDIR)))

CREATABLEPATHS:=$(CREATABLEPATHS) $(AKNSGENDIR) $(AKNSDATAGENDIR)

ifeq ($(SKINDEBUG),0)
$(info <AKNSSKINREALNAME aknsskinrealname='$(AKNSSKINREALNAME)'/>)
$(info <TARGETSKN targetskn='$(TARGETSKN)'/>)
$(info <TARGETMIF targetmif='$(TARGETMIF)'/>)
$(info <AKNSSRCDIR aknssrcdir='$(AKNSSRCDIR)'/>)
$(info <AKNSDATAGENDIR aknsdatagendir='$(AKNSDATAGENDIR)'/>)
$(info <CREATABLEPATHS creatablepaths='$(CREATABLEPATHS)'/>)
endif

SKNMIFGUARD:=$(call sanitise,TARGET_$(TARGETMIF))

define generatesknandmif
$(SKNMIFGUARD):=1
RELEASEABLES:=$(TARGETSKN) $(TARGETMIF)
ifeq ($(INPUTBMPS),yes)
RELEASEABLES:=$$(RELEASEABLES) $(TARGETMBM)
endif

BITMAP:: $$(RELEASEABLES)

$(TARGETMIF) : $(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).mif
	$(call startrule,mifcopy,FORCESUCCESS) \
	$(GNUCP) '$(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).mif' '$$@' \
	$(call endrule,mifcopy)

$(TARGETSKN) : $(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).skn
	$(call startrule,skincopy,FORCESUCCESS) \
	$(GNUCP) '$(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).skn' '$$@' \
	$(call endrule,skincopy)

$(TARGETMBM) : $(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).mbm 
	$(call startrule,mbmcopy,FORCESUCCESS) \
	$(GNUCP) '$(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).mbm' '$$@' \
	$(call endrule,mbmcopy)

# Quick patch to get it to do the right thing...
$(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).mbm : $(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).mif 

$(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).skn : $(SKINCOMPILER) $(AKNSSRCDIR)/$(AKNSSKINNAME).txt
	$(call startrule,generateskn,FORCESUCCESS) \
	cd $(AKNSSRCDIR) && $(SKINCOMPILER) -m$(AKNSDATAGENDIR) -t$(AKNSDATAGENDIR) $(AKNSSKINNAME).txt $(AKNSSKINREALNAME) \
	$(call endrule,generateskn)

#Add the temporary files to the cleanlist
CLEANTARGETS:=$$(CLEANTARGETS) $(addprefix $(AKNSDATAGENDIR)/,$(addprefix $(AKNSSKINREALNAME),.skn .pkg _MIFList.txt))

$(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).mif : $(MIFTOOL) $(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).skn
	$(call startrule,generatemif,FORCESUCCESS)\
	cd $(AKNSSRCDIR) && \
	$(MIFTOOL) $(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).mif -V$(SVGENCODINGVERSION) -F$(AKNSDATAGENDIR)/$(AKNSSKINREALNAME)_MIFList.txt \
	$(call endrule,generatemif)

CLEANTARGETS:=$$(CLEANTARGETS) $$(RELEASEABLES) $(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).mif
ifeq ($(INPUTBMPS),yes)
CLEANTARGETS:=$$(CLEANTARGETS) $(AKNSDATAGENDIR)/$(AKNSSKINREALNAME).mbm
endif
endef

ifeq ($($(SKNMIFGUARD)),)
$(eval $(generatesknandmif))
endif

# Create dirs
$(call makepath,$(CREATABLEPATHS))

# Clean up
$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS)))

# for the abld -what target
$(eval $(call whatmacro,$(RELEASEABLES),WHATBITMAP))