1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-07 09:46:02 +02:00

Updated the Wascana generator.

This commit is contained in:
Doug Schaefer 2009-04-29 23:53:16 +00:00
parent da50919f62
commit 0e9d71dcbb

View file

@ -61,7 +61,13 @@ public class MinGWGenerator implements IApplication {
Activator.getDefault().getBundle("org.eclipse.equinox.p2.exemplarysetup").start(Bundle.START_TRANSIENT); //$NON-NLS-1$ 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(); repoDir.mkdirs();
new File(repoDir, "artifacts.xml").delete(); new File(repoDir, "artifacts.xml").delete();
@ -82,156 +88,197 @@ public class MinGWGenerator implements IApplication {
ILicense wxLic = MetadataFactory.createLicense(new URI(wxLicURL), wxLicText); ILicense wxLic = MetadataFactory.createLicense(new URI(wxLicURL), wxLicText);
Version wascanaVersion = new Version("1.0.0"); Version wascanaVersion = new Version("1.0.0");
String mingwSubdir = "mingw"; String mingwSubdir = "mingw";
// MinGW Runtime // MinGW Runtime DLL
String runtimeId = "wascana.mingw.mingwrt"; Version runtimeVersion = new Version("4.15.2");
Version runtimeVersion = new Version("4.15.1"); IInstallableUnit runtimeDLLIU = createIU(
InstallableUnitDescription runtimeIUDesc = createIUDesc(runtimeId, runtimeVersion, "Wascana MinGW Runtime Library", publicDomainLic); "wascana.mingw.mingwrt.dll",
IInstallableUnit runtimeIU = createIU(runtimeIUDesc, runtimeId, runtimeVersion, runtimeVersion,
"http://downloads.sourceforge.net/mingw/mingwrt-3.15.1-mingw32.tar.gz", "Wascana MinGW Runtime DLL",
"http://downloads.sourceforge.net/mingw/mingwrt-3.15.2-mingw32-dll.tar.gz",
mingwSubdir, 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 // w32api
String w32apiId = "wascana.mingw.w32api"; IInstallableUnit w32apiIU = createIU(
Version w32apiVersion = new Version("3.13"); "wascana.mingw.w32api",
InstallableUnitDescription w32apiIUDesc = createIUDesc(w32apiId, w32apiVersion, "Wascana MinGW Windows Library", publicDomainLic); new Version("3.13"),
IInstallableUnit w32apiIU = createIU(w32apiIUDesc, w32apiId, w32apiVersion, "Wascana MinGW Windows Library",
"http://downloads.sourceforge.net/mingw/w32api-3.13-mingw32-dev.tar.gz", "http://downloads.sourceforge.net/mingw/w32api-3.13-mingw32-dev.tar.gz",
mingwSubdir, mingwSubdir,
GZ_COMPRESSION); GZ_COMPRESSION,
null,
publicDomainLic,
false);
// binutils // binutils
String binutilsId = "wascana.mingw.binutils"; IInstallableUnit binutilsIU = createIU(
Version binutilsVersion = new Version("2.19"); "wascana.mingw.binutils",
InstallableUnitDescription binutilsIUDesc = createIUDesc(binutilsId, binutilsVersion, "Wascana MinGW binutils", gplLic); new Version("2.19.1"),
IInstallableUnit binutilsIU = createIU(binutilsIUDesc, binutilsId, binutilsVersion, "Wascana MinGW binutils",
"http://downloads.sourceforge.net/mingw/binutils-2.19-mingw32-bin.tar.gz", "http://downloads.sourceforge.net/mingw/binutils-2.19.1-mingw32-bin.tar.gz",
mingwSubdir, mingwSubdir,
GZ_COMPRESSION); GZ_COMPRESSION,
null,
gplLic,
false);
// gcc-4 core // gcc-4 core
String gcc4coreId = "wascana.mingw.gcc4.core"; Version gcc4version = new Version("4.3.3.tdm-1");
Version gcc4Version = new Version("4.3.2.tdm-1"); IInstallableUnit gcc4coreIU = createIU(
InstallableUnitDescription gcc4coreIUDesc = createIUDesc(gcc4coreId, gcc4Version, "Wascana MinGW gcc-4 core", gplLic); "wascana.mingw.tdm.gcc4.core",
IRequiredCapability[] gcc4coreReqs = new IRequiredCapability[] { gcc4version,
MetadataFactory.createRequiredCapability( "Wascana MinGW TDM gcc-4 core",
IInstallableUnit.NAMESPACE_IU_ID, "http://downloads.sourceforge.net/tdm-gcc/gcc-4.3.3-tdm-1-core.tar.gz",
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",
mingwSubdir, mingwSubdir,
GZ_COMPRESSION); GZ_COMPRESSION,
new IRequiredCapability[] {
createRequiredCap(runtimeDLLIU),
createRequiredCap(runtimeLibIU),
createRequiredCap(w32apiIU),
createRequiredCap(binutilsIU)
},
gplLic,
false);
// gcc-4 g++ // gcc-4 g++
String gcc4gppId = "wascana.mingw.gcc4.g++"; IInstallableUnit gcc4gppIU = createIU(
InstallableUnitDescription gcc4gppIUDesc = createIUDesc(gcc4gppId, gcc4Version, "Wascana MinGW gcc-4 g++", gplLic); "wascana.mingw.tdm.gcc4.g++",
gcc4gppIUDesc.setLicense(gplLic); gcc4version,
IRequiredCapability[] gcc4gppReqs = new IRequiredCapability[] { "Wascana MinGW TDM gcc-4 g++",
MetadataFactory.createRequiredCapability( "http://downloads.sourceforge.net/tdm-gcc/gcc-4.3.3-tdm-1-g++.tar.gz",
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",
mingwSubdir, mingwSubdir,
GZ_COMPRESSION); GZ_COMPRESSION,
new IRequiredCapability[] {
createStrictRequiredCap(gcc4coreIU)
},
gplLic,
false);
// gdb // gdb
String gdbId = "wascana.mingw.gdb"; IInstallableUnit gdbIU = createIU(
Version gdbVersion = new Version("6.8.0.4"); "wascana.mingw.gdb",
InstallableUnitDescription gdbIUDesc = createIUDesc(gdbId, gdbVersion, "Wascana MinGW gdb", gplLic); new Version("6.8.0.3"),
IInstallableUnit gdbIU = createIU(gdbIUDesc, gdbId, gdbVersion, "Wascana MinGW gdb",
"http://downloads.sourceforge.net/mingw/gdb-6.8-mingw-3.tar.bz2", "http://downloads.sourceforge.net/mingw/gdb-6.8-mingw-3.tar.bz2",
mingwSubdir, 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 // msys
String msysId = "wascana.msys.core"; IInstallableUnit msysIU = createIU(
Version msysVersion = new Version("1.0.11.20080826"); "wascana.msys.core",
InstallableUnitDescription msysIUDesc = createIUDesc(msysId, msysVersion, "Wascana MSYS Build System", gplLic); new Version("1.0.11.20080826"),
IInstallableUnit msysIU = createIU(msysIUDesc, msysId, msysVersion, "Wascana MSYS Shell",
"http://downloads.sourceforge.net/mingw/msysCORE-1.0.11-20080826.tar.gz", "http://downloads.sourceforge.net/mingw/msysCORE-1.0.11-20080826.tar.gz",
"msys", "msys",
GZ_COMPRESSION); GZ_COMPRESSION,
null,
// MinGW toolchain category gplLic,
InstallableUnitDescription mingwToolchainDesc = createIUDesc("wascana.mingw", wascanaVersion, "MinGW Toolchain", null);; true);
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);
// zlib // zlib
String zlibId = "wascana.zlib"; IInstallableUnit zlibIU = createIU(
Version zlibVersion = new Version("1.2.3"); "wascana.zlib",
InstallableUnitDescription zlibIUDesc = createIUDesc(zlibId, zlibVersion, "Wascana zlib Library", zlibLic); new Version("1.2.3"),
IInstallableUnit zlibIU = createIU(zlibIUDesc, zlibId, zlibVersion, "Wascana zlib Library",
"http://downloads.sourceforge.net/wascana/zlib-mingw-1.2.3.zip", "http://downloads.sourceforge.net/wascana/zlib-mingw-1.2.3.zip",
mingwSubdir, mingwSubdir,
ZIP_COMPRESSION); ZIP_COMPRESSION,
null,
zlibLic,
true);
// SDL // SDL
String sdlId = "wascana.sdl"; IInstallableUnit sdlIU = createIU(
Version sdlVersion = new Version("1.2.13"); "wascana.sdl",
InstallableUnitDescription sdlIUDesc = createIUDesc(sdlId, sdlVersion, "Wascana SDL (Simple Directmedia Layer) Library", lgplLic); new Version("1.2.13"),
IInstallableUnit sdlIU = createIU(sdlIUDesc, sdlId, sdlVersion, "Wascana SDL (Simple Directmedia Layer) Library",
"http://downloads.sourceforge.net/wascana/SDL-mingw-1.2.13.zip", "http://downloads.sourceforge.net/wascana/SDL-mingw-1.2.13.zip",
mingwSubdir, mingwSubdir,
ZIP_COMPRESSION); ZIP_COMPRESSION,
null,
lgplLic,
true);
// wxWidgets // wxWidgets
String wxId = "wascana.wxWidgets"; IInstallableUnit wxIU = createIU(
Version wxVersion = new Version("2.8.9"); "wascana.wxWidgets",
InstallableUnitDescription wxDesc = createIUDesc(wxId, wxVersion, "Wascana wxWidgets Library", wxLic); new Version("2.8.9"),
IInstallableUnit wxIU = createIU(wxDesc, wxId, wxVersion, "Wascana wxWidgets Library",
"http://downloads.sourceforge.net/wascana/wxMSW-mingw-2.8.9.zip", "http://downloads.sourceforge.net/wascana/wxMSW-mingw-2.8.9.zip",
mingwSubdir, mingwSubdir,
ZIP_COMPRESSION); ZIP_COMPRESSION,
null,
wxLic,
true);
// Libraries toolchain category // Libraries toolchain category
InstallableUnitDescription libsIUDesc = createIUDesc("wascana.libs", wascanaVersion, "Libraries", null);; InstallableUnitDescription wascanaIUDesc = createIUDesc("wascana", wascanaVersion, "Wascana Desktop Developer", null);;
libsIUDesc.setProperty(IInstallableUnit.PROP_TYPE_CATEGORY, Boolean.TRUE.toString()); wascanaIUDesc.setProperty(IInstallableUnit.PROP_TYPE_CATEGORY, Boolean.TRUE.toString());
IRequiredCapability[] libsReqs = new IRequiredCapability[] { wascanaIUDesc.setRequiredCapabilities(new IRequiredCapability[] {
createRequiredCap(zlibId), createRequiredCap(toolchainIU),
createRequiredCap(sdlId), createRequiredCap(msysIU),
createRequiredCap(wxId), createRequiredCap(zlibIU),
}; createRequiredCap(sdlIU),
libsIUDesc.setRequiredCapabilities(libsReqs); createRequiredCap(wxIU),
IInstallableUnit libsIU = MetadataFactory.createInstallableUnit(libsIUDesc); });
IInstallableUnit wascanaIU = MetadataFactory.createInstallableUnit(wascanaIUDesc);
metaRepo.addInstallableUnits(new IInstallableUnit[] { metaRepo.addInstallableUnits(new IInstallableUnit[] {
runtimeIU, runtimeDLLIU,
runtimeLibIU,
w32apiIU, w32apiIU,
binutilsIU, binutilsIU,
gcc4coreIU, gcc4coreIU,
gcc4gppIU, gcc4gppIU,
gdbIU, gdbIU,
msysIU, msysIU,
mingwToolchainIU,
wxIU, wxIU,
zlibIU, zlibIU,
sdlIU, sdlIU,
libsIU
toolchainIU,
wascanaIU
}); });
System.out.println("done"); System.out.println("done");
@ -257,8 +304,13 @@ public class MinGWGenerator implements IApplication {
return iuDesc; return iuDesc;
} }
private IInstallableUnit createIU(InstallableUnitDescription iuDesc, String id, Version version, String location, String subdir, String compression) throws ProvisionException { private IInstallableUnit createIU(String id, Version version, String name, String location, String subdir, String compression,
iuDesc.setProperty(IInstallableUnit.PROP_TYPE_GROUP, Boolean.TRUE.toString()); 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); iuDesc.setTouchpointType(NATIVE_TOUCHPOINT);
Map<String, String> tpdata = new HashMap<String, String>(); Map<String, String> tpdata = new HashMap<String, String>();
@ -282,12 +334,19 @@ public class MinGWGenerator implements IApplication {
return MetadataFactory.createInstallableUnit(iuDesc); return MetadataFactory.createInstallableUnit(iuDesc);
} }
private IRequiredCapability createRequiredCap(String id) { private IRequiredCapability createRequiredCap(IInstallableUnit iu) {
return MetadataFactory.createRequiredCapability( return MetadataFactory.createRequiredCapability(
IInstallableUnit.NAMESPACE_IU_ID, IInstallableUnit.NAMESPACE_IU_ID,
id, new VersionRange(null), null, false, false); iu.getId(), new VersionRange(null), null, false, false);
} }
private IRequiredCapability createStrictRequiredCap(IInstallableUnit iu) {
return MetadataFactory.createRequiredCapability(
IInstallableUnit.NAMESPACE_IU_ID,
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." 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."; + " No warranty is given; refer to the header files within the package.";