[gdal-dev] Best way to package and distribute GDAL data files

Ari Jolma ari.jolma at gmail.com
Tue Feb 14 08:22:03 PST 2017


In your code you can manage the location where GDAL looks for the files 
with CPLPushFinderLocation.

In my case I have Perl modules, which depend on the GDAL Perl module. In 
a test scenario for the first module it needs to ask installation of the 
GDAL Perl module, which needs to ask for GDAL itself to be installed. 
Then GDAL is really private to the GDAL Perl module and the GDAL files 
are not easy to find by downstream modules. I manage it so that the GDAL 
Perl module installs the GDAL data files in a shared directory, whose 
name downstream modules can find out by a known method (Perl module 
called File::ShareDir). The module then pushes this to the GDAL finder, 
and so GDAL can find its data files.

This is perhaps one code layer more than in your application but anyway 
you need to arrange it so that the your installer stores the name of the 
GDAL data directory somewhere it can find it in runtime.

Hope this helps,


14.02.2017, 17:12, Emmanuel d'Angelo kirjoitti:
> Thanks Ari for the interest!
> Unfortunately, my target is to ship for all 3 major OSes (linux, 
> windows, macOS).
> Regarding my build system, everything is glued by cmake. Not sure if 
> it's related, but I build (for now) GDAL as a dynamic lib and PROJ4 as 
> a static one. Any change here is possible if it helps with the issue.
> Emmanuel
> Le 14 févr. 2017 à 15:52, Ari Jolma <ari.jolma at gmail.com 
> <mailto:ari.jolma at gmail.com>> a écrit :
>> Emmanuel,
>> I think we need to know the OS you're using.
>> Ari
>> 14.02.2017, 16:48, Emmanuel d'Angelo kirjoitti:
>>> Dear list,
>>> I'm trying to package and distribute an application that relies 
>>> internally on GDAL for some raster / vector manipulation.
>>> It may happen in some cases that a user of the application wants to 
>>> take her outputs to a different coordinate system (typically from 
>>> some national system to WGS84). As far as I can see, some of these 
>>> transformations rely on the content of GDAL data files (such as 
>>> pcs.csv or datum.csv).
>>> I can install these files locally and use the GDAL_DATA environment 
>>> variable to find them from my application. However, on the user 
>>> side, what's the recommended practice?
>>> Do I need to ensure that my users have a GDAL_DATA variable set too 
>>> with the correct data files? I've looked at the build system files, 
>>> but I couldn't find a way to set this path relative to my 
>>> application (which would let me install these files inside the app 
>>> package and distribute them with the application).
>>> Any hint to put me on the right track would be greatly appreciated.
>>> Best regards,
>>> Emmanuel
>>> _______________________________________________
>>> gdal-dev mailing list
>>> gdal-dev at lists.osgeo.org
>>> https://lists.osgeo.org/mailman/listinfo/gdal-dev
>> _______________________________________________
>> gdal-dev mailing list
>> gdal-dev at lists.osgeo.org <mailto:gdal-dev at lists.osgeo.org>
>> https://lists.osgeo.org/mailman/listinfo/gdal-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20170214/3bedf897/attachment-0001.html>

More information about the gdal-dev mailing list