1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Migrated the MinGW integration into the managedbuilder.gnu plugin. Also fixed up some of the strings in the UI.

This commit is contained in:
Doug Schaefer 2007-02-22 05:22:55 +00:00
parent c60e1cf2ad
commit 5a07244d6d
4 changed files with 542 additions and 11 deletions

View file

@ -45,10 +45,11 @@ ConfigName.Dbg=Debug
ToolChainName.Rel=GCC Tool Chain
ToolChainName.Dbg=GCC Tool Chain
ToolChainName.Linux=GCC Tool Chain (Linux)
ToolChainName.Win32=GCC Tool Chain (Windows)
ToolChainName.Macosx=GCC Tool Chain (Macosx)
ToolChainName.Solaris=GCC Tool Chain (Solaris)
ToolChainName.Linux=Linux GCC
ToolChainName.Cygwin=Cygwin GCC
ToolChainName.MinGW=MinGW GCC
ToolChainName.Macosx=MacOSX GCC
ToolChainName.Solaris=Solaris GCC
# Generic platform names
PlatformName.Rel=Release Platform

View file

@ -1656,7 +1656,7 @@
<toolChain
archList="all"
osList="win32"
name="%ToolChainName.Win32"
name="%ToolChainName.Cygwin"
configurationEnvironmentSupplier="org.eclipse.cdt.managedbuilder.gnu.cygwin.GnuCygwinConfigurationEnvironmentSupplier"
targetTool="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.base;cdt.managedbuild.tool.gnu.c.linker.cygwin.base;cdt.managedbuild.tool.gnu.archiver"
id="cdt.managedbuild.toolchain.gnu.cygwin.base">
@ -1721,6 +1721,74 @@
</toolChain>
<toolChain
archList="all"
configurationEnvironmentSupplier="org.eclipse.cdt.managedbuilder.gnu.mingw.MingwEnvironmentVariableSupplier"
id="cdt.managedbuild.toolchain.gnu.mingw.base"
name="%ToolChainName.MinGW"
osList="win32"
targetTool="cdt.managedbuild.tool.gnu.cpp.linker.mingw.base;cdt.managedbuild.tool.gnu.c.linker.mingw.base;cdt.managedbuild.tool.gnu.archiver">
<targetPlatform
id="cdt.managedbuild.target.gnu.platform.mingw.base"
name="%PlatformName.Dbg"
binaryParser="org.eclipse.cdt.core.PE"
osList="win32"
archList="all">
</targetPlatform>
<tool
id="cdt.managedbuild.tool.gnu.assembler.mingw.base"
superClass="cdt.managedbuild.tool.gnu.assembler">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.archiver.mingw.base"
superClass="cdt.managedbuild.tool.gnu.archiver">
<enablement
type="ALL">
<checkBuildProperty
property="org.eclipse.cdt.build.core.buildArtefactType"
value="org.eclipse.cdt.build.core.buildArtefactType.staticLib"/>
</enablement>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.base"
superClass="cdt.managedbuild.tool.gnu.cpp.compiler">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.compiler.mingw.base"
superClass="cdt.managedbuild.tool.gnu.c.compiler">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.linker.mingw.base"
superClass="cdt.managedbuild.tool.gnu.c.linker">
<enablement
type="ALL">
<not>
<checkBuildProperty
property="org.eclipse.cdt.build.core.buildArtefactType"
value="org.eclipse.cdt.build.core.buildArtefactType.staticLib"/>
</not>
</enablement>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.base"
superClass="cdt.managedbuild.tool.gnu.cpp.linker">
<enablement
type="ALL">
<not>
<checkBuildProperty
property="org.eclipse.cdt.build.core.buildArtefactType"
value="org.eclipse.cdt.build.core.buildArtefactType.staticLib"/>
</not>
</enablement>
</tool>
<builder
id="cdt.managedbuild.tool.gnu.builder.mingw.base"
isAbstract="false"
isVariableCaseSensitive="false">
</builder>
</toolChain>
<toolChain
archList="all"
osList="macosx"
@ -2676,6 +2744,383 @@
</configuration>
</projectType>
<configuration
id="cdt.managedbuild.config.gnu.mingw.base"
cleanCommand="rm -rf"
artifactExtension="exe"
>
<enablement type="CONTAINER_ATTRIBUTE"
attribute="artifactExtension"
value="dll"
extensionAdjustment="false">
<checkBuildProperty
property="org.eclipse.cdt.build.core.buildArtefactType"
value="org.eclipse.cdt.build.core.buildArtefactType.sharedLib"/>
</enablement>
<enablement type="CONTAINER_ATTRIBUTE"
attribute="artifactExtension"
value="a"
extensionAdjustment="false">
<checkBuildProperty
property="org.eclipse.cdt.build.core.buildArtefactType"
value="org.eclipse.cdt.build.core.buildArtefactType.staticLib"/>
</enablement>
</configuration>
<projectType
buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe"
id="cdt.managedbuild.target.gnu.mingw.exe"
isAbstract="false"
isTest="false"
>
<configuration
name="%ConfigName.Dbg"
cleanCommand="rm -rf"
id="cdt.managedbuild.config.gnu.mingw.exe.debug"
parent="cdt.managedbuild.config.gnu.mingw.base"
buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug">
<toolChain
superClass="cdt.managedbuild.toolchain.gnu.mingw.base"
id="cdt.managedbuild.toolchain.gnu.mingw.exe.debug">
<targetPlatform
id="cdt.managedbuild.target.gnu.platform.mingw.exe.debug"
superClass="cdt.managedbuild.target.gnu.platform.mingw.base">
</targetPlatform>
<tool
id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug"
superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.base">
<option
id="gnu.cpp.compiler.mingw.exe.debug.option.optimization.level"
superClass="gnu.cpp.compiler.option.optimization.level">
</option>
<option
id="gnu.cpp.compiler.mingw.exe.debug.option.debugging.level"
superClass="gnu.cpp.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug"
superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.base">
<option
id="gnu.c.compiler.mingw.exe.debug.option.optimization.level"
superClass="gnu.c.compiler.option.optimization.level">
</option>
<option
id="gnu.c.compiler.mingw.exe.debug.option.debugging.level"
superClass="gnu.c.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug"
superClass="cdt.managedbuild.tool.gnu.c.linker.mingw.base">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug"
superClass="cdt.managedbuild.tool.gnu.cpp.linker.mingw.base">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.assembler.mingw.exe.debug"
superClass="cdt.managedbuild.tool.gnu.assembler.mingw.base">
</tool>
</toolChain>
</configuration>
<configuration
name="%ConfigName.Rel"
cleanCommand="rm -rf"
id="cdt.managedbuild.config.gnu.mingw.exe.release"
parent="cdt.managedbuild.config.gnu.mingw.base"
buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release">
<toolChain
superClass="cdt.managedbuild.toolchain.gnu.mingw.base"
id="cdt.managedbuild.toolchain.gnu.mingw.exe.release">
<targetPlatform
id="cdt.managedbuild.target.gnu.platform.mingw.exe.release"
superClass="cdt.managedbuild.target.gnu.platform.mingw.base">
</targetPlatform>
<tool
id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release"
superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.base">
<option
id="gnu.cpp.compiler.mingw.exe.release.option.optimization.level"
superClass="gnu.cpp.compiler.option.optimization.level">
</option>
<option
id="gnu.cpp.compiler.mingw.exe.release.option.debugging.level"
superClass="gnu.cpp.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release"
superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.base">
<option
id="gnu.c.compiler.mingw.exe.release.option.optimization.level"
superClass="gnu.c.compiler.option.optimization.level">
</option>
<option
id="gnu.c.compiler.mingw.exe.release.option.debugging.level"
superClass="gnu.c.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.release"
superClass="cdt.managedbuild.tool.gnu.c.linker.mingw.base">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.release"
superClass="cdt.managedbuild.tool.gnu.cpp.linker.mingw.base">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.assembler.mingw.exe.release"
superClass="cdt.managedbuild.tool.gnu.assembler.mingw.base">
</tool>
</toolChain>
</configuration>
</projectType>
<projectType
buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.sharedLib"
id="cdt.managedbuild.target.gnu.mingw.so"
isAbstract="false"
isTest="false"
>
<configuration
name="%ConfigName.Dbg"
cleanCommand="rm -rf"
parent="cdt.managedbuild.config.gnu.mingw.base"
buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"
id="cdt.managedbuild.config.gnu.mingw.so.debug">
<toolChain
superClass="cdt.managedbuild.toolchain.gnu.mingw.base"
id="cdt.managedbuild.toolchain.gnu.mingw.so.debug">
<targetPlatform
id="cdt.managedbuild.target.gnu.platform.mingw.so.debug"
superClass="cdt.managedbuild.target.gnu.platform.mingw.base">
</targetPlatform>
<tool
id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.so.debug"
superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.base">
<option
id="gnu.cpp.compiler.mingw.so.debug.option.optimization.level"
superClass="gnu.cpp.compiler.option.optimization.level">
</option>
<option
id="gnu.cpp.compiler.mingw.so.debug.option.debugging.level"
superClass="gnu.cpp.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.compiler.mingw.so.debug"
superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.base">
<option
id="gnu.c.compiler.mingw.so.debug.option.optimization.level"
superClass="gnu.c.compiler.option.optimization.level">
</option>
<option
id="gnu.c.compiler.mingw.so.debug.option.debugging.level"
superClass="gnu.c.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.linker.mingw.so.debug"
superClass="cdt.managedbuild.tool.gnu.c.linker.mingw.base">
<option
id="gnu.c.link.mingw.so.debug.option.shared"
superClass="gnu.c.link.option.shared">
</option>
<outputType
id="cdt.managedbuild.tool.gnu.c.linker.mingw.so.debug.output"
outputs="dll">
</outputType>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.so.debug"
superClass="cdt.managedbuild.tool.gnu.cpp.linker.mingw.base">
<option
id="gnu.cpp.link.mingw.so.debug.option.shared"
superClass="gnu.cpp.link.option.shared">
</option>
<outputType
id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.so.debug.output"
outputs="dll">
</outputType>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.assembler.mingw.so.debug"
superClass="cdt.managedbuild.tool.gnu.assembler.mingw.base">
</tool>
</toolChain>
</configuration>
<configuration
name="%ConfigName.Rel"
cleanCommand="rm -rf"
parent="cdt.managedbuild.config.gnu.mingw.base"
buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"
id="cdt.managedbuild.config.gnu.mingw.so.release">
<toolChain
superClass="cdt.managedbuild.toolchain.gnu.mingw.base"
id="cdt.managedbuild.toolchain.gnu.mingw.so.release">
<targetPlatform
id="cdt.managedbuild.target.gnu.platform.mingw.so.release"
superClass="cdt.managedbuild.target.gnu.platform.mingw.base">
</targetPlatform>
<tool
id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.so.release"
superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.base">
<option
id="gnu.cpp.compiler.mingw.so.release.option.optimization.level"
superClass="gnu.cpp.compiler.option.optimization.level">
</option>
<option
id="gnu.cpp.compiler.mingw.so.release.option.debugging.level"
superClass="gnu.cpp.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.compiler.mingw.so.release"
superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.base">
<option
id="gnu.c.compiler.mingw.so.release.option.optimization.level"
superClass="gnu.c.compiler.option.optimization.level">
</option>
<option
id="gnu.c.compiler.mingw.so.release.option.debugging.level"
superClass="gnu.c.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.linker.mingw.so.release"
superClass="cdt.managedbuild.tool.gnu.c.linker.mingw.base">
<option
id="gnu.c.link.mingw.so.release.option.shared"
superClass="gnu.c.link.option.shared">
</option>
<outputType
id="cdt.managedbuild.tool.gnu.c.linker.mingw.so.release.output"
outputs="dll">
</outputType>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.so.release"
superClass="cdt.managedbuild.tool.gnu.cpp.linker.mingw.base">
<option
id="gnu.cpp.link.mingw.so.release.option.shared"
superClass="gnu.cpp.link.option.shared">
</option>
<outputType
id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.so.release.output"
outputs="dll">
</outputType>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.assembler.mingw.so.release"
superClass="cdt.managedbuild.tool.gnu.assembler.mingw.base">
</tool>
</toolChain>
</configuration>
</projectType>
<projectType
buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib"
id="cdt.managedbuild.target.gnu.mingw.lib"
isAbstract="false"
isTest="false"
>
<configuration
name="%ConfigName.Dbg"
parent="cdt.managedbuild.config.gnu.mingw.base"
buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"
cleanCommand="rm -rf"
id="cdt.managedbuild.config.gnu.mingw.lib.debug">
<toolChain
superClass="cdt.managedbuild.toolchain.gnu.mingw.base"
id="cdt.managedbuild.toolchain.gnu.mingw.lib.debug">
<targetPlatform
id="cdt.managedbuild.target.gnu.platform.mingw.lib.debug"
superClass="cdt.managedbuild.target.gnu.platform.mingw.base">
</targetPlatform>
<tool
id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.lib.debug"
superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.base">
<option
id="gnu.cpp.compiler.mingw.lib.debug.option.optimization.level"
superClass="gnu.cpp.compiler.option.optimization.level">
</option>
<option
id="gnu.cpp.compiler.mingw.lib.debug.option.debugging.level"
superClass="gnu.cpp.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.compiler.mingw.lib.debug"
superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.base">
<option
id="gnu.c.compiler.mingw.lib.debug.option.optimization.level"
superClass="gnu.c.compiler.option.optimization.level">
</option>
<option
id="gnu.c.compiler.mingw.lib.debug.option.debugging.level"
superClass="gnu.c.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.archiver.mingw.lib.debug"
superClass="cdt.managedbuild.tool.gnu.archiver.mingw.base">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.assembler.mingw.lib.debug"
superClass="cdt.managedbuild.tool.gnu.assembler.mingw.base">
</tool>
</toolChain>
</configuration>
<configuration
name="%ConfigName.Rel"
parent="cdt.managedbuild.config.gnu.mingw.base"
buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"
cleanCommand="rm -rf"
id="cdt.managedbuild.config.gnu.mingw.lib.release">
<toolChain
superClass="cdt.managedbuild.toolchain.gnu.mingw.base"
id="cdt.managedbuild.toolchain.gnu.mingw.lib.release">
<targetPlatform
id="cdt.managedbuild.target.gnu.platform.mingw.lib.release"
superClass="cdt.managedbuild.target.gnu.platform.mingw.base">
</targetPlatform>
<tool
id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.lib.release"
superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.base">
<option
id="gnu.cpp.compiler.mingw.lib.release.option.optimization.level"
superClass="gnu.cpp.compiler.option.optimization.level">
</option>
<option
id="gnu.cpp.compiler.mingw.lib.release.option.debugging.level"
superClass="gnu.cpp.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.c.compiler.mingw.lib.release"
superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.base">
<option
id="gnu.c.compiler.mingw.lib.release.option.optimization.level"
superClass="gnu.c.compiler.option.optimization.level">
</option>
<option
id="gnu.c.compiler.mingw.lib.release.option.debugging.level"
superClass="gnu.c.compiler.option.debugging.level">
</option>
</tool>
<tool
id="cdt.managedbuild.tool.gnu.archiver.mingw.lib.release"
superClass="cdt.managedbuild.tool.gnu.archiver.mingw.base">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.assembler.mingw.lib.release"
superClass="cdt.managedbuild.tool.gnu.assembler.mingw.base">
</tool>
</toolChain>
</configuration>
</projectType>
<configuration
id="cdt.managedbuild.config.gnu.macosx.base"
cleanCommand="rm -rf"

