Upload
gaetanmorice
View
607
Download
2
Tags:
Embed Size (px)
Citation preview
Page
Software Packet ManagerUse EMF and P2 to manage device development environment
Gaetan Morice – Eclipse Con 2010
January 21, 2010Sierra Wireless Proprietary and Confidential 1
Page
Sierra Wireless ?
January 21, 2010 2
Mobile Broadband Device
Intelligent Embedded Modules
Intelligent Gateways & Routers
Services Platform & Solutions
Page
Device software development ?
January 21, 2010 3
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
My application
Page
Device software development ?
January 21, 2010 4
The device
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
My application
Page
Device software development ?
January 21, 2010 5
The device
The IDE
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
My application
Page
Device software development ?
January 21, 2010 6
The device
The IDE
?
The development
environment
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
My application
Page
Development environment ?
January 21, 2010 7
The development
environment
Page
Development environment ?
January 21, 2010 8
The development
environment
Firmwares
Page
Development environment ?
January 21, 2010 9
The development
environment
Firmwares
Libraries
Page
Development environment ?
January 21, 2010 10
The development
environment
Firmwares
Libraries
Tools
Page
Development environment ?
January 21, 2010 11
The development
environment
Firmwares
Libraries
Tools
Drivers
Page
Here come the problems !
January 21, 2010 12
Page
Here come the problems !
January 21, 2010 13
Complex dependencies
Page
Here come the problems !
January 21, 2010 14
Complex dependencies
Multiple versions
Page
Here come the problems !
January 21, 2010 15
Complex dependencies
Multiple versions
Hardware specificity
Page
Here come the problems !
January 21, 2010 16
Complex dependencies
Multiple versions
Hardware specificity
Parallel development
Page
A classic scenarioCheckout the project from the SVN
January 21, 2010 17
Page
A classic scenarioCheckout the project from the SVN
Compile it
January 21, 2010 18
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
January 21, 2010 19
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
January 21, 2010 20
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
January 21, 2010 21
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project
January 21, 2010 22
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project Compilation error
January 21, 2010 23
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project Compilation error
The paths to the includes in the make file of the project are absolute
January 21, 2010 24
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project Compilation error
The paths to the includes in the make file of the project are absolute
Modify the paths
January 21, 2010 25
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project Compilation error
The paths to the includes in the make file of the project are absolute
Modify the pathsCompile the project
January 21, 2010 26
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project Compilation error
The paths to the includes in the make file of the project are absolute
Modify the pathsCompilation OK Compile the project
January 21, 2010 27
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project Compilation error
The paths to the includes in the make file of the project are absolute
Modify the pathsCompilation OK Compile the project
Start to work, add to the project a library you had made previously
January 21, 2010 28
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project Compilation error
The paths to the includes in the make file of the project are absolute
Modify the pathsCompilation OK Compile the project
Start to work, add to the project a library you had develop
Compile the project
January 21, 2010 29
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project Compilation error
The paths to the includes in the make file of the project are absolute
Modify the pathsCompilation OK Compile the project
Start to work, add to the project a library you had develop
Compile the project Compilation error
January 21, 2010 30
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project Compilation error
The paths to the includes in the make file of the project are absolute
Modify the pathsCompilation OK Compile the project
Start to work, add to the project a library you had develop
Compile the project Compilation error
Your library rely on another one that is not compatible
with the project’s dependencies
January 21, 2010 31
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project Compilation error
The paths to the includes in the make file of the project are absolute
Modify the pathsCompilation OK Compile the project
Start to work, add to the project a library you had develop
Compile the project Compilation error
Your library rely on another one that is not compatible
with the project’s dependencies…
January 21, 2010 32
Page
A classic scenarioCheckout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project Compilation error
The paths to the includes in the make file of the project are absolute
Modify the pathsCompilation OK Compile the project
Start to work, add to the project a library you had develop
Compile the project Compilation error
Your library rely on another one that is not compatible
with the project’s dependencies…
Pain and frustration
January 21, 2010 33
Page
What do we exactly need ?
January 21, 2010 34
Page
What do we exactly need ?
January 21, 2010 35
Package it
Page
What do we exactly need ?
January 21, 2010 36
ID
Package it
Add ID and version
Page
What do we exactly need ?
January 21, 2010 37
ID
Package it
Add ID and version
Make it available
Page
What do we exactly need ?
January 21, 2010 38
ID
Package it
Add ID and version
Make it available
Provision it
Page
What do we exactly need ?
January 21, 2010 39
ID
Package it
Add ID and version
Make it available
Provision it
Use it
Page
What do we exactly need ?
January 21, 2010 40
ID
Package it
Add ID and version
Make it available
Provision it
Use it
Page
Wait a minute !
January 21, 2010 41
It reminds me of something !
Page
Wait a minute !
January 21, 2010 42
It reminds me of something !
The Eclipse Update System !
Page
Use plug-ins
January 21, 2010 43
To package
Basic resource plug-ins
Page
Use EMF
January 21, 2010 44
To identify
Page
Use EMF
January 21, 2010 45
To identify
Page
Use p2
January 21, 2010 46
To provision
Basic p2 update site
ID infos in P2 meta-data
Custom UI on top of p2
Page
Use p2
January 21, 2010 47
To provision
Page
Use extension points
January 21, 2010 48
Plug-in registry to listen to new installations
Access to EMF model
Perform specific actions according to the package
To install
Page
Use EMF
January 21, 2010 49
In projects properties
Page
A step further
A central repository for multiple vendors
Allow to have a single Eclipse distro
January 21, 2010 50
PageMarch 22nd, 2010 51
Questions?
Page
Gaétan [email protected]