22
Software construction tools for KDE Thomas Nagy [email protected] August 29, 2005

Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

Software construction tools for KDE

Thomas [email protected]

August 29, 2005

Page 2: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 3: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 4: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 5: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 6: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 7: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 8: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 9: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 10: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 11: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 12: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 13: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 14: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 15: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 16: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 17: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 18: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 19: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 20: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

IntroductionSoftware for building KDE applications

The Bksys frameworkConclusionQuestions

Questions ?

Thomas Nagy [email protected] Software construction tools for KDE

Page 21: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

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

Page 22: Software construction tools for KDE · 2019. 12. 24. · KDissert, a mind-mapping tool for document creation BKsys, a replacement for the KDE build system Acknowledgements The Kdissert

IntroductionSoftware for building KDE applications

The Bksys frameworkConclusionQuestions

References (2)

Figure: A book on Autotools

Thomas Nagy [email protected] Software construction tools for KDE