Skip to content
This repository has been archived by the owner on Mar 8, 2023. It is now read-only.

static linking with cmake (MacOS) #72

Open
yesitsme007 opened this issue Mar 6, 2020 · 0 comments
Open

static linking with cmake (MacOS) #72

yesitsme007 opened this issue Mar 6, 2020 · 0 comments

Comments

@yesitsme007
Copy link

Hi,
is it possible to build the binary tin-terrain with static linking? I would like to easily share this program between machines. Currently this requires installing all the dependencies. It would be very helpful if one could just copy the executable. I work in MacOS but I guess this is not OS dependent. Can this be done with some tweakings of cmake flags?

Note If others run into the same issue: There is a workaround possible which I currently use:
copy all dependencies to some new dir on the build machine:

mkdir <somedir>
cd <somedir>
cp /usr/local/opt/gdal/lib/libgdal.20.dylib .
cp /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib .
cp /usr/local/opt/proj/lib/libproj.15.dylib .
cp /usr/local/opt/json-c/lib/libjson-c.4.dylib .
cp /usr/local/opt/freexl/lib/libfreexl.1.dylib .
cp /usr/local/opt/geos/lib/libgeos_c.1.dylib .
cp /usr/local/opt/webp/lib/libwebp.7.dylib .
cp /usr/local/opt/epsilon/lib/libepsilon.1.dylib .
cp /usr/local/opt/sqlite/lib/libsqlite3.0.dylib .
cp /usr/local/opt/unixodbc/lib/libodbc.2.dylib .
cp /usr/local/opt/unixodbc/lib/libodbcinst.2.dylib .
cp /usr/local/opt/expat/lib/libexpat.1.dylib .
cp /usr/local/opt/xerces-c/lib/libxerces-c-3.2.dylib .
cp /usr/local/opt/jasper/lib/libjasper.4.dylib .
cp /usr/local/opt/netcdf/lib/libnetcdf.15.dylib .
cp /usr/local/opt/hdf5/lib/libhdf5.103.dylib .
cp /usr/local/opt/giflib/lib/libgif.dylib .
cp /usr/local/opt/jpeg/lib/libjpeg.9.dylib .
cp /usr/local/opt/libgeotiff/lib/libgeotiff.5.dylib .
cp /usr/local/opt/libtiff/lib/libtiff.5.dylib .
cp /usr/local/opt/libpng/lib/libpng16.16.dylib .
cp /usr/local/opt/cfitsio/lib/libcfitsio.8.dylib .
cp /usr/local/opt/libpq/lib/libpq.5.dylib .
cp /usr/local/opt/zstd/lib/libzstd.1.dylib .
cp /usr/local/opt/xz/lib/liblzma.5.dylib .
cp /usr/local/opt/libdap/lib/libdap.25.dylib .
cp /usr/local/opt/libdap/lib/libdapserver.7.dylib .
cp /usr/local/opt/libdap/lib/libdapclient.6.dylib .
cp /usr/local/opt/libspatialite/lib/libspatialite.7.dylib .
cp /usr/local/opt/pcre/lib/libpcre.1.dylib .
cp /usr/local/opt/libxml2/lib/libxml2.2.dylib .

Transfer somedir to the new machine. And then use the following the script:

export DYLD_FALLBACK_LIBRARY_PATH=<somedir>
./tin-terrain $*

This is only for Mac and of course it is really ugly. It will break with any change in the dependency chain.

P.S. This is really a great tool! Thanks for sharing it.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant