Search in sources :

Example 1 with Builder

use of org.robovm.compiler.config.Config.Builder in project robovm by robovm.

the class ConfigTest method testReadIOS.

@Test
public void testReadIOS() throws Exception {
    Config.Builder builder = new Config.Builder();
    builder.read(new InputStreamReader(getClass().getResourceAsStream("ConfigTest.ios.xml"), "utf-8"), wd);
    Config config = builder.config;
    assertEquals("6.1", config.getIosSdkVersion());
    assertEquals(new File(wd, "Info.plist"), config.getIosInfoPList().getFile());
    assertEquals(new File(wd, "entitlements.plist"), config.getIosEntitlementsPList());
}
Also used : InputStreamReader(java.io.InputStreamReader) Builder(org.robovm.compiler.config.Config.Builder) Builder(org.robovm.compiler.config.Config.Builder) File(java.io.File) Test(org.junit.Test)

Example 2 with Builder

use of org.robovm.compiler.config.Config.Builder in project robovm by robovm.

the class ConfigTest method testMergeConfigsFromClasspath.

@Test
public void testMergeConfigsFromClasspath() throws Exception {
    File tmpDir = createTempDir();
    File cacheDir = new File(tmpDir, "cache");
    File p1 = createMergeConfig(tmpDir, "p1", "Foo", OS.macosx, Arch.x86, false);
    File p2 = createMergeConfig(tmpDir, "p2", "Wooz", OS.linux, Arch.x86, false);
    // Create a jar file with both x86 and x86_64 by first creating a folder for x86 in p3/ 
    // and then passing p3/ again but this time compress it to a jar.
    createMergeConfig(tmpDir, "p3", "Baaz", OS.macosx, Arch.x86, false);
    File p3 = createMergeConfig(tmpDir, "p3", "Raaz", OS.macosx, Arch.x86_64, true);
    Config.Builder builder = new Config.Builder();
    builder.cacheDir(cacheDir);
    builder.os(OS.macosx);
    builder.arch(Arch.x86);
    builder.targetType(ConsoleTarget.TYPE);
    builder.mainClass("Main");
    builder.addClasspathEntry(p1);
    builder.addClasspathEntry(p2);
    builder.addClasspathEntry(p3);
    builder.addExportedSymbol("YADA*");
    builder.addFrameworkPath(new File(p1, "yada"));
    builder.addFramework("Yada");
    builder.addForceLinkClass("org.yada.**");
    builder.addLib(new Lib("yada", true));
    builder.addResource(new Resource(new File(p1, "resources")));
    builder.addWeakFramework("WeakYada");
    builder.home(fakeHome);
    Config config = builder.build();
    File p1X86Root = new File(p1, "META-INF/robovm/macosx/x86");
    File p3X86Cache = config.getCacheDir(config.getClazzes().getClasspathPaths().get(2));
    File p3X86Root = new File(p3X86Cache.getParentFile(), p3X86Cache.getName() + ".extracted/META-INF/robovm/macosx/x86");
    assertEquals(Arrays.asList("FOO*", "BAAZ*", "YADA*"), config.getExportedSymbols());
    assertEquals(Arrays.asList("com.foo.**", "com.baaz.**", "org.yada.**"), config.getForceLinkClasses());
    assertEquals(Arrays.asList(new File(p1X86Root, "foo/bar"), new File(p3X86Root, "baaz/bar"), new File(p1, "yada")), config.getFrameworkPaths());
    assertEquals(Arrays.asList("Foo", "Baaz", "Yada"), config.getFrameworks());
    assertEquals(Arrays.asList(new Lib("foo", true), new Lib(new File(p1X86Root, "libfoo.a").getAbsolutePath(), true), new Lib("baaz", true), new Lib(new File(p3X86Root, "libbaaz.a").getAbsolutePath(), true), new Lib("yada", true)), config.getLibs());
    assertEquals(Arrays.asList(new Resource(new File(p1X86Root, "resources")), new Resource(new File(p3X86Root, "resources")), new Resource(new File(p1, "resources"))), config.getResources());
    assertEquals(Arrays.asList("WeakFoo", "WeakBaaz", "WeakYada"), config.getWeakFrameworks());
    // Make sure builder() returns a config which merges in x86_64 configs instead
    config = config.builder().arch(Arch.x86_64).build();
    File p3X86_64Cache = config.getCacheDir(config.getClazzes().getClasspathPaths().get(2));
    File p3X86_64Root = new File(p3X86_64Cache.getParentFile(), p3X86_64Cache.getName() + ".extracted/META-INF/robovm/macosx/x86_64");
    assertEquals(Arrays.asList("RAAZ*", "YADA*"), config.getExportedSymbols());
    assertEquals(Arrays.asList("com.raaz.**", "org.yada.**"), config.getForceLinkClasses());
    assertEquals(Arrays.asList(new File(p3X86_64Root, "raaz/bar"), new File(p1, "yada")), config.getFrameworkPaths());
    assertEquals(Arrays.asList("Raaz", "Yada"), config.getFrameworks());
    assertEquals(Arrays.asList(new Lib("raaz", true), new Lib(new File(p3X86_64Root, "libraaz.a").getAbsolutePath(), true), new Lib("yada", true)), config.getLibs());
    assertEquals(Arrays.asList(new Resource(new File(p3X86_64Root, "resources")), new Resource(new File(p1, "resources"))), config.getResources());
    assertEquals(Arrays.asList("WeakRaaz", "WeakYada"), config.getWeakFrameworks());
}
Also used : Lib(org.robovm.compiler.config.Config.Lib) Builder(org.robovm.compiler.config.Config.Builder) Builder(org.robovm.compiler.config.Config.Builder) File(java.io.File) Test(org.junit.Test)

Example 3 with Builder

use of org.robovm.compiler.config.Config.Builder in project robovm by robovm.

the class ConfigTest method testWriteConsole.

@Test
public void testWriteConsole() throws Exception {
    Config.Builder builder = new Config.Builder();
    builder.addClasspathEntry(new File("foo1.jar"));
    builder.addClasspathEntry(new File(tmp, "foo2.jar"));
    builder.addFramework("Foundation");
    builder.addFramework("AppKit");
    builder.addLib(new Config.Lib("dl", true));
    builder.addLib(new Config.Lib("libs/libmy.a", true));
    builder.addLib(new Config.Lib("libs/foo.o", true));
    builder.addLib(new Config.Lib("/usr/lib/libbar.a", false));
    builder.addResource(new Resource(new File("/tmp/wd/resources")));
    builder.addResource(new Resource(new File("/usr/share/resources")));
    builder.addResource(new Resource(new File("/tmp/wd"), null).include("data/**/*"));
    builder.addResource(new Resource(null, null).include("videos/**/*.avi"));
    builder.addResource(new Resource(new File("/tmp/wd/resources"), "data").include("**/*.png").exclude("**/foo.png").flatten(true));
    builder.addForceLinkClass("javax.**.*");
    builder.os(OS.macosx);
    builder.archs(Arch.x86, Arch.x86_64);
    StringWriter out = new StringWriter();
    builder.write(out, wd);
    assertEquals(IOUtils.toString(getClass().getResourceAsStream("ConfigTest.console.xml")), out.toString());
}
Also used : StringWriter(java.io.StringWriter) Builder(org.robovm.compiler.config.Config.Builder) Builder(org.robovm.compiler.config.Config.Builder) Lib(org.robovm.compiler.config.Config.Lib) File(java.io.File) Test(org.junit.Test)

Example 4 with Builder

use of org.robovm.compiler.config.Config.Builder in project robovm by robovm.

the class AnnotationImplPluginTest method initialize.

@BeforeClass
public static void initialize() throws IOException {
    Builder builder = new Builder();
    for (String p : System.getProperty("sun.boot.class.path").split(File.pathSeparator)) {
        builder.addBootClasspathEntry(new File(p));
    }
    for (String p : System.getProperty("java.class.path").split(File.pathSeparator)) {
        builder.addClasspathEntry(new File(p));
    }
    builder.home(new FakeHome());
    builder.mainClass("Main");
    File cacheDir = Files.createTempDirectory(AnnotationImplPlugin.class.getSimpleName()).toFile();
    builder.cacheDir(cacheDir);
    config = builder.build();
}
Also used : FakeHome(org.robovm.compiler.config.FakeHome) ModuleBuilder(org.robovm.compiler.ModuleBuilder) Builder(org.robovm.compiler.config.Config.Builder) File(java.io.File) BeforeClass(org.junit.BeforeClass)

Example 5 with Builder

use of org.robovm.compiler.config.Config.Builder in project robovm by robovm.

the class ConfigTest method testWriteIOS.

@Test
public void testWriteIOS() throws Exception {
    Config.Builder builder = new Config.Builder();
    builder.iosSdkVersion("6.1");
    builder.iosInfoPList(new File("Info.plist"));
    builder.iosEntitlementsPList(new File("entitlements.plist"));
    builder.targetType(IOSTarget.TYPE);
    StringWriter out = new StringWriter();
    builder.write(out, wd);
    assertEquals(IOUtils.toString(getClass().getResourceAsStream("ConfigTest.ios.xml")), out.toString());
}
Also used : StringWriter(java.io.StringWriter) Builder(org.robovm.compiler.config.Config.Builder) Builder(org.robovm.compiler.config.Config.Builder) File(java.io.File) Test(org.junit.Test)

Aggregations

File (java.io.File)8 Builder (org.robovm.compiler.config.Config.Builder)8 Test (org.junit.Test)7 Lib (org.robovm.compiler.config.Config.Lib)5 InputStreamReader (java.io.InputStreamReader)3 StringWriter (java.io.StringWriter)2 BeforeClass (org.junit.BeforeClass)1 ModuleBuilder (org.robovm.compiler.ModuleBuilder)1 FakeHome (org.robovm.compiler.config.FakeHome)1