Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Outline
1 Introduction
2 Software for building KDE applicationsOverview of the KDE build systemMain familiesKDE4 expected changes
3 The Bksys frameworkA full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
4 Conclusion
5 Questions
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Introduction
About the authorSoftware Engineer, School of the Mines of Nantes,graduated in 2004Main area of interest:
KDissert, a mind-mapping tool for document creationBKsys, a replacement for the KDE build system
AcknowledgementsThe Kdissert usersThe BKsys early adopters (Rosegarden, kio-locate, ..)The Akademy team
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Overview of the KDE build systemMain familiesKDE4 expected changes
1 Introduction
2 Software for building KDE applicationsOverview of the KDE build systemMain familiesKDE4 expected changes
3 The Bksys frameworkA full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
4 Conclusion
5 Questions
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Overview of the KDE build systemMain familiesKDE4 expected changes
Introduction KDE application writing
Tools requiredmake -f Makefile.cvs; configure; make; make installAutoconf, Aclocal, Autoheader, Automake, Libtool,GNU/Make
Figure: Organization of the tools
Installation: copy files at specific locations and changepermissions
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Overview of the KDE build systemMain familiesKDE4 expected changes
Rules are joined in cascade
Figure: Source code compilation
Figure: Documentation compilation
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Overview of the KDE build systemMain familiesKDE4 expected changes
Shortcomings of the current build system
Technical features
Size of the scripts, tools needed for the compilation andoverall speedAddition of new compilation rules is uneasy
User-friendliness
Reliability of the buildsHard to make mistakes, easy to spot them
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Overview of the KDE build systemMain familiesKDE4 expected changes
1 Introduction
2 Software for building KDE applicationsOverview of the KDE build systemMain familiesKDE4 expected changes
3 The Bksys frameworkA full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
4 Conclusion
5 Questions
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Overview of the KDE build systemMain familiesKDE4 expected changes
Main families
Make based: GNU/Make, NMake - unreliable, complicatedand unportable
reliability and usabilityportability and maintainability
Makefile generators: QMake, Autotools, CMake - usemacros as a language
still questionable reliabilitymore commands are required for compilingerrors are harder to debug
Script-based: Unsermake, SCons, Cons - slow andmemory-consuming
Powerful languages (python, perl) are usedNo separation between data and logicLess adapted for incremental builds (but better atdistributed ones)
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Overview of the KDE build systemMain familiesKDE4 expected changes
1 Introduction
2 Software for building KDE applicationsOverview of the KDE build systemMain familiesKDE4 expected changes
3 The Bksys frameworkA full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
4 Conclusion
5 Questions
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Overview of the KDE build systemMain familiesKDE4 expected changes
KDE4 expected changes
Changes are difficult to enforceThe codebase prevents a quick transitionThe developers are not willing to change their tools
State of the main candidatesUnsermake is meant to provide a smooth transition todevelopers hence the preferred solution for KDE4QMake does not have the necessary features but CMakewas proved to work and scaleBKsys provides a complete replacement for the KDE3 buildsystem
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
A full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
1 Introduction
2 Software for building KDE applicationsOverview of the KDE build systemMain familiesKDE4 expected changes
3 The Bksys frameworkA full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
4 Conclusion
5 Questions
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
A full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
A full-featured replacement for building KDEapplications
Target audienceNew projectsCasual programmers
SCons-basedScons can be included: 57kbThe admin/ directory weights only about 150kb
Build KDE and other kinds of programs: Wxwidgets, Qt4, ..Main features: small, fast, reliable, and separation of thebuild dir
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
A full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
1 Introduction
2 Software for building KDE applicationsOverview of the KDE build systemMain familiesKDE4 expected changes
3 The Bksys frameworkA full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
4 Conclusion
5 Questions
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
A full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
Organization of the framework
Tell the tool what to buildBuild things from sourcesInstall files in locationsGive explicit dependencies
Give rules for buildingTells the tool how to produce the filesScan files for implicit dependencies
Detect the system configurationFind headers, libraries and configuration checksMake components reusable among projects
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
A full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
Project setup
Declaring targetsThe scripting interface
Really complicated builds are possibleBrute-force parsing is made difficult
Pmanager, the GUI for BKsysEasy to parse and to create check toolsGui is provided for user-friendliness, Kdevelop integration iseasy
Adding new rules and configurationsModules are python filesAdd configuration checks
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
A full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
1 Introduction
2 Software for building KDE applicationsOverview of the KDE build systemMain familiesKDE4 expected changes
3 The Bksys frameworkA full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
4 Conclusion
5 Questions
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
A full-featured replacement for building KDE applicationsOrganization of the frameworkFurther improvements
Further improvements
Overcome the autotools incompatibilities to facilitate themigration
The command-line handling is slightly differentWrappers are provided
More detection modules are neededCreation of a library of modulesMore configuration helpers
Finish the GUIAdd and remove targets and sourcesUse of drag and drop
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Conclusion
BKsys targets a particular kind of application developmentIt needs a stronger userbase to evolve faster
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
Questions ?
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
References
Build systems reviewsArticle on build systems:http://freshmeat.net/articles/view/1715/Another review:http://www.a-a-p.org/tools build.html
Software construction toolsCMake page http://www.cmake.org/SCons, the foundation of BKsyshttp://www.scons.org/BKsys pagehttp://freehackers.org/∼tnagy/bksys.html
Thomas Nagy [email protected] Software construction tools for KDE
IntroductionSoftware for building KDE applications
The Bksys frameworkConclusionQuestions
References (2)
Figure: A book on Autotools
Thomas Nagy [email protected] Software construction tools for KDE