Borsch: modern build system for C/C++ GIS projects
Formal Metadata
Title |
Borsch: modern build system for C/C++ GIS projects
|
Title of Series | |
Part Number |
188
|
Number of Parts |
193
|
Author |
|
License |
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. |
Identifiers |
|
Publisher |
|
Release Date |
2016
|
Language |
English
|
Content Metadata
Subject Area | |
Abstract |
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

00:00
Source code
Building
Software
Different (Kate Ryan album)
Block (periodic table)
Coma Berenices
Endliche Modelltheorie
Physical system
Computer programming
Physical system
Number
00:38
Revision control
Electronic meeting system
output
Parameter (computer programming)
Arm
Computer programming
Physical system
Library (computing)
00:58
Dataflow
Arithmetic mean
Computer animation
Software
Computer configuration
Independence (probability theory)
Parameter (computer programming)
Library (computing)
Compiler
Physical system
Form (programming)
02:11
Trail
Confidence interval
Parameter (computer programming)
Revision control
Internetworking
output
Library (computing)
Computing platform
Physical system
Domain name
Dependent and independent variables
Image resolution
Building
Software developer
Projective plane
Parameter (computer programming)
Inclusion map
Uniform resource locator
Computer configuration
System programming
Computing platform
output
Ideal (ethics)
Figurate number
Object (grammar)
Arithmetic progression
Physical system
Library (computing)
04:34
Sensitivity analysis
Building
Installation art
Scripting language
Code
Multiplication sign
View (database)
Modal logic
Execution unit
Set (mathematics)
Parameter (computer programming)
Open set
Mereology
Computer font
Computer programming
Variable (mathematics)
Usability
Uniform resource locator
Estimator
Mathematics
Shared memory
Electronic meeting system
Set (mathematics)
Logic
Repository (publishing)
Endliche Modelltheorie
Local ring
Library (computing)
Physical system
Scripting language
Source code
Metropolitan area network
Link (knot theory)
Computer file
Constructor (object-oriented programming)
Sampling (statistics)
Parameter (computer programming)
Variable (mathematics)
Connected space
Message passing
Order (biology)
Configuration space
output
Right angle
Modul <Datentyp>
Escape character
Physical system
Metre
Functional (mathematics)
Module (mathematics)
Computer file
Wage labour
Link (knot theory)
Time travel
Branch (computer science)
Product (business)
Number
Revision control
Internetworking
Navigation
Configuration space
Data structure
Form (programming)
Default (computer science)
Mobile Web
Default (computer science)
Addition
Execution unit
Projective plane
Expert system
Coma Berenices
Line (geometry)
Inclusion map
Component-based software engineering
Software
Personal digital assistant
Function (mathematics)
Revision control
Local ring
Library (computing)
14:11
Building
Service (economics)
Wage labour
Mobile Web
Set (mathematics)
Similarity (geometry)
Parameter (computer programming)
Product (business)
Protein folding
Bridging (networking)
Computer-assisted translation
Library (computing)
Form (programming)
Physical system
Mobile Web
Addition
Electric generator
Forcing (mathematics)
Projective plane
Android (robot)
Product (business)
Type theory
Software development kit
Data management
Personal digital assistant
Right angle
Object (grammar)
Form (programming)
Library (computing)
16:14
Web page
Functional (mathematics)
Building
Scripting language
Momentum
Variety (linguistics)
Multiplication sign
Mobile Web
Execution unit
Parameter (computer programming)
Student's t-test
Mereology
Field (computer science)
Product (business)
Revision control
Cache (computing)
Operator (mathematics)
Repository (publishing)
Energy level
Endliche Modelltheorie
Physical system
Form (programming)
Default (computer science)
Metropolitan area network
Image resolution
Building
Software developer
Performance appraisal
Inclusion map
Software development kit
Raster graphics
Personal digital assistant
Revision control
Linearization
Computing platform
Video game
Local ring
Resultant
Force
Library (computing)
20:08
Computer file
Cross-platform
Electronic mailing list
Coma Berenices
Price index
Portable communications device
Personal digital assistant
Revision control
Computing platform
Configuration space
Software testing
Right angle
Endliche Modelltheorie
Library (computing)
Fiber (mathematics)
Position operator
Window
Physical system
21:11
Point (geometry)
Building
Arm
State of matter
Code
Software developer
View (database)
Multiplication sign
Coma Berenices
Mereology
Uniform resource locator
Computer animation
Operator (mathematics)
Personal digital assistant
Revision control
Computing platform
Configuration space
Website
Software testing
Endliche Modelltheorie
Figurate number
Library (computing)
Physical system
Library (computing)
00:00
the
00:08
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
00:39
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
00:50
special version of library all library building some non-standard input parameter OK let's look at
01:00
duties dependences and that's not all the much of the random adjectives it depends from to 4 and it's
01:12
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
02:13
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
03:23
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
04:37
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
06:03
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
14:12
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
14:53
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
16:17
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
17:04
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
20:11
question it and then when
20:28
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
21:12
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
