OOEclipse now speaks C++ Fresh news from the project Cédric Bosdonnat Software developer [email_address]
Agenda OOEclipse overview Eclipse development basics
OOEclipse architecture
Supporting a new language Support of C++ State of the support
What is next
Demonstration Project news Other features
Project's life
Who am I? In the OpenOffice.org community since 2005 Started developing on OOEclipse with Gsoc 2005
Organized OOoCon 2006 in Lyon
Basic macro & Java extension developer during some time Writer hacker Working at Novell since end of 2008
Fixing the docx import
Started some work around AutoCorrection for french
Other small writer stuffs A happy father
OOEclipse overview
Eclipse development basics Everything is plugin Eclipse runtime
Every other feature is one (or more) plugin(s) Language supports: JDT (Java), CDT (C++)
Team work: CVS, SVN, Git plugins A plugin's content An  activator class  (un)activating the plugin
A  manifest  file for the dependencies
A  plugin.xml  file Lists the extension points used

OOoEclipse talks now C++

  • 1.
    OOEclipse now speaksC++ Fresh news from the project Cédric Bosdonnat Software developer [email_address]
  • 2.
    Agenda OOEclipse overviewEclipse development basics
  • 3.
  • 4.
    Supporting a newlanguage Support of C++ State of the support
  • 5.
  • 6.
  • 7.
  • 8.
    Who am I?In the OpenOffice.org community since 2005 Started developing on OOEclipse with Gsoc 2005
  • 9.
  • 10.
    Basic macro &Java extension developer during some time Writer hacker Working at Novell since end of 2008
  • 11.
  • 12.
    Started some workaround AutoCorrection for french
  • 13.
    Other small writerstuffs A happy father
  • 14.
  • 15.
    Eclipse development basicsEverything is plugin Eclipse runtime
  • 16.
    Every other featureis one (or more) plugin(s) Language supports: JDT (Java), CDT (C++)
  • 17.
    Team work: CVS,SVN, Git plugins A plugin's content An activator class (un)activating the plugin
  • 18.
    A manifest file for the dependencies
  • 19.
    A plugin.xml file Lists the extension points used
  • 20.
    Makes the linkwith the plugin code
  • 21.
  • 22.
    OOEclipse architecture SeveralEclipse plugins Core plugin Implements the common UNO features
  • 23.
    Defines a languageextension point Language plugins Uses the language extension point
  • 24.
    Add other languagespecific features UNO Clients
  • 25.
    Run / debugconfiguration Code generation uno-skeletonmaker Tool from the OpenOffice.org SDK
  • 26.
    Used by theother IDEs Core Java Cpp
  • 27.
    Supporting a newlanguage Create a new Eclipse plugin Add the core plugin in the dependencies
  • 28.
    Implement the Languageextension point Check list before implementation OpenOffice.org support Existence of a UNO bridge (of course)
  • 29.
    Language supported by uno-skeletonmaker ( only C++ and Java currently ) Eclipse support Existence of Eclipse plugins for general support of the language
  • 30.
    Possibility to extendthese plugins
  • 31.
  • 32.
    State of thesupport C++ Extension Project configuration CDT documentation is quite seldom
  • 33.
    Creating a separateproject for the UNO types includes and libraries links
  • 34.
    The C++ skeletonfor the service is generated Project is building UNO C++ client Project creation Standard C++ project with the proper configuration
  • 35.
    Reusing the separateproject for the UNO types includes Execution & Cheat sheet No clean way to automatically add the correct environment variables
  • 36.
    What's next ?Complete the packaging The uno-skeletonmaker generated code isn't flexible Can't support several services
  • 37.
    Would need tohave all the implementation in a single file Changes on the uno-skeletonmaker Add a new registration command generate the registration methods in a separate file for all the services
  • 38.
    Could reuse theexisting utility methods generated for each implementation Remove the current registration methods User experience Add help pointing to UNO C++ wiki pages
  • 39.
  • 40.
  • 41.
    Other features JavaUNO Client Extended the Java project creation wizard
  • 42.
  • 43.
    Adding some classesfrom JODConverter in a JAR file
  • 44.
    Adding the OpenOffice.orglibraries description.xml editor Developed during a HackWeek at Novell
  • 45.
    File generated ineach new project
  • 46.
  • 47.
  • 48.
    Project's life Sourcesmoved in ooo-build Git Moved from CVS to Git Browse sources: http://cgit.freedesktop.org/ooo-build/contrib/ooeclipse
  • 49.
    git clone git://anongit.freedesktop.org/ooo-build/contrib/ooeclipseShow OOEclipse as an independent project No synchronization with OpenOffice.org release
  • 50.
    Independent Git repositoryNew configurable uno-skeletonmaker POC Goals Ability to add a language with only template files
  • 51.
    Possiblity to tweakthe templates to fit coding style Quick progress
  • 52.
  • 53.
  • 54.
    Unpublished Work ofNovell, Inc. All Rights Reserved. This work is an unpublished work and contains confidential, proprietary, and trade secret information of Novell, Inc. Access to this work is restricted to Novell employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of Novell, Inc. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. General Disclaimer This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. Novell, Inc. makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for Novell products remains at the sole discretion of Novell. Further, Novell, Inc. reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All Novell marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.