17
© 2008 Intel Corporation; made available under the EPL v1.0 | February 12, 2008 | Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT

Embed Size (px)

DESCRIPTION

Integrating a custom tool-chain in CDT. Instructors. Mikhail Sennikovsky Intel Corporation CDT Committer [email protected] Mikhail Voronin Intel Corporation [email protected]. Agenda. The purpose of the tutorial Tools integration in CDT CDT Infrastructure outline - PowerPoint PPT Presentation

Citation preview

Page 1: Integrating a custom tool-chain in CDT

© 2008 Intel Corporation; made available under the EPL v1.0 | February 12, 2008 |

Integrating a custom tool-chain in CDT

Page 2: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Instructors

Mikhail Sennikovsky

Intel Corporation

CDT Committer

[email protected]

Mikhail Voronin

Intel Corporation

[email protected]

Page 3: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Agenda

• The purpose of the tutorial• Tools integration in CDT• CDT Infrastructure outline• Tool-chain integration mechanism• Tutorials

Tutorial 1: Two-step tool-chain definition Tutorial 2: Populating tool-chain with the settings info Tutorial 3: Extending tool-chain to support “Managed” Build Tutorial 4: Advanced “Managed” Build settings customization Tutorial 5: API overview

• Q & A

Page 4: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Purpose

• Understand the CDT tool-chain integration mechanism• Learn how to make a deep integration of a custom

tool-chain into the CDT

Page 5: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Tools integration in CDT

• Multi-language support C/C++ IDE becomes Compiled Languages IDE Photran based on CDT

• Compilers co-existence Can easily switch from gcc to another integrated compiler Per-folder/file settings

• Debuggers Potentially other debuggers than gdb can be integrated as

well

• Builders GNU Make and Internal builder are available by default CDT is open for others!

Page 6: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Way to integrate

• Compiler’s example: Adding Language entry Build options definitions in MBS Information on built-in symbols and includes Build environment Error parser

Page 7: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

CDT Infrastructure outlineCDT Core•Project settings infrastructure •Source Code navigation/manipulation•Binary file navigation

CDT Build System•Build Functionality•Providing tool-chain settings to the core and debug components

CDT Debug

CConfigurationDataProvider mechanism

buildDefinitions mechanism

Tool-chain Definitions

Page 8: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Tool-chain integration mechanism• Build System customization

Build behavior definition Build behavior and logic for “Managed” Builds Build command for “Standard” Builds

Build Settings UI for “Managed” builds Integration in the New Project Wizard

• Providing settings to other parts of the CDT Is a profile for holding settings: Built-in Includes and Symbols, Build Environment,

Error parsers, Binary parsers Defined by the tool-chain integrator Customizable for specific project Settings get applied when the toolchain is assigned to the project

On project creation On tool-chain substitution/modification

Page 9: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Build behavior definition (Managed Build) for Intel Fortran compiler

Tool Defintion (plugin.xml)

Tool option values defintion (.cproject)

Project Build Setting UI

Generated makefile

<tool ... id="photran.managedbuild.tool.intel.fortran.compiler" name="Intel Fortran Compiler“ command="ifort"> ... <option command="-I" id="intel.linux.fortran.compiler.preprocessor.includedirectories" name="Additional Include Directories (-I)" valueType="includePath“ browseType="directory">

<tool ...superClass="photran.managedbuild.tool.intel.fortran.compiler"><option ...superClass="intel.linux.fortran.compiler.preprocessor.includedirectories"><listOptionValue value="c:\test\dir"/>...

Page 10: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

New Project Wizard customization for Intel Fortran compiler

<extension point="org.eclipse.cdt.managedbuilder.core.buildProperties" ...> ... <propertyType id="org.eclipse.cdt.build.core.buildArtefactType" name="%BuildProperty.type.name.buildArtefactType"/>

<propertyValue property="org.eclipse.cdt.build.core.buildArtefactType" id="org.eclipse.cdt.build.core.buildArtefactType.exe" name="Executable"/>

</extension>

<projectType buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" ... > <configuration ...> <toolChain name="Intel IA-32 Fortran Tool Chain" ...>

...

New Project WizardProject Type definition

Build Artifact type definition

Page 11: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Tutorials

• Tutorial 1: Two-step tool-chain definition• Tutorial 2: Populating tool-chain with the settings info• Tutorial 3: Extending tool-chain to support “Managed”

Build• Tutorial 4: Advanced “Managed” Build settings

customization• Tutorial 5: API overview

Page 12: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Tutorial 1: Two-step tool-chain definition

• Tool-chain• Builder• Tools

Page 13: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Tutorial 2: Populating tool-chain with the settings info

• Tool-chain Binary parsers Build environment

• Builder Build command Build behavior for each eclipse build type Builder error parser

• Tools Error parsers Built-in Includes/Symbols discovery

Page 14: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Tutorial 3: Extending tool-chain to support “Managed” Build

• Builder Buildfile generator CDT Internal Builder

• Tools Options

• Project-type

Page 15: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Tutorial 4: Advanced “Managed” Build settings customization

• Build settings and behavior Option enablement expressions Option value handlers Option applicability calculators

• New Project Wizard integration

Page 16: Integrating a custom tool-chain in CDT

Integrating a custom tool-chain in CDT | © 2008 Intel Corporation; made available under the EPL v1.0

Tutorial 5: API overview

• Build System API ManagedBuildManager

• Using Core API for accessing/modifying the Build settings

ICProjectDescriptionManager

Page 17: Integrating a custom tool-chain in CDT

© 2008 Intel Corporation; made available under the EPL v1.0 | February 12, 2008 |

Q & A