SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
Orfeo ToolBox users meeting and hackfest 2015
The new modular build system of OTB 5
OTB development team
3 - 5 june 2015, Toulouse
Motivations : the status with OTB <= 4.0
Code in directories but no real build dependency (cyclic dependencies between
directories)
Third parties : a maintainance hell (activation/deactivation, external/internal,
interdependencies)
Build system written in ancient CMake times ( version 2.4), no redesign since
then
Hard for newcomers to add new functionnalities without touching everything,
even more when introducing new third parties
Design choices
Let’s do it the ITK way : they faced the same issue a few years ago. The CMake
gurus did the work
State-of-the-art renewed CMake code : a bunch of new features, and ready for
later improvements
No more third party code inside OTB code (to the maximum extent...)
What modular means ?
The OTB classes are organized in self-contained directories called modules
One module contain headers, definitions, tests, applications, ... for all classes of
the module
Dependency tracking between modules is at the heart of the system : enable a
module and its dependencies are enabled automatically
Only build what you want/use
Third parties are also modules now
Modules are organized in thematic Groups (no real build consequences here)
How do I build OTB now?
Still with CMake, but way easier.
Less CMake options visible (unless you switch to advanced mode)
Better option naming, systematic : OTB USE XXX for third parties
Third parties are always external now. They can only be activated or not.
A default set of modules is defined
The internals
Module enablement evaluated in two passes
Modules which are activated
Third party deactivated, with all its dependees
BUILD DEFAULT MODULE
ON = all modules activated, except Mapnik and its dependees
OFF = you choose each enabled module with the Module XXX option
OTB USE XXX
Only for third parties
Easy way to disable a third party and all its dependees
Is evaluated after the first
What does a module look like ?
A directory in the Modules subdir :
otb-module.cmake and CMakeLists.txt file
include subdir : for .hxx files
src subdir : for .cxx files and a CMakeLists.txt. headers in here are not installed
test subdir : for tests
app subdir : for applications
See the Remote Module presentation for building a module from scratch in 5 minutes.
Hey wait !
I don’t care about your dependency hell, just build me the damned thing :
Superbuild (in a few minutes)
Can I reuse this for my work : Remote modules (in a few minutes)

Contenu connexe

En vedette

Monteverdi 2.0 - Remote sensing software for Pleiades images analysis
Monteverdi 2.0 - Remote sensing software for Pleiades images analysisMonteverdi 2.0 - Remote sensing software for Pleiades images analysis
Monteverdi 2.0 - Remote sensing software for Pleiades images analysisotb
 
Monitoring tropical forest cover Activities of ONFI in remote sensing
Monitoring tropical forest cover Activities of ONFI in remote sensingMonitoring tropical forest cover Activities of ONFI in remote sensing
Monitoring tropical forest cover Activities of ONFI in remote sensingotb
 
ONLINE IMAGE PROCESSING WITH ORFEOTOOLBOX WPS
ONLINE IMAGE PROCESSING WITH ORFEOTOOLBOX WPSONLINE IMAGE PROCESSING WITH ORFEOTOOLBOX WPS
ONLINE IMAGE PROCESSING WITH ORFEOTOOLBOX WPSotb
 
