Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Static data providers #149
QGIS Enhancement: Static data providers
Author Peter Petrik (@PeterPetrik)
Version QGIS 3.10
Currently all QGIS data providers written in C++ are compiled as separate modules (.so / .dll) which are loaded by traversing
This proposal describes technical solution of how to allow static linkage of providers to the core library.
The existing internal API for C++ data providers has become convoluted and consists of a bunch of exported functions that are not properly documented and data provider modules implement a subset of those. Moreover, some exported functions are quite specific to a particular provider.
Here is the list of exported functions
We propose to move OGR, GDAL and MDAL providers to src/core and force them to be always build similar to memory providers. Their extra functions used from qgisapp (e.g.
We propose to add the rest of the functions to
The interface can be divided to 5 function "groups":
We introduce new CMAKE global define
In dynamic-linked compilation, there will be just one C-exported function
Similarly to symbol layers (
many files all over the code that calls any of the custom OGR, GDAL and providers functions, most changes in
Issue Tracking ID(s)
On Tue, Jun 4, 2019 at 8:05 PM Nyall Dawson ***@***.***> wrote: +1 to moving gdal/ogr providers to core. It's impossible to build QGIS without gdal anyway, and I can't see any good reason why anyone would NOT want to use GDAL/OGR layers, so I can't see any reason for keeping these out of core. — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#149?email_source=notifications&email_token=AAC5FXEUAK5TTIEWABLFLPTPYY46ZA5CNFSM4HSZIWFKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODW4CO2Q#issuecomment-498607978>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AAC5FXHHG4TU5BDFWE53XHTPYY46ZANCNFSM4HSZIWFA> .