OOoEclipse talks now C++

1,001 views

Published on

OOEclipse now speaks C++

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,001
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

OOoEclipse talks now C++

  1. 1. OOEclipse now speaks C++ Fresh news from the project Cédric Bosdonnat Software developer [email_address]
  2. 2. Agenda <ul><li>OOEclipse overview </li><ul><li>Eclipse development basics
  3. 3. OOEclipse architecture
  4. 4. Supporting a new language </li></ul><li>Support of C++ </li><ul><li>State of the support
  5. 5. What is next
  6. 6. Demonstration </li></ul><li>Project news </li><ul><li>Other features
  7. 7. Project's life </li></ul></ul>
  8. 8. Who am I? <ul><li>In the OpenOffice.org community since 2005 </li><ul><li>Started developing on OOEclipse with Gsoc 2005
  9. 9. Organized OOoCon 2006 in Lyon
  10. 10. Basic macro & Java extension developer during some time </li></ul><li>Writer hacker </li><ul><li>Working at Novell since end of 2008
  11. 11. Fixing the docx import
  12. 12. Started some work around AutoCorrection for french
  13. 13. Other small writer stuffs </li></ul><li>A happy father </li></ul>
  14. 14. OOEclipse overview
  15. 15. Eclipse development basics <ul><li>Everything is plugin </li><ul><li>Eclipse runtime
  16. 16. Every other feature is one (or more) plugin(s) </li><ul><li>Language supports: JDT (Java), CDT (C++)
  17. 17. Team work: CVS, SVN, Git plugins </li></ul></ul><li>A plugin's content </li><ul><li>An activator class (un)activating the plugin
  18. 18. A manifest file for the dependencies
  19. 19. A plugin.xml file </li><ul><li>Lists the extension points used
  20. 20. Makes the link with the plugin code </li></ul></ul></ul>
  21. 21. Sample plugin.xml fragment
  22. 22. OOEclipse architecture <ul><li>Several Eclipse plugins </li><ul><li>Core plugin </li><ul><li>Implements the common UNO features
  23. 23. Defines a language extension point </li></ul><li>Language plugins </li><ul><li>Uses the language extension point
  24. 24. Add other language specific features </li><ul><li>UNO Clients
  25. 25. Run / debug configuration </li></ul></ul></ul><li>Code generation </li><ul><li>uno-skeletonmaker </li><ul><li>Tool from the OpenOffice.org SDK
  26. 26. Used by the other IDEs </li></ul></ul></ul>Core Java Cpp
  27. 27. Supporting a new language <ul><li>Create a new Eclipse plugin </li><ul><li>Add the core plugin in the dependencies
  28. 28. Implement the Language extension point </li></ul><li>Check list before implementation </li><ul><li>OpenOffice.org support </li><ul><li>Existence of a UNO bridge (of course)
  29. 29. Language supported by uno-skeletonmaker ( only C++ and Java currently ) </li></ul><li>Eclipse support </li><ul><li>Existence of Eclipse plugins for general support of the language
  30. 30. Possibility to extend these plugins </li></ul></ul></ul>
  31. 31. Support of C++
  32. 32. State of the support <ul><li>C++ Extension </li><ul><li>Project configuration </li><ul><li>CDT documentation is quite seldom
  33. 33. Creating a separate project for the UNO types includes and libraries links
  34. 34. The C++ skeleton for the service is generated </li></ul><li>Project is building </li></ul><li>UNO C++ client </li><ul><li>Project creation </li><ul><li>Standard C++ project with the proper configuration
  35. 35. Reusing the separate project for the UNO types includes </li></ul><li>Execution & Cheat sheet </li><ul><li>No clean way to automatically add the correct environment variables </li></ul></ul></ul>
  36. 36. What's next ? <ul><li>Complete the packaging </li><ul><li>The uno-skeletonmaker generated code isn't flexible </li><ul><li>Can't support several services
  37. 37. Would need to have all the implementation in a single file </li></ul><li>Changes on the uno-skeletonmaker </li><ul><li>Add a new registration command </li><ul><li>generate the registration methods in a separate file for all the services
  38. 38. Could reuse the existing utility methods generated for each implementation </li></ul><li>Remove the current registration methods </li></ul></ul><li>User experience </li><ul><li>Add help pointing to UNO C++ wiki pages </li></ul></ul>
  39. 39. Demonstration
  40. 40. Project news
  41. 41. Other features <ul><li>Java UNO Client </li><ul><li>Extended the Java project creation wizard
  42. 42. Project configuration </li><ul><li>Normal Java project
  43. 43. Adding some classes from JODConverter in a JAR file
  44. 44. Adding the OpenOffice.org libraries </li></ul></ul><li>description.xml editor </li><ul><li>Developed during a HackWeek at Novell
  45. 45. File generated in each new project
  46. 46. Simple form editor </li></ul></ul>
  47. 47. Editor screenshot
  48. 48. Project's life <ul><li>Sources moved in ooo-build Git </li><ul><li>Moved from CVS to Git </li><ul><li>Browse sources: http://cgit.freedesktop.org/ooo-build/contrib/ooeclipse
  49. 49. git clone git://anongit.freedesktop.org/ooo-build/contrib/ooeclipse </li></ul><li>Show OOEclipse as an independent project </li><ul><li>No synchronization with OpenOffice.org release
  50. 50. Independent Git repository </li></ul></ul><li>New configurable uno-skeletonmaker POC </li><ul><li>Goals </li><ul><li>Ability to add a language with only template files
  51. 51. Possiblity to tweak the templates to fit coding style </li></ul><li>Quick progress </li></ul></ul>
  52. 52. Question & Answers
  53. 54. Unpublished Work of Novell, 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.

×