add corerun mode 87/186487/1
authorWoongsuk Cho <ws77.cho@samsung.com>
Fri, 10 Aug 2018 02:13:59 +0000 (11:13 +0900)
committerWoongsuk Cho <ws77.cho@samsung.com>
Fri, 10 Aug 2018 02:13:59 +0000 (11:13 +0900)
Change-Id: Ie53cbae5da2d2f18dacb23822ce359490351b5ea

NativeLauncher/launcher/main.cc

index 6c1ac12..5464247 100644 (file)
@@ -45,8 +45,9 @@ static std::string StandaloneOption("--standalone");
 int main(int argc, char *argv[])
 {
        int i;
-       bool standalone = false;
+       bool standaloneMode = false;
        char* standalonePath = nullptr;
+       bool corerunMode = false;
 
        std::vector<char*> vargs;
 
@@ -56,7 +57,7 @@ int main(int argc, char *argv[])
                        printf("Dotnet launcher Version %s\n", LAUNCHER_VERSION_STR);
                        return 0;
                } else if (StandaloneOption.compare(argv[i]) == 0) {
-                       standalone = true;
+                       standaloneMode = true;
 
                        if (i > argc-1) {
                                fprintf(stderr, "Assembly path must be after \"--standalone\" option\n");
@@ -69,6 +70,10 @@ int main(int argc, char *argv[])
                }
        }
 
+       if (isManagedAssembly(argv[1])) {
+               corerunMode = true;
+       }
+
        using tizen::runtime::LauncherInterface;
        using tizen::runtime::Launchpad;
        using tizen::runtime::AppInfo;
@@ -78,8 +83,26 @@ int main(int argc, char *argv[])
        std::unique_ptr<LauncherInterface> coreRuntime(new CoreRuntime());
        runtime = std::move(coreRuntime);
 
-       if (standalone) {
-               _DBG("##### Run it standalone #########");
+       if (corerunMode) {
+               _DBG("##### Run it corerun Mode #########");
+               char appId[1024] = {0,};
+               std::string appRoot;
+               snprintf(appId, 16, "%s", "dotnet-launcher");
+               appRoot = baseName(argv[1]);
+
+               if (runtime->initialize(true) != 0) {
+                       _ERR("Failed to initialize");
+                       return 1;
+               }
+
+               int argsLen = vargs.size();
+               char** args = &vargs[0];
+               if (runtime->launch(appId, appRoot.c_str(), argv[1], argsLen, args)) {
+                       _ERR("Failed to launch");
+                       return 1;
+               }
+       } else if (standaloneMode) {
+               _DBG("##### Run it standalone Mode #########");
                char appId[1024] = {0,};
                std::string appRoot;
                if (AUL_R_OK == aul_app_get_appid_bypid(getpid(), appId, sizeof(appId))) {