mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-05 08:46:02 +02:00
Updated the Wascana generator.
This commit is contained in:
parent
da50919f62
commit
0e9d71dcbb
1 changed files with 164 additions and 105 deletions
|
@ -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,12 +334,19 @@ 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,
|
||||
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."
|
||||
+ " No warranty is given; refer to the header files within the package.";
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue