2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include "ni_common.h"
26 #include <pkgmgr_installer_info.h>
31 #define LOG_TAG "DOTNET_INSTALLER_PLUGIN"
33 bool aotPluginInstalled = false;
34 bool aotPluginFinished = false;
36 extern "C" int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgId, const char *appId, GList *list)
38 // Can be multiple apps in one package
39 if (aotPluginInstalled) {
40 _INFO("AOT plugin already installed");
43 aotPluginInstalled = true;
46 if (!pkgmgr_installer_info_get_skip_optimization(&skipOpt)) {
48 _DBG("Skip dotnet AOT");
53 std::string metaValue = getMetadataValue(std::string(pkgId), AOT_METADATA_KEY);
54 if (metaValue.empty()) {
55 _ERR("Failed to get metadata from [%s]", pkgId);
59 if (metaValue == METADATA_VALUE_TRUE) {
60 _DBG("Prefer dotnet application AOT set TRUE");
62 if (initNICommon() != NI_ERROR_NONE) {
63 _ERR("Fail to initialize NI Common");
67 NIOption* opt = getNIOption();
69 _ERR("Fail to create option structure.");
73 if (createNIUnderPkgRoot(pkgId, opt) != NI_ERROR_NONE) {
74 _ERR("Failed to generate application to native image [%s]", pkgId);
78 _INFO("Complete make application to native image");
83 extern "C" int PKGMGR_MDPARSER_PLUGIN_UPGRADE(const char *pkgId, const char *appId, GList *list)
85 return PKGMGR_MDPARSER_PLUGIN_INSTALL(pkgId, appId, list);
88 extern "C" int PKGMGR_MDPARSER_PLUGIN_UNINSTALL(const char *pkgId, const char *appId, GList *list)
93 extern "C" int PKGMGR_MDPARSER_PLUGIN_REMOVED(const char *pkgId, const char *appId, GList *list)
95 return PKGMGR_MDPARSER_PLUGIN_UPGRADE(pkgId, appId, list);
98 extern "C" int PKGMGR_MDPARSER_PLUGIN_CLEAN(const char *pkgId, const char *appId, GList *list)
100 // Can be multiple apps in one package
101 if (aotPluginFinished) {
102 _INFO("AOT plugin already finished(CLEAN)");
105 aotPluginFinished = true;
111 extern "C" int PKGMGR_MDPARSER_PLUGIN_UNDO(const char *pkgId, const char *appId, GList *list)
113 // Can be multiple apps in one package
114 if (aotPluginFinished) {
115 _INFO("AOT plugin already finished(UNDO)");
118 aotPluginFinished = true;