Teaching Remote Sensing with OTB Applications & Monterverdi (and a little of ...
Teaching Remote Sensing with OTB Applications & Monterverdi (and a little of ...Teaching Remote Sensing with OTB Applications & Monterverdi (and a little of ...
Teaching Remote Sensing with OTB Applications & Monterverdi (and a little of ...otb
 
ORFEO ToolBox Project Steering committee
ORFEO ToolBox Project Steering committeeORFEO ToolBox Project Steering committee
ORFEO ToolBox Project Steering committeeotb
 
Développement des chaînes de traitement d'images GEOSUD
Développement des chaînes de traitement d'images GEOSUDDéveloppement des chaînes de traitement d'images GEOSUD
Développement des chaînes de traitement d'images GEOSUDotb
 
Orfeo ToolBox workshop at FOSS4G Europe 2015
Orfeo ToolBox workshop at FOSS4G Europe 2015Orfeo ToolBox workshop at FOSS4G Europe 2015
Orfeo ToolBox workshop at FOSS4G Europe 2015otb
 
General presentation of OTB
General presentation of OTBGeneral presentation of OTB
General presentation of OTBotb
 
OTB: logiciel libre de traitement d'images satellites
OTB: logiciel libre de traitement d'images satellitesOTB: logiciel libre de traitement d'images satellites
OTB: logiciel libre de traitement d'images satellitesotb
 
Présentation générale de l'Orfeo ToolBox (12.2014)
Présentation générale de l'Orfeo ToolBox (12.2014)Présentation générale de l'Orfeo ToolBox (12.2014)
Présentation générale de l'Orfeo ToolBox (12.2014)otb
 

En vedette (10)

Monteverdi 2.0 - Remote sensing software for Pleiades images analysis
Monteverdi 2.0 - Remote sensing software for Pleiades images analysisMonteverdi 2.0 - Remote sensing software for Pleiades images analysis
Monteverdi 2.0 - Remote sensing software for Pleiades images analysis
 
Monitoring tropical forest cover Activities of ONFI in remote sensing
Monitoring tropical forest cover Activities of ONFI in remote sensingMonitoring tropical forest cover Activities of ONFI in remote sensing
Monitoring tropical forest cover Activities of ONFI in remote sensing
 
ONLINE IMAGE PROCESSING WITH ORFEOTOOLBOX WPS
ONLINE IMAGE PROCESSING WITH ORFEOTOOLBOX WPSONLINE IMAGE PROCESSING WITH ORFEOTOOLBOX WPS
ONLINE IMAGE PROCESSING WITH ORFEOTOOLBOX WPS
 
Teaching Remote Sensing with OTB Applications & Monterverdi (and a little of ...
Teaching Remote Sensing with OTB Applications & Monterverdi (and a little of ...Teaching Remote Sensing with OTB Applications & Monterverdi (and a little of ...
Teaching Remote Sensing with OTB Applications & Monterverdi (and a little of ...
 
ORFEO ToolBox Project Steering committee
ORFEO ToolBox Project Steering committeeORFEO ToolBox Project Steering committee
ORFEO ToolBox Project Steering committee
 
Développement des chaînes de traitement d'images GEOSUD
Développement des chaînes de traitement d'images GEOSUDDéveloppement des chaînes de traitement d'images GEOSUD
Développement des chaînes de traitement d'images GEOSUD
 
Orfeo ToolBox workshop at FOSS4G Europe 2015
Orfeo ToolBox workshop at FOSS4G Europe 2015Orfeo ToolBox workshop at FOSS4G Europe 2015
Orfeo ToolBox workshop at FOSS4G Europe 2015
 
General presentation of OTB
General presentation of OTBGeneral presentation of OTB
General presentation of OTB
 
OTB: logiciel libre de traitement d'images satellites
OTB: logiciel libre de traitement d'images satellitesOTB: logiciel libre de traitement d'images satellites
OTB: logiciel libre de traitement d'images satellites
 
Présentation générale de l'Orfeo ToolBox (12.2014)
Présentation générale de l'Orfeo ToolBox (12.2014)Présentation générale de l'Orfeo ToolBox (12.2014)
Présentation générale de l'Orfeo ToolBox (12.2014)
 

Similaire à OTB modular architecture

OOSCM. Object Oriented SCM
OOSCM. Object Oriented SCMOOSCM. Object Oriented SCM
OOSCM. Object Oriented SCMESUG
 
Developer's Approach to Code Management
Developer's Approach to Code ManagementDeveloper's Approach to Code Management
Developer's Approach to Code ManagementMichael Rosenblum
 
How effective is modularization
How effective is modularizationHow effective is modularization
How effective is modularizationSyedArsal
 
Software Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniquesSoftware Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniquesAngelos Kapsimanis
 
Bending Open Atrium to your will!
Bending Open Atrium to your will!Bending Open Atrium to your will!
Bending Open Atrium to your will!Jeff Miccolis
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteTushar B Kute
 
DOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in cDOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in cfloraaluoch3
 
3.5 App structure.ppt
3.5 App structure.ppt3.5 App structure.ppt
3.5 App structure.pptssuserd973fe
 
Solid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignSolid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignIrwansyah Irwansyah
 
Software Qualitiy with Sonar Tool 2013_4
Software Qualitiy with Sonar Tool 2013_4Software Qualitiy with Sonar Tool 2013_4
Software Qualitiy with Sonar Tool 2013_4Max Kleiner
 
Kernel module programming
Kernel module programmingKernel module programming
Kernel module programmingVandana Salve
 
Wireless Communication Network Communication
Wireless Communication Network CommunicationWireless Communication Network Communication
Wireless Communication Network CommunicationVrushali Lanjewar
 
Factory Pattern
Factory PatternFactory Pattern
Factory PatternDeepti C
 
Linux kernel code
Linux kernel codeLinux kernel code
Linux kernel codeGanesh Naik
 
Module 3: Introduction to LINQ (Material)
Module 3: Introduction to LINQ (Material)Module 3: Introduction to LINQ (Material)
Module 3: Introduction to LINQ (Material)Mohamed Saleh
 

Similaire à OTB modular architecture (20)

Mocking the unmockable with Moles
Mocking the unmockable with MolesMocking the unmockable with Moles
Mocking the unmockable with Moles
 
OOSCM. Object Oriented SCM
OOSCM. Object Oriented SCMOOSCM. Object Oriented SCM
OOSCM. Object Oriented SCM
 
Developer's Approach to Code Management
Developer's Approach to Code ManagementDeveloper's Approach to Code Management
Developer's Approach to Code Management
 
How effective is modularization
How effective is modularizationHow effective is modularization
How effective is modularization
 
Software Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniquesSoftware Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniques
 
Bending Open Atrium to your will!
Bending Open Atrium to your will!Bending Open Atrium to your will!
Bending Open Atrium to your will!
 
Metasploit
MetasploitMetasploit
Metasploit
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
 
ALT
ALTALT
ALT
 
DOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in cDOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in c
 
3.5 App structure.ppt
3.5 App structure.ppt3.5 App structure.ppt
3.5 App structure.ppt
 
Solid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignSolid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven Design
 
Software Qualitiy with Sonar Tool 2013_4
Software Qualitiy with Sonar Tool 2013_4Software Qualitiy with Sonar Tool 2013_4
Software Qualitiy with Sonar Tool 2013_4
 
Kernel module programming
Kernel module programmingKernel module programming
Kernel module programming
 
Wireless Communication Network Communication
Wireless Communication Network CommunicationWireless Communication Network Communication
Wireless Communication Network Communication
 
simulink
simulinksimulink
simulink
 
Factory Pattern
Factory PatternFactory Pattern
Factory Pattern
 
Studienarb linux kernel-dev
Studienarb linux kernel-devStudienarb linux kernel-dev
Studienarb linux kernel-dev
 
Linux kernel code
Linux kernel codeLinux kernel code
Linux kernel code
 
Module 3: Introduction to LINQ (Material)
Module 3: Introduction to LINQ (Material)Module 3: Introduction to LINQ (Material)
Module 3: Introduction to LINQ (Material)
 

Plus de otb

Ice: lightweight, efficient rendering for remote sensing images
Ice: lightweight, efficient rendering for remote sensing imagesIce: lightweight, efficient rendering for remote sensing images
Ice: lightweight, efficient rendering for remote sensing imagesotb
 
Présentation de l'ORFEO ToolBox au FROG2013
Présentation de l'ORFEO ToolBox au FROG2013Présentation de l'ORFEO ToolBox au FROG2013
Présentation de l'ORFEO ToolBox au FROG2013otb
 
Pragmatic remote sensing handout
Pragmatic remote sensing handoutPragmatic remote sensing handout
Pragmatic remote sensing handoutotb
 
Madagascar2011 - 09 OTB Change detection framework
Madagascar2011 - 09 OTB Change detection frameworkMadagascar2011 - 09 OTB Change detection framework
Madagascar2011 - 09 OTB Change detection frameworkotb
 
Madagascar2011 - 08 - OTB segmentation and classification
Madagascar2011 - 08 - OTB segmentation and classificationMadagascar2011 - 08 - OTB segmentation and classification
Madagascar2011 - 08 - OTB segmentation and classificationotb
 
Madagascar2011 - 07 - OTB radiometry processing
Madagascar2011 - 07 -  OTB radiometry processingMadagascar2011 - 07 -  OTB radiometry processing
Madagascar2011 - 07 - OTB radiometry processingotb
 
Madagascar2011 - 06 - OTB geometry processing
Madagascar2011 - 06 - OTB geometry processingMadagascar2011 - 06 - OTB geometry processing
Madagascar2011 - 06 - OTB geometry processingotb
 
Madagascar2011 - 05 - Monteverdi first steps
Madagascar2011 - 05 - Monteverdi first stepsMadagascar2011 - 05 - Monteverdi first steps
Madagascar2011 - 05 - Monteverdi first stepsotb
 
Madagascar2011 - 04 - Présentation configuration pratical work
Madagascar2011 - 04 - Présentation configuration pratical workMadagascar2011 - 04 - Présentation configuration pratical work
Madagascar2011 - 04 - Présentation configuration pratical workotb
 
Madagascar2011 - 03 - Présentation Monteverdi
Madagascar2011 - 03 - Présentation MonteverdiMadagascar2011 - 03 - Présentation Monteverdi
Madagascar2011 - 03 - Présentation Monteverdiotb
 
Madagascar2011 - 02 - Présentation OTB
Madagascar2011 - 02 - Présentation OTBMadagascar2011 - 02 - Présentation OTB
Madagascar2011 - 02 - Présentation OTBotb
 
Madagascar2011 - 10 - OTB Object Based Image Analysis
Madagascar2011 - 10 -  OTB Object Based Image AnalysisMadagascar2011 - 10 -  OTB Object Based Image Analysis
Madagascar2011 - 10 - OTB Object Based Image Analysisotb
 
AUF 11 - 02 Geometrie
AUF 11 - 02 GeometrieAUF 11 - 02 Geometrie
AUF 11 - 02 Geometrieotb
 
AUF 11 - 03 Radiometrie
AUF 11 - 03 RadiometrieAUF 11 - 03 Radiometrie
AUF 11 - 03 Radiometrieotb
 
AUF 11 - 04 Primitives
AUF 11 - 04 PrimitivesAUF 11 - 04 Primitives
AUF 11 - 04 Primitivesotb
 

Plus de otb (15)

Ice: lightweight, efficient rendering for remote sensing images
Ice: lightweight, efficient rendering for remote sensing imagesIce: lightweight, efficient rendering for remote sensing images
Ice: lightweight, efficient rendering for remote sensing images
 
Présentation de l'ORFEO ToolBox au FROG2013
Présentation de l'ORFEO ToolBox au FROG2013Présentation de l'ORFEO ToolBox au FROG2013
Présentation de l'ORFEO ToolBox au FROG2013
 
Pragmatic remote sensing handout
Pragmatic remote sensing handoutPragmatic remote sensing handout
Pragmatic remote sensing handout
 
Madagascar2011 - 09 OTB Change detection framework
Madagascar2011 - 09 OTB Change detection frameworkMadagascar2011 - 09 OTB Change detection framework
Madagascar2011 - 09 OTB Change detection framework
 
Madagascar2011 - 08 - OTB segmentation and classification
Madagascar2011 - 08 - OTB segmentation and classificationMadagascar2011 - 08 - OTB segmentation and classification
Madagascar2011 - 08 - OTB segmentation and classification
 
Madagascar2011 - 07 - OTB radiometry processing
Madagascar2011 - 07 -  OTB radiometry processingMadagascar2011 - 07 -  OTB radiometry processing
Madagascar2011 - 07 - OTB radiometry processing
 
Madagascar2011 - 06 - OTB geometry processing
Madagascar2011 - 06 - OTB geometry processingMadagascar2011 - 06 - OTB geometry processing
Madagascar2011 - 06 - OTB geometry processing
 
Madagascar2011 - 05 - Monteverdi first steps
Madagascar2011 - 05 - Monteverdi first stepsMadagascar2011 - 05 - Monteverdi first steps
Madagascar2011 - 05 - Monteverdi first steps
 
Madagascar2011 - 04 - Présentation configuration pratical work
Madagascar2011 - 04 - Présentation configuration pratical workMadagascar2011 - 04 - Présentation configuration pratical work
Madagascar2011 - 04 - Présentation configuration pratical work
 
Madagascar2011 - 03 - Présentation Monteverdi
Madagascar2011 - 03 - Présentation MonteverdiMadagascar2011 - 03 - Présentation Monteverdi
Madagascar2011 - 03 - Présentation Monteverdi
 
Madagascar2011 - 02 - Présentation OTB
Madagascar2011 - 02 - Présentation OTBMadagascar2011 - 02 - Présentation OTB
Madagascar2011 - 02 - Présentation OTB
 
Madagascar2011 - 10 - OTB Object Based Image Analysis
Madagascar2011 - 10 -  OTB Object Based Image AnalysisMadagascar2011 - 10 -  OTB Object Based Image Analysis
Madagascar2011 - 10 - OTB Object Based Image Analysis
 
AUF 11 - 02 Geometrie
AUF 11 - 02 GeometrieAUF 11 - 02 Geometrie
AUF 11 - 02 Geometrie
 
AUF 11 - 03 Radiometrie
AUF 11 - 03 RadiometrieAUF 11 - 03 Radiometrie
AUF 11 - 03 Radiometrie
 
AUF 11 - 04 Primitives
AUF 11 - 04 PrimitivesAUF 11 - 04 Primitives
AUF 11 - 04 Primitives
 

Dernier

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Dernier (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

OTB modular architecture

  • 1. Orfeo ToolBox users meeting and hackfest 2015 The new modular build system of OTB 5 OTB development team 3 - 5 june 2015, Toulouse
  • 2. Motivations : the status with OTB <= 4.0 Code in directories but no real build dependency (cyclic dependencies between directories) Third parties : a maintainance hell (activation/deactivation, external/internal, interdependencies) Build system written in ancient CMake times ( version 2.4), no redesign since then Hard for newcomers to add new functionnalities without touching everything, even more when introducing new third parties
  • 3. Design choices Let’s do it the ITK way : they faced the same issue a few years ago. The CMake gurus did the work State-of-the-art renewed CMake code : a bunch of new features, and ready for later improvements No more third party code inside OTB code (to the maximum extent...)
  • 4. What modular means ? The OTB classes are organized in self-contained directories called modules One module contain headers, definitions, tests, applications, ... for all classes of the module Dependency tracking between modules is at the heart of the system : enable a module and its dependencies are enabled automatically Only build what you want/use Third parties are also modules now Modules are organized in thematic Groups (no real build consequences here)
  • 5. How do I build OTB now? Still with CMake, but way easier. Less CMake options visible (unless you switch to advanced mode) Better option naming, systematic : OTB USE XXX for third parties Third parties are always external now. They can only be activated or not. A default set of modules is defined
  • 6. The internals Module enablement evaluated in two passes Modules which are activated Third party deactivated, with all its dependees BUILD DEFAULT MODULE ON = all modules activated, except Mapnik and its dependees OFF = you choose each enabled module with the Module XXX option OTB USE XXX Only for third parties Easy way to disable a third party and all its dependees Is evaluated after the first
  • 7. What does a module look like ? A directory in the Modules subdir : otb-module.cmake and CMakeLists.txt file include subdir : for .hxx files src subdir : for .cxx files and a CMakeLists.txt. headers in here are not installed test subdir : for tests app subdir : for applications See the Remote Module presentation for building a module from scratch in 5 minutes.
  • 8. Hey wait ! I don’t care about your dependency hell, just build me the damned thing : Superbuild (in a few minutes) Can I reuse this for my work : Remote modules (in a few minutes)