Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Schaefer2007-10-26 14:44:41 -0400
committerDoug Schaefer2007-10-26 14:44:41 -0400
commit3d87af69f14b1678e6b82d2678159fbb0ced9bd4 (patch)
tree72dcb52fb45a5396411da274e043c96de17c4a8e /windows
parent1fe31a6d69626a93fb7a37a46e7886d605cf18e0 (diff)
downloadorg.eclipse.cdt-3d87af69f14b1678e6b82d2678159fbb0ced9bd4.tar.gz
org.eclipse.cdt-3d87af69f14b1678e6b82d2678159fbb0ced9bd4.tar.xz
org.eclipse.cdt-3d87af69f14b1678e6b82d2678159fbb0ced9bd4.zip
Set up msw builds.
Diffstat (limited to 'windows')
-rw-r--r--windows/org.eclipse.cdt.msw.build/.classpath7
-rw-r--r--windows/org.eclipse.cdt.msw.build/.project28
-rw-r--r--windows/org.eclipse.cdt.msw.build/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--windows/org.eclipse.cdt.msw.build/META-INF/MANIFEST.MF13
-rw-r--r--windows/org.eclipse.cdt.msw.build/build.properties6
-rw-r--r--windows/org.eclipse.cdt.msw.build/plugin.properties9
-rw-r--r--windows/org.eclipse.cdt.msw.build/plugin.xml647
-rw-r--r--windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/Activator.java50
-rw-r--r--windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinDiscoveredPathInfo.java59
-rw-r--r--windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinEnvironmentVariableSupplier.java118
-rw-r--r--windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinScannerInfoCollector.java41
11 files changed, 990 insertions, 0 deletions
diff --git a/windows/org.eclipse.cdt.msw.build/.classpath b/windows/org.eclipse.cdt.msw.build/.classpath
new file mode 100644
index 0000000000..751c8f2e50
--- /dev/null
+++ b/windows/org.eclipse.cdt.msw.build/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/windows/org.eclipse.cdt.msw.build/.project b/windows/org.eclipse.cdt.msw.build/.project
new file mode 100644
index 0000000000..e97910dcff
--- /dev/null
+++ b/windows/org.eclipse.cdt.msw.build/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.cdt.msw.build</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/windows/org.eclipse.cdt.msw.build/.settings/org.eclipse.jdt.core.prefs b/windows/org.eclipse.cdt.msw.build/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..0f0eb3002b
--- /dev/null
+++ b/windows/org.eclipse.cdt.msw.build/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Mon Jul 23 15:38:07 EDT 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/windows/org.eclipse.cdt.msw.build/META-INF/MANIFEST.MF b/windows/org.eclipse.cdt.msw.build/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..492bcb702b
--- /dev/null
+++ b/windows/org.eclipse.cdt.msw.build/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: MSVC Build Integration Plug-in
+Bundle-SymbolicName: org.eclipse.cdt.msw.build;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.cdt.msw.build.Activator
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.cdt.core,
+ org.eclipse.cdt.managedbuilder.core
+Eclipse-LazyStart: true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/windows/org.eclipse.cdt.msw.build/build.properties b/windows/org.eclipse.cdt.msw.build/build.properties
new file mode 100644
index 0000000000..30b2fc40bd
--- /dev/null
+++ b/windows/org.eclipse.cdt.msw.build/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ plugin.xml
diff --git a/windows/org.eclipse.cdt.msw.build/plugin.properties b/windows/org.eclipse.cdt.msw.build/plugin.properties
new file mode 100644
index 0000000000..05150db904
--- /dev/null
+++ b/windows/org.eclipse.cdt.msw.build/plugin.properties
@@ -0,0 +1,9 @@
+toolchain.name=Microsoft Visual C++
+
+compiler.name=C/C++ Compiler (cl)
+rc.name=Resource Compiler (rc)
+linker.name=Linker (link)
+lib.name=Library Manager (lib)
+
+config.debug=Debug
+config.release=Release \ No newline at end of file
diff --git a/windows/org.eclipse.cdt.msw.build/plugin.xml b/windows/org.eclipse.cdt.msw.build/plugin.xml
new file mode 100644
index 0000000000..3c63de507e
--- /dev/null
+++ b/windows/org.eclipse.cdt.msw.build/plugin.xml
@@ -0,0 +1,647 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.cdt.managedbuilder.core.buildDefinitions">
+ <managedBuildRevision fileVersion="4.0.0"/>
+ <toolChain
+ archList="all"
+ configurationEnvironmentSupplier="org.eclipse.cdt.msw.build.WinEnvironmentVariableSupplier"
+ id="org.eclipse.cdt.msvc.toolchain.base"
+ name="%toolchain.name"
+ osList="win32"
+ targetTool="org.eclipse.cdt.msvc.link;org.eclipse.cdt.msvc.lib">
+ <targetPlatform
+ archList="all"
+ binaryParser="org.eclipse.cdt.core.PE"
+ id="org.eclipse.cdt.msvc.targetPlatform"
+ osList="win32">
+ </targetPlatform>
+ <builder
+ id="org.eclipse.cdt.msvc.builder"
+ isVariableCaseSensitive="false"
+ superClass="org.eclipse.cdt.build.core.internal.builder">
+ </builder>
+ <tool
+ command="cl /c"
+ errorParsers="org.eclipse.cdt.core.VCErrorParser"
+ id="org.eclipse.cdt.msvc.cl"
+ name="%compiler.name"
+ natureFilter="both"
+ outputFlag="/Fo">
+ <supportedProperties>
+ <property
+ id="org.eclipse.cdt.build.core.buildType">
+ <value
+ id="org.eclipse.cdt.build.core.buildType.debug">
+ </value>
+ <value
+ id="org.eclipse.cdt.build.core.buildType.release">
+ </value>
+ </property>
+ </supportedProperties>
+ <optionCategory
+ id="org.eclipse.cdt.msvc.cl.optionCategory.optimization"
+ name="Optimization"/>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.optimization"
+ id="org.eclipse.cdt.msvc.cl.option.optimization"
+ name="Optimization"
+ resourceFilter="all"
+ valueType="enumerated">
+ <enumeratedOptionValue
+ id="org.eclipse.cdt.msvc.cl.option.optimization.default"
+ isDefault="false"
+ name="Default"/>
+ <enumeratedOptionValue
+ command="/O1"
+ id="org.eclipse.cdt.msvc.cl.option.optimization.1"
+ isDefault="false"
+ name="Minimize Size (/O1)"/>
+ <enumeratedOptionValue
+ command="/O2"
+ id="org.eclipse.cdt.msvc.cl.option.optimization.2"
+ isDefault="true"
+ name="Maximize Speed (/O2)"/>
+ <enablement
+ attribute="value"
+ extensionAdjustment="false"
+ type="CONTAINER_ATTRIBUTE"
+ value="org.eclipse.cdt.msvc.cl.option.optimization.2">
+ <checkBuildProperty
+ property="org.eclipse.cdt.build.core.buildType"
+ value="org.eclipse.cdt.build.core.buildType.release">
+ </checkBuildProperty>
+ </enablement>
+ <enablement
+ attribute="value"
+ extensionAdjustment="false"
+ type="CONTAINER_ATTRIBUTE"
+ value="org.eclipse.cdt.msvc.cl.option.optimization.default">
+ <checkBuildProperty
+ property="org.eclipse.cdt.build.core.buildType"
+ value="org.eclipse.cdt.build.core.buildType.debug">
+ </checkBuildProperty>
+ </enablement>
+ </option>
+ <optionCategory
+ id="org.eclipse.cdt.msvc.cl.optionCategory.codegen"
+ name="Code Generation"/>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.codegen"
+ id="org.eclipse.cdt.msvc.cl.option.arch"
+ name="Minimum CPU Architecture"
+ resourceFilter="all"
+ valueType="enumerated">
+ <enumeratedOptionValue
+ id="org.eclipse.cdt.msvc.cl.option.arch.default"
+ isDefault="true"
+ name="Default"/>
+ <enumeratedOptionValue
+ command="/arch:SSE"
+ id="org.eclipse.cdt.msvc.cl.option.arch.sse"
+ isDefault="false"
+ name="SSE (/arch:SSE)"/>
+ <enumeratedOptionValue
+ id="org.eclipse.cdt.msvc.cl.option.arch.sse2"
+ isDefault="false"
+ name="SSE2 (/arch:SSE2)"/>
+ </option>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.codegen"
+ command="/clr"
+ defaultValue="false"
+ id="org.eclipse.cdt.msvc.cl.option.clr"
+ name="Common Language Runtime (/clr)"
+ resourceFilter="all"
+ valueType="boolean"/>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.codegen"
+ command="/EHs"
+ defaultValue="true"
+ id="org.eclipse.cdt.msvc.cl.option.exceptions"
+ name="Enable C++ Exception Handling (/EHs)"
+ resourceFilter="all"
+ valueType="boolean"/>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.codegen"
+ commandFalse="/GR-"
+ defaultValue="true"
+ id="org.eclipse.cdt.msvc.cl.option.rtti"
+ name="Enable Run-Time Type Information (/GR)"
+ resourceFilter="all"
+ valueType="boolean"/>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.codegen"
+ id="org.eclipse.cdt.msvc.cl.option.runtime"
+ name="Run-Time Library"
+ resourceFilter="all"
+ valueType="enumerated">
+ <enumeratedOptionValue
+ command="/MT"
+ id="org.eclipse.cdt.msvc.cl.option.runtime.mt"
+ isDefault="false"
+ name="Multi-Threaded Static (/MT)"/>
+ <enumeratedOptionValue
+ command="/MTd"
+ id="org.eclipse.cdt.msvc.cl.option.runtime.mtd"
+ isDefault="false"
+ name="Multi-Threaded Static Debug (/MTd)"/>
+ <enumeratedOptionValue
+ command="/MD"
+ id="org.eclipse.cdt.msvc.cl.option.runtime.md"
+ isDefault="true"
+ name="Multi-Threaded DLL (/MD)"/>
+ <enumeratedOptionValue
+ command="/MDd"
+ id="org.eclipse.cdt.msvc.cl.option.runtime.mdd"
+ isDefault="false"
+ name="Multi-Threaded DLL Debug (/MDd)"/>
+ </option>
+ <optionCategory
+ id="org.eclipse.cdt.msvc.cl.optionCategory.debug"
+ name="Debugging"/>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.debug"
+ id="org.eclipse.cdt.msvc.cl.option.debugFormat"
+ name="Debug Information Format"
+ resourceFilter="all"
+ valueType="enumerated">
+ <enumeratedOptionValue
+ id="org.eclipse.cdt.msvc.cl.option.debugFormat.none"
+ isDefault="true"
+ name="None"/>
+ <enumeratedOptionValue
+ command="/Z7"
+ id="org.eclipse.cdt.msvc.cl.option.debugFormat.c7"
+ isDefault="false"
+ name="C7 Compatible (/Z7)"/>
+ <enumeratedOptionValue
+ command="/Zi"
+ id="org.eclipse.cdt.msvc.cl.option.debugFormat.complete"
+ isDefault="false"
+ name="Complete (/Zi)"/>
+ <enablement
+ attribute="value"
+ extensionAdjustment="false"
+ type="CONTAINER_ATTRIBUTE"
+ value="org.eclipse.cdt.msvc.cl.option.debugFormat.none">
+ <checkBuildProperty
+ property="org.eclipse.cdt.build.core.buildType"
+ value="org.eclipse.cdt.build.core.buildType.release">
+ </checkBuildProperty>
+ </enablement>
+ <enablement
+ attribute="value"
+ extensionAdjustment="false"
+ type="CONTAINER_ATTRIBUTE"
+ value="org.eclipse.cdt.msvc.cl.option.debugFormat.complete">
+ <checkBuildProperty
+ property="org.eclipse.cdt.build.core.buildType"
+ value="org.eclipse.cdt.build.core.buildType.debug">
+ </checkBuildProperty>
+ </enablement>
+ </option>
+ <optionCategory
+ id="org.eclipse.cdt.msvc.cl.optionCategory.preprocessor"
+ name="Preprocessor"/>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.preprocessor"
+ command="/D"
+ id="org.eclipse.cdt.msvc.cl.option.macros"
+ name="Defines (/D)"
+ resourceFilter="all"
+ valueType="definedSymbols"/>
+ <option
+ browseType="directory"
+ category="org.eclipse.cdt.msvc.cl.optionCategory.preprocessor"
+ command="/I"
+ id="org.eclipse.cdt.msvc.cl.option.includes"
+ name="Include Path (/I)"
+ resourceFilter="all"
+ valueType="includePath"/>
+ <optionCategory
+ id="org.eclipse.cdt.msvc.cl.optionCategory.language"
+ name="Language"/>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.language"
+ command="/openmp"
+ defaultValue="false"
+ id="org.eclipse.cdt.msvc.cl.option.openmp"
+ name="Enable OpenMP (/openmp)"
+ resourceFilter="all"
+ valueType="boolean"/>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.language"
+ commandFalse="/Za"
+ defaultValue="true"
+ id="org.eclipse.cdt.msvc.cl.option.langExtensions"
+ name="Enable Language Extensions (/Ze,/Za)"
+ resourceFilter="all"
+ valueType="boolean"/>
+ <optionCategory
+ id="org.eclipse.cdt.msvc.cl.optionCategory.miscellaneous"
+ name="Miscellaneous"/>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.miscellaneous"
+ command="/nologo"
+ defaultValue="true"
+ id="org.eclipse.cdt.msvc.cl.option.nologo"
+ name="Suppress Banner (/nologo)"
+ resourceFilter="all"
+ valueType="boolean"/>
+ <option
+ category="org.eclipse.cdt.msvc.cl.optionCategory.miscellaneous"
+ id="org.eclipse.cdt.msvc.cl.option.others"
+ name="Other Options"
+ resourceFilter="all"
+ valueType="stringList"/>
+ <inputType
+ dependencyContentType="org.eclipse.cdt.core.cxxHeader"
+ id="org.eclipse.cdt.msvc.cl.inputType"
+ scannerConfigDiscoveryProfileId="org.eclipse.cdt.msvc.build.clScannerInfo"
+ sourceContentType="org.eclipse.cdt.core.cxxSource">
+ </inputType>
+ <outputType
+ id="org.eclipse.cdt.msvc.cl.outputType"
+ outputs="obj">
+ </outputType>
+ </tool>
+ <tool
+ command="rc"
+ errorParsers="org.eclipse.cdt.core.VCErrorParser"
+ id="org.eclipse.cdt.msvc.rc"
+ name="%rc.name"
+ natureFilter="both"
+ outputFlag="/Fo"
+ >
+ <optionCategory
+ id="org.eclipse.cdt.msvc.rc.optionCategory.preprocessor"
+ name="Preprocessor"/>
+ <option
+ browseType="directory"
+ category="org.eclipse.cdt.msvc.rc.optionCategory.preprocessor"
+ command="/I"
+ id="org.eclipse.cdt.msvc.rc.option.includes"
+ name="Include Path (/I)"
+ resourceFilter="all"
+ valueType="includePath"/>
+ <option
+ category="org.eclipse.cdt.msvc.rc.optionCategory.preprocessor"
+ command="/D"
+ id="org.eclipse.cdt.msvc.rc.option.defines"
+ name="Defines (/D)"
+ resourceFilter="all"
+ valueType="definedSymbols"/>
+ <optionCategory
+ id="org.eclipse.cdt.msvc.rc.optionCategory.misc"
+ name="Miscellaneous"/>
+ <option
+ category="org.eclipse.cdt.msvc.rc.optionCategory.misc"
+ id="org.eclipse.cdt.msvc.rc.option.others"
+ name="Other Options"
+ resourceFilter="all"
+ valueType="stringList"/>
+ <inputType
+ id="org.eclipse.cdt.msvc.rc.inputType"
+ sources="rc">
+ </inputType>
+ <outputType
+ id="org.eclipse.cdt.msvc.rc.outputType"
+ outputs="res">
+ </outputType>
+ </tool>
+ <tool
+ command="link"
+ errorParsers="org.eclipse.cdt.core.VCErrorParser"
+ id="org.eclipse.cdt.msvc.link"
+ name="%linker.name"
+ natureFilter="both"
+ outputFlag="/OUT:"
+ >
+ <supportedProperties>
+ <property
+ id="org.eclipse.cdt.build.core.buildArtefactType">
+ <value
+ id="org.eclipse.cdt.build.core.buildArtefactType.exe"></value>
+ <value
+ id="org.eclipse.cdt.build.core.buildArtefactType.sharedLib">
+ </value>
+ </property>
+ </supportedProperties>
+ <option
+ command="/DLL"
+ defaultValue="false"
+ id="org.eclipse.cdt.msvc.link.option.dll"
+ name="Build a DLL"
+ resourceFilter="all"
+ valueType="boolean">
+ <enablement
+ attribute="defaultValue"
+ extensionAdjustment="false"
+ type="CONTAINER_ATTRIBUTE"
+ value="true">
+ <checkBuildProperty
+ property="org.eclipse.cdt.build.core.buildArtefactType"
+ value="org.eclipse.cdt.build.core.buildArtefactType.sharedLib">
+ </checkBuildProperty>
+ </enablement>
+ </option>
+ <optionCategory
+ id="org.eclipse.cdt.msvc.link.optionCategory.general"
+ name="General"/>
+ <option
+ category="org.eclipse.cdt.msvc.link.optionCategory.general"
+ command="/debug"
+ defaultValue="false"
+ id="org.eclipse.cdt.msvc.link.option.debug"
+ name="Generate Debug Info (/debug)"
+ resourceFilter="all"
+ valueType="boolean"/>
+ <option
+ category="org.eclipse.cdt.msvc.link.optionCategory.general"
+ command="/nologo"
+ defaultValue="true"
+ id="org.eclipse.cdt.msvc.link.option.nologo"
+ name="Suppress Banner (/nologo)"
+ resourceFilter="all"
+ valueType="boolean"/>
+ <option
+ category="org.eclipse.cdt.msvc.link.optionCategory.general"
+ id="org.eclipse.cdt.msvc.link.option.others"
+ name="Other Options"
+ resourceFilter="all"
+ valueType="stringList"/>
+ <optionCategory
+ id="org.eclipse.cdt.msvc.link.optionCategory.libraries"
+ name="Libraries"/>
+ <option
+ browseType="directory"
+ category="org.eclipse.cdt.msvc.link.optionCategory.libraries"
+ command="/libpath:"
+ id="org.eclipse.cdt.msvc.link.option.libpath"
+ name="Additional Libpath (/libpath)"
+ resourceFilter="all"
+ valueType="stringList"/>
+ <option
+ browseType="file"
+ category="org.eclipse.cdt.msvc.link.optionCategory.libraries"
+ id="org.eclipse.cdt.msvc.link.option.libraries"
+ name="Libraries"
+ resourceFilter="all"
+ valueType="libs"/>
+ <inputType
+ id="org.eclipse.cdt.msvc.link.inputType"
+ multipleOfType="true"
+ sources="res,obj">
+ </inputType>
+ <outputType
+ id="org.eclipse.cdt.msvc.link.outputType"
+ outputs="exe">
+ </outputType>
+ <outputType
+ id="org.eclipse.cdt.msvc.link.outputType.dll"
+ outputs="dll">
+ </outputType>
+ </tool>
+ <tool
+ command="lib"
+ id="org.eclipse.cdt.msvc.lib"
+ name="%lib.name"
+ natureFilter="both"
+ outputFlag="/OUT:"
+ >
+ <supportedProperties>
+ <property
+ id="org.eclipse.cdt.build.core.buildArtefactType">
+ <value
+ id="org.eclipse.cdt.build.core.buildArtefactType.staticLib">
+ </value>
+ </property>
+ </supportedProperties>
+ <optionCategory
+ id="org.eclipse.cdt.msvc.lib.optionCategory.general"
+ name="General"/>
+ <option
+ category="org.eclipse.cdt.msvc.lib.optionCategory.general"
+ command="/nologo"
+ defaultValue="true"
+ id="org.eclipse.cdt.msvc.lib.option.nologo"
+ name="Suppress Banner (/nologo)"
+ resourceFilter="all"
+ valueType="boolean"/>
+ <inputType
+ id="org.eclipse.cdt.msvc.lib.inputType"
+ sources="obj,res">
+ </inputType>
+ <outputType
+ id="org.eclipse.cdt.msvc.lib.outputType"
+ outputs="lib">
+ </outputType>
+ </tool>
+ </toolChain>
+ <configuration
+ artifactExtension="exe"
+ id="org.eclipse.cdt.msvc.configuration">
+ <enablement
+ attribute="artifactExtension"
+ extensionAdjustment="false"
+ type="CONTAINER_ATTRIBUTE"
+ value="dll">
+ <checkBuildProperty
+ property="org.eclipse.cdt.build.core.buildArtefactType"
+ value="org.eclipse.cdt.build.core.buildArtefactType.sharedLib"></checkBuildProperty>
+ </enablement>
+ <enablement
+ attribute="artifactExtension"
+ extensionAdjustment="false"
+ type="CONTAINER_ATTRIBUTE"
+ value="lib">
+ <checkBuildProperty
+ property="org.eclipse.cdt.build.core.buildArtefactType"
+ value="org.eclipse.cdt.build.core.buildArtefactType.staticLib"></checkBuildProperty>
+ </enablement>
+ </configuration>
+ <projectType
+ buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe"
+ id="org.eclipse.cdt.msvc.projectType.exe"
+ projectEnvironmentSupplier="org.eclipse.cdt.msw.build.WinEnvironmentVariableSupplier">
+ <configuration
+ buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"
+ id="org.eclipse.cdt.msvc.exe.debug"
+ name="%config.debug"
+ parent="org.eclipse.cdt.msvc.configuration">
+ <toolChain
+ id="org.eclipse.cdt.msvc.toolchain.exe.debug"
+ superClass="org.eclipse.cdt.msvc.toolchain.base">
+ <targetPlatform
+ id="org.eclipse.cdt.msvc.targetPlatform.exe.debug"
+ superClass="org.eclipse.cdt.msvc.targetPlatform">
+ </targetPlatform>
+ <tool
+ id="org.eclipse.cdt.msvc.cl.exe.debug"
+ superClass="org.eclipse.cdt.msvc.cl">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.rc.exe.debug"
+ superClass="org.eclipse.cdt.msvc.rc">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.link.exe.debug"
+ superClass="org.eclipse.cdt.msvc.link">
+ </tool>
+ </toolChain>
+ </configuration>
+ <configuration
+ buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"
+ id="org.eclipse.cdt.msvc.exe.release"
+ name="%config.release"
+ parent="org.eclipse.cdt.msvc.configuration">
+ <toolChain
+ id="org.eclipse.cdt.msvc.toolchain.exe.release"
+ superClass="org.eclipse.cdt.msvc.toolchain.base">
+ <targetPlatform
+ id="org.eclipse.cdt.msvc.targetPlatform.exe.release"
+ superClass="org.eclipse.cdt.msvc.targetPlatform">
+ </targetPlatform>
+ <tool
+ id="org.eclipse.cdt.msvc.cl.exe.release"
+ superClass="org.eclipse.cdt.msvc.cl">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.rc.exe.release"
+ superClass="org.eclipse.cdt.msvc.rc">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.link.exe.release"
+ superClass="org.eclipse.cdt.msvc.link">
+ </tool>
+ </toolChain>
+ </configuration>
+ </projectType>
+ <projectType
+ buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.sharedLib"
+ id="org.eclipse.cdt.msvc.projectType.dll"
+ projectEnvironmentSupplier="org.eclipse.cdt.msw.build.WinEnvironmentVariableSupplier">
+ <configuration
+ buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"
+ id="org.eclipse.cdt.msvc.dll.debug"
+ name="%config.debug"
+ parent="org.eclipse.cdt.msvc.configuration">
+ <toolChain
+ id="org.eclipse.cdt.msvc.toolchain.dll.debug"
+ superClass="org.eclipse.cdt.msvc.toolchain.base">
+ <targetPlatform
+ id="org.eclipse.cdt.msvc.targetPlatform.dll.debug"
+ superClass="org.eclipse.cdt.msvc.targetPlatform">
+ </targetPlatform>
+ <tool
+ id="org.eclipse.cdt.msvc.cl.dll.debug"
+ superClass="org.eclipse.cdt.msvc.cl">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.rc.dll.debug"
+ superClass="org.eclipse.cdt.msvc.rc">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.link.dll.debug"
+ superClass="org.eclipse.cdt.msvc.link">
+ </tool>
+ </toolChain>
+ </configuration>
+ <configuration
+ buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"
+ id="org.eclipse.cdt.msvc.dll.release"
+ name="%config.release"
+ parent="org.eclipse.cdt.msvc.configuration">
+ <toolChain
+ id="org.eclipse.cdt.msvc.toolchain.dll.release"
+ superClass="org.eclipse.cdt.msvc.toolchain.base">
+ <targetPlatform
+ id="org.eclipse.cdt.msvc.targetPlatform.dll.release"
+ superClass="org.eclipse.cdt.msvc.targetPlatform">
+ </targetPlatform>
+ <tool
+ id="org.eclipse.cdt.msvc.cl.dll.release"
+ superClass="org.eclipse.cdt.msvc.cl">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.rc.dll.release"
+ superClass="org.eclipse.cdt.msvc.rc">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.link.dll.release"
+ superClass="org.eclipse.cdt.msvc.link">
+ </tool>
+ </toolChain>
+ </configuration>
+ </projectType>
+ <projectType
+ buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib"
+ id="org.eclipse.cdt.msvc.projectType.lib"
+ projectEnvironmentSupplier="org.eclipse.cdt.msw.build.WinEnvironmentVariableSupplier">
+ <configuration
+ buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"
+ id="org.eclipse.cdt.msvc.lib.debug"
+ name="%config.debug"
+ parent="org.eclipse.cdt.msvc.configuration">
+ <toolChain
+ id="org.eclipse.cdt.msvc.toolchain.lib.debug"
+ superClass="org.eclipse.cdt.msvc.toolchain.base">
+ <targetPlatform
+ id="org.eclipse.cdt.msvc.targetPlatform.lib.debug"
+ superClass="org.eclipse.cdt.msvc.targetPlatform">
+ </targetPlatform>
+ <tool
+ id="org.eclipse.cdt.msvc.cl.lib.debug"
+ superClass="org.eclipse.cdt.msvc.cl">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.rc.lib.debug"
+ superClass="org.eclipse.cdt.msvc.rc">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.lib.lib.debug"
+ superClass="org.eclipse.cdt.msvc.lib">
+ </tool>
+ </toolChain>
+ </configuration>
+ <configuration
+ buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"
+ id="org.eclipse.cdt.msvc.lib.release"
+ name="%config.release"
+ parent="org.eclipse.cdt.msvc.configuration">
+ <toolChain
+ id="org.eclipse.cdt.msvc.toolchain.lib.release"
+ superClass="org.eclipse.cdt.msvc.toolchain.base">
+ <targetPlatform
+ id="org.eclipse.cdt.msvc.targetPlatform.lib.release"
+ superClass="org.eclipse.cdt.msvc.targetPlatform">
+ </targetPlatform>
+ <tool
+ id="org.eclipse.cdt.msvc.cl.lib.release"
+ superClass="org.eclipse.cdt.msvc.cl">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.rc.lib.release"
+ superClass="org.eclipse.cdt.msvc.rc">
+ </tool>
+ <tool
+ id="org.eclipse.cdt.msvc.lib.lib.release"
+ superClass="org.eclipse.cdt.msvc.lib">
+ </tool>
+ </toolChain>
+ </configuration>
+ </projectType>
+ </extension>
+ <extension
+ id="clScannerInfo"
+ name="Windows SDK Scanner Info Provider"
+ point="org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile">
+ <scannerInfoCollector
+ class="org.eclipse.cdt.msw.build.WinScannerInfoCollector"
+ scope="project">
+ </scannerInfoCollector>
+ </extension>
+
+</plugin>
diff --git a/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/Activator.java b/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/Activator.java
new file mode 100644
index 0000000000..c9e6ca453f
--- /dev/null
+++ b/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.cdt.msw.build;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends Plugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "net.sf.wascana.msvc.build";
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinDiscoveredPathInfo.java b/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinDiscoveredPathInfo.java
new file mode 100644
index 0000000000..f873465c22
--- /dev/null
+++ b/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinDiscoveredPathInfo.java
@@ -0,0 +1,59 @@
+package org.eclipse.cdt.msw.build;
+
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo;
+import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredScannerInfoSerializable;
+import org.eclipse.cdt.utils.WindowsRegistry;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+
+/**
+ * @author Doug Schaefer
+ *
+ */
+public class WinDiscoveredPathInfo implements IDiscoveredPathInfo {
+
+ private final IPath[] paths;
+ private final Map<String, String> symbols = new HashMap<String, String>();
+
+ public WinDiscoveredPathInfo() {
+ WindowsRegistry reg = WindowsRegistry.getRegistry();
+
+ // Include paths
+ String sdkDir = reg.getLocalMachineValue("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.0", "InstallationFolder");
+ if (sdkDir == null)
+ sdkDir = reg.getLocalMachineValue("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.1", "InstallationFolder");
+
+ paths = new IPath[] {
+ new Path(sdkDir.concat("\\VC\\Include")),
+ new Path(sdkDir.concat("\\VC\\Include\\Sys")),
+ new Path(sdkDir.concat("\\Include")),
+ new Path(sdkDir.concat("\\Include\\gl"))
+ };
+
+ symbols.put("_M_IX86", "600");
+ symbols.put("_WIN32", "1");
+ symbols.put("_MSC_VER", "1400");
+ }
+
+ public IPath[] getIncludePaths() {
+ return paths;
+ }
+
+ public IProject getProject() {
+ return null;
+ }
+
+ public IDiscoveredScannerInfoSerializable getSerializable() {
+ return null;
+ }
+
+ public Map<String, String> getSymbols() {
+ return symbols;
+ }
+
+}
diff --git a/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinEnvironmentVariableSupplier.java b/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinEnvironmentVariableSupplier.java
new file mode 100644
index 0000000000..25ed330d7a
--- /dev/null
+++ b/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinEnvironmentVariableSupplier.java
@@ -0,0 +1,118 @@
+package org.eclipse.cdt.msw.build;
+
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
+import org.eclipse.cdt.managedbuilder.core.IManagedProject;
+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.managedbuilder.envvar.IProjectEnvironmentVariableSupplier;
+import org.eclipse.cdt.utils.WindowsRegistry;
+
+/**
+ * @author DSchaefer
+ *
+ */
+public class WinEnvironmentVariableSupplier
+ implements IConfigurationEnvironmentVariableSupplier, IProjectEnvironmentVariableSupplier {
+
+ private Map<String, IBuildEnvironmentVariable> envvars;
+
+ private static class WindowsBuildEnvironmentVariable implements IBuildEnvironmentVariable {
+
+ private final String name;
+ private final String value;
+ private final int operation;
+
+ public WindowsBuildEnvironmentVariable(String name, String value, int operation) {
+ this.name = name;
+ this.value = value;
+ this.operation = operation;
+ }
+
+ public String getDelimiter() {
+ return ";";
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public int getOperation() {
+ return operation;
+ }
+
+ }
+
+ public IBuildEnvironmentVariable getVariable(String variableName,
+ IManagedProject project, IEnvironmentVariableProvider provider) {
+ if (envvars == null)
+ initvars();
+ return envvars.get(variableName);
+ }
+
+ public IBuildEnvironmentVariable getVariable(String variableName,
+ IConfiguration configuration, IEnvironmentVariableProvider provider) {
+ if (envvars == null)
+ initvars();
+ return envvars.get(variableName);
+ }
+
+ public IBuildEnvironmentVariable[] getVariables(IManagedProject project,
+ IEnvironmentVariableProvider provider) {
+ if (envvars == null)
+ initvars();
+ return envvars.values().toArray(new IBuildEnvironmentVariable[envvars.size()]);
+ }
+
+ public IBuildEnvironmentVariable[] getVariables(
+ IConfiguration configuration, IEnvironmentVariableProvider provider) {
+ if (envvars == null)
+ initvars();
+ return envvars.values().toArray(new IBuildEnvironmentVariable[envvars.size()]);
+ }
+
+ private void addvar(IBuildEnvironmentVariable var) {
+ envvars.put(var.getName(), var);
+ }
+
+ private void initvars() {
+ envvars = new HashMap<String, IBuildEnvironmentVariable>();
+
+ StringBuffer buff;
+ WindowsRegistry reg = WindowsRegistry.getRegistry();
+
+ // The SDK Location
+ String sdkDir = reg.getLocalMachineValue("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.0", "InstallationFolder");
+ if (sdkDir == null)
+ sdkDir = reg.getLocalMachineValue("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.1", "InstallationFolder");
+
+ // INCLUDE
+ buff = new StringBuffer();
+ buff.append(sdkDir).append("VC\\Include;");
+ buff.append(sdkDir).append("VC\\Include\\Sys;");
+ buff.append(sdkDir).append("Include;");
+ buff.append(sdkDir).append("Include\\gl;");
+ addvar(new WindowsBuildEnvironmentVariable("INCLUDE", buff.toString(), IBuildEnvironmentVariable.ENVVAR_PREPEND));
+
+ // LIB
+ buff = new StringBuffer();
+ buff.append(sdkDir).append("VC\\Lib;");
+ buff.append(sdkDir).append("Lib;");
+ addvar(new WindowsBuildEnvironmentVariable("LIB", buff.toString(), IBuildEnvironmentVariable.ENVVAR_PREPEND));
+
+ // PATH
+ buff = new StringBuffer();
+ buff.append(sdkDir).append("VC\\Bin;");
+ buff.append(sdkDir).append("Bin;");
+ addvar(new WindowsBuildEnvironmentVariable("PATH", buff.toString(), IBuildEnvironmentVariable.ENVVAR_PREPEND));
+ }
+
+}
diff --git a/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinScannerInfoCollector.java b/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinScannerInfoCollector.java
new file mode 100644
index 0000000000..e955c51202
--- /dev/null
+++ b/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/WinScannerInfoCollector.java
@@ -0,0 +1,41 @@
+package org.eclipse.cdt.msw.build;
+
+
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector3;
+import org.eclipse.cdt.make.core.scannerconfig.InfoContext;
+import org.eclipse.cdt.make.core.scannerconfig.ScannerInfoTypes;
+import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+/**
+ * @author Doug Schaefer
+ *
+ */
+public class WinScannerInfoCollector implements IScannerInfoCollector3 {
+
+ public void contributeToScannerConfig(Object resource, Map scannerInfo) {
+ }
+
+ public List getCollectedScannerInfo(Object resource, ScannerInfoTypes type) {
+ return null;
+ }
+
+ public IDiscoveredPathInfo createPathInfoObject() {
+ return new WinDiscoveredPathInfo();
+ }
+
+ public void setInfoContext(InfoContext context) {
+ }
+
+ public void setProject(IProject project) {
+ }
+
+ public void updateScannerConfiguration(IProgressMonitor monitor) throws CoreException {
+ }
+
+}

Back to the top