OSDN Git Service

initial ios template, seems to work, need to add ikvm and monotouch libs :(
authorMario Zechner <contact@badlogicgames.com>
Sat, 19 Jan 2013 16:17:15 +0000 (17:17 +0100)
committerMario Zechner <contact@badlogicgames.com>
Sat, 19 Jan 2013 16:17:15 +0000 (17:17 +0100)
extensions/gdx-setup-ui/src/aurelienribon/gdxsetupui/BaseProjectConfiguration.java
extensions/gdx-setup-ui/src/aurelienribon/gdxsetupui/LibraryDef.java
extensions/gdx-setup-ui/src/aurelienribon/gdxsetupui/ProjectSetup.java
extensions/gdx-setup-ui/src/aurelienribon/gdxsetupui/ShellBuilder.java [new file with mode: 0755]
extensions/gdx-setup-ui/src/res/projects.zip [changed mode: 0644->0755]

index d8d7ffe..9fb03fe 100644 (file)
@@ -29,9 +29,11 @@ public abstract class BaseProjectConfiguration {
        public boolean isDesktopIncluded = false;
        public boolean isAndroidIncluded = false;
        public boolean isHtmlIncluded = false;
+       public boolean isIosIncluded = false;
        public String suffixCommon = "";
        public String suffixDesktop = "-desktop";
        public String suffixAndroid = "-android";
+       public String suffixIos = "-ios";
        public String suffixHtml = "-html";
 
        public final List<String> libraries = new ArrayList<String>();
index 90f7496..2198072 100644 (file)
@@ -37,6 +37,7 @@ public class LibraryDef {
        public final List<String> libsDesktop;
        public final List<String> libsAndroid;
        public final List<String> libsHtml;
+       public final List<String> libsIos;
        public final List<String> data;
 
        /**
@@ -58,6 +59,7 @@ public class LibraryDef {
                this.libsDesktop = ParseUtils.parseBlockAsList(content, "libs-desktop");
                this.libsAndroid = ParseUtils.parseBlockAsList(content, "libs-android");
                this.libsHtml = ParseUtils.parseBlockAsList(content, "libs-html");
+               this.libsIos = ParseUtils.parseBlockAsList(content, "libs-ios");
                this.data = ParseUtils.parseBlockAsList(content, "data");
        }
 }
\ No newline at end of file
index 0df1187..5be6a5b 100644 (file)
@@ -75,6 +75,7 @@ public class ProjectSetup {
                if (cfg.isDesktopIncluded) templateManager.define("PRJ_DESKTOP_NAME", cfg.projectName + cfg.suffixDesktop);
                if (cfg.isAndroidIncluded) templateManager.define("PRJ_ANDROID_NAME", cfg.projectName + cfg.suffixAndroid);
                if (cfg.isHtmlIncluded) templateManager.define("PRJ_HTML_NAME", cfg.projectName + cfg.suffixHtml);
+               if (cfg.isIosIncluded) templateManager.define("PRJ_IOS_NAME", cfg.projectName + cfg.suffixIos);
 
                // Android manifest definitions
                if (!cfg.androidMinSdkVersion.equals("")) templateManager.define("ANDROID_MIN_SDK", cfg.androidMinSdkVersion);
@@ -124,6 +125,7 @@ public class ProjectSetup {
                File desktopPrjLibsDir = new File(tmpDst, "/prj-desktop/libs");
                File androidPrjLibsDir = new File(tmpDst, "/prj-android/libs");
                File htmlPrjLibsDir = new File(tmpDst, "/prj-html/war/WEB-INF/lib");
+               File iosPrjLibsDir = new File(tmpDst, "/prj-ios/libs");
                File dataDir = new File(tmpDst, "/prj-android/assets");
 
                for (String library : cfg.libraries) {
@@ -145,6 +147,8 @@ public class ProjectSetup {
                                        if (entryName.endsWith(elemName)) copyEntry(zis, elemName, androidPrjLibsDir);
                                for (String elemName : def.libsHtml)
                                        if (entryName.endsWith(elemName)) copyEntry(zis, elemName, htmlPrjLibsDir);
+                               for (String elemName : def.libsIos)
+                                       if(entryName.endsWith(elemName)) copyEntry(zis, elemName, iosPrjLibsDir);
                                for (String elemName : def.data)
                                        if (entryName.endsWith(elemName)) copyEntry(zis, elemName, dataDir);
                        }
@@ -250,6 +254,15 @@ public class ProjectSetup {
                        templateDir(src);
                        FileUtils.moveDirectory(src, dst);
                }
+               
+               if(cfg.isIosIncluded) {
+                       File src = new File(tmpDst, "prj-ios");
+                       File dst = new File(tmpDst, cfg.projectName + cfg.suffixIos);
+                       move(src, "my-gdx-game-ios.csproj", cfg.projectName + cfg.suffixIos + ".csproj");
+                       move(src, "my-gdx-game-ios.sln", cfg.projectName + cfg.suffixIos + ".sln");
+                       templateDir(src);
+                       FileUtils.moveDirectory(src, dst);
+               }
        }
 
        /**
@@ -275,6 +288,11 @@ public class ProjectSetup {
                        src = new File(tmpDst, cfg.projectName + cfg.suffixHtml);
                        FileUtils.copyDirectoryToDirectory(src, dst);
                }
+               
+               if(cfg.isIosIncluded) {
+                       src = new File(tmpDst, cfg.projectName + cfg.suffixIos);
+                       FileUtils.copyDirectoryToDirectory(src, dst);
+               }
        }
 
        /**
@@ -295,7 +313,7 @@ public class ProjectSetup {
                        if (file.isDirectory()) {
                                templateDir(file);
                        } else {
-                               if (endsWith(file.getName(), ".jar", ".zip", ".png")) continue;
+                               if (endsWith(file.getName(), ".jar", ".zip", ".dll", ".a", ".png")) continue;
                                templateManager.processOver(file);
                        }
                }
diff --git a/extensions/gdx-setup-ui/src/aurelienribon/gdxsetupui/ShellBuilder.java b/extensions/gdx-setup-ui/src/aurelienribon/gdxsetupui/ShellBuilder.java
new file mode 100755 (executable)
index 0000000..6b11925
--- /dev/null
@@ -0,0 +1,53 @@
+package aurelienribon.gdxsetupui;\r
+\r
+import java.io.IOException;\r
+\r
+import org.apache.commons.io.IOUtils;\r
+\r
+import aurelienribon.gdxsetupui.ui.Ctx;\r
+import aurelienribon.utils.Res;\r
+import aurelienribon.utils.HttpUtils.DownloadTask;\r
+\r
+/**\r
+ * Executes a {@link ProjectSetup} on the shell. Mainly used for testing\r
+ * the packaging of new libs.\r
+ * \r
+ * @author mzechner\r
+ *\r
+ */\r
+public class ShellBuilder {\r
+       private static final String MASTER_CONFIG = "https://raw.github.com/libgdx/libgdx/master/extensions/gdx-setup-ui/config/config.txt";\r
+       \r
+       public static void main (String[] args) throws IOException {\r
+               LibraryManager libs = new LibraryManager(MASTER_CONFIG);\r
+               ProjectSetupConfiguration config = new ProjectSetupConfiguration();\r
+               config.projectName="test-game";\r
+               config.isDesktopIncluded = true;\r
+               config.isAndroidIncluded = true;\r
+               config.isHtmlIncluded = true;\r
+               config.isIosIncluded = true;\r
+               config.destinationPath = "d:/tmp";\r
+               ProjectSetup setup = new ProjectSetup(config, libs);\r
+               \r
+               libs.downloadConfigFile();\r
+               String rawDef = IOUtils.toString(Res.getStream("libgdx.txt"));\r
+               LibraryDef def = new LibraryDef(rawDef);\r
+               libs.addDef("libgdx", def);\r
+               config.libraries.add("libgdx");\r
+               config.librariesZipPaths.put("libgdx", "d:/tmp/libgdx-nightly-latest.zip");\r
+               \r
+               System.out.println("Decompressing projects...");\r
+               setup.inflateProjects();\r
+               System.out.println(" done\nDecompressing libraries...");\r
+               setup.inflateLibraries();\r
+               System.out.println(" done\nConfiguring libraries...");\r
+               setup.configureLibraries();\r
+               System.out.println(" done\nPost-processing files...");\r
+               setup.postProcess();\r
+               System.out.println(" done\nCopying projects...");\r
+               setup.copy();\r
+               System.out.println(" done\nCleaning...");\r
+               setup.clean();\r
+               System.out.println(" done\nAll done!");\r
+       }\r
+}\r
old mode 100644 (file)
new mode 100755 (executable)
index c267019..2020dd0
Binary files a/extensions/gdx-setup-ui/src/res/projects.zip and b/extensions/gdx-setup-ui/src/res/projects.zip differ