From 3930c55d1de82f12a5efb1d6bf88bd198e852e8c Mon Sep 17 00:00:00 2001 From: wchang kim Date: Fri, 4 May 2018 14:40:44 +0900 Subject: [PATCH] Adding the tool to build a configuable SDK extension. Change-Id: I79336ba5f6fe010d80433aa003a7618859e842fb --- .gitignore | 2 +- config-sdk/.gitignore | 23 + config-sdk/clean_data.sh | 24 + .../NativeAppDevelopment-CLI/changelog | 3 + .../NativeAppDevelopment-CLI/data/.wd | 0 .../extension/NativeAppDevelopment/changelog | 3 + .../extension/NativeAppDevelopment/data/.wd | 0 config-sdk/extension/base/changelog | 3 + config-sdk/extension/base/data/.wd | 0 config-sdk/extension/core-add-ons/data/.wd | 0 .../template/features/native/feature.xml | 423 ++++++++++++++ .../native/privilege-native.properties | 85 +++ .../Common/Build Script/Build/appendix.mk | 1 + .../Common/Build Script/Build/basedef.mk | 34 ++ .../Common/Build Script/Build/build_c.mk | 113 ++++ .../Common/Build Script/Build/build_edc.mk | 81 +++ .../Common/Build Script/Build/build_po.mk | 64 ++ .../Common/Build Script/Build/flags.mk | 27 + .../Common/Build Script/Build/funcs.mk | 50 ++ .../Common/Build Script/Build/makefile | 34 ++ .../Common/Build Script/Build/makefile.mk | 205 +++++++ .../Common/Build Script/Build/platform.mk | 18 + .../Common/Build Script/Build/tooldef.mk | 70 +++ .../Native/ServiceApp/description.xml | 31 + .../Native/ServiceApp/ic_l_service.png | Bin 0 -> 18513 bytes .../Native/ServiceApp/ic_m_service_n.png | Bin 0 -> 2129 bytes .../Native/ServiceApp/ic_m_service_s.png | Bin 0 -> 2275 bytes .../Native/ServiceApp/ic_s_service.png | Bin 0 -> 2174 bytes .../Native/ServiceApp/project/inc/main.h | 12 + .../ServiceApp/project/project_def.prop | 11 + .../project/shared/res/mainmenu.png | Bin 0 -> 57662 bytes .../Native/ServiceApp/project/src/main.c | 64 ++ .../ServiceApp/project/tizen-manifest.xml | 8 + .../Template/Native/ServiceApp/sample.xml | 52 ++ .../Template/Native/ServiceApp/screenshot.png | Bin 0 -> 16034 bytes .../Native/SharedLibrary/description.xml | 26 + .../SharedLibrary/ic_l_shared_library.png | Bin 0 -> 19998 bytes .../SharedLibrary/ic_m_shared_library_n.png | Bin 0 -> 2495 bytes .../SharedLibrary/ic_m_shared_library_s.png | Bin 0 -> 2731 bytes .../SharedLibrary/ic_s_shared_library.png | Bin 0 -> 2653 bytes .../Native/SharedLibrary/project/inc/lib.h | 21 + .../SharedLibrary/project/project_def.prop | 11 + .../Native/SharedLibrary/project/src/lib.c | 11 + .../Template/Native/SharedLibrary/sample.xml | 42 ++ .../Native/SharedLibrary/screenshot.png | Bin 0 -> 16034 bytes .../Native/basic-edc-ui/description.xml | 28 + .../basic-edc-ui/ic_l_basic_ui_with_edc.png | Bin 0 -> 17929 bytes .../basic-edc-ui/ic_m_basic_ui_with_edc_n.png | Bin 0 -> 1878 bytes .../basic-edc-ui/ic_m_basic_ui_with_edc_s.png | Bin 0 -> 1997 bytes .../basic-edc-ui/ic_s_basic_ui_with_edc.png | Bin 0 -> 1938 bytes .../Native/basic-edc-ui/project/inc/main.h | 23 + .../basic-edc-ui/project/project_def.prop | 11 + .../basic-edc-ui/project/res/edje/main.edc | 14 + .../project/shared/res/mainmenu.png | Bin 0 -> 57662 bytes .../Native/basic-edc-ui/project/src/main.c | 188 ++++++ .../basic-edc-ui/project/tizen-manifest.xml | 8 + .../Template/Native/basic-edc-ui/sample.xml | 56 ++ .../Native/basic-edc-ui/screenshot.png | Bin 0 -> 1784 bytes .../Template/Native/basic-ui/description.xml | 28 + .../Template/Native/basic-ui/ic_l_efl.png | Bin 0 -> 3876 bytes .../Template/Native/basic-ui/ic_m_efl_n.png | Bin 0 -> 1923 bytes .../Template/Native/basic-ui/ic_m_efl_s.png | Bin 0 -> 2042 bytes .../Template/Native/basic-ui/ic_s_efl.png | Bin 0 -> 1984 bytes .../Native/basic-ui/project/inc/main.h | 19 + .../Native/basic-ui/project/project_def.prop | 11 + .../basic-ui/project/shared/res/mainmenu.png | Bin 0 -> 57662 bytes .../Native/basic-ui/project/src/main.c | 173 ++++++ .../basic-ui/project/tizen-manifest.xml | 8 + .../Template/Native/basic-ui/sample.xml | 51 ++ .../Template/Native/basic-ui/screenshot.png | Bin 0 -> 1780 bytes config-sdk/extension/output/.wd | 0 config-sdk/extension/rootstrap/data/.wd | 0 config-sdk/extension/version_info | 5 + config-sdk/make_extension.sh | 166 ++++++ config-sdk/make_rootstrap.sh | 397 +++++++++++++ config-sdk/package_all.sh | 502 ++++++++++++++++ config-sdk/package_rootstrap.sh | 547 ++++++++++++++++++ config-sdk/rs_resource/EFL/ecore-rs.xml | 75 +++ config-sdk/rs_resource/EFL/edje-rs.xml | 18 + config-sdk/rs_resource/EFL/eet-rs.xml | 17 + .../rs_resource/EFL/efl-extension-rs.xml | 19 + config-sdk/rs_resource/EFL/eina-rs.xml | 18 + config-sdk/rs_resource/EFL/eio-rs.xml | 17 + config-sdk/rs_resource/EFL/eldbus-rs.xml | 17 + config-sdk/rs_resource/EFL/elementary-rs.xml | 17 + config-sdk/rs_resource/EFL/etc/dbus-rs.xml | 16 + config-sdk/rs_resource/EFL/etc/ector-rs.xml | 18 + config-sdk/rs_resource/EFL/etc/efl-rs.xml | 19 + config-sdk/rs_resource/EFL/etc/emile-rs.xml | 18 + config-sdk/rs_resource/EFL/etc/eo-rs.xml | 14 + config-sdk/rs_resource/EFL/evas-rs.xml | 20 + .../rs_resource/EFL/inhouse/edbus-rs.xml | 18 + .../rs_resource/EFL/inhouse/efreet-rs.xml | 31 + .../rs_resource/EFL/inhouse/embryo-rs.xml | 18 + config-sdk/rs_resource/EFL/inhouse/eo-rs.xml | 18 + .../rs_resource/EFL/inhouse/ethumb-rs.xml | 22 + .../NativeAPI/appcore-widget-rs.xml | 21 + .../rs_resource/NativeAPI/attach-panel-rs.xml | 20 + config-sdk/rs_resource/NativeAPI/badge-rs.xml | 21 + .../rs_resource/NativeAPI/bundle-rs.xml | 20 + config-sdk/rs_resource/NativeAPI/cairo-rs.xml | 30 + .../NativeAPI/calendar-service-rs.xml | 32 + .../NativeAPI/capi-appfw-alarm-rs.xml | 20 + .../NativeAPI/capi-appfw-app-common-rs.xml | 22 + .../NativeAPI/capi-appfw-app-control-rs.xml | 20 + .../NativeAPI/capi-appfw-app-manager-rs.xml | 23 + .../NativeAPI/capi-appfw-application-rs.xml | 21 + .../NativeAPI/capi-appfw-event-rs.xml | 20 + .../NativeAPI/capi-appfw-job-scheduler-rs.xml | 23 + .../capi-appfw-package-manager-rs.xml | 23 + .../NativeAPI/capi-appfw-preference-rs.xml | 20 + .../capi-appfw-service-application-rs.xml | 20 + .../NativeAPI/capi-base-common-rs.xml | 22 + .../NativeAPI/capi-base-utils-rs.xml | 49 ++ .../capi-content-media-content-rs.xml | 34 ++ .../NativeAPI/capi-content-mime-type-rs.xml | 20 + .../NativeAPI/capi-context-motion-rs.xml | 21 + .../rs_resource/NativeAPI/capi-context-rs.xml | 21 + .../NativeAPI/capi-data-control-rs.xml | 28 + .../NativeAPI/capi-geofence-manager-rs.xml | 19 + .../NativeAPI/capi-location-manager-rs.xml | 22 + .../NativeAPI/capi-maps-service-rs.xml | 43 ++ .../NativeAPI/capi-media-audio-io-rs.xml | 21 + .../NativeAPI/capi-media-camera-rs.xml | 21 + .../NativeAPI/capi-media-codec-rs.xml | 20 + .../NativeAPI/capi-media-controller-rs.xml | 23 + .../NativeAPI/capi-media-image-util-rs.xml | 24 + .../capi-media-metadata-editor-rs.xml | 19 + .../capi-media-metadata-extractor-rs.xml | 22 + .../NativeAPI/capi-media-player-rs.xml | 21 + .../NativeAPI/capi-media-radio-rs.xml | 21 + .../NativeAPI/capi-media-recorder-rs.xml | 21 + .../capi-media-screen-mirroring-rs.xml | 22 + .../NativeAPI/capi-media-sound-manager-rs.xml | 21 + .../NativeAPI/capi-media-sound-pool-rs.xml | 22 + .../NativeAPI/capi-media-streamer-rs.xml | 21 + .../capi-media-streamrecorder-rs.xml | 21 + .../capi-media-thumbnail-util-rs.xml | 19 + .../NativeAPI/capi-media-tone-player-rs.xml | 21 + .../NativeAPI/capi-media-tool-rs.xml | 22 + .../NativeAPI/capi-media-video-util-rs.xml | 21 + .../NativeAPI/capi-media-vision-rs.xml | 32 + .../NativeAPI/capi-media-wav-player-rs.xml | 21 + .../NativeAPI/capi-mediademuxer-rs.xml | 20 + .../NativeAPI/capi-mediamuxer-rs.xml | 20 + .../NativeAPI/capi-message-port-rs.xml | 20 + .../NativeAPI/capi-messaging-email-rs.xml | 23 + .../NativeAPI/capi-messaging-messages-rs.xml | 22 + .../NativeAPI/capi-network-asp-rs.xml | 21 + .../NativeAPI/capi-network-bluetooth-rs.xml | 22 + .../NativeAPI/capi-network-connection-rs.xml | 22 + .../NativeAPI/capi-network-http-rs.xml | 21 + .../NativeAPI/capi-network-mtp-rs.xml | 21 + .../NativeAPI/capi-network-nfc-rs.xml | 20 + .../NativeAPI/capi-network-nsd-rs.xml | 28 + .../NativeAPI/capi-network-smartcard-rs.xml | 20 + .../NativeAPI/capi-network-stc-rs.xml | 21 + .../NativeAPI/capi-network-wifi-direct-rs.xml | 20 + .../capi-network-wifi-manager-rs.xml | 21 + .../NativeAPI/capi-network-wifi-rs.xml | 21 + .../capi-privacy-privilege-manager-rs.xml | 21 + .../NativeAPI/capi-system-device-rs.xml | 28 + .../NativeAPI/capi-system-info-rs.xml | 21 + .../NativeAPI/capi-system-media-key-rs.xml | 20 + .../capi-system-peripheral-io-rs.xml | 21 + .../NativeAPI/capi-system-runtime-info-rs.xml | 20 + .../NativeAPI/capi-system-sensor-rs.xml | 21 + .../capi-system-system-settings-rs.xml | 20 + .../NativeAPI/capi-system-usbhost-rs.xml | 22 + .../NativeAPI/capi-telephony-rs.xml | 26 + .../NativeAPI/capi-ui-efl-util-rs.xml | 20 + .../capi-ui-inputmethod-manager-rs.xml | 21 + .../NativeAPI/capi-ui-inputmethod-rs.xml | 23 + .../NativeAPI/capi-vpn-service-rs.xml | 20 + .../NativeAPI/capi-web-url-download-rs.xml | 22 + config-sdk/rs_resource/NativeAPI/cbhm-rs.xml | 22 + .../rs_resource/NativeAPI/chromium-efl-rs.xml | 35 ++ .../NativeAPI/contacts-service2-rs.xml | 38 ++ .../NativeAPI/csr-framework-rs.xml | 28 + .../rs_resource/NativeAPI/dali-adaptor-rs.xml | 36 ++ config-sdk/rs_resource/NativeAPI/dali-rs.xml | 144 +++++ .../rs_resource/NativeAPI/dali-toolkit-rs.xml | 93 +++ config-sdk/rs_resource/NativeAPI/dpm-rs.xml | 23 + .../rs_resource/NativeAPI/fido-client-rs.xml | 23 + .../rs_resource/NativeAPI/iotcon-rs.xml | 39 ++ .../rs_resource/NativeAPI/key-manager-rs.xml | 24 + .../NativeAPI/libaccount-service-rs.xml | 24 + .../NativeAPI/libcore-sync-client-rs.xml | 25 + .../rs_resource/NativeAPI/libdlog-rs.xml | 20 + .../rs_resource/NativeAPI/libeom-rs.xml | 28 + .../rs_resource/NativeAPI/libfeedback-rs.xml | 21 + .../rs_resource/NativeAPI/libpush-rs.xml | 20 + .../rs_resource/NativeAPI/libshortcut-rs.xml | 21 + .../rs_resource/NativeAPI/libstorage-rs.xml | 21 + .../rs_resource/NativeAPI/libtbm-rs.xml | 21 + .../rs_resource/NativeAPI/minicontrol-rs.xml | 25 + .../rs_resource/NativeAPI/notification-rs.xml | 23 + .../rs_resource/NativeAPI/oauth2-rs.xml | 25 + .../NativeAPI/phonenumber-utils-rs.xml | 24 + .../NativeAPI/privilege-info-rs.xml | 21 + .../NativeAPI/service-adaptor-client-rs.xml | 21 + config-sdk/rs_resource/NativeAPI/stt-rs.xml | 27 + config-sdk/rs_resource/NativeAPI/trace-rs.xml | 21 + config-sdk/rs_resource/NativeAPI/tts-rs.xml | 27 + config-sdk/rs_resource/NativeAPI/tzsh-rs.xml | 24 + .../rs_resource/NativeAPI/ui-viewmgr-rs.xml | 28 + .../NativeAPI/voice-control-elm-rs.xml | 22 + .../NativeAPI/voice-control-rs.xml | 24 + .../NativeAPI/widget-service-rs.xml | 22 + .../NativeAPI/widget-viewer-dali-rs.xml | 23 + .../NativeAPI/widget-viewer-evas-rs.xml | 20 + config-sdk/rs_resource/NativeAPI/yaca-rs.xml | 29 + config-sdk/rs_resource/OSS/SDL2-rs.xml | 91 +++ .../Vulkan-LoaderAndValidationLayers-rs.xml | 18 + config-sdk/rs_resource/OSS/baserpm/gcc-rs.xml | 19 + .../rs_resource/OSS/baserpm/glibc-rs.xml | 49 ++ .../OSS/baserpm/kernel-headers-linux-rs.xml | 15 + .../rs_resource/OSS/baserpm/libcurl-rs.xml | 26 + .../rs_resource/OSS/baserpm/libxml2-rs.xml | 64 ++ .../rs_resource/OSS/baserpm/minizip-rs.xml | 22 + .../rs_resource/OSS/baserpm/openssl-rs.xml | 20 + .../rs_resource/OSS/baserpm/sqlite-rs.xml | 21 + .../rs_resource/OSS/baserpm/zlib-rs.xml | 20 + config-sdk/rs_resource/OSS/coregl-rs.xml | 24 + config-sdk/rs_resource/OSS/fontconfig-rs.xml | 20 + config-sdk/rs_resource/OSS/freetype-rs.xml | 17 + config-sdk/rs_resource/OSS/glib2-rs.xml | 36 ++ config-sdk/rs_resource/OSS/harfbuzz-rs.xml | 20 + config-sdk/rs_resource/OSS/json-glib-rs.xml | 17 + .../OSS/kernel-headers-linux-rs.xml_back | 19 + config-sdk/rs_resource/OSS/libexif-rs.xml | 31 + config-sdk/rs_resource/OSS/liboauth-rs.xml | 18 + config-sdk/rs_resource/OSS/openal-soft-rs.xml | 22 + config-sdk/rs_resource/OSS/tef-rs.xml | 21 + config-sdk/rs_tbb/.wd | 0 config-sdk/script/postlinker | Bin 0 -> 751341 bytes config-sdk/script/rootstrap_gen_1.0.sh | 440 ++++++++++++++ config-sdk/script/rootstrap_info_gen_1.0.sh | 229 ++++++++ config-sdk/script/rootstrap_plugin_gen_1.0.sh | 272 +++++++++ config-sdk/tizeniot_list.txt | 145 +++++ 240 files changed, 8784 insertions(+), 1 deletion(-) create mode 100644 config-sdk/.gitignore create mode 100755 config-sdk/clean_data.sh create mode 100644 config-sdk/extension/NativeAppDevelopment-CLI/changelog create mode 100644 config-sdk/extension/NativeAppDevelopment-CLI/data/.wd create mode 100644 config-sdk/extension/NativeAppDevelopment/changelog create mode 100644 config-sdk/extension/NativeAppDevelopment/data/.wd create mode 100644 config-sdk/extension/base/changelog create mode 100644 config-sdk/extension/base/data/.wd create mode 100644 config-sdk/extension/core-add-ons/data/.wd create mode 100755 config-sdk/extension/core-add-ons/template/features/native/feature.xml create mode 100755 config-sdk/extension/core-add-ons/template/privileges/native/privilege-native.properties create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/appendix.mk create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/basedef.mk create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/build_c.mk create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/build_edc.mk create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/build_po.mk create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/flags.mk create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/funcs.mk create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/makefile create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/makefile.mk create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/platform.mk create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/tooldef.mk create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/description.xml create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/ic_l_service.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/ic_m_service_n.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/ic_m_service_s.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/ic_s_service.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/inc/main.h create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/project_def.prop create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/shared/res/mainmenu.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/src/main.c create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/tizen-manifest.xml create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/sample.xml create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/screenshot.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/description.xml create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/ic_l_shared_library.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/ic_m_shared_library_n.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/ic_m_shared_library_s.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/ic_s_shared_library.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/project/inc/lib.h create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/project/project_def.prop create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/project/src/lib.c create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/sample.xml create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/screenshot.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/description.xml create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_l_basic_ui_with_edc.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_m_basic_ui_with_edc_n.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_m_basic_ui_with_edc_s.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_s_basic_ui_with_edc.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/inc/main.h create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/project_def.prop create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/res/edje/main.edc create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/shared/res/mainmenu.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/src/main.c create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/tizen-manifest.xml create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/sample.xml create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/screenshot.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/description.xml create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/ic_l_efl.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/ic_m_efl_n.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/ic_m_efl_s.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/ic_s_efl.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/inc/main.h create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/project_def.prop create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/shared/res/mainmenu.png create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/src/main.c create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/tizen-manifest.xml create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/sample.xml create mode 100755 config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/screenshot.png create mode 100644 config-sdk/extension/output/.wd create mode 100644 config-sdk/extension/rootstrap/data/.wd create mode 100644 config-sdk/extension/version_info create mode 100755 config-sdk/make_extension.sh create mode 100755 config-sdk/make_rootstrap.sh create mode 100755 config-sdk/package_all.sh create mode 100755 config-sdk/package_rootstrap.sh create mode 100644 config-sdk/rs_resource/EFL/ecore-rs.xml create mode 100644 config-sdk/rs_resource/EFL/edje-rs.xml create mode 100644 config-sdk/rs_resource/EFL/eet-rs.xml create mode 100644 config-sdk/rs_resource/EFL/efl-extension-rs.xml create mode 100644 config-sdk/rs_resource/EFL/eina-rs.xml create mode 100644 config-sdk/rs_resource/EFL/eio-rs.xml create mode 100644 config-sdk/rs_resource/EFL/eldbus-rs.xml create mode 100644 config-sdk/rs_resource/EFL/elementary-rs.xml create mode 100644 config-sdk/rs_resource/EFL/etc/dbus-rs.xml create mode 100644 config-sdk/rs_resource/EFL/etc/ector-rs.xml create mode 100644 config-sdk/rs_resource/EFL/etc/efl-rs.xml create mode 100644 config-sdk/rs_resource/EFL/etc/emile-rs.xml create mode 100755 config-sdk/rs_resource/EFL/etc/eo-rs.xml create mode 100644 config-sdk/rs_resource/EFL/evas-rs.xml create mode 100644 config-sdk/rs_resource/EFL/inhouse/edbus-rs.xml create mode 100644 config-sdk/rs_resource/EFL/inhouse/efreet-rs.xml create mode 100644 config-sdk/rs_resource/EFL/inhouse/embryo-rs.xml create mode 100644 config-sdk/rs_resource/EFL/inhouse/eo-rs.xml create mode 100644 config-sdk/rs_resource/EFL/inhouse/ethumb-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/appcore-widget-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/attach-panel-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/badge-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/bundle-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/cairo-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/calendar-service-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-appfw-alarm-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-appfw-app-common-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-appfw-app-control-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-appfw-app-manager-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-appfw-application-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-appfw-event-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-appfw-job-scheduler-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-appfw-package-manager-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-appfw-preference-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-appfw-service-application-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-base-common-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-base-utils-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-content-media-content-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-content-mime-type-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-context-motion-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-context-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-data-control-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-geofence-manager-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-location-manager-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-maps-service-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-audio-io-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-camera-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-codec-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-controller-rs.xml create mode 100755 config-sdk/rs_resource/NativeAPI/capi-media-image-util-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-metadata-editor-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-metadata-extractor-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-player-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-radio-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-recorder-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-screen-mirroring-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-sound-manager-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-sound-pool-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-streamer-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-streamrecorder-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-thumbnail-util-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-tone-player-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-tool-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-video-util-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-vision-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-media-wav-player-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-mediademuxer-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-mediamuxer-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-message-port-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-messaging-email-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-messaging-messages-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-asp-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-bluetooth-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-connection-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-http-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-mtp-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-nfc-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-nsd-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-smartcard-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-stc-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-wifi-direct-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-wifi-manager-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-network-wifi-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-privacy-privilege-manager-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-system-device-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-system-info-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-system-media-key-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-system-peripheral-io-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-system-runtime-info-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-system-sensor-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-system-system-settings-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-system-usbhost-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-telephony-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-ui-efl-util-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-ui-inputmethod-manager-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-ui-inputmethod-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-vpn-service-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/capi-web-url-download-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/cbhm-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/chromium-efl-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/contacts-service2-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/csr-framework-rs.xml create mode 100755 config-sdk/rs_resource/NativeAPI/dali-adaptor-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/dali-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/dali-toolkit-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/dpm-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/fido-client-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/iotcon-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/key-manager-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/libaccount-service-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/libcore-sync-client-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/libdlog-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/libeom-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/libfeedback-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/libpush-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/libshortcut-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/libstorage-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/libtbm-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/minicontrol-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/notification-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/oauth2-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/phonenumber-utils-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/privilege-info-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/service-adaptor-client-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/stt-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/trace-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/tts-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/tzsh-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/ui-viewmgr-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/voice-control-elm-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/voice-control-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/widget-service-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/widget-viewer-dali-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/widget-viewer-evas-rs.xml create mode 100644 config-sdk/rs_resource/NativeAPI/yaca-rs.xml create mode 100644 config-sdk/rs_resource/OSS/SDL2-rs.xml create mode 100644 config-sdk/rs_resource/OSS/Vulkan-LoaderAndValidationLayers-rs.xml create mode 100644 config-sdk/rs_resource/OSS/baserpm/gcc-rs.xml create mode 100644 config-sdk/rs_resource/OSS/baserpm/glibc-rs.xml create mode 100644 config-sdk/rs_resource/OSS/baserpm/kernel-headers-linux-rs.xml create mode 100644 config-sdk/rs_resource/OSS/baserpm/libcurl-rs.xml create mode 100644 config-sdk/rs_resource/OSS/baserpm/libxml2-rs.xml create mode 100644 config-sdk/rs_resource/OSS/baserpm/minizip-rs.xml create mode 100644 config-sdk/rs_resource/OSS/baserpm/openssl-rs.xml create mode 100644 config-sdk/rs_resource/OSS/baserpm/sqlite-rs.xml create mode 100644 config-sdk/rs_resource/OSS/baserpm/zlib-rs.xml create mode 100644 config-sdk/rs_resource/OSS/coregl-rs.xml create mode 100644 config-sdk/rs_resource/OSS/fontconfig-rs.xml create mode 100644 config-sdk/rs_resource/OSS/freetype-rs.xml create mode 100644 config-sdk/rs_resource/OSS/glib2-rs.xml create mode 100644 config-sdk/rs_resource/OSS/harfbuzz-rs.xml create mode 100644 config-sdk/rs_resource/OSS/json-glib-rs.xml create mode 100644 config-sdk/rs_resource/OSS/kernel-headers-linux-rs.xml_back create mode 100644 config-sdk/rs_resource/OSS/libexif-rs.xml create mode 100644 config-sdk/rs_resource/OSS/liboauth-rs.xml create mode 100644 config-sdk/rs_resource/OSS/openal-soft-rs.xml create mode 100644 config-sdk/rs_resource/OSS/tef-rs.xml create mode 100644 config-sdk/rs_tbb/.wd create mode 100755 config-sdk/script/postlinker create mode 100755 config-sdk/script/rootstrap_gen_1.0.sh create mode 100755 config-sdk/script/rootstrap_info_gen_1.0.sh create mode 100755 config-sdk/script/rootstrap_plugin_gen_1.0.sh create mode 100644 config-sdk/tizeniot_list.txt diff --git a/.gitignore b/.gitignore index 09d9c60..6ee0458 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,6 @@ advanced/20* advanced/Config_base.in advanced/Config_unified.in -output/ +./output/ dl/* tags diff --git a/config-sdk/.gitignore b/config-sdk/.gitignore new file mode 100644 index 0000000..598fdd9 --- /dev/null +++ b/config-sdk/.gitignore @@ -0,0 +1,23 @@ +.info/ +.pkg/ +.plugin/ +.rpm/ +.target/ +.temp_pkg/ +.tmp/ +old/ +pkginfo.manifest +iot_rs_config +mapping-bb-rs.xml +rs.log +rs_xml.list +rs_tbb/ +extension/output/ +extension/base/pkginfo.manifest +extension/core-add-ons/pkginfo.manifest +extension/NativeAppDevelopment/pkginfo.manifest +extension/NativeAppDevelopment-CLI/pkginfo.manifest +extension/rootstrap/pkginfo.manifest +extension/rootstrap/data/* +extension/*.zip +extension/core-add-ons/data/* diff --git a/config-sdk/clean_data.sh b/config-sdk/clean_data.sh new file mode 100755 index 0000000..9cb0edc --- /dev/null +++ b/config-sdk/clean_data.sh @@ -0,0 +1,24 @@ +#!/bin/sh +rm -rf .info/ +rm -rf .pkg/ +rm -rf .plugin/ +rm -rf .rpm/ +rm -rf .target/ +rm -rf .temp_pkg/ +rm -rf .temp_sdk_pkg/ +rm -rf .tmp/ +rm -f ./pkginfo.manifest +rm -f ./iot_rs_config +rm -f ./mapping-bb-rs.xml +rm -f ./rs.log +rm -f ./rs_xml.list +rm -rf ./rs_tbb/* +rm -rf ./extension/output/* +rm -f ./extension/base/pkginfo.manifest +rm -f ./extension/core-add-ons/pkginfo.manifest +rm -f ./extension/NativeAppDevelopment/pkginfo.manifest +rm -f ./extension/NativeAppDevelopment-CLI/pkginfo.manifest +rm -f ./extension/rootstrap/pkginfo.manifest +rm -rf ./extension/rootstrap/data/* +rm -f ./extension/*.zip +rm -rf ./extension/core-add-ons/data/* diff --git a/config-sdk/extension/NativeAppDevelopment-CLI/changelog b/config-sdk/extension/NativeAppDevelopment-CLI/changelog new file mode 100644 index 0000000..4595222 --- /dev/null +++ b/config-sdk/extension/NativeAppDevelopment-CLI/changelog @@ -0,0 +1,3 @@ +* 0.0.1 +- Initialize Meta for tizen_network_audio_armv7l-v1.0-4.0 customized platform +== TizenSDK 2017-08-30 diff --git a/config-sdk/extension/NativeAppDevelopment-CLI/data/.wd b/config-sdk/extension/NativeAppDevelopment-CLI/data/.wd new file mode 100644 index 0000000..e69de29 diff --git a/config-sdk/extension/NativeAppDevelopment/changelog b/config-sdk/extension/NativeAppDevelopment/changelog new file mode 100644 index 0000000..4595222 --- /dev/null +++ b/config-sdk/extension/NativeAppDevelopment/changelog @@ -0,0 +1,3 @@ +* 0.0.1 +- Initialize Meta for tizen_network_audio_armv7l-v1.0-4.0 customized platform +== TizenSDK 2017-08-30 diff --git a/config-sdk/extension/NativeAppDevelopment/data/.wd b/config-sdk/extension/NativeAppDevelopment/data/.wd new file mode 100644 index 0000000..e69de29 diff --git a/config-sdk/extension/base/changelog b/config-sdk/extension/base/changelog new file mode 100644 index 0000000..4595222 --- /dev/null +++ b/config-sdk/extension/base/changelog @@ -0,0 +1,3 @@ +* 0.0.1 +- Initialize Meta for tizen_network_audio_armv7l-v1.0-4.0 customized platform +== TizenSDK 2017-08-30 diff --git a/config-sdk/extension/base/data/.wd b/config-sdk/extension/base/data/.wd new file mode 100644 index 0000000..e69de29 diff --git a/config-sdk/extension/core-add-ons/data/.wd b/config-sdk/extension/core-add-ons/data/.wd new file mode 100644 index 0000000..e69de29 diff --git a/config-sdk/extension/core-add-ons/template/features/native/feature.xml b/config-sdk/extension/core-add-ons/template/features/native/feature.xml new file mode 100755 index 0000000..8645530 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/features/native/feature.xml @@ -0,0 +1,423 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The application requires a built-in physical keyboard supporting the specified(string) keyboard layout. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The application requires at least the specified number of simultaneous touches in a multi-point touch. The maximum number of touch point : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config-sdk/extension/core-add-ons/template/privileges/native/privilege-native.properties b/config-sdk/extension/core-add-ons/template/privileges/native/privilege-native.properties new file mode 100755 index 0000000..9209095 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/privileges/native/privilege-native.properties @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/appendix.mk b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/appendix.mk new file mode 100755 index 0000000..2e06c34 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/appendix.mk @@ -0,0 +1 @@ +# Appendix diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/basedef.mk b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/basedef.mk new file mode 100755 index 0000000..a762983 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/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/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/build_c.mk b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/build_c.mk new file mode 100755 index 0000000..5fffeea --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/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/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/build_edc.mk b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/build_edc.mk new file mode 100755 index 0000000..6f85fdd --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/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/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/build_po.mk b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/build_po.mk new file mode 100755 index 0000000..d88d71a --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/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/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/flags.mk b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/flags.mk new file mode 100755 index 0000000..f0a594e --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/flags.mk @@ -0,0 +1,27 @@ +# Add tools flags defines + +ifeq ($(strip $(BUILD_CONFIG)),Debug) +OPTIMIZATION_OP := -O0 +DEBUG_OP := -g3 -D_DEBUG +CPP_OPTIMIZATION_OP := -O0 +CPP_DEBUG_OP := -g3 -D_DEBUG +LINK_OP := +else +ifeq ($(strip $(BUILD_CONFIG)),Release) +OPTIMIZATION_OP := -O3 +DEBUG_OP := +CPP_OPTIMIZATION_OP := -O3 +CPP_DEBUG_OP := +LINK_OP := -s +endif +endif + +COMPILE_FLAGS = $(DEBUG_OP) $(OPTIMIZATION_OP) -Wall -c -fmessage-length=0 + +CPP_COMPILE_FLAGS = $(CPP_DEBUG_OP) $(CPP_OPTIMIZATION_OP) -Wall -c -fmessage-length=0 + +LINK_FLAGS = -L"$(PROJ_PATH)/lib" -Wl,--no-undefined $(LINK_OP) + +AR_FLAGS = + +EDC_COMPILE_FLAGS = -id "$(PROJ_PATH)/edje/images" -sd "$(PROJ_PATH)/edje/sounds" -fd "$(PROJ_PATH)/edje/fonts" diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/funcs.mk b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/funcs.mk new file mode 100755 index 0000000..3ba778b --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/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/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/makefile b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/makefile new file mode 100755 index 0000000..117b240 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/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/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/makefile.mk b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/makefile.mk new file mode 100755 index 0000000..53c0428 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/makefile.mk @@ -0,0 +1,205 @@ +# +# 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 + +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 + + +ifeq ($(strip $(APPTYPE)),app) +$(APPFILE) : $(OBJS) $(UOBJS) + @echo ' Building target: $@' + @echo ' Invoking: C/C++ Linker' + $(call MAKEDIRS,$(@D)) + $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -pie -lpthread --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_ROOT)/.exportMap" $(RS_LIB_PATHS) $(RS_LIBRARIES) -Xlinker -rpath='$$ORIGIN/../lib' -Werror-implicit-function-declaration $(USER_LINK_OPTS) + @echo ' Finished building target: $@' +endif +ifeq ($(strip $(APPTYPE)),staticLib) +$(APPFILE) : $(OBJS) $(UOBJS) + @echo ' Building target: $@' + @echo ' Invoking: Archive utility' + $(call MAKEDIRS,$(@D)) + $(AR) -r $(APPFILE) $(OBJS) $(UOBJS) $(AR_FLAGS) $(USER_LINK_OPTS) + @echo ' Finished building target: $@' +endif +ifeq ($(strip $(APPTYPE)),sharedLib) +$(APPFILE) : $(OBJS) $(UOBJS) + @echo ' Building target: $@' + @echo ' Invoking: C/C++ Linker' + $(call MAKEDIRS,$(@D)) + $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -shared -lpthread --sysroot="$(SYSROOT)" $(RS_LIB_PATHS) $(RS_LIBRARIES) $(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) diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/platform.mk b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/platform.mk new file mode 100755 index 0000000..3895d90 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/platform.mk @@ -0,0 +1,18 @@ +# 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_PATHS1 := $(addsuffix ",$(PLATFORM_LIB_PATHS)) +RS_LIB_PATHS := $(addprefix -L "$(SYSROOT),$(RS_LIB_PATHS1)) +endif + +RS_LIBRARIES := $(addprefix -l,$(RS_LIBRARIES_EX)) + +PLATFORM_INCS = $(USR_INCS) -I "$(SDK_PATH)/library" diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/tooldef.mk b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/Build/tooldef.mk new file mode 100755 index 0000000..c62243c --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Common/Build Script/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/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/description.xml b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/description.xml new file mode 100755 index 0000000..880ba5a --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/description.xml @@ -0,0 +1,31 @@ + + + Service + 1.0 + + + tizen_iot + 4.0 + + + org.tizen.nativecore.buildArtefactType.app + False + + Template + + + screenshot.png + + + ic_s_service.png + ic_m_service_n.png + ic_m_service_s.png + ic_l_service.png + + + This is the empty template for developing service application + Note : + The standalone service application can't be submitted to Tizen Store. + Refer to 'Developing Multi-projects as a Combined Package' section of Getting Started page in the developer's site or help contents. + + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/ic_l_service.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/ic_l_service.png new file mode 100755 index 0000000000000000000000000000000000000000..50e796fb0beb74703955041b6d911ba7b78bc144 GIT binary patch literal 18513 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 R;QrGeOPme%imB(G{{wm>59t5^ literal 0 HcmV?d00001 diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/ic_m_service_n.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/ic_m_service_n.png new file mode 100755 index 0000000000000000000000000000000000000000..3c3c4aede94f0e4501c9750720d485f4bcefd967 GIT binary patch literal 2129 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 + +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "$(appName)" + + +#endif /* __$(appName)_H__ */ diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/project_def.prop b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/project_def.prop new file mode 100755 index 0000000..32b9507 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/project_def.prop @@ -0,0 +1,11 @@ +APPNAME = $(appName) + +type = app +profile = $(platform) + +USER_SRCS = src/$(appName).c +USER_DEFS = +USER_INC_DIRS = inc +USER_OBJS = +USER_LIBS = +USER_EDCS = diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/shared/res/mainmenu.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/shared/res/mainmenu.png new file mode 100755 index 0000000000000000000000000000000000000000..9765b1bda7e5bddf0925555ab204b887a873bf24 GIT binary patch literal 57662 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 kZ}gYfNaCF}xV$|1>H6z0+kD +#include +#include "$(appName).h" + +bool service_app_create(void *data) +{ + // Todo: add your code here. + return true; +} + +void service_app_terminate(void *data) +{ + // Todo: add your code here. + return; +} + +void service_app_control(app_control_h app_control, void *data) +{ + // Todo: add your code here. + return; +} + +static void +service_app_lang_changed(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_LANGUAGE_CHANGED*/ + return; +} + +static void +service_app_region_changed(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_REGION_FORMAT_CHANGED*/ +} + +static void +service_app_low_battery(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_LOW_BATTERY*/ +} + +static void +service_app_low_memory(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_LOW_MEMORY*/ +} + +int main(int argc, char* argv[]) +{ + char ad[50] = {0,}; + service_app_lifecycle_callback_s event_callback; + app_event_handler_h handlers[5] = {NULL, }; + + event_callback.create = service_app_create; + event_callback.terminate = service_app_terminate; + event_callback.app_control = service_app_control; + + service_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, service_app_low_battery, &ad); + service_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, service_app_low_memory, &ad); + service_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, service_app_lang_changed, &ad); + service_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, service_app_region_changed, &ad); + + return service_app_main(argc, argv, &event_callback, ad); +} diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/tizen-manifest.xml b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/tizen-manifest.xml new file mode 100755 index 0000000..50d7917 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/project/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + $(appName).png + + + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/sample.xml b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/sample.xml new file mode 100755 index 0000000..b591722 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/sample.xml @@ -0,0 +1,52 @@ + + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/screenshot.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/ServiceApp/screenshot.png new file mode 100755 index 0000000000000000000000000000000000000000..a8e5e1a4debac80a7c6f1fe73bf1c1fb9b024b45 GIT binary patch literal 16034 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 literal 0 HcmV?d00001 diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/description.xml b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/description.xml new file mode 100755 index 0000000..8d20bd3 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/description.xml @@ -0,0 +1,26 @@ + + + Shared Library + 1.0 + + + tizen_iot + 4.0 + + + org.tizen.nativecore.buildArtefactType.sharedLib + False + + Template + + + screenshot.png + + + ic_s_shared_library.png + ic_m_shared_library_n.png + ic_m_shared_library_s.png + ic_l_shared_library.png + + This is the template for developing a shared library + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/ic_l_shared_library.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/ic_l_shared_library.png new file mode 100755 index 0000000000000000000000000000000000000000..48020784e7f234a04e86ff186f3a28aaee436ecf GIT binary patch literal 19998 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 JtZ8@V{{e^!{EYwr literal 0 HcmV?d00001 diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/ic_m_shared_library_n.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/ic_m_shared_library_n.png new file mode 100755 index 0000000000000000000000000000000000000000..8be458e556bb0499c50bdb58282ae252246751b3 GIT binary patch literal 2495 zcmaJ@d00~E9!5(orm{41tGR@Yqb49I2qd{cE+tBcik1rk3Mq?#gG=sPYH4bVW!~&| zGt4wKZJONisV1_fT(ZVC%{@!87+Xx|&}1`z-0peKIp6a9-uJh?-}8Jq6fd{cU=uJ1 z1X}IkPND*%ulie|4g9exSs*YNOLovDK7w$Glp$h+oLPb}HpGL+h+tFM3|3t9Ew%#) zw9JA_qf6*yPdrn=gEQ1N@K~M@K!ZRIj57?4(iR1=$H9?k913e^4MEu;F$fzw1QG{B+TwxN&Ia=3fdbw{ ztZ+P)1rUxt9j4zv;a{vhQ8H=Z3RG?Ok44o%CD_j&bG#oi((k+NxZXt!H)G>nAyB1t+4l zwfy;b@a32CRk9ViueP}O!*g9GtcSKDTc6$i^eic)E5naDdoD*gKRAgfEl$?dy6rv(MVNbt9@{aIEi+iw&fa(!XwqBq1dgj~9K@$jASJ*k&h)*_nItU_ILJ1=p$Tt^m*MF|Uo z)-7BrE87&fXOCIalZEVe$_S0Qx5X5La;A3r;K!~m&kAYg)3#*qs;a8woF2TicHQ^M z{l7W27-Cb8V>i8%od+YTy~*Un!s2562O1V@1A~Ljvpbda*q5i_-oF2tM~oAV$5mSV z=jVkI^x_y)VOmsFRB~8X(|*RM+q*l!`j}DlyuG8NV|tJIVt2K@;OWJj9>iefi2IbW zELqc0xZHcCf!Pno7O7Z2&^~7u7ft>9PT-rGPM^%-@cbMOB=bdo%7uc12U$=P_d%IX zuhCs{W1$>rp0=BV$Wl;@t%z(S4VVP1La#sfet(FYTXs0H^~jO+Ru&fJ-Q84NV;1gq zWu;{xonC(D4jE4%^bNOMYic5zUhw;uUOR}-=jUf-WsOhtoVP=vTmk|DdLKTtNR32B zoH?rh_`s-c=)}YX&DZw_XP_Snv!ol-#5g?*tKO5JZc64}2Ti_wdG_SVlPS%uA09PM zYTK!LD=I2d=6kf$oqy87YP$p`^Ya%@QPm-Wl@7jnQ|+bh8xQn1@1`tM>L$Y7AJ3~Z zh%O&;GHB?Znwt9W<;%8;+qawIC`4bSQaStZ-o19pr*-BL!L9o(e{8B7>tLbocV_FN zOTC(prh=W28Vlq1%`Q|`6_4rb>u;3JuX9-M#AG@~RcD^hFDU3q*U`mN-dhPUIPse~ zYC=K+3sX9xMXKuCnVp^8Eexj9e@&gl%h!ybIAL5*w?0x@x(fz_**Q9TGnveq(U9G{ zJ18xMorC2Q6Wpllh0g&Y)uofR`vnET4!O~SD_l)YO+|_ALqpIfP11tj2L?tG!E%0y z$pNR4f15aun*tsuo zmo>+TMAUd|VoOEsU4<>$3J$Lr9Sx5gJ5W;t$5G`3%J%bo$y+yyOWWiL6UM5LkdW!z z1p!^U9iQP~@bsX=(I08^YcWH9etwFE zH3@HYw6!(yXGB$5l@AZ^2@Zz$UyBc4eJP}E&8yMr+hC`ddL#1MMT?>sqvkG-o#JMA zL`1Z=1#XHole*cdGB0^@p4p+GpBoys zENZ*GEq?Uq5lSa>hnt%ZiIlNCb6Zo8dGnQo2OwQvozUr;@pG@szQebI+U166h*8vLcS79kaB)C-_%HR>!*Kp>b)h?X*EkAJ_r5o- zK5oUys>!2!=kscuTE-x&f-+4S``}wj()zPKcaE%C{i8)IpJOq&DI=7U)VLsIYue- z8q?mutJ`n*Ze{+}o@r9XEtY)Cut3((J{tsXd)DD|$LAvtGcftbADAAcvy8I&UB|AE zLATnddq<2nKx%6cnFF?s?uQ~tnWl@|Hs(7YsR@lk%+wFON`HNw>yTXulWECATXZh; zdU2x{3I6Yub-Jo+iUOUzy=P6F&S}-S#S~&JRWiT9vf%!+v!J{{NVPnv`=x4P($`Z3 z4!`Q}C2p&)qInIJ>mKd-u>ZoTQ4RlUrN5UUdO?WXjz73bzj1z}WcQ2TR{6|+*rhrR ZS_TqeCyVtAa3$(1mB$V*QjJS!+Mnj$B+~!@ literal 0 HcmV?d00001 diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/ic_m_shared_library_s.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/ic_m_shared_library_s.png new file mode 100755 index 0000000000000000000000000000000000000000..540f9eae6b28fce26e4053e2923208ed226af7cd GIT binary patch literal 2731 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 Z2ck4`x;LKjJhbq`N26|_T=kAh`Y*B#Y +#include + +#ifdef __cplusplus +extern "C" { +#endif + +// This method is exported from $(appName).so +EXPORT_API bool tizen$(appName)(void); + +#ifdef __cplusplus +} +#endif +#endif // _$(appNameUpper)_H_ + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/project/project_def.prop b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/project/project_def.prop new file mode 100755 index 0000000..1d9b99b --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/project/project_def.prop @@ -0,0 +1,11 @@ +APPNAME = $(appName) + +type = sharedLib +profile = $(platform) + +USER_SRCS = src/$(appName).c +USER_DEFS = +USER_INC_DIRS = inc +USER_OBJS = +USER_LIBS = +USER_EDCS = diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/project/src/lib.c b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/project/src/lib.c new file mode 100755 index 0000000..58f0af6 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/project/src/lib.c @@ -0,0 +1,11 @@ +/** + * This file contains the exported symbol. + */ +#include "$(appName).h" + +// This is an example of an exported method. +bool +tizen$(appName)(void) +{ + return true; +} diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/sample.xml b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/sample.xml new file mode 100755 index 0000000..f14ecfd --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/sample.xml @@ -0,0 +1,42 @@ + + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/screenshot.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/SharedLibrary/screenshot.png new file mode 100755 index 0000000000000000000000000000000000000000..a8e5e1a4debac80a7c6f1fe73bf1c1fb9b024b45 GIT binary patch literal 16034 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 literal 0 HcmV?d00001 diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/description.xml b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/description.xml new file mode 100755 index 0000000..67e052f --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/description.xml @@ -0,0 +1,28 @@ + + + Basic UI with EDC + 1.0 + + + tizen_iot + 4.0 + + + org.tizen.nativecore.buildArtefactType.app + False + + Template + + + screenshot.png + + + ic_s_basic_ui_with_edc.png + ic_m_basic_ui_with_edc_n.png + ic_m_basic_ui_with_edc_s.png + ic_l_basic_ui_with_edc.png + + + This is an empty template project for developing UI Application with EDC. + + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_l_basic_ui_with_edc.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_l_basic_ui_with_edc.png new file mode 100755 index 0000000000000000000000000000000000000000..be767185efa13c201499d6705f7f0080efa22d83 GIT binary patch literal 17929 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%0Dl|u@iUu# zk_?&Yd}dQ;ew+ceqb79;X8++3ws%Wr1HXMRu$3COJN>q*HJjGqv~}pZa(ucL>`G+m z2I72mi;nI#qlEre3+!R_A+1XVN!UJIZtHQvxfFq=jz*?q`*BOBRDq|SS3p~*?$0Mw zQtcib8Gh+g9NW_5nXIqCK5Q@O&~6{V?VOb$7-~<$J#{ue)lqXiuLC1ul>ec$3F`nWthvEi~nR<-FGsGZ$us+7#uh@g;&-1I5O~kN`+TgOYMb( zY<1jexfy9z>c-P-Y8_q8gX)l6g%PUOtH`YbwRb@nYHlNo204#jJy%_hO45+5U(`2! zo=YsLPouK$REDNYEMjakzHCb29_|ogaigc28#wiq*-G*4i&HvAwg|Et1NL`y_clM? zgT79k)+!3o5m_kRLstYYbD9nPSw-yaD0;GN~jk!r1VVFH`2q# zsAfFar5ti$f6vsxQll=@n8!|x_rnYFdZv|FzP)s*YD!?nx=yutgHJ1%rMGT+JyhDY z511>j8y{M@_VKj}40wM63x+C6Jk1d_-|l0F2AXaYok>&oTzK>PX-LSz_PoAckXoM*)p};jI!m3$|Bg`jfQ!pY&fYg7rc?> zTQpROVL`41X4d4Tx(V`C(N59KU4-!7=t4JNPI#}Cd6UY*9sY~YR&U;a3}N7oe`nI; zpK~?fxqY))-n?i#qCxBQSg@`Q8tm3jAe;jZ-8UIIt$@%B++{?6lk~)8FAzh%KmXCUplG)f$nPBRa zn|d?aqqjU)G()7y6u&wsD9*l>-mi5`;D)h!m$*1^LpZ`AEPNA8K6nR&be6@$NqCv2ut4xJ)v8-{r+l0J0%D$GdxLdonm7 zSY)+Vr$~7z%Hv|z?^Cr~JMP9UK<7-UN4``p7O~+klpO(A!h5?ISXqdGKi;Kf?~~?Kqigsv3%lyrHBsgLcP=S*B-@-%wi_ zi`%=bVHPiw;@7~c2Abzo462^&SbI91nz%9N($cB~<*u@;aZLu(Km3Kt_&ds|m*Kj2 zZ8wYBT4LCh@lho*x+G+qW{cydlF$4ErT7zd-9XfoJ!`jd2VMbd{?tPKw$f5NQG_=U zpN+n9BBVH~@$P^HQ}jy**Ye%mC*lPrxKRF}x2IOE;cMRw^|v=}boTaL=cbqS<`a;- zN5a>LJGE@7T7xG-`c3(TLw2_9myAe0)w^l844No%(0ht`V9UgG<_dhTUdO55E&NOa5)=EnT1O zT|B4$&ym6U7v+w`>}HuclvC?G}N&1xY^Q2><7(XI5Immo1MgUR@elehP! n*~Sd@Q|I>V+jubK^Kt-QuAPA&2n~?@vle?BC(@afKHL8f*^LOb literal 0 HcmV?d00001 diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_m_basic_ui_with_edc_n.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_m_basic_ui_with_edc_n.png new file mode 100755 index 0000000000000000000000000000000000000000..41d8e87add475f14e98e90fab455d7786d8ed994 GIT binary patch literal 1878 zcmaJ?X;c$e6b@9hf)O`FL|_bxie@G(iAglZkQkwuh#@R06+<#Wgk(ZyFfl4o>sk;* z>ry3BAd10*ibut;SSf;9>r#k^`7Yp~BGw!fduyC6T7U7?1!b$(1ZpTjkFrKrUmE zVyFU&K*fcV<)Jz?9H|qErMeU;Lq=lH0cLBNIDrDjB!E_tszjMu7O9t)iQD#Vhy?Vy zU@0upM^UkY2!M;IVSozK$kKqIKwu^V44^Us>A^FAKuQ1&q69+$401pa6Cc48pzk8# z(bTd;rijPyi-oUPq+|?JF(F8!(SVvD5K$-LSOx>41VVvB<@2XII@Sf zgiojQ`msDjny!GASU*-Q9Y~V$IuER~lLRyyD;lPtVb{wY8+NnL`DQyh)>mmM&@x ze(dh2GQB+xhed=Tryr;ES5={JaOm9$Eor%jt`UjEnyrq;i;O*8$tu+d{uqEYM`qFmkKZ)X zDKw{Iw=MQS2}hSjoV!T}xQQm7*3Wb-S$NiLUiGK#)~)EDykkOW2dGge%gQ8!iM!i= zT>I$F#k}!5I{aN@%8^0q*=q9y{t5upCzT9#xY_36>&9_1h3eO}&+qc>aWIDXH~0WO zxweNweW^P;t0~6&?K7((yrs#Pv(suKRLa0-ugL{3v$uh;+{+CYP(Z8_EK2A>vJ zJc0K_qutDDAF{*w3n6buSQYU?PUm;=_SdNYI?MgtR*GP>A6^bxY{~DbGzrh4p{PdW zdhPmkyZP85{HnoV=q;Vk3~FR)w0&1vzjMX7dPF&l&|Pc0B;BTbwX|hn$NE`h!iP}3 zk6dF-E{$yLTysvVRy)p`^I*8!lbrc->$!K&p8BWUt#HJ0+RyNd+MCTqU1F1XWp;M< za+6DQj5+T9#Ddk!?pT`Y5?;GpSPA~HwygZcTU*s+t#HUIZ*T7#@181Zt~VE-uj`P+SrH7GThQ`KZbmdO4yeaMw{DmLXzv4 V8=ZAC>+OHKuz5n>v5@5({sl?3`qcmc literal 0 HcmV?d00001 diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_m_basic_ui_with_edc_s.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_m_basic_ui_with_edc_s.png new file mode 100755 index 0000000000000000000000000000000000000000..7160499412b9b95daf76e6ee522a373af1a8f096 GIT binary patch literal 1997 zcmaJ?X;f2Z8V<6ArJ%Je2G3v`>OwIqBqY(0W@AYRgCQu2s9CNMViuDdNpMJPg*sY5 ztfUkNL_|V@O0@+kP{dBP6e^-afFo7pIF^nmiwMO*kh!5?`@`uy_ulXO-t#=~`@G9J z-_eBlXm8IzPZ$j59UH?IKx>lYb9aOO+7t9oC02o865(CIsg(wXW z03xYje><=l26NsZ6DEVn{5YyarND?B7>r(_hS)IJX1ZQ2lE?uNDF)JHN*ZdcxfO+! zNolBUL_UtMW&!E4m@EyDm=!OSWXUBIDT*G6+^nZU4io?=Lh2R!lv=8uhFb7Th4v0J z7KL1ZfN~n@H&My_1SCtP0gyxt2`#~g5s(oS44z0Kki$132{=3niwno%DQJ8c6?(&Q z$i)W*Mbk+4QU&a&#aPgZhDrxPH5H4^%*@1OhGA5iG>A)~U~vR2fq;e(XstmBiu7ou zHh9Sc8_-HLGBqeuDUlA3BC$#b(om4n-%?Ph`TW<8mD*sgW#}qgzA_5xHTTOes}mYC{|aUepU{WCs9glt!gME>wsrdxHu} z6q}5X!jXwYV$?zgVPqnOO&~{wGgw3hhlN_?O5c$EBA4=ixmZXH*3sTSw0p?}&5&dJ zdU&D3>+uJa(9CO~;Vyh0sDQy-HpQ|TLVf?!ve>x9Evs_pdznWAy$Zb2yq}ihFnQl! z_aHUB>z3LC!tA;7h+6Pn!hd?#27cF(dnR2B0@tj(hdE6vq=bxgn|;1$`V?>EhlB24 z(AHDhN5;7?pFKD@D(`+3*+@cBtnAeDku?LA17|VY;8kkBt;cN-&hM^SV{5jb94ZqR zhrXiV3V;64Y4q$&X_ncyH~}Z$IF=M)Yd!x{PpAKQQHRS^kq#Fm^ijIUj96AuE=3~$ z!7_#{pEJ9j?M%au%s{>D9>UBK;Yi#1SJq}n1Sn%(}|{} zZ2y1)1^UD%%|AXG|Nf9~b5M< zCFzqG?BQ$GJj&hD?7rx~u48dJ8ur}I(qDeMlYgc${fK56mWTGdaxdrDdnx$|8P=hq zuINEmdP~Oup6hK07LR zxZXw&=qfP}=W_Y+Nng15g_;>0t8aJt<1Q{R^OXQ0%;DnaN?u(MT1>T`8?OhP91T7m zm#D+ggP!@?cRGDun3z2&a_&4px0nk2O5d^v1qiEd4c)joZP&dVGl*xxAo9SD#O{mb zw%)t{o&CklUtD#LHx2S!Yk6+l>r!fVHVAg56dOjnv?dF^yBsBiGO*A?&5ye#tKH2B z9?%9-5;hmYEQ@d*%Ay*6_G+!YYHVm7Pr3Opz}RS6`F=%B@T#2o6(7HYm_;3;7TnR3 zqX<6I@zrpfY%driD_{0ZE?EAO=F=%;zkEiX<0O6}`E%S*3K5y?^_u+E#UDxv; zZ2DK3WmiI`@g;HXPh+!xFD99@Iu0)eT_p=!$Qyn>>~|pvaYggX$9|(ukDo^-)86sN;f-<;1gVnR`C^9~z`MUH||9 literal 0 HcmV?d00001 diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_s_basic_ui_with_edc.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/ic_s_basic_ui_with_edc.png new file mode 100755 index 0000000000000000000000000000000000000000..1be304bdb9c77befda399248a7d3caa8f9e37820 GIT binary patch literal 1938 zcmaJ?Yg7|w8lIFCk$NEpOTb#jv0XqR$pjLTNWffyNVvu$-mtk05HOiA8Jb7|kwq{V zD2sU6RzOK*Q9^80l!N!WD^M#E3ZCw&2Xt#&#j~K5$|+Jip`iWYcFxRv-}j#9dEe)~ zoby?e6JzIl2Y3SjFh4#{l1i*X_vhtF{Hve!NQuQCm!{)sXeMq}VF)19qG|+;*Q>IS zR79oSme+$s0f0xaPMMCUD-!q`R8LpAF?5UGNU#AQD#l_|X>t)9R3lkBg8&*mdl3S4 zS^>0Mt z1WrTnTmkgEsB}d#C`K^^WYale8aSKFq_SEb2uHvvIs7Z$6&G;ELIqS2s3Rn;3`X)!L)qV zg9I^YFr5+Cp$5?HQKd%naREdq{XGS}QK5M0*kGC|6j3sUMP+2bbS6Wucjq;YHsPtr zD;cjvo0Qv(2qP6Sq4}7G=tt)ASu#<(KM&*v5^DGoRFkhq40yam01+0tR;T5Q#1gKI zDHd`fSZo-Ua(HZ^R0xY$5)O;SgSp|e+<1ctR~aFcB#ip~t;B`8K7B!nf+y$P|i(tAB5v>eE_26`c_`27qh>*!xJQ2)e zvpEsd8E|=QF;gVuvN&8K5ivBw)xIYC8LsgEav6jehP%CgX!op%m?8J}S#jFi-y>xIA81{)aT`|N=+LBGjnW)^yyI~#MeX=(q^@JL zP+lJ6>7vV)*lQhnT20Q5|Js(=w%CegXMDQ*`mIJOezmdxLBP(^{0x5ky2C}J$i0)B zl}#O?_Dfil@Fy2p5$bT=8qM=oIQu?5Izf-dEAkZczCV<*WxtSXp`EvlOc;wV?(eML zmuzYi{VVgz(7ge{iG&*$b13koAGMC=x8`__)wwDc7G2@a*%1f-i{2sfaOb% z?~9uk8Z}v);boS`bZpNZ=R_7==se%@X5SJ^$wG^jRNNBd^t;QldsO-PUHftMk%~v! zVX8Xg7`=4Vlfr!K=^@vxP4bG?NAH*9R2=Y|m^(r_$EMWqT5HIwK6$Rq@`xEDZ@IiG zq%_IlQG2q4n$UIfdj9s_Ig|~b`|#83zV{;zj5tUa)TD2lDp!Z)XJEAtCOnsks2hSl zTv@&7?sxB2p;Sq>q&2UiD+P*BW*062V}Z7kq1(|V)UV3x(;sHphn^oFJpnHr0)AdF z_vH3N4Y#*8ww>DKj9uKP=*Rpn%QI?5$K#T^W64FL6Y|8GhGeg#8mRl9!2;o5WDn-1 zlK)OS62x5wuh`k~`M~5t8NI%saOIVx5d7Rjw7TUPSxK^0ua}d<{pv>U1cnzqp|lJ) zfK}2SSA){li^{exYFaFcbJFftrZ@?&aTKk(&JBJ_4k=Brv4Xmd z%rAD^;6m40=weXhc-xb&YyEfU+~`P~cOz8Vk;1!^k+}8N_D0NQ(>Lcm$^&=qX?ai4*}L&Feb>KAF&LF| zBt>F9_Qm}6{&7;|+PaROti$}j(Z2a)V}?C1Wo1?V$A&RT{d7*%>0#%*;|o^b84laP zXuiF^te3g+-V2gGmECx~)uWHH_6M_WYHDt9K-y4aiT>c;V_nQq)taLhVwQ#aTpM`Y b2zUUwPxfxvs9$r +#include +#include +#include +#include + +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "$(appName)" + +#if !defined(PACKAGE) +#define PACKAGE "$(packageName)" +#endif + +#define EDJ_FILE "edje/$(appName).edj" +#define GRP_MAIN "main" + + +#endif /* __$(appName)_H__ */ diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/project_def.prop b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/project_def.prop new file mode 100755 index 0000000..d95f467 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/project_def.prop @@ -0,0 +1,11 @@ +APPNAME = $(appName) + +type = app +profile = $(platform) + +USER_SRCS = src/$(appName).c +USER_DEFS = +USER_INC_DIRS = inc +USER_OBJS = +USER_LIBS = +USER_EDCS = res/edje/$(appName).edc diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/res/edje/main.edc b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/res/edje/main.edc new file mode 100755 index 0000000..083dc42 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/res/edje/main.edc @@ -0,0 +1,14 @@ +collections { + group { name: "main"; + parts { + part { name: "txt_title"; + type: TEXT; + mouse_events: 0; + description { state: "default" 0.0; + text { text: "Hello Tizen"; font: "Tizen:style=regular"; size: 20; min: 1 1; align: 0.5 0; ellipsis: -1; } + color: 0 0 0 255; + } + } + } + } +} diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/shared/res/mainmenu.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/shared/res/mainmenu.png new file mode 100755 index 0000000000000000000000000000000000000000..9765b1bda7e5bddf0925555ab204b887a873bf24 GIT binary patch literal 57662 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 kZ}gYfNaCF}xV$|1>H6z0+kDwin); +} + +static void +app_get_resource(const char *edj_file_in, char *edj_path_out, int edj_path_max) +{ + char *res_path = app_get_resource_path(); + if (res_path) { + snprintf(edj_path_out, edj_path_max, "%s%s", res_path, edj_file_in); + free(res_path); + } +} + +static void +create_base_gui(appdata_s *ad) +{ + char edj_path[PATH_MAX] = {0, }; + + /* Window */ + /* Create and initialize elm_win. + elm_win is mandatory to manipulate window. */ + ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE); + elm_win_conformant_set(ad->win, EINA_TRUE); + elm_win_autodel_set(ad->win, EINA_TRUE); + + if (elm_win_wm_rotation_supported_get(ad->win)) { + int rots[4] = { 0, 90, 180, 270 }; + elm_win_wm_rotation_available_rotations_set(ad->win, (const int *)(&rots), 4); + } + + evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL); + + /* Conformant */ + /* Create and initialize elm_conformant. + elm_conformant is mandatory for base gui to have proper size + when indicator or virtual keypad is visible. */ + ad->conform = elm_conformant_add(ad->win); + elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW); + elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE); + evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(ad->win, ad->conform); + evas_object_show(ad->conform); + + /* Base Layout */ + /* Create an actual view of the base gui. + Modify this part to change the view. */ + app_get_resource(EDJ_FILE, edj_path, (int)PATH_MAX); + ad->layout = elm_layout_add(ad->win); + elm_layout_file_set(ad->layout, edj_path, GRP_MAIN); + evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + eext_object_event_callback_add(ad->layout, EEXT_CALLBACK_BACK, layout_back_cb, ad); + elm_object_content_set(ad->conform, ad->layout); + + /* Show window after base gui is set up */ + evas_object_show(ad->win); + +} + +static bool +app_create(void *data) +{ + /* Hook to take necessary actions before main event loop starts + Initialize UI resources and application's data + If this function returns true, the main loop of application starts + If this function returns false, the application is terminated */ + appdata_s *ad = data; + + create_base_gui(ad); + + return true; +} + +static void +app_control(app_control_h app_control, void *data) +{ + /* Handle the launch request. */ +} + +static void +app_pause(void *data) +{ + /* Take necessary actions when application becomes invisible. */ +} + +static void +app_resume(void *data) +{ + /* Take necessary actions when application becomes visible. */ +} + +static void +app_terminate(void *data) +{ + /* Release all resources. */ +} + +static void +ui_app_lang_changed(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_LANGUAGE_CHANGED*/ + + int ret; + char *language; + + ret = app_event_get_language(event_info, &language); + if (ret != APP_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "app_event_get_language() failed. Err = %d.", ret); + return; + } + + if (language != NULL) { + elm_language_set(language); + free(language); + } +} + +static void +ui_app_orient_changed(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/ + return; +} + +static void +ui_app_region_changed(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_REGION_FORMAT_CHANGED*/ +} + +static void +ui_app_low_battery(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_LOW_BATTERY*/ +} + +static void +ui_app_low_memory(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_LOW_MEMORY*/ +} + +int +main(int argc, char *argv[]) +{ + appdata_s ad = {0,}; + int ret = 0; + + ui_app_lifecycle_callback_s event_callback = {0,}; + app_event_handler_h handlers[5] = {NULL, }; + + event_callback.create = app_create; + event_callback.terminate = app_terminate; + event_callback.pause = app_pause; + event_callback.resume = app_resume; + event_callback.app_control = app_control; + + ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &ad); + + ret = ui_app_main(argc, argv, &event_callback, &ad); + if (ret != APP_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret); + } + + return ret; +} diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/tizen-manifest.xml b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/tizen-manifest.xml new file mode 100755 index 0000000..8d494f8 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/project/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + $(appName).png + + + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/sample.xml b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/sample.xml new file mode 100755 index 0000000..a2d9b96 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/sample.xml @@ -0,0 +1,56 @@ + + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/screenshot.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-edc-ui/screenshot.png new file mode 100755 index 0000000000000000000000000000000000000000..c5929a8314628a4e28fba9c11c528e3063098f92 GIT binary patch literal 1784 zcmcIlX;2ep5DnGJF$E8#6Op40RxYI|Do_iIh!F%MAYg%DfLKC6KyyF=HC`ME5dn+b zpoM@WoW>Xv3Q-XW+8;XO*iL`6GjC_V*?IGJ_uJW7yf@^y zu8yG&007YSaCh@n`z!!J1EBSp`o%jK2~<1n3+{nv06_1>pQe#(t+!Jh)Wmq4JfOY#-2Hfr`6Q znXjxZ=|My+>ttd+FEG3_%{Bbaxty)3auRndjWIEJvi1Hfx!=j&i%zqOAezI{5<`x2 z9)?|FiV0rhtM`fPyw@%6yk=V_T{x2}d3&*h2$%R6RYnoDd3^?w!`pTtx#*DW(SWJo zXkv$BKQ-Qk=r;blV^|x|j2xnqM{XGs+GWYv=mLI_;w!>BT^MgMVb-SIoR`b5 zjd>m=Er1(*qbtEUhgZv!kvKcN%=AD#ar2=!=W0!gXNnD=VmcL3H76LgC8y%eP}uNy zH!^so>N4iW1ljabpI)n*%SuOzvoIO`h-G5V!bvAsbutGKYgz8u$pvG)0)Y90-gT7y9Awf#v(%J6Ej2le3H&I+MG z1bO3V6Jf69lJstu&*kcT94VjG*h1xMO{SgLEJ-uHYrh*MfOUI~jEvAg-4?4N&g3wB z)y2Y~fBIRRO=;jIrhU$WzI0mr3%qSBQW#k!ifCfn4W3xYv%8b&KG^7(p8YKayAQ?c zFXkYUoRpnWPH<_*SubmD$yX~2)~A)5_2Ob@>jpNk(-CbzT07KmPxHZkWm;}`4g7{% zMvG#$&zp-j?JESeKY$uqja3_A?9PPG)2@X-!}dJ@DxR3EI9{F}j(h6MM>jJXp%Jf? z+u(~qTse%8KX(O9&MN3aBz?~&G>*!9w(6irUWKf_6r#K~x!u#T|x__(VjF0o=> zuA)X16VlVc_%(Rd5b@4i*F}H2xO_R-EKoN3_Uqv`Srd6O+_DUvxvACQP9*#0H&H#x zNg>dxk{tem;IOC#zSY54bZxw_1q}AGgEWZ@d=Q=~uWOW5{MuCu=Cc1xpdjX$dRRYC zhvl?5IeU-A*~H2c1HOFRGPD_fyu!rXlb>pM+3;p3KcYO?zCnZtW)EVFU~A(UehZi4 zVnJp82iqgFDp~_^6Zhoz;-}Id6jGf8wtS0|`ut|w*;LXF3fZt8?xkK0gKP)>qVvEQ zN#9>w)K*27rsR_e?gKqP)Tq`Njm6j@^uiu3m$5-4Yn~&qchQG$5kXb3qsk*qAf`Zz6Y#YFeEPUbnTjGewl(6J5Mx7+_ zY++^Cc4T3T!(DO}Hk6~B?e6LtVW7neONsEV=g+I!^C@S9$n|+)g3QLo1_FVcWuQp7 z(BD!t(5GaqHG#P7_O07EX2S*GMompk3Wd@?w6=DQL?THB>R>>+2m3D ztk7t5|4>PZG2AO>*Up_gc|0C1Xm3$>W@cu9Rc>{)<RW{&)Tp;dK~n!!3WPuEOWBzWQnbJdQ!! J>Rdyw{{h&AJAwcJ literal 0 HcmV?d00001 diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/description.xml b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/description.xml new file mode 100755 index 0000000..eda3a92 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/description.xml @@ -0,0 +1,28 @@ + + + Basic UI + 1.0 + + + tizen_iot + 4.0 + + + org.tizen.nativecore.buildArtefactType.app + False + + Template + + + screenshot.png + + + ic_s_efl.png + ic_m_efl_n.png + ic_m_efl_s.png + ic_l_efl.png + + + This is an empty template project for developing UI Application. + + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/ic_l_efl.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/ic_l_efl.png new file mode 100755 index 0000000000000000000000000000000000000000..ee3c66e582433190069939037c5ddcc2882f5e6a GIT binary patch literal 3876 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 H#kzk0NzxA) literal 0 HcmV?d00001 diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/ic_m_efl_s.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/ic_m_efl_s.png new file mode 100755 index 0000000000000000000000000000000000000000..b32888ea73b89cc67e2912e9b1603226ad4df309 GIT binary patch literal 2042 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 +#include +#include +#include +#include + +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "$(appName)" + +#if !defined(PACKAGE) +#define PACKAGE "$(packageName)" +#endif + +#endif /* __$(appName)_H__ */ diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/project_def.prop b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/project_def.prop new file mode 100755 index 0000000..32b9507 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/project_def.prop @@ -0,0 +1,11 @@ +APPNAME = $(appName) + +type = app +profile = $(platform) + +USER_SRCS = src/$(appName).c +USER_DEFS = +USER_INC_DIRS = inc +USER_OBJS = +USER_LIBS = +USER_EDCS = diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/shared/res/mainmenu.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/shared/res/mainmenu.png new file mode 100755 index 0000000000000000000000000000000000000000..9765b1bda7e5bddf0925555ab204b887a873bf24 GIT binary patch literal 57662 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 kZ}gYfNaCF}xV$|1>H6z0+kDwin); +} + +static void +create_base_gui(appdata_s *ad) +{ + /* Window */ + /* Create and initialize elm_win. + elm_win is mandatory to manipulate window. */ + ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE); + elm_win_autodel_set(ad->win, EINA_TRUE); + + if (elm_win_wm_rotation_supported_get(ad->win)) { + int rots[4] = { 0, 90, 180, 270 }; + elm_win_wm_rotation_available_rotations_set(ad->win, (const int *)(&rots), 4); + } + + evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL); + eext_object_event_callback_add(ad->win, EEXT_CALLBACK_BACK, win_back_cb, ad); + + /* Conformant */ + /* Create and initialize elm_conformant. + elm_conformant is mandatory for base gui to have proper size + when indicator or virtual keypad is visible. */ + ad->conform = elm_conformant_add(ad->win); + elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW); + elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE); + evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(ad->win, ad->conform); + evas_object_show(ad->conform); + + /* Label */ + /* Create an actual view of the base gui. + Modify this part to change the view. */ + ad->label = elm_label_add(ad->conform); + elm_object_text_set(ad->label, "Hello Tizen"); + evas_object_size_hint_weight_set(ad->label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_content_set(ad->conform, ad->label); + + /* Show window after base gui is set up */ + evas_object_show(ad->win); +} + +static bool +app_create(void *data) +{ + /* Hook to take necessary actions before main event loop starts + Initialize UI resources and application's data + If this function returns true, the main loop of application starts + If this function returns false, the application is terminated */ + appdata_s *ad = data; + + create_base_gui(ad); + + return true; +} + +static void +app_control(app_control_h app_control, void *data) +{ + /* Handle the launch request. */ +} + +static void +app_pause(void *data) +{ + /* Take necessary actions when application becomes invisible. */ +} + +static void +app_resume(void *data) +{ + /* Take necessary actions when application becomes visible. */ +} + +static void +app_terminate(void *data) +{ + /* Release all resources. */ +} + +static void +ui_app_lang_changed(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_LANGUAGE_CHANGED*/ + + int ret; + char *language; + + ret = app_event_get_language(event_info, &language); + if (ret != APP_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "app_event_get_language() failed. Err = %d.", ret); + return; + } + + if (language != NULL) { + elm_language_set(language); + free(language); + } +} + +static void +ui_app_orient_changed(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/ + return; +} + +static void +ui_app_region_changed(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_REGION_FORMAT_CHANGED*/ +} + +static void +ui_app_low_battery(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_LOW_BATTERY*/ +} + +static void +ui_app_low_memory(app_event_info_h event_info, void *user_data) +{ + /*APP_EVENT_LOW_MEMORY*/ +} + +int +main(int argc, char *argv[]) +{ + appdata_s ad = {0,}; + int ret = 0; + + ui_app_lifecycle_callback_s event_callback = {0,}; + app_event_handler_h handlers[5] = {NULL, }; + + event_callback.create = app_create; + event_callback.terminate = app_terminate; + event_callback.pause = app_pause; + event_callback.resume = app_resume; + event_callback.app_control = app_control; + + ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &ad); + + ret = ui_app_main(argc, argv, &event_callback, &ad); + if (ret != APP_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "app_main() is failed. err = %d", ret); + } + + return ret; +} diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/tizen-manifest.xml b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/tizen-manifest.xml new file mode 100755 index 0000000..8d494f8 --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/project/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + $(appName).png + + + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/sample.xml b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/sample.xml new file mode 100755 index 0000000..6599faf --- /dev/null +++ b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/sample.xml @@ -0,0 +1,51 @@ + + diff --git a/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/screenshot.png b/config-sdk/extension/core-add-ons/template/samples/Template/Native/basic-ui/screenshot.png new file mode 100755 index 0000000000000000000000000000000000000000..176bf18810c49df7f0fcb871e58741fffe6b040a GIT binary patch literal 1780 zcmcJQSx^%O5Qc*?D3;4273FFp_o1{xQ3xPTB64F3#0Ur?gd-dhVju}2Q+1#O5jg}2 zhZ2-XfCPwg3b7y{2n2%MkU%-Y9XTXKjx_Cqoj%y{p`F>C-Pzgs{@s1qL|129*+a(< z0RRA5yNlqT#PL1=AOSeIPn`9c1}Te!^o@(KC;&k2^`9>Bz(7t#Ts(lXbAlY;%BUYW zqokFP;0FLmrQ3mR++s$ShnNv6ykoCcc^H0-W=eF%8`tOlc4&mfkEQRdN2E+$&0s_s zz5B)IC_smJ+OazHJo_oZCV~9(V2$n}$sk!tNa%j|x+AoaD|)|QP7NE%gj@kaI4Oep zZ`;zYpYjHdY{gNU^A66<@HjYbVdLtg&YGh(dHWs&EKuu_n9aAG>6%@*^tF_>pEkW{ zwH>Z{wptnLlM^m!uIInGQ85f}Jo8?Z7id_13uxMoN+ToY!D#cT0g{YFDZ2;Zxrf8+3x7sMipqb`7EZ zIxJ}lkPKHm#OvyQk%l%Ul|V)Hrm-1EMGNw1N(VG>DAo&yppBP7A}1UT&A6p^tmm95 zN`e;O4S4m6UHk()UblI&skUV(Gx?zBn*C!c?WQg~{d z2p`&P>-mqY)<#fM(MPjhW-AK&t6e$=$ccGZIn$vAmiYryJ@}Fbxug(Kw!ceP`J3A2 zNL0aTr8DCV>Qw52HP+KkAwSw2 zti1D#S}sf;Ie-wbUZk_6EKc_mf5kH3M_w{|f<2mCs^h7^BJQGzsBtwYt=7JRUzL+= zZ2Y~FFc!CgBbXt5ZebYLgYi{Y@mkajV9wM|yN>&e_3q^PLURphy8VRPm`#Maqvj1P z!q_Txz@opy(a3zblzaTHRpX#Y$W9%;@|>-r>M|AbSf8wq3D)2)$|fNzE?FGaW_maD zmAP|ZOEuCQKB;}axJDh6uUudsybZq`j07d0LXkL*ki3uy_2!2cEm0IwvMubSeshz? zmam)t^$gLq<-K7KWJHFga)5lBQ0VcoP?%jJk0msWM(dkZ+rD^p_5pF>5g)V^2zgxR zoiT{puUK!f^dSF2w+mT|bU(P?xk}a+z_vSk<<`?p&Cc7phy!uClU{J&(%F%JM85Xl=ca z&vS5aFpJIH*w(>$@g+)TAA#0ti+d5St zX!Iy)iOkh(Z)&S+SAt7T)vnqlzS8Q80bODz$p?#{$?voWZp7 HzPJ7WY4J6( literal 0 HcmV?d00001 diff --git a/config-sdk/extension/output/.wd b/config-sdk/extension/output/.wd new file mode 100644 index 0000000..e69de29 diff --git a/config-sdk/extension/rootstrap/data/.wd b/config-sdk/extension/rootstrap/data/.wd new file mode 100644 index 0000000..e69de29 diff --git a/config-sdk/extension/version_info b/config-sdk/extension/version_info new file mode 100644 index 0000000..a4366db --- /dev/null +++ b/config-sdk/extension/version_info @@ -0,0 +1,5 @@ +MAIN_VERSION="1.0" +MINOR_VERSION="0.0.1" +MAINTAINER="Woo Chang Kim" +SUPPORT_OS="ubuntu-32, ubuntu-64, windows-32, windows-64, macos-64" +BUILD_OS="ubuntu-64" diff --git a/config-sdk/make_extension.sh b/config-sdk/make_extension.sh new file mode 100755 index 0000000..89c7b1b --- /dev/null +++ b/config-sdk/make_extension.sh @@ -0,0 +1,166 @@ +#!/bin/bash + +if [ $# != 4 ] +then + echo "Usage : make_extension.sh " + echo " format of snapshot id : yyyymmdd.n" + echo " format of platform version : 4.0 or 5.0" + exit 1 +fi + +BB_LIST_FILE=$1 +EXT_NAME=$2 +VERSION=$3 +SNAPSHOT=$4 + +MAP_BB_RS_FILE_LOC=https://git.tizen.org/cgit/tools/building-blocks/plain/mapping-bb-rs.xml?h=tizen_4.0 +MAP_BB_RS_FILE=mapping-bb-rs.xml + +download_mapping_file() +{ + if [ ! -e $MAP_BB_RS_FILE ] + then + wget -r -np -nd -P ./ $MAP_BB_RS_FILE_LOC -O ./$MAP_BB_RS_FILE + if [ $? != 0 ] + then + return $? + fi + fi + return 0 +} + +clean_files() +{ + rm -f $MAP_BB_RS_FILE +} + +RS_LIST_FILE="rs_xml.list" +TMP_RS_LIST_FILE="tmp_rs_xml.list" +make_rs_list_file() +{ + BB_LIST=`cat $BB_LIST_FILE` + echo -n "" > $TMP_RS_LIST_FILE + + for TBB in $BB_LIST + do + XPATH="//buildingblock[@name=\"${TBB}\"]/rs_info" + RS_LIST=`xmllint --xpath $XPATH $MAP_BB_RS_FILE` + if [ $? == 0 ] + then + echo $RS_LIST >> $TMP_RS_LIST_FILE + fi + done + + sed -e 's/<\/rs_info>/\n/g' $TMP_RS_LIST_FILE | sed -e 's///g' | sed -e '/^$/d' > $RS_LIST_FILE + rm -f $TMP_RS_LIST_FILE +} + +RS_RESOURCE=./rs_resource +RS_TBB=./rs_tbb +make_rs_tbb_directory() +{ +### make directory structure ### + rm -rf $RS_TBB + + DIR_LIST=`du $RS_RESOURCE | awk '{print $2}' | sed -e 's/rs_resource/rs_tbb/g'` + + mkdir $RS_TBB + for DIRX in $DIR_LIST + do + mkdir -p $DIRX + done + +### copy files ### + mkdir -p $RS_TBB/ + RS_LIST=`cat $RS_LIST_FILE` + + for RSXML in $RS_LIST + do + ORIGIN_LOC=`find $RS_RESOURCE -name $RSXML` + if [ $? == 0 ] + then + for ITEM in $ORIGIN_LOC + do + DEST_LOC=`echo $ITEM | sed -e 's/rs_resource/rs_tbb/g'` + echo "cp -f $ITEM $DEST_LOC" + cp -f $ITEM $DEST_LOC + done + else + echo "Warning : There is no xml file.($RSXML)" + fi + done +} + +CONFIG_FILE=iot_rs_config +# input : version, profile, snapshot +make_config_file() +{ +if [ $1 != "4.0" -a $1 != "5.0" ] +then + P_VER="4.0" +else + P_VER=$1 +fi + +PROFILE=$2 +SNAP=$3 + +echo "# Rootstrap configraution" > $CONFIG_FILE +echo "export PLATFORM_VERSION=\"$P_VER\"" >> $CONFIG_FILE +echo "export PLATFORM_PROFILE=\"$PROFILE\"" >> $CONFIG_FILE +if [ $P_VER = "5.0" ] +then +echo "export BASE_URL_PREFIX=\"http://download.tizen.org/snapshots/tizen/base/latest/\"" >> $CONFIG_FILE +echo "export BASE_URL_POSTFIX_TARGET=\"/repos/standard/packages/\"" >> $CONFIG_FILE +echo "export BASE_URL_POSTFIX_EMULATOR=\"/repos/standard/packages/\"" >> $CONFIG_FILE +echo "export SNAPSHOT_URL_PREFIX=\"http://download.tizen.org/snapshots/tizen/unified/tizen-unified_$SNAP/\"" >> $CONFIG_FILE +else +echo "export BASE_URL_PREFIX=\"http://download.tizen.org/snapshots/tizen/4.0-base/latest/\"" >> $CONFIG_FILE +echo "export BASE_URL_POSTFIX_TARGET=\"/repos/arm/packages/\"" >> $CONFIG_FILE +echo "export BASE_URL_POSTFIX_EMULATOR=\"/repos/emulator32/packages/\"" >> $CONFIG_FILE +echo "export SNAPSHOT_URL_PREFIX=\"http://download.tizen.org/snapshots/tizen/4.0-unified/tizen-4.0-unified_$SNAP/\"" >> $CONFIG_FILE +fi + +echo "export BASE_PKG_SVR_TARGET=\"\${BASE_URL_PREFIX}\${BASE_URL_POSTFIX_TARGET}\"" >> $CONFIG_FILE +echo "export BASE_PKG_SVR_EMULATOR=\"\${BASE_URL_PREFIX}\${BASE_URL_POSTFIX_EMULATOR}\"" >> $CONFIG_FILE + +echo "export SNAPSHOT_URL_POSTFIX_EMULATOR=\"/repos/emulator/packages/\"" >> $CONFIG_FILE +echo "export SNAPSHOT_URL_POSTFIX_TARGET=\"/repos/standard/packages/\"" >> $CONFIG_FILE + +echo "export RPM_PKG_SVR_EMULATOR=\"\${SNAPSHOT_URL_PREFIX}\${SNAPSHOT_URL_POSTFIX_EMULATOR}\"" >> $CONFIG_FILE +echo "export RPM_PKG_SVR_TARGET=\"\${SNAPSHOT_URL_PREFIX}\${SNAPSHOT_URL_POSTFIX_TARGET}\"" >> $CONFIG_FILE + +echo "# Wget ID/PW for Local Test" >> $CONFIG_FILE +echo "export ID=" >> $CONFIG_FILE +echo "export PW=" >> $CONFIG_FILE +} + +echo "1. Downlading a mapping file. (building-blocks to rs files)" +download_mapping_file + +if [ $? != 0 ] +then + echo "Downlading a mapping file is failed" + exit 2 +fi +echo "Downlading a mapping file is successful." + +echo "2. Making rs_xml list" +make_rs_list_file + +sync + +echo "3. Making rs_tbb directory" +make_rs_tbb_directory + +echo "4. Making config file" +make_config_file $VERSION $EXT_NAME $SNAPSHOT + +echo "5. Making rootstrap" +./make_rootstrap.sh -C $CONFIG_FILE -c -t ./rs_tbb + +echo "6. Making pakcage" +./package_rootstrap.sh -C $CONFIG_FILE + +echo "7. Merging all files" +./package_all.sh $EXT_NAME $VERSION diff --git a/config-sdk/make_rootstrap.sh b/config-sdk/make_rootstrap.sh new file mode 100755 index 0000000..11536a8 --- /dev/null +++ b/config-sdk/make_rootstrap.sh @@ -0,0 +1,397 @@ +#!/bin/bash + +SCRIPT_NAME="$(basename ${BASH_SOURCE[0]})" +SCRIPT_FULLPATH="$(readlink -f ${BASH_SOURCE[0]})" +SCRIPT_BASE="$(dirname ${SCRIPT_FULLPATH})" +SCRIPT_VER="0.0.2" + +CMD_RS_GEN="${SCRIPT_BASE}/script/rootstrap_gen_1.0.sh" +CMD_RS_INFO="${SCRIPT_BASE}/script/rootstrap_info_gen_1.0.sh" +CMD_RS_PLUGIN="${SCRIPT_BASE}/script/rootstrap_plugin_gen_1.0.sh" +CMD_API_FILTER="${SCRIPT_BASE}/script/api_filter.sh" + +DIR_INFO=".info" +DIR_RPM=".rpm" +DIR_PLUGIN=".plugin" +DIR_TMP=".tmp" +DIR_EMULATOR=".emulator" +DIR_TARGET=".target" +DIR_ZIP=".zip" + +PRIVATE_STRING="" + +LOGFILE="rs.log" + +if [ -e ${LOGFILE} ]; then + rm ${LOGFILE}; +fi + +touch ${LOGFILE} + +############################################################################### +# function log +############################################################################### +function log() +{ + printf "[${SCRIPT_NAME}:${BASH_LINENO[0]}] ${@}\n" +} + +############################################################################### +# function check_error +# $1 : Error code(integer) +# $2 : Error Message +# $3 : Error Xml File) +# Example : check_error $? "Fail to function" +############################################################################### +function check_error() +{ + if [ "$1" -ne "0" ]; then + printf "[${SCRIPT_NAME}:${BASH_LINENO[0]}] ERROR : $2 - exit code ($1) \n" 1>&2 + exit $1 + fi +} + +############################################################################### +# function remove_dir +# $@ : Files +# Example : remove_dir test_dir test_file +############################################################################### +function remove_dir () { + echo "remove dir : $@" + rm -rf $@ >/dev/null 2>&1 +} + +############################################################################### +## function callRootstrapGen +# $1 : emulator/target +# $2 : ${RPM_PKG_SVR_EMULATOR} +# $3 : ${BASE_PKG_SVR_EMULATOR} +# Example : callRootstrapGen emulator ${RPM_PKG_SVR_EMULATOR} ${BASE_PKG_SVR_EMULATOR} +############################################################################### +function callRootstrapGen () { + log "make rootstrap for ${1}..." 1>&2 + ROOTSTRAP_TYPE=${1}; + + if [[ -z ${3} ]] + then + FULL_RS_CMD="${CMD_RS_GEN} -t ${1} -u ${2} ${xmlList}" + else + FULL_RS_CMD="${CMD_RS_GEN} -t ${1} -u ${2} -b ${3} ${xmlList}" + fi + + FULL_RS_INFO_CMD="${CMD_RS_INFO} -t $1 -l ${xmlList} -p $PLATFORM_PROFILE -v $PLATFORM_VERSION" + + if [[ "${ROOTSTRAP_TYPE}" == "emulator" ]]; then + FULL_CMD_RS_PLUGIN_GEN="${CMD_RS_PLUGIN} -t ${ROOTSTRAP_TYPE} -i .info/$PLATFORM_PROFILE-$PLATFORM_VERSION-emulator.core.dev.xml -p ${PLATFORM_PROFILE} -v ${PLATFORM_VERSION}" + elif [[ "${ROOTSTRAP_TYPE}" == "target" ]]; then + FULL_CMD_RS_PLUGIN_GEN="${CMD_RS_PLUGIN} -t ${ROOTSTRAP_TYPE} -i .info/$PLATFORM_PROFILE-$PLATFORM_VERSION-device.core.dev.xml -p ${PLATFORM_PROFILE} -v ${PLATFORM_VERSION}" + else + exit 1; + fi + + if [[ ${DEBUG_MODE} == "1" ]] + then + log "$FULL_RS_CMD" + $FULL_RS_CMD + check_error $? "Fail to ${CMD_RS_GEN}" + + log "$FULL_RS_INFO_CMD" + $FULL_RS_INFO_CMD + check_error $? "Fail to ${CMD_RS_INFO}" + + log "$FULL_CMD_RS_PLUGIN_GEN" + $FULL_CMD_RS_PLUGIN_GEN + check_error $? "Fail to ${FULL_CMD_RS_PLUGIN_GEN}" + + else + if [[ -e ${LOGFILE} ]]; then + log "$FULL_RS_CMD" | tee -a ${LOGFILE} + fi + $FULL_RS_CMD >/dev/null + check_error $? "Fail to ${CMD_RS_GEN}" + + log "$FULL_RS_INFO_CMD" + $FULL_RS_INFO_CMD >/dev/null + check_error $? "Fail to ${CMD_RS_INFO}" + + log "$FULL_CMD_RS_PLUGIN_GEN" + $FULL_CMD_RS_PLUGIN_GEN >/dev/null + check_error $? "Fail to ${FULL_CMD_RS_PLUGIN_GEN}" + fi + + ##Append Snapshot + if [ -n "${SNAPSHOT_BASE}" ]; then + + log "ADD Snapshot : ${SNAPSHOT_BASE}" + + if [[ "${ROOTSTRAP_TYPE}" == "emulator" ]]; then + echo '' | tee -a .info/$PLATFORM_PROFILE-$PLATFORM_VERSION-emulator.core.dev.xml + elif [[ "${ROOTSTRAP_TYPE}" == "target" ]]; then + echo '' | tee -a .info/$PLATFORM_PROFILE-$PLATFORM_VERSION-device.core.dev.xml + fi + fi + + log "Done... [$SECONDS]Sec" 1>&2 +} + + +GLOBAL_ERROR="0" +OPT_TARGET=false +OPT_EMULATOR=false +OPT_DOWNLOAD_RPM=false +OPT_CLEAN=false +OPT_CONF="" + +############################################################################### +# function usage +############################################################################### +function usage () { +echo "$SCRIPT_NAME ($SCRIPT_VER) is script to make rootstrap using xml from OBS" + echo "Usage: $SCRIPT_NAME -C [] [