summaryrefslogtreecommitdiff
path: root/NativeLauncher/util/utils.cc
diff options
context:
space:
mode:
Diffstat (limited to 'NativeLauncher/util/utils.cc')
-rw-r--r--NativeLauncher/util/utils.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/NativeLauncher/util/utils.cc b/NativeLauncher/util/utils.cc
index 45b2bad..3d5a5f6 100644
--- a/NativeLauncher/util/utils.cc
+++ b/NativeLauncher/util/utils.cc
@@ -619,6 +619,19 @@ std::vector<std::string> depsJsonParser(std::string rootPath, std::string execNa
}
const Json::Value runtimeTargetName = root["runtimeTarget"]["name"];
const Json::Value nugetPackages = root["targets"][runtimeTargetName.asString().c_str()];
+ std::vector<std::string> appDependencies;
+ for (auto& nuget : nugetPackages.getMemberNames()) {
+ if (strstr(nuget.c_str(), (execName.substr(0, execName.find(".Tizen."))).c_str()) != NULL ||
+ strstr(nuget.c_str(), (execName.substr(0, execName.find(".dll"))).c_str()) != NULL) {
+ const Json::Value assemblies = nugetPackages[nuget.c_str()]["runtime"];
+ if (assemblies != Json::nullValue) {
+ const Json::Value dependencies = nugetPackages[nuget.c_str()]["dependencies"];
+ for (auto& dependency : dependencies.getMemberNames()) {
+ appDependencies.push_back(dependency);
+ }
+ }
+ }
+ }
for (auto& nuget : nugetPackages.getMemberNames()) {
//Skip the nuget package related to Tizen
if (strstr(nuget.c_str(), TIZEN_DOTNET_NUGET) == NULL &&
@@ -634,6 +647,14 @@ std::vector<std::string> depsJsonParser(std::string rootPath, std::string execNa
if (strstr(dependency.c_str(), TIZEN_DOTNET_NUGET) == NULL &&
strstr(dependency.c_str(), NET_STANDARD_LIBRARY_NUGET) == NULL) {
hasDependency = true;
+ for (auto& ad : appDependencies) {
+ if (!strcmp(ad.c_str(), dependency.c_str())) {
+ hasDependency = true;
+ break;
+ } else {
+ hasDependency = false;
+ }
+ }
}
}
if (!hasDependency) {
@@ -660,6 +681,7 @@ std::vector<std::string> depsJsonParser(std::string rootPath, std::string execNa
}
}
}
+ appDependencies.clear();
ifs.close();
}
}