View file

@ -0,0 +1,86 @@
/**********************************************************************
* Copyright (c) 2006 QNX Software Systems and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* QNX Software Systems - Initial API and implementation
**********************************************************************/
package org.eclipse.cdt.managedbuilder.gnu.mingw;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable;
import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier;
import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider;
import org.eclipse.cdt.utils.WindowsRegistry;
import org.eclipse.core.runtime.Platform;
/**
* @author Doug Schaefer
*
*/
public class MingwEnvironmentVariableSupplier implements
IConfigurationEnvironmentVariableSupplier {
private static class MingwBuildEnvironmentVariable implements IBuildEnvironmentVariable {
private final String name;
private final String value;
private final int operation;
public MingwBuildEnvironmentVariable(String name, String value, int operation) {
this.name = name;
this.value = value;
this.operation = operation;
}
public String getName() {
return name;
}
public String getValue() {
return value;
}
public int getOperation() {
return operation;
}
public String getDelimiter() {
return ";";
}
}
private final IBuildEnvironmentVariable path;
public MingwEnvironmentVariableSupplier() {
String bin = "C:/MinGW/bin";
// TODO try finding MinGW in either of:
// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MinGW, InstallLocation
// or using:
// String bin = Platform.getInstallLocation().getURL().getFile().substring(1)
// + "mingw/bin";
path = new MingwBuildEnvironmentVariable(
"PATH",
bin,
IBuildEnvironmentVariable.ENVVAR_PREPEND);
}
public IBuildEnvironmentVariable getVariable(String variableName,
IConfiguration configuration, IEnvironmentVariableProvider provider) {
if (variableName.equals(path.getName()))
return path;
else
return null;
}
public IBuildEnvironmentVariable[] getVariables(
IConfiguration configuration, IEnvironmentVariableProvider provider) {
return new IBuildEnvironmentVariable[] { path };
}
}

View file

@ -46,9 +46,8 @@ BuildSelectedFiles.tooltip=Rebuilds the selected file(s)
CleanSelectedFiles.tooltip=Cleans the output file(s) for the selected file(s)
## New CDT project model - property pages names
CDTPathSymbolsProperty.name=CDT Project paths and symbols
CDTExpPathSymbolsProperty.name=CDT Export settings
CDTBuildProperty.name=CDT Build settings
CDTToolchainProperty.name=CDT ToolChain edit
CDTVariablesProperty.name=CDT Build variables
CDTPathSymbolsProperty.name=C/C++ Project paths and symbols
CDTExpPathSymbolsProperty.name=C/C++ Export settings
CDTBuildProperty.name=C/C++ Build settings
CDTToolchainProperty.name=C/C++ ToolChain edit
CDTVariablesProperty.name=C/C++ Build variables