CppCon 2018: 'Compiling Multi-Million Line C++ Code Bases Effortlessly with the Meson Build System'

preview_player
Показать описание

Jussi Pakkanen
"Compiling Multi-Million Line C++ Code Bases Effortlessly with the Meson Build System"


The Meson build system is a fresh build system designed from the ground up to solve the build problems of today. It is currently seeing growing adoption across many domains and is already being used to build large chunks of most modern Linux distributions. One of the main reasons for this is Meson's heavy focus on usability, meaning that build definitions are both powerful and easy to understand.

In this talk we shall look into the design and use of Meson from the ground up going up all the way to projects with millions of lines of code and complex build setups such as code generators and cross compilation. We shall especially examine the problem of dependencies and how Meson solves this age old problem with a composable design that supports both system provided and self built dependencies from the same build definition. Finally we will examine the multi-language support of Meson for easily combining C++ with other languages such as Java, C#, D and Python.

Jussi Pakkanen, Consultant
Jussi Pakkanen is the creator and project lead of the Meson build system. He is currently working as a consultant. He has experience in many different fields of computing ranging from slot machines to mail sorting, computer security, Linux desktop development and gaming. His free time has been equally colorful, including things such as comics and illustration, directing movies, music and electronics. When not working on projects he might be found watching bad movies, especially sci-fi and the finest of trash from the 80s.


*-----*
*-----*
Рекомендации по теме
Комментарии
Автор

Meson is beautiful, to say the least!

TotalImmortl
Автор

Jussi Pakkanen you are doing a great job! Congratulations for this project, I did not look back for my needs as of now for a few years!

germandiagogomez
Автор

I think I have found build system to use. Thank you for this!

nikolaradovanovic
Автор

32:05 -> Subtitles say "mumbles" but he actually said Vala.

pablobarriaurenda
Автор

Unfortunately i have one package manager and build system (Software) per project manager (Human) :-(

llothar
Автор

14:42 sandboxed subprojects

aahw, u will fit very well with nix and nix philosophy then i suppose :D

yash
Автор

My code base for our CQC automation platform is a bit over a million lines of C++ code currently. Visual C++ handles that fairly well. The actual projection definition and build system is our own, but Visual C++ has a service that watches what is going on and tries to minimize the amount of work done. And of course it supports parallel builds which we use to good effect. Just pass all of the source files of a particular library/exe to the compiler and it does them in parallel and tries to minimize the work required. It tends to be more I/O bound than CPU bound it seems to me.

Of course, in a system that large, if you change some fundamental file down in the virtual kernel layer, it takes a while. But that's not terribly common. And there are always other things to do while a big build is going on anyway, so it's not that bad even then.

But, if it was ten times that size, that would start getting kind of ugly, and something more manly wouldn't be a bad idea.

CharmedQuarkSystems
Автор

Is this going to replace cmake? How can I integrate it with a package manager?

PixelPulse
Автор

32:05 the person who transcripted this really lacks any awareness that they were supposed to search for technocal side of thongs. he is speaking clear at these places, still transcripter has written [mumbles] as a pleasant transfer of burden.

it's volla language.

yash
Автор

It's curious that the best C++ build system is written in python if you think about it

alerighi