diff options
author | Doug Schaefer | 2009-04-29 23:53:16 +0000 |
---|---|---|
committer | Doug Schaefer | 2009-04-29 23:53:16 +0000 |
commit | 0e9d71dcbbfcaf406a3a5283774d6b5cb4c844fb (patch) | |
tree | 6312e35d5e3fba1c3b92711e839a8e2254be4596 /p2 | |
parent | da50919f62d0186a692c93f66311f80b3d0c2a4a (diff) | |
download | org.eclipse.cdt-0e9d71dcbbfcaf406a3a5283774d6b5cb4c844fb.tar.gz org.eclipse.cdt-0e9d71dcbbfcaf406a3a5283774d6b5cb4c844fb.tar.xz org.eclipse.cdt-0e9d71dcbbfcaf406a3a5283774d6b5cb4c844fb.zip |
Updated the Wascana generator.
Diffstat (limited to 'p2')
-rw-r--r-- | p2/org.eclipse.cdt.p2.generator/src/org/eclipse/cdt/p2/generator/MinGWGenerator.java | 269 |
1 files changed, 164 insertions, 105 deletions
diff --git a/p2/org.eclipse.cdt.p2.generator/src/org/eclipse/cdt/p2/generator/MinGWGenerator.java b/p2/org.eclipse.cdt.p2.generator/src/org/eclipse/cdt/p2/generator/MinGWGenerator.java index 6ff8fa56e71..d22cedaa24c 100644 --- a/p2/org.eclipse.cdt.p2.generator/src/org/eclipse/cdt/p2/generator/MinGWGenerator.java +++ b/p2/org.eclipse.cdt.p2.generator/src/org/eclipse/cdt/p2/generator/MinGWGenerator.java @@ -61,7 +61,13 @@ public class MinGWGenerator implements IApplication { Activator.getDefault().getBundle("org.eclipse.equinox.p2.exemplarysetup").start(Bundle.START_TRANSIENT); //$NON-NLS-1$ - File repoDir = new File("E:\\Wascana\\repo"); + String[] args = (String[])context.getArguments().get(IApplicationContext.APPLICATION_ARGS); + if (args.length < 1) { + System.err.println("usage: <repoDir>"); + return EXIT_OK; + } + + File repoDir = new File(args[0]); repoDir.mkdirs(); new File(repoDir, "artifacts.xml").delete(); @@ -82,156 +88,197 @@ public class MinGWGenerator implements IApplication { ILicense wxLic = MetadataFactory.createLicense(new URI(wxLicURL), wxLicText); Version wascanaVersion = new Version("1.0.0"); + String mingwSubdir = "mingw"; - // MinGW Runtime - String runtimeId = "wascana.mingw.mingwrt"; - Version runtimeVersion = new Version("4.15.1"); - InstallableUnitDescription runtimeIUDesc = createIUDesc(runtimeId, runtimeVersion, "Wascana MinGW Runtime Library", publicDomainLic); - IInstallableUnit runtimeIU = createIU(runtimeIUDesc, runtimeId, runtimeVersion, - "http://downloads.sourceforge.net/mingw/mingwrt-3.15.1-mingw32.tar.gz", + // MinGW Runtime DLL + Version runtimeVersion = new Version("4.15.2"); + IInstallableUnit runtimeDLLIU = createIU( + "wascana.mingw.mingwrt.dll", + runtimeVersion, + "Wascana MinGW Runtime DLL", + "http://downloads.sourceforge.net/mingw/mingwrt-3.15.2-mingw32-dll.tar.gz", mingwSubdir, - GZ_COMPRESSION); + GZ_COMPRESSION, + null, + publicDomainLic, + false); + + // MinGW Runtime Library + IInstallableUnit runtimeLibIU = createIU( + "wascana.mingw.mingwrt.lib", + runtimeVersion, + "Wascana MinGW Runtime Library", + "http://downloads.sourceforge.net/mingw/mingwrt-3.15.2-mingw32-dev.tar.gz", + mingwSubdir, + GZ_COMPRESSION, + new IRequiredCapability[] { + createStrictRequiredCap(runtimeDLLIU) + }, + publicDomainLic, + false); // w32api - String w32apiId = "wascana.mingw.w32api"; - Version w32apiVersion = new Version("3.13"); - InstallableUnitDescription w32apiIUDesc = createIUDesc(w32apiId, w32apiVersion, "Wascana MinGW Windows Library", publicDomainLic); - IInstallableUnit w32apiIU = createIU(w32apiIUDesc, w32apiId, w32apiVersion, + IInstallableUnit w32apiIU = createIU( + "wascana.mingw.w32api", + new Version("3.13"), + "Wascana MinGW Windows Library", "http://downloads.sourceforge.net/mingw/w32api-3.13-mingw32-dev.tar.gz", mingwSubdir, - GZ_COMPRESSION); + GZ_COMPRESSION, + null, + publicDomainLic, + false); // binutils - String binutilsId = "wascana.mingw.binutils"; - Version binutilsVersion = new Version("2.19"); - InstallableUnitDescription binutilsIUDesc = createIUDesc(binutilsId, binutilsVersion, "Wascana MinGW binutils", gplLic); - IInstallableUnit binutilsIU = createIU(binutilsIUDesc, binutilsId, binutilsVersion, - "http://downloads.sourceforge.net/mingw/binutils-2.19-mingw32-bin.tar.gz", + IInstallableUnit binutilsIU = createIU( + "wascana.mingw.binutils", + new Version("2.19.1"), + "Wascana MinGW binutils", + "http://downloads.sourceforge.net/mingw/binutils-2.19.1-mingw32-bin.tar.gz", mingwSubdir, - GZ_COMPRESSION); + GZ_COMPRESSION, + null, + gplLic, + false); // gcc-4 core - String gcc4coreId = "wascana.mingw.gcc4.core"; - Version gcc4Version = new Version("4.3.2.tdm-1"); - InstallableUnitDescription gcc4coreIUDesc = createIUDesc(gcc4coreId, gcc4Version, "Wascana MinGW gcc-4 core", gplLic); - IRequiredCapability[] gcc4coreReqs = new IRequiredCapability[] { - MetadataFactory.createRequiredCapability( - IInstallableUnit.NAMESPACE_IU_ID, - runtimeIU.getId(), new VersionRange(null), null, false, false), - MetadataFactory.createRequiredCapability( - IInstallableUnit.NAMESPACE_IU_ID, - w32apiIU.getId(), new VersionRange(null), null, false, false), - MetadataFactory.createRequiredCapability( - IInstallableUnit.NAMESPACE_IU_ID, - binutilsIU.getId(), new VersionRange(null), null, false, false), - }; - gcc4coreIUDesc.setRequiredCapabilities(gcc4coreReqs); - IInstallableUnit gcc4coreIU = createIU(gcc4coreIUDesc, gcc4coreId, gcc4Version, - "http://downloads.sourceforge.net/tdm-gcc/gcc-4.3.2-tdm-1-core.tar.gz", + Version gcc4version = new Version("4.3.3.tdm-1"); + IInstallableUnit gcc4coreIU = createIU( + "wascana.mingw.tdm.gcc4.core", + gcc4version, + "Wascana MinGW TDM gcc-4 core", + "http://downloads.sourceforge.net/tdm-gcc/gcc-4.3.3-tdm-1-core.tar.gz", mingwSubdir, - GZ_COMPRESSION); + GZ_COMPRESSION, + new IRequiredCapability[] { + createRequiredCap(runtimeDLLIU), + createRequiredCap(runtimeLibIU), + createRequiredCap(w32apiIU), + createRequiredCap(binutilsIU) + }, + gplLic, + false); // gcc-4 g++ - String gcc4gppId = "wascana.mingw.gcc4.g++"; - InstallableUnitDescription gcc4gppIUDesc = createIUDesc(gcc4gppId, gcc4Version, "Wascana MinGW gcc-4 g++", gplLic); - gcc4gppIUDesc.setLicense(gplLic); - IRequiredCapability[] gcc4gppReqs = new IRequiredCapability[] { - MetadataFactory.createRequiredCapability( - IInstallableUnit.NAMESPACE_IU_ID, - gcc4coreIU.getId(), new VersionRange(gcc4Version, true, gcc4Version, true), null, false, false), - }; - gcc4gppIUDesc.setRequiredCapabilities(gcc4gppReqs); - IInstallableUnit gcc4gppIU = createIU(gcc4gppIUDesc, gcc4gppId, gcc4Version, - "http://downloads.sourceforge.net/tdm-gcc/gcc-4.3.2-tdm-1-g++.tar.gz", + IInstallableUnit gcc4gppIU = createIU( + "wascana.mingw.tdm.gcc4.g++", + gcc4version, + "Wascana MinGW TDM gcc-4 g++", + "http://downloads.sourceforge.net/tdm-gcc/gcc-4.3.3-tdm-1-g++.tar.gz", mingwSubdir, - GZ_COMPRESSION); + GZ_COMPRESSION, + new IRequiredCapability[] { + createStrictRequiredCap(gcc4coreIU) + }, + gplLic, + false); // gdb - String gdbId = "wascana.mingw.gdb"; - Version gdbVersion = new Version("6.8.0.4"); - InstallableUnitDescription gdbIUDesc = createIUDesc(gdbId, gdbVersion, "Wascana MinGW gdb", gplLic); - IInstallableUnit gdbIU = createIU(gdbIUDesc, gdbId, gdbVersion, + IInstallableUnit gdbIU = createIU( + "wascana.mingw.gdb", + new Version("6.8.0.3"), + "Wascana MinGW gdb", "http://downloads.sourceforge.net/mingw/gdb-6.8-mingw-3.tar.bz2", mingwSubdir, - BZ2_COMPRESSION); + BZ2_COMPRESSION, + null, + gplLic, + false); + + InstallableUnitDescription toolchainIUDesc = createIUDesc( + "wascana.toolchain", + new Version("4.3.3"), + "Wascana Toolchain (gcc, g++, gdb)", + null); + toolchainIUDesc.setProperty(IInstallableUnit.PROP_TYPE_GROUP, Boolean.TRUE.toString()); + toolchainIUDesc.setRequiredCapabilities(new IRequiredCapability[] { + createRequiredCap(runtimeDLLIU), + createRequiredCap(runtimeLibIU), + createRequiredCap(w32apiIU), + createRequiredCap(binutilsIU), + createRequiredCap(gcc4coreIU), + createRequiredCap(gcc4gppIU), + createRequiredCap(gdbIU), + }); + IInstallableUnit toolchainIU = MetadataFactory.createInstallableUnit(toolchainIUDesc); // msys - String msysId = "wascana.msys.core"; - Version msysVersion = new Version("1.0.11.20080826"); - InstallableUnitDescription msysIUDesc = createIUDesc(msysId, msysVersion, "Wascana MSYS Build System", gplLic); - IInstallableUnit msysIU = createIU(msysIUDesc, msysId, msysVersion, + IInstallableUnit msysIU = createIU( + "wascana.msys.core", + new Version("1.0.11.20080826"), + "Wascana MSYS Shell", "http://downloads.sourceforge.net/mingw/msysCORE-1.0.11-20080826.tar.gz", "msys", - GZ_COMPRESSION); - - // MinGW toolchain category - InstallableUnitDescription mingwToolchainDesc = createIUDesc("wascana.mingw", wascanaVersion, "MinGW Toolchain", null);; - mingwToolchainDesc.setProperty(IInstallableUnit.PROP_TYPE_CATEGORY, Boolean.TRUE.toString()); - IRequiredCapability[] mingwToolchainReqs = new IRequiredCapability[] { - createRequiredCap(runtimeId), - createRequiredCap(w32apiId), - createRequiredCap(binutilsId), - createRequiredCap(gcc4coreId), - createRequiredCap(gcc4gppId), - createRequiredCap(gdbId), - createRequiredCap(msysId), - }; - mingwToolchainDesc.setRequiredCapabilities(mingwToolchainReqs); - IInstallableUnit mingwToolchainIU = MetadataFactory.createInstallableUnit(mingwToolchainDesc); + GZ_COMPRESSION, + null, + gplLic, + true); // zlib - String zlibId = "wascana.zlib"; - Version zlibVersion = new Version("1.2.3"); - InstallableUnitDescription zlibIUDesc = createIUDesc(zlibId, zlibVersion, "Wascana zlib Library", zlibLic); - IInstallableUnit zlibIU = createIU(zlibIUDesc, zlibId, zlibVersion, + IInstallableUnit zlibIU = createIU( + "wascana.zlib", + new Version("1.2.3"), + "Wascana zlib Library", "http://downloads.sourceforge.net/wascana/zlib-mingw-1.2.3.zip", mingwSubdir, - ZIP_COMPRESSION); + ZIP_COMPRESSION, + null, + zlibLic, + true); // SDL - String sdlId = "wascana.sdl"; - Version sdlVersion = new Version("1.2.13"); - InstallableUnitDescription sdlIUDesc = createIUDesc(sdlId, sdlVersion, "Wascana SDL (Simple Directmedia Layer) Library", lgplLic); - IInstallableUnit sdlIU = createIU(sdlIUDesc, sdlId, sdlVersion, + IInstallableUnit sdlIU = createIU( + "wascana.sdl", + new Version("1.2.13"), + "Wascana SDL (Simple Directmedia Layer) Library", "http://downloads.sourceforge.net/wascana/SDL-mingw-1.2.13.zip", mingwSubdir, - ZIP_COMPRESSION); + ZIP_COMPRESSION, + null, + lgplLic, + true); // wxWidgets - String wxId = "wascana.wxWidgets"; - Version wxVersion = new Version("2.8.9"); - InstallableUnitDescription wxDesc = createIUDesc(wxId, wxVersion, "Wascana wxWidgets Library", wxLic); - IInstallableUnit wxIU = createIU(wxDesc, wxId, wxVersion, + IInstallableUnit wxIU = createIU( + "wascana.wxWidgets", + new Version("2.8.9"), + "Wascana wxWidgets Library", "http://downloads.sourceforge.net/wascana/wxMSW-mingw-2.8.9.zip", mingwSubdir, - ZIP_COMPRESSION); + ZIP_COMPRESSION, + null, + wxLic, + true); // Libraries toolchain category - InstallableUnitDescription libsIUDesc = createIUDesc("wascana.libs", wascanaVersion, "Libraries", null);; - libsIUDesc.setProperty(IInstallableUnit.PROP_TYPE_CATEGORY, Boolean.TRUE.toString()); - IRequiredCapability[] libsReqs = new IRequiredCapability[] { - createRequiredCap(zlibId), - createRequiredCap(sdlId), - createRequiredCap(wxId), - }; - libsIUDesc.setRequiredCapabilities(libsReqs); - IInstallableUnit libsIU = MetadataFactory.createInstallableUnit(libsIUDesc); + InstallableUnitDescription wascanaIUDesc = createIUDesc("wascana", wascanaVersion, "Wascana Desktop Developer", null);; + wascanaIUDesc.setProperty(IInstallableUnit.PROP_TYPE_CATEGORY, Boolean.TRUE.toString()); + wascanaIUDesc.setRequiredCapabilities(new IRequiredCapability[] { + createRequiredCap(toolchainIU), + createRequiredCap(msysIU), + createRequiredCap(zlibIU), + createRequiredCap(sdlIU), + createRequiredCap(wxIU), + }); + IInstallableUnit wascanaIU = MetadataFactory.createInstallableUnit(wascanaIUDesc); metaRepo.addInstallableUnits(new IInstallableUnit[] { - runtimeIU, + runtimeDLLIU, + runtimeLibIU, w32apiIU, binutilsIU, gcc4coreIU, gcc4gppIU, gdbIU, msysIU, - mingwToolchainIU, wxIU, zlibIU, sdlIU, - libsIU + + toolchainIU, + wascanaIU }); System.out.println("done"); @@ -257,8 +304,13 @@ public class MinGWGenerator implements IApplication { return iuDesc; } - private IInstallableUnit createIU(InstallableUnitDescription iuDesc, String id, Version version, String location, String subdir, String compression) throws ProvisionException { - iuDesc.setProperty(IInstallableUnit.PROP_TYPE_GROUP, Boolean.TRUE.toString()); + private IInstallableUnit createIU(String id, Version version, String name, String location, String subdir, String compression, + IRequiredCapability[] reqs, ILicense license, boolean group) throws ProvisionException { + InstallableUnitDescription iuDesc = createIUDesc(id, version, name, license); + if (reqs != null) + iuDesc.setRequiredCapabilities(reqs); + + iuDesc.setProperty(IInstallableUnit.PROP_TYPE_GROUP, String.valueOf(group)); iuDesc.setTouchpointType(NATIVE_TOUCHPOINT); Map<String, String> tpdata = new HashMap<String, String>(); @@ -282,11 +334,18 @@ public class MinGWGenerator implements IApplication { return MetadataFactory.createInstallableUnit(iuDesc); } - private IRequiredCapability createRequiredCap(String id) { + private IRequiredCapability createRequiredCap(IInstallableUnit iu) { + return MetadataFactory.createRequiredCapability( + IInstallableUnit.NAMESPACE_IU_ID, + iu.getId(), new VersionRange(null), null, false, false); + } + + private IRequiredCapability createStrictRequiredCap(IInstallableUnit iu) { return MetadataFactory.createRequiredCapability( IInstallableUnit.NAMESPACE_IU_ID, - id, new VersionRange(null), null, false, false); + iu.getId(), new VersionRange(iu.getVersion(), true, iu.getVersion(), true), null, false, false); } + // TODO make these more legal... public static final String publicDomain = "This package is placed in the Public Domain." + " No warranty is given; refer to the header files within the package."; |