From: Nibha Sharma Date: Thu, 16 Jul 2020 10:45:53 +0000 (+0530) Subject: [TBT][Non-ACR][operationview][TFDF-10877,TFDF-10871 operation view service is not... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c9372f51a6f18f44fabb89aaf3e4894a31337df9;p=test%2Ftct%2Fnative%2Fbehavior.git [TBT][Non-ACR][operationview][TFDF-10877,TFDF-10871 operation view service is not working. fixed by making both projects as multiproject] Change-Id: I834ff6e52f2558ffbb738a557e4c85494eb85679 Signed-off-by: Nibha Sharma --- diff --git a/coretbt_serviceapp/.cproject b/coretbt_serviceapp/.cproject index 6aa19f3..3d39848 100644 --- a/coretbt_serviceapp/.cproject +++ b/coretbt_serviceapp/.cproject @@ -1,579 +1,520 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/coretbt_serviceapp/.tproject b/coretbt_serviceapp/.tproject index ccab492..5730f8b 100644 --- a/coretbt_serviceapp/.tproject +++ b/coretbt_serviceapp/.tproject @@ -2,7 +2,7 @@ - wearable-5.0 + wearable-5.5 diff --git a/coretbt_serviceapp/Build/appendix.mk b/coretbt_serviceapp/Build/appendix.mk new file mode 100644 index 0000000..2e06c34 --- /dev/null +++ b/coretbt_serviceapp/Build/appendix.mk @@ -0,0 +1 @@ +# Appendix diff --git a/coretbt_serviceapp/Build/basedef.mk b/coretbt_serviceapp/Build/basedef.mk new file mode 100644 index 0000000..a762983 --- /dev/null +++ b/coretbt_serviceapp/Build/basedef.mk @@ -0,0 +1,34 @@ +# Add inputs and outputs from these tool invocations to the build variables + + +OS_NAME := $(shell $(UNAME)) + + +#ifeq ($(origin BUILD_CONFIG), undefined) +BUILD_CONFIG ?= Debug +#endif + +#ifeq ($(origin ARCH), undefined) +ARCH ?= i386 +#endif + +#ifeq ($(origin PROJPATH), undefined) +PROJPATH ?= . +#endif + + +#ifeq ($(origin PROJ_PATH), undefined) +PROJ_PATH ?= $(PROJPATH) +#endif + +#ifeq ($(strip $(OUTPUT_DIR)),) +#OUTPUT_DIR ?= $(PROJ_PATH)/$(BUILD_CONFIG) +#endif + +#ifeq ($(strip $(BUILD_ARCH)),) +BUILD_ARCH ?= $(ARCH) +#endif + +#ifeq ($(strip $(ENVENTOR_PATH)),) +ENVENTOR_PATH ?= $(SDK_TOOLPATH)/enventor +#endif diff --git a/coretbt_serviceapp/Build/build_c.mk b/coretbt_serviceapp/Build/build_c.mk new file mode 100644 index 0000000..5fffeea --- /dev/null +++ b/coretbt_serviceapp/Build/build_c.mk @@ -0,0 +1,113 @@ +# C/C++ build script + + +_FUNC_EXT2O = $(patsubst %.$(3),$(1)/%.o,$(2)) +_FUNC_C2O = $(call _FUNC_EXT2O,$(1),$(2),c) +_FUNC_CPP2O = $(call _FUNC_EXT2O,$(1),$(2),cpp) + + +# parameter : +# $(1) - C/C++ soruce file +# $(2) - output path +# $(3) - .ext +# $(4) - unique id +CONVERT_ESC_EXT_TO_O = $(addprefix $(2)/,$(notdir $(patsubst %.$(3),%-$(4).o,$(1)))) + +#CONVERT_ESC_C_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),c) +#CONVERT_ESC_CPP_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),cpp) + + +# parameter : +# $(1) - encoded one C/C++ soruce file +# $(2) - output path +# $(3) - ext title (C/C++) +# $(4) - ext (c/cpp) +# $(5) - compiler ($(CC)/$(CXX)) +# $(6) - build opt +# $(7) - build opt file +# output : +# $(8) - output files list +define C_BUILD_PROC_RAW +$(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8)) : $(call DECODE_4MAKE,$(1)) $(7) + @echo ' Building file: $$<' + @echo ' Invoking: $(3) Compiler' + $$(call MAKEDIRS,$$(@D)) + $(5) -c "$$<" -o "$$@" $(6) -Wp,@$(7) + @echo ' Finished building: $$<' +$(9) += $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8)) +endef + + +# parameter : +# $(1) - output paths +# $(2) - src paths +# $(3) - inc paths +# $(4) - inc files +# $(5) - Defs +# $(6) - UnDefs +# $(7) - compiler opt +# $(8) - compiler opt file +# $(9) - ext title (C/C++) +# $(10) - ext (c/cpp) +# $(11) - compiler ($(CC)/$(CXX)) +# output : +# $(12) - OBJS +# return : +# none +define C_PROC_RAW + +_OUTPUT_DIR := $$(strip $(1))# +_SRCS := $(2)# +_INCS := $(3)# +_INC_FILES := $(4)# +_DEFS := $(5)# +_UNDEFS := $(6)# + +_OPT := $(7) +_OPT_FILE := $(8) + +_EXT_TITLE := $(9) +_EXT := $(10) +_COMPILER := $(11) + +#_OUTPUT_FILES := $(12) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) +_ENC_SRCS := $$(filter %.$$(_EXT),$$(_ENC_SRCS)) + +ifneq ($$(strip $$(_SRCS)),) + +_NORMAL_SRCS := $$(filter-out %*.$$(_EXT),$$(_ENC_SRCS)) +_WIDLCARD_SRCS := $$(filter %*.$$(_EXT),$$(_ENC_SRCS)) + +_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \ + $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var)))) + +ifneq ($$(strip $$(_ALL_SRCS)),) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) + +_CDEFS := $$(CDEFS) +_CDEFS += $$(addprefix -D,$$(_DEFS)) +_CDEFS += $$(addprefix -U,$$(_UNDEFS)) + +_ENC_C_INCS := $$(call ENCODE_4MAKE,$$(_INCS)) +_ENC_C_INCS := $$(addprefix -I,$$(_ENC_C_INCS)) + +_ENC_INC_FILES := $$(call ENCODE_4MAKE,$$(_INC_FILES)) +_ENC_INC_FILES += $$(addprefix -include,$$(_ENC_INC_FILES)) + +_C_INCS := $$(call DECODE_4MAKE,$$(_ENC_C_INCS) $$(_ENC_C_INC_FILES)) + +_DEFS := $$(_CDEFS) $$(_C_INCS) -I"pch" $$(_OPT) + +_UNIQUE_ID = $$(firstword $$(shell echo $$(var) | $$(CKSUM))) + +$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call C_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_EXT_TITLE),$$(_EXT),$$(_COMPILER),$$(_DEFS),$$(_OPT_FILE),$$(_UNIQUE_ID),$(12)))) + +endif # (_(strip _(_ALL_SRCS)),) + +endif # (_(strip _(_SRCS)),) + + +endef diff --git a/coretbt_serviceapp/Build/build_edc.mk b/coretbt_serviceapp/Build/build_edc.mk new file mode 100644 index 0000000..6f85fdd --- /dev/null +++ b/coretbt_serviceapp/Build/build_edc.mk @@ -0,0 +1,81 @@ +# EDC build script + + +FUNC_EDC2EDJ = $(patsubst %.edc,$(2)/%.edj,$(1)) + +# parameter : +# $(1) - C/C++ soruce file +# $(2) - output path +CONVERT_ESC_EDC_TO_EDJ = $(call CONVERT_4MAKE_TO_OUT,$(call FUNC_EDC2EDJ,$(1),$(2))) + + +# parameter : +# $(1) - encoded one C/C++ soruce file +# $(2) - output path +# $(3) - build opt +# output : +# $(4) - output files list +define EDJ_BUILD_PROC_RAW +$(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2)) : $(call DECODE_4MAKE,$(1)) + @echo ' Building file: $$<' + @echo ' Invoking: EDC Resource Compiler' + $$(call MAKEDIRS,$$(@D)) + $$(EDJE_CC) $(3) "$$<" "$$@" + @echo ' Finished building: $$<' +$(4) += $(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2)) +endef + + +# parameter : +# $(1) - output paths +# $(2) - src paths +# $(3) - image inc paths +# $(4) - sound inc paths +# $(5) - font inc paths +# output : +# $(6) - OBJS +# return : +# none +define EDJ_PROC_RAW + +_OUTPUT_DIR := $$(strip $(1))# +_SRCS := $(2)# +_IMAGE_DIRS := $(3)# +_SOUND_DIRS := $(4)# +_FONT_DIRS := $(5)# + +ifneq ($$(strip $$(_SRCS)),) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) + +_NORMAL_SRCS := $$(filter-out %*.edc,$$(_ENC_SRCS)) +_WIDLCARD_SRCS := $$(filter %*.edc,$$(_ENC_SRCS)) + +_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \ + $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var)))) + +ifneq ($$(strip $$(_ALL_SRCS)),) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) + +_COMPILER_FLAGS := -id "$$(ENVENTOR_SHARED_RES_PATH)/images" +_COMPILER_FLAGS += -sd "$$(ENVENTOR_SHARED_RES_PATH)/sounds" +_COMPILER_FLAGS += -fd "$$(ENVENTOR_SHARED_RES_PATH)/fonts" + +ifneq ($$(strip $$(_IMAGE_DIRS)),) +_COMPILER_FLAGS += $$(addprefix -id ,$$(_IMAGE_DIRS)) +endif +ifneq ($$(strip $$(_SOUND_DIRS)),) +_COMPILER_FLAGS += $$(addprefix -sd ,$$(_SOUND_DIRS)) +endif +ifneq ($$(strip $$(_FONT_DIRS)),) +_COMPILER_FLAGS += $$(addprefix -fd ,$$(_FONT_DIRS)) +endif + +$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call EDJ_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_COMPILER_FLAGS),$(6)))) + +endif # (_(strip _(_ALL_SRCS)),) + +endif # (_(strip _(_SRCS)),) + +endef diff --git a/coretbt_serviceapp/Build/build_po.mk b/coretbt_serviceapp/Build/build_po.mk new file mode 100644 index 0000000..d88d71a --- /dev/null +++ b/coretbt_serviceapp/Build/build_po.mk @@ -0,0 +1,64 @@ +# PO build script + + +_FUNC_PO2MO = $(patsubst %.po,$(2)/res/locale/%/LC_MESSAGES/$(3).mo,$(notdir $(1))) + + +# parameter : +# $(1) - C/C++ soruce file +# $(2) - output path +# $(3) - app name +CONVERT_ESC_PO_TO_MO = $(call CONVERT_4MAKE_TO_OUT,$(call _FUNC_PO2MO,$(1),$(2),$(3))) + + +# parameter : +# $(1) - encoded one C/C++ soruce file +# $(2) - output path +# $(3) - app name +# output : +# $(4) - output files list +define MO_BUILD_PROC_RAW +$(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3)) : $(call DECODE_4MAKE,$(1)) + @echo ' Building file: $$<' + @echo ' Invoking: msgfmt String Formatter' + $$(call MAKEDIRS,$$(@D)) + $$(MSGFMT) -o "$$@" "$$<" + @echo ' Finished building: $$<' +$(4) += $(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3)) +endef + + +# parameter : +# $(1) - output dir +# $(2) - src paths +# $(3) - app name +# output : +# $(4) - OBJS + +define MO_PROC_RAW + +_OUTPUT_DIR := $(1) +_SRCS := $(2) +_APPNAME := $(3) + +ifneq ($$(strip $$(_SRCS)),) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) + +_NORMAL_SRCS := $$(filter-out %*.po,$$(_ENC_SRCS)) +_WIDLCARD_SRCS := $$(filter %*.po,$$(_ENC_SRCS)) + +_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \ + $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var)))) + +ifneq ($$(strip $$(_ALL_SRCS)),) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) + +$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call MO_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_APPNAME),$(4)))) + +endif # (_(strip _(_ALL_SRCS)),) + +endif # (_(strip _(_SRCS)),) + +endef diff --git a/coretbt_serviceapp/Build/flags.mk b/coretbt_serviceapp/Build/flags.mk new file mode 100644 index 0000000..676678a --- /dev/null +++ b/coretbt_serviceapp/Build/flags.mk @@ -0,0 +1,24 @@ + +DEBUG_OP = -g3 +CPP_DEBUG_OP = + +OPTIMIZATION_OP = -O0 +CPP_OPTIMIZATION_OP = + +COMPILE_FLAGS = $(DEBUG_OP) $(OPTIMIZATION_OP) -Wall -c -fmessage-length=0 + +CPP_COMPILE_FLAGS = $(CPP_DEBUG_OP) $(CPP_OPTIMIZATION_OP) + +LINK_FLAGS = + +ifeq ($(STRIP_INFO),off) +LINK_FLAGS = +else +ifeq ($(STRIP_INFO),on) +LINK_FLAGS = -s +endif +endif + +AR_FLAGS = + +EDC_COMPILE_FLAGS = \ No newline at end of file diff --git a/coretbt_serviceapp/Build/funcs.mk b/coretbt_serviceapp/Build/funcs.mk new file mode 100644 index 0000000..3ba778b --- /dev/null +++ b/coretbt_serviceapp/Build/funcs.mk @@ -0,0 +1,50 @@ + +BSLASH := \\# +NULL_CHAR := # +SPACE := \ # +COLON := :# +DOTDOT := ..# +SPACE_ESC := &sp;# +COLON_ESC := &co;# +SPACE_OUT := ~sp~# +COLON_OUT := ~co~# +DOTDOT_OUT := ~dtdt~# + +BSLASH2SLASH = $(subst $(BSLASH),/,$(1)) + +REMOVE_TAIL = $(patsubst %/,%,$(1)) + +#LOWER_CASE = $(shell echo translit($(1),[A-Z],[a-z])|$(M4)) +LOWER_CASE = $(shell echo $(1)|$(TR) [A-Z] [a-z]) + +#ifneq ($(findstring Windows,$(OS)),) +# ... +#endif + +FIND_FILES = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///') +FIND_FILES_ESC = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///' -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g') +FIND_FILES_4MAKE = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///') + +FIND_FILES_ABS = $(shell $(FIND) $(1)) +FIND_FILES_ABS_4MAKE = $(shell $(FIND) $(1) -e 's/$(BSLASH) /$(BSLASH)&sp;/g') +FIND_FILES_ABS_ESC = $(shell $(FIND) $(1) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g') + +FIND_FILES_4MAKE = $(shell $(FIND) $(1) | $(SED) 's/ /\\\ /g') + +#ENCODE_ESC = $(shell echo $(1) | $(SED) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g') +#DECODE_ESC = $(shell echo $(1) | $(SED) -e 's/$(BSLASH)&co;/:/g' -e 's/$(BSLASH)&sp;/$(BSLASH) / g') +ENCODE_ESC = $(subst $(SPACE),$(SPACE_ESC),$(subst $(COLON),$(COLON_ESC),$(1))) +DECODE_ESC = $(subst $(COLON_ESC),$(COLON),$(subst $(SPACE_ESC),$(SPACE),$(1))) +ENCODE_4MAKE = $(subst $(SPACE),$(SPACE_ESC),$(1)) +DECODE_4MAKE = $(subst $(SPACE_ESC),$(SPACE),$(1)) + +CONVERT_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE),$(SPACE_OUT),$(1)))) +CONVERT_ESC_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON_ESC),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1)))) +CONVERT_4MAKE_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1)))) + +PROC_NO_EXIST = $(if $(wildcard $(1)),,$(call $(2),$(1))) +define MAKEDIRS0 + @echo ' Building directory: $(1)' + @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(1)) +endef +MAKEDIRS = $(call PROC_NO_EXIST,$(1),MAKEDIRS0) diff --git a/coretbt_serviceapp/Build/makefile b/coretbt_serviceapp/Build/makefile new file mode 100644 index 0000000..117b240 --- /dev/null +++ b/coretbt_serviceapp/Build/makefile @@ -0,0 +1,34 @@ +# +# Usege : make -f /Build/makefile -C +# + +BUILD_SCRIPT_VERSION := 1.1.0 + +.PHONY : app_version app_build app_clean build_version + + +all : app_build + +clean : app_clean + +version : build_version + +#PROJ_ROOT = . +#BUILD_ROOT := $(PROJ_PATH)/Build# + +ifeq ($(MAKE_NAME),mingw32-make) +ifneq ($(SHELL),) +OPTIONS += --eval="SHELL=$(SHELL)" +endif +endif + +app_build : + @echo $(MAKE) -f "$(BUILD_ROOT)/makefile.mk" + @$(MAKE_BIN) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) + +app_clean : + @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) clean + +build_version : + @echo makefile : $(BUILD_SCRIPT_VERSION) + @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) version diff --git a/coretbt_serviceapp/Build/makefile.mk b/coretbt_serviceapp/Build/makefile.mk new file mode 100644 index 0000000..ffe7594 --- /dev/null +++ b/coretbt_serviceapp/Build/makefile.mk @@ -0,0 +1,218 @@ +# +# Usege : make -f /Build/makefile -C +# + +BUILD_SCRIPT_VERSION := 1.2.3 + +.PHONY : app_version app_clean build_version + + +all : app_build + +clean : app_clean + +version : build_version + +_BLANK :=# +_SPACE := $(_BLANK) $(_BLANK)# +_SPACE_4MAKE := \$(_SPACE)# + +NULL_CHAR :=# +SPACE := $(NULL_CHAR) $(NULL_CHAR)# + +PROJ_ROOT := . +_PROJ_ROOT_4MAKE := $(subst $(_SPACE),$(_SPACE_4MAKE),$(PROJ_ROOT))# +PROJ_ROOT=$(_PROJ_ROOT_4MAKE) +_BUILD_ROOT_4MAKE := $(subst $(_SPACE),$(_SPACE_4MAKE),$(BUILD_ROOT))# +BUILD_ROOT=$(_BUILD_ROOT_4MAKE) + +include $(BUILD_ROOT)/basedef.mk + +include $(PROJ_ROOT)/project_def.prop +-include $(PROJ_ROOT)/build_def.prop + +include $(BUILD_ROOT)/funcs.mk + +-include $(BUILD_ROOT)/tooldef.mk +-include $(BUILD_ROOT)/flags.mk +-include $(BUILD_ROOT)/platform.mk + + +APPTYPE := $(type) + +OUTPUT_DIR := $(PROJ_ROOT)/$(BUILD_CONFIG) +OBJ_OUTPUT := $(OUTPUT_DIR)/objs + +LOWER_APPNAME := $(call LOWER_CASE,$(APPNAME)) +APPID2 := $(subst $(basename $(APPID)).,,$(APPID)) + +ifeq ($(strip $(APPTYPE)),app) +APPFILE := $(OUTPUT_DIR)/$(LOWER_APPNAME) +endif +ifeq ($(strip $(APPTYPE)),staticLib) +APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).a +endif +ifeq ($(strip $(APPTYPE)),sharedLib) +APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).so +endif + +ifneq ($(strip $(PLATFORM_INCS)),) +PLATFORM_INCS_FILE := $(OBJ_OUTPUT)/platform_incs_file.inc +endif + +ifneq ($(strip $(RS_LIBRARIES)),) +RS_LIBRARIES_FILE := $(OBJ_OUTPUT)/platform_libs.file +endif + +OBJS_FILE := $(OBJ_OUTPUT)/target_objs.file + +include $(BUILD_ROOT)/build_c.mk + + +ifeq ($(strip $(APPTYPE)),app) +EXT_OP := -fPIE +endif +ifeq ($(strip $(APPTYPE)),staticLib) +EXT_OP := -fPIE +endif +ifeq ($(strip $(APPTYPE)),sharedLib) +EXT_OP := -fPIC +endif + +C_OPT := $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_C_OPTS) +CPP_OPT := $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_CPP_OPTS) +C_OPT_FILE := $(PLATFORM_INCS_FILE) + +OBJS := # + +# Global C/C++ +ifeq ($(strip $(USER_ROOT)),) +USER_ROOT := $(PROJ_ROOT) +endif +$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_INC_FILES),$(USER_DEFS),$(USER_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS)) +$(foreach ext,cpp cxx cc c++ C,$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_CPP_INC_FILES),$(USER_CPP_DEFS),$(USER_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS))) + +# Individual C/C++ +ifneq ($(strip $(USER_EXT_C_KEYS)),) +$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_INC_FILES),$(USER_EXT_$(var)_DEFS),$(USER_EXT_$(var)_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS))) +$(foreach ext,cpp cxx cc c++ C,$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_CPP_INC_FILES),$(USER_EXT_$(var)_CPP_DEFS),$(USER_EXT_$(var)_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS)))) +endif + + +ifneq ($(strip $(USER_LIB_DIRS)),) +_ENC_USER_LIB_DIRS := $(call ENCODE_4MAKE,$(USER_LIB_DIRS)) +_ENC_USER_LIB_DIRS := $(addprefix -L,$(_ENC_USER_LIB_DIRS)) +LIBPATHS := $(call DECODE_4MAKE,$(_ENC_USER_LIB_DIRS)) +endif + +LIBS += $(addprefix -l,$(USER_LIBS)) + +UOBJS += $(USER_OBJS) + +M_OPT = -MMD -MP -MF"$(@:%.o=%.d)" + +DEPS := $(OBJS:.o=.d) + +ifneq ($(strip $(DEPS)),) +-include $(PROJ_ROOT)/Build/$(DEPS) +endif + +# create platform_libs_files.lib to pass the libraries to ld +$(RS_LIBRARIES_FILE) : + @echo $(RS_LIBRARIES) > $@ + +# create objs_file.obj to pass the obj files to ld or ar +$(OBJS_FILE) : $(OBJS) + @echo $(OBJS) > $@ + +ifeq ($(strip $(APPTYPE)),app) +$(APPFILE) : $(OBJS_FILE) $(UOBJS) $(RS_LIBRARIES_FILE) + @echo ' Building target: $@' + @echo ' Invoking: C/C++ Linker' + $(call MAKEDIRS,$(@D)) + $(CXX) -o $(APPFILE) @$(OBJS_FILE) $(UOBJS) $(LIBS) $(LIBPATHS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -Xlinker --as-needed -pie -lpthread --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_ROOT)/.exportMap" $(RS_LIB_PATHS) @$(RS_LIBRARIES_FILE) -Xlinker -rpath='$$ORIGIN/../lib' -Werror-implicit-function-declaration $(USER_LINK_OPTS) + @echo ' Finished building target: $@' +endif +ifeq ($(strip $(APPTYPE)),staticLib) +$(APPFILE) : $(OBJS_FILE) $(UOBJS) + @echo ' Building target: $@' + @echo ' Invoking: Archive utility' + $(call MAKEDIRS,$(@D)) + $(AR) -r $(APPFILE) @$(OBJS_FILE) $(AR_FLAGS) $(USER_LINK_OPTS) + @echo ' Finished building target: $@' +endif +ifeq ($(strip $(APPTYPE)),sharedLib) +$(APPFILE) : $(OBJS_FILE) $(UOBJS) $(RS_LIBRARIES_FILE) + @echo ' Building target: $@' + @echo ' Invoking: C/C++ Linker' + $(call MAKEDIRS,$(@D)) + $(CXX) -o $(APPFILE) @$(OBJS_FILE) $(UOBJS) $(LIBS) $(LIBPATHS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -Xlinker --as-needed -shared -lpthread --sysroot="$(SYSROOT)" $(RS_LIB_PATHS) @$(RS_LIBRARIES_FILE) $(USER_LINK_OPTS) + @echo ' Finished building target: $@' +endif + + +$(OBJ_OUTPUT) : + $(call MAKEDIRS,$@) + +$(OUTPUT_DIR) : + $(call MAKEDIRS,$@) + + +#ifneq ($(strip $(PLATFORM_INCS)),) +#$(PLATFORM_INCS_FILE) : $(OBJ_OUTPUT) +# @echo ' Building inc file: $@' +#ifneq ($(findstring Windows,$(OS)),) +#ifneq ($(findstring 3.82,$(MAKE_VERSION)),) +# $(file > $@,$(PLATFORM_INCS)) +#else +# @echo $(PLATFORM_INCS) > $@ +#endif +#else +# @echo '$(PLATFORM_INCS)' > $@ +#endif +#endif + + +include $(BUILD_ROOT)/build_edc.mk + +#ifeq ($(strip $(ENVENTOR_SHARED_RES_PATH)),) +ENVENTOR_SHARED_RES_PATH ?= $(ENVENTOR_PATH)/share/enventor +#endif + +EDJ_FILES := + +# Global EDCs +ifneq ($(strip $(USER_EDCS)),) +$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EDCS),$(USER_EDCS_IMAGE_DIRS),$(USER_EDCS_SOUND_DIRS),$(USER_EDCS_FONT_DIRS),EDJ_FILES)) +endif + +# Individual EDCs +ifneq ($(strip $(USER_EXT_EDC_KEYS)),) +$(foreach var,$(USER_EXT_EDC_KEYS),$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EXT_$(var)_EDCS),$(USER_EXT_$(var)_EDCS_IMAGE_DIRS),$(USER_EXT_$(var)_EDCS_SOUND_DIRS),$(USER_EXT_$(var)_EDCS_FONT_DIRS),EDJ_FILES))) +endif + + +include $(BUILD_ROOT)/build_po.mk + +MO_FILES := + +# Global POs +ifneq ($(strip $(USER_POS)),) +$(eval $(call MO_PROC_RAW,$(OUTPUT_DIR),$(USER_POS),$(APPID2),MO_FILES)) +endif + + +secondary-outputs : $(EDJ_FILES) $(MO_FILES) + +-include appendix.mk + +app_build : $(OUTPUT_DIR) $(APPFILE) secondary-outputs + @echo ========= done ========= + + +app_clean : + rm -f $(APPFILE) + rm -rf $(OUTPUT_DIR) + +build_version : + @echo makefile.mk : $(BUILD_SCRIPT_VERSION) \ No newline at end of file diff --git a/coretbt_serviceapp/Build/platform.mk b/coretbt_serviceapp/Build/platform.mk new file mode 100644 index 0000000..77c3ab0 --- /dev/null +++ b/coretbt_serviceapp/Build/platform.mk @@ -0,0 +1,17 @@ +# Add inputs and outputs from these tool invocations to the build variables + +SYSROOT = $(SBI_SYSROOT) + +#USR_INCS := $(addprefix -I "$(SYSROOT),$(PLATFORM_INCS_EX)) +USR_INCS1 := $(addsuffix ",$(PLATFORM_INCS_EX)) +USR_INCS := $(addprefix -I "$(SYSROOT),$(USR_INCS1)) + +ifeq ($(strip $(PLATFORM_LIB_PATHS)),) +RS_LIB_PATHS := "$(SYSROOT)/usr/lib" +else +RS_LIB_PATHS := $(addprefix -L,$(PLATFORM_LIB_PATHS)) +endif + +RS_LIBRARIES := $(addprefix -l,$(RS_LIBRARIES_EX)) + +PLATFORM_INCS = $(USR_INCS) -I "$(SDK_PATH)/library" diff --git a/coretbt_serviceapp/Build/tooldef.mk b/coretbt_serviceapp/Build/tooldef.mk new file mode 100644 index 0000000..c62243c --- /dev/null +++ b/coretbt_serviceapp/Build/tooldef.mk @@ -0,0 +1,70 @@ +# Add inputs and outputs from these tool invocations to the build variables + +ifneq ($(strip $(SHELL_BIN)),) +SHELL = $(SHELL_BIN) +else +SHELL = sh +endif + +ifneq ($(strip $(MKDIR_BIN)),) +MKDIR = $(MKDIR_BIN) +MKDIR_OP = -p +else +MKDIR = mkdir +MKDIR_OP = -p +endif + +ifneq ($(strip $(UNAME_BIN)),) +UNAME = $(UNAME_BIN) +else +UNAME = uname +endif + +ifneq ($(strip $(M4_BIN)),) +M4 = $(M4_BIN) +else +M4 = m4 +endif + +ifneq ($(strip $(TR_BIN)),) +TR = $(TR_BIN) +else +TR = tr +endif + +ifneq ($(strip $(FIND_BIN)),) +FIND = $(FIND_BIN) +else +FIND = find +endif + +ifneq ($(strip $(SED_BIN)),) +SED = $(SED_BIN) +else +SED = sed +endif + +ifneq ($(strip $(GREP_BIN)),) +GREP = $(GREP_BIN) +else +GREP = grep +endif + +ifneq ($(strip $(EDJE_CC_BIN)),) +EDJE_CC = $(EDJE_CC_BIN) +else +EDJE_CC = edje_cc +endif + +ifneq ($(strip $(MSGFMT_BIN)),) +MSGFMT = $(MSGFMT_BIN) +else +MSGFMT = msgfmt +endif + +ifneq ($(strip $(CKSUM_BIN)),) +CKSUM = $(CKSUM_BIN) +else +CKSUM = cksum +endif + diff --git a/coretbt_serviceapp/build_def.prop b/coretbt_serviceapp/build_def.prop new file mode 100644 index 0000000..6bb5e2f --- /dev/null +++ b/coretbt_serviceapp/build_def.prop @@ -0,0 +1,6 @@ + +# Add pre/post build process +PREBUILD_DESC = +PREBUILD_COMMAND = +POSTBUILD_DESC = +POSTBUILD_COMMAND = diff --git a/coretbt_serviceapp/project_def.prop b/coretbt_serviceapp/project_def.prop index 6794026..346a1a1 100644 --- a/coretbt_serviceapp/project_def.prop +++ b/coretbt_serviceapp/project_def.prop @@ -1,11 +1,58 @@ + +# Project Name APPNAME = coretbt_serviceapp +# Project Type type = app -profile = wearable-2.3.1 - -USER_SRCS = src/coretbt_serviceapp.c -USER_DEFS = -USER_INC_DIRS = inc -USER_OBJS = -USER_LIBS = -USER_EDCS = + +# Project Profile +profile = wearable-5.5 + +# C/CPP Sources +USER_SRCS = src/coretbt_serviceapp.c + +# EDC Sources +USER_EDCS = + +# PO Sources +USER_POS = + +# User Defines +USER_DEFS = TIZEN_DEPRECATION DEPRECATION_WARNING +USER_CPP_DEFS = + +# User Undefines +USER_UNDEFS = +USER_CPP_UNDEFS = + +# User Libraries +USER_LIBS = + +# User Objects +USER_OBJS = + +# User Includes +## C Compiler +USER_C_INC_DIRS = inc +USER_INC_FILES = +## C++ Compiler +USER_CPP_INC_DIRS = +USER_CPP_INC_FILES = + +USER_INC_DIRS = $(USER_C_INC_DIRS) $(USER_CPP_INC_DIRS) + +# User Library Path +USER_LIB_DIRS = lib + +# EDC Resource Path +USER_EDCS_IMAGE_DIRS = ${OUTPUT_DIR} +USER_EDCS_SOUND_DIRS = ${OUTPUT_DIR} +USER_EDCS_FONT_DIRS = ${OUTPUT_DIR} + +# EDC Flags +USER_EXT_EDC_KEYS = + +# Resource Filter +USER_RES_INCLUDE = +USER_RES_EXCLUDE = + diff --git a/coretbt_serviceapp/tizen-manifest.xml b/coretbt_serviceapp/tizen-manifest.xml index 5554eb8..a952cfb 100644 --- a/coretbt_serviceapp/tizen-manifest.xml +++ b/coretbt_serviceapp/tizen-manifest.xml @@ -1,5 +1,5 @@ - + diff --git a/release/binary-armv7l/org.tizen.tbtcoreapp-1.0.0-arm.tpk b/release/binary-armv7l/org.tizen.tbtcoreapp-1.0.0-arm.tpk index 653a019..2cc385b 100755 Binary files a/release/binary-armv7l/org.tizen.tbtcoreapp-1.0.0-arm.tpk and b/release/binary-armv7l/org.tizen.tbtcoreapp-1.0.0-arm.tpk differ diff --git a/release/binary-x86/org.tizen.tbtcoreapp-1.0.0-x86.tpk b/release/binary-x86/org.tizen.tbtcoreapp-1.0.0-x86.tpk index dafa00e..7fd7b17 100755 Binary files a/release/binary-x86/org.tizen.tbtcoreapp-1.0.0-x86.tpk and b/release/binary-x86/org.tizen.tbtcoreapp-1.0.0-x86.tpk differ diff --git a/scripts_tpk/tpk_create.sh b/scripts_tpk/tpk_create.sh index 4c7a6ec..fa3a876 100755 --- a/scripts_tpk/tpk_create.sh +++ b/scripts_tpk/tpk_create.sh @@ -100,34 +100,84 @@ deploySourceFile() { fi sed -i 's/\.\///g' test.files + + mod_name=$( echo "$2" | rev | cut -d'/' -f1 | rev ) + if [ $mod_name == "tbtcoreapp" ]; then + cp $2/project_def.prop $1/. + else + output=`cat test.files` + sed -i "/USER_SRCS/d" project_def.prop + echo "USER_SRCS =$output" >> project_def.prop - output=`cat test.files` - sed -i "/USER_SRCS/d" project_def.prop - echo "USER_SRCS =$output" >> project_def.prop - - rm -rf test.files - - find ./res -iname *.edc -print0 | tr '\0' ' ' > test.files - - sed -i 's/\.\///g' test.files + rm -rf test.files - output=`cat test.files` - sed -i "/USER_EDCS/d" project_def.prop - echo "USER_EDCS =$output" >> project_def.prop + find ./res -iname *.edc -print0 | tr '\0' ' ' > test.files - rm -rf test.files + sed -i 's/\.\///g' test.files + output=`cat test.files` + sed -i "/USER_EDCS/d" project_def.prop + echo "USER_EDCS =$output" >> project_def.prop + rm -rf test.files + fi echo $green"Source files copied and xml modified successfully" cd $2/../scripts_tpk } +checkRootstrap() { + ROOTSTRAP_TYPE=$1 + PROFILE_TYPE=$2 + DEVICE_TYPE=$3 + CURRENT_VERSION=$4 + if [ -z "$ROOTSTRAP_TYPE" ]; then + echo $yellow"rootstrap.txt file is empty."$reset + EXISTING_ROOTSTRAP=`tizen list rootstrap | grep "${PROFILE_TYPE}" | grep "${DEVICE_TYPE}" | grep "${CURRENT_VERSION}" | cut -f1 -d' ' |grep -v "public"` + if [ -z "$EXISTING_ROOTSTRAP" ]; then + echo $red"Default rootstrap is not installed for ${CURRENT_VERSION} version"$reset + OPTIONAL_ROOTSTRAP=`tizen list rootstrap | grep "${PROFILE_TYPE}" | grep "${DEVICE_TYPE}" | grep "${CURRENT_VERSION}" | cut -f1 -d' ' |grep -i "public"` + if [ -z "$OPTIONAL_ROOTSTRAP" ]; then + echo $red"Please install the rootstrap."$reset + exit + else + echo $red"****Please run tizen list rootstrap command to check available rootstrap and update rootstrap.txt file ${BUILD_PROFILE}_$ARCH tag"$reset + exit + fi + else + echo $green$EXISTING_ROOTSTRAP" rootstrap is present and used."$reset + fi + else + EXISTING_ROOTSTRAP=`tizen list rootstrap | grep "${ROOTSTRAP_TYPE}" | grep "${DEVICE_TYPE}" | grep "${CURRENT_VERSION}" |cut -f1 -d' '` + if echo "$ROOTSTRAP_TYPE" | grep -q "$CURRENT_VERSION";then + echo $green"Version of branch and rootstrap is same."$reset + else + ROOTSTRAP_VERSION=$(echo "$ROOTSTRAP_TYPE" | cut -f2 -d'-') + echo $red"Version mismatch. Code branch version: "${CURRENT_VERSION}" and rootstrap.txt file contain rootstrap version: ${ROOTSTRAP_VERSION}"$reset + exit + fi + if [ -z "$EXISTING_ROOTSTRAP" ]; then + echo $red$ROOTSTRAP_TYPE" rootstrap mentioned in rootstrap.txt is not installed.Please install the rootstrap."$reset + exit + else + echo $green$EXISTING_ROOTSTRAP" rootstrap is present and used."$reset + fi + fi +} + +PWD=$(pwd) +SRC_DIRCTORY=$PWD +HOME_DIR=$( getent passwd "sri" | cut -d: -f6 ) TESTCASE_TYPE="$1" MODULE_NAME="$2" ARCH_TYPE="$3" APPLLICATION_PROFILE="basic-ui" PROFILE_TYPE="$4" -WORKSPACE_PATH="$HOME/workspace_$PROFILE_TYPE" +CURRENT_VERSION="5.5" +WORKSPACE_PATH="$HOME_DIR/workspace_$PROFILE_TYPE" +if [ $MODULE_NAME == "coretbt_serviceapp" ]; then + echo $red"coretbt_serviceapp module is required to build with tbtcoreapp as multi package module.Please build tbtcoreapp module."""$reset + exit +fi #####Check for already existing profile directory########## if [ ! -d $WORKSPACE_PATH ];then mkdir $WORKSPACE_PATH @@ -136,7 +186,7 @@ fi # build command properties #COMPILER_TYPE="llvm" if [ "$ARCH_TYPE" == "arm" ]; then - COMPILER_TYPE="llvm" + COMPILER_TYPE="gcc-6.2" else COMPILER_TYPE="gcc" fi @@ -161,10 +211,7 @@ if [ "$1" == "tbt" ]; then PROJECT_NAME="$MODULE_NAME" fi -PWD=$(pwd) -SRC_DIRCTORY=$PWD # packaging properties details - echo "TESTCASE TYPE : $TESTCASE_TYPE" echo "PROFILE TYPE : $PROFILE_TYPE" echo "MODULE NAME : $MODULE_NAME" @@ -184,26 +231,91 @@ BUILD_PROFILE="wearable" ROOTSTRAP_FILE=$(readlink -f rootstrap.txt) ROOTSTRAP_WEARABLE=`cat $ROOTSTRAP_FILE | grep "${BUILD_PROFILE}_$ARCH:" | cut -f 2- -d ':'` +checkRootstrap "$ROOTSTRAP_WEARABLE" $PROFILE_TYPE $DEVICE_TYPE $CURRENT_VERSION -RunCommand "tizen create native-project -p $BUILD_PROFILE-5.0 -t $APPLLICATION_PROFILE -n $PROJECT_NAME -- $WORKSPACE_PATH" "Project creation $PROJECT_NAME" +RunCommand "tizen create native-project -p $BUILD_PROFILE-5.5 -t $APPLLICATION_PROFILE -n $PROJECT_NAME -- $WORKSPACE_PATH" "Project creation $PROJECT_NAME" deploySourceFile "$WORKSPACE_PATH/$PROJECT_NAME" "$SRC_DIRCTORY/$MODULE_NAME" "$PROFILE_TYPE" "$PROJECT_NAME" "$TESTCASE_TYPE" "$MODULE_NAME" +if [ $MODULE_NAME == "tbtcoreapp" ]; then + PROJECT_NAME_SERVICE="coretbt_serviceapp" + MODULE_NAME_SERVICE="coretbt_serviceapp" + if [ -d $WORKSPACE_PATH/$PROJECT_NAME_SERVICE ];then + rm -rf $WORKSPACE_PATH/$PROJECT_NAME_SERVICE + fi + RunCommand "tizen create native-project -p $BUILD_PROFILE-5.5 -t $APPLLICATION_PROFILE -n $PROJECT_NAME_SERVICE -- $WORKSPACE_PATH" "Project creation $PROJECT_NAME_SERVICE" + deploySourceFile "$WORKSPACE_PATH/$PROJECT_NAME_SERVICE" "$SRC_DIRCTORY/$MODULE_NAME_SERVICE" "$PROFILE_TYPE" "$PROJECT_NAME_SERVICE" "$TESTCASE_TYPE" "$MODULE_NAME_SERVICE" +fi + if [ -z "$ROOTSTRAP_WEARABLE" ]; then + if [ "$ARCH_TYPE" == "arm" ]; then + ROOTSTRAP_WEARABLE="wearable-5.5-device.core" + elif [ "$ARCH_TYPE" == "x86" ]; then + ROOTSTRAP_WEARABLE="wearable-5.5-emulator.core" + elif [ "$ARCH_TYPE" == "aarch64" ]; then + ROOTSTRAP_WEARABLE="wearable-5.5-device64.core" + elif [ "$ARCH_TYPE" == "x86_64" ]; then + ROOTSTRAP_WEARABLE="wearable-5.5-emulator64.core" + fi + if [ $MODULE_NAME == "tbtcoreapp" ]; then + cd $WORKSPACE_PATH + chmod -R 777 * + tizen build-app -m "name:m1,compiler:$COMPILER_TYPE,rootstraps:[{"name":$ROOTSTRAP_WEARABLE,"platform":$BUILD_PROFILE,"arch":$ARCH_TYPE}],configs:[Debug]" -b "name:b1,targets:[tbtcoreapp,coretbt_serviceapp],methods:[m1]" -p "name:tbtcoreapp,targets:[b1]" --sign test + cd $SRC_DIRCTORY + else RunCommand "tizen build-native -a $ARCH_TYPE -c $COMPILER_TYPE -C $BUILD_TYPE -- $WORKSPACE_PATH/$PROJECT_NAME" "Building tpk $PROJECT_NAME" + RunCommand "tizen package --type tpk --sign test -- $WORKSPACE_PATH/$PROJECT_NAME/$BUILD_TYPE" "packaging of $PROJECT_NAME" + fi +else + if [ $MODULE_NAME == "tbtcoreapp" ]; then + cd $WORKSPACE_PATH + chmod -R 777 * + tizen build-app -m "name:m1,compiler:$COMPILER_TYPE,rootstraps:[{"name":$ROOTSTRAP_WEARABLE,"platform":$BUILD_PROFILE,"arch":$ARCH_TYPE}],configs:[Debug]" -b "name:b1,targets:[tbtcoreapp,coretbt_serviceapp],methods:[m1]" -p "name:tbtcoreapp,targets:[b1]" --sign test + cd $SRC_DIRCTORY else RunCommand "tizen build-native -r $ROOTSTRAP_WEARABLE -a $ARCH_TYPE -c $COMPILER_TYPE -C $BUILD_TYPE -- $WORKSPACE_PATH/$PROJECT_NAME" "Building tpk $PROJECT_NAME" + RunCommand "tizen package --type tpk --sign test -- $WORKSPACE_PATH/$PROJECT_NAME/$BUILD_TYPE" "packaging of $PROJECT_NAME" fi -RunCommand "tizen package --type tpk --sign test -- $WORKSPACE_PATH/$PROJECT_NAME/$BUILD_TYPE" "packaging of $PROJECT_NAME" +fi -echo $green"" -echo " ============================================" -echo "|| "$bold"CREATION SUCCESSFUL$reset$green ||" -echo " ============================================" -echo ""$reset +if [ $MODULE_NAME == "tbtcoreapp" ]; then + tpkExist=$(ls $WORKSPACE_PATH/tbtcoreapp*.tpk | wc -l) + if [ "$tpkExist" == "0" ]; then + echo $red"" + echo " ============================================" + echo "|| "$bold"CREATION Fail$reset$red ||" + echo " ============================================" + echo ""$reset + exit + else + echo $green"" + echo " ============================================" + echo "|| "$bold"CREATION SUCCESSFUL$reset$green ||" + echo " ============================================" + echo ""$reset + mv $WORKSPACE_PATH/tbtcoreapp*.tpk $WORKSPACE_PATH/$PROJECT_NAME/$BUILD_TYPE/org.tizen.tbtcoreapp-1.0.0-$ARCH_TYPE.tpk + fi +else + echo $green"" + echo " ============================================" + echo "|| "$bold"CREATION SUCCESSFUL$reset$green ||" + echo " ============================================" + echo ""$reset + tpkOriginal=$(ls $WORKSPACE_PATH/$PROJECT_NAME/$BUILD_TYPE/*.tpk) + generatedtpkname="$(echo $tpkOriginal | cut -d'/' -f5)" + if [[ $generatedtpkname =~ "i586" ]]; then + renamedtpk=$(echo "$generatedtpkname" | sed "s/i586/x86/") + elif [[ $generatedtpkname =~ "i686" ]];then + renamedtpk=$(echo "$generatedtpkname" | sed "s/i686/x86/") + fi + if [ "$ARCH_TYPE" == "x86" ]; then + mv $WORKSPACE_PATH/$PROJECT_NAME/$BUILD_TYPE/$generatedtpkname $WORKSPACE_PATH/$PROJECT_NAME/$BUILD_TYPE/$renamedtpk + fi +fi cp -rf $WORKSPACE_PATH/$PROJECT_NAME/$BUILD_TYPE/*.tpk $SRC_DIRCTORY/release/binary-$ARCH/. chmod -R 777 $SRC_DIRCTORY/release/binary-$ARCH/* + echo $green"" echo " ==================================================" echo "|| "$bold"TPK copied in release folder$reset$green ||" diff --git a/scripts_tpk/tpkbuild.sh b/scripts_tpk/tpkbuild.sh index f4e906f..b53040a 100755 --- a/scripts_tpk/tpkbuild.sh +++ b/scripts_tpk/tpkbuild.sh @@ -88,7 +88,7 @@ function build { if [ "$#" -eq "2" ]; then scripts_tpk/tpk_create.sh $1 $2 $ARCH_TYPE $PROFILE_TYPE | tee -a BuildLog/$1/$2.txt - if [[ ( $2 == "BuildLog" ) || ( $2 == "docs" ) || ( $2 == "release" ) || ( $2 == "rootstrap.txt" ) || ( $2 == "scripts_tpk" ) || ( $2 == "tpkbuild" )]]; then + if [[ ( $2 == "BuildLog" ) || ( $2 == "docs" ) || ( $2 == "release" ) || ( $2 == "rootstrap.txt" ) || ( $2 == "scripts_tpk" ) || ( $2 == "tpkbuild" ) || ( $2 == "coretbt_serviceapp" )]]; then rm BuildLog/$1/$2.txt #below code remove the log file in case build is SUCCESS #keep the log file only for build FAILED modules @@ -120,7 +120,7 @@ function install { MOD_NAME=$2 IS_COVERAGE=0 EXECUTION_USER="owner" -if [[ ( $2 == "BuildLog" ) || ( $2 == "docs" ) || ( $2 == "release" ) || ( $2 == "rootstrap.txt" ) || ( $2 == "scripts_tpk" ) || ( $2 == "tpkbuild" )]]; then +if [[ ( $2 == "BuildLog" ) || ( $2 == "docs" ) || ( $2 == "release" ) || ( $2 == "rootstrap.txt" ) || ( $2 == "scripts_tpk" ) || ( $2 == "tpkbuild" ) || ( $2 == "coretbt_serviceapp" )]]; then exit 1 fi if [ "$ARCH_TYPE" == "arm" ]; then @@ -132,7 +132,7 @@ elif [ "$ARCH_TYPE" == "aarch64" ]; then elif [ "$ARCH_TYPE" == "x86_64" ]; then ARCH="x86_64" fi -modulearray=(org.tizen.coretbt_dataprovider org.tizen.coretbt_serviceapp org.tizen.coretbt_uiapp org.tizen.operationpickviewapp org.tizen.coretbtwidgetapp org.tizen.tbt_smartcardtestapp org.tizen.tbt_smartcardtestapp_signed org.tizen.tbt_hcetestappa org.tizen.tbt_hcetestappb org.tizen.tbt_nfcesetestapp org.tizen.tbtcoreapp org.tizen.tbt-ime) +modulearray=(org.tizen.coretbt_dataprovider org.tizen.coretbt_uiapp org.tizen.operationpickviewapp org.tizen.coretbtwidgetapp org.tizen.tbt_smartcardtestapp org.tizen.tbt_smartcardtestapp_signed org.tizen.tbt_hcetestappa org.tizen.tbt_hcetestappb org.tizen.tbt_nfcesetestapp org.tizen.tbtcoreapp org.tizen.tbt-ime) echo $TC_TYPE echo $MOD_NAME sdb root on diff --git a/tbtcoreapp/.cproject b/tbtcoreapp/.cproject index a7bb562..8f038e1 100644 --- a/tbtcoreapp/.cproject +++ b/tbtcoreapp/.cproject @@ -1,580 +1,518 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tbtcoreapp/.tproject b/tbtcoreapp/.tproject index ccab492..5730f8b 100644 --- a/tbtcoreapp/.tproject +++ b/tbtcoreapp/.tproject @@ -2,7 +2,7 @@ - wearable-5.0 + wearable-5.5 diff --git a/tbtcoreapp/Build/appendix.mk b/tbtcoreapp/Build/appendix.mk new file mode 100644 index 0000000..2e06c34 --- /dev/null +++ b/tbtcoreapp/Build/appendix.mk @@ -0,0 +1 @@ +# Appendix diff --git a/tbtcoreapp/Build/basedef.mk b/tbtcoreapp/Build/basedef.mk new file mode 100644 index 0000000..a762983 --- /dev/null +++ b/tbtcoreapp/Build/basedef.mk @@ -0,0 +1,34 @@ +# Add inputs and outputs from these tool invocations to the build variables + + +OS_NAME := $(shell $(UNAME)) + + +#ifeq ($(origin BUILD_CONFIG), undefined) +BUILD_CONFIG ?= Debug +#endif + +#ifeq ($(origin ARCH), undefined) +ARCH ?= i386 +#endif + +#ifeq ($(origin PROJPATH), undefined) +PROJPATH ?= . +#endif + + +#ifeq ($(origin PROJ_PATH), undefined) +PROJ_PATH ?= $(PROJPATH) +#endif + +#ifeq ($(strip $(OUTPUT_DIR)),) +#OUTPUT_DIR ?= $(PROJ_PATH)/$(BUILD_CONFIG) +#endif + +#ifeq ($(strip $(BUILD_ARCH)),) +BUILD_ARCH ?= $(ARCH) +#endif + +#ifeq ($(strip $(ENVENTOR_PATH)),) +ENVENTOR_PATH ?= $(SDK_TOOLPATH)/enventor +#endif diff --git a/tbtcoreapp/Build/build_c.mk b/tbtcoreapp/Build/build_c.mk new file mode 100644 index 0000000..5fffeea --- /dev/null +++ b/tbtcoreapp/Build/build_c.mk @@ -0,0 +1,113 @@ +# C/C++ build script + + +_FUNC_EXT2O = $(patsubst %.$(3),$(1)/%.o,$(2)) +_FUNC_C2O = $(call _FUNC_EXT2O,$(1),$(2),c) +_FUNC_CPP2O = $(call _FUNC_EXT2O,$(1),$(2),cpp) + + +# parameter : +# $(1) - C/C++ soruce file +# $(2) - output path +# $(3) - .ext +# $(4) - unique id +CONVERT_ESC_EXT_TO_O = $(addprefix $(2)/,$(notdir $(patsubst %.$(3),%-$(4).o,$(1)))) + +#CONVERT_ESC_C_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),c) +#CONVERT_ESC_CPP_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),cpp) + + +# parameter : +# $(1) - encoded one C/C++ soruce file +# $(2) - output path +# $(3) - ext title (C/C++) +# $(4) - ext (c/cpp) +# $(5) - compiler ($(CC)/$(CXX)) +# $(6) - build opt +# $(7) - build opt file +# output : +# $(8) - output files list +define C_BUILD_PROC_RAW +$(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8)) : $(call DECODE_4MAKE,$(1)) $(7) + @echo ' Building file: $$<' + @echo ' Invoking: $(3) Compiler' + $$(call MAKEDIRS,$$(@D)) + $(5) -c "$$<" -o "$$@" $(6) -Wp,@$(7) + @echo ' Finished building: $$<' +$(9) += $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8)) +endef + + +# parameter : +# $(1) - output paths +# $(2) - src paths +# $(3) - inc paths +# $(4) - inc files +# $(5) - Defs +# $(6) - UnDefs +# $(7) - compiler opt +# $(8) - compiler opt file +# $(9) - ext title (C/C++) +# $(10) - ext (c/cpp) +# $(11) - compiler ($(CC)/$(CXX)) +# output : +# $(12) - OBJS +# return : +# none +define C_PROC_RAW + +_OUTPUT_DIR := $$(strip $(1))# +_SRCS := $(2)# +_INCS := $(3)# +_INC_FILES := $(4)# +_DEFS := $(5)# +_UNDEFS := $(6)# + +_OPT := $(7) +_OPT_FILE := $(8) + +_EXT_TITLE := $(9) +_EXT := $(10) +_COMPILER := $(11) + +#_OUTPUT_FILES := $(12) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) +_ENC_SRCS := $$(filter %.$$(_EXT),$$(_ENC_SRCS)) + +ifneq ($$(strip $$(_SRCS)),) + +_NORMAL_SRCS := $$(filter-out %*.$$(_EXT),$$(_ENC_SRCS)) +_WIDLCARD_SRCS := $$(filter %*.$$(_EXT),$$(_ENC_SRCS)) + +_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \ + $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var)))) + +ifneq ($$(strip $$(_ALL_SRCS)),) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) + +_CDEFS := $$(CDEFS) +_CDEFS += $$(addprefix -D,$$(_DEFS)) +_CDEFS += $$(addprefix -U,$$(_UNDEFS)) + +_ENC_C_INCS := $$(call ENCODE_4MAKE,$$(_INCS)) +_ENC_C_INCS := $$(addprefix -I,$$(_ENC_C_INCS)) + +_ENC_INC_FILES := $$(call ENCODE_4MAKE,$$(_INC_FILES)) +_ENC_INC_FILES += $$(addprefix -include,$$(_ENC_INC_FILES)) + +_C_INCS := $$(call DECODE_4MAKE,$$(_ENC_C_INCS) $$(_ENC_C_INC_FILES)) + +_DEFS := $$(_CDEFS) $$(_C_INCS) -I"pch" $$(_OPT) + +_UNIQUE_ID = $$(firstword $$(shell echo $$(var) | $$(CKSUM))) + +$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call C_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_EXT_TITLE),$$(_EXT),$$(_COMPILER),$$(_DEFS),$$(_OPT_FILE),$$(_UNIQUE_ID),$(12)))) + +endif # (_(strip _(_ALL_SRCS)),) + +endif # (_(strip _(_SRCS)),) + + +endef diff --git a/tbtcoreapp/Build/build_edc.mk b/tbtcoreapp/Build/build_edc.mk new file mode 100644 index 0000000..6f85fdd --- /dev/null +++ b/tbtcoreapp/Build/build_edc.mk @@ -0,0 +1,81 @@ +# EDC build script + + +FUNC_EDC2EDJ = $(patsubst %.edc,$(2)/%.edj,$(1)) + +# parameter : +# $(1) - C/C++ soruce file +# $(2) - output path +CONVERT_ESC_EDC_TO_EDJ = $(call CONVERT_4MAKE_TO_OUT,$(call FUNC_EDC2EDJ,$(1),$(2))) + + +# parameter : +# $(1) - encoded one C/C++ soruce file +# $(2) - output path +# $(3) - build opt +# output : +# $(4) - output files list +define EDJ_BUILD_PROC_RAW +$(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2)) : $(call DECODE_4MAKE,$(1)) + @echo ' Building file: $$<' + @echo ' Invoking: EDC Resource Compiler' + $$(call MAKEDIRS,$$(@D)) + $$(EDJE_CC) $(3) "$$<" "$$@" + @echo ' Finished building: $$<' +$(4) += $(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2)) +endef + + +# parameter : +# $(1) - output paths +# $(2) - src paths +# $(3) - image inc paths +# $(4) - sound inc paths +# $(5) - font inc paths +# output : +# $(6) - OBJS +# return : +# none +define EDJ_PROC_RAW + +_OUTPUT_DIR := $$(strip $(1))# +_SRCS := $(2)# +_IMAGE_DIRS := $(3)# +_SOUND_DIRS := $(4)# +_FONT_DIRS := $(5)# + +ifneq ($$(strip $$(_SRCS)),) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) + +_NORMAL_SRCS := $$(filter-out %*.edc,$$(_ENC_SRCS)) +_WIDLCARD_SRCS := $$(filter %*.edc,$$(_ENC_SRCS)) + +_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \ + $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var)))) + +ifneq ($$(strip $$(_ALL_SRCS)),) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) + +_COMPILER_FLAGS := -id "$$(ENVENTOR_SHARED_RES_PATH)/images" +_COMPILER_FLAGS += -sd "$$(ENVENTOR_SHARED_RES_PATH)/sounds" +_COMPILER_FLAGS += -fd "$$(ENVENTOR_SHARED_RES_PATH)/fonts" + +ifneq ($$(strip $$(_IMAGE_DIRS)),) +_COMPILER_FLAGS += $$(addprefix -id ,$$(_IMAGE_DIRS)) +endif +ifneq ($$(strip $$(_SOUND_DIRS)),) +_COMPILER_FLAGS += $$(addprefix -sd ,$$(_SOUND_DIRS)) +endif +ifneq ($$(strip $$(_FONT_DIRS)),) +_COMPILER_FLAGS += $$(addprefix -fd ,$$(_FONT_DIRS)) +endif + +$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call EDJ_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_COMPILER_FLAGS),$(6)))) + +endif # (_(strip _(_ALL_SRCS)),) + +endif # (_(strip _(_SRCS)),) + +endef diff --git a/tbtcoreapp/Build/build_po.mk b/tbtcoreapp/Build/build_po.mk new file mode 100644 index 0000000..d88d71a --- /dev/null +++ b/tbtcoreapp/Build/build_po.mk @@ -0,0 +1,64 @@ +# PO build script + + +_FUNC_PO2MO = $(patsubst %.po,$(2)/res/locale/%/LC_MESSAGES/$(3).mo,$(notdir $(1))) + + +# parameter : +# $(1) - C/C++ soruce file +# $(2) - output path +# $(3) - app name +CONVERT_ESC_PO_TO_MO = $(call CONVERT_4MAKE_TO_OUT,$(call _FUNC_PO2MO,$(1),$(2),$(3))) + + +# parameter : +# $(1) - encoded one C/C++ soruce file +# $(2) - output path +# $(3) - app name +# output : +# $(4) - output files list +define MO_BUILD_PROC_RAW +$(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3)) : $(call DECODE_4MAKE,$(1)) + @echo ' Building file: $$<' + @echo ' Invoking: msgfmt String Formatter' + $$(call MAKEDIRS,$$(@D)) + $$(MSGFMT) -o "$$@" "$$<" + @echo ' Finished building: $$<' +$(4) += $(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3)) +endef + + +# parameter : +# $(1) - output dir +# $(2) - src paths +# $(3) - app name +# output : +# $(4) - OBJS + +define MO_PROC_RAW + +_OUTPUT_DIR := $(1) +_SRCS := $(2) +_APPNAME := $(3) + +ifneq ($$(strip $$(_SRCS)),) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) + +_NORMAL_SRCS := $$(filter-out %*.po,$$(_ENC_SRCS)) +_WIDLCARD_SRCS := $$(filter %*.po,$$(_ENC_SRCS)) + +_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \ + $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var)))) + +ifneq ($$(strip $$(_ALL_SRCS)),) + +_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) + +$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call MO_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_APPNAME),$(4)))) + +endif # (_(strip _(_ALL_SRCS)),) + +endif # (_(strip _(_SRCS)),) + +endef diff --git a/tbtcoreapp/Build/flags.mk b/tbtcoreapp/Build/flags.mk new file mode 100644 index 0000000..4320eb8 --- /dev/null +++ b/tbtcoreapp/Build/flags.mk @@ -0,0 +1,24 @@ + +DEBUG_OP = -g3 +CPP_DEBUG_OP = + +OPTIMIZATION_OP = -O0 +CPP_OPTIMIZATION_OP = + +COMPILE_FLAGS = $(DEBUG_OP) $(OPTIMIZATION_OP) -Wall -c -fmessage-length=0 -fPIC + +CPP_COMPILE_FLAGS = $(CPP_DEBUG_OP) $(CPP_OPTIMIZATION_OP) + +LINK_FLAGS = -shared -Wl,--no-undefined + +ifeq ($(STRIP_INFO),off) +LINK_FLAGS = +else +ifeq ($(STRIP_INFO),on) +LINK_FLAGS = -s +endif +endif + +AR_FLAGS = + +EDC_COMPILE_FLAGS = \ No newline at end of file diff --git a/tbtcoreapp/Build/funcs.mk b/tbtcoreapp/Build/funcs.mk new file mode 100644 index 0000000..3ba778b --- /dev/null +++ b/tbtcoreapp/Build/funcs.mk @@ -0,0 +1,50 @@ + +BSLASH := \\# +NULL_CHAR := # +SPACE := \ # +COLON := :# +DOTDOT := ..# +SPACE_ESC := &sp;# +COLON_ESC := &co;# +SPACE_OUT := ~sp~# +COLON_OUT := ~co~# +DOTDOT_OUT := ~dtdt~# + +BSLASH2SLASH = $(subst $(BSLASH),/,$(1)) + +REMOVE_TAIL = $(patsubst %/,%,$(1)) + +#LOWER_CASE = $(shell echo translit($(1),[A-Z],[a-z])|$(M4)) +LOWER_CASE = $(shell echo $(1)|$(TR) [A-Z] [a-z]) + +#ifneq ($(findstring Windows,$(OS)),) +# ... +#endif + +FIND_FILES = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///') +FIND_FILES_ESC = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///' -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g') +FIND_FILES_4MAKE = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///') + +FIND_FILES_ABS = $(shell $(FIND) $(1)) +FIND_FILES_ABS_4MAKE = $(shell $(FIND) $(1) -e 's/$(BSLASH) /$(BSLASH)&sp;/g') +FIND_FILES_ABS_ESC = $(shell $(FIND) $(1) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g') + +FIND_FILES_4MAKE = $(shell $(FIND) $(1) | $(SED) 's/ /\\\ /g') + +#ENCODE_ESC = $(shell echo $(1) | $(SED) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g') +#DECODE_ESC = $(shell echo $(1) | $(SED) -e 's/$(BSLASH)&co;/:/g' -e 's/$(BSLASH)&sp;/$(BSLASH) / g') +ENCODE_ESC = $(subst $(SPACE),$(SPACE_ESC),$(subst $(COLON),$(COLON_ESC),$(1))) +DECODE_ESC = $(subst $(COLON_ESC),$(COLON),$(subst $(SPACE_ESC),$(SPACE),$(1))) +ENCODE_4MAKE = $(subst $(SPACE),$(SPACE_ESC),$(1)) +DECODE_4MAKE = $(subst $(SPACE_ESC),$(SPACE),$(1)) + +CONVERT_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE),$(SPACE_OUT),$(1)))) +CONVERT_ESC_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON_ESC),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1)))) +CONVERT_4MAKE_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1)))) + +PROC_NO_EXIST = $(if $(wildcard $(1)),,$(call $(2),$(1))) +define MAKEDIRS0 + @echo ' Building directory: $(1)' + @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(1)) +endef +MAKEDIRS = $(call PROC_NO_EXIST,$(1),MAKEDIRS0) diff --git a/tbtcoreapp/Build/makefile b/tbtcoreapp/Build/makefile new file mode 100644 index 0000000..117b240 --- /dev/null +++ b/tbtcoreapp/Build/makefile @@ -0,0 +1,34 @@ +# +# Usege : make -f /Build/makefile -C +# + +BUILD_SCRIPT_VERSION := 1.1.0 + +.PHONY : app_version app_build app_clean build_version + + +all : app_build + +clean : app_clean + +version : build_version + +#PROJ_ROOT = . +#BUILD_ROOT := $(PROJ_PATH)/Build# + +ifeq ($(MAKE_NAME),mingw32-make) +ifneq ($(SHELL),) +OPTIONS += --eval="SHELL=$(SHELL)" +endif +endif + +app_build : + @echo $(MAKE) -f "$(BUILD_ROOT)/makefile.mk" + @$(MAKE_BIN) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) + +app_clean : + @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) clean + +build_version : + @echo makefile : $(BUILD_SCRIPT_VERSION) + @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) version diff --git a/tbtcoreapp/Build/makefile.mk b/tbtcoreapp/Build/makefile.mk new file mode 100644 index 0000000..ffe7594 --- /dev/null +++ b/tbtcoreapp/Build/makefile.mk @@ -0,0 +1,218 @@ +# +# Usege : make -f /Build/makefile -C +# + +BUILD_SCRIPT_VERSION := 1.2.3 + +.PHONY : app_version app_clean build_version + + +all : app_build + +clean : app_clean + +version : build_version + +_BLANK :=# +_SPACE := $(_BLANK) $(_BLANK)# +_SPACE_4MAKE := \$(_SPACE)# + +NULL_CHAR :=# +SPACE := $(NULL_CHAR) $(NULL_CHAR)# + +PROJ_ROOT := . +_PROJ_ROOT_4MAKE := $(subst $(_SPACE),$(_SPACE_4MAKE),$(PROJ_ROOT))# +PROJ_ROOT=$(_PROJ_ROOT_4MAKE) +_BUILD_ROOT_4MAKE := $(subst $(_SPACE),$(_SPACE_4MAKE),$(BUILD_ROOT))# +BUILD_ROOT=$(_BUILD_ROOT_4MAKE) + +include $(BUILD_ROOT)/basedef.mk + +include $(PROJ_ROOT)/project_def.prop +-include $(PROJ_ROOT)/build_def.prop + +include $(BUILD_ROOT)/funcs.mk + +-include $(BUILD_ROOT)/tooldef.mk +-include $(BUILD_ROOT)/flags.mk +-include $(BUILD_ROOT)/platform.mk + + +APPTYPE := $(type) + +OUTPUT_DIR := $(PROJ_ROOT)/$(BUILD_CONFIG) +OBJ_OUTPUT := $(OUTPUT_DIR)/objs + +LOWER_APPNAME := $(call LOWER_CASE,$(APPNAME)) +APPID2 := $(subst $(basename $(APPID)).,,$(APPID)) + +ifeq ($(strip $(APPTYPE)),app) +APPFILE := $(OUTPUT_DIR)/$(LOWER_APPNAME) +endif +ifeq ($(strip $(APPTYPE)),staticLib) +APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).a +endif +ifeq ($(strip $(APPTYPE)),sharedLib) +APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).so +endif + +ifneq ($(strip $(PLATFORM_INCS)),) +PLATFORM_INCS_FILE := $(OBJ_OUTPUT)/platform_incs_file.inc +endif + +ifneq ($(strip $(RS_LIBRARIES)),) +RS_LIBRARIES_FILE := $(OBJ_OUTPUT)/platform_libs.file +endif + +OBJS_FILE := $(OBJ_OUTPUT)/target_objs.file + +include $(BUILD_ROOT)/build_c.mk + + +ifeq ($(strip $(APPTYPE)),app) +EXT_OP := -fPIE +endif +ifeq ($(strip $(APPTYPE)),staticLib) +EXT_OP := -fPIE +endif +ifeq ($(strip $(APPTYPE)),sharedLib) +EXT_OP := -fPIC +endif + +C_OPT := $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_C_OPTS) +CPP_OPT := $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_CPP_OPTS) +C_OPT_FILE := $(PLATFORM_INCS_FILE) + +OBJS := # + +# Global C/C++ +ifeq ($(strip $(USER_ROOT)),) +USER_ROOT := $(PROJ_ROOT) +endif +$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_INC_FILES),$(USER_DEFS),$(USER_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS)) +$(foreach ext,cpp cxx cc c++ C,$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_CPP_INC_FILES),$(USER_CPP_DEFS),$(USER_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS))) + +# Individual C/C++ +ifneq ($(strip $(USER_EXT_C_KEYS)),) +$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_INC_FILES),$(USER_EXT_$(var)_DEFS),$(USER_EXT_$(var)_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS))) +$(foreach ext,cpp cxx cc c++ C,$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_CPP_INC_FILES),$(USER_EXT_$(var)_CPP_DEFS),$(USER_EXT_$(var)_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS)))) +endif + + +ifneq ($(strip $(USER_LIB_DIRS)),) +_ENC_USER_LIB_DIRS := $(call ENCODE_4MAKE,$(USER_LIB_DIRS)) +_ENC_USER_LIB_DIRS := $(addprefix -L,$(_ENC_USER_LIB_DIRS)) +LIBPATHS := $(call DECODE_4MAKE,$(_ENC_USER_LIB_DIRS)) +endif + +LIBS += $(addprefix -l,$(USER_LIBS)) + +UOBJS += $(USER_OBJS) + +M_OPT = -MMD -MP -MF"$(@:%.o=%.d)" + +DEPS := $(OBJS:.o=.d) + +ifneq ($(strip $(DEPS)),) +-include $(PROJ_ROOT)/Build/$(DEPS) +endif + +# create platform_libs_files.lib to pass the libraries to ld +$(RS_LIBRARIES_FILE) : + @echo $(RS_LIBRARIES) > $@ + +# create objs_file.obj to pass the obj files to ld or ar +$(OBJS_FILE) : $(OBJS) + @echo $(OBJS) > $@ + +ifeq ($(strip $(APPTYPE)),app) +$(APPFILE) : $(OBJS_FILE) $(UOBJS) $(RS_LIBRARIES_FILE) + @echo ' Building target: $@' + @echo ' Invoking: C/C++ Linker' + $(call MAKEDIRS,$(@D)) + $(CXX) -o $(APPFILE) @$(OBJS_FILE) $(UOBJS) $(LIBS) $(LIBPATHS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -Xlinker --as-needed -pie -lpthread --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_ROOT)/.exportMap" $(RS_LIB_PATHS) @$(RS_LIBRARIES_FILE) -Xlinker -rpath='$$ORIGIN/../lib' -Werror-implicit-function-declaration $(USER_LINK_OPTS) + @echo ' Finished building target: $@' +endif +ifeq ($(strip $(APPTYPE)),staticLib) +$(APPFILE) : $(OBJS_FILE) $(UOBJS) + @echo ' Building target: $@' + @echo ' Invoking: Archive utility' + $(call MAKEDIRS,$(@D)) + $(AR) -r $(APPFILE) @$(OBJS_FILE) $(AR_FLAGS) $(USER_LINK_OPTS) + @echo ' Finished building target: $@' +endif +ifeq ($(strip $(APPTYPE)),sharedLib) +$(APPFILE) : $(OBJS_FILE) $(UOBJS) $(RS_LIBRARIES_FILE) + @echo ' Building target: $@' + @echo ' Invoking: C/C++ Linker' + $(call MAKEDIRS,$(@D)) + $(CXX) -o $(APPFILE) @$(OBJS_FILE) $(UOBJS) $(LIBS) $(LIBPATHS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -Xlinker --as-needed -shared -lpthread --sysroot="$(SYSROOT)" $(RS_LIB_PATHS) @$(RS_LIBRARIES_FILE) $(USER_LINK_OPTS) + @echo ' Finished building target: $@' +endif + + +$(OBJ_OUTPUT) : + $(call MAKEDIRS,$@) + +$(OUTPUT_DIR) : + $(call MAKEDIRS,$@) + + +#ifneq ($(strip $(PLATFORM_INCS)),) +#$(PLATFORM_INCS_FILE) : $(OBJ_OUTPUT) +# @echo ' Building inc file: $@' +#ifneq ($(findstring Windows,$(OS)),) +#ifneq ($(findstring 3.82,$(MAKE_VERSION)),) +# $(file > $@,$(PLATFORM_INCS)) +#else +# @echo $(PLATFORM_INCS) > $@ +#endif +#else +# @echo '$(PLATFORM_INCS)' > $@ +#endif +#endif + + +include $(BUILD_ROOT)/build_edc.mk + +#ifeq ($(strip $(ENVENTOR_SHARED_RES_PATH)),) +ENVENTOR_SHARED_RES_PATH ?= $(ENVENTOR_PATH)/share/enventor +#endif + +EDJ_FILES := + +# Global EDCs +ifneq ($(strip $(USER_EDCS)),) +$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EDCS),$(USER_EDCS_IMAGE_DIRS),$(USER_EDCS_SOUND_DIRS),$(USER_EDCS_FONT_DIRS),EDJ_FILES)) +endif + +# Individual EDCs +ifneq ($(strip $(USER_EXT_EDC_KEYS)),) +$(foreach var,$(USER_EXT_EDC_KEYS),$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EXT_$(var)_EDCS),$(USER_EXT_$(var)_EDCS_IMAGE_DIRS),$(USER_EXT_$(var)_EDCS_SOUND_DIRS),$(USER_EXT_$(var)_EDCS_FONT_DIRS),EDJ_FILES))) +endif + + +include $(BUILD_ROOT)/build_po.mk + +MO_FILES := + +# Global POs +ifneq ($(strip $(USER_POS)),) +$(eval $(call MO_PROC_RAW,$(OUTPUT_DIR),$(USER_POS),$(APPID2),MO_FILES)) +endif + + +secondary-outputs : $(EDJ_FILES) $(MO_FILES) + +-include appendix.mk + +app_build : $(OUTPUT_DIR) $(APPFILE) secondary-outputs + @echo ========= done ========= + + +app_clean : + rm -f $(APPFILE) + rm -rf $(OUTPUT_DIR) + +build_version : + @echo makefile.mk : $(BUILD_SCRIPT_VERSION) \ No newline at end of file diff --git a/tbtcoreapp/Build/platform.mk b/tbtcoreapp/Build/platform.mk new file mode 100644 index 0000000..77c3ab0 --- /dev/null +++ b/tbtcoreapp/Build/platform.mk @@ -0,0 +1,17 @@ +# Add inputs and outputs from these tool invocations to the build variables + +SYSROOT = $(SBI_SYSROOT) + +#USR_INCS := $(addprefix -I "$(SYSROOT),$(PLATFORM_INCS_EX)) +USR_INCS1 := $(addsuffix ",$(PLATFORM_INCS_EX)) +USR_INCS := $(addprefix -I "$(SYSROOT),$(USR_INCS1)) + +ifeq ($(strip $(PLATFORM_LIB_PATHS)),) +RS_LIB_PATHS := "$(SYSROOT)/usr/lib" +else +RS_LIB_PATHS := $(addprefix -L,$(PLATFORM_LIB_PATHS)) +endif + +RS_LIBRARIES := $(addprefix -l,$(RS_LIBRARIES_EX)) + +PLATFORM_INCS = $(USR_INCS) -I "$(SDK_PATH)/library" diff --git a/tbtcoreapp/Build/tooldef.mk b/tbtcoreapp/Build/tooldef.mk new file mode 100644 index 0000000..c62243c --- /dev/null +++ b/tbtcoreapp/Build/tooldef.mk @@ -0,0 +1,70 @@ +# Add inputs and outputs from these tool invocations to the build variables + +ifneq ($(strip $(SHELL_BIN)),) +SHELL = $(SHELL_BIN) +else +SHELL = sh +endif + +ifneq ($(strip $(MKDIR_BIN)),) +MKDIR = $(MKDIR_BIN) +MKDIR_OP = -p +else +MKDIR = mkdir +MKDIR_OP = -p +endif + +ifneq ($(strip $(UNAME_BIN)),) +UNAME = $(UNAME_BIN) +else +UNAME = uname +endif + +ifneq ($(strip $(M4_BIN)),) +M4 = $(M4_BIN) +else +M4 = m4 +endif + +ifneq ($(strip $(TR_BIN)),) +TR = $(TR_BIN) +else +TR = tr +endif + +ifneq ($(strip $(FIND_BIN)),) +FIND = $(FIND_BIN) +else +FIND = find +endif + +ifneq ($(strip $(SED_BIN)),) +SED = $(SED_BIN) +else +SED = sed +endif + +ifneq ($(strip $(GREP_BIN)),) +GREP = $(GREP_BIN) +else +GREP = grep +endif + +ifneq ($(strip $(EDJE_CC_BIN)),) +EDJE_CC = $(EDJE_CC_BIN) +else +EDJE_CC = edje_cc +endif + +ifneq ($(strip $(MSGFMT_BIN)),) +MSGFMT = $(MSGFMT_BIN) +else +MSGFMT = msgfmt +endif + +ifneq ($(strip $(CKSUM_BIN)),) +CKSUM = $(CKSUM_BIN) +else +CKSUM = cksum +endif + diff --git a/tbtcoreapp/build_def.prop b/tbtcoreapp/build_def.prop new file mode 100644 index 0000000..6bb5e2f --- /dev/null +++ b/tbtcoreapp/build_def.prop @@ -0,0 +1,6 @@ + +# Add pre/post build process +PREBUILD_DESC = +PREBUILD_COMMAND = +POSTBUILD_DESC = +POSTBUILD_COMMAND = diff --git a/tbtcoreapp/project_def.prop b/tbtcoreapp/project_def.prop index a0f5d97..7581edd 100644 --- a/tbtcoreapp/project_def.prop +++ b/tbtcoreapp/project_def.prop @@ -1,11 +1,63 @@ + +# Project Name APPNAME = tbtcoreapp +# Project Type type = app -profile = wearable-2.3.2 - -USER_SRCS = src/tbtcoreapp.c -USER_DEFS = -USER_INC_DIRS = inc -USER_OBJS = -USER_LIBS = -USER_EDCS = res/edje/tbtcoreapp.edc + +# Project Profile +profile = wearable-5.5 + +# C/CPP Sources +USER_SRCS = src/view/tbt-mock-view.c src/utils/gl-types.c src/view/tbt-mtp-view.c src/view/tbt-sound-view.c src/view/tbt-bluetoothle-view.c src/view/tbt-wifidirect-info-view.c src/view/tbt-sound-manager-view.c src/view/tbt-touch-view.c src/view/tbt-systemsettings-view.c src/view/tbt-gps-view.c src/view/tbt-nfc-ese-view.c src/view/tbt-stt-view.c src/view/tbt-event-view.c src/utils/gl-utils.c src/view/tbt-radio-view.c src/view/tbt-datacontrol-view.c src/view/tbt-display-view.c src/main.c src/view/tbt-nsd-dns-sd-view.c src/view/tbt-wifi-view.c src/window.c src/view/tbt-connection-view.c src/view/tbt-shortcut-view.c src/view/tbt-input-view.c src/view/tbt-camera-view.c src/view/tbt-bluetoothoob-view.c src/utils/xml-util.c src/view/tbt-oauth2-view.c src/view/tbt-package-manager-view.c src/model/tbt-list.c src/view/tbt-oauth2-info-view.c src/view/tbt-graphics-view.c src/view/tbt-wifidirect-view.c src/view/tbt-efl-callbacks.c src/view/tbt-animation-view.c src/view/tbt-screenmirrorsink-view.c src/view/tbt-ui-view.c src/view/tbt-nfc-view.c src/view/tbt-attachpanel-view.c src/view/tbt-widget-view.c src/view/tbt-image-view.c src/view/tbt-bluetooth-callback-view.c src/view/tbt-autofill-view.c src/view/tbt-smartcard-view.c src/view/tbt-nsd-ssdp-view.c src/view/tbt-motion-detection-view.c src/view/tbt-ime-view.c src/view/tbt-contacts-view.c src/utils/util_state_object.c src/view/tbt-runtimeinfo-view.c src/utils/ui-utils.c src/view/tbt-tts-view.c src/view/tbt-bluetooth-view.c src/view/tbt-feature-view.c src/view/tbt-sensor-view.c src/view/tbt-list-view.c src/view/tbt-local-view.c src/view/tbt-push-view.c src/view/tbt-nfc-hce-preferred-view.c src/view/tbt-common-view.c src/view/tbt-notification-view.c src/main-app.c src/view/tbt-genlist-view.c src/view/tbt-pick-view.c src/view/tbt-media-key-view.c + +# EDC Sources +USER_EDCS = + +# PO Sources +USER_POS = + +# User Defines +USER_DEFS = TIZEN_DEPRECATION DEPRECATION_WARNING +USER_CPP_DEFS = + +# User Undefines +USER_UNDEFS = +USER_CPP_UNDEFS = + +# User Libraries +USER_LIBS = + +# User Objects +USER_OBJS = + +# User Includes +## C Compiler +USER_C_INC_DIRS = inc +USER_INC_FILES = +## C++ Compiler +USER_CPP_INC_DIRS = +USER_CPP_INC_FILES = + +USER_INC_DIRS = $(USER_C_INC_DIRS) $(USER_CPP_INC_DIRS) + +# User Library Path +USER_LIB_DIRS = + +# EDC Resource Path +USER_EDCS_IMAGE_DIRS = ${OUTPUT_DIR} edje/images +USER_EDCS_SOUND_DIRS = ${OUTPUT_DIR} edje/sounds +USER_EDCS_FONT_DIRS = ${OUTPUT_DIR} edje/fonts + +# EDC Flags +USER_EXT_EDC_KEYS = EDC0 + +USER_EXT_EDC0_EDCS = res/edje/2.4/mobile/gps_viewer.edc res/edje/3.0/mobile/oauth2_info_viewer.edc res/edje/2.3.1/wearable_360_360/6_part_txt_txt_txt_txt_txt_btn.edc res/edje/2.4/wearable_360_x_480/animation_viewer.edc res/edje/3.0/wearable_360_x_480/bluetooth_viewer.edc res/edje/2.3.1/mobile/sensor_viewer.edc res/edje/2.3.1/wearable_360_360/3_part_txt_txt_btn.edc res/edje/2.3.1/wearable_360_360/bluetooth_callback_viewer.edc res/edje/2.3.1/wearable_216_432/wifidirect_viewer.edc res/edje/2.4/wearable_320_x_320/nfc_viewer.edc res/edje/2.4/wearable_circle/image_viewer.edc res/edje/2.3.1/wearable_320_320/storage_viewer.edc res/edje/2.3.1/wearable_360_x_480/bluetooth_oob_viewer.edc res/edje/2.4/wearable_360_x_480/shortcut_viewer.edc res/edje/3.0/wearable_360_x_480/pick_viewer.edc res/edje/2.4/wearable_circle/ui_viewer.edc res/edje/2.3.1/wearable_360_360/4_part_txt_txt_btn_btn.edc res/edje/3.0/wearable_360_x_480/push_service.edc res/edje/2.4/wearable_320_x_320/wifi_viewer.edc res/edje/3.0/wearable_circle/sound_player.edc res/edje/2.3.1/wearable_216_432/notification_viewer.edc res/edje/3.0/wearable_circle/graphics_viewer.edc res/edje/2.3.1/wearable_360_x_480/bluetooth_viewer.edc res/edje/2.4/wearable_circle/camera_viewer.edc res/edje/2.3.1/wearable_360_360/sound_player.edc res/edje/3.0/wearable_circle/3_part_txt_btn_btn.edc res/edje/2.3.1/wearable_216_432/nfc_viewer.edc res/edje/3.0/mobile/bluetooth_viewer.edc res/edje/2.3.1/wearable_360_360/graphics_viewer.edc res/edje/2.3.1/wearable_320_320/bluetooth_viewer.edc res/edje/3.0/wearable_320_x_320/pick_viewer.edc res/edje/2.3.1/wearable_360_360/3_part_txt_btn_btn.edc res/edje/3.0/wearable/mock_viewer.edc res/edje/3.0/wearable_320_x_320/display_viewer.edc res/edje/3.0/wearable/touch_viewer.edc res/edje/3.0/wearable_320_x_320/push_service.edc res/edje/2.4/wearable_circle/event_viewer.edc res/edje/2.3.1/wearable_360_360/runtimeinfo_viewer.edc res/edje/3.0/mobile/push_service.edc res/edje/2.4/wearable_360_x_480/nfc_viewer.edc res/edje/2.3.1/wearable_216_432/wifi_viewer.edc res/edje/2.4/wearable_circle/bluetooth_le_viewer.edc res/edje/2.3.1/wearable_360_x_480/mediakey_viewer.edc res/edje/2.4/wearable_320_x_320/animation_viewer.edc res/edje/2.4/wearable_circle/touch_viewer.edc res/edje/2.4/mobile/animation_viewer.edc res/edje/2.4/mobile/wifidirect_info_viewer.edc res/edje/2.4/wearable/graphics_viewer.edc res/edje/3.0/wearable_circle/runtimeinfo_viewer.edc res/edje/2.3.1/wearable_360_360/5_part_cnt__cnt__cnt__cnt_btn.edc res/edje/3.0/wearable_360_x_480/wearable_360_x_480_toolbar.edc res/edje/3.0/wearable/camera_viewer.edc res/edje/2.3.1/wearable_360_360/sound_manager_viewer.edc res/edje/2.3.1/wearable_216_432/video_player.edc res/edje/3.0/wearable_320_x_320/datacontrol_viewer.edc res/edje/2.3.1/wearable_216_432/6_part_txt_cnt_txt_cnt_btn_btn.edc res/edje/2.3.1/wearable_360_360/widget_viewer.edc res/edje/2.4/wearable_360_x_480/wifidirect_info_viewer.edc res/edje/3.0/mobile/sensor_viewer.edc res/edje/3.0/wearable_360_x_480/bluetooth_oob_viewer.edc res/edje/2.3.1/wearable_216_432/motion_detection_viewer.edc res/edje/3.0/wearable_320_x_320/bluetooth_oob_viewer.edc res/edje/3.0/mobile/bluetooth_oob_viewer.edc res/edje/2.3.1/wearable_216_432/shortcut_viewer.edc res/edje/3.0/wearable_circle/efl_callback_viewer.edc res/edje/2.3.1/wearable_320_320/mediakey_viewer.edc res/edje/2.4/wearable_circle/datacontrol_viewer.edc res/edje/2.4/mobile/touch_viewer.edc res/edje/2.4/mobile/input_viewer.edc res/edje/2.3.1/wearable_360_x_480/custom_button.edc res/edje/3.0/wearable_360_x_480/display_viewer.edc res/edje/3.0/wearable_circle/sensor_viewer.edc res/edje/2.3.1/wearable_216_432/wifidirect_info_viewer.edc res/edje/2.3.1/mobile/graphics_viewer.edc res/edje/2.3.1/wearable_320_320/4_part_cnt1.25_cnt1.5_btn_btn.edc res/edje/3.0/wearable/gps_viewer.edc res/edje/2.3.1/wearable_216_432/2_part_cnt3.5_btn.edc res/edje/3.0/wearable_circle/wifi_viewer.edc res/edje/2.3.1/wearable_216_432/runtimeinfo_viewer.edc res/edje/2.4/mobile/mock_viewer.edc res/edje/3.0/wearable_360_x_480/sensor_viewer.edc res/edje/2.4/mobile/wifi_viewer.edc res/edje/2.3.1/wearable_216_432/gps_viewer.edc res/edje/2.3.1/wearable_320_320/5_part_cnt__cnt__cnt__cnt_btn.edc res/edje/2.3.1/wearable_216_432/efl_callback_viewer.edc res/edje/3.0/wearable_320_x_320/event_viewer.edc res/edje/3.0/wearable_320_x_320/bluetooth_le_viewer.edc res/edje/2.4/wearable_360_x_480/efl_callback_viewer.edc res/edje/2.4/wearable_320_x_320/runtimeinfo_viewer.edc res/edje/2.3.1/wearable_320_320/pick_viewer.edc res/edje/2.4/wearable_320_x_320/efl_callback_viewer.edc res/edje/2.3.1/wearable_216_432/connection_viewer.edc res/edje/2.3.1/wearable_320_320/push_service.edc res/edje/2.3.1/wearable_360_x_480/radio_viewer.edc res/edje/2.4/wearable_320_x_320/wearable_320_x_320_toolbar.edc res/edje/2.3.1/wearable_360_x_480/bluetooth_callback_viewer.edc res/edje/2.3.1/wearable_360_x_480/pick_viewer.edc res/edje/3.0/wearable/wifidirect_info_viewer.edc res/edje/2.4/wearable_circle/input_viewer.edc res/edje/3.0/wearable_360_x_480/custom_button.edc res/edje/2.3.1/wearable_320_320/3_part_cnt2.75_txt_btn.edc res/edje/2.4/wearable_360_x_480/camera_viewer.edc res/edje/2.4/wearable_360_x_480/video_player.edc res/edje/2.3.1/wearable_320_320/3_part_txt_cnt3_btn.edc res/edje/2.3.1/wearable_320_320/bluetooth_callback_viewer.edc res/edje/2.3.1/wearable_360_x_480/push_service.edc res/edje/3.0/wearable/ui_viewer.edc res/edje/2.3.1/wearable_320_320/5_part_txt_cnt1.5_cnt_btn_btn.edc res/edje/2.3.1/wearable_216_432/3_part_txt_txt_btn.edc res/edje/2.3.1/wearable_320_320/3_part_txt_btn_btn.edc res/edje/2.4/wearable_360_x_480/motion_detection_viewer.edc res/edje/2.4/wearable/sensor_viewer.edc res/edje/2.4/wearable_320_x_320/wifidirect_viewer.edc res/edje/2.4/mobile/ime_viewer.edc res/edje/2.4/wearable_circle/mock_viewer.edc res/edje/2.3.1/wearable_360_360/6_part_cnt0.75_cnt0.75_cnt0.75_cnt0.75_cnt0.75_btn.edc res/edje/2.4/wearable_320_x_320/motion_detection_viewer.edc res/edje/3.0/wearable_320_x_320/image_viewer.edc res/edje/3.0/wearable_360_x_480/graphics_viewer.edc res/edje/3.0/mobile/feature_viewer.edc res/edje/2.3.1/wearable_320_320/radio_viewer.edc res/edje/2.4/wearable/sound_player.edc res/edje/2.3.1/mobile/sound_player.edc res/edje/3.0/wearable/feature_viewer.edc res/edje/3.0/wearable_320_x_320/custom_button.edc res/edje/2.3.1/wearable_320_320/bluetooth_oob_viewer.edc res/edje/2.4/mobile/shortcut_viewer.edc res/edje/2.4/wearable_circle/display_viewer.edc res/edje/2.3.1/wearable_320_320/4_part_txt_txt_btn_btn.edc res/edje/2.4/wearable_360_x_480/wifidirect_viewer.edc res/edje/2.4/wearable_320_x_320/video_player.edc res/edje/2.3.1/wearable_360_360/shortcut_viewer.edc res/edje/2.4/wearable_320_x_320/touch_viewer.edc res/edje/2.4/wearable_360_x_480/ui_viewer.edc res/edje/3.0/wearable_circle/pick_viewer.edc res/edje/2.3.1/wearable_360_x_480/runtimeinfo_viewer.edc res/edje/2.4/wearable_circle/shortcut_viewer.edc res/edje/2.3.1/mobile/datacontrol_viewer.edc res/edje/2.3.1/wearable_360_x_480/bluetooth_le_viewer.edc res/edje/2.3.1/wearable_360_360/3_part_cnt2.75_txt_btn.edc res/edje/3.0/wearable/display_viewer.edc res/edje/3.0/wearable_320_x_320/camera_viewer.edc res/edje/3.0/wearable_circle/push_service.edc res/edje/2.3.1/wearable_320_320/4_part_txt_cnt2_btn_btn.edc res/edje/2.3.1/wearable_216_432/graphics_viewer.edc res/edje/3.0/wearable_360_x_480/sound_player.edc res/edje/2.3.1/wearable_360_360/mediakey_viewer.edc res/edje/2.3.1/wearable_360_360/pick_viewer.edc res/edje/3.0/wearable_circle/wearable_circle_toolbar.edc res/edje/3.0/wearable_320_x_320/graphics_viewer.edc res/edje/2.3.1/wearable_216_432/3_part_txt_btn_btn.edc res/edje/3.0/wearable/video_player.edc res/edje/2.3.1/wearable_360_360/3_part_cnt2.75_btn_btn.edc res/edje/2.3.1/wearable_360_360/push_service.edc res/edje/2.3.1/wearable_216_432/6_part_txt_txt_txt_txt_txt_btn.edc res/edje/3.0/wearable_360_x_480/event_viewer.edc res/edje/3.0/wearable/wifi_viewer.edc res/edje/2.4/wearable_circle/wearable_circle_toolbar.edc res/edje/2.3.1/wearable_216_432/touch_viewer.edc res/edje/2.4/wearable_320_x_320/graphics_viewer.edc res/edje/3.0/mobile/event_viewer.edc res/edje/3.0/wearable/nfc_viewer.edc res/edje/2.3.1/wearable_320_320/event_viewer.edc res/edje/2.3.1/wearable_216_432/ui_viewer.edc res/edje/3.0/mobile/runtimeinfo_viewer.edc res/edje/3.0/wearable_320_x_320/touch_viewer.edc res/edje/2.3.1/wearable_320_320/efl_callback_viewer.edc res/edje/2.4/wearable/nfc_viewer.edc res/edje/2.3.1/wearable_360_360/animation_viewer.edc res/edje/2.3.1/wearable_216_432/5_part_cnt_txt_cnt1.25_btn_btn.edc res/edje/2.4/mobile/event_viewer.edc res/edje/2.4/wearable/display_viewer.edc res/edje/2.4/mobile/runtimeinfo_viewer.edc res/edje/2.4/wearable_320_x_320/image_viewer.edc res/edje/2.3.1/mobile/display_viewer.edc res/edje/2.3.1/wearable_320_320/3_part_cnt2.75_cnt_btn.edc res/edje/2.4/mobile/image_viewer.edc res/edje/2.4/wearable/feature_viewer.edc res/edje/3.0/wearable_circle/nfc_viewer.edc res/edje/2.3.1/wearable_360_360/notification_viewer.edc res/edje/2.3.1/wearable_360_360/video_player.edc res/edje/2.4/wearable_circle/gps_viewer.edc res/edje/2.3.1/wearable_360_360/6_part_txt_cnt_txt_cnt_btn_btn.edc res/edje/2.4/mobile/ui_viewer.edc res/edje/2.3.1/mobile/runtimeinfo_viewer.edc res/edje/2.3.1/wearable_360_x_480/ui_viewer.edc res/edje/2.4/wearable_360_x_480/runtimeinfo_viewer.edc res/edje/3.0/mobile/wifi_viewer.edc res/edje/2.3.1/wearable_360_360/nfc_viewer.edc res/edje/3.0/wearable_circle/video_player.edc res/edje/2.4/wearable_360_x_480/input_viewer.edc res/edje/2.3.1/wearable_360_360/wearable_circle_toolbar.edc res/edje/2.4/mobile/feature_viewer.edc res/edje/2.3.1/wearable_360_x_480/feature_viewer.edc res/edje/2.3.1/wearable_360_360/systemsettings_viewer.edc res/edje/2.3.1/wearable_360_360/3_part_txt_cnt3_btn.edc res/edje/3.0/wearable_circle/display_viewer.edc res/edje/2.3.1/mobile/feature_viewer.edc res/edje/2.3.1/mobile/image_viewer.edc res/edje/2.4/wearable_circle/pick_viewer.edc res/edje/2.3.1/wearable_320_320/image_viewer.edc res/edje/2.3.1/wearable_320_320/3_part_txt_txt_btn.edc res/edje/2.4/wearable_360_x_480/feature_viewer.edc res/edje/2.4/wearable_circle/push_service.edc res/edje/3.0/wearable_360_x_480/datacontrol_viewer.edc res/edje/2.3.1/wearable_216_432/4_part_txt_cnt2_btn_btn.edc res/edje/2.3.1/wearable_360_360/sensor_viewer.edc res/edje/2.4/mobile/video_player.edc res/edje/2.3.1/wearable_320_320/3_part_cnt2_btn_btn2.edc res/edje/2.3.1/wearable_360_x_480/input_viewer.edc res/edje/2.4/wearable/ui_viewer.edc res/edje/3.0/wearable/event_viewer.edc res/edje/2.4/wearable_360_x_480/sensor_viewer.edc res/edje/2.3.1/mobile/ui_viewer.edc res/edje/3.0/mobile/graphics_viewer.edc res/edje/2.3.1/wearable_320_320/graphics_viewer.edc res/edje/2.3.1/wearable_360_x_480/sound_manager_viewer.edc res/edje/3.0/mobile/display_viewer.edc res/edje/2.3.1/mobile/push_service.edc res/edje/2.3.1/wearable_360_360/storage_viewer.edc res/edje/2.4/wearable/event_viewer.edc res/edje/3.0/wearable/pick_viewer.edc res/edje/2.3.1/wearable_320_320/display_viewer.edc res/edje/2.3.1/wearable_360_x_480/systemsettings_viewer.edc res/edje/2.4/wearable/runtimeinfo_viewer.edc res/edje/3.0/wearable_360_x_480/video_player.edc res/edje/2.3.1/wearable_360_360/feature_viewer.edc res/edje/2.3.1/wearable_360_x_480/mock_viewer.edc res/edje/2.4/wearable_circle/feature_viewer.edc res/edje/3.0/wearable/push_service.edc res/edje/3.0/wearable_320_x_320/efl_callback_viewer.edc res/edje/2.3.1/wearable_320_320/connection_viewer.edc res/edje/2.4/mobile/nfc_viewer.edc res/edje/3.0/wearable_320_x_320/bluetooth_viewer.edc res/edje/2.4/wearable/pick_viewer.edc res/edje/2.3.1/wearable_320_320/touch_viewer.edc res/edje/2.3.1/mobile/pick_viewer.edc res/edje/2.3.1/wearable_216_432/package_manager_viewer.edc res/edje/2.4/wearable_360_x_480/mock_viewer.edc res/edje/3.0/mobile/pick_viewer.edc res/edje/2.4/wearable/push_service.edc res/edje/2.3.1/wearable_216_432/event_viewer.edc res/edje/2.3.1/mobile/nfc_viewer.edc res/edje/2.3.1/wearable_360_360/datacontrol_viewer.edc res/edje/2.3.1/wearable_360_x_480/sensor_viewer.edc res/edje/3.0/wearable/graphics_viewer.edc res/edje/2.4/wearable_circle/runtimeinfo_viewer.edc res/edje/3.0/wearable_360_x_480/feature_viewer.edc res/edje/2.3.1/mobile/event_viewer.edc res/edje/2.3.1/wearable_360_360/gps_viewer.edc res/edje/2.4/wearable_circle/video_player.edc res/edje/2.3.1/mobile/video_player.edc res/edje/3.0/wearable_circle/event_viewer.edc res/edje/3.0/wearable_360_x_480/nfc_viewer.edc res/edje/2.3.1/wearable_320_320/wifi_viewer.edc res/edje/2.4/wearable_360_x_480/gps_viewer.edc res/edje/2.3.1/wearable_360_x_480/shortcut_viewer.edc res/edje/2.4/wearable/3_part_txt_btn_btn.edc res/edje/2.3.1/wearable_360_x_480/storage_viewer.edc res/edje/2.3.1/wearable_360_360/2_part_cnt3.5_btn.edc res/edje/3.0/wearable_360_x_480/runtimeinfo_viewer.edc res/edje/2.3.1/wearable_216_432/contacts_viewer.edc res/edje/2.3.1/wearable_360_360/nsd_viewer.edc res/edje/2.3.1/wearable_216_432/image_viewer.edc res/edje/2.4/wearable/video_player.edc res/edje/2.3.1/wearable_360_x_480/sound_player.edc res/edje/2.4/wearable_360_x_480/datacontrol_viewer.edc res/edje/3.0/wearable_360_x_480/ui_viewer.edc res/edje/3.0/mobile/image_viewer.edc res/edje/2.4/wearable_circle/nfc_viewer.edc res/edje/3.0/wearable_360_x_480/wifidirect_info_viewer.edc res/edje/2.3.1/wearable_360_x_480/datacontrol_viewer.edc res/edje/2.4/wearable_360_x_480/sound_player.edc res/edje/3.0/wearable/image_viewer.edc res/edje/2.4/wearable_360_x_480/pick_viewer.edc res/edje/3.0/wearable_circle/ui_viewer.edc res/edje/2.3.1/mobile/wifidirect_info_viewer.edc res/edje/2.3.1/wearable_360_x_480/gps_viewer.edc res/edje/2.4/mobile/bluetooth_oob_viewer.edc res/edje/2.4/wearable_320_x_320/custom_button.edc res/edje/2.3.1/wearable_216_432/4_part_cnt1.25_cnt1.5_btn_btn.edc res/edje/2.3.1/wearable_360_360/image_viewer.edc res/edje/2.3.1/wearable_360_360/stt_viewer.edc res/edje/2.4/wearable/mock_viewer.edc res/edje/2.4/wearable_360_x_480/push_service.edc res/edje/2.4/mobile/oauth2_info_viewer.edc res/edje/3.0/mobile/gps_viewer.edc res/edje/2.3.1/wearable_320_320/gps_viewer.edc res/edje/2.4/wearable_circle/graphics_viewer.edc res/edje/2.3.1/wearable_216_432/3_part_cnt2_btn_btn2.edc res/edje/2.3.1/wearable_360_360/5_part_cnt_txt_cnt1.25_btn_btn.edc res/edje/2.4/wearable_circle/3_part_txt_btn_btn.edc res/edje/3.0/wearable_360_x_480/shortcut_viewer.edc res/edje/2.4/mobile/bluetooth_viewer.edc res/edje/2.3.1/wearable_216_432/3_part_cnt2.75_txt_btn.edc res/edje/2.3.1/wearable_320_320/package_manager_viewer.edc res/edje/2.4/wearable_360_x_480/wearable_360_x_480_toolbar.edc res/edje/2.3.1/wearable_216_432/pick_viewer.edc res/edje/2.4/wearable_320_x_320/display_viewer.edc res/edje/2.4/wearable/touch_viewer.edc res/edje/2.3.1/mobile/mock_viewer.edc res/edje/2.3.1/wearable_360_360/input_viewer.edc res/edje/2.3.1/wearable_360_360/ui_viewer.edc res/edje/2.3.1/wearable_216_432/display_viewer.edc res/edje/2.4/wearable_circle/sound_player.edc res/edje/2.4/mobile/push_service.edc res/edje/2.3.1/wearable_216_432/3_part_cnt2.75_btn_btn.edc res/edje/2.3.1/wearable_216_432/push_service.edc res/edje/2.4/wearable_360_x_480/bluetooth_viewer.edc res/edje/3.0/wearable_320_x_320/nfc_viewer.edc res/edje/3.0/wearable_circle/image_viewer.edc res/edje/2.3.1/wearable_216_432/systemsettings_viewer.edc res/edje/2.3.1/wearable_320_320/animation_viewer.edc res/edje/3.0/wearable_circle/input_viewer.edc res/edje/2.4/wearable_360_x_480/custom_button.edc res/edje/2.3.1/wearable_216_432/3_part_txt_cnt3_btn.edc res/edje/2.3.1/wearable_216_432/bluetooth_viewer.edc res/edje/2.3.1/wearable_360_x_480/contacts_viewer.edc res/edje/2.4/wearable_320_x_320/pick_viewer.edc res/edje/2.4/mobile/pick_viewer.edc res/edje/3.0/wearable_360_x_480/wifidirect_viewer.edc res/edje/3.0/wearable/3_part_txt_btn_btn.edc res/edje/3.0/wearable_320_x_320/wifi_viewer.edc res/edje/2.3.1/wearable_216_432/5_part_txt_cnt1.5_cnt_btn_btn.edc res/edje/2.4/wearable/input_viewer.edc res/edje/2.3.1/wearable_320_320/2_part_cnt1.5_btntop.edc res/edje/3.0/wearable/sensor_viewer.edc res/edje/2.3.1/mobile/input_viewer.edc res/edje/3.0/wearable_circle/camera_viewer.edc res/edje/2.4/wearable/wifidirect_info_viewer.edc res/edje/2.3.1/mobile/animation_viewer.edc res/edje/2.3.1/wearable_216_432/radio_viewer.edc res/edje/3.0/wearable/bluetooth_oob_viewer.edc res/edje/2.3.1/wearable_320_320/wifidirect_info_viewer.edc res/edje/3.0/wearable_320_x_320/shortcut_viewer.edc res/edje/3.0/wearable_360_x_480/gps_viewer.edc res/edje/2.3.1/wearable_360_360/camera_viewer.edc res/edje/2.3.1/wearable_360_360/mock_viewer.edc res/edje/3.0/mobile/shortcut_viewer.edc res/edje/2.3.1/wearable_216_432/bluetooth_oob_viewer.edc res/edje/2.4/wearable/image_viewer.edc res/edje/3.0/wearable_320_x_320/video_player.edc res/edje/2.3.1/wearable_320_320/contacts_viewer.edc res/edje/3.0/wearable_320_x_320/wearable_320_x_320_toolbar.edc res/edje/2.3.1/wearable_360_x_480/animation_viewer.edc res/edje/3.0/wearable_320_x_320/wifidirect_viewer.edc res/edje/3.0/mobile/wifidirect_viewer.edc res/edje/3.0/wearable_circle/mock_viewer.edc res/edje/2.3.1/wearable_360_x_480/wifidirect_info_viewer.edc res/edje/3.0/wearable_320_x_320/motion_detection_viewer.edc res/edje/2.3.1/wearable_320_320/nfc_viewer.edc res/edje/3.0/mobile/nfc_viewer.edc res/edje/2.3.1/wearable_216_432/feature_viewer.edc res/edje/2.3.1/wearable_360_360/radio_viewer.edc res/edje/3.0/wearable_360_x_480/mock_viewer.edc res/edje/2.3.1/wearable_360_x_480/notification_viewer.edc res/edje/2.3.1/wearable_360_x_480/video_player.edc res/edje/2.4/wearable_320_x_320/bluetooth_oob_viewer.edc res/edje/2.4/wearable_circle/sensor_viewer.edc res/edje/2.3.1/mobile/shortcut_viewer.edc res/edje/2.4/mobile/custom_button.edc res/edje/3.0/mobile/camera_viewer.edc res/edje/2.3.1/wearable_320_320/camera_viewer.edc res/edje/2.3.1/wearable_320_320/video_player.edc res/edje/3.0/mobile/video_player.edc res/edje/2.3.1/wearable_360_x_480/nfc_viewer.edc res/edje/3.0/wearable/runtimeinfo_viewer.edc res/edje/2.3.1/wearable_360_x_480/motion_detection_viewer.edc res/edje/2.4/wearable/animation_viewer.edc res/edje/2.3.1/wearable_216_432/datacontrol_viewer.edc res/edje/2.3.1/wearable_360_360/package_manager_viewer.edc res/edje/2.4/wearable_320_x_320/feature_viewer.edc res/edje/2.4/wearable_320_x_320/bluetooth_viewer.edc res/edje/2.3.1/wearable_360_360/4_part_txt_cnt2_btn_btn.edc res/edje/2.3.1/wearable_360_x_480/camera_viewer.edc res/edje/2.4/mobile/graphics_viewer.edc res/edje/2.4/wearable/gps_viewer.edc res/edje/2.4/mobile/display_viewer.edc res/edje/3.0/wearable_circle/datacontrol_viewer.edc res/edje/2.4/wearable_320_x_320/push_service.edc res/edje/2.3.1/mobile/touch_viewer.edc res/edje/2.3.1/wearable_320_320/notification_viewer.edc res/edje/3.0/mobile/touch_viewer.edc res/edje/2.3.1/wearable_360_360/5_part_txt_cnt1.5_cnt_btn_btn.edc res/edje/2.4/wearable_320_x_320/event_viewer.edc res/edje/3.0/wearable_circle/feature_viewer.edc res/edje/3.0/wearable/bluetooth_viewer.edc res/edje/2.3.1/wearable_216_432/storage_viewer.edc res/edje/2.4/wearable_320_x_320/bluetooth_le_viewer.edc res/edje/2.3.1/wearable_360_360/event_viewer.edc res/edje/2.3.1/wearable_360_360/bluetooth_le_viewer.edc res/edje/2.3.1/mobile/gps_viewer.edc res/edje/2.3.1/wearable_360_360/custom_button.edc res/edje/2.3.1/mobile/wifi_viewer.edc res/edje/2.4/wearable_360_x_480/bluetooth_le_viewer.edc res/edje/2.3.1/wearable_360_360/mtp_viewer.edc res/edje/2.3.1/wearable_320_320/wearable_toolbar.edc res/edje/2.4/mobile/datacontrol_viewer.edc res/edje/2.3.1/wearable_360_x_480/package_manager_viewer.edc res/edje/3.0/mobile/ui_viewer.edc res/edje/3.0/wearable_circle/gps_viewer.edc res/edje/3.0/wearable_320_x_320/animation_viewer.edc res/edje/2.4/wearable/datacontrol_viewer.edc res/edje/2.3.1/wearable_320_320/motion_detection_viewer.edc res/edje/3.0/mobile/wifidirect_info_viewer.edc res/edje/2.4/wearable/shortcut_viewer.edc res/edje/2.4/mobile/sound_player.edc res/edje/3.0/wearable_360_x_480/image_viewer.edc res/edje/2.3.1/wearable_216_432/mediakey_viewer.edc res/edje/2.3.1/wearable_360_360/2_part_cnt1.5_btntop.edc res/edje/2.3.1/wearable_360_360/4_part_cnt1.25_cnt1.5_btn_btn.edc res/edje/3.0/wearable_360_x_480/input_viewer.edc res/edje/2.3.1/wearable_360_x_480/wifidirect_viewer.edc res/edje/2.3.1/wearable_216_432/3_part_cnt2.75_cnt_btn.edc res/edje/3.0/wearable_360_x_480/animation_viewer.edc res/edje/2.3.1/wearable_320_320/wifidirect_viewer.edc res/edje/2.4/mobile/sensor_viewer.edc res/edje/2.4/wearable_360_x_480/bluetooth_oob_viewer.edc res/edje/2.4/wearable_320_x_320/camera_viewer.edc res/edje/3.0/wearable_circle/touch_viewer.edc res/edje/2.4/mobile/bluetooth_le_viewer.edc res/edje/2.3.1/wearable_216_432/camera_viewer.edc res/edje/2.3.1/wearable_360_360/contacts_viewer.edc res/edje/2.4/wearable_320_x_320/input_viewer.edc res/edje/2.3.1/wearable_320_320/2_part_cnt3.5_btn.edc res/edje/3.0/wearable/motion_detection_viewer.edc res/edje/3.0/wearable_circle/animation_viewer.edc res/edje/2.4/wearable/wifi_viewer.edc res/edje/2.3.1/wearable_216_432/config.edc res/edje/2.4/wearable/wearable_toolbar.edc res/edje/3.0/mobile/bluetooth_le_viewer.edc res/edje/2.3.1/wearable_360_360/wifidirect_viewer.edc res/edje/2.3.1/wearable_320_320/bluetooth_le_viewer.edc res/edje/3.0/wearable_circle/shortcut_viewer.edc res/edje/3.0/wearable_320_x_320/input_viewer.edc res/edje/3.0/mobile/ime_viewer.edc res/edje/2.4/wearable_circle/animation_viewer.edc res/edje/2.3.1/wearable_360_360/autofill_viewer.edc res/edje/2.3.1/wearable_360_x_480/event_viewer.edc res/edje/3.0/wearable_circle/wifidirect_viewer.edc res/edje/2.4/wearable/efl_callback_viewer.edc res/edje/2.3.1/wearable_216_432/input_viewer.edc res/edje/2.3.1/wearable_320_320/runtimeinfo_viewer.edc res/edje/2.4/wearable_360_x_480/event_viewer.edc res/edje/2.4/wearable_circle/wifidirect_viewer.edc res/edje/3.0/mobile/efl_callback_viewer.edc res/edje/2.3.1/mobile/efl_callback_viewer.edc res/edje/2.3.1/wearable_216_432/5_part_cnt__cnt__cnt__cnt_btn.edc res/edje/2.4/wearable_circle/custom_button.edc res/edje/2.3.1/wearable_320_320/6_part_cnt0.75_cnt0.75_cnt0.75_cnt0.75_cnt0.75_btn.edc res/edje/2.3.1/wearable_360_360/3_part_cnt2_btn_btn2.edc res/edje/3.0/wearable/efl_callback_viewer.edc res/edje/3.0/mobile/oauth2_viewer.edc res/edje/3.0/wearable/wifidirect_viewer.edc res/edje/3.0/wearable_circle/bluetooth_oob_viewer.edc res/edje/2.3.1/wearable_216_432/mock_viewer.edc res/edje/3.0/wearable_360_x_480/camera_viewer.edc res/edje/2.4/wearable_320_x_320/ui_viewer.edc res/edje/2.3.1/wearable_360_x_480/efl_callback_viewer.edc res/edje/2.3.1/wearable_216_432/sound_player.edc res/edje/2.3.1/wearable_320_320/5_part_cnt_txt_cnt1.25_btn_btn.edc res/edje/2.3.1/wearable_360_x_480/image_viewer.edc res/edje/2.3.1/wearable_360_360/tts_viewer.edc res/edje/3.0/wearable_320_x_320/mock_viewer.edc res/edje/2.3.1/wearable_360_360/bluetooth_oob_viewer.edc res/edje/3.0/wearable/shortcut_viewer.edc res/edje/2.3.1/wearable_360_360/display_viewer.edc res/edje/2.3.1/wearable_360_360/motion_detection_viewer.edc res/edje/2.3.1/wearable_320_320/ui_viewer.edc res/edje/2.4/wearable_360_x_480/graphics_viewer.edc res/edje/3.0/wearable/wearable_toolbar.edc res/edje/3.0/mobile/datacontrol_viewer.edc res/edje/3.0/wearable_360_x_480/bluetooth_le_viewer.edc res/edje/3.0/wearable_320_x_320/sensor_viewer.edc res/edje/2.3.1/wearable_320_320/6_part_txt_txt_txt_txt_txt_btn.edc res/edje/2.3.1/wearable_216_432/bluetooth_callback_viewer.edc res/edje/2.3.1/wearable_360_360/bluetooth_viewer.edc res/edje/2.4/wearable_circle/wifi_viewer.edc res/edje/2.3.1/wearable_216_432/4_part_txt_txt_btn_btn.edc res/edje/3.0/wearable/datacontrol_viewer.edc res/edje/2.3.1/wearable_360_x_480/graphics_viewer.edc res/edje/2.3.1/wearable_320_320/feature_viewer.edc res/edje/3.0/wearable_320_x_320/sound_player.edc res/edje/2.4/wearable/custom_button.edc res/edje/3.0/mobile/sound_player.edc res/edje/2.4/wearable_360_x_480/image_viewer.edc res/edje/3.0/wearable_circle/bluetooth_viewer.edc res/edje/2.3.1/mobile/custom_button.edc res/edje/2.3.1/wearable_216_432/sound_manager_viewer.edc res/edje/2.3.1/wearable_216_432/sensor_viewer.edc res/edje/2.3.1/wearable_320_320/custom_button.edc res/edje/3.0/wearable/sound_player.edc res/edje/2.3.1/wearable_360_x_480/touch_viewer.edc res/edje/2.3.1/wearable_320_320/sound_manager_viewer.edc res/edje/3.0/wearable_360_x_480/wifi_viewer.edc res/edje/2.3.1/wearable_360_360/efl_callback_viewer.edc res/edje/2.4/wearable/bluetooth_viewer.edc res/edje/2.4/wearable_circle/efl_callback_viewer.edc res/edje/3.0/wearable_320_x_320/feature_viewer.edc res/edje/2.3.1/mobile/camera_viewer.edc res/edje/2.3.1/wearable_360_360/3_part_cnt2.75_cnt_btn.edc res/edje/2.3.1/wearable_360_x_480/display_viewer.edc res/edje/3.0/wearable_360_x_480/motion_detection_viewer.edc res/edje/3.0/mobile/input_viewer.edc res/edje/2.3.1/wearable_320_320/input_viewer.edc res/edje/2.4/wearable_360_x_480/wifi_viewer.edc res/edje/3.0/wearable/bluetooth_le_viewer.edc res/edje/2.3.1/wearable_320_320/3_part_cnt2.75_btn_btn.edc res/edje/2.3.1/wearable_216_432/bluetooth_le_viewer.edc res/edje/2.3.1/wearable_360_x_480/connection_viewer.edc res/edje/2.4/wearable_360_x_480/display_viewer.edc res/edje/3.0/wearable_360_x_480/efl_callback_viewer.edc res/edje/2.4/wearable/bluetooth_le_viewer.edc res/edje/3.0/wearable_circle/motion_detection_viewer.edc res/edje/2.3.1/wearable_216_432/wearable_toolbar.edc res/edje/3.0/wearable_320_x_320/runtimeinfo_viewer.edc res/edje/3.0/wearable_360_x_480/touch_viewer.edc res/edje/3.0/wearable_320_x_320/gps_viewer.edc res/edje/2.3.1/wearable_360_360/wifi_viewer.edc res/edje/2.3.1/wearable_320_320/mock_viewer.edc res/edje/2.4/wearable_circle/bluetooth_oob_viewer.edc res/edje/2.3.1/mobile/bluetooth_viewer.edc res/edje/3.0/mobile/mock_viewer.edc res/edje/2.4/wearable_circle/motion_detection_viewer.edc res/edje/2.4/wearable_360_x_480/touch_viewer.edc res/edje/2.4/wearable_320_x_320/gps_viewer.edc res/edje/2.4/mobile/efl_callback_viewer.edc res/edje/3.0/mobile/animation_viewer.edc res/edje/3.0/wearable_circle/custom_button.edc res/edje/2.3.1/wearable_216_432/2_part_cnt1.5_btntop.edc res/edje/2.3.1/wearable_360_360/touch_viewer.edc res/edje/2.4/wearable/camera_viewer.edc res/edje/2.3.1/wearable_216_432/6_part_cnt0.75_cnt0.75_cnt0.75_cnt0.75_cnt0.75_btn.edc res/edje/2.3.1/wearable_320_320/systemsettings_viewer.edc res/edje/2.3.1/mobile/bluetooth_le_viewer.edc res/edje/2.3.1/wearable_216_432/animation_viewer.edc res/edje/2.4/wearable_320_x_320/datacontrol_viewer.edc res/edje/2.3.1/wearable_360_x_480/wearable_360_x_480_toolbar.edc res/edje/3.0/wearable_320_x_320/ui_viewer.edc res/edje/3.0/wearable_circle/bluetooth_le_viewer.edc res/edje/2.4/wearable_320_x_320/mock_viewer.edc res/edje/2.4/mobile/camera_viewer.edc res/edje/3.0/wearable/input_viewer.edc res/edje/2.4/wearable_320_x_320/sound_player.edc res/edje/2.3.1/wearable_360_360/connection_viewer.edc res/edje/3.0/wearable/custom_button.edc res/edje/2.3.1/wearable_320_320/datacontrol_viewer.edc res/edje/2.4/mobile/wifidirect_viewer.edc res/edje/3.0/wearable/animation_viewer.edc res/edje/2.3.1/wearable_360_x_480/wifi_viewer.edc res/edje/2.4/wearable_circle/bluetooth_viewer.edc res/edje/2.3.1/wearable_320_320/shortcut_viewer.edc res/edje/2.3.1/wearable_216_432/custom_button.edc res/edje/2.3.1/wearable_320_320/sensor_viewer.edc res/edje/2.4/mobile/oauth2_viewer.edc res/edje/2.4/wearable/bluetooth_oob_viewer.edc res/edje/2.4/wearable/wifidirect_viewer.edc res/edje/2.3.1/wearable_320_320/6_part_txt_cnt_txt_cnt_btn_btn.edc res/edje/2.4/wearable_320_x_320/shortcut_viewer.edc res/edje/2.4/wearable_320_x_320/sensor_viewer.edc res/edje/2.3.1/mobile/bluetooth_oob_viewer.edc res/edje/2.3.1/mobile/wifidirect_viewer.edc res/edje/2.4/wearable/motion_detection_viewer.edc res/edje/2.3.1/wearable_320_320/sound_player.edc res/edje/3.0/mobile/custom_button.edc +USER_EXT_EDC0_EDCS_IMAGE_DIRS = ${OUTPUT_DIR} edje/images +USER_EXT_EDC0_EDCS_SOUND_DIRS = ${OUTPUT_DIR} edje/sounds +USER_EXT_EDC0_EDCS_FONT_DIRS = ${OUTPUT_DIR} edje/fonts + +# Resource Filter +USER_RES_INCLUDE = +USER_RES_EXCLUDE = +