mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 17:56:01 +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$
|
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.";
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue