11function get_de_libnames ()
22 # Use a function for this because I F. CAN'T MAKE ANY SENSE ABOUT GLOBAL-LOCAL SCOPES INSIDE TRY-CATCH
33 errou = false
4- GMT_bindir, libgmt, libpostscriptlight, libgdal, libproj, ver, userdir, devdate = " " , " " , " " , " " , " " , " " , " " , " 0001.01.01"
4+ GMT_bindir, libgmt, libpostscriptlight, libgs, libgdal, libproj, ver, userdir, devdate = " " , " " , " " , " " , " " , " " , " " , " " , " 0001.01.01"
55
66 try # First try to find an existing GMT installation (RECOMENDED WAY)
77 (Sys. iswindows () && get (ENV , " UPDATE_GMTWIN" , " " ) != " " ) && error (" Forcing automatic Win install" )
@@ -13,6 +13,8 @@ function get_de_libnames()
1313 pato, fname = splitdir (libgmt)
1414 libpostscriptlight = joinpath (pato, replace (fname, " gmt" => " postscriptlight" ))
1515
16+ libgs = joinpath (pato, " gsdll64.dll" )
17+
1618 @static Sys. iswindows () ? libgdal = " gdal_w64.dll" : (
1719 Sys. isapple () ? (libgdal = string (split (readlines (pipeline (` otool -L $(libgmt) ` , ` grep libgdal` ))[1 ])[1 ])) : (
1820 Sys. isunix () ? (libgdal = string (split (readlines (pipeline (` ldd $(libgmt) ` , ` grep libgdal` ))[1 ])[3 ])) :
@@ -41,12 +43,13 @@ function get_de_libnames()
4143 rm (fn, force= true )
4244 libgmt = " gmt_w64.dll"
4345 libpostscriptlight = " postscriptlight_w64.dll"
46+ libgs = " gsdll64.dll"
4447 libgdal = " gdal_w64.dll"
4548 libproj = " proj_w64.dll"
4649 GMT_bindir = " C:\\ programs\\ gmt6\\ bin"
4750 else
4851 println (" \n\n No GMT system wide installation found\n\n " )
49- return true , ver, libgmt, libpostscriptlight, libgdal, libproj, GMT_bindir, userdir, devdate
52+ return true , ver, libgmt, libpostscriptlight, libgs, libgdal, libproj, GMT_bindir, userdir, devdate
5053 end
5154
5255 try
@@ -55,30 +58,31 @@ function get_de_libnames()
5558 ver = ((ind = findfirst (' _' , out)) === nothing ) ? VersionNumber (out) : VersionNumber (out[1 : ind- 1 ])
5659 end
5760 catch
58- return false , v " 6.6" , libgmt, libpostscriptlight, libgdal, libproj, GMT_bindir, joinpath (homedir (), " .gmt" ), devdate
61+ return false , v " 6.6" , libgmt, libpostscriptlight, libgs, libgdal, libproj, GMT_bindir, joinpath (homedir (), " .gmt" ), devdate
5962 end
6063
6164 catch err2; println (err2)
62- return true , ver, libgmt, libpostscriptlight, libgdal, libproj, GMT_bindir, userdir, devdate
65+ return true , ver, libgmt, libpostscriptlight, libgs, libgdal, libproj, GMT_bindir, userdir, devdate
6366 end
6467 end
6568 userdir = readlines (` gmt --show-userdir` )[1 ]
6669 Sys. iswindows () && (userdir = replace (userdir, " /" => " \\ " ))
6770 out = readlines (` gmt --version` )[1 ]
6871 devdate = ((ind = findlast (' _' , out)) != = nothing ) ? out[ind+ 1 : end ] : " 2022.06.18" # 2022.06.18 is the 6.4 release date
6972 Sys. iswindows () && (GMT_bindir = readlines (` gmt --show-bindir` )[1 ]) # Only on Win is that all dlls are in same bin dir
70- return errou, ver, libgmt, libpostscriptlight, libgdal, libproj, GMT_bindir, userdir, devdate
73+ return errou, ver, libgmt, libpostscriptlight, libgs, libgdal, libproj, GMT_bindir, userdir, devdate
7174end
7275
7376force_winjll = (get (ENV , " FORCE_WINJLL" , " " ) != " " ) # Use this env var to also force use of the JLL on Windows
7477if (force_winjll || (! Sys. iswindows () && get (ENV , " SYSTEMWIDE_GMT" , " " ) == " " )) # That is: the JLL case
7578 # Just to have something. They won't be used in main. There, wee only need that a "deps.jl" exists
76- libgmt, libpostscriptlight, libgdal, libproj, ver, userdir, devdate = " nikles" , " nikles" , " nikles" , " nikles" , " 0.0" , " nikles" , " 0001.01.01"
79+ libgmt, libpostscriptlight, libgs, libgdal, libproj, ver, userdir, devdate =
80+ " nikles" , " nikles" , " nikles" , " nikles" , " nikles" , " 0.0" , " nikles" , " 0001.01.01"
7781 GMT_bindir = " "
7882 is_jll = 1
7983 errou = false
8084else
81- errou, ver, libgmt, libpostscriptlight, libgdal, libproj, GMT_bindir, userdir, devdate = get_de_libnames ()
85+ errou, ver, libgmt, libpostscriptlight, libgs, libgdal, libproj, GMT_bindir, userdir, devdate = get_de_libnames ()
8286 is_jll = 0
8387end
8488
@@ -88,6 +92,7 @@ if (!errou) # Save shared names in file so that GMT.jl can read them at pre-com
8892 open (depfile, " w" ) do f
8993 println (f, " _libgmt = \" " , escape_string (joinpath (GMT_bindir, libgmt)), ' "' )
9094 println (f, " _libpostscriptlight = \" " , escape_string (joinpath (GMT_bindir, libpostscriptlight)), ' "' )
95+ println (f, " _libgs = \" " , escape_string (joinpath (GMT_bindir, libgs)), ' "' )
9196 println (f, " _libgdal = \" " , escape_string (joinpath (GMT_bindir, libgdal)), ' "' )
9297 println (f, " _libproj = \" " , escape_string (joinpath (GMT_bindir, libproj)), ' "' )
9398 println (f, " _GMTver = v\" " * string (ver) * " \" " )
0 commit comments