Logo TIB AV-Portal Logo TIB AV-Portal

Borsch: modern build system for C/C++ GIS projects

Video in TIB AV-Portal: Borsch: modern build system for C/C++ GIS projects

Formal Metadata

Borsch: modern build system for C/C++ GIS projects
Title of Series
Part Number
Number of Parts
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
Many C/C++ GIS libraries are usually built via autoconf/make/nmake/VC. While this is valid approach, we believe there is a better new alternative - CMake. Enter 'Borsch' - new build system that is a) easier to use, b) better solves depencies and c) provides more uniform way of building packages. Needed dependencies are automatically fetched from repositories. We’ve built an early prototype of such system and tested if on GDAL build process (over 50 core dependent libraries). Now a developer with only three lines of code in CMakeLists.txt for any project he is working on can add dependent GIS library. If needed library exists in the system the build system will use it, if not - it will be downloaded from Github. Our new build system works for both Windows and Linux. In my talk, I will describe our suggestiong for new GDAL sources tree structure and CMake based build system. I will also provide examples how this new build system can be used in other projects.

Related Material

sources building Software Blocks different coma model systems programs systems number
versions Em's input argument Arm programs systems libraries
flow means Computer animation Software configuration independent argument form libraries systems compiler
track confidence argument versions internet input libraries platforms systems domain response high resolution building Development projects argument inclusion Location configuration system platforms input ideal figure objects progress systems libraries
sensitivity building install script code time necessities views unit sets argument open subsets part font programs variables ease of use Location mathematics estimates share Em's sets logic repository model localization libraries systems script sources man link files construction sample argument variables connections message-based orders input configuration Right modularity escape systems meter functionality modules files link labor time machine branch product number versions internet navigators configuration structure form default mobile default addition unit projects experts coma lines inclusion component-based Software case functions versions localization libraries
building services labor mobile sets similar argument product Folding bridges Cats libraries systems form mobile addition generate forces projects Android product Types Development Kit data management case Right objects form libraries
web pages building functionality script momentum varieties time mobile unit argument student part fields product versions caches operations repository level model systems form default man high resolution building Development evaluation inclusion Development Kit raster case versions linear platforms life localization Results Kraft libraries
files multi-platform The list coma indicators portable case versions platforms configuration testing Right model libraries fibers position Windows systems
point building Arm states code Development time views coma part Location Computer animation operations case versions platforms configuration website testing model figure libraries systems libraries
top hello my name is needed Baryshnikov I'm from next DC and develop I will talk about you want to build system for C and C + + just projects he'll be talking about compiled software that models of American is over a great number of different libraries we like into building blocks and of the programs
around created from and when you build a program you need all these libraries in system everything to it gets complicated if you need some
special version of library all library building some non-standard input parameter OK let's look at
duties dependences and that's not all the much of the random adjectives it depends from to 4 and it's
acquired also perform form it's optional parameters as Italy and Japan also known as you can see that there's at least but depends from all flows that leads Japan and bosomy the mean so as you can see some libraries are common for the independence at all my library and the problem of the problem of the dependences of less in Linux and Unix likening system comparable to those in the and also if you work this library public lies in Europe or from the you need to have compiler of your software or your libraries also for example if you have a check all needed somewhere in that 1 of the dependence library for example that lived it's and makes sense to have in our library and so an
earlier it be nice to have such a build system 1st of all across platforms it should be walk on our own main platform serving those Linux marks also like a simple and intuitive if library already exist in this system it should be included into a project if no it must be fetched from Internet and the build them to also also track library updates the some later updated wearable system was subtracted and to get the latest version the 1st have this is from Figure also automatic dependent citizens from and the locations and the parameters of a dependence library should begin to transform will transfer from 1 domain project interval libraries and all familiar a simple library preparation using those systems of the shouldn't be so complicated and
you a little the systems this is only so for example make out the confidence to make this Jeep gobbled up to make so that you know Genesis demand it's usually or used to make and has to make so we use chooses to make it more London and create some additional believed to fulfill the requirements of the old system have also a would like note with what is additional a custom-built progress you know has to make its called external project release target follow you to get resources from the some repository and build it but all of objects existing collaborating this system doesn't some input parameters configured is the system developers responsibility so there all
solutions fully fulfilled all these requirements the golden is next is lost as Bush is the full from the Russian-Ukrainian fusion and hence somewhat like cooking software like a book that what what's the main features of our system and our approach is close the makes them across all dependencies that extends from Fichte and to the right and building in a stockholder of you do hold to build a system based on different but you can use all the local and version control system are supported by external project the next activated build system you'll need only if he fails to find a new product find exported and external projects to the the last 1 is a set of modified Additional file by the Genoese to make a final just a comment that some my great answer it's not not needed now fall following used and below ahead of the use and
you only need 4 steps are 1st of all we use apart model but and this is where we're still but previously noted files the files and sold usually so I called that to make so we had to work all models that were on also into the main file this line of code and this defines necessary libraries for example the here is example for including the chief of the and it is acquired and will allow us to study user linking with these libraries I of what is a special summit function and look at it there is only 1 input parameter all the name of your target in this may be a program or library for and within these parameters of finding a product of functions except that of the the well this is a library Maine this is a cancer case sensitive name but because around and this is a feature offered to make all these name and the book now filename which search in this system but it's usernames find library not to make and this is for local part and we create our hopes and will follow the same way the names find x y remains built this to make all functions and the in also filed with the name of it was of very and some additional part next is a version of it in the form all 4 of major and much and the executive uh this is uh person may be fully complied for these use of number 4 how local topological this part of the and transferred into refined project and for external project all and facts from different attached and the search for editing assertion every font come to my baby stuck will be cloned and there's also a default on all the required you library not found in this system all over the now because exist of external library where or message will perform a shot to your door to define was found that who make valuable to make deals shared libraries of war external external library and estimate that's all you did you find additional input parameters for for external library book on the lead to that in a way you need that I will talk about later in this example of mobile butyl you don't and how it looks so that when the young projects with no additional was from side to start at a confusion started that when searching for local dependencies if dependence of found it will be introduced as depends very Bush works its search dependency from I and it found missteps configure stage found and will be repeated we have all time needed dependencies at at the initiation and build steps that at 1st of all that builds embryos and forms of function the target link text libraries this functions defined on the dependence is the of the for the program and the external libraries sold order all building such reconfigured and so 1st of all the external libraries and installed into the cell folder and when build view of all main project started after that build successfully finished and you can in style acute install target and then everything will be installed your program and external libraries in units like folders been into a set of your also my you can define global variables view of the world the people affects the demands of the external projects this is the standard as to make viable are usually is when you use estimated by binary due this flesh the but will only help the system that important this is a powerful tool in different it but if the usability of the variable libraries all of course that about there's no problem but in a library modify it over as you need it and the defined the set of all your 1 bunch of defined the branches which should be fetched full update the dual this is a time machine beauty in library changes just in sometimes with intimate connection may be inconvenient but to the this that additional liable to wonderful that I'll do for linear is 25 meters also full time out of this is the time for the whole execute that G for is 100 ms and you can be different if your Internet channel is the 1 that was the next variable is that STD people so you can have it the disabled of instrumented to check the updates of labor and the last 1 is suppressed available sample to suppress the local for additional messages so from my the debate laborers the tools and use the library in our model system we need 1st of all these libraries must be a good place to make soul we and moved a lot of libraries that are needed to estimate of the user called to make the next defined past according to stand up move out of these uh using Green's function this is this is to some that function and the the set of all you have install but we all know what funds libraries in the units like did to the structure the following fare expert functions of the system would move important part missus instruction is standard human construction expert target is a of targets because for example it has some libraries openness the sale of the 1st several libraries and so indeed and the movies function you pack them in 1 5 also depends must be included the of finding a project in your code at late escape from what it was didn't Mrs. to post it also called me the scripts that convert it and put your project that supports also 1 below and above the models and the great configuration file I also molded is fine x a library named but comparable to those who make where you must define an API and some additional parameters so you reach may be needed for library and current
status currently mobile and foot to laborers are supported by more services and bridge forward with G that Jason CAT acuity objective as we already built in a similar type of product you didn't using or letters from Is our ultimate you don't next generation of this before product so Q J assume manager form builder also mobile is the car use visible system know about mobile tool sets and can they use it for the building on this and on the right was generous and a few
examples of how it is used 1st of all I would like to talk about a holy injured or injured all but it has a common library but it needed by system and additional In diverse common libraries will include forward via find any project in the mainstream and a it's according but do you fall a parameter so some of them required somewhere emotional somewhere uh difficult and end In drivers take some library needed it into the same way but you know you know there's a makefile inside material for fold in creating and moving digital force to make i not that I didn't have additional coat tool that you had been acidification because for example with various use in the rest of the driver and and that the error and if for I put find an approaches in both I will get to it depends duplication soul in such cases nowadays due to a simple making this in the way screwed up 1 more example of
this is example of so we to make was yes we did not models was called to make straight but the now it's little of with a simple just we added Washington did when that I can't this makes sense and and those also meant but for the versions of 0 4 1 6 required not less this there's should 3 . 4 required and also for us the operation did not it's the ultimate version of development and they could be but some of the acquired and the
example of mobile is key and a mobile is the we need a variety linear way of life Develop some disabling most of the analysts uh so so we deal I defined several assuming parameters here you can see by the end of the 1st of those the life I centered along at all so I was right but I need external on and they have a dependence of this it's for like 3 and so soulful so 1 that was not before release and has remained a feature so that the general GDR required there should but 1 0 shot all because I need a static version of for my genomic library and some additional arguments which have a little these different local knowledge a couple of and now we here I only a few over the alliance and finally I I will learn maximize the advantages of the pages and pages of the system 1st of all the dangers I had its simplicity in graphical form and flexibility and in the dangers that could begin at that a depends it evaluation during building are for example if you have some of the local libraries provisional product depends and the in the school libraries share the same library and in some cases that are part deal all these fields and levels of library maybe start is not the usual case but it may be a need for the fault of the problem too far apart up this creates similar positive now that we have worshippers that it was up to time students but you need to take needed pot and put it in your intermediate in Europe operative and so on it may be a momentum and that way it will be due for so it's it feels like the system and some protest that we will grow only ask the teacher to get to these functionalities tho officials to make and the result is next uh we need both have seen libraries and do not usually make a and on only assuming make but this a little you to more countries and co-funded by the system may be advantageous maybe given invitation common it was that it wanted talk with the libraries there might be a system more moreover that the new some system unit public and the plans OK
question it and then when
I build GDL for Windows you generally have to do some configuration not just for drivers but saying that portability fibers depending on position of an SEC which using these can be different and I wondered if Polish will handle that has any support for defining that in the seed make lists file as it give the right now this is a cross-platform system and it's built both on the models and the looks not much plants would it met is plans sold in indices looks like a your policy makers
will make so in this configure take look from cold find dependencies and let the truth if you have in your may Systembolaget some libraries and to make like it that's not found you can define if if only just need 1 such a book in the library will be fiction from Jakarta built in parts of and build that's not the user to you know did so a configuration x and inaccessible configure because each crop external made that have that from Figure configure books about 2 books and finally free or 5 times in it below the OK thanks but I I strongly example if you have a short but you your yours on user we'll be will have a lot of library you can define see my wearable where you know that's the only external and not me that chip books something that you will be a lot of from 1 to the view that do everything you need operation no as they're all code is that did the here is a when Inc in the bushes with that in his instructions and the injured it was that it is the current state of all 4 that's making keep it's not to finish the various sites model there's possible yet the plant arms to make it an additional libraries building full this injured all and they can understand all of our ideas and injured develop tools to make at that point thank you